X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e6b915ed4fcc54e5bc6997e395642f8ac49670b8..423adfde5464b1c0d053f40cdac6768ae3a15abb:/src/motif/toplevel.cpp?ds=sidebyside diff --git a/src/motif/toplevel.cpp b/src/motif/toplevel.cpp index a1df9f3b10..ec58a6fa71 100644 --- a/src/motif/toplevel.cpp +++ b/src/motif/toplevel.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: motif/toplevel.cpp +// Name: src/motif/toplevel.cpp // Purpose: wxTopLevelWindow Motif implementation // Author: Mattia Barbon // Modified by: @@ -17,21 +17,18 @@ // 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" +#include "wx/settings.h" #include "wx/app.h" +#ifndef WX_PRECOMP + #include "wx/app.h" +#endif + #ifdef __VMS__ -#define XtDisplay XTDISPLAY -#define XtParent XTPARENT -#define XtScreen XTSCREEN -#define XtWindow XTWINDOW #pragma message disable nosimpint #endif @@ -69,16 +66,7 @@ static void wxTLWEventHandler( Widget wid, 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(); @@ -120,8 +108,11 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id, 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; @@ -162,10 +153,9 @@ bool wxTopLevelWindowMotif::Create( wxWindow *parent, wxWindowID id, if( m_windowStyle & wxSYSTEM_MENU ) decor |= MWM_DECOR_MENU; if( ( m_windowStyle & wxCAPTION ) || - ( m_windowStyle & wxTINY_CAPTION_HORIZ ) || - ( m_windowStyle & wxTINY_CAPTION_VERT ) ) + ( m_windowStyle & wxTINY_CAPTION) ) 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; @@ -274,8 +264,8 @@ WXWidget wxTopLevelWindowMotif::GetShellWidget() const 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; @@ -322,7 +312,7 @@ bool wxTopLevelWindowMotif::IsIconized() const XmNiconic, &iconic, NULL ); - return iconic; + return (iconic == True); } void wxTopLevelWindowMotif::Maximize( bool maximize ) @@ -377,7 +367,7 @@ static void wxCloseTLWCallback( Widget WXUNUSED(widget), XtPointer client_data, closeEvent.SetEventObject( tlw ); // May delete the dialog (with delayed deletion) - tlw->GetEventHandler()->ProcessEvent(closeEvent); + tlw->HandleWindowEvent(closeEvent); } void wxTLWEventHandler( Widget wid, @@ -396,7 +386,7 @@ void wxTLWEventHandler( Widget wid, { wxevent.SetEventObject( tlw ); wxevent.SetId( tlw->GetId() ); - tlw->GetEventHandler()->ProcessEvent( wxevent ); + tlw->HandleWindowEvent( wxevent ); } else { @@ -410,7 +400,7 @@ void wxTLWEventHandler( Widget wid, keyEvent.SetEventObject( tlw ); keyEvent.SetId( tlw->GetId() ); keyEvent.SetEventType( wxEVT_CHAR_HOOK ); - if( tlw->GetEventHandler()->ProcessEvent( keyEvent ) ) + if( tlw->HandleWindowEvent( keyEvent ) ) { *continueToDispatch = False; return; @@ -422,10 +412,10 @@ void wxTLWEventHandler( Widget wid, 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 ); - tlw->GetEventHandler()->ProcessEvent( keyEvent ); + tlw->HandleWindowEvent( keyEvent ); } } } @@ -434,4 +424,3 @@ void wxTLWEventHandler( Widget wid, *continueToDispatch = True; } -