feat: add gtk3 examples
This commit is contained in:
parent
c284ea6baf
commit
f08e851a61
|
@ -0,0 +1,31 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
GtkWidget *window;
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
/*set title*/
|
||||
gtk_window_set_title(GTK_WINDOW(window), "Center");
|
||||
|
||||
/*set size*/
|
||||
gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
|
||||
|
||||
/*set position*/
|
||||
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
||||
|
||||
/*flag widget to be displayed*/
|
||||
gtk_widget_show(window);
|
||||
|
||||
/* connect callback fct with destory signal*/
|
||||
g_signal_connect(G_OBJECT(window), "destroy",
|
||||
G_CALLBACK(gtk_main_quit), NULL);
|
||||
|
||||
/*enter main loop and wait for events*/
|
||||
gtk_main();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
CC ?= gcc
|
||||
PKGCONFIG = $(shell which pkg-config)
|
||||
CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-3.0)
|
||||
LIBS = $(shell $(PKGCONFIG) --libs gtk+-3.0)
|
||||
|
||||
SRC = exampleapp.c
|
||||
|
||||
OBJS = $(SRC:.c=.o)
|
||||
|
||||
all: exampleapp
|
||||
|
||||
%.o: %.c
|
||||
|
||||
$(CC) -c -o $(@F) $(CFLAGS) $<
|
||||
|
||||
exampleapp: $(OBJS)
|
||||
|
||||
$(CC) -o $(@F) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
|
||||
rm -f $(OBJS)
|
||||
rm -f exampleapp
|
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
|
@ -0,0 +1,54 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
GdkPixbuf *create_pixbuf(const gchar * filename) {
|
||||
|
||||
//TODO This is not working with pointers!
|
||||
g_print("create_pixbuf() filename: %d\n", filename);
|
||||
|
||||
GdkPixbuf *pixbuf;
|
||||
GError *error = NULL;
|
||||
|
||||
/*create pixbuf by loading an image from a file*/
|
||||
pixbuf = gdk_pixbuf_new_from_file(filename, &error);
|
||||
|
||||
if (!pixbuf) {
|
||||
|
||||
/*print error msg if icon can not be loaded*/
|
||||
fprintf(stderr, "%s\n", error->message);
|
||||
g_error_free(error);
|
||||
}
|
||||
|
||||
return pixbuf;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
GtkWidget *window;
|
||||
GdkPixbuf *icon;
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title(GTK_WINDOW(window), "Icon");
|
||||
gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
|
||||
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
||||
|
||||
/*create GdkPixbuf from a PNG file*/
|
||||
icon = create_pixbuf("Logo_SIB_electricindigo.png");
|
||||
|
||||
/*display an icon*/
|
||||
gtk_window_set_icon(GTK_WINDOW(window), icon);
|
||||
|
||||
/*flag the widget to be displayed*/
|
||||
gtk_widget_show(window);
|
||||
|
||||
g_signal_connect(G_OBJECT(window), "destroy",
|
||||
G_CALLBACK(gtk_main_quit), NULL);
|
||||
|
||||
/*decrease the reference count of the pixbuf object*/
|
||||
g_object_unref(icon);
|
||||
|
||||
gtk_main();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
CC ?= gcc
|
||||
PKGCONFIG = $(shell which pkg-config)
|
||||
CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-3.0)
|
||||
LIBS = $(shell $(PKGCONFIG) --libs gtk+-3.0)
|
||||
|
||||
SRC = exampleapp.c
|
||||
|
||||
OBJS = $(SRC:.c=.o)
|
||||
|
||||
all: exampleapp
|
||||
|
||||
%.o: %.c
|
||||
|
||||
$(CC) -c -o $(@F) $(CFLAGS) $<
|
||||
|
||||
exampleapp: $(OBJS)
|
||||
|
||||
$(CC) -o $(@F) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
|
||||
rm -f $(OBJS)
|
||||
rm -f exampleapp
|
|
@ -0,0 +1,26 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
/*base class that all GTK+ widgets derive from*/
|
||||
GtkWidget *window;
|
||||
|
||||
/*initializing GTK+ and parsing command line options*/
|
||||
/*musst be called before any other fct*/
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
/*create new GtkWindow with window type GTK_WINDOW_TOPLEVEL*/
|
||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
/*flag the widget to be displayed*/
|
||||
gtk_widget_show(window);
|
||||
|
||||
/*connect callback fct to the destory signal*/
|
||||
g_signal_connect(window, "destroy",
|
||||
G_CALLBACK(gtk_main_quit), NULL);
|
||||
|
||||
/*enter main loop, sit and wait for events*/
|
||||
gtk_main();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
CC ?= gcc
|
||||
PKGCONFIG = $(shell which pkg-config)
|
||||
CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-3.0)
|
||||
LIBS = $(shell $(PKGCONFIG) --libs gtk+-3.0)
|
||||
|
||||
SRC = exampleapp.c
|
||||
|
||||
OBJS = $(SRC:.c=.o)
|
||||
|
||||
all: exampleapp
|
||||
|
||||
%.o: %.c
|
||||
|
||||
$(CC) -c -o $(@F) $(CFLAGS) $<
|
||||
|
||||
exampleapp: $(OBJS)
|
||||
|
||||
$(CC) -o $(@F) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
|
||||
rm -f $(OBJS)
|
||||
rm -f exampleapp
|
|
@ -0,0 +1,13 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
g_print("GTK+ version: %d.%d.%d\n", gtk_major_version,
|
||||
gtk_minor_version, gtk_micro_version);
|
||||
g_print("Glib version: %d.%d.%d\n", glib_major_version,
|
||||
glib_minor_version, glib_micro_version);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
CC ?= gcc
|
||||
PKGCONFIG = $(shell which pkg-config)
|
||||
CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-3.0)
|
||||
LIBS = $(shell $(PKGCONFIG) --libs gtk+-3.0)
|
||||
|
||||
SRC = exampleapp.c
|
||||
|
||||
OBJS = $(SRC:.c=.o)
|
||||
|
||||
all: exampleapp
|
||||
|
||||
%.o: %.c
|
||||
|
||||
$(CC) -c -o $(@F) $(CFLAGS) $<
|
||||
|
||||
exampleapp: $(OBJS)
|
||||
|
||||
$(CC) -o $(@F) $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
|
||||
rm -f $(OBJS)
|
||||
rm -f exampleapp
|
Loading…
Reference in New Issue