]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/frame.cpp
Unicode compilation fix for !wxUSE_ENHMETAFILE
[wxWidgets.git] / src / motif / frame.cpp
index d6fc8327db650d2bf2fd81509c26b2b04b2fbac4..6213bc498c3cc31e68a54b23a42ef5412a5dd9d8 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "frame.h"
 #endif
 
@@ -88,10 +88,6 @@ static void wxFrameMapProc(Widget frameShell, XtPointer clientData,
 extern wxList wxModelessWindows;
 extern wxList wxPendingDelete;
 
-// TODO: this should be tidied so that any frame can be the
-// top frame
-// static bool wxTopLevelUsed = FALSE;
-
 // ----------------------------------------------------------------------------
 // wxWin macros
 // ----------------------------------------------------------------------------
@@ -101,7 +97,7 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
     EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
 END_EVENT_TABLE()
 
-IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
+IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
 
 // ============================================================================
 // implementation
@@ -120,7 +116,6 @@ void wxFrame::Init()
     m_mainWidget = (WXWidget) NULL;;
     m_workArea = (WXWidget) NULL;;
     m_clientArea = (WXWidget) NULL;;
-    // m_visibleStatus = TRUE;
 }
 
 bool wxFrame::Create(wxWindow *parent,
@@ -206,25 +201,13 @@ bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
                         long style,
                         const wxString& name )
 {
-    static bool wxTopLevelUsed = FALSE; /* this is global */
-    WXWidget frameShell;
+    Widget frameShell;
 
-    if (wxTopLevelUsed)
-    {
-        // Change suggested by Matthew Flatt
-        frameShell = (WXWidget)XtAppCreateShell( name,
-                                                 wxTheApp->GetClassName(),
-                                                 topLevelShellWidgetClass,
-                                                 (Display*) wxGetDisplay(),
-                                                 NULL, 0 );
-    }
-    else
-    {
-        frameShell = wxTheApp->GetTopLevelWidget();
-        wxTopLevelUsed = TRUE;
-    }
+    frameShell = XtCreatePopupShell( name, topLevelShellWidgetClass,
+                                     (Widget)wxTheApp->GetTopLevelWidget(),
+                                     NULL, 0 );
 
-    XtVaSetValues((Widget) frameShell,
+    XtVaSetValues(frameShell,
         // Allows menu to resize
         XmNallowShellResize, True,
         XmNdeleteResponse, XmDO_NOTHING,
@@ -232,10 +215,10 @@ bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
         XmNiconic, (style & wxICONIZE) ? TRUE : FALSE,
         NULL);
 
-    m_frameShell = frameShell;
+    m_frameShell = (WXWidget)frameShell;
 
     m_mainWidget = (WXWidget) XtVaCreateManagedWidget("main_window",
-        xmMainWindowWidgetClass, (Widget) frameShell,
+        xmMainWindowWidgetClass, frameShell,
         XmNresizePolicy, XmRESIZE_NONE,
         NULL);
 
@@ -266,11 +249,11 @@ bool wxFrame::DoCreate( wxWindow* parent, wxWindowID id,
     XtFree( (char *)ptr );
 
     /* Part of show-&-hide fix */
-    XtAddEventHandler( (Widget)frameShell, StructureNotifyMask,
+    XtAddEventHandler( frameShell, StructureNotifyMask,
                        False, (XtEventHandler)wxFrameMapProc,
                        (XtPointer)this );
 
-    XtRealizeWidget((Widget) frameShell);
+    XtRealizeWidget(frameShell);
 
     wxAddWindowToTable( (Widget)m_workArea, this);
     wxAddWindowToTable( (Widget)m_clientArea, this);
@@ -598,7 +581,7 @@ void wxFrame::OnActivate(wxActivateEvent& event)
     if (!event.GetActive())
         return;
 
-    for(wxWindowList::Node *node = GetChildren().GetFirst(); node;
+    for(wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); node;
         node = node->GetNext())
     {
         // Find a child that's a subwindow, but not a dialog box.