Пример #1
0
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()));
}
Пример #2
0
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;
}