#include <Xm/Xm.h>
#include <X11/Shell.h>
+#include <X11/Core.h>
#if XmVersion >= 1002
#include <Xm/XmAll.h>
#else
#endif
#include "wx/motif/private.h"
+#include "wx/unix/utilsx11.h"
// ----------------------------------------------------------------------------
// private functions
m_windowStyle = style;
- m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
+ m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
m_foregroundColour = *wxBLACK;
- m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+ m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
if ( id > -1 )
m_windowId = id;
decor |= MWM_DECOR_TITLE;
if (style & wxTHICK_FRAME)
decor |= MWM_DECOR_BORDER;
- if (style & wxTHICK_FRAME)
- decor |= MWM_DECOR_BORDER;
if (style & wxMINIMIZE_BOX)
decor |= MWM_DECOR_MINIMIZE;
if (style & wxMAXIMIZE_BOX)
m_frameStatusBar = NULL;
}
+ if (m_frameToolBar)
+ {
+ delete m_frameToolBar;
+ m_frameToolBar = NULL;
+ }
+
DestroyChildren();
if (m_workArea)
XtDestroyWidget ((Widget) m_workArea);
}
+ // We need to destroy the base class icons here before we stop
+ // the event loop. This is a hack until we have a real top level
+ // window (which would be responsible for killing the event loop).
+ m_icons.m_icons.Empty();
+
if (m_frameWidget)
{
wxDeleteWindowFromTable((Widget) m_frameWidget);
NULL);
}
-void wxFrame::SetIcon(const wxIcon& icon)
+void wxFrame::DoSetIcon(const wxIcon& icon)
{
- m_icon = icon;
-
if (!m_frameShell)
return;
XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon.GetPixmap(), NULL);
}
+void wxFrame::SetIcon(const wxIcon& icon)
+{
+ SetIcons( wxIconBundle( icon ) );
+}
+
+void wxFrame::SetIcons(const wxIconBundle& icons)
+{
+ wxFrameBase::SetIcons( icons );
+
+ if (!m_frameShell)
+ return;
+
+ DoSetIcon( m_icons.GetIcon( -1 ) );
+ wxSetIconsX11(GetXDisplay(),
+ (WXWindow) XtWindow( (Widget) m_frameShell ), icons);
+}
+
void wxFrame::PositionStatusBar()
{
if (!m_frameStatusBar)
// Responds to colour changes, and passes event on to children.
void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
{
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
+ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
Refresh();
if ( m_frameStatusBar )