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:
@@ -122,7 +122,6 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
|
|||||||
{
|
{
|
||||||
// create a sizer item for it
|
// create a sizer item for it
|
||||||
wxSizerItem* sitem = MakeSizerItem();
|
wxSizerItem* sitem = MakeSizerItem();
|
||||||
SetSizerItemAttributes(sitem);
|
|
||||||
|
|
||||||
// now fetch the item to be managed
|
// now fetch the item to be managed
|
||||||
bool old_gbs = m_isGBS;
|
bool old_gbs = m_isGBS;
|
||||||
@@ -146,6 +145,9 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
|
|||||||
else
|
else
|
||||||
wxLogError(wxT("Error in resource."));
|
wxLogError(wxT("Error in resource."));
|
||||||
|
|
||||||
|
// finally, set other wxSizerItem attributes
|
||||||
|
SetSizerItemAttributes(sitem);
|
||||||
|
|
||||||
AddSizerItem(sitem);
|
AddSizerItem(sitem);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@@ -339,7 +341,7 @@ void wxSizerXmlHandler::SetSizerItemAttributes(wxSizerItem* sitem)
|
|||||||
sitem->SetBorder(GetDimension(wxT("border")));
|
sitem->SetBorder(GetDimension(wxT("border")));
|
||||||
wxSize sz = GetSize(wxT("minsize"));
|
wxSize sz = GetSize(wxT("minsize"));
|
||||||
if (!(sz == wxDefaultSize))
|
if (!(sz == wxDefaultSize))
|
||||||
sitem->SetInitSize(sz.x, sz.y);
|
sitem->SetMinSize(sz);
|
||||||
sz = GetSize(wxT("ratio"));
|
sz = GetSize(wxT("ratio"));
|
||||||
if (!(sz == wxDefaultSize))
|
if (!(sz == wxDefaultSize))
|
||||||
sitem->SetRatio(sz);
|
sitem->SetRatio(sz);
|
||||||
|
@@ -74,8 +74,16 @@ public:
|
|||||||
|
|
||||||
wxSize GetMinSize() const
|
wxSize GetMinSize() const
|
||||||
{ return m_minSize; }
|
{ 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 )
|
void SetInitSize( int x, int y )
|
||||||
{ m_minSize.x = x; m_minSize.y = y; }
|
{ SetMinSize(wxSize(x, y)); }
|
||||||
|
|
||||||
void SetRatio( int width, int height )
|
void SetRatio( int width, int height )
|
||||||
// if either of dimensions is zero, ratio is assumed to be 1
|
// 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)
|
if (item->GetWindow() == window)
|
||||||
{
|
{
|
||||||
item->SetInitSize( width, height );
|
item->SetMinSize( width, height );
|
||||||
item->GetWindow()->SetSizeHints(width, height);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
node = node->GetNext();
|
node = node->GetNext();
|
||||||
@@ -815,9 +814,7 @@ bool wxSizer::DoSetItemMinSize( size_t index, int width, int height )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// ... but the minimal size of spacers and windows in stored in them
|
// ... but the minimal size of spacers and windows in stored in them
|
||||||
item->SetInitSize( width, height );
|
item->SetMinSize( width, height );
|
||||||
if (item->GetWindow())
|
|
||||||
item->GetWindow()->SetSizeHints(width, height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -122,7 +122,6 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
|
|||||||
{
|
{
|
||||||
// create a sizer item for it
|
// create a sizer item for it
|
||||||
wxSizerItem* sitem = MakeSizerItem();
|
wxSizerItem* sitem = MakeSizerItem();
|
||||||
SetSizerItemAttributes(sitem);
|
|
||||||
|
|
||||||
// now fetch the item to be managed
|
// now fetch the item to be managed
|
||||||
bool old_gbs = m_isGBS;
|
bool old_gbs = m_isGBS;
|
||||||
@@ -146,6 +145,9 @@ wxObject* wxSizerXmlHandler::Handle_sizeritem()
|
|||||||
else
|
else
|
||||||
wxLogError(wxT("Error in resource."));
|
wxLogError(wxT("Error in resource."));
|
||||||
|
|
||||||
|
// finally, set other wxSizerItem attributes
|
||||||
|
SetSizerItemAttributes(sitem);
|
||||||
|
|
||||||
AddSizerItem(sitem);
|
AddSizerItem(sitem);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@@ -339,7 +341,7 @@ void wxSizerXmlHandler::SetSizerItemAttributes(wxSizerItem* sitem)
|
|||||||
sitem->SetBorder(GetDimension(wxT("border")));
|
sitem->SetBorder(GetDimension(wxT("border")));
|
||||||
wxSize sz = GetSize(wxT("minsize"));
|
wxSize sz = GetSize(wxT("minsize"));
|
||||||
if (!(sz == wxDefaultSize))
|
if (!(sz == wxDefaultSize))
|
||||||
sitem->SetInitSize(sz.x, sz.y);
|
sitem->SetMinSize(sz);
|
||||||
sz = GetSize(wxT("ratio"));
|
sz = GetSize(wxT("ratio"));
|
||||||
if (!(sz == wxDefaultSize))
|
if (!(sz == wxDefaultSize))
|
||||||
sitem->SetRatio(sz);
|
sitem->SetRatio(sz);
|
||||||
|
Reference in New Issue
Block a user