GMenu (Vala) Ryan Lortie desrt@desrt.ca 2012 Tiffany Antopolski tiffany.antopolski@gmail.com Jednoduchá implementace GMenuModel GMenu

Musíte používat GTK+ 3.4 nebo novější, aby tento příklad fungoval.

GtkApplication s jednoduchým widgetem GMenu a objekty SimpleAction

/* Okno v aplikaci */ public class Window : Gtk.ApplicationWindow { /* Konstruktor */ public Window (Application app) { Object (application: app, title: "Gmenu Example"); var about_action = new SimpleAction ("about", null); /* Napojí signál "activate" na obsluhu * signálu (neboli funkci zpětného volání) */ about_action.activate.connect (this.about_cb); /* Přidá akci do tohoto okna */ this.add_action (about_action); this.show (); } /* Zpracování signálu pro signál "activate"' od SimpleAction */ void about_cb (SimpleAction simple, Variant? parameter) { print ("This does nothing. It is only a demonstration.\n"); } } /* Toto je aplikace */ public class Application : Gtk.Application { /* Konstruktor */ public Application () { Object (application_id: "org.example.application"); } /* Přepíše signál "activate" z GLib.Application */ protected override void activate () { /* Vytvoří nové okno pro tuto aplikaci */ new Window (this); } /* Přepíše signál "startup" z GLib.Application */ protected override void startup () { base.startup (); var menu = new Menu (); menu.append ("About", "win.about"); menu.append ("Quit", "app.quit"); this.app_menu = menu; var quit_action = new SimpleAction ("quit", null); quit_action.activate.connect (this.quit); this.add_action (quit_action); } } /* Funkce main vytvoří aplikaci a spustí ji */ int main (string[] args) { return new Application ().run (args); }

V této ukázce se používá následující:

Gtk.Application

Gtk.ApplicationWindow

Menu

append

SimpleAction

add_action