ART(wxART_CDROM, GTK_STOCK_CDROM)
ART(wxART_HARDDISK, GTK_STOCK_HARDDISK)
ART(wxART_REMOVABLE, GTK_STOCK_HARDDISK)
+
+ ART(wxART_FILE_SAVE, GTK_STOCK_SAVE)
+ ART(wxART_FILE_SAVE_AS, GTK_STOCK_SAVE_AS)
+
+ ART(wxART_COPY, GTK_STOCK_COPY)
+ ART(wxART_CUT, GTK_STOCK_CUT)
+ ART(wxART_PASTE, GTK_STOCK_PASTE)
+ ART(wxART_DELETE, GTK_STOCK_DELETE)
+ ART(wxART_NEW, GTK_STOCK_NEW)
+
+ ART(wxART_UNDO, GTK_STOCK_UNDO)
+ ART(wxART_REDO, GTK_STOCK_REDO)
+
+ ART(wxART_QUIT, GTK_STOCK_QUIT)
+
+ ART(wxART_FIND, GTK_STOCK_FIND)
+ ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
#endif
return NULL;
#undef ART
}
-static GtkIconSize wxArtClientToIconSize(const wxArtClient& client)
+GtkIconSize wxArtClientToIconSize(const wxArtClient& client)
{
if (client == wxART_TOOLBAR)
return GTK_ICON_SIZE_LARGE_TOOLBAR;
else if (client == wxART_BUTTON)
return GTK_ICON_SIZE_BUTTON;
else
- return GTK_ICON_SIZE_BUTTON; // this is arbitrary
+ return GTK_ICON_SIZE_INVALID; // this is arbitrary
}
static GtkIconSize FindClosestIconSize(const wxSize& size)
s_sizes[5].icon = GTK_ICON_SIZE_DIALOG;
for (size_t i = 0; i < NUM_SIZES; i++)
{
- gtk_icon_size_lookup(s_sizes[i].icon,
+#if !defined(GDK_MULTITHREAD_SAFE)
+ gtk_icon_size_lookup(
+ s_sizes[i].icon,
+ &s_sizes[i].x, &s_sizes[i].y);
+#else
+#if GTK_VERSION_CHECK(2,2,0)
+ if (!gtk_verson_check(2,2,0))
+ gtk_icon_size_lookup_for_settings(
+ gtk_settings_get_for_screen(gdk_screen_get_default()),
+ s_sizes[i].icon,
+ &s_sizes[i].x, &s_sizes[i].y);
+ else
+#else // pre-GTK 2.2
+ {
+ // FIXME
+ gtk_icon_size_lookup(s_sizes[i].icon,
&s_sizes[i].x, &s_sizes[i].y);
+ }
+#endif
+#endif
}
s_sizesInitialized = true;
}
GTK_STATE_NORMAL, size, NULL, NULL);
}
-#if GTK_CHECK_VERSION(2,4,0)
+#ifdef __WXGTK24__
static GdkPixbuf *CreateThemeIcon(const char *iconname,
GtkIconSize iconsize, const wxSize& sz)
{
size.x,
(GtkIconLookupFlags)0, NULL);
}
-#endif // GTK+ >= 2.4.0
+#endif
wxBitmap wxGTK2ArtProvider::CreateBitmap(const wxArtID& id,
const wxArtClient& client,
wxArtClientToIconSize(client) :
FindClosestIconSize(size);
+ // we must have some size, this is arbitrary
+ if (stocksize == GTK_ICON_SIZE_INVALID)
+ stocksize = GTK_ICON_SIZE_BUTTON;
+
// allow passing GTK+ stock IDs to wxArtProvider:
if (!stockid)
stockid = id.ToAscii();
GdkPixbuf *pixbuf = CreateStockIcon(stockid, stocksize);
-#if GTK_CHECK_VERSION(2,4,0)
- if (!pixbuf)
- pixbuf = CreateThemeIcon(stockid, stocksize, size);
+#ifdef __WXGTK24__
+ if (!gtk_check_version(2,4,0))
+ {
+ if (!pixbuf)
+ pixbuf = CreateThemeIcon(stockid, stocksize, size);
+ }
#endif
if (pixbuf && size != wxDefaultSize &&