]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/toplevel.cpp
don't use wxVector<wxDataFormat> from wx/clipbrd.h as wxDataFormat definition is...
[wxWidgets.git] / src / motif / toplevel.cpp
index e5cd9e67170bf9548ccbcf7b8f982d70599d69e4..4f219ee426833ae5cdfa87020835b6ab68347712 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        motif/toplevel.cpp
+// Name:        src/motif/toplevel.cpp
 // Purpose:     wxTopLevelWindow Motif implementation
 // Author:      Mattia Barbon
 // Modified by:
 // Purpose:     wxTopLevelWindow Motif implementation
 // Author:      Mattia Barbon
 // Modified by:
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "toplevel.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #include "wx/toplevel.h"
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #include "wx/toplevel.h"
+#include "wx/settings.h"
 #include "wx/app.h"
 
 #include "wx/app.h"
 
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+#endif
+
 #ifdef __VMS__
 #ifdef __VMS__
-#define XtDisplay XTDISPLAY
-#define XtParent XTPARENT
-#define XtScreen XTSCREEN
-#define XtWindow XTWINDOW
 #pragma message disable nosimpint
 #endif
 
 #pragma message disable nosimpint
 #endif
 
@@ -69,16 +66,7 @@ static void wxTLWEventHandler( Widget wid,
 
 void wxTopLevelWindowMotif::PreDestroy()
 {
 
 void wxTopLevelWindowMotif::PreDestroy()
 {
-#ifdef __VMS
-#pragma message disable codcauunr
-#endif
-   if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL )
-        wxModelessWindows.DeleteObject(this);
-#ifdef __VMS
-#pragma message enable codcauunr
-#endif
-
-    m_icons.m_icons.Empty();
+    wxModelessWindows.DeleteObject(this);
 
     DestroyChildren();
 
 
     DestroyChildren();
 
@@ -116,12 +104,15 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id,
 
     if ( parent )
         parent->AddChild(this);
 
     if ( parent )
         parent->AddChild(this);
-    
+
     wxTopLevelWindows.Append(this);
 
     m_windowId = ( id > -1 ) ? id : NewControlId();
     wxTopLevelWindows.Append(this);
 
     m_windowId = ( id > -1 ) ? id : NewControlId();
+    // MBN: More backward compatible, but uglier
+    m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+    m_inheritFont = true;
 
 
-    bool retval = DoCreate( parent, id, title, pos, size, style, name );
+    bool retval = XmDoCreateTLW( parent, id, title, pos, size, style, name );
 
     if( !retval ) return false;
 
 
     if( !retval ) return false;
 
@@ -140,7 +131,7 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id,
     // Modified Steve Hammes for Motif 2.0
 #if (XmREVISION > 1 || XmVERSION > 1)
     XmAddWMProtocolCallback( shell, WM_DELETE_WINDOW,
     // Modified Steve Hammes for Motif 2.0
 #if (XmREVISION > 1 || XmVERSION > 1)
     XmAddWMProtocolCallback( shell, WM_DELETE_WINDOW,
-                             (XtCallbackProc)wxCloseTLWCallback, 
+                             (XtCallbackProc)wxCloseTLWCallback,
                              (XtPointer)this );
 #elif XmREVISION == 1
     XmAddWMProtocolCallback( shell, WM_DELETE_WINDOW,
                              (XtPointer)this );
 #elif XmREVISION == 1
     XmAddWMProtocolCallback( shell, WM_DELETE_WINDOW,
@@ -165,7 +156,7 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id,
             ( m_windowStyle & wxTINY_CAPTION_HORIZ ) ||
             ( m_windowStyle & wxTINY_CAPTION_VERT ) )
             decor |= MWM_DECOR_TITLE;
             ( m_windowStyle & wxTINY_CAPTION_HORIZ ) ||
             ( m_windowStyle & wxTINY_CAPTION_VERT ) )
             decor |= MWM_DECOR_TITLE;
-        if( m_windowStyle & wxTHICK_FRAME )
+        if( m_windowStyle & wxRESIZE_BORDER )
             decor |= MWM_DECOR_BORDER;
         if( m_windowStyle & wxMINIMIZE_BOX )
             decor |= MWM_DECOR_MINIMIZE;
             decor |= MWM_DECOR_BORDER;
         if( m_windowStyle & wxMINIMIZE_BOX )
             decor |= MWM_DECOR_MINIMIZE;
@@ -187,7 +178,7 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id,
     }
 
     XtAddEventHandler( (Widget)GetClientWidget(),
     }
 
     XtAddEventHandler( (Widget)GetClientWidget(),
-                       ButtonPressMask | ButtonReleaseMask | 
+                       ButtonPressMask | ButtonReleaseMask |
                        PointerMotionMask | KeyPressMask,
                        False,
                        wxTLWEventHandler,
                        PointerMotionMask | KeyPressMask,
                        False,
                        wxTLWEventHandler,
@@ -274,8 +265,8 @@ WXWidget wxTopLevelWindowMotif::GetShellWidget() const
     return (WXWidget) GetShell( this );
 }
 
     return (WXWidget) GetShell( this );
 }
 
