added wxADJUST_MINSIZE sizer flag
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -18,6 +18,7 @@ All (GUI):
|
|||||||
|
|
||||||
- new wxToggleButton class (John Norris, Axel Schlueter)
|
- new wxToggleButton class (John Norris, Axel Schlueter)
|
||||||
- wxCalendarCtrl now highlighting the date with time part bug fixed
|
- wxCalendarCtrl now highlighting the date with time part bug fixed
|
||||||
|
- wxADJUST_MINSIZE sizer flag added
|
||||||
|
|
||||||
wxMSW:
|
wxMSW:
|
||||||
|
|
||||||
|
@@ -80,20 +80,28 @@ children of the same wxBoxSizer. For example, you might have a horizontal wxBoxS
|
|||||||
of which are supposed to change their size with the sizer. Then the two stretchable windows would get a
|
of which are supposed to change their size with the sizer. Then the two stretchable windows would get a
|
||||||
value of 1 each to make them grow and shrink equally with the sizer's horizontal dimension.}
|
value of 1 each to make them grow and shrink equally with the sizer's horizontal dimension.}
|
||||||
|
|
||||||
\docparam{flag}{This parameter can be used to set a number of flags which can be combined using
|
\docparam{flag}{This parameter can be used to set a number of flags which can
|
||||||
the binary OR operator |. Two main behaviours are defined using these flags. One is the border
|
be combined using the binary OR operator |. Two main behaviours are defined
|
||||||
around a window: the {\it border} parameter determines the border width whereas the flags given here
|
using these flags. One is the border around a window: the {\it border}
|
||||||
determine where the border may be (wxTOP, wxBOTTOM, wxLEFT, wxRIGHT or wxALL). The other flags
|
parameter determines the border width whereas the flags given here determine
|
||||||
determine the child window's behaviour if the size of the sizer changes. However this is not - in contrast to
|
where the border may be (wxTOP, wxBOTTOM, wxLEFT, wxRIGHT or wxALL). The other
|
||||||
the {\it option} flag - in the main orientation, but in the respectively other orientation. So
|
flags determine the child window's behaviour if the size of the sizer changes.
|
||||||
if you created a wxBoxSizer with the wxVERTICAL option, these flags will be relevant if the
|
However this is not - in contrast to the {\it option} flag - in the main
|
||||||
sizer changes its horizontal size. A child may get resized to completely fill out the new size (using
|
orientation, but in the respectively other orientation. So if you created a
|
||||||
either wxGROW or wxEXPAND), it may get proportionally resized (wxSHAPED), it may get centered (wxALIGN\_CENTER
|
wxBoxSizer with the wxVERTICAL option, these flags will be relevant if the
|
||||||
or wxALIGN\_CENTRE) or it may get aligned to either side (wxALIGN\_LEFT and wxALIGN\_TOP are set to 0
|
sizer changes its horizontal size. A child may get resized to completely fill
|
||||||
and thus represent the default, wxALIGN\_RIGHT and wxALIGN\_BOTTOM have their obvious meaning).
|
out the new size (using either wxGROW or wxEXPAND), it may get proportionally
|
||||||
With proportional resize, a child may also be centered in the main orientation using
|
resized (wxSHAPED), it may get centered (wxALIGN\_CENTER or wxALIGN\_CENTRE)
|
||||||
wxALIGN\_CENTER\_VERTICAL (same as wxALIGN\_CENTRE\_VERTICAL) and wxALIGN\_CENTER\_HORIZONTAL
|
or it may get aligned to either side (wxALIGN\_LEFT and wxALIGN\_TOP are set
|
||||||
(same as wxALIGN\_CENTRE\_HORIZONTAL) flags.}
|
to 0 and thus represent the default, wxALIGN\_RIGHT and wxALIGN\_BOTTOM have
|
||||||
|
their obvious meaning). With proportional resize, a child may also be centered
|
||||||
|
in the main orientation using wxALIGN\_CENTER\_VERTICAL (same as
|
||||||
|
wxALIGN\_CENTRE\_VERTICAL) and wxALIGN\_CENTER\_HORIZONTAL (same as
|
||||||
|
wxALIGN\_CENTRE\_HORIZONTAL) flags. Finally, you can also specify
|
||||||
|
wxAGJUST\_MIN flag to make the minimal size of the control dynamically adjust
|
||||||
|
to the value returned by its \helpref{GetBestSize()}{wxwindowgetbestsize}
|
||||||
|
method - this allows, for example, for correct relayouting of a static text
|
||||||
|
control even if its text is changed during run-time.}
|
||||||
|
|
||||||
\docparam{border}{Determines the border width, if the {\it flag} parameter is set to any border.}
|
\docparam{border}{Determines the border width, if the {\it flag} parameter is set to any border.}
|
||||||
|
|
||||||
|
@@ -133,21 +133,28 @@ wxSize wxSizerItem::CalcMin()
|
|||||||
if (IsSizer())
|
if (IsSizer())
|
||||||
{
|
{
|
||||||
ret = m_sizer->GetMinSize();
|
ret = m_sizer->GetMinSize();
|
||||||
|
|
||||||
// if we have to preserve aspect ratio _AND_ this is
|
// if we have to preserve aspect ratio _AND_ this is
|
||||||
// the first-time calculation, consider ret to be initial size
|
// the first-time calculation, consider ret to be initial size
|
||||||
if ((m_flag & wxSHAPED) && !m_ratio) SetRatio(ret);
|
if ((m_flag & wxSHAPED) && !m_ratio)
|
||||||
|
SetRatio(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
The minimum size of a window should be the
|
|
||||||
initial size, as saved in m_minSize, not the
|
|
||||||
current size.
|
|
||||||
|
|
||||||
else
|
else
|
||||||
if (IsWindow())
|
{
|
||||||
ret = m_window->GetSize();
|
if ( IsWindow() && (m_flag & wxADJUST_MINSIZE) )
|
||||||
*/
|
{
|
||||||
else ret = m_minSize;
|
// check if the best (minimal, in fact) window size hadn't changed
|
||||||
|
// by chance: this may happen for, e.g. static text if its label
|
||||||
|
// changed
|
||||||
|
wxSize size = m_window->GetBestSize();
|
||||||
|
if ( size.x > m_minSize.x )
|
||||||
|
m_minSize.x = size.x;
|
||||||
|
if ( size.y > m_minSize.y )
|
||||||
|
m_minSize.y = size.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = m_minSize;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_flag & wxWEST)
|
if (m_flag & wxWEST)
|
||||||
ret.x += m_border;
|
ret.x += m_border;
|
||||||
|
Reference in New Issue
Block a user