void Patcher::initMenu() { //Fichier QMenu* menuFichier = menuBar()->addMenu("&Fichier"); ///Quitter ADD_ACTION(menuFichier,actionRun,("Lancer" + Config::softname).c_str()); connect(actionRun, SIGNAL(triggered()),this, SLOT(runSoft())); actionRun->setShortcut(QKeySequence("Ctrl+Enter")); ADD_ACTION(menuFichier,actionQuitter,"&Quitter"); connect(actionQuitter, SIGNAL(triggered()),this, SLOT(quit())); actionQuitter->setShortcut(QKeySequence("Ctrl+Q")); //actionQuitter->setIcon(QIcon("quitter.png")); //Edition QMenu* menuEdition = menuBar()->addMenu("&Edition"); //actionGras->setCheckable(true); ADD_MENU(menuEdition,menuConfiguration,"&Configuration"); ADD_ACTION(menuConfiguration,actionConfigurationUrl,"Definir l'url du site"); connect(actionConfigurationUrl,SIGNAL(triggered()),this,SLOT(configSetUrl())); ADD_ACTION(menuConfiguration,actionConfigurationMaj,"Lancer une Maj"); connect(actionConfigurationMaj,SIGNAL(triggered()),this,SLOT(configMaj())); actionConfigurationMaj->setShortcut(QKeySequence("F5")); ADD_ACTION(menuConfiguration,actionConfigurationReset,"Reset"); connect(actionConfigurationReset,SIGNAL(triggered()),this,SLOT(configReset())); actionConfigurationReset->setShortcut(QKeySequence("Ctrl+L")); //Aide QMenu* menuAide = menuBar()->addMenu("&Aide"); ///Version ADD_ACTION(menuAide,actionVersion,"&Version") connect(actionVersion, SIGNAL(triggered()),this, SLOT(showVersion())); }
static void pkg_window_init (PkgWindow *window) { PkgWindowPrivate *priv; GtkAccelGroup *accel_group; GtkWidget *vbox; GtkWidget *menu_bar; GtkWidget *perfkit_menu; GtkWidget *help_menu; GtkWidget *hpaned; GtkWidget *scroller; GtkTreeViewColumn *column; GtkCellRenderer *text; GtkCellRenderer *cpix; GtkTreeSelection *selection; ENTRY; priv = G_TYPE_INSTANCE_GET_PRIVATE(window, PKG_TYPE_WINDOW, PkgWindowPrivate); window->priv = priv; g_static_rw_lock_init(&priv->rw_lock); gtk_window_set_title(GTK_WINDOW(window), _("Perfkit")); gtk_window_set_default_size(GTK_WINDOW(window), 780, 550); accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show(vbox); menu_bar = gtk_menu_bar_new(); gtk_box_pack_start(GTK_BOX(vbox), menu_bar, FALSE, TRUE, 0); gtk_widget_show(menu_bar); #define ADD_MENU(_n, _s) \ G_STMT_START { \ GtkWidget *_w; \ _w = gtk_menu_item_new_with_mnemonic((_s)); \ gtk_widget_show((_w)); \ gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), (_w)); \ _n = gtk_menu_new(); \ gtk_menu_item_set_submenu(GTK_MENU_ITEM(_w), _n); \ } G_STMT_END #define ADD_MENU_ITEM(_p, _s, _f) \ G_STMT_START { \ GtkWidget *_w; \ _w = gtk_menu_item_new_with_mnemonic(_s); \ gtk_widget_show((_w)); \ gtk_menu_shell_append(GTK_MENU_SHELL(_p), (_w)); \ g_signal_connect(_w, "activate", G_CALLBACK(_f), \ window); \ } G_STMT_END #define ADD_MENU_ITEM_STOCK(_p, _s, _f) \ G_STMT_START { \ GtkWidget *_w = gtk_image_menu_item_new_from_stock( \ (_s), accel_group); \ gtk_widget_show((_w)); \ gtk_menu_shell_append(GTK_MENU_SHELL(_p), (_w)); \ g_signal_connect(_w, "activate", G_CALLBACK(_f), \ window); \ } G_STMT_END #define ADD_SEPARATOR(_p) \ G_STMT_START { \ GtkWidget *_w = gtk_separator_menu_item_new(); \ gtk_widget_show((_w)); \ gtk_menu_shell_append(GTK_MENU_SHELL(_p), (_w)); \ } G_STMT_END ADD_MENU(perfkit_menu, _("_Perfkit")); ADD_MENU_ITEM(perfkit_menu, _("Connect to _Server"), gtk_false); ADD_SEPARATOR(perfkit_menu); ADD_MENU_ITEM_STOCK(perfkit_menu, GTK_STOCK_REFRESH, pkg_window_refresh_all); ADD_SEPARATOR(perfkit_menu); ADD_MENU_ITEM_STOCK(perfkit_menu, GTK_STOCK_QUIT, gtk_main_quit); ADD_MENU(help_menu, _("_Help")); ADD_MENU_ITEM_STOCK(help_menu, GTK_STOCK_ABOUT, gtk_false); hpaned = gtk_hpaned_new(); gtk_paned_set_position(GTK_PANED(hpaned), 275); gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0); gtk_widget_show(hpaned); scroller = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroller), GTK_SHADOW_IN); gtk_paned_add1(GTK_PANED(hpaned), scroller); gtk_widget_show(scroller); priv->model = gtk_tree_store_new(5, PK_TYPE_CONNECTION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT); priv->treeview = gtk_tree_view_new(); gtk_container_add(GTK_CONTAINER(scroller), priv->treeview); gtk_tree_view_set_model(GTK_TREE_VIEW(priv->treeview), GTK_TREE_MODEL(priv->model)); gtk_tree_view_expand_all(GTK_TREE_VIEW(priv->treeview)); gtk_widget_show(priv->treeview); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->treeview)); g_signal_connect(selection, "changed", G_CALLBACK(pkg_window_selection_changed), window); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Agents")); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview), column); cpix = gtk_cell_renderer_pixbuf_new(); g_object_set(cpix, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); gtk_tree_view_column_pack_start(column, cpix, FALSE); gtk_tree_view_column_set_cell_data_func(column, cpix, pkg_window_pixbuf_data_func, window, NULL); text = gtk_cell_renderer_text_new(); g_object_set(text, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_tree_view_column_pack_start(column, text, TRUE); gtk_tree_view_column_set_cell_data_func(column, text, pkg_window_label_data_func, window, NULL); priv->container = gtk_alignment_new(0.5f, 0.5f, 1.0f, 1.0f); gtk_paned_add2(GTK_PANED(hpaned), priv->container); gtk_widget_show(priv->container); EXIT; }