// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "toplevel.h"
#endif
#include "wx/app.h"
#ifdef __VMS__
- #pragma message disable nosimpint
+#define XtDisplay XTDISPLAY
+#define XtParent XTPARENT
+#define XtScreen XTSCREEN
+#define XtWindow XTWINDOW
+#pragma message disable nosimpint
#endif
#include <Xm/Xm.h>
// wxTopLevelWindowMotif implementation
// ===========================================================================
-wxTopLevelWindowMotif::~wxTopLevelWindowMotif()
+void wxTopLevelWindowMotif::PreDestroy()
{
- wxTopLevelWindows.DeleteObject(this);
-
if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL )
wxModelessWindows.DeleteObject(this);
wxTLWEventHandler,
(XtPointer)this );
}
+}
- DoDestroy();
-
+wxTopLevelWindowMotif::~wxTopLevelWindowMotif()
+{
SetMainWidget( (WXWidget)0 );
-
- // If this is the last top-level window, exit.
- if (wxTheApp && (wxTopLevelWindows.Number() == 0))
- {
- wxTheApp->SetTopWindow(NULL);
-
- if (wxTheApp->GetExitOnFrameDelete())
- {
- wxTheApp->ExitMainLoop();
- }
- }
}
void wxTopLevelWindowMotif::Init()
return FALSE;
}
+void wxTopLevelWindowMotif::SetSizeHints( int minW, int minH,
+ int maxW, int maxH,
+ int incW, int incH )
+{
+ wxTopLevelWindowBase::SetSizeHints( minW, minH, maxW, maxH, incW, incH );
+
+ int count = 0;
+ Arg args[6];
+
+ if( minW > -1 ) { XtSetArg( args[count], XmNminWidth, minW ); ++count; }
+ if( minH > -1 ) { XtSetArg( args[count], XmNminHeight, minH ); ++count; }
+ if( maxW > -1 ) { XtSetArg( args[count], XmNmaxWidth, maxW ); ++count; }
+ if( maxH > -1 ) { XtSetArg( args[count], XmNmaxHeight, maxH ); ++count; }
+ if( incW > -1 ) { XtSetArg( args[count], XmNwidthInc, incW ); ++count; }
+ if( incH > -1 ) { XtSetArg( args[count], XmNheightInc, incH ); ++count; }
+
+ XtSetValues( (Widget)GetShellWidget(), args, count );
+}
+
+bool wxTopLevelWindowMotif::SetShape( const wxRegion& region )
+{
+ return wxDoSetShape( (Display*)GetXDisplay(),
+ XtWindow( (Widget)GetShellWidget() ),
+ region );
+}
+
// ---------------------------------------------------------------------------
// Callback definition
// ---------------------------------------------------------------------------