Added wxSizerItem::SetMinSize that calls m_window->SetSizeHints if not

wxFIXED_MINSIZE, SetInitSize and SetItemMinSize uses SetMinSize, and
fixed [ 934651 ] sizeritem's 'minsize' value has no effect in xrc resources


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2004-04-14 23:45:21 +00:00
parent 1ebfafde51
commit 1eba219387
4 changed files with 19 additions and 10 deletions

View File

@ -122,7 +122,6 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
{
// create a sizer item for it
wxSizerItem* sitem = MakeSizerItem();
SetSizerItemAttributes(sitem);
// now fetch the item to be managed
bool old_gbs = m_isGBS;
@ -146,6 +145,9 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
else
wxLogError(wxT("Error in resource."));
// finally, set other wxSizerItem attributes
SetSizerItemAttributes(sitem);
AddSizerItem(sitem);
return item;
}
@ -339,7 +341,7 @@ void wxSizerXmlHandler::SetSizerItemAttributes(wxSizerItem* sitem)
sitem->SetBorder(GetDimension(wxT("border")));
wxSize sz = GetSize(wxT("minsize"));
if (!(sz == wxDefaultSize))
sitem->SetInitSize(sz.x, sz.y);
sitem->SetMinSize(sz);
sz = GetSize(wxT("ratio"));
if (!(sz == wxDefaultSize))
sitem->SetRatio(sz);

View File

@ -74,8 +74,16 @@ public:
wxSize GetMinSize() const
{ return m_minSize; }
void SetMinSize(const wxSize& size)
{
if (IsWindow() && !(m_flag & wxFIXED_MINSIZE))
m_window->SetSizeHints(size);
m_minSize = size;
}
void SetMinSize( int x, int y )
{ SetMinSize(wxSize(x, y)); }
void SetInitSize( int x, int y )
{ m_minSize.x = x; m_minSize.y = y; }
{ SetMinSize(wxSize(x, y)); }
void SetRatio( int width, int height )
// if either of dimensions is zero, ratio is assumed to be 1

View File

@ -735,8 +735,7 @@ bool wxSizer::DoSetItemMinSize( wxWindow *window, int width, int height )
if (item->GetWindow() == window)
{
item->SetInitSize( width, height );
item->GetWindow()->SetSizeHints(width, height);
item->SetMinSize( width, height );
return true;
}
node = node->GetNext();
@ -815,9 +814,7 @@ bool wxSizer::DoSetItemMinSize( size_t index, int width, int height )
else
{
// ... but the minimal size of spacers and windows in stored in them
item->SetInitSize( width, height );
if (item->GetWindow())
item->GetWindow()->SetSizeHints(width, height);
item->SetMinSize( width, height );
}
return true;

View File

@ -122,7 +122,6 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
{
// create a sizer item for it
wxSizerItem* sitem = MakeSizerItem();
SetSizerItemAttributes(sitem);
// now fetch the item to be managed
bool old_gbs = m_isGBS;
@ -146,6 +145,9 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
else
wxLogError(wxT("Error in resource."));
// finally, set other wxSizerItem attributes
SetSizerItemAttributes(sitem);
AddSizerItem(sitem);
return item;
}
@ -339,7 +341,7 @@ void wxSizerXmlHandler::SetSizerItemAttributes(wxSizerItem* sitem)
sitem->SetBorder(GetDimension(wxT("border")));
wxSize sz = GetSize(wxT("minsize"));
if (!(sz == wxDefaultSize))
sitem->SetInitSize(sz.x, sz.y);
sitem->SetMinSize(sz);
sz = GetSize(wxT("ratio"));
if (!(sz == wxDefaultSize))
sitem->SetRatio(sz);