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:
parent
1ebfafde51
commit
1eba219387
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user