Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.86 KB | None | 0 0
  1. #include "gtk/gtk.h"
  2. int count = 0;
  3. char buf[5];
  4.  
  5.     GdkPixbuf *create_pixbuf(const char * filename)
  6.         {
  7.  
  8.             GdkPixbuf *pixbuf;
  9.             GError *error = NULL;
  10.  
  11.             pixbuf = gdk_pixbuf_new_from_file(filename,&error);
  12.            
  13.             if(!pixbuf)
  14.                 {
  15.                     fprintf(stderr,"%s\n", error ->message);
  16.                     g_error_free(error);
  17.                 }
  18.             return pixbuf;
  19.         }
  20.  
  21.     void increase(GtkWidget *widget, GtkLabel *label)
  22.         {
  23.             count++;
  24.            
  25.             sprintf(buf,"%d",count);
  26.             gtk_label_set_text(label,buf);
  27.         }
  28.  
  29.     void decrease(GtkWidget *widget, GtkLabel *label)
  30.         {  
  31.             count--;
  32.            
  33.             sprintf(buf,"%d",count);
  34.             gtk_label_set_text(label,buf);
  35.         }
  36.                    
  37.     int main(int argc, char** argv)
  38.         {
  39.             GtkWidget *window;
  40.             GtkWidget *label;
  41.             GtkWidget *frame;
  42.             GtkWidget *plus;
  43.             GtkWidget *minus;          
  44.            
  45.             gtk_init(&argc,&argv);
  46.  
  47.             window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  48.            
  49.             gtk_window_set_default_size(GTK_WINDOW(window), 250, 400 );
  50.             gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  51.             gtk_window_set_title(GTK_WINDOW(window), "Center");
  52.             gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("penguin.png"));
  53.            
  54.             frame = gtk_fixed_new();
  55.             gtk_container_add(GTK_CONTAINER(window), frame);
  56.  
  57.             plus = gtk_button_new_with_label("+");
  58.             gtk_widget_set_size_request(plus,80,35);
  59.             gtk_fixed_put(GTK_FIXED(frame), plus, 50, 20);
  60.  
  61.             minus = gtk_button_new_with_label("-");
  62.             gtk_widget_set_size_request(minus,80,35);
  63.             gtk_fixed_put(GTK_FIXED(frame), minus, 50, 50);
  64.  
  65.             label = gtk_label_new("0");
  66.             gtk_fixed_put(GTK_FIXED(frame), label, 190, 58);
  67.        
  68.             gtk_widget_show_all(window);
  69.  
  70.             g_signal_connect(plus, "clicked", G_CALLBACK(increase), label);
  71.             g_signal_connect(minus, "clicked", G_CALLBACK(decrease), label);
  72.             g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
  73.  
  74.             gtk_main();
  75.  
  76.             return 0;
  77.  
  78.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement