• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ gtk::MenuItem类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中gtk::MenuItem的典型用法代码示例。如果您正苦于以下问题:C++ MenuItem类的具体用法?C++ MenuItem怎么用?C++ MenuItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了MenuItem类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1:

//------------------------------------------------------------------------------
std::string mforms::gtk::MenuItemImpl::get_title(mforms::MenuItem *item) {
  std::string ret;
  Gtk::MenuItem *mi = cast<Gtk::MenuItem *>(item->get_data_ptr());
  if (mi)
    ret = mi->get_label();
  return ret;
}
开发者ID:pk-codebox-evo,项目名称:mysql-workbench,代码行数:8,代码来源:lf_menubar.cpp


示例2: init_popup_menu

void ObjectsTreeView::init_popup_menu() {
  Gtk::MenuItem* item;

  item = Gtk::manage(new Gtk::MenuItem("Remove", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &ObjectsTreeView::on_menu_popup_remove) );
  _menu.append(*item);

  item = Gtk::manage(new Gtk::MenuItem("Translate...", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &ObjectsTreeView::on_menu_popup_translate) );
  _menu.append(*item);

  item = Gtk::manage(new Gtk::MenuItem("Scale...", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &ObjectsTreeView::on_menu_popup_scale) );
  _menu.append(*item);

  item = Gtk::manage(new Gtk::MenuItem("Rotate...", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &ObjectsTreeView::on_menu_popup_rotate) );
  _menu.append(*item);

  _menu.accelerate(*this);
  _menu.show_all(); //Show all menu items when the menu pops up

  signal_button_press_event().connect(sigc::mem_fun(*this, &ObjectsTreeView::on_button_press_event), false);
}
开发者ID:CarlosBonetti,项目名称:undergrad-archive,代码行数:28,代码来源:ObjectsTreeView.cpp


示例3: logError

void mforms::gtk::MenuItemImpl::insert_item(mforms::MenuBase *menub, int index, mforms::MenuItem *item) {
  Gtk::MenuShell *menu_shell = cast<Gtk::MenuShell *>(menub->get_data_ptr());
  Gtk::MenuItem *item_to_insert = cast<Gtk::MenuItem *>(item->get_data_ptr());

  if (!menu_shell) // menub is not a menubar
  {
    Gtk::MenuItem *mi = cast<Gtk::MenuItem *>(menub->get_data_ptr());
    if (mi) {
      Gtk::Menu *menu = 0;
      if (mi->has_submenu()) // item already has submenu, add to it
        menu = mi->get_submenu();
      else { // no submenu yet in item, create one
        menu = Gtk::manage(new Gtk::Menu());
        mi->signal_activate().connect(sigc::bind(sigc::ptr_fun(menu_will_show), menub));
        mi->set_submenu(*menu);
        menu->show();
      }
      menu_shell = menu;
    } else
      logError("Passed MenuBase %p does not contain neither Gtk::MenuBar nor Gtk::MenuItem\n", menub);
  } else {
    if (menub->get_parent() && get_accel_group(menub))
      propagate_accel_group(menub, get_accel_group(menub));
  }
  if (menu_shell && item_to_insert)
    menu_shell->insert(*item_to_insert, index);
  else
    logError("Internal error in MenuBase::insert_item()\n");
}
开发者ID:pk-codebox-evo,项目名称:mysql-workbench,代码行数:29,代码来源:lf_menubar.cpp


示例4:

PrefWindow::PrefWindow(GtkWindow* base, const Glib::RefPtr<Gtk::Builder>& builder) : 
	Gtk::Window(base)
{
	windowState.Reset();
	// initializing menu items
	Gtk::MenuItem* item = 0;
	builder->get_widget("menuGameQuit", item);
	PrefAssert( item != 0 );
	item->signal_activate().connect(sigc::ptr_fun(&PrefSlots::quit));
	item = 0;
	builder->get_widget("menuHelpAbout", item);
	PrefAssert( item != 0 );
	item->signal_activate().connect(sigc::ptr_fun(&PrefSlots::about));
	item = 0;
	builder->get_widget("menuGameNew", item);
	PrefAssert( item != 0 );
	item->signal_activate().connect(sigc::ptr_fun(&PrefSlots::startGameWithBots));
	// initializing status bar
	Gtk::Statusbar* _statusbar = 0;
	builder->get_widget("mainWindowStatusBar", _statusbar);
	PrefAssert( _statusbar != 0 );
	statusbar = Glib::RefPtr<Gtk::Statusbar>(_statusbar);
	// initializing bidding dialog
	BiddingDialog* _biddingDialog = 0;
	builder->get_widget_derived("biddingWindow", _biddingDialog);
	PrefAssert( _biddingDialog != 0 );
	biddingDialog = Glib::RefPtr<BiddingDialog>( _biddingDialog );
	PrefView* _gameView = 0;
	builder->get_widget_derived("gameView", _gameView);
	PrefAssert( _gameView != 0 );
	gameView = Glib::RefPtr<PrefView>( _gameView );
}
开发者ID:eshavlyugin,项目名称:Preferans,代码行数:32,代码来源:PrefWindow.cpp


示例5: populate_popup

void DocumentView::populate_popup(Gtk::Menu* menu) {
    std::set<Glib::ustring> items_to_remove = {
        "_Undo",
        "_Redo",
        "_Delete",
        "C_hange Case",
        "Select _All"
    };

    Gtk::MenuItem* comment = Gtk::manage(new Gtk::MenuItem("Comment Lines"));
    Gtk::MenuItem* uncomment = Gtk::manage(new Gtk::MenuItem("Uncomment Lines"));

    //menu->add(*Gtk::manage(new Gtk::SeparatorMenuItem()));
    menu->add(*comment);
    menu->add(*uncomment);
    menu->show_all();

    for(Gtk::Widget* item: menu->get_children()) {
        Gtk::MenuItem* itm = dynamic_cast<Gtk::MenuItem*>(item);
        if(itm) {
            auto label = itm->get_label();
            if(label == "") {
                itm->hide(); //Hide separators
            } else {
                std::cout << label << std::endl;
                if(items_to_remove.count(label)) {
                    itm->hide();
                }
            }
        }
    }
}
开发者ID:,项目名称:,代码行数:32,代码来源:


示例6: toggleConnects

void MainSynthWindow::toggleConnects (void)
{
    Gtk::MenuItem *me = (Gtk::MenuItem *)&menuJack_.items()[0];
    Gtk::MenuItem *dis = (Gtk::MenuItem *)&menuJack_.items()[1];
    bool c = me->is_sensitive();
    me->set_sensitive(!c);
    dis->set_sensitive(c);
}
开发者ID:mishan,项目名称:thinksynth,代码行数:8,代码来源:MainSynthWindow.cpp


示例7:

//------------------------------------------------------------------------------
void mforms::gtk::MenuImpl::set_item_enabled(Menu *self, int i, bool flag)
{
    MenuImpl* menu = self->get_data<MenuImpl>();
    if (menu)  {
        Gtk::MenuItem *item = menu->item_at(i);
        if (item)
            item->set_sensitive(flag);
    }
}
开发者ID:abibell,项目名称:mysql-workbench,代码行数:10,代码来源:lf_menu.cpp


示例8:

