# 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