aboutsummaryrefslogtreecommitdiffstats
path: root/gtk.c
diff options
context:
space:
mode:
authorEliteTK <tomasz.kramkowski@gmail.com>2014-04-24 09:06:24 +0100
committerEliteTK <tomasz.kramkowski@gmail.com>2014-04-24 09:06:24 +0100
commita98d134e89a42909721dcefd426118af38628048 (patch)
treecdf43f11ed4aafbc46fe813584851612ae7c3c89 /gtk.c
parentc1a966057407d815d054ddbd2432badda91d4379 (diff)
downloadc-stuff-a98d134e89a42909721dcefd426118af38628048.tar.gz
c-stuff-a98d134e89a42909721dcefd426118af38628048.tar.xz
c-stuff-a98d134e89a42909721dcefd426118af38628048.zip
Latest random crap.
Diffstat (limited to 'gtk.c')
-rw-r--r--gtk.c79
1 files changed, 79 insertions, 0 deletions
diff --git a/gtk.c b/gtk.c
new file mode 100644
index 0000000..2661800
--- /dev/null
+++ b/gtk.c
@@ -0,0 +1,79 @@
+#include<gtk/gtk.h>
+
+gint count = 0;
+char buf[5];
+
+void increase(GtkWidget *widget, gpointer label)
+{
+ count++;
+
+ sprintf(buf, "%d", count);
+ gtk_label_set_text(GTK_LABEL(label), buf);
+}
+
+void decrease(GtkWidget *widget, gpointer label)
+{
+ count--;
+
+ sprintf(buf, "%d", count);
+ gtk_label_set_text(GTK_LABEL(label), buf);
+}
+
+
+GdkPixbuf *create_pixbuf(const gchar *filename)
+{
+ GdkPixbuf *pixbuf;
+ GError *error = NULL;
+ pixbuf = gdk_pixbuf_new_from_file(filename, &error);
+ if(!pixbuf) {
+ fprintf(stderr, "%s\n", error->message);
+ g_error_free(error);
+ }
+
+ return pixbuf;
+}
+
+int main(int argc, char **argv)
+{
+
+ GtkWidget *label;
+ GtkWidget *window;
+ GtkWidget *frame;
+ GtkWidget *plus;
+ GtkWidget *minus;
+
+ gtk_init(&argc, &argv);
+
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(window), "Yay!");
+ gtk_window_set_default_size(GTK_WINDOW(window), 250, 180);
+ gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+ gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("/home/main/Media/Pictures/GTKTutIcon.png"));
+
+ frame = gtk_fixed_new();
+ gtk_container_add(GTK_CONTAINER(window), frame);
+
+ plus = gtk_button_new_with_label("+");
+ gtk_widget_set_size_request(plus, 50, 20);
+ gtk_fixed_put(GTK_FIXED(frame), plus, 50, 20);
+
+ minus = gtk_button_new_with_label("-");
+ gtk_widget_set_size_request(minus, 50, 20);
+ gtk_fixed_put(GTK_FIXED(frame), minus, 50, 80);
+
+ label = gtk_label_new("0");
+ gtk_fixed_put(GTK_FIXED(frame), label, 190, 58);
+
+ gtk_widget_show_all(window);
+
+ g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
+
+ g_signal_connect(plus, "clicked", G_CALLBACK(increase), label);
+
+ g_signal_connect(minus, "clicked", G_CALLBACK(decrease), label);
+
+ gtk_main();
+
+ return 0;
+}
+