From b1ad1424b90dae37fa980059a8e6c8f4f3fd801d Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Mon, 18 Oct 2004 09:43:37 +0000 Subject: [PATCH] support alpha channel in menu items bitmaps, too git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/menu.cpp | 19 ++++++++++++++++--- src/gtk1/menu.cpp | 19 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index c72c5a8ee2..d957352dbf 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -1053,13 +1053,24 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos) { wxString text = mitem->GetText(); const wxBitmap *bitmap = &mitem->GetBitmap(); - GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); - GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL; #ifdef __WXGTK20__ menuItem = gtk_image_menu_item_new_with_mnemonic( wxGTK_CONV( text ) ); - GtkWidget *image = gtk_image_new_from_pixmap( gdk_pixmap, gdk_bitmap ); + GtkWidget *image; + if (bitmap->HasPixbuf()) + { + image = gtk_image_new_from_pixbuf(bitmap->GetPixbuf()); + } + else + { + GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); + GdkBitmap *gdk_bitmap = bitmap->GetMask() ? + bitmap->GetMask()->GetBitmap() : + (GdkBitmap*) NULL; + image = gtk_image_new_from_pixmap( gdk_pixmap, gdk_bitmap ); + } + gtk_widget_show(image); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(menuItem), image ); @@ -1073,6 +1084,8 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos) else gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos); #else + GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); + GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL; menuItem = gtk_pixmap_menu_item_new (); GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) ); diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp index c72c5a8ee2..d957352dbf 100644 --- a/src/gtk1/menu.cpp +++ b/src/gtk1/menu.cpp @@ -1053,13 +1053,24 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos) { wxString text = mitem->GetText(); const wxBitmap *bitmap = &mitem->GetBitmap(); - GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); - GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL; #ifdef __WXGTK20__ menuItem = gtk_image_menu_item_new_with_mnemonic( wxGTK_CONV( text ) ); - GtkWidget *image = gtk_image_new_from_pixmap( gdk_pixmap, gdk_bitmap ); + GtkWidget *image; + if (bitmap->HasPixbuf()) + { + image = gtk_image_new_from_pixbuf(bitmap->GetPixbuf()); + } + else + { + GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); + GdkBitmap *gdk_bitmap = bitmap->GetMask() ? + bitmap->GetMask()->GetBitmap() : + (GdkBitmap*) NULL; + image = gtk_image_new_from_pixmap( gdk_pixmap, gdk_bitmap ); + } + gtk_widget_show(image); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(menuItem), image ); @@ -1073,6 +1084,8 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos) else gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos); #else + GdkPixmap *gdk_pixmap = bitmap->GetPixmap(); + GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL; menuItem = gtk_pixmap_menu_item_new (); GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) ); -- 2.45.2