GNOME-Workshop: Die Menüleiste
In diesem Teil kommt eine Menüleiste hinzu.
Von
P. Spingys
Eine einfache Menüleiste
/* 001 */ #include <gnome.h> /* 002 */ /* 003 */ GtkWidget *fenster; /* 004 */ GtkWidget *feld; /* 005 */ /* 006 */ void quit_prgm(GtkWidget *widget, gpointer data) /* 007 */ { /* 008 */ gtk_main_quit(); /* 009 */ } /* 010 */ /* 011 */ void about(GtkWidget *widget, gpointer data) /* 012 */ {} /* 013 */ /* 014 */ GnomeUIInfo filemenu[] = { /* 015 */ GNOMEUIINFO_SEPARATOR, /* 016 */ GNOMEUIINFO_MENU_EXIT_ITEM(quit_prgm, NULL), /* 017 */ GNOMEUIINFO_END /* 018 */ }; /* 019 */ /* 020 */ GnomeUIInfo helpmenu[] = { /* 021 */ GNOMEUIINFO_MENU_ABOUT_ITEM(about, NULL), /* 022 */ GNOMEUIINFO_END /* 023 */ }; /* 024 */ /* 025 */ GnomeUIInfo mainmenu[] = { /* 026 */ GNOMEUIINFO_MENU_FILE_TREE(filemenu), /* 027 */ GNOMEUIINFO_MENU_HELP_TREE(helpmenu), /* 028 */ GNOMEUIINFO_END /* 029 */ }; /* 030 */ /* 031 */ int main (int argc, char *argv[]) /* 032 */ { /* 033 */ GnomeAppBar *appbar; /* 034 */ /* 035 */ gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL); /* 036 */ fenster = gnome_app_new("", _("Hello World!")); /* 037 */ gnome_app_create_menus(GNOME_APP(fenster), mainmenu); /* 038 */ appbar = GNOME_APPBAR (gnome_appbar_new(FALSE, FALSE, FALSE)); /* 039 */ gnome_app_set_statusbar(GNOME_APP (fenster), GTK_WIDGET (appbar)); /* 040 */ gtk_signal_connect(GTK_OBJECT(fenster), "delete_event", /* 041 */ GTK_SIGNAL_FUNC(quit_prgm), NULL); /* 042 */ gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE); /* 043 */ feld = gtk_drawing_area_new(); /* 044 */ gnome_app_set_contents(GNOME_APP(fenster), feld); /* 045 */ gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300); /* 046 */ gtk_widget_show(fenster); /* 047 */ gtk_main(); /* 048 */ return 0; /* 049 */ }
Befehlszeile | deutscher Text |
---|---|
GNOMEUIINFO_END | { oblig. Schluß } |
GNOMEUIINFO_SEPARATOR | { Trennlinie } |
GNOMEUIINFO_MENU_FILE_TREE(mymenu) | Datei |
GNOMEUIINFO_MENU_SETTINGS_TREE(mymenu) | Einstellungen |
GNOMEUIINFO_MENU_HELP_TREE(mymenu) | Hilfe |
GNOMEUIINFO_MENU_GAME_TREE(mymenu) | Spiel |
GNOMEUIINFO_MENU_SELECT_ALL_ITEM(mymenu,NULL) | Alle auswählen |
GNOMEUIINFO_MENU_CUT_ITEM(mymenu,NULL) | _Ausschneiden |
GNOMEUIINFO_MENU_EXIT_ITEM(mymenu, NULL) | _Beenden |
GNOMEUIINFO_MENU_PRINT_ITEM(mymenu,NULL) | _Drucken |
GNOMEUIINFO_MENU_PASTE_ITEM(mymenu,NULL) | E_infügen |
GNOMEUIINFO_MENU_PREFERENCES_ITEM(mymenu, NULL) | Einstellungen... |
GNOMEUIINFO_MENU_REPLACE_ITEM(mymenu,NULL) | E_rsetzen... |
GNOMEUIINFO_MENU_HINT_ITEM(mymenu, NULL) | _Hinweis |
GNOMEUIINFO_MENU_ABOUT_ITEM(mymenu, NULL) | _Info... |
GNOMEUIINFO_MENU_COPY_ITEM(mymenu,NULL) | _Kopieren |
GNOMEUIINFO_MENU_NEW_GAME_ITEM(mymenu, NULL) | _Neues Spiel |
GNOMEUIINFO_MENU_SCORES_ITEM(mymenu, NULL) | Rangliste |
GNOMEUIINFO_MENU_UNDO_ITEM(mymenu,NULL) | _Rückgängig |
GNOMEUIINFO_MENU_CLOSE_ITEM(mymenu,NULL) | S_chließen |
GNOMEUIINFO_MENU_SAVE_ITEM(mymenu, NULL) | _Speichern |
GNOMEUIINFO_MENU_SAVE_AS_ITEM(mymenu, NULL) | Speichern _unter... |
GNOMEUIINFO_MENU_RESTART_GAME_ITEM(mymenu, NULL) | Spiel neu starten |
GNOMEUIINFO_MENU_FIND_ITEM(mymenu,NULL) | _Suchen... |
GNOMEUIINFO_MENU_FIND_AGAIN_ITEM(mymenu,NULL) | Weitersuchen |
GNOMEUIINFO_MENU_REDO_ITEM(mymenu,NULL) | _Wiederherstellen |
GNOMEUIINFO_MENU_REDO_MOVE_ITEM(mymenu, NULL) | Zug wiederherstellen |
GNOMEUIINFO_MENU_UNDO_MOVE_ITEM(mymenu, NULL) | Zug zurücknehemen |
Eine geSTOCKte Menüleiste
#include <gnome.h> GtkWidget *fenster; GtkWidget *feld; void quit_prgm(GtkWidget *widget, gpointer data) { gtk_main_quit(); } void about(GtkWidget *widget, gpointer data) {} GnomeUIInfo filemenu[] = { GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_ITEM_STOCK(N_("_Beenden"), N_("beendet Programm"), quit_prgm, GNOME_STOCK_PIXMAP_REDO), GNOMEUIINFO_END }; GnomeUIInfo helpmenu[] = { GNOMEUIINFO_ITEM_STOCK(N_("_Info..."), N_("Info"), about, GNOME_STOCK_PIXMAP_REDO), GNOMEUIINFO_END }; GnomeUIInfo mainmenu[] = { GNOMEUIINFO_MENU_FILE_TREE(filemenu), GNOMEUIINFO_MENU_HELP_TREE(helpmenu), GNOMEUIINFO_END }; int main (int argc, char *argv[]) { GnomeAppBar *appbar; gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL); fenster = gnome_app_new("", _("Hello World!")); gnome_app_create_menus(GNOME_APP(fenster), mainmenu); appbar = GNOME_APPBAR (gnome_appbar_new(FALSE, FALSE, FALSE)); gnome_app_set_statusbar(GNOME_APP (fenster), GTK_WIDGET (appbar)); gtk_signal_connect(GTK_OBJECT(fenster), "delete_event", GTK_SIGNAL_FUNC(quit_prgm), NULL); gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE); feld = gtk_drawing_area_new(); gnome_app_set_contents(GNOME_APP(fenster), feld); gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300); gtk_widget_show(fenster); gtk_main(); return 0; }
Für den besonderen Fall
#include <gnome.h> GtkWidget *fenster; GtkWidget *feld; void quit_prgm(GtkWidget *widget, gpointer data) { gtk_main_quit(); } void about(GtkWidget *widget, gpointer data) {} GnomeUIInfo filemenu[] = { GNOMEUIINFO_SEPARATOR, { GNOME_APP_UI_ITEM, N_("Beende Programm"), N_("beendet Programm"), quit_prgm, NULL, NULL, GNOME_APP_PIXMAP_NONE, NULL, 0, GDK_CONTROL_MASK, NULL }, GNOMEUIINFO_END }; GnomeUIInfo helpmenu[] = { { GNOME_APP_UI_ITEM, N_("mein About"), N_("über"), about, NULL, NULL, GNOME_APP_PIXMAP_NONE, NULL, 0, GDK_CONTROL_MASK, NULL }, GNOMEUIINFO_END }; GnomeUIInfo mainmenu[] = { GNOMEUIINFO_MENU_FILE_TREE(filemenu), GNOMEUIINFO_MENU_HELP_TREE(helpmenu), GNOMEUIINFO_END }; int main (int argc, char *argv[]) { GnomeAppBar *appbar; gnome_init_with_popt_table("", NULL, argc, argv, NULL, 0, NULL); fenster = gnome_app_new("", _("Hello World!")); gnome_app_create_menus(GNOME_APP(fenster), mainmenu); appbar = GNOME_APPBAR (gnome_appbar_new(FALSE, FALSE, FALSE)); gnome_app_set_statusbar(GNOME_APP (fenster), GTK_WIDGET (appbar)); gtk_signal_connect(GTK_OBJECT(fenster), "delete_event", GTK_SIGNAL_FUNC(quit_prgm), NULL); gtk_window_set_policy(GTK_WINDOW(fenster), TRUE, TRUE, FALSE); feld = gtk_drawing_area_new(); gnome_app_set_contents(GNOME_APP(fenster), feld); gtk_drawing_area_size(GTK_DRAWING_AREA(feld), 400, 300); gtk_widget_show(fenster); gtk_main(); return 0; }