X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f2aa6287bd281037a8c329c65219324f81c613c..5db1a502b4bf38f36a14c1377618d9eaae4c8e79:/src/gtk1/frame.cpp diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 70a326b33d..838f26607c 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -2,9 +2,8 @@ // Name: frame.cpp // Purpose: // Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -27,7 +26,7 @@ // constants //----------------------------------------------------------------------------- -const int wxMENU_HEIGHT = 28; +const int wxMENU_HEIGHT = 30; const int wxSTATUS_HEIGHT = 25; //----------------------------------------------------------------------------- @@ -136,7 +135,10 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title, m_title = title; - m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); + GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; + if (style & wxSIMPLE_BORDER) win_type = GTK_WINDOW_POPUP; + + m_widget = gtk_window_new( win_type ); if ((size.x != -1) && (size.y != -1)) gtk_widget_set_usize( m_widget, m_width, m_height ); if ((pos.x != -1) && (pos.y != -1)) @@ -190,6 +192,8 @@ wxFrame::~wxFrame() bool wxFrame::Show( bool show ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + if (show) { wxSizeEvent event( wxSize(m_width,m_height), GetId() ); @@ -201,20 +205,23 @@ bool wxFrame::Show( bool show ) void wxFrame::Enable( bool enable ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + + if (!m_mainWindow) return; + wxWindow::Enable( enable ); gtk_widget_set_sensitive( m_mainWindow, enable ); } void wxFrame::OnCloseWindow( wxCloseEvent &event ) { - if ( GetEventHandler()->OnClose() || event.GetForce()) - { - this->Destroy(); - } + if (GetEventHandler()->OnClose() || event.GetForce()) this->Destroy(); } bool wxFrame::Destroy() { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this); @@ -229,6 +236,8 @@ void wxFrame::ImplementSetPosition(void) void wxFrame::Centre( int direction ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + if (direction & wxHORIZONTAL == wxHORIZONTAL) m_x = (gdk_screen_width () - m_width) / 2; if (direction & wxVERTICAL == wxVERTICAL) m_y = (gdk_screen_height () - m_height) / 2; ImplementSetPosition(); @@ -236,6 +245,8 @@ void wxFrame::Centre( int direction ) void wxFrame::GetClientSize( int *width, int *height ) const { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxWindow::GetClientSize( width, height ); if (height) { @@ -252,6 +263,8 @@ void wxFrame::GetClientSize( int *width, int *height ) const void wxFrame::SetClientSize( int const width, int const height ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + int h = height; if (m_frameMenuBar) h += wxMENU_HEIGHT; if (m_frameStatusBar) h += wxSTATUS_HEIGHT; @@ -342,6 +355,8 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + if ( GetAutoLayout() ) Layout(); else { @@ -378,6 +393,12 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) ) void wxFrame::AddChild( wxWindow *child ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxASSERT_MSG( (m_wxwindow != NULL), "invalid frame" ); + wxASSERT_MSG( (m_mainWindow != NULL), "invalid frame" ); + wxASSERT_MSG( (child != NULL), "invalid child" ); + wxASSERT_MSG( (child->m_widget != NULL), "invalid child" ); + // wxFrame and wxDialog as children aren't placed into the parents if (IS_KIND_OF(child,wxMDIChildFrame)) wxFAIL_MSG( "wxFrame::AddChild error.\n" ); @@ -424,6 +445,10 @@ static void SetInvokingWindow( wxMenu *menu, wxWindow *win ) void wxFrame::SetMenuBar( wxMenuBar *menuBar ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxASSERT_MSG( (m_wxwindow != NULL), "invalid frame" ); + wxASSERT_MSG( (m_mainWindow != NULL), "invalid frame" ); + m_frameMenuBar = menuBar; if (m_frameMenuBar) @@ -452,6 +477,8 @@ wxMenuBar *wxFrame::GetMenuBar(void) const wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxCHECK_MSG( m_frameToolBar == NULL, FALSE, "recreating toolbar in wxFrame" ); m_addPrivateChild = TRUE; @@ -473,6 +500,8 @@ wxToolBar *wxFrame::GetToolBar(void) const wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, "recreating status bar in wxFrame" ); m_frameStatusBar = OnCreateStatusBar( number, style, id, name ); @@ -503,6 +532,8 @@ wxStatusBar *wxFrame::OnCreateStatusBar( int number, long style, wxWindowID id, void wxFrame::SetStatusText(const wxString& text, int number) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); m_frameStatusBar->SetStatusText(text, number); @@ -510,6 +541,8 @@ void wxFrame::SetStatusText(const wxString& text, int number) void wxFrame::SetStatusWidths(int n, const int widths_field[] ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); m_frameStatusBar->SetStatusWidths(n, widths_field); @@ -522,6 +555,8 @@ wxStatusBar *wxFrame::GetStatusBar(void) const void wxFrame::SetTitle( const wxString &title ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + m_title = title; if (m_title.IsNull()) m_title = ""; gtk_window_set_title( GTK_WINDOW(m_widget), title ); @@ -529,6 +564,8 @@ void wxFrame::SetTitle( const wxString &title ) void wxFrame::SetIcon( const wxIcon &icon ) { + wxASSERT_MSG( (m_widget != NULL), "invalid frame" ); + m_icon = icon; if (!icon.Ok()) return; @@ -538,4 +575,3 @@ void wxFrame::SetIcon( const wxIcon &icon ) gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); } -