X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/903f689bf7c3c379cba45881373aa9bdd15d6e70..32e9da8bfaafe4f462f7473a7e11e3387847e121:/src/gtk1/dialog.cpp?ds=sidebyside diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp index 5e7a3a60b6..9bbc5f9a28 100644 --- a/src/gtk1/dialog.cpp +++ b/src/gtk1/dialog.cpp @@ -2,9 +2,8 @@ // Name: dialog.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 ///////////////////////////////////////////////////////////////////////////// @@ -22,7 +21,8 @@ extern wxList wxPendingDelete; //----------------------------------------------------------------------------- -// delete +// "delete_event" +//----------------------------------------------------------------------------- bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) { @@ -36,27 +36,27 @@ bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED win->Close(); return TRUE; -}; +} //----------------------------------------------------------------------------- // wxDialog //----------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(wxDialog,wxWindow) +BEGIN_EVENT_TABLE(wxDialog,wxPanel) EVT_BUTTON (wxID_OK, wxDialog::OnOK) EVT_BUTTON (wxID_CANCEL, wxDialog::OnCancel) EVT_BUTTON (wxID_APPLY, wxDialog::OnApply) EVT_CLOSE (wxDialog::OnCloseWindow) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxDialog,wxWindow) +IMPLEMENT_DYNAMIC_CLASS(wxDialog,wxPanel) wxDialog::wxDialog(void) { m_title = ""; m_modalShowing = FALSE; wxTopLevelWindows.Insert( this ); -}; +} wxDialog::wxDialog( wxWindow *parent, wxWindowID id, const wxString &title, @@ -66,7 +66,7 @@ wxDialog::wxDialog( wxWindow *parent, m_modalShowing = FALSE; wxTopLevelWindows.Insert( this ); Create( parent, id, title, pos, size, style, name ); -}; +} bool wxDialog::Create( wxWindow *parent, wxWindowID id, const wxString &title, @@ -101,30 +101,30 @@ bool wxDialog::Create( wxWindow *parent, PostCreation(); return TRUE; -}; +} wxDialog::~wxDialog(void) { wxTopLevelWindows.DeleteObject( this ); if (wxTopLevelWindows.Number() == 0) wxTheApp->ExitMainLoop(); -}; +} void wxDialog::SetTitle(const wxString& title ) { m_title = title; if (m_title.IsNull()) m_title = ""; gtk_window_set_title( GTK_WINDOW(m_widget), m_title ); -}; +} wxString wxDialog::GetTitle(void) const { return (wxString&)m_title; -}; +} void wxDialog::OnApply( wxCommandEvent &WXUNUSED(event) ) { if (Validate()) TransferDataFromWindow(); -}; +} void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) ) { @@ -136,8 +136,8 @@ void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) ) { SetReturnCode(wxID_CANCEL); this->Show(FALSE); - }; -}; + } +} void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) ) { @@ -151,14 +151,14 @@ void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) ) { SetReturnCode(wxID_OK); this->Show(FALSE); - }; - }; -}; + } + } +} void wxDialog::OnPaint( wxPaintEvent& WXUNUSED(event) ) { // yes -}; +} bool wxDialog::OnClose(void) { @@ -189,8 +189,8 @@ void wxDialog::OnCloseWindow(wxCloseEvent& event) if (GetEventHandler()->OnClose() || event.GetForce()) { this->Destroy(); - }; -}; + } +} void wxDialog::ImplementSetPosition(void) { @@ -207,21 +207,41 @@ void wxDialog::Centre( int direction ) bool wxDialog::Show( bool show ) { - if (!show && IsModal() && m_modalShowing) + if (!show && IsModal()) { EndModal( wxID_CANCEL ); - }; + } wxWindow::Show( show ); if (show) InitDialog(); return TRUE; -}; +} + +bool wxDialog::IsModal(void) const +{ + return m_modalShowing; +} + +void wxDialog::SetModal( bool WXUNUSED(flag) ) +{ +/* + if (flag) + m_windowStyle |= wxDIALOG_MODAL; + else + if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL; +*/ + wxFAIL_MSG( "wxDialog:SetModal obsolete now" ); +} int wxDialog::ShowModal(void) { - if (m_modalShowing) return GetReturnCode(); + if (IsModal()) + { + wxFAIL_MSG( "wxDialog:ShowModal called twice" ); + return GetReturnCode(); + } Show( TRUE ); @@ -232,25 +252,40 @@ int wxDialog::ShowModal(void) gtk_grab_remove( m_widget ); return GetReturnCode(); -}; +} void wxDialog::EndModal( int retCode ) { SetReturnCode( retCode ); - if (!m_modalShowing) + if (!IsModal()) { - wxFAIL_MSG( "wxDialog: called EndModal twice" ); + wxFAIL_MSG( "wxDialog:EndModal called twice" ); return; - }; + } m_modalShowing = FALSE; gtk_main_quit(); -}; + + Show( FALSE ); +} void wxDialog::InitDialog(void) { wxWindow::InitDialog(); -}; +} + +void wxDialog::SetIcon( const wxIcon &icon ) +{ + m_icon = icon; + if (!icon.Ok()) return; + + wxMask *mask = icon.GetMask(); + GdkBitmap *bm = (GdkBitmap *) NULL; + if (mask) bm = mask->GetBitmap(); + + gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); +} +