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
This commit is contained in:
Václav Slavík 2004-10-18 09:43:37 +00:00
parent 3141599efa
commit b1ad1424b9
2 changed files with 32 additions and 6 deletions

View File

@ -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 ) );

View File

@ -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 ) );