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
|
/*
gcc `pkg-config --cflags --libs gtk+-3.0`
*/
#include <gtk/gtk.h>
#include <stdio.h>
void ajouter_label(GtkWidget *widget, gpointer user_data)
{
GtkWidget *label;
label = gtk_label_new("LABEL");
gtk_box_pack_start(GTK_BOX(user_data), label, TRUE, FALSE, 0);
gtk_widget_show_all(user_data);
}
int main(int argc, char* argv[])
{
GtkWidget *window;
GtkWidget *box;
GtkWidget *box_scrollbar;
GtkWidget *scrollbar;
GtkWidget *bouton_ajouter;
/* GTK+ */
gtk_init(&argc, &argv);
/* Window */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 320, 200);
gtk_window_set_title(GTK_WINDOW(window), "Window");
/* Box */
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
box_scrollbar = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
/* Bouton */
bouton_ajouter = gtk_button_new_with_label("Ajouter");
/* Scrollbar */
scrollbar = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollbar), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
gtk_container_add(GTK_CONTAINER(scrollbar), box_scrollbar);
gtk_box_pack_start(GTK_BOX(box), bouton_ajouter, FALSE, FALSE, 10);
gtk_box_pack_start(GTK_BOX(box), scrollbar, TRUE, TRUE, 10);
gtk_container_add(GTK_CONTAINER(window),box);
/* CALLBACK */
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(bouton_ajouter), "clicked", G_CALLBACK(ajouter_label), box_scrollbar);
gtk_widget_show_all(window);
gtk_main();
return 0;
} |
Partager