PlaylistViewer::PlaylistViewer()
{
  //Create the Tree model:
  m_refTreeModel = Gtk::ListStore::create(m_Columns);
  set_model(m_refTreeModel);

 // Fill the TreeView's model
 // Gtk::TreeModel::Row row = *(m_refTreeModel->append());
/*
  row[m_Columns.m_col_trackNum] = 1;
  row[m_Columns.m_col_trackName] = "right-click on this";
  row[m_Columns.m_col_trackPath] = "right-click on this";

  row = *(m_refTreeModel->append());
  row[m_Columns.m_col_trackNum]= 2;
  row[m_Columns.m_col_trackName] = "or this";
  row[m_Columns.m_col_trackPath] = "right-click on this";

  row = *(m_refTreeModel->append());
  row[m_Columns.m_col_trackNum] = 3;
  row[m_Columns.m_col_trackName] = "or this, for a popup context menu";
  row[m_Columns.m_col_trackPath] = "right-click on this";
*/

// master plan is to run through a vector to populate values


 
  //Add the TreeView's view columns:
  append_column("Track", m_Columns.m_col_trackNum);
  append_column("Name", m_Columns.m_col_trackName);
  append_column("Path", m_Columns.m_col_trackPath);

  //Fill popup menu:
  Gtk::MenuItem* item = Gtk::manage(new Gtk::MenuItem("_Play", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &PlaylistViewer::on_menu_file_popup_generic) );
  m_Menu_Popup.append(*item);
    
  item = Gtk::manage(new Gtk::MenuItem("_Queue", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &PlaylistViewer::on_menu_file_popup_generic) );
  m_Menu_Popup.append(*item);
    
  item = Gtk::manage(new Gtk::MenuItem("_Info", true));
  item->signal_activate().connect(
    sigc::mem_fun(*this, &PlaylistViewer::on_menu_file_popup_generic) );
  m_Menu_Popup.append(*item);

  m_Menu_Popup.accelerate(*this);
  m_Menu_Popup.show_all(); //Show all menu items when the menu pops up

#ifndef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
  signal_button_press_event()
    .connect(sigc::mem_fun(*this, &PlaylistViewer::on_button_press_event), false);
#endif
}
开发者ID:williamkibira,项目名称:Player,代码行数:57,代码来源:playlistview.cpp


示例9: setTaskIsSelected

void Menu::setTaskIsSelected(bool show)
{
	std::list<Gtk::MenuItem*>::iterator iter;
	for (iter = taskIDDependentMenus.begin(); iter != taskIDDependentMenus.end(); ++iter)
	{
		Gtk::MenuItem* menuItem = *iter;
		menuItem->set_sensitive(show);
	}

}
开发者ID:Hoglet,项目名称:TimeIT,代码行数:10,代码来源:Menu.cpp


示例10: propagate_accel_group

//------------------------------------------------------------------------------
static void propagate_accel_group(mforms::MenuBase *item, Glib::RefPtr<Gtk::AccelGroup> agroup) {
  Gtk::MenuItem *mi = cast<Gtk::MenuItem *>(item->get_data_ptr());
  if (mi && mi->has_submenu())
    mi->get_submenu()->set_accel_group(agroup);

  for (int i = item->item_count() - 1; i >= 0; --i) {
    mforms::MenuItem *it = item->get_item(i);
    if (!it->get_shortcut().empty())
      mforms::gtk::MenuItemImpl::set_shortcut(it, it->get_shortcut());
    propagate_accel_group(it, agroup);
  }
}
开发者ID:pk-codebox-evo,项目名称:mysql-workbench,代码行数:13,代码来源:lf_menubar.cpp


示例11: message

DebugDialogImpl::DebugDialogImpl()
{
    set_title(_("Messages"));
    set_size_request(300, 400);

#if WITH_GTKMM_3_0
    Gtk::Box *mainVBox = get_content_area();
#else
    Gtk::Box *mainVBox = get_vbox();
#endif

    //## Add a menu for clear()
    Gtk::MenuItem* item = Gtk::manage(new Gtk::MenuItem(_("_File"), true));
    item->set_submenu(fileMenu);
    menuBar.append(*item);

    item = Gtk::manage(new Gtk::MenuItem(_("_Clear"), true));
    item->signal_activate().connect(sigc::mem_fun(*this, &DebugDialogImpl::clear));
    fileMenu.append(*item);

    item = Gtk::manage(new Gtk::MenuItem(_("Capture log messages")));
    item->signal_activate().connect(sigc::mem_fun(*this, &DebugDialogImpl::captureLogMessages));
    fileMenu.append(*item);
    
    item = Gtk::manage(new Gtk::MenuItem(_("Release log messages")));
    item->signal_activate().connect(sigc::mem_fun(*this, &DebugDialogImpl::releaseLogMessages));
    fileMenu.append(*item);

    mainVBox->pack_start(menuBar, Gtk::PACK_SHRINK);
    

    //### Set up the text widget
    messageText.set_editable(false);
    textScroll.add(messageText);
    textScroll.set_policy(Gtk::POLICY_ALWAYS, Gtk::POLICY_ALWAYS);
    mainVBox->pack_start(textScroll);

    show_all_children();

    message("ready.");
    message("enable log display by setting ");
    message("dialogs.debug 'redirect' attribute to 1 in preferences.xml");

    handlerDefault = 0;
    handlerGlibmm  = 0;
    handlerAtkmm   = 0;
    handlerPangomm = 0;
    handlerGdkmm   = 0;
    handlerGtkmm   = 0;
}
开发者ID:AakashDabas,项目名称:inkscape,代码行数:50,代码来源:debug.cpp