-bool wxTopLevelWindowMotif::ShowFullScreen( bool show,
-                                            long style )
+bool wxTopLevelWindowMotif::ShowFullScreen( bool WXUNUSED(show),
+                                            long WXUNUSED(style) )
 {
     // TODO, see wxGTK
     return false;
 {
     // TODO, see wxGTK
     return false;
@@ -322,7 +313,7 @@ bool wxTopLevelWindowMotif::IsIconized() const
                    XmNiconic, &iconic,
                    NULL );
 
                    XmNiconic, &iconic,
                    NULL );
 
-    return iconic;
+    return (iconic == True);
 }
 
 void wxTopLevelWindowMotif::Maximize( bool maximize )
 }
 
 void wxTopLevelWindowMotif::Maximize( bool maximize )
@@ -354,7 +345,7 @@ void wxTopLevelWindowMotif::DoSetSizeHints( int minW, int minH,
     if( incW > -1 ) { XtSetArg( args[count], XmNwidthInc,  incW ); ++count; }
     if( incH > -1 ) { XtSetArg( args[count], XmNheightInc, incH ); ++count; }
 
     if( incW > -1 ) { XtSetArg( args[count], XmNwidthInc,  incW ); ++count; }
     if( incH > -1 ) { XtSetArg( args[count], XmNheightInc, incH ); ++count; }
 
-    XtSetValues( (Widget)GetShellWidget(), args, count ); 
+    XtSetValues( (Widget)GetShellWidget(), args, count );
 }
 
 bool wxTopLevelWindowMotif::SetShape( const wxRegion& region )
 }
 
 bool wxTopLevelWindowMotif::SetShape( const wxRegion& region )
@@ -377,7 +368,7 @@ static void wxCloseTLWCallback( Widget WXUNUSED(widget), XtPointer client_data,
     closeEvent.SetEventObject( tlw );
 
     // May delete the dialog (with delayed deletion)
     closeEvent.SetEventObject( tlw );
 
     // May delete the dialog (with delayed deletion)
-    tlw->GetEventHandler()->ProcessEvent(closeEvent);
+    tlw->HandleWindowEvent(closeEvent);
 }
 
 void wxTLWEventHandler( Widget wid,
 }
 
 void wxTLWEventHandler( Widget wid,
@@ -396,7 +387,7 @@ void wxTLWEventHandler( Widget wid,
         {
             wxevent.SetEventObject( tlw );
             wxevent.SetId( tlw->GetId() );
         {
             wxevent.SetEventObject( tlw );
             wxevent.SetId( tlw->GetId() );
-            tlw->GetEventHandler()->ProcessEvent( wxevent );
+            tlw->HandleWindowEvent( wxevent );
         }
         else
         {
         }
         else
         {
@@ -410,7 +401,7 @@ void wxTLWEventHandler( Widget wid,
                 keyEvent.SetEventObject( tlw );
                 keyEvent.SetId( tlw->GetId() );
                 keyEvent.SetEventType( wxEVT_CHAR_HOOK );
                 keyEvent.SetEventObject( tlw );
                 keyEvent.SetId( tlw->GetId() );
                 keyEvent.SetEventType( wxEVT_CHAR_HOOK );
-                if( tlw->GetEventHandler()->ProcessEvent( keyEvent ) )
+                if( tlw->HandleWindowEvent( keyEvent ) )
                 {
                     *continueToDispatch = False;
                     return;
                 {
                     *continueToDispatch = False;
                     return;
@@ -422,10 +413,10 @@ void wxTLWEventHandler( Widget wid,
                     keyEvent.SetEventType( wxEVT_KEY_DOWN );
 
                     // Only process OnChar if OnKeyDown didn't swallow it
                     keyEvent.SetEventType( wxEVT_KEY_DOWN );
 
                     // Only process OnChar if OnKeyDown didn't swallow it
-                    if( !tlw->GetEventHandler()->ProcessEvent( keyEvent ) )
+                    if( !tlw->HandleWindowEvent( keyEvent ) )
                     {
                         keyEvent.SetEventType( wxEVT_CHAR );
                     {
                         keyEvent.SetEventType( wxEVT_CHAR );
-                        tlw->GetEventHandler()->ProcessEvent( keyEvent );
+                        tlw->HandleWindowEvent( keyEvent );
                     }
                 }
             }
                     }
                 }
             }
@@ -434,4 +425,3 @@ void wxTLWEventHandler( Widget wid,
 
     *continueToDispatch = True;
 }
 
     *continueToDispatch = True;
 }
-