mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-23 14:42:33 +01:00
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
|
namespace hiro {
|
||
|
|
||
|
auto pMenu::construct() -> void {
|
||
|
gtkMenu = gtk_menu_new();
|
||
|
widget = gtk_image_menu_item_new_with_mnemonic("");
|
||
|
gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), gtkMenu);
|
||
|
setText(state().text);
|
||
|
|
||
|
for(auto& action : state().actions) append(*action);
|
||
|
}
|
||
|
|
||
|
auto pMenu::destruct() -> void {
|
||
|
gtk_widget_destroy(gtkMenu);
|
||
|
gtk_widget_destroy(widget);
|
||
|
}
|
||
|
|
||
|
auto pMenu::append(sAction action) -> void {
|
||
|
if(action->self()) {
|
||
|
gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
|
||
|
action->self()->setFont(action->font(true));
|
||
|
action->self()->setVisible(action->visible(true));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
auto pMenu::remove(sAction action) -> void {
|
||
|
}
|
||
|
|
||
|
auto pMenu::setFont(const string& font) -> void {
|
||
|
pAction::setFont(font);
|
||
|
for(auto& action : state().actions) {
|
||
|
if(action->self()) action->self()->setFont(action->font(true));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
auto pMenu::setIcon(const image& icon) -> void {
|
||
|
if(icon) {
|
||
|
GtkImage* gtkImage = CreateImage(icon, true);
|
||
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
|
||
|
} else {
|
||
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
auto pMenu::setText(const string& text) -> void {
|
||
|
gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
|
||
|
}
|
||
|
|
||
|
}
|