GNOME-Workshop: Die Statusleiste
In diesem Teil wird eine Statusleiste hinzugefügt.
Von
P. Spingys
Das Grundgerüst der Statusleiste
Um in das Programm prg01_02.c eine Statusleiste einzufügen, benötigt man genau drei zusätzliche Zeilen:
/* 001 */ #include <gnome.h> /* 002 */ /* 003 */ GtkWidget *fenster; /* 004 */ GtkWidget *feld; <strong>/* 005 */ GtkWidget *statusleiste;</strong> /* 006 */ /* 007 */ int main (int argc, char *argv[]) /* 008 */ { /* 009 */ gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL); /* 010 */ fenster = gnome_app_new("", _("mein Programm") ); /* 011 */ gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE); /* 012 */ feld = gtk_drawing_area_new(); /* 013 */ gnome_app_set_contents(GNOME_APP(fenster), feld); /* 014 */ gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300); <strong>/* 015 */ statusleiste = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER); /* 016 */ gnome_app_set_statusbar(GNOME_APP(fenster), statusleiste);</strong> /* 017 */ gtk_widget_set_uposition(fenster, 60, 20); /* 018 */ gtk_widget_show(fenster); /* 019 */ gtk_main(); /* 020 */ return 0; /* 021 */ }
Da es sich hier um kein Hello-World-Programm mehr handelt, wurde in Zeile 10 nun festgelegt, daß in der Titelleiste des Fensters von nun an "mein Programm" steht.
Einen Text neben die Statusleiste schreiben
/* 001 */ #include <gnome.h> /* 002 */ /* 003 */ GtkWidget *fenster; /* 004 */ GtkWidget *feld; /* 005 */ GtkWidget *sttbl; /* 006 */ GtkWidget *label; /* 007 */ GtkWidget *statusleiste; /* 008 */ /* 009 */ int main (int argc, char *argv[]) /* 010 */ { /* 011 */ gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL); /* 012 */ fenster = gnome_app_new("", _("mein Programm") ); /* 013 */ gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE); /* 014 */ feld = gtk_drawing_area_new(); /* 015 */ gnome_app_set_contents(GNOME_APP(fenster), feld); /* 016 */ gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300); /* 017 */ sttbl = gtk_table_new(1, 8, FALSE); /* 018 */ label = gtk_label_new(_("hier steht der Text ")); /* 019 */ gtk_table_attach(GTK_TABLE(sttbl), label, 0, 1, 0, 1, 0, 0, 3, 3); /* 020 */ gtk_widget_show(label); /* 021 */ gtk_widget_show(sttbl); /* 022 */ statusleiste = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER); /* 023 */ gtk_box_pack_start(GTK_BOX(statusleiste), sttbl, FALSE, FALSE, 0); /* 024 */ gnome_app_set_statusbar(GNOME_APP(fenster), statusleiste); /* 025 */ gtk_widget_set_uposition(fenster, 60, 20); /* 026 */ gtk_widget_show(fenster); /* 027 */ gtk_main(); /* 028 */ return 0; /* 029 */ }