ΠΡΠΎΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π² Π½Π΅Π³ΠΎ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ².
<b>#define GNOMEUIINFO_MENU_FILE_TREEΒ Β Β Β (tree)</b><b>#define GNOMEUIINFO_MENU_EDIT_TREEΒ Β Β Β (tree)</b><b>#define GNOMEUIINFO_MENU_VIEW_TREEΒ Β Β Β (tree)</b><b>#define GNOMEUIINFO_MENU_SETTINGS_TREEΒ (tree)</b><b>#define GNOMEUIINFO_MENU_FILES_TREEΒ Β Β (tree)</b><b>#define GNOMEUIINFO_MENU_WINDOWS_TREEΒ (tree)</b><b>#define GNOMEUIINFO_MENU_HELP_TREEΒ Β Β Β (tree)</b><b>#define GNOMEUIINFO_MENU_GAME_TREEΒ Β Β Β (tree)</b>ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 16.10.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ ΡΠΆΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ. ΠΠ½Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ menu1.Ρ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ menu2.c. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° β ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² GNOME, ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΡ ΠΌΠ΅Π½Ρ.
#include <gnome.h><i>static GnomeUIInfo filemenu[] = {</i><i>Β GNOMEUIINFO_MENU_NEW_ITEM("New", "Menu Hint", NULL, NULL),</i><i>Β GNOMEUIINFO_MENU_OPEN_ITEM(NULL, NULL),</i><i>Β GNOMEUIINFO_MENU_SAVE_AS_ITEM(NULL, NULL),</i><i>Β GNOMEUIINFO_SEPARATOR,</i><i>Β GNOMEIINFO_MENU_EXIT_ITEM(NULL, NULL),</i><i>Β GNOMEUUINFO_END</i><i>};</i><i>static GnomeUUInfo editmenu[] = </i><i>Β GNOMEUIINFO_MENU_FIND_ITEM(NULL, NULL),</i><i>Β GNOMEUIINFO_END</i><i>};</i><i>static GnomeUIInfo menubar[] = {</i><i>Β GNOMEUIINFO_MENU_FILE_TREE(filemenu),</i><i>Β GNOMEUIINFO_MENU_EDIT_TREE(editmenu),</i><i>Β GNOMEUIINFO_END</i><i>};</i>int main(int argc, char *argv[]) {Β GtkWidget *app, *toolbar;Β gnome_program_init("gnome1", "0.1", LIBGNOMEUI_MODULE,Β argc, argv, GNOME_PARAM_NONE);Β app = gnome_app_new("gnome1", "Menus, menus, menus");Β gtk_window_set_default_size(GTK_WINDOW(app), 300, 200);Β gnome_app_create_menus(GNOME_APP(app), menubar);Β gtk_widget_show(app);Β gtk_main();Β return 0;}ΠΡΠΈΠΌΠ΅Π½ΠΈΠ² ΠΌΠ°ΠΊΡΠΎΡΡ libgnomeui Π² menu2.c, Π²Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π½Π°Π±ΠΈΡΠ°ΡΡ, ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π΅Π³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅. ΠΠ°ΠΊΡΠΎΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ Π²Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ΅Π½Ρ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅Π½Ρ, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΡ Π°ΠΊΡΠ΅Π»Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ GNOME. Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΠ° ΡΠΈΡ. 16.13 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° menu3.c Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π½Π° ΡΠ΅ΠΉ ΡΠ°Π· ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π² ΡΡΠ΅Π΄Π΅ GNOME ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ.

Π ΠΈΡ. 16.13
ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ GUI β Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΎ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ . ΠΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ OK ΠΈ Cancel ΠΈ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½Π°, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°, Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΠ½Π°ΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΠ±ΠΎΡ (ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ).
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΈ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ GTK+ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½, ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° GtkWindow, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΡΡ ΡΠ°Π±ΠΎΡΡ.
GtkDialog
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ
GtkDialogGtkWindowGtkWindowΒ +----GtkDialogGtkDialog<b>GtkWidget* gtk_dialog_new_with_buttons(const gchar *title,</b><b>Β GtkWindow *parent, GtkDialogFlags flags,</b><b>Β const gchar *first button text, ...);</b>ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ,
parentΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
flagsβ‘
GTK_DIALOG_MODALβ‘
GTK_DIALOG_DESTROY_WITH_PARENTβ‘
GTK_DIALOG_NO_SEPARATORΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ORGTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATORΠΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β ΡΡΠΎ
NULLgtk_dialog_run