示例12: add_accelerator

    void GlobalKeybinder::add_accelerator(const sigc::slot<void> & handler, guint key, 
                                          Gdk::ModifierType modifiers, Gtk::AccelFlags flags)
    {
      Gtk::MenuItem *foo = manage(new Gtk::MenuItem ());
      foo->signal_activate().connect(handler);
      foo->add_accelerator ("activate",
                          m_accel_group,
                          key,
                          modifiers,
                          flags);
      foo->show ();

      m_fake_menu.append (*foo);
    }
开发者ID:haobug,项目名称:gnote,代码行数:14,代码来源:utils.cpp


示例13: get_index

bool SeriesMenu::get_index(const Gtk::MenuItem& item, int& index) {
	Gtk::Menu_Helpers::MenuList::iterator i = items().begin();
	index = 0;
	for(; i != items().end(); i++) {
		if(i->gobj() == item.gobj()) {
			return true;
		}
		index++;
	}
	return false;
}
开发者ID:151706061,项目名称:aeskulap,代码行数:11,代码来源:aseriesmenu.cpp


示例14:

TreeViewGoods::TreeViewGoods()
{
    /* Create tree */
    treeRecords = Gtk::ListStore::create( treeColumns );
    set_model( treeRecords );

    /* Create columns */
    append_column( "Код", treeColumns.id );
    append_column( "Наименование", treeColumns.name );
    append_column( "Цена", treeColumns.price );
    append_column( "Ед.Изм.", treeColumns.item );

    /* Create popup menu */
    Gtk::MenuItem* item = Gtk::manage( new Gtk::MenuItem( "Подробнее" ) );
    item->signal_activate().connect( sigc::mem_fun( *this, &TreeViewGoods::on_menu_file_popup_generic ) );
    menuPopup.append( *item );
    menuPopup.accelerate( *this );
    menuPopup.show_all();

    /* Connect press event signal (mouse clicks) */
    signal_button_press_event().connect( sigc::mem_fun( *this, &TreeViewGoods::on_button_press_event ), false );
}
开发者ID:beardedarab64,项目名称:sweet-shop,代码行数:22,代码来源:TreeViewGoods.cpp


示例15: manage

bool
DockBook::tab_button_pressed(GdkEventButton* event, Dockable* dockable)
{
	CanvasView *canvas_view = dynamic_cast<CanvasView*>(dockable);
	if (canvas_view && canvas_view != App::get_selected_canvas_view())
		App::set_selected_canvas_view(canvas_view);

	if(event->button!=3)
		return false;

	Gtk::Menu *tabmenu=manage(new class Gtk::Menu());
	tabmenu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), tabmenu));

	Gtk::MenuItem *item = manage(new Gtk::ImageMenuItem(Gtk::StockID("gtk-close")));
	item->signal_activate().connect(
		sigc::bind(sigc::ptr_fun(&DockManager::remove_widget_by_pointer_recursive), dockable) );

	tabmenu->append(*item);
	item->show();
	tabmenu->popup(event->button,gtk_get_current_event_time());

	return true;
}
开发者ID:blackwarthog,项目名称:synfig,代码行数:23,代码来源:dockbook.cpp


