]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/frame.cpp
scope added for keyboard handler
[wxWidgets.git] / src / motif / frame.cpp
index ef7ab95de2a0783f5c211a59dc80721c91edcd8e..061c5a675b81e9176ba49c60606b83105575e629 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
 // ----------------------------------------------------------------------------
@@ -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);
@@ -505,10 +488,12 @@ void wxFrame::DoSetIcon(const wxIcon& icon)
     if (!m_frameShell)
         return;
 
-    if (!icon.Ok() || !icon.GetPixmap())
+    if (!icon.Ok() || !icon.GetDrawable())
         return;
 
-    XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon.GetPixmap(), NULL);
+    XtVaSetValues((Widget) m_frameShell,
+                  XtNiconPixmap, icon.GetDrawable(),
+                  NULL);
 }
 
 void wxFrame::SetIcon(const wxIcon& icon)
@@ -596,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.
@@ -692,13 +677,13 @@ void wxFrame::ChangeFont(bool WXUNUSED(keepOriginalSize))
 void wxFrame::ChangeBackgroundColour()
 {
     if (GetClientWidget())
-        DoChangeBackgroundColour(GetClientWidget(), m_backgroundColour);
+        wxDoChangeBackgroundColour(GetClientWidget(), m_backgroundColour);
 }
 
 void wxFrame::ChangeForegroundColour()
 {
     if (GetClientWidget())
-        DoChangeForegroundColour(GetClientWidget(), m_foregroundColour);
+        wxDoChangeForegroundColour(GetClientWidget(), m_foregroundColour);
 }
 
 /* MATTEW: Used to insure that hide-&-show within an event cycle works */