EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
END_EVENT_TABLE()
-#if wxUSE_EXTENDED_RTTI
-WX_DEFINE_FLAGS( wxFrameStyle )
-
-wxBEGIN_FLAGS( wxFrameStyle )
- // new style border flags, we put them first to
- // use them for streaming out
- wxFLAGS_MEMBER(wxBORDER_SIMPLE)
- wxFLAGS_MEMBER(wxBORDER_SUNKEN)
- wxFLAGS_MEMBER(wxBORDER_DOUBLE)
- wxFLAGS_MEMBER(wxBORDER_RAISED)
- wxFLAGS_MEMBER(wxBORDER_STATIC)
- wxFLAGS_MEMBER(wxBORDER_NONE)
-
- // old style border flags
- wxFLAGS_MEMBER(wxSIMPLE_BORDER)
- wxFLAGS_MEMBER(wxSUNKEN_BORDER)
- wxFLAGS_MEMBER(wxDOUBLE_BORDER)
- wxFLAGS_MEMBER(wxRAISED_BORDER)
- wxFLAGS_MEMBER(wxSTATIC_BORDER)
- wxFLAGS_MEMBER(wxBORDER)
-
- // standard window styles
- wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
- wxFLAGS_MEMBER(wxCLIP_CHILDREN)
- wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
- wxFLAGS_MEMBER(wxWANTS_CHARS)
- wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
- wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
- wxFLAGS_MEMBER(wxVSCROLL)
- wxFLAGS_MEMBER(wxHSCROLL)
-
- // frame styles
- wxFLAGS_MEMBER(wxSTAY_ON_TOP)
- wxFLAGS_MEMBER(wxCAPTION)
-#if WXWIN_COMPATIBILITY_2_6
- wxFLAGS_MEMBER(wxTHICK_FRAME)
-#endif // WXWIN_COMPATIBILITY_2_6
- wxFLAGS_MEMBER(wxSYSTEM_MENU)
- wxFLAGS_MEMBER(wxRESIZE_BORDER)
-#if WXWIN_COMPATIBILITY_2_6
- wxFLAGS_MEMBER(wxRESIZE_BOX)
-#endif // WXWIN_COMPATIBILITY_2_6
- wxFLAGS_MEMBER(wxCLOSE_BOX)
- wxFLAGS_MEMBER(wxMAXIMIZE_BOX)
- wxFLAGS_MEMBER(wxMINIMIZE_BOX)
-
- wxFLAGS_MEMBER(wxFRAME_TOOL_WINDOW)
- wxFLAGS_MEMBER(wxFRAME_FLOAT_ON_PARENT)
-
- wxFLAGS_MEMBER(wxFRAME_SHAPED)
-
-wxEND_FLAGS( wxFrameStyle )
-
-IMPLEMENT_DYNAMIC_CLASS_XTI(wxFrame, wxTopLevelWindow,"wx/frame.h")
-
-wxBEGIN_PROPERTIES_TABLE(wxFrame)
- wxEVENT_PROPERTY( Menu , wxEVT_COMMAND_MENU_SELECTED , wxCommandEvent)
-
- wxPROPERTY( Title,wxString, SetTitle, GetTitle, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
- wxPROPERTY_FLAGS( WindowStyle , wxFrameStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
- wxPROPERTY( MenuBar , wxMenuBar * , SetMenuBar , GetMenuBar , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
-wxEND_PROPERTIES_TABLE()
-
-wxBEGIN_HANDLERS_TABLE(wxFrame)
-wxEND_HANDLERS_TABLE()
-
-wxCONSTRUCTOR_6( wxFrame , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size , long , WindowStyle)
-
-#else
-IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
-#endif
-
// ============================================================================
// implementation
// ============================================================================
wxStatusBar *statbar = GetStatusBar();
if ( statbar && statbar->IsShown() )
{
- *y -= statbar->GetClientSize().y;
+ *y -= statbar->GetSize().y;
}
}
#endif // wxUSE_STATUSBAR
tx = 0;
}
- int desiredW = tw;
- int desiredH = th;
+ int desiredW,
+ desiredH;
if ( toolbar->IsVertical() )
{
+ desiredW = tw;
desiredH = height;
}
else
{
desiredW = width;
+ desiredH = th;
}
- // use the 'real' MSW position here, don't offset relativly to the
+ // use the 'real' MSW position here, don't offset relatively to the
// client area origin
-
- // Optimise such that we don't have to always resize the toolbar
- // when the frame changes, otherwise we'll get a lot of flicker.
- bool heightChanging wxDUMMY_INITIALIZE(true);
- bool widthChanging wxDUMMY_INITIALIZE(true);
-
- if ( toolbar->IsVertical() )
- {
- // It's OK if the current height is greater than what can be shown.
- heightChanging = (desiredH > th) ;
- widthChanging = (desiredW != tw) ;
-
- // The next time around, we may not have to set the size
- if (heightChanging)
- desiredH = desiredH + 200;
- }
- else
- {
- // It's OK if the current width is greater than what can be shown.
- widthChanging = (desiredW > tw) ;
- heightChanging = (desiredH != th) ;
-
- // The next time around, we may not have to set the size
- if (widthChanging)
- desiredW = desiredW + 200;
- }
-
- if (tx != 0 || ty != 0 || widthChanging || heightChanging)
- toolbar->SetSize(x, y, desiredW, desiredH, wxSIZE_NO_ADJUSTMENTS);
+ toolbar->SetSize(x, y, desiredW, desiredH, wxSIZE_NO_ADJUSTMENTS);
}
#endif // !WINCE_WITH_COMMANDBAR
bool
wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU WXUNUSED(hMenu))
{
+ // sign extend to int from unsigned short we get from Windows
+ int item = (signed short)nItem;
+
// WM_MENUSELECT is generated for both normal items and menus, including
// the top level menus of the menu bar, which can't be represented using
- // any valid identifier in wxMenuEvent so use -1 for them
- // the menu highlight events for n
- const int item = flags & (MF_POPUP | MF_SEPARATOR) ? -1 : nItem;
+ // any valid identifier in wxMenuEvent so use an otherwise unused value for
+ // them
+ if ( flags & (MF_POPUP | MF_SEPARATOR) )
+ item = wxID_NONE;
wxMenuEvent event(wxEVT_MENU_HIGHLIGHT, item);
event.SetEventObject(this);
// by default, i.e. if the event wasn't handled above, clear the status bar
// text when an item which can't have any associated help string in wx API
// is selected
- if ( item == -1 )
+ if ( item == wxID_NONE )
DoGiveHelp(wxEmptyString, true);
return false;
wxMenu* menu = NULL;
if (GetMenuBar())
{
- int nCount = GetMenuBar()->GetMenuCount();
- for (int n = 0; n < nCount; n++)
- {
- if (GetMenuBar()->GetMenu(n)->GetHMenu() == hMenu)
- {
- menu = GetMenuBar()->GetMenu(n);
- break;
- }
- }
+ menu = GetMenuBar()->MSWGetMenu(hMenu);
}
wxMenuEvent event(wxEVT_MENU_OPEN, 0, menu);