From c20889abf85dddecf763d8126141d3168cba08fb Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 15 Aug 2004 19:08:22 +0000 Subject: [PATCH] fixes for stock items not known to some GTK+ versions git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/stockitem.cpp | 21 ++++++++++++++++----- src/gtk/button.cpp | 16 +++++++++++++--- src/gtk1/button.cpp | 16 +++++++++++++--- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/common/stockitem.cpp b/src/common/stockitem.cpp index 01b295f294..0f54c36dc5 100644 --- a/src/common/stockitem.cpp +++ b/src/common/stockitem.cpp @@ -109,10 +109,21 @@ wxString wxGetStockItemLabel(wxStockItemID item) const char *wxStockItemToGTK(wxStockItemID item) { - #define STOCKITEM(stockid) \ - case wx##stockid: \ - return GTK_##stockid; \ + #define STOCKITEM(stockid) \ + case wx##stockid: \ + return GTK_##stockid; \ break; + + #define STOCKITEM_MISSING(stockid) \ + case wx##stockid: \ + return wxEmptyString; \ + break; + + #if GTK_CHECK_VERSION(2,4,0) + #define STOCKITEM_24(stockid) STOCKITEM(stockid) + #else + #define STOCKITEM_24(stockid) STOCKITEM_MISSING(stockid) + #endif switch (item) { @@ -133,7 +144,7 @@ const char *wxStockItemToGTK(wxStockItemID item) STOCKITEM(STOCK_GO_UP) STOCKITEM(STOCK_HELP) STOCKITEM(STOCK_HOME) - STOCKITEM(STOCK_INDENT) + STOCKITEM_24(STOCK_INDENT) STOCKITEM(STOCK_INDEX) STOCKITEM(STOCK_ITALIC) STOCKITEM(STOCK_JUSTIFY_CENTER) @@ -160,7 +171,7 @@ const char *wxStockItemToGTK(wxStockItemID item) STOCKITEM(STOCK_UNDELETE) STOCKITEM(STOCK_UNDERLINE) STOCKITEM(STOCK_UNDO) - STOCKITEM(STOCK_UNINDENT) + STOCKITEM_24(STOCK_UNINDENT) STOCKITEM(STOCK_YES) STOCKITEM(STOCK_ZOOM_100) STOCKITEM(STOCK_ZOOM_FIT) diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index 7b8ef4ed8c..629420edf7 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -157,9 +157,19 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, wxStockItemID stock, const wxValidator& validator, const wxString& name) { #ifdef __WXGTK20__ - m_widget = gtk_button_new_from_stock(wxStockItemToGTK(stock)); - return Create(parent, id, wxEmptyString, - pos, wxDefaultSize, style, validator, name); + const char *gtkstock = wxStockItemToGTK(stock); + if (gtkstock) + { + m_widget = gtk_button_new_from_stock(gtkstock); + return Create(parent, id, wxEmptyString, + pos, wxDefaultSize, style, validator, name); + } + else + { + // not supported by this GTK+ version + return Create(parent, id, wxGetStockItemLabel(stock), + pos, wxDefaultSize, style, validator, name); + } #else return CreateStock(parent, id, stock, descriptiveLabel, pos, style, validator, name); diff --git a/src/gtk1/button.cpp b/src/gtk1/button.cpp index 7b8ef4ed8c..629420edf7 100644 --- a/src/gtk1/button.cpp +++ b/src/gtk1/button.cpp @@ -157,9 +157,19 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, wxStockItemID stock, const wxValidator& validator, const wxString& name) { #ifdef __WXGTK20__ - m_widget = gtk_button_new_from_stock(wxStockItemToGTK(stock)); - return Create(parent, id, wxEmptyString, - pos, wxDefaultSize, style, validator, name); + const char *gtkstock = wxStockItemToGTK(stock); + if (gtkstock) + { + m_widget = gtk_button_new_from_stock(gtkstock); + return Create(parent, id, wxEmptyString, + pos, wxDefaultSize, style, validator, name); + } + else + { + // not supported by this GTK+ version + return Create(parent, id, wxGetStockItemLabel(stock), + pos, wxDefaultSize, style, validator, name); + } #else return CreateStock(parent, id, stock, descriptiveLabel, pos, style, validator, name); -- 2.47.2