Blame platform-demos/cs/radiobutton.js.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="radiobutton.js" xml:lang="cs">
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">RadioButton (JavaScript)</title>
Packit 1470ea
    <link type="guide" xref="beginner.js#buttons"/>
Packit 1470ea
    <revision version="0.1" date="2012-06-15" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Taryn Fox</name>
Packit 1470ea
      <email its:translate="no">jewelfox@fursona.net</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>V každý okamžik může být vybrán jej jeden</desc>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>RadioButton</title>
Packit 1470ea
  <media type="image" mime="image/png" src="media/radiobuttontravel.png"/>
Packit 1470ea
  

Skupinový přepínač se anglicky se nazývá „rádiové tlačítko“ podle starých autorádií, která měla tlačítka pro přepínání kanálu. Rádio může mít v kterýkoliv okamžik naladěnu jen jednu stanici, takže když jste zmáčkli libovolné tlačítko, všechny ostatní vyskočily. Tyto skupinové přepínače fungují úplně stejně.

Packit 1470ea
  

Každý widget RadioButton potřebuje popisek a skupinu. V kterýkoliv okamžik lze vybrat jen jeden skupinový přepínač ve skupině. Není třeba každou skupinu pojmenovat, stačí nastavit nový RadioButton jako součást skupiny, která již existuje. Když vytvoříte nový mimo jakoukoliv skupinu, automaticky se pro něj nový skupina vytvoří a stane se její součástí.

Packit 1470ea
    <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="imports">
Packit 1470ea
    <title>Importované knihovny</title>
Packit 1470ea
    
Packit 1470ea
#!/usr/bin/gjs
Packit 1470ea
Packit 1470ea
const Gio = imports.gi.Gio;
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
const Lang = imports.lang;
Packit 1470ea
Packit 1470ea
    

Toto jsou knihovny, které potřebujeme naimportovat, aby aplikace běžela. Pamatujte si, že řádek, který GNOME říká, že používáme Gjs, musí být vždy na začátku.

Packit 1470ea
    </section>
Packit 1470ea
Packit 1470ea
  <section id="applicationwindow">
Packit 1470ea
    <title>Vytvoření okna aplikace</title>
Packit 1470ea
    
