static wxString wxReplaceUnderscore( const wxString& title )
{
const wxChar *pc;
-
+
/* GTK 1.2 wants to have "_" instead of "&" for accelerators */
wxString str;
for ( pc = title; *pc != wxT('\0'); pc++ )
wxItemKind kind,
wxMenu *subMenu)
: wxMenuItemBase(parentMenu, id, text, help, kind, subMenu)
+{
+ Init();
+}
+
+wxMenuItem::wxMenuItem(wxMenu *parentMenu,
+ int id,
+ const wxString& text,
+ const wxString& help,
+ bool isCheckable,
+ wxMenu *subMenu)
+ : wxMenuItemBase(parentMenu, id, text, help,
+ isCheckable ? wxITEM_CHECK : wxITEM_NORMAL, subMenu)
+{
+ Init();
+}
+
+void wxMenuItem::Init()
{
m_labelWidget = (GtkWidget *) NULL;
m_menuItem = (GtkWidget *) NULL;
- DoSetText(text);
+ DoSetText(m_text);
}
wxMenuItem::~wxMenuItem()
wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
{
wxString label;
-
+
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
{
if ( *pc == wxT('_') )
label += *pc;
continue;
}
-
+
if ( *pc == wxT('&') )
{
// wxMSW escapes &
// remove '_' and '&' unconditionally
continue;
}
-
+
path += *pc;
}
-
+
return path;
}
{
wxString text( mitem->GetText() );
const wxBitmap *bitmap = &mitem->GetBitmap();
-
+
menuItem = gtk_pixmap_menu_item_new ();
GtkWidget *label = gtk_accel_label_new (text.mb_str());
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
case WXK_F12:
hotkey << wxT('F') << code - WXK_F1 + 1;
break;
-
+
// TODO: we should use gdk_keyval_name() (a.k.a.
// XKeysymToString) here as well as hardcoding the keysym
// names this might be not portable
(GtkClassInitFunc) NULL,
};
- pixmap_menu_item_type = gtk_type_unique (gtk_menu_item_get_type (),
+ pixmap_menu_item_type = gtk_type_unique (gtk_menu_item_get_type (),
&pixmap_menu_item_info);
}
/**
* gtk_pixmap_menu_item_new
*
- * Creates a new pixmap menu item. Use gtk_pixmap_menu_item_set_pixmap()
+ * Creates a new pixmap menu item. Use gtk_pixmap_menu_item_set_pixmap()
* to set the pixmap wich is displayed at the left side.
*
* Returns:
if (GTK_WIDGET_CLASS (parent_class)->draw)
(* GTK_WIDGET_CLASS (parent_class)->draw) (widget, area);
- if (GTK_WIDGET_DRAWABLE (widget) &&
+ if (GTK_WIDGET_DRAWABLE (widget) &&
GTK_PIXMAP_MENU_ITEM(widget)->pixmap) {
gtk_widget_draw(GTK_WIDGET(GTK_PIXMAP_MENU_ITEM(widget)->pixmap),NULL);
}
if (GTK_WIDGET_CLASS (parent_class)->expose_event)
(* GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event);
- if (GTK_WIDGET_DRAWABLE (widget) &&
+ if (GTK_WIDGET_DRAWABLE (widget) &&
GTK_PIXMAP_MENU_ITEM(widget)->pixmap) {
gtk_widget_draw(GTK_WIDGET(GTK_PIXMAP_MENU_ITEM(widget)->pixmap),NULL);
}
if (GTK_WIDGET_REALIZED (pixmap->parent) &&
!GTK_WIDGET_REALIZED (pixmap))
gtk_widget_realize (pixmap);
-
- if (GTK_WIDGET_VISIBLE (pixmap->parent)) {
+
+ if (GTK_WIDGET_VISIBLE (pixmap->parent)) {
if (GTK_WIDGET_MAPPED (pixmap->parent) &&
GTK_WIDGET_VISIBLE(pixmap) &&
!GTK_WIDGET_MAPPED (pixmap))
}
changed_have_pixmap_status(menu_item);
-
+
if (GTK_WIDGET_VISIBLE (pixmap) && GTK_WIDGET_VISIBLE (menu_item))
gtk_widget_queue_resize (pixmap);
}
GTK_WIDGET_CLASS(parent_class)->size_request(widget,requisition);
menu_item = GTK_PIXMAP_MENU_ITEM (widget);
-
+
if (menu_item->pixmap)
gtk_widget_size_request(menu_item->pixmap, &req);
g_return_if_fail (GTK_IS_WIDGET (child));
bin = GTK_BIN (container);
- g_return_if_fail ((bin->child == child ||
+ g_return_if_fail ((bin->child == child ||
(GTK_PIXMAP_MENU_ITEM(container)->pixmap == child)));
widget_was_visible = GTK_WIDGET_VISIBLE (child);
-
+
gtk_widget_unparent (child);
if (bin->child == child)
- bin->child = NULL;
+ bin->child = NULL;
else {
GTK_PIXMAP_MENU_ITEM(container)->pixmap = NULL;
changed_have_pixmap_status(GTK_PIXMAP_MENU_ITEM(container));
}
-
+
if (widget_was_visible)
gtk_widget_queue_resize (GTK_WIDGET (container));
}
if (GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->have_pixmap_count == 0) {
/* Install normal toggle size */
- GTK_MENU_ITEM_GET_CLASS(menu_item)->toggle_size = GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->orig_toggle_size;
+ GTK_MENU_ITEM_GET_CLASS(menu_item)->toggle_size = GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->orig_toggle_size;
}
}
this function is called, we get the same effect, just because of
how the preferences option to show pixmaps works. Bogus, broken.
*/
- if (GTK_WIDGET_VISIBLE(GTK_WIDGET(menu_item)))
+ if (GTK_WIDGET_VISIBLE(GTK_WIDGET(menu_item)))
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}