X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/670f9935630beb2123a5ca62894ae92a3f0efa4f..4cd4a9ff70cdfdfc054747d7dae6101da3f94c03:/src/gtk1/toplevel.cpp diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp index b34f80b278..19067668d0 100644 --- a/src/gtk1/toplevel.cpp +++ b/src/gtk1/toplevel.cpp @@ -27,14 +27,14 @@ #ifndef WX_PRECOMP #include "wx/log.h" #include "wx/app.h" + #include "wx/dcclient.h" + #include "wx/dialog.h" + #include "wx/timer.h" + #include "wx/settings.h" + #include "wx/control.h" #endif -#include "wx/dialog.h" -#include "wx/control.h" -#include "wx/dcclient.h" #include "wx/gtk1/private.h" -#include "wx/timer.h" -#include "wx/settings.h" #include "wx/evtloop.h" #include @@ -61,15 +61,13 @@ extern bool g_isIdle; // data // ---------------------------------------------------------------------------- -extern wxList wxPendingDelete; - extern int g_openDialogs; extern wxWindowGTK *g_delayedFocus; // the frame that is currently active (i.e. its child has focus). It is // used to generate wxActivateEvents -static wxTopLevelWindowGTK *g_activeFrame = (wxTopLevelWindowGTK*) NULL; -static wxTopLevelWindowGTK *g_lastActiveFrame = (wxTopLevelWindowGTK*) NULL; +static wxTopLevelWindowGTK *g_activeFrame = NULL; +static wxTopLevelWindowGTK *g_lastActiveFrame = NULL; // if we detect that the app has got/lost the focus, we set this variable to // either TRUE or FALSE and an activate event will be sent during the next @@ -161,7 +159,7 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame); wxActivateEvent event(wxEVT_ACTIVATE, true, g_activeFrame->GetId()); event.SetEventObject(g_activeFrame); - g_activeFrame->GetEventHandler()->ProcessEvent(event); + g_activeFrame->HandleWindowEvent(event); return FALSE; } @@ -172,9 +170,9 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, //----------------------------------------------------------------------------- extern "C" { -static gint gtk_frame_focus_out_callback( GtkWidget *widget, +static gint gtk_frame_focus_out_callback( GtkWidget *WXUNUSED(widget), GdkEventFocus *WXUNUSED(gdk_event), - wxTopLevelWindowGTK *win ) + wxTopLevelWindowGTK *WXUNUSED(win) ) { if (g_isIdle) wxapp_install_idle_handler(); @@ -193,7 +191,7 @@ static gint gtk_frame_focus_out_callback( GtkWidget *widget, wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame); wxActivateEvent event(wxEVT_ACTIVATE, false, g_activeFrame->GetId()); event.SetEventObject(g_activeFrame); - g_activeFrame->GetEventHandler()->ProcessEvent(event); + g_activeFrame->HandleWindowEvent(event); g_activeFrame = NULL; } @@ -293,7 +291,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); + win->HandleWindowEvent( mevent ); return FALSE; } @@ -329,7 +327,7 @@ gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget), // reset the icon wxIconBundle iconsOld = win->GetIcons(); - if ( iconsOld.GetIcon(-1).Ok() ) + if ( !iconsOld.IsEmpty() ) { win->SetIcon( wxNullIcon ); win->SetIcons( iconsOld ); @@ -457,7 +455,7 @@ void wxTopLevelWindowGTK::Init() m_sizeSet = false; m_miniEdge = 0; m_miniTitle = 0; - m_mainWidget = (GtkWidget*) NULL; + m_mainWidget = NULL; m_insertInClientArea = true; m_isIconized = false; m_fsIsShowing = false; @@ -658,11 +656,11 @@ wxTopLevelWindowGTK::~wxTopLevelWindowGTK() { if (m_grabbed) { - wxASSERT_MSG( false, _T("Window still grabbed")); + wxASSERT_MSG( false, wxT("Window still grabbed")); RemoveGrab(); } - m_isBeingDeleted = true; + SendDestroyEvent(); // it may also be GtkScrolledWindow in the case of an MDI child if (GTK_IS_WINDOW(m_widget)) @@ -992,7 +990,7 @@ void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), : maxHeight ; gtk_window_set_geometry_hints( GTK_WINDOW(m_widget), - (GtkWidget*) NULL, + NULL, &geom, (GdkWindowHints) flag ); @@ -1022,7 +1020,7 @@ void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), // send size event to frame wxSizeEvent event( wxSize(m_width,m_height), GetId() ); event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); + HandleWindowEvent( event ); m_resizing = false; } @@ -1045,8 +1043,8 @@ void wxTopLevelWindowGTK::OnInternalIdle() if ( g_delayedFocus && wxGetTopLevelParent((wxWindow*)g_delayedFocus) == this ) { - wxLogTrace(_T("focus"), - _T("Setting focus from wxTLW::OnIdle() to %s(%s)"), + wxLogTrace(wxT("focus"), + wxT("Setting focus from wxTLW::OnIdle() to %s(%s)"), g_delayedFocus->GetClassInfo()->GetClassName(), g_delayedFocus->GetLabel().c_str()); @@ -1088,17 +1086,15 @@ void wxTopLevelWindowGTK::SetTitle( const wxString &title ) gtk_window_set_title( GTK_WINDOW(m_widget), wxGTK_CONV( title ) ); } -void wxTopLevelWindowGTK::SetIcon( const wxIcon &icon ) -{ - SetIcons( wxIconBundle( icon ) ); -} - void wxTopLevelWindowGTK::SetIcons( const wxIconBundle &icons ) { wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") ); wxTopLevelWindowBase::SetIcons( icons ); + if ( icons.IsEmpty() ) + return; + GdkWindow* window = m_widget->window; if (!window) return; @@ -1107,10 +1103,10 @@ void wxTopLevelWindowGTK::SetIcons( const wxIconBundle &icons ) if (icon.Ok()) { wxMask *mask = icon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; + GdkBitmap *bm = NULL; if (mask) bm = mask->GetBitmap(); - gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); + gdk_window_set_icon( m_widget->window, NULL, icon.GetPixmap(), bm ); } wxSetIconsX11( (WXDisplay*)GDK_WINDOW_XDISPLAY( window ), @@ -1121,14 +1117,14 @@ void wxTopLevelWindowGTK::SetIcons( const wxIconBundle &icons ) // frame state: maximized/iconized/normal // ---------------------------------------------------------------------------- -void wxTopLevelWindowGTK::Maximize(bool maximize) +void wxTopLevelWindowGTK::Maximize(bool WXUNUSED(maximize)) { - wxFAIL_MSG( _T("not implemented") ); + wxFAIL_MSG( wxT("not implemented") ); } bool wxTopLevelWindowGTK::IsMaximized() const { - // wxFAIL_MSG( _T("not implemented") ); + // wxFAIL_MSG( wxT("not implemented") ); // This is an approximation return false; @@ -1136,7 +1132,7 @@ bool wxTopLevelWindowGTK::IsMaximized() const void wxTopLevelWindowGTK::Restore() { - wxFAIL_MSG( _T("not implemented") ); + wxFAIL_MSG( wxT("not implemented") ); } void wxTopLevelWindowGTK::Iconize( bool iconize ) @@ -1146,7 +1142,7 @@ void wxTopLevelWindowGTK::Iconize( bool iconize ) GdkWindow *window = m_widget->window; // you should do it later, for example from OnCreate() handler - wxCHECK_RET( window, _T("frame not created yet - can't iconize") ); + wxCHECK_RET( window, wxT("frame not created yet - can't iconize") ); XIconifyWindow( GDK_WINDOW_XDISPLAY( window ), GDK_WINDOW_XWINDOW( window ), @@ -1214,7 +1210,7 @@ static bool do_shape_combine_region(GdkWindow* window, const wxRegion& region) bool wxTopLevelWindowGTK::SetShape(const wxRegion& region) { wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), false, - _T("Shaped windows must be created with the wxFRAME_SHAPED style.")); + wxT("Shaped windows must be created with the wxFRAME_SHAPED style.")); GdkWindow *window = NULL; if (m_wxwindow)