1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| /* Initialize GTK+ */
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
gtk_init (&argc, &argv); /* initialisation GTK */
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
/* creation des icones */
[... je ne pense pas que ce soit urile ici ..]
/* Create the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* déclaration d'une fenêtre complète */
param[0]=(void *)win;
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "Tirage de personnages");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_widget_realize (win);
g_signal_connect (win, "destroy", gtk_main_quit, NULL);
/* icone */
if (!gtk_window_set_icon_from_file(GTK_WINDOW (win),"add.png",&error))
{ /* met une icone à la fenêtre */
traite_erreur(error);
g_error_free(error);
}
/* Create a vertical box with buttons */
vbox = gtk_vbox_new (TRUE, 6);
gtk_container_add (GTK_CONTAINER (win), vbox);
/* initialisation du menu */
p_actionGroup = gtk_action_group_new( "menuActionGroup" );
/* toutes les entrées sauf boutons radio et cases à cocher */
gtk_action_group_add_actions( p_actionGroup, entrees_menu, G_N_ELEMENTS( entrees_menu ), param );
/* boutons radio */
gtk_action_group_add_radio_actions (p_actionGroup, v_radio_entries, G_N_ELEMENTS (v_radio_entries), 2, (GCallback)version, (gpointer) param);
gtk_action_group_add_radio_actions (p_actionGroup, radio_entries, G_N_ELEMENTS (radio_entries), 1, NULL, NULL);
[... d'autres groupes de boutons radios ...]
/* cases à cocher */
gtk_action_group_add_toggle_actions (p_actionGroup, toggle_entries, G_N_ELEMENTS (toggle_entries), param);
/* déclaration de l'item menu */
menu_Manager = gtk_ui_manager_new ();
/******************************************************/
/* manipulation pour activer les raccourcis clavier */
pAccel = gtk_ui_manager_get_accel_group (menu_Manager); /* Création de l'AccelGroup à partir du GtkActionEntry */
gtk_window_add_accel_group (GTK_WINDOW (win), pAccel); /* Activation des raccourcis clavier à partir de l'AccelGroup */
/******************************************************/
gtk_ui_manager_add_ui_from_file(menu_Manager,"main.menu.xml",NULL); /* création des items du menu à partir du fichier xml */
gtk_ui_manager_insert_action_group( menu_Manager, p_actionGroup, 0 ); /* lien entre le menu est actions définies précédement */
gtk_ui_manager_set_add_tearoffs (menu_Manager,TRUE); /* possibilité de décrocher les sous-menu */
g_signal_connect(menu_Manager,"add_widget",G_CALLBACK( menu_addWidget ),GTK_CONTAINER(vbox)); /* génère le menu */
menubar = gtk_ui_manager_get_widget (menu_Manager,"/menubar/Tirage/Classes"); /* pour placer le menu devant ?? */
param[2]=(void *)menubar;
param[3]=(void *)p_actionGroup;
/* les trois boutons */
button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (explication), (gpointer) param);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
[... deux autres boutons comme le premier ..]
/* inactivation de certaines entrées du menu */
[... sans importance ici ...]
/* Enter the main loop */
free(ici);
gtk_widget_show_all (win);
gtk_main (); |
Partager