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:
@@ -1053,13 +1053,24 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
|
|||||||
{
|
{
|
||||||
wxString text = mitem->GetText();
|
wxString text = mitem->GetText();
|
||||||
const wxBitmap *bitmap = &mitem->GetBitmap();
|
const wxBitmap *bitmap = &mitem->GetBitmap();
|
||||||
GdkPixmap *gdk_pixmap = bitmap->GetPixmap();
|
|
||||||
GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL;
|
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
menuItem = gtk_image_menu_item_new_with_mnemonic( wxGTK_CONV( text ) );
|
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_widget_show(image);
|
||||||
|
|
||||||
gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(menuItem), 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
|
else
|
||||||
gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos);
|
gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos);
|
||||||
#else
|
#else
|
||||||
|
GdkPixmap *gdk_pixmap = bitmap->GetPixmap();
|
||||||
|
GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL;
|
||||||
|
|
||||||
menuItem = gtk_pixmap_menu_item_new ();
|
menuItem = gtk_pixmap_menu_item_new ();
|
||||||
GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) );
|
GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) );
|
||||||
|
@@ -1053,13 +1053,24 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
|
|||||||
{
|
{
|
||||||
wxString text = mitem->GetText();
|
wxString text = mitem->GetText();
|
||||||
const wxBitmap *bitmap = &mitem->GetBitmap();
|
const wxBitmap *bitmap = &mitem->GetBitmap();
|
||||||
GdkPixmap *gdk_pixmap = bitmap->GetPixmap();
|
|
||||||
GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL;
|
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
menuItem = gtk_image_menu_item_new_with_mnemonic( wxGTK_CONV( text ) );
|
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_widget_show(image);
|
||||||
|
|
||||||
gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(menuItem), 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
|
else
|
||||||
gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos);
|
gtk_menu_shell_insert(GTK_MENU_SHELL(m_menu), menuItem, pos);
|
||||||
#else
|
#else
|
||||||
|
GdkPixmap *gdk_pixmap = bitmap->GetPixmap();
|
||||||
|
GdkBitmap *gdk_bitmap = bitmap->GetMask() ? bitmap->GetMask()->GetBitmap() : (GdkBitmap*) NULL;
|
||||||
|
|
||||||
menuItem = gtk_pixmap_menu_item_new ();
|
menuItem = gtk_pixmap_menu_item_new ();
|
||||||
GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) );
|
GtkWidget *label = gtk_accel_label_new ( wxGTK_CONV( text ) );
|
||||||
|
Reference in New Issue
Block a user