void ige_mac_menu_set_menu_bar (GtkMenuShell *menu_shell) { CarbonMenu *current_menu; MenuRef carbon_menubar; g_return_if_fail (GTK_IS_MENU_SHELL (menu_shell)); if (carbon_menu_quark == 0) carbon_menu_quark = g_quark_from_static_string ("CarbonMenu"); if (carbon_menu_item_quark == 0) carbon_menu_item_quark = g_quark_from_static_string ("CarbonMenuItem"); current_menu = carbon_menu_get (GTK_WIDGET (menu_shell)); if (current_menu) { SetRootMenu (current_menu->menu); return; } CreateNewMenu (0 /*id*/, 0 /*options*/, &carbon_menubar); SetRootMenu (carbon_menubar); setup_menu_event_handler (); if (emission_hook_id == 0) { emission_hook_id = g_signal_add_emission_hook (g_signal_lookup ("parent-set", GTK_TYPE_WIDGET), 0, parent_set_emission_hook, NULL, NULL); } emission_hook_count++; g_signal_connect (menu_shell, "destroy", G_CALLBACK (parent_set_emission_hook_remove), NULL); sync_menu_shell (menu_shell, carbon_menubar, TRUE, FALSE); }
/* * Bring all windows in main windowgroup to frontmost layer * we have to handle this explicitly because of Quartz behaviour * when layering windowgroups */ void CARBON_GUI::bringToFront() { bool anyChannel=false; for ( int i = 0;i < MAX_CHANNELS;i++) { if(channel[i]) { anyChannel=true; SendWindowGroupBehind(channel[i]->faderGroup,mainGroup); } } if(!anyChannel) BringToFront(window); SelectWindow(window); OSStatus err = SetRootMenu(mainMenu); if(err != noErr) msg->error("Can't set MenuBar!!"); }
/** Parse a root menu. */ void ParseRootMenu(const TokenNode *start) { Menu *menu; char *onroot; menu = ParseMenu(start); onroot = FindAttribute(start->attributes, ONROOT_ATTRIBUTE); if(!onroot) { onroot = "123"; } SetRootMenu(onroot, menu); }
/** Parse a root menu. */ void ParseRootMenu(const TokenNode *start) { const char *value; Menu *menu; menu = Allocate(sizeof(Menu)); value = FindAttribute(start->attributes, HEIGHT_ATTRIBUTE); if(value) { menu->itemHeight = ParseUnsigned(start, value); } else { menu->itemHeight = 0; } value = FindAttribute(start->attributes, LABELED_ATTRIBUTE); if(value && !strcmp(value, TRUE_VALUE)) { value = FindAttribute(start->attributes, LABEL_ATTRIBUTE); if(!value) { value = DEFAULT_TITLE; } menu->label = CopyString(value); } else { menu->label = NULL; } menu->items = NULL; ParseMenuItem(start->subnodeHead, menu, NULL); value = FindAttribute(start->attributes, ONROOT_ATTRIBUTE); if(!value) { value = "123"; } SetRootMenu(value, menu); }
virtual void MakeRoot() { SetRootMenu( m_osxMenu ); }