Program 'Halo Indonesia'

Buatlah berkas dengan nama halo.c, berisi program sebagai berikut :


Contoh program, halo.c :


#include <gtk/gtk.h>

static gint delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data);
static void button_click_cb(GtkWidget* w, gpointer data);

int
main(int argc, char* argv[])
{
GtkWidget* window;
GtkWidget* button;
GtkWidget* label;

gtk_init(&argc,&argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

button = gtk_button_new();

label = gtk_label_new("Halo Indonesia");

gtk_container_add(GTK_CONTAINER(button), label);
gtk_container_add(GTK_CONTAINER(window), button);

gtk_window_set_title(GTK_WINDOW(window),"HALO");
gtk_container_set_border_width(GTK_CONTAINER(window), 10);

g_signal_connect(G_OBJECT(window),
"delete_event",
G_CALLBACK(delete_event_cb),
NULL);

g_signal_connect(G_OBJECT(button),
"clicked",
G_CALLBACK(button_click_cb),
label);

gtk_widget_show_all(window);

gtk_main();

return 0;

}

static gint
delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data)
{
gtk_main_quit();
return FALSE;
}

static void
button_click_cb(GtkWidget* w, gpointer data)
{
GtkWidget* label;
gchar* text;
gchar* tmp;

label = GTK_WIDGET(data);

gtk_label_get(GTK_LABEL(label), &text);

tmp = g_strdup(text);

g_strreverse(tmp);

gtk_label_set_text(GTK_LABEL(label), tmp);

g_free(tmp);
}




Kompilasi 'Halo Indonesia'



GTK+ dilengkapi dengan bantuan pkg-config . Program ini berguna untuk mendapatkan flag kompiler yang diperlukan untuk proses kompilasi program GTK+. Contoh keluaran :


$ pkg-config –-cflags gtk+-2.0

-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/aaatk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/incluuude -I/usr/include/freetype2 -I/usr/include/gliib-2.0 -I/usr/lib/glib-2.00/include


$ pkg-config –-libs gtk+-2.0

-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -llm -lpangoxft-11.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmmodule-2.0 -ldl -lglib-2.00



Atau dapat digabung menjadi :

$ pkg-config –-cflags –-libs gtk+-2.0


Kemudian buat berkas Makefile yang berisi :

CC=gcc

all: halo.c
$(CC) `pkg-config --cflags --libs gtk+-2.0` -o halo halo.c

clean:
rm -f *.o

Jika Anda menggunakan Bourne shell, semisal bash, pastikan memakai tanda kutip tunggal terbalik (backtick). Juga gunakan tab (bukan spasi) di baris di bawah keyword all dan clean.


Untuk membuat programnya Anda dapat menjalankan perintah :


$ make

$ ./halo


<<Sekilas GTK+ Dasar-dasar Gtk+
Apa yang Telah Anda Buat>>


Hosted by www.Geocities.ws

1