From: Robert Roebling Date: Fri, 27 Oct 2006 08:18:26 +0000 (+0000) Subject: Add EnableCloseButton() as wxMSW does. Use it in X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0d635035cc67f4d0d92b7afb79871b650406c262 Add EnableCloseButton() as wxMSW does. Use it in wxProgressDialog so that without wxPD_CAN_ABORT you cannot close the dialog. Closes [ 1585563 ] wxProgressDialog @ GTK CloseButton git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/toplevel.h b/include/wx/gtk/toplevel.h index ac0081c8fc..cd48f4f7e1 100644 --- a/include/wx/gtk/toplevel.h +++ b/include/wx/gtk/toplevel.h @@ -51,6 +51,8 @@ public: virtual void SetIcons(const wxIconBundle& icons); virtual void Restore(); + virtual bool EnableCloseButton(bool enable = true); + virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); virtual bool IsFullScreen() const { return m_fsIsShowing; }; diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 95e31b363a..d243ce4b58 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -694,7 +694,18 @@ wxTopLevelWindowGTK::~wxTopLevelWindowGTK() g_lastActiveFrame = NULL; } - +bool wxTopLevelWindowGTK::EnableCloseButton( bool enable ) +{ + if (enable) + m_gdkFunc |= GDK_FUNC_CLOSE; + else + m_gdkFunc &= ~GDK_FUNC_CLOSE; + + if (GTK_WIDGET_REALIZED(m_widget) && (m_widget->window)) + gdk_window_set_functions( m_widget->window, (GdkWMFunction)m_gdkFunc ); + + return true; +} bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) {