Packit 1470ea
const RadioButtonExample = new Lang.Class({
Packit 1470ea
    Name: 'RadioButton Example',
Packit 1470ea
Packit 1470ea
    // Vytvoří vlastní aplikaci
Packit 1470ea
    _init: function() {
Packit 1470ea
        this.application = new Gtk.Application({
Packit 1470ea
            application_id: 'org.example.jsradiobutton',
Packit 1470ea
            flags: Gio.ApplicationFlags.FLAGS_NONE
Packit 1470ea
        });
Packit 1470ea
Packit 1470ea
    // Napojí signály "activate" a "startup" k funkcím zpětného volání
Packit 1470ea
    this.application.connect('activate', Lang.bind(this, this._onActivate));
Packit 1470ea
    this.application.connect('startup', Lang.bind(this, this._onStartup));
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    // Funkce zpětného volání pro signál "activate" zobrazujicí okno při aktivaci
Packit 1470ea
    _onActivate: function() {
Packit 1470ea
        this._window.present();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    // Funkce zpětného volání pro signál "startup" sestavující uživatelské rozhraní
Packit 1470ea
    _onStartup: function() {
Packit 1470ea
        this._buildUI ();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    

Všechen kód této ukázky je ve třídě RadioButtonExample. Výše uvedený kód vytvoří <link href="http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html">Gtk.Application</link> pro naše widgety a okno, ve kterém budou.

Packit 1470ea
    
Packit 1470ea
    // Sestaví uživatelské rozhraní aplikace
Packit 1470ea
    _buildUI: function() {
Packit 1470ea
Packit 1470ea
        // Vytvoří okno aplikace
Packit 1470ea
        this._window = new Gtk.ApplicationWindow({
Packit 1470ea
            application: this.application,
Packit 1470ea
            window_position: Gtk.WindowPosition.CENTER,
Packit 1470ea
            border_width: 20,
Packit 1470ea
            title: "Travel Planning"});
Packit 1470ea
Packit 1470ea
    

Funkce _buildUI je místo, ze kterého voláme všechen kód, který vytváří uživatelské rozhraní aplikace. Prvním krokem je vytvoření nového <link xref="GtkApplicationWindow.js">Gtk.ApplicationWindow</link>, do kterého vložíme všechny naše widgety.

Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="button">
Packit 1470ea
    <title>Vytvoření skupinových přepínačů</title>
Packit 1470ea
    
Packit 1470ea
        // Vytvoří popisek pro první skupinu přepínačů
Packit 1470ea
        this._placeLabel = new Gtk.Label ({label: "Where would you like to travel to?"});
Packit 1470ea
Packit 1470ea
Packit 1470ea
    

Používáme <link xref="label.js">Gtk.Label</link> k oddělení jednotlivých skupin se skupinovými přepínači. Nic vám nebrání ve vložení všech možných skupin, kam vás napadne, takže jestli chcete, aby se v nich uživatelé vyznali, musíte je rozumně uspořádat.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Vytvoří tři skupinové přepínače třemi různými způsoby
Packit 1470ea
        this._place1 = new Gtk.RadioButton ({label: "The Beach"});
Packit 1470ea
Packit 1470ea
        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);
Packit 1470ea
        this._place2.set_label ("The Moon");
Packit 1470ea
Packit 1470ea
        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, "Antarctica");
Packit 1470ea
        // this._place3.set_active (true);
Packit 1470ea
Packit 1470ea
Packit 1470ea
    

Zde jsou tři různé způsoby, jak vytvořit skupinový přepínač. V prvním, obvyklém způsobu, vytvoříme nový Gtk.RadioButton a zároveň mu přiřadíme jeho vlastnosti. Druhý a třetí používá funkce, které automaticky obslouží některé vlastnosti. new_from_widget přebírá jeden argument, kterým je RadioButton, do jehož skupiny chcete zařadit i ten nový. Oproti tomu new_with_label_from_widget přebírá zároveň i popisek pro skupinový přepínač.

Packit 1470ea
    

První RadioButton ve skupině je ten, který bude vybraný ve výchozím stavu. Zkuste zrušit zakomentování posledního řádku v tomto ukázkovém kódu, abyste viděli, jak můžete nastavit jiný jako vybraný ve výchozím stavu.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Vytvoří popisek pro druhou skupinu tlačítek
Packit 1470ea
        this._thingLabel = new Gtk.Label ({label: "And what would you like to bring?" });
Packit 1470ea
Packit 1470ea
        // Vytvoří další tři skupinové přepínače
Packit 1470ea
        this._thing1 = new Gtk.RadioButton ({label: "Penguins" });
Packit 1470ea
        this._thing2 = new Gtk.RadioButton ({label: "Sunscreen", group: this._thing1 });
Packit 1470ea
        this._thing3 = new Gtk.RadioButton ({label: "A spacesuit", group: this._thing1 });
Packit 1470ea
Packit 1470ea
    

Zde vytvoříme popisek pro druhou skupinu přepínačů a všechny skupinové přepínače stejným způsobem vytvoříme.

Packit 1470ea
    </section>
Packit 1470ea
Packit 1470ea
    <section id="ui">
Packit 1470ea
    <title>Vytvoření zbytku uživatelského rozhraní</title>
Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Vytvoří standardní tlačítko OK
Packit 1470ea
        this._okButton = new Gtk.Button ({
Packit 1470ea
            label: 'gtk-ok',
Packit 1470ea
            use_stock: 'true',
Packit 1470ea
            halign: Gtk.Align.END });
Packit 1470ea
Packit 1470ea
        // Napojí tlačítko na funkci, která zpracovává kliknutí na něj
Packit 1470ea
        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));
Packit 1470ea
Packit 1470ea
    

Tento kód vytvoří <link xref="button.js">Gtk.Button</link> a napojí jej na funkci, která uživateli, když klikne na <gui>OK</gui>, zobrazí bláznivou zprávu podle vybraného skupinového přepínače.

Packit 1470ea
    

Abyste zajistili, že tlačítko s popiskem <gui>OK</gui> bude správně zobrazeno ve všech národních jazycích, do kterých je GNOME přeloženo, nezapomeňte použít <link href="https://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html">tlačítko Gtk standardního typu</link>.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Vytvoří mřížku pro položky v seznamu „místa“
Packit 1470ea
        this._places = new Gtk.Grid ();
Packit 1470ea
Packit 1470ea
        // Připojí položky seznamu „místa“ do mřížky
Packit 1470ea
        this._places.attach (this._placeLabel, 0, 0, 1, 1);
Packit 1470ea
        this._places.attach (this._place1, 0, 1, 1, 1);
Packit 1470ea
        this._places.attach (this._place2, 0, 2, 1, 1);
Packit 1470ea
        this._places.attach (this._place3, 0, 3, 1, 1);
Packit 1470ea
Packit 1470ea
        // Vytvoří mřížku pro položky v seznamu „věci“
Packit 1470ea
        this._things = new Gtk.Grid ({ margin_top: 50 });
Packit 1470ea
Packit 1470ea
        // Připojí položky seznamu „věci“ do mřížky
Packit 1470ea
        this._things.attach (this._thingLabel, 0, 0, 1, 1);
Packit 1470ea
        this._things.attach (this._thing1, 0, 1, 1, 1);
Packit 1470ea
        this._things.attach (this._thing2, 0, 2, 1, 1);
Packit 1470ea
        this._things.attach (this._thing3, 0, 3, 1, 1);
Packit 1470ea
Packit 1470ea
        // Vytvoří mřížku, do které se vše vloží
Packit 1470ea
        this._grid = new Gtk.Grid ({
Packit 1470ea
            halign: Gtk.Align.CENTER,
Packit 1470ea
            valign: Gtk.Align.CENTER,
Packit 1470ea
            margin_left: 40,
Packit 1470ea
            margin_right: 50 });
Packit 1470ea
Packit 1470ea
        // Připojí vše do mřížky
Packit 1470ea
        this._grid.attach (this._places, 0, 0, 1, 1);
Packit 1470ea
        this._grid.attach (this._things, 0, 1, 1, 1);
Packit 1470ea
        this._grid.attach (this._okButton, 0, 2, 1, 1);
Packit 1470ea
Packit 1470ea
        // Přidá mřížku do okna
Packit 1470ea
        this._window.add (this._grid);
Packit 1470ea
Packit 1470ea
    

Používáme samostatné mřížky <link xref="grid.js">Gtk.Grid</link> k uspořádání skupin skupinových přepínačů. Díky tomu můžeme později měnit rozvržení bez větší námahy. Druhá mřížka má nahoře okraj, aby opticky oddělila dvě sady voleb.

Packit 1470ea
    

Když máme skupinové přepínače uspořádané, vložíme je do třetí, hlavní, mřížky spolu s tlačítkem <gui>OK</gui>. Tu pak připojíme do okna.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Zobrazí okno a všechny jeho synovské widgety
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
Packit 1470ea
    

Nakonec řekneme oknu a všemu v něm, aby se stali viditelnými, kdy se aplikace spustí.

Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="function">
Packit 1470ea
    <title>Funkce, která zpracovává váš výběr</title>
Packit 1470ea
    
Packit 1470ea
    _okClicked: function () {
Packit 1470ea
Packit 1470ea
        // Vytvoří vyskakovací dialogové okno, které zobrazí bláznivou zprávu
Packit 1470ea
        this._travel = new Gtk.MessageDialog ({
Packit 1470ea
            transient_for: this._window,
Packit 1470ea
            modal: true,
Packit 1470ea
            message_type: Gtk.MessageType.OTHER,
Packit 1470ea
            buttons: Gtk.ButtonsType.OK,
Packit 1470ea
            text: this._messageText() });
Packit 1470ea
Packit 1470ea
        // Zobrazí dialogové okno
Packit 1470ea
        this._travel.show();
Packit 1470ea
Packit 1470ea
        // Napojí tlačítko OK na funkci, která zavře vyskakovací dialogové okno
Packit 1470ea
        this._travel.connect ("response", Lang.bind (this, this._clearTravelPopUp));
Packit 1470ea
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    

Když kliknete na <gui>OK</gui>, objeví se <link xref="messagedialog.js">Gtk.MessageDialog</link>. Tato funkce vytvoří a zobrazí vyskakovací okno a napojí jeho tlačítko <gui>OK</gui> na funkci, která okno zavře. Jaký text se v okně objeví, závisí na funkci _messageText(), která vrací různé hodnoty podle toho, kterou sadu voleb vyberete.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
    _messageText: function() {
Packit 1470ea
Packit 1470ea
        // Vytvoří bláznivou zprávu pro dialogové okno podle toho, co jste vybrali
Packit 1470ea
        var stringMessage = "";
Packit 1470ea
Packit 1470ea
        if (this._place1.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "Penguins love the beach, too!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "Make sure to put on that sunscreen!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "Are you going to the beach in space?";
Packit 1470ea
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        else if (this._place2.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "The penguins will take over the moon!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "A lack of sunscreen will be the least of your problems!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "You'll probably want a spaceship, too!";
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        else if (this._place3.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "The penguins will be happy to be back home!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "Antarctic sunbathing may be hazardous to your health!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "Try bringing a parka instead!";
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        return stringMessage;
Packit 1470ea
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    

Metoda get_active() je způsob, jak zjistit, který skupinový přepínač je „zmáčknutý“. Tato funkce vrací různé bláznivé zprávy v závislosti na tom, které skupinové přepínače jsou vybrané. Vrácená hodnota se použije jako vlastnost "text" v dialogovém okně se zprávou.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
    _clearTravelPopUp: function () {
Packit 1470ea
Packit 1470ea
        this._travel.destroy();
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
});
Packit 1470ea
Packit 1470ea
    

Tato funkce je volána, když je zmáčknuto tlačítko <gui>OK</gui> v dialogovém okně se zprávou. Jednoduše dialogové okno odklidí.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
// Spustí aplikaci
Packit 1470ea
let app = new RadioButtonExample ();
Packit 1470ea
app.application.run (ARGV);
Packit 1470ea
Packit 1470ea
    

Nakonec vytvoříme novou instanci konečné třídy RadioButtonExample a aplikaci spustíme.

Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="complete">
Packit 1470ea
    <title>Úplný kód ukázky</title>
Packit 1470ea
#!/usr/bin/gjs
Packit 1470ea
Packit 1470ea
imports.gi.versions.Gtk = '3.0';
Packit 1470ea
Packit 1470ea
const Gio = imports.gi.Gio;
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
Packit 1470ea
class RadioButtonExample {
Packit 1470ea
Packit 1470ea
    // Vytvoří vlastní aplikaci
Packit 1470ea
    constructor() {
Packit 1470ea
        this.application = new Gtk.Application({
Packit 1470ea
            application_id: 'org.example.jsradiobutton',
Packit 1470ea
            flags: Gio.ApplicationFlags.FLAGS_NONE
Packit 1470ea
        });
Packit 1470ea
Packit 1470ea
        // Napojí signály "activate" a "startup" k funkcím zpětného volání
Packit 1470ea
        this.application.connect('activate', this._onActivate.bind(this));
Packit 1470ea
        this.application.connect('startup', this._onStartup.bind(this));
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Funkce zpětného volání pro signál "activate" zobrazujicí okno při aktivaci
Packit 1470ea
    _onActivate() {
Packit 1470ea
        this._window.present();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Funkce zpětného volání pro signál "startup" sestavující uživatelské rozhraní
Packit 1470ea
    _onStartup() {
Packit 1470ea
        this._buildUI();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Sestaví uživatelské rozhraní aplikace
Packit 1470ea
    _buildUI() {
Packit 1470ea
Packit 1470ea
        // Vytvoří okno aplikace
Packit 1470ea
        this._window = new Gtk.ApplicationWindow({
Packit 1470ea
            application: this.application,
Packit 1470ea
            window_position: Gtk.WindowPosition.CENTER,
Packit 1470ea
            border_width: 20,
Packit 1470ea
            title: "Travel Planning"});
Packit 1470ea
Packit 1470ea
        // Vytvoří popisek pro první skupinu přepínačů
Packit 1470ea
        this._placeLabel = new Gtk.Label ({label: "Where would you like to travel to?"});
Packit 1470ea
Packit 1470ea
        // Vytvoří tři skupinové přepínače třemi různými způsoby
Packit 1470ea
        this._place1 = new Gtk.RadioButton ({label: "The Beach"});
Packit 1470ea
Packit 1470ea
        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);
Packit 1470ea
        this._place2.set_label ("The Moon");
Packit 1470ea
Packit 1470ea
        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, "Antarctica");
Packit 1470ea
        // this._place3.set_active (true);
Packit 1470ea
Packit 1470ea
        // Vytvoří popisek pro druhou skupinu tlačítek
Packit 1470ea
        this._thingLabel = new Gtk.Label ({label: "And what would you like to bring?" });
Packit 1470ea
Packit 1470ea
        // Vytvoří další tři skupinové přepínače
Packit 1470ea
        this._thing1 = new Gtk.RadioButton ({label: "Penguins" });
Packit 1470ea
        this._thing2 = new Gtk.RadioButton ({label: "Sunscreen", group: this._thing1 });
Packit 1470ea
        this._thing3 = new Gtk.RadioButton ({label: "A spacesuit", group: this._thing1 });
Packit 1470ea
Packit 1470ea
        // Vytvoří standardní tlačítko OK
Packit 1470ea
        this._okButton = new Gtk.Button ({
Packit 1470ea
            label: 'gtk-ok',
Packit 1470ea
            use_stock: 'true',
Packit 1470ea
            halign: Gtk.Align.END });
Packit 1470ea
Packit 1470ea
        // Napojí tlačítko na funkci, která zpracovává kliknutí na něj
Packit 1470ea
        this._okButton.connect ('clicked', this._okClicked.bind(this));
Packit 1470ea
Packit 1470ea
        // Vytvoří mřížku pro položky v seznamu „místa“
Packit 1470ea
        this._places = new Gtk.Grid ();
Packit 1470ea
Packit 1470ea
        // Připojí položky seznamu „místa“ do mřížky
Packit 1470ea
        this._places.attach (this._placeLabel, 0, 0, 1, 1);
Packit 1470ea
        this._places.attach (this._place1, 0, 1, 1, 1);
Packit 1470ea
        this._places.attach (this._place2, 0, 2, 1, 1);
Packit 1470ea
        this._places.attach (this._place3, 0, 3, 1, 1);
Packit 1470ea
Packit 1470ea
        // Připojí položky seznamu „věci“ do mřížky
Packit 1470ea
        this._things = new Gtk.Grid ({ margin_top: 50 });
Packit 1470ea
Packit 1470ea
        // Připojí položky seznamu „věci“ do mřížky
Packit 1470ea
        this._things.attach (this._thingLabel, 0, 0, 1, 1);
Packit 1470ea
        this._things.attach (this._thing1, 0, 1, 1, 1);
Packit 1470ea
        this._things.attach (this._thing2, 0, 2, 1, 1);
Packit 1470ea
        this._things.attach (this._thing3, 0, 3, 1, 1);
Packit 1470ea
Packit 1470ea
        // Vytvoří mřížku, do které se vše vloží
Packit 1470ea
        this._grid = new Gtk.Grid ({
Packit 1470ea
            halign: Gtk.Align.CENTER,
Packit 1470ea
            valign: Gtk.Align.CENTER,
Packit 1470ea
            margin_left: 40,
Packit 1470ea
            margin_right: 50 });
Packit 1470ea
Packit 1470ea
        // Připojí vše do mřížky
Packit 1470ea
        this._grid.attach (this._places, 0, 0, 1, 1);
Packit 1470ea
        this._grid.attach (this._things, 0, 1, 1, 1);
Packit 1470ea
        this._grid.attach (this._okButton, 0, 2, 1, 1);
Packit 1470ea
Packit 1470ea
        // Přidá mřížku do okna
Packit 1470ea
        this._window.add (this._grid);
Packit 1470ea
Packit 1470ea
        // Zobrazí okno a všechny jeho synovské widgety
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    _okClicked() {
Packit 1470ea
Packit 1470ea
        // Vytvoří vyskakovací dialogové okno, které zobrazí bláznivou zprávu
Packit 1470ea
        this._travel = new Gtk.MessageDialog ({
Packit 1470ea
            transient_for: this._window,
Packit 1470ea
            modal: true,
Packit 1470ea
            message_type: Gtk.MessageType.OTHER,
Packit 1470ea
            buttons: Gtk.ButtonsType.OK,
Packit 1470ea
            text: this._messageText() });
Packit 1470ea
Packit 1470ea
        // Zobrazí dialogové okno
Packit 1470ea
        this._travel.show();
Packit 1470ea
Packit 1470ea
        // Napojí tlačítko OK na funkci, která zavře vyskakovací dialogové okno
Packit 1470ea
        this._travel.connect ("response", this._clearTravelPopUp.bind(this));
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    _messageText() {
Packit 1470ea
Packit 1470ea
        // Vytvoří bláznivou zprávu pro dialogové okno podle toho, co jste vybrali
Packit 1470ea
        var stringMessage = "";
Packit 1470ea
Packit 1470ea
        if (this._place1.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "Penguins love the beach, too!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "Make sure to put on that sunscreen!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "Are you going to the beach in space?";
Packit 1470ea
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        else if (this._place2.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "The penguins will take over the moon!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "A lack of sunscreen will be the least of your problems!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "You'll probably want a spaceship, too!";
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        else if (this._place3.get_active()) {
Packit 1470ea
Packit 1470ea
            if (this._thing1.get_active())
Packit 1470ea
                stringMessage = "The penguins will be happy to be back home!";
Packit 1470ea
Packit 1470ea
            else if (this._thing2.get_active())
Packit 1470ea
                stringMessage = "Antarctic sunbathing may be hazardous to your health!";
Packit 1470ea
Packit 1470ea
            else stringMessage = "Try bringing a parka instead!";
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        return stringMessage;
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    _clearTravelPopUp() {
Packit 1470ea
        this._travel.destroy();
Packit 1470ea
    }
Packit 1470ea
};
Packit 1470ea
Packit 1470ea
// Spustí aplikaci
Packit 1470ea
let app = new RadioButtonExample ();
Packit 1470ea
app.application.run (ARGV);
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="in-depth">
Packit 1470ea
    <title>Dokumentace jdoucí do hloubky</title>
Packit 1470ea
<list>
Packit 1470ea
  <item>

<link href="http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html">Gtk.Application</link>

</item>
Packit 1470ea
  <item>

<link href="http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html">Gtk.ApplicationWindow</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html">Gtk.Button</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html">Gtk.Grid</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Label.html">Gtk.Label</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.RadioButton.html">Gtk.RadioButton</link>

</item>
Packit 1470ea
</list>
Packit 1470ea
  </section>
Packit 1470ea
</page>