Init(text);
}
+#if WXWIN_COMPATIBILITY_2_8
wxMenuItem::wxMenuItem(wxMenu *parentMenu,
int id,
const wxString& text,
{
Init(text);
}
+#endif
void wxMenuItem::Init(const wxString& text)
{
- m_labelWidget = (GtkWidget *) NULL;
m_menuItem = (GtkWidget *) NULL;
DoSetText(text);
oldLabel.Replace(wxT("_"), wxT(""));
wxString label1 = wxStripMenuCodes(str);
#if wxUSE_ACCEL
- wxString oldhotkey = GetHotKey(); // Store the old hotkey in Ctrl-foo format
+ wxString oldhotkey = m_hotKey; // Store the old hotkey in Ctrl-foo format
wxCharBuffer oldbuf = wxGTK_CONV_SYS( GetGtkHotKey(*this) ); // and as <control>foo
#endif // wxUSE_ACCEL
#if wxUSE_ACCEL
if (oldLabel == label1 &&
- oldhotkey == GetHotKey()) // Make sure we can change a hotkey even if the label is unaltered
+ oldhotkey == m_hotKey) // Make sure we can change a hotkey even if the label is unaltered
return;
if (m_menuItem)
{
- GtkLabel *label;
- if (m_labelWidget)
- label = (GtkLabel*) m_labelWidget;
- else
- label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
-
// stock menu items can have empty labels:
wxString text = m_text;
if (text.IsEmpty() && !IsSeparator())
text = GTKProcessMenuItemLabel(text, NULL);
}
- gtk_label_set_text_with_mnemonic( GTK_LABEL(label), wxGTK_CONV_SYS(text) );
+ GtkLabel* label = GTK_LABEL(GTK_BIN(m_menuItem)->child);
+ gtk_label_set_text_with_mnemonic(label, wxGTK_CONV_SYS(text));
}
// remove old accelerator from our parent's accelerator group, if present
hotKey->Empty();
if(*pc == wxT('\t'))
{
- pc++;
+ ++pc;
hotKey->assign(pc, str.end());
}
}
wxAcceleratorEntry *wxMenuItem::GetAccel() const
{
- if ( !GetHotKey() )
+ if (m_hotKey.empty())
{
// nothing
return NULL;
// accelerator parsing code looks for them after a TAB, so insert a dummy
// one here
wxString label;
- label << wxT('\t') << GetHotKey();
+ label << wxT('\t') << m_hotKey;
return wxAcceleratorEntry::Create(label);
}
m_prevRadio = NULL;
}
- // TODO: this code doesn't delete the item factory item and this seems
- // impossible as of GTK 1.2.6.
- gtk_widget_destroy( mitem );
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(mitem), NULL);
+ gtk_widget_destroy(mitem);
+ item->SetMenuItem(NULL);
return item;
}