#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
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)