[Previous] [Next] [Up] [Contents] [Feedback]

5. Weitere Beispiele, Themes


Eine der besonderen Stärken von GTK ist, daß viele Widgets von GtkContainer abgeleitet sind. Ungewöhnliche Beispiele dafür sind GtkButton, GtkListItem und GtkMenuItem. Damit kann man zum Beispiel innerhalb von einem Button Layout verwenden, um andere Dinge (Bilder etc.) darauf anzuordnen.

Allerdings kann man auch kurioses erfinden, wie Text-Felder in Menüeinträgen oder das folgende Beispiel:

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
    GtkWindow *window;
    GtkButton *button1, *button2;

    gtk_init(&argc, &argv);

    window = (GtkWindow *) gtk_window_new(GTK_WINDOW_TOPLEVEL);
    button1 = (GtkButton *) gtk_button_new();
    button2 = (GtkButton *) gtk_button_new_with_label("Press me...");

    gtk_container_set_border_width(GTK_CONTAINER(button1), 10);
    gtk_container_set_border_width(GTK_CONTAINER(button2), 10);

    gtk_container_add(GTK_CONTAINER(button1), GTK_WIDGET(button2));
    gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(button1));
    gtk_widget_show_all(GTK_WIDGET(window));

    gtk_signal_connect(GTK_OBJECT(window), "destroy", gtk_main_quit, NULL);

    gtk_main();
    return 0;
}


Schließlich hat man noch die Möglichkeit, durch Manipulation in der Umgebung, in der das Programm abläuft (also ohne das Programm selbst zu verändern), Einfluß auf die verwendeten Farben, Fonts oder sogar die zur Darstellung verwendete Theme-Engine zu nehmen. Normalerweise wird so etwas in die Datei ~/.gtkrc eingetragen.

Ein Beispiel (von GTKstep):

style "nextstep"
{
  bg[ACTIVE] = "#909090"
  fg[ACTIVE] = "#000000"
  bg[NORMAL] = "#a8a8a8"
  fg[NORMAL] = "#000000"
  bg[INSENSITIVE] = "#888888"
  fg[INSENSITIVE] = "#000000"
  bg[PRELIGHT] = "#c0c0c0"
  fg[PRELIGHT] = "#000000"
  bg[SELECTED] = "#c8c8c8"
  fg[SELECTED] = "#000000"
  engine "step" 
  {
  }
}

[...]

# Common default
class "GtkWidget"               style "nextstep"
class "GtkWindow"               style "nextstep"
class "GtkDialog"               style "nextstep"
class "GtkFileSelection"        style "nextstep"
class "GtkFontSelection"        style "nextstep"
class "GtkCList"                style "nextclist"
class "GtkCTree"                style "nextclist"
class "*MenuItem*"              style "nextmenu"
widget "gtk-tooltips*"          style "tooltips"



[Previous] [Next] [Up] [Contents] [Feedback]