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
/* Change the window position even if it seems to be already correct */
#define wxSIZE_FORCE 0x0010
/* Emit size event even if size didn't change */
#define wxSIZE_FORCE_EVENT 0x0020
/* ---------------------------------------------------------------------------- */
/* GDI descriptions */

View File

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

View File

@@ -2540,6 +2540,12 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
event.SetEventObject( this );
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 &&
!(sizeFlags & wxSIZE_FORCE) )
{
if (sizeFlags & wxSIZE_FORCE_EVENT)
{
wxSizeEvent event( wxSize(width,height), GetId() );
event.SetEventObject( this );
HandleWindowEvent( event );
}
return;
}

View File

@@ -964,6 +964,13 @@ void wxWindowMac::DoSetSize(int x, int y, int width, int height, int sizeFlags)
// TODO: REMOVE
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;
}