Use parents client size and origin in placement of controls.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -138,7 +138,7 @@ bool wxButton::Create(wxWindow *parent,
|
||||
wxPoint palmPos(pos);
|
||||
if((palmPos.x==wxDefaultCoord)||(palmPos.y==wxDefaultCoord))
|
||||
{
|
||||
wxSize parentSize(parent->GetSize());
|
||||
wxSize parentSize(parent->GetClientSize());
|
||||
wxWindow* parentTLW = parent;
|
||||
while ( parentTLW && !parentTLW->IsTopLevel() )
|
||||
{
|
||||
@@ -148,14 +148,14 @@ bool wxButton::Create(wxWindow *parent,
|
||||
if(wxDynamicCast(parentTLW, wxFrame)!=NULL)
|
||||
{
|
||||
if(palmPos.x==wxDefaultCoord)
|
||||
palmPos.x = 1;
|
||||
palmPos.x = 0;
|
||||
if(palmPos.y==wxDefaultCoord)
|
||||
palmPos.y = parentSize.y-palmSize.y;
|
||||
}
|
||||
else if(wxDynamicCast(parentTLW, wxDialog)!=NULL)
|
||||
{
|
||||
if(palmPos.x==wxDefaultCoord)
|
||||
palmPos.x = 5;
|
||||
palmPos.x = 4;
|
||||
if(palmPos.y==wxDefaultCoord)
|
||||
palmPos.y = parentSize.y-palmSize.y-5;
|
||||
}
|
||||
|
@@ -117,15 +117,23 @@ bool wxControl::PalmCreateControl(ControlStyleType style,
|
||||
if(form==NULL)
|
||||
return false;
|
||||
|
||||
|
||||
wxCoord x = pos.x == wxDefaultCoord ? 0 : pos.x,
|
||||
y = pos.y == wxDefaultCoord ? 0 : pos.y,
|
||||
w = size.x == wxDefaultCoord ? 1 : size.x,
|
||||
h = size.y == wxDefaultCoord ? 1 : size.y;
|
||||
|
||||
AdjustForParentClientOrigin(x, y);
|
||||
|
||||
ControlType *control = CtlNewControl(
|
||||
(void **)&form,
|
||||
GetId(),
|
||||
style,
|
||||
wxEmptyString,
|
||||
( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x,
|
||||
( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y,
|
||||
( size.x == wxDefaultCoord ) ? winUndefConstraint : size.x,
|
||||
( size.y == wxDefaultCoord ) ? winUndefConstraint : size.y,
|
||||
x,
|
||||
y,
|
||||
w,
|
||||
h,
|
||||
stdFont,
|
||||
groupID,
|
||||
true
|
||||
@@ -136,6 +144,7 @@ bool wxControl::PalmCreateControl(ControlStyleType style,
|
||||
|
||||
m_palmControl = true;
|
||||
|
||||
SetInitialBestSize(size);
|
||||
SetLabel(label);
|
||||
Show();
|
||||
return true;
|
||||
@@ -154,13 +163,20 @@ bool wxControl::PalmCreateField(const wxString& label,
|
||||
|
||||
m_label = label;
|
||||
|
||||
wxCoord x = pos.x == wxDefaultCoord ? 0 : pos.x,
|
||||
y = pos.y == wxDefaultCoord ? 0 : pos.y,
|
||||
w = size.x == wxDefaultCoord ? 1 : size.x,
|
||||
h = size.y == wxDefaultCoord ? 1 : size.y;
|
||||
|
||||
AdjustForParentClientOrigin(x, y);
|
||||
|
||||
FieldType *field = FldNewField(
|
||||
(void **)&form,
|
||||
GetId(),
|
||||
( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x,
|
||||
( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y,
|
||||
( size.x == wxDefaultCoord ) ? winUndefConstraint : size.x,
|
||||
( size.y == wxDefaultCoord ) ? winUndefConstraint : size.y,
|
||||
x,
|
||||
y,
|
||||
w,
|
||||
h,
|
||||
stdFont,
|
||||
10,
|
||||
editable,
|
||||
@@ -178,8 +194,9 @@ bool wxControl::PalmCreateField(const wxString& label,
|
||||
|
||||
m_palmField = true;
|
||||
|
||||
Show();
|
||||
SetInitialBestSize(size);
|
||||
SetLabel(label);
|
||||
Show();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -183,6 +183,10 @@ void wxFrame::DoSetClientSize(int width, int height)
|
||||
// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
|
||||
void wxFrame::DoGetClientSize(int *x, int *y) const
|
||||
{
|
||||
wxSize size = GetSize();
|
||||
wxPoint pos = GetClientAreaOrigin();
|
||||
*x = size.x - pos.x - 1;
|
||||
*y = size.y - pos.y - 1;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -130,6 +130,13 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
|
||||
|
||||
m_oldValue = m_oldPos = value;
|
||||
|
||||
wxCoord x = pos.x == wxDefaultCoord ? 0 : pos.x,
|
||||
y = pos.y == wxDefaultCoord ? 0 : pos.y,
|
||||
w = size.x == wxDefaultCoord ? 1 : size.x,
|
||||
h = size.y == wxDefaultCoord ? 1 : size.y;
|
||||
|
||||
AdjustForParentClientOrigin(x, y);
|
||||
|
||||
SliderControlType *slider = CtlNewSliderControl (
|
||||
(void **)&form,
|
||||
GetId(),
|
||||
@@ -137,10 +144,10 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
|
||||
NULL,
|
||||
0,
|
||||
0,
|
||||
pos.x,
|
||||
pos.y,
|
||||
size.x,
|
||||
size.y,
|
||||
x,
|
||||
y,
|
||||
w,
|
||||
h,
|
||||
minValue,
|
||||
maxValue,
|
||||
1,
|
||||
@@ -150,6 +157,7 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
|
||||
if(slider==NULL)
|
||||
return false;
|
||||
|
||||
SetInitialBestSize(size);
|
||||
Show();
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user