示例16:

ListView::ListView() : Gtk::TreeView()
{
    // поиграемся с TreeView
    // создаём модель
    m_refTreeModel = Gtk::ListStore::create( m_Columns );
    set_model( m_refTreeModel );
    // Теперь добавляем столбцы для отображения
    append_column( "Name", m_Columns.m_col_name );
    append_column( "Size", m_Columns.m_col_size );
    append_column( "User/Group", m_Columns.m_col_users );
    append_column( "Permission", m_Columns.m_col_permission );
    append_column( "Type", m_Columns.m_col_type );
    append_column( "Modified", m_Columns.m_col_modified );

    //Set the sort column of the Tree model:
    m_refTreeModel->set_sort_column(0, Gtk::SORT_ASCENDING);

    Gtk::TreeView::Column* pColumn;
    pColumn = get_column(0);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_name );
    pColumn = get_column(1);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_size );
    pColumn = get_column(2);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_users );
    pColumn = get_column(3);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_permission );
    pColumn = get_column(4);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_type );
    pColumn = get_column(5);
    if( pColumn )
        pColumn->set_sort_column( m_Columns.m_col_modified );
    //Fill popup menu:
      Gtk::MenuItem* item = Gtk::manage(new Gtk::MenuItem("_Open", true));
      item->signal_activate().connect(
        sigc::mem_fun(*this, &ListView::on_menu_file_popup_generic) );
      m_Menu_Popup.append(*item);

      item = Gtk::manage(new Gtk::MenuItem("_Open with…", true));
      item->signal_activate().connect(
        sigc::mem_fun(*this, &ListView::on_menu_file_popup_generic) );
      m_Menu_Popup.append(*item);

      item = Gtk::manage(new Gtk::MenuItem("_Properties", true));
      item->signal_activate().connect(
        sigc::mem_fun(*this, &ListView::on_menu_file_popup_generic) );
      m_Menu_Popup.append(*item);

      m_Menu_Popup.accelerate(*this);
      m_Menu_Popup.show_all(); //Show all menu items when the menu pops up

      signal_button_press_event()
        .connect(sigc::mem_fun(*this, &ListView::on_button_press_event), false);

    Navigator nvg;
    show_file_list( nvg.get_file_list() );
}
开发者ID:pinecrew,项目名称:pinefm,代码行数:61,代码来源:ui_fileview.cpp


示例17: Viewer

AppWindow::AppWindow() {
  m_viewer = new Viewer(this);

  set_title("CS488 Assignment Two, by Alex Klen");

  // Application Menu.
  Gtk::MenuItem *reset = Gtk::manage(new Gtk::MenuItem("_Reset", true));
  Gtk::MenuItem *quit = Gtk::manage(new Gtk::MenuItem("_Quit", true));

  reset->signal_activate().connect(sigc::mem_fun(*this, &AppWindow::reset_view));
  quit->signal_activate().connect(sigc::mem_fun(*this, &AppWindow::hide));

  add_accelerator(reset, 'a');
  add_accelerator(quit, 'q');

  m_menu_app.items().push_back(*reset);
  m_menu_app.items().push_back(*quit);

  // Mode Menu.
  const char shortcuts[] = {
    'o', 'n', 'p', 'r', 't', 's', 'v'
  };
  const std::string names[] = {
    "R_otate View",
    "Tra_nslate View",
    "_Perspective",
    "_Rotate Model",
    "_Translate Model",
    "_Scale Model",
    "_Viewport"
  };

  // Create and wire signals for radio buttons for each mode.
  Gtk::RadioMenuItem::Group view_mode_group;
  sigc::slot1<void, Viewer::Mode> view_mode_slot = sigc::mem_fun(*m_viewer, &Viewer::set_mode);

  for (int mode = 0; mode < Viewer::NUM_MODES; mode++) {
    Gtk::RadioMenuItem *rb = Gtk::manage(new Gtk::RadioMenuItem(view_mode_group, names[mode], true));
    add_accelerator(rb, shortcuts[mode]);
    rb->signal_activate().connect(sigc::bind(view_mode_slot, (Viewer::Mode) mode));
    m_menu_mode.items().push_back(*rb);
  }

  // Set up the menu bar
  m_menubar.items().push_back(Gtk::Menu_Helpers::MenuElem("_Application", m_menu_app));
  m_menubar.items().push_back(Gtk::Menu_Helpers::MenuElem("_Mode", m_menu_mode));

  // Select default radio button.
  m_menu_mode.items()[Viewer::DEFAULT_MODE].activate();

  // Pack in our widgets

  // First add the vertical box as our single "top" widget
  add(m_vbox);

  // Put the menubar on the top, and make it as small as possible
  m_vbox.pack_start(m_menubar, Gtk::PACK_SHRINK);

  // Put the viewer below the menubar. pack_start "grows" the widget
  // by default, so it'll take up the rest of the window.
  m_viewer->set_size_request(600, 600);
  m_vbox.pack_start(*m_viewer);

  m_vbox.pack_start(m_main_label, false, false);

  show_all();
}
开发者ID:nelk,项目名称:cs488,代码行数:67,代码来源:appwindow.cpp


