improvements to wxPickerBase default proportion values (patch 1525578)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-07-25 00:44:41 +00:00
parent 4948ebf3ff
commit ecd87e5b71
3 changed files with 38 additions and 7 deletions

View File

@@ -13,7 +13,10 @@
Base abstract class for all pickers which support an auxiliary text control.
This class handles all positioning and sizing of the text control like a
an horizontal \helpref{wxBoxSizer}{wxboxsizer} would do, with the text control on
the left of the picker button and the proportion of the picker fixed to value 1.
the left of the picker button.
The proportion (see \helpref{wxSizer}{wxsizer} documentation for more info about
proportion values) of the picker control defaults to $1$ when there isn't a text control
associated (see {\tt wxPB\_USE\_TEXTCTRL} style) and to $0$ otherwise.
\wxheading{Derived from}
@@ -62,19 +65,33 @@ This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctr
\func{void}{SetTextCtrlProportion}{\param{int}{prop}}
Sets the proportion between the text control and the picker.
Sets the proportion value of the text control.
Look at the overview of wxPickerBase for more details about this.
This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true.
\membersection{wxPickerBase::SetPickerCtrlProportion}\label{wxpickerbasesetpickerctrlproportion}
\func{void}{SetPickerCtrlProportion}{\param{int}{prop}}
Sets the proportion value of the picker.
Look at the overview of wxPickerBase for more details about this.
\membersection{wxPickerBase::GetTextCtrlProportion}\label{wxpickerbasegettextctrlproportion}
\constfunc{int}{GetTextCtrlProportion}{}
Returns the proportion between the text control and the picker.
Returns the proportion value of the text control.
This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true.
\membersection{wxPickerBase::GetPickerCtrlProportion}\label{wxpickerbasegetpickerctrlproportion}
\constfunc{int}{GetPickerCtrlProportion}{}
Returns the proportion value of the picker.
\membersection{wxPickerBase::HasTextCtrl}\label{wxpickerbasehastextctrl}
@@ -100,6 +117,13 @@ Returns \true if the text control is growable.
This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true.
\membersection{wxPickerBase::SetPickerCtrlGrowable}\label{wxpickerbasesetpickerctrlgrowable}
\func{void}{SetPickerCtrlGrowable}{\param{bool}{ grow = true}}
Sets the picker control as growable when {\tt grow} is \true.
\membersection{wxPickerBase::SetTextCtrlGrowable}\label{wxpickerbasesettextctrlgrowable}
\func{void}{SetTextCtrlGrowable}{\param{bool}{ grow = true}}

View File

@@ -57,13 +57,18 @@ public: // public API
int GetInternalMargin() const
{ return GetTextCtrlItem()->GetBorder(); }
// proportion of the text control respect the picker
// (which has a fixed proportion value of 1)
// proportion of the text control
void SetTextCtrlProportion(int prop)
{ GetTextCtrlItem()->SetProportion(prop); m_sizer->Layout(); }
int GetTextCtrlProportion() const
{ return GetTextCtrlItem()->GetProportion(); }
// proportion of the picker control
void SetPickerCtrlProportion(int prop)
{ GetPickerCtrlItem()->SetProportion(prop); m_sizer->Layout(); }
int GetPickerCtrlProportion() const
{ return GetPickerCtrlItem()->GetProportion(); }
bool IsTextCtrlGrowable() const
{ return (GetTextCtrlItem()->GetFlag() & wxGROW) != 0; }
void SetTextCtrlGrowable(bool grow = true)

View File

@@ -104,6 +104,7 @@ bool wxPickerBase::CreateBase(wxWindow *parent,
wxWindowDestroyEventHandler(wxPickerBase::OnTextCtrlDelete),
NULL, this);
// the text control's proportion values defaults to 2
m_sizer->Add(m_text, 2, GetDefaultTextCtrlFlag(), 5);
}
@@ -112,8 +113,9 @@ bool wxPickerBase::CreateBase(wxWindow *parent,
void wxPickerBase::PostCreation()
{
// the picker's proportion value is fixed
m_sizer->Add(m_picker, 1, GetDefaultPickerCtrlFlag(), 5);
// the picker's proportion value defaults to 1 when there's no text control
// associated with it - in that case it defaults to 0
m_sizer->Add(m_picker, HasTextCtrl() ? 0 : 1, GetDefaultPickerCtrlFlag(), 5);
SetSizer(m_sizer);
m_sizer->SetSizeHints(this);