if (m_frameMenuBar)
{
+ m_frameMenuBar->DestroyMenuBar();
+
// Hack to stop core dump on Ultrix, OSF, for some strange reason.
#if MOTIF_MENUBAR_DELETE_FIX
GetMenuBar()->SetMainWidget((WXWidget) NULL);
if (!(height == -1 && width == -1))
{
PreResize();
+ /* JACS: not sure if this is necessary
wxSizeEvent sizeEvent(wxSize(width, height), GetId());
sizeEvent.SetEventObject(this);
GetEventHandler()->ProcessEvent(sizeEvent);
+ */
}
}
bool wxFrame::Show(bool show)
{
+ if (!m_frameShell)
+ return wxWindow::Show(show);
+
m_visibleStatus = show; /* show-&-hide fix */
m_isShown = show;
if (!iconize)
Show(TRUE);
- XtVaSetValues((Widget) m_frameShell, XmNiconic, (Boolean)iconize, NULL);
+ if (m_frameShell)
+ XtVaSetValues((Widget) m_frameShell, XmNiconic, (Boolean)iconize, NULL);
}
// Equivalent to maximize/restore in Windows
{
Show(TRUE);
- if (maximize)
+ if (maximize && m_frameShell)
XtVaSetValues((Widget) m_frameShell, XmNiconic, FALSE, NULL);
}
bool wxFrame::IsIconized() const
{
+ if (!m_frameShell)
+ return FALSE;
+
Boolean iconic;
XtVaGetValues((Widget) m_frameShell, XmNiconic, &iconic, NULL);
return iconic;
{
m_icon = icon;
- // TODO
- /*
+ if (!m_frameShell)
+ return;
+
if (!icon.Ok() || !icon.GetPixmap())
return;
- XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon->.GetPixmap(), NULL);
- */
+ XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon.GetPixmap(), NULL);
}
wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id,
}
// Currently can't set it twice
- wxASSERT_MSG( (m_frameMenuBar == (wxMenuBar*) NULL), "Cannot set the menubar more than once");
-
- m_frameMenuBar = menuBar;
-
- Widget menuBarW = XmCreateMenuBar ((Widget) m_frameWidget, "MenuBar", NULL, 0);
- m_frameMenuBar->SetMainWidget( (WXWidget) menuBarW);
+// wxASSERT_MSG( (m_frameMenuBar == (wxMenuBar*) NULL), "Cannot set the menubar more than once");
- int i;
- for (i = 0; i < menuBar->GetMenuCount(); i++)
+ if (m_frameMenuBar)
{
- wxMenu *menu = menuBar->GetMenu(i);
- wxString title(menuBar->m_titles[i]);
- menu->SetButtonWidget(menu->CreateMenu (menuBar, menuBarW, menu, title, TRUE));
-
- /*
- * COMMENT THIS OUT IF YOU DON'T LIKE A RIGHT-JUSTIFIED HELP MENU
- */
- wxStripMenuCodes ((char*) (const char*) title, wxBuffer);
-
- if (strcmp (wxBuffer, "Help") == 0)
- XtVaSetValues ((Widget) menuBarW, XmNmenuHelpWidget, (Widget) menu->GetButtonWidget(), NULL);
+ m_frameMenuBar->DestroyMenuBar();
+ delete m_frameMenuBar;
}
- XtRealizeWidget ((Widget) menuBarW);
- XtManageChild ((Widget) menuBarW);
- menuBar->SetMenuBarFrame(this);
+ m_frameMenuBar = menuBar;
+ m_frameMenuBar->CreateMenuBar(this);
}
void wxFrame::Fit()
void wxFrame::ChangeBackgroundColour()
{
- // TODO
+ if (GetClientWidget())
+ DoChangeBackgroundColour(GetClientWidget(), m_backgroundColour);
}
void wxFrame::ChangeForegroundColour()
{
- // TODO
+ if (GetClientWidget())
+ DoChangeForegroundColour(GetClientWidget(), m_foregroundColour);
}
void wxCloseFrameCallback(Widget widget, XtPointer client_data, XmAnyCallbackStruct *cbs)