示例18: populate_toc_menu

void TableofcontentsNoteAddin::populate_toc_menu (Gtk::Menu *toc_menu, bool has_action_entries)
//populate a menu with Note's table of contents
{
    // Clear out the old list
    std::vector<Gtk::Widget*> menu_items = toc_menu->get_children();
    for(std::vector<Gtk::Widget*>::reverse_iterator iter = menu_items.rbegin();
            iter != menu_items.rend(); ++iter) {
        toc_menu->remove(**iter);
    }

    // Build a new list
    std::list<TableofcontentsMenuItem*> items;
    get_tableofcontents_menu_items(items);

    for(std::list<TableofcontentsMenuItem*>::iterator iter = items.begin();
            iter != items.end(); ++iter) {
        TableofcontentsMenuItem *item(*iter);
        item->show_all();
        toc_menu->append(*item);
    }

    // Action menu items, or nothing
    if (has_action_entries == false) {
        if (toc_menu->get_children().size() == 0) { // no toc items, and no action entries = empty menu
            Gtk::MenuItem *item = manage(new Gtk::MenuItem(_("(empty table of contents)")));
            item->set_sensitive(false);
            item->show();
            toc_menu->append(*item);
        }
    }
    else {
        Gtk::MenuItem *item;

        if (toc_menu->get_children().size() != 0) { //there are toc items, we add a separator
            item = manage(new Gtk::SeparatorMenuItem ());
            item->show ();
            toc_menu->append(*item);
        }

        item = manage(new Gtk::MenuItem (_("Heading 1")));
        item->add_accelerator("activate", get_note()->get_window()->get_accel_group(), GDK_KEY_1, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
        item->signal_activate().connect(sigc::mem_fun(*this, &TableofcontentsNoteAddin::on_level_1_activated));
        item->show ();
        toc_menu->append(*item);

        item = manage(new Gtk::MenuItem (_("Heading 2")));
        item->add_accelerator("activate", get_note()->get_window()->get_accel_group(), GDK_KEY_2, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
        item->signal_activate().connect(sigc::mem_fun(*this, &TableofcontentsNoteAddin::on_level_2_activated));
        item->show ();
        toc_menu->append(*item);

        item = manage(new Gtk::MenuItem (_("Table of Contents Help")));
        item->signal_activate().connect(sigc::mem_fun(*this, &TableofcontentsNoteAddin::on_toc_help_activated));
        item->show ();
        toc_menu->append(*item);
    }

}
开发者ID:MikeyG,项目名称:gnote,代码行数:58,代码来源:tableofcontentsnoteaddin.cpp


示例19: populateMenu

void MainSynthWindow::populateMenu (void)
{
    /* File */
    {
        Gtk::Menu::MenuList &menulist = menuFile_.items();

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_Keyboard",
                                        Gtk::AccelKey("<ctrl>k"),
                                        sigc::mem_fun(*this, &MainSynthWindow::menuKeyboard)));

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_Patch Selector",
                                        Gtk::AccelKey("<ctrl>p"),
                                        sigc::mem_fun(*this, &MainSynthWindow::menuPatchSel)));

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_MIDI Controllers",
                                        Gtk::AccelKey("<ctrl>m"),
                                        sigc::mem_fun(*this, &MainSynthWindow::menuMidiMap)));

        menulist.push_back(Gtk::Menu_Helpers::SeparatorElem());

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_Quit",
                                        Gtk::AccelKey("<ctrl>q"),
                                        sigc::mem_fun(*this, &MainSynthWindow::menuQuit)));
    }

