Advertisement
ramytamer

gtk test

May 14th, 2014
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. #include <gtk/gtk.h>
  2.  
  3. gint count = 0;
  4. char buf[5];
  5.  
  6. void increase(GtkWidget *widget, gpointer label){
  7.   count++;
  8.  
  9.   sprintf(buf, "%d", count);
  10.   gtk_label_set_text(GTK_LABEL(label), buf);
  11. }
  12.  
  13. void resetfn(GtkWidget *widget, gpointer label){
  14.     count=0;
  15.  
  16.     sprintf(buf,"%d",count);
  17.     gtk_label_set_text(GTK_LABEL(label),buf);
  18. }
  19.  
  20. void decrease(GtkWidget *widget, gpointer label){
  21.   count--;
  22.  
  23.   sprintf(buf, "%d", count);
  24.   gtk_label_set_text(GTK_LABEL(label), buf);
  25. }
  26.  
  27. /* Another callback */
  28. void destroy( GtkWidget *widget, gpointer data ){
  29.     gtk_main_quit ();
  30. }
  31.  
  32. int main( int argc,char *argv[] ){
  33.     GtkWidget *window;
  34.     GtkWidget *frame;
  35.     GtkWidget *plus;
  36.     GtkWidget *minus;
  37.     GtkWidget *reset;
  38.     GtkWidget *label;
  39.  
  40.     gtk_init(&argc, &argv);
  41.  
  42.     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  43.     gtk_window_set_title(GTK_WINDOW(window),"Hi world");
  44.     gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
  45.     gtk_window_set_default_size(GTK_WINDOW(window),500,450);
  46.     gtk_window_set_resizable(GTK_WINDOW(window),TRUE);
  47.     // gtk_window_maximize(GTK_WINDOW(window));
  48.  
  49.     GError *error = NULL;
  50.     gtk_window_set_icon(GTK_WINDOW(window), gdk_pixbuf_new_from_file("icon.png", &error));
  51.  
  52.     frame = gtk_fixed_new();
  53.     gtk_container_add(GTK_CONTAINER(window), frame);
  54.  
  55.     plus = gtk_button_new_with_label("+");
  56.     gtk_widget_set_size_request(plus, 80, 35);
  57.     gtk_fixed_put(GTK_FIXED(frame), plus, 50, 20);
  58.  
  59.     minus = gtk_button_new_with_label("-");
  60.     gtk_widget_set_size_request(minus, 80, 35);
  61.     gtk_fixed_put(GTK_FIXED(frame), minus, 50, 80);
  62.  
  63.     reset = gtk_button_new_with_label("RESET");
  64.     gtk_widget_set_size_request(reset,80,35);
  65.     gtk_fixed_put(GTK_FIXED(frame),reset,50,140);
  66.  
  67.     label = gtk_label_new("0");
  68.     gtk_fixed_put(GTK_FIXED(frame), label, 190, 58);
  69.  
  70.     g_signal_connect(window, "destroy",G_CALLBACK (gtk_main_quit), NULL);
  71.  
  72.     g_signal_connect(plus, "clicked",G_CALLBACK(increase), label);
  73.  
  74.     g_signal_connect(minus, "clicked",G_CALLBACK(decrease), label);
  75.  
  76.     g_signal_connect(reset,"clicked",G_CALLBACK(resetfn),label);
  77.  
  78.     gtk_widget_show_all(window);
  79.  
  80.  
  81.     gtk_main();
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement