Add wxSIZE_FORCE_EVENT and use is from wxSizerItem::SetDimension

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2009-01-30 20:10:44 +00:00
parent 26f7724c4b
commit e47e063af2
5 changed files with 24 additions and 2 deletions

View File

@@ -2094,6 +2094,8 @@ enum wxHitTest
#define wxSIZE_NO_ADJUSTMENTS 0x0008 #define wxSIZE_NO_ADJUSTMENTS 0x0008
/* Change the window position even if it seems to be already correct */ /* Change the window position even if it seems to be already correct */
#define wxSIZE_FORCE 0x0010 #define wxSIZE_FORCE 0x0010
/* Emit size event even if size didn't change */
#define wxSIZE_FORCE_EVENT 0x0020
/* ---------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------- */
/* GDI descriptions */ /* GDI descriptions */

View File

@@ -480,10 +480,11 @@ void wxSizerItem::SetDimension( const wxPoint& pos_, const wxSize& size_ )
break; break;
case Item_Window: case Item_Window:
{
m_window->SetSize(pos.x, pos.y, size.x, size.y, m_window->SetSize(pos.x, pos.y, size.x, size.y,
wxSIZE_ALLOW_MINUS_ONE); wxSIZE_ALLOW_MINUS_ONE|wxSIZE_FORCE_EVENT );
break; break;
}
case Item_Sizer: case Item_Sizer:
m_sizer->SetDimension(pos, size); m_sizer->SetDimension(pos, size);
break; break;

View File

@@ -2540,6 +2540,12 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
event.SetEventObject( this ); event.SetEventObject( this );
HandleWindowEvent( event ); HandleWindowEvent( event );
} }
} else
if (sizeFlags & wxSIZE_FORCE_EVENT)
{
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
event.SetEventObject( this );
HandleWindowEvent( event );
} }
} }

View File

@@ -2007,6 +2007,12 @@ void wxWindowMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags)
width == currentW && height == currentH && width == currentW && height == currentH &&
!(sizeFlags & wxSIZE_FORCE) ) !(sizeFlags & wxSIZE_FORCE) )
{ {
if (sizeFlags & wxSIZE_FORCE_EVENT)
{
wxSizeEvent event( wxSize(width,height), GetId() );
event.SetEventObject( this );
HandleWindowEvent( event );
}
return; return;
} }

View File

@@ -964,6 +964,13 @@ void wxWindowMac::DoSetSize(int x, int y, int width, int height, int sizeFlags)
// TODO: REMOVE // TODO: REMOVE
MacRepositionScrollBars() ; // we might have a real position shift MacRepositionScrollBars() ; // we might have a real position shift
if (sizeFlags & wxSIZE_FORCE_EVENT)
{
wxSizeEvent event( wxSize(width,height), GetId() );
event.SetEventObject( this );
HandleWindowEvent( event );
}
return; return;
} }