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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| #include <gtk/gtk.h>
GtkWidget *menu;
static void
on_clicked () {
gtk_menu_popup ((GtkMenu *) menu, NULL, NULL, NULL, NULL, 1,
gtk_get_current_event_time ());
}
static void
on_add_activate () {
g_print ("add\n");
}
static void
on_del_activate () {
g_print ("del\n");
}
int main (int *argc, char ***argv) {
gtk_init (&argc, &argv);
GtkWidget *window, *vbox, *toolbox, *button;
GtkAction *add_action, *del_action;
GtkWidget *add_menu, *add_toolitem, *del_menu, *del_toolitem;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size ((GtkWindow *) window, 200, 100);
vbox = gtk_vbox_new (0, FALSE);
gtk_container_add ((GtkContainer *) window,
(GtkWidget *) vbox);
toolbox = gtk_toolbar_new ();
gtk_box_pack_start ((GtkBox *) vbox,
(GtkWidget *) toolbox,
FALSE, FALSE, 0);
//GtkAction
add_action = gtk_action_new ("add_action",
"Adicione-me",
"Clicando aqui vai adicionar alguma coisa",
GTK_STOCK_ADD);
del_action = gtk_action_new ("del_action",
"Remova-me",
"Clicando aqui vai remover alguma coisa",
GTK_STOCK_REMOVE);
g_signal_connect (add_action, "activate", G_CALLBACK (on_add_activate), NULL);
g_signal_connect (del_action, "activate", G_CALLBACK (on_del_activate), NULL);
menu = gtk_menu_new ();
add_menu = gtk_action_create_menu_item ((GtkAction *) add_action);
del_menu = gtk_action_create_menu_item ((GtkAction *) del_action);
gtk_menu_shell_insert ((GtkMenuShell *) menu,
(GtkWidget *) add_menu, 0);
gtk_menu_shell_insert ((GtkMenuShell *) menu,
(GtkWidget *) del_menu, 1);
//ToolBar
add_toolitem = gtk_action_create_tool_item ((GtkAction *) add_action);
del_toolitem = gtk_action_create_tool_item ((GtkAction *) del_action);
gtk_toolbar_insert ((GtkToolbar *) toolbox,
(GtkToolItem *) add_toolitem, 0);
gtk_toolbar_insert ((GtkToolbar *) toolbox,
(GtkToolItem *) del_toolitem, 1);
button = gtk_button_new_with_mnemonic ("-------_Clique-me--------");
gtk_box_pack_start ((GtkBox *) vbox, (GtkWidget *) button, FALSE, FALSE, 0);
g_signal_connect (button, "clicked", G_CALLBACK (on_clicked), NULL);
button = gtk_button_new_with_mnemonic ("---------_Sair----------");
gtk_box_pack_start ((GtkBox *) vbox, (GtkWidget *) button, FALSE, FALSE, 0);
g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show_all ((GtkWidget *) window);
gtk_main ();
return 0;
} |