示例#1
0
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);
}
示例#2
0
文件: carbon_gui.cpp 项目: dyne/MuSE
/*
 * 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!!");
}
示例#3
0
文件: parse.c 项目: Nehamkin/jwm
/** 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);

}
示例#4
0
文件: parse.c 项目: technosaurus/jwm
/** 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);

}
示例#5
0
 virtual void MakeRoot()
 {
     SetRootMenu( m_osxMenu );
 }