#ifdef HAVE_JACK
    /* JACK */
    if (dynamic_cast<gthJackAudio*>(audio_) != NULL)
    {
        gthPrefs *prefs = gthPrefs::instance();
        Gtk::Menu::MenuList &menulist = menuJack_.items();
        Gtk::CheckMenuItem *elem;
        sigc::slot0<void> autoslot =
            sigc::mem_fun(*this, &MainSynthWindow::menuJackAuto);
        string** vals;
        bool sel;
        
        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_Connect to JACK now",
                sigc::mem_fun(*this, &MainSynthWindow::menuJackTry)));

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_Disconnect from JACK",
                sigc::mem_fun(*this, &MainSynthWindow::menuJackDis)));

        menulist.back().set_sensitive(false);

        menulist.push_back(Gtk::Menu_Helpers::SeparatorElem());

        menulist.push_back(
            Gtk::Menu_Helpers::CheckMenuElem ("_Auto-connect to JACK",
                autoslot));

        elem = (Gtk::CheckMenuItem*)&menulist.back();
    
        vals = prefs->Get("autoconnect");
        sel = !!(vals && *vals[0] == "true");
        elem->set_active(sel);
    }
#endif /* HAVE_JACK */
    
    /* Help */
    {
        Gtk::Menu::MenuList &menulist = menuHelp_.items();

        menulist.push_back(
            Gtk::Menu_Helpers::MenuElem("_About",
                                        sigc::mem_fun(
                                            *this, &MainSynthWindow::menuAbout)
                ));
    }

    /* add the menus to the menubar */
    {
        Gtk::Menu::MenuList &menulist = menuBar_.items();

        menulist.push_back(Gtk::Menu_Helpers::MenuElem("_File",
                                                       menuFile_));

#ifdef HAVE_JACK
        if (dynamic_cast<gthJackAudio*>(audio_) != NULL)
            menulist.push_back(Gtk::Menu_Helpers::MenuElem("_JACK",
                                                        menuJack_));
#endif
        
        Gtk::MenuItem *helpMenu = manage(new Gtk::MenuItem("_Help", true));
        helpMenu->set_submenu(menuHelp_);
        helpMenu->set_right_justified();
        menulist.push_back(*helpMenu);
    }
}
开发者ID:mishan,项目名称:thinksynth,代码行数:95,代码来源:MainSynthWindow.cpp


示例20: initialize

