# Dialog (Vala)

Tiffany Antopolski
tiffany.antopolski@gmail.com 2012
Vyskakovací okno

# Dialog

Dialogové okno reagující na signál zaháčkovaný na funkci zpětného volání.

/* Okno v aplikaci */ public class MyWindow : Gtk.ApplicationWindow {

/* Konstruktor */ internal MyWindow (MyApplication app) { Object (application: app, title: "GNOME Button");

this.window_position = Gtk.WindowPosition.CENTER; this.set_default_size (250,50);

var button = new Gtk.Button.with_label ("Click Me");

/* Napojí signál "clicked" tlačítka * na obsluhu signálu (neboli funkci zpětného volání) */ button.clicked.connect (this.on_button_click);

/* Přidá tlačítko do tohoto okna a zobrazí jej */ this.add (button); button.show (); }

/* Zpracování signálu pro signál "clicked" tlačítek */ void on_button_click (Gtk.Button button) { var dialog = new Gtk.Dialog.with_buttons ("A Gtk+ Dialog", this, Gtk.DialogFlags.MODAL, Gtk.Stock.OK, Gtk.ResponseType.OK, null);

var content_area = dialog.get_content_area (); var label = new Gtk.Label ("This demonstrates a dialog with a label");

content_area.add (label);

/* Napojí signál "response" dialogového okna * na zpracování signálu. Signál je vyslán, kdy je kliknuto * na tlačítko OK v dialogovém okně */ dialog.response.connect (on_response);

/* Zobrazí dialogové okno a všechny jeho widgety */ dialog.show_all (); }

/* Zpracování signálu pro signál "response" dialogového okna */ void on_response (Gtk.Dialog dialog, int response_id) {

/* Zobrazí celočíselnou hodnotu ResponseType. Slouží jen * pro ukázkové účely */ print ("response is %d\n", response_id);

/* Způsobí likvidaci dialogového okna */ dialog.destroy (); }

}

/* Toto je aplikace */ public class MyApplication : Gtk.Application {

/* Konstruktor aplikace */ internal MyApplication () { Object (application_id: "org.example.MyApplication"); }

/* Přepíše signál "activate" z GLib.Application */ protected override void activate () {

/* Vytvoří okno pro tuto aplikaci a zobrazí jej */ new MyWindow (this).show (); } }

/* Funkce main vytvoří a spustí aplikaci */ public int main (string[] args) { return new MyApplication ().run (args); }

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

Gtk.Dialog

Gtk.Dialog.with_buttons

Gtk.Label

get_content_area