]> git.saurik.com Git - wxWidgets.git/commitdiff
fixes for stock items not known to some GTK+ versions
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 15 Aug 2004 19:08:22 +0000 (19:08 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 15 Aug 2004 19:08:22 +0000 (19:08 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/stockitem.cpp
src/gtk/button.cpp
src/gtk1/button.cpp

index 01b295f2941c4f124157e2098f287ec2cf631c3e..0f54c36dc5d8dc375f7efb213ed8566b4ff6fa69 100644 (file)
@@ -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)
index 7b8ef4ed8c9a41c73486b1c1da369a3e7bb0773e..629420edf76f49c82113f3c6ae9b139db3d94ea0 100644 (file)
@@ -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);
index 7b8ef4ed8c9a41c73486b1c1da369a3e7bb0773e..629420edf76f49c82113f3c6ae9b139db3d94ea0 100644 (file)
@@ -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);