void NotebookApplicationAddin::initialize ()
{
    m_actionGroup = Glib::RefPtr<Gtk::ActionGroup>(Gtk::ActionGroup::create("Notebooks"));
    m_actionGroup->add(
        Gtk::Action::create ("NewNotebookMenuAction", Gtk::Stock::NEW,
                             _("Note_books"),
                             _("Create a new note in a notebook")));

    m_actionGroup->add(
        Gtk::Action::create ("NewNotebookAction", Gtk::Stock::NEW,
                             _("New Note_book..."),
                             _("Create a new notebook")));

    m_actionGroup->add(
        Gtk::Action::create ("NewNotebookNoteAction", Gtk::Stock::NEW,
                             _("_New Note"),
                             _("Create a new note in this notebook")));

    m_actionGroup->add(
        Gtk::Action::create ("OpenNotebookTemplateNoteAction", Gtk::Stock::OPEN,
                             _("_Open Template Note"),
                             _("Open this notebook's template note")));

    m_actionGroup->add(
        Gtk::Action::create ("DeleteNotebookAction", Gtk::Stock::DELETE,
                             _("Delete Note_book"),
                             _("Delete the selected notebook")));

    m_actionGroup->add(
        Gtk::Action::create ("TrayNewNotebookMenuAction", Gtk::Stock::NEW,
                             _("Notebooks"),
                             _("Create a new note in a notebook")));

    ActionManager & am(ActionManager::obj());
    m_notebookUi = am.get_ui()->add_ui_from_string (uixml);

    am.get_ui()->insert_action_group (m_actionGroup, 0);

    Gtk::MenuItem *item = dynamic_cast<Gtk::MenuItem*>(
                              am.get_widget ("/TrayIconMenu/TrayNewNotePlaceholder/TrayNewNotebookMenu"));
    if (item) {
        Gtk::ImageMenuItem *image_item = dynamic_cast<Gtk::ImageMenuItem*>(item);
        if (image_item) {
            image_item->set_image(*manage(new Gtk::Image(m_notebookIcon)));
        }
        m_trayNotebookMenu = manage(new Gtk::Menu());
        item->set_submenu(*m_trayNotebookMenu);

        m_trayNotebookMenu->signal_show()
        .connect(sigc::mem_fun(*this,
                               &NotebookApplicationAddin::on_tray_notebook_menu_shown));
        m_trayNotebookMenu->signal_hide()
        .connect(sigc::mem_fun(*this,
                               &NotebookApplicationAddin::on_tray_notebook_menu_hidden));
    }

    Gtk::ImageMenuItem *imageitem = dynamic_cast<Gtk::ImageMenuItem*>(
                                        am.get_widget ("/MainWindowMenubar/FileMenu/FileMenuNewNotePlaceholder/NewNotebookMenu"));
    if (imageitem) {
        imageitem->set_image(*manage(new Gtk::Image(m_notebookIcon)));
        m_mainWindowNotebookMenu = manage(new Gtk::Menu ());
        imageitem->set_submenu(*m_mainWindowNotebookMenu);

        m_mainWindowNotebookMenu->signal_show()
        .connect(sigc::mem_fun(*this,
                               &NotebookApplicationAddin::on_new_notebook_menu_shown));

        m_mainWindowNotebookMenu->signal_hide()
        .connect(sigc::mem_fun(*this,
                               &NotebookApplicationAddin::on_new_notebook_menu_hidden));
    }
    imageitem = dynamic_cast<Gtk::ImageMenuItem*>(
                    am.get_widget ("/NotebooksTreeContextMenu/NewNotebookNote"));
    if (imageitem) {
        imageitem->set_image(*manage(new Gtk::Image(am.get_new_note())));
    }

    NoteManager & nm(Gnote::obj().default_note_manager());

    for(Note::List::const_iterator iter = nm.get_notes().begin();
            iter != nm.get_notes().end(); ++iter) {
        const Note::Ptr & note(*iter);
        note->signal_tag_added().connect(
            sigc::mem_fun(*this, &NotebookApplicationAddin::on_tag_added));
        note->signal_tag_removed().connect(
            sigc::mem_fun(*this, &NotebookApplicationAddin::on_tag_removed));
    }

    nm.signal_note_added.connect(
        sigc::mem_fun(*this, &NotebookApplicationAddin::on_note_added));
    nm.signal_note_deleted.connect(
        sigc::mem_fun(*this, &NotebookApplicationAddin::on_note_deleted));

    m_initialized = true;
}
开发者ID:haobug,项目名称:gnote,代码行数:95,代码来源:notebookapplicationaddin.cpp



注:本文中的gtk::MenuItem类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ gtk::MessageDialog类代码示例发布时间:2022-05-31
下一篇:
C++ gtk::Main类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap