wxFrame::wxFrame(void)
{
+ m_frameToolBar = NULL ;
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
// m_modalShowing = FALSE;
m_windowStyle = style;
m_frameMenuBar = NULL;
+ m_frameToolBar = NULL ;
m_frameStatusBar = NULL;
SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
bool wxFrame::MSWProcessMessage(WXMSG* pMsg)
{
if (m_acceleratorTable != 0 &&
- ::TranslateAccelerator((HWND) GetHWND(), (HANDLE) m_acceleratorTable, (MSG *)pMsg))
+ ::TranslateAccelerator((HWND) GetHWND(), (HACCEL) m_acceleratorTable, (MSG *)pMsg))
return TRUE;
return FALSE;
wxWindow *win = (wxWindow *)node->Data();
if ( !win->IsKindOf(CLASSINFO(wxFrame)) &&
!win->IsKindOf(CLASSINFO(wxDialog)) &&
- (win != GetStatusBar()) )
+ (win != GetStatusBar()) &&
+ (win != GetToolBar()) )
{
if ( child )
return; // it's our second subwindow - nothing to do
if ( child ) {
// we have exactly one child - set it's size to fill the whole frame
- int client_x, client_y;
+ int clientW, clientH;
+ GetClientSize(&clientW, &clientH);
- GetClientSize(&client_x, &client_y);
- child->SetSize(0, 0, client_x, client_y);
+ int x = 0;
+ int y = 0;
+
+ // Manage the toolbar if there is one
+ if ( GetToolBar() )
+ {
+ int wt, ht;
+ GetToolBar()->GetSize(&wt, &ht);
+ clientH -= ht;
+ y += ht;
+ GetToolBar()->SetSize(0, 0, clientW, ht);
+ }
+
+ child->SetSize(x, y, clientW, clientH);
}
}
}
}
+bool wxFrame::OnClose(void)
+{
+ return TRUE;
+}
+
// Destroy the window (delayed, if a managed window)
bool wxFrame::Destroy(void)
{
GetEventHandler()->ProcessEvent(commandEvent);
}
-void wxFrame::OnIdle(wxIdleEvent& event)
-{
- DoMenuUpdates();
-}
-
-// Query app for menu item updates (called from OnIdle)
-void wxFrame::DoMenuUpdates(void)
-{
- wxMenuBar* bar = GetMenuBar();
- if (!bar)
- return;
-
- int i;
- for (i = 0; i < bar->m_menuCount; i++)
- {
- wxMenu* menu = bar->m_menus[i];
-
- DoMenuUpdates(menu);
- }
-}
-
-void wxFrame::DoMenuUpdates(wxMenu* menu)
-{
- wxNode* node = menu->m_menuItems.First();
- while (node)
- {
- wxMenuItem* item = (wxMenuItem*) node->Data();
- if ( !item->IsSeparator() )
- {
- wxWindowID id = item->GetId();
- wxUpdateUIEvent event(id);
- event.SetEventObject( this );
-
- if (GetEventHandler()->ProcessEvent(event))
- {
- if (event.GetSetText())
- menu->SetLabel(id, event.GetText());
- if (event.GetSetChecked())
- menu->Check(id, event.GetChecked());
- if (event.GetSetEnabled())
- menu->Enable(id, event.GetEnabled());
- }
-
- if (item->GetSubMenu())
- DoMenuUpdates(item->GetSubMenu());
- }
- node = node->Next();
- }
-}