From: Włodzimierz Skiba Date: Fri, 11 Feb 2005 06:56:47 +0000 (+0000) Subject: Use parents client size and origin in placement of controls. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/be4e4e27aa09c5ed35c784ce8e2067070bc7d00c 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 --- diff --git a/src/palmos/button.cpp b/src/palmos/button.cpp index f8ec74481c..262972367c 100644 --- a/src/palmos/button.cpp +++ b/src/palmos/button.cpp @@ -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; } diff --git a/src/palmos/control.cpp b/src/palmos/control.cpp index 0d68b27055..5dd719b4c3 100644 --- a/src/palmos/control.cpp +++ b/src/palmos/control.cpp @@ -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; } diff --git a/src/palmos/frame.cpp b/src/palmos/frame.cpp index c81817af92..6015a059d3 100644 --- a/src/palmos/frame.cpp +++ b/src/palmos/frame.cpp @@ -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; } // ---------------------------------------------------------------------------- diff --git a/src/palmos/slider.cpp b/src/palmos/slider.cpp index 8c9b711b7c..40c6220183 100644 --- a/src/palmos/slider.cpp +++ b/src/palmos/slider.cpp @@ -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; }