Blame platform-demos/cs/combobox.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="combobox.js" xml:lang="cs">
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">ComboBox (JavaScript)</title>
Packit 1470ea
    <link type="guide" xref="beginner.js#menu-combo-toolbar"/>
Packit 1470ea
    <link type="seealso" xref="GtkApplicationWindow.js"/>
Packit 1470ea
    <link type="seealso" xref="comboboxtext.js"/>
Packit 1470ea
    <link type="seealso" xref="messagedialog.js"/>
Packit 1470ea
    <link type="seealso" xref="treeview_simple_liststore.js"/>
Packit 1470ea
    <revision version="0.1" date="2012-07-09" 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>Přizpůsobitelná rozbalovací nabídka</desc>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>ComboBox</title>
Packit 1470ea
  <media type="image" mime="image/png" src="media/combobox_multicolumn.png"/>
Packit 1470ea
  

ComboBox (rozbalovací seznam) je vysoce přizpůsobitelná rozbalovací nabídka. Obsahuje obdobu widgetu <link xref="treeview_simple_liststore.js">TreeView</link>, který se objeví po kliknutí, doplněného modelem ListStore (což je v zásadě tabulka), který udává, co se nachází v řádcích a sloupcích. V tomto příkladu má náš ListStore v jednom sloupci název volby a v druhém název standardní ikony, který je v rozbalovacím seznamu přeměněn na ikonu u každé z voleb.

Packit 1470ea
  

Vybíráte celý řádek naráz, takže ikona není oddělenou volbou. Ona a text vedle ní tvoří jednu volbu, na kterou můžete kliknout.

Packit 1470ea
  <note style="tip">

Práce s ListStore zabere nějaký čas. Jestli chcete jen jednoduchou čistě textovou rozbalovací nabídku, podívejte se na <link xref="comboboxtext.js">ComboBoxText</link>. Jeho vytvoření nezabere tolik času a jednodušeji se s ním pracuje.

</note>
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
imports.gi.versions.Gtk = '3.0';
Packit 1470ea
Packit 1470ea
const GObject = imports.gi.GObject;
Packit 1470ea
const Gtk = imports.gi.Gtk;
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
class ComboBoxExample {
Packit 1470ea
Packit 1470ea
    // Vytvoří vlastní aplikaci
Packit 1470ea
    constructor() {
Packit 1470ea
        this.application = new Gtk.Application ({
Packit 1470ea
            application_id: 'org.example.jscombobox'});
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", která zobrazí 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", která sestaví uživatelské rozhraní
Packit 1470ea
    _onStartup() {
Packit 1470ea
        this._buildUI ();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    

Všechen kód této ukázky je ve třídě ComboBoxExample. 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() {
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
            title: "Welcome to GNOME",
Packit 1470ea
            default_width: 200,
Packit 1470ea
            border_width: 10 });
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="liststore">
Packit 1470ea
    <title>Vytvoření ListStore</title>
Packit 1470ea
    
Packit 1470ea
        // Vytvoří ListStore pro vložení našich voleb
Packit 1470ea
        this._listStore = new Gtk.ListStore();
Packit 1470ea
        this._listStore.set_column_types ([
Packit 1470ea
            GObject.TYPE_STRING,
Packit 1470ea
            GObject.TYPE_STRING]);
Packit 1470ea
Packit 1470ea
    

ListStore funguje podobně, jako ten použitý v příkladu <link xref="treeview_simple_liststore.js">TreeView</link>. Dáme mu dva sloupce, oba řetězcové, přičemž jeden z nich bude obsahovat názvy <link href="https://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html">standardních ikon Gtk</link>.

Packit 1470ea
    

Pokud byste chtěli použít své vlastní ikony, protože nechcete ty zabudované v GNOME, museli byste místo toho použít <file>gtk.gdk.Pixbuf</file>. Zde je pár dalších typů, které můžete použít:

Packit 1470ea
    <list>
Packit 1470ea
      <item>

<file>GObject.TYPE_BOOLEAN</file> – Pravda nebo nepravda

</item>
Packit 1470ea
      <item>

<file>GObject.TYPE_FLOAT</file> – Desetinné číslo (tj. s plovoucí desetinou čárkou, resp. tečkou)

</item>
Packit 1470ea
      <item>

<file>GObject.TYPE_STRING</file> – Řetězec písmen a číslic

</item>
Packit 1470ea
    </list>
Packit 1470ea
    <note style="tip">

Abyste mohli používat typy GObject, potřebujete vložit řádek <file>const GObject = imports.gi.GObject;</file> na začátek kódu aplikace tak, jako jsem učinili v tomto příkladu.

</note>
Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Toto pole uchovává seznam voleb a jejich ikony
Packit 1470ea
        let options = [{ name: "Select" },
Packit 1470ea
            { name: "New", icon: Gtk.STOCK_NEW },
Packit 1470ea
            { name: "Open", icon: Gtk.STOCK_OPEN },
Packit 1470ea
            { name: "Save", icon: Gtk.STOCK_SAVE }];
Packit 1470ea
Packit 1470ea
        // Vložení voleb do ListStore
Packit 1470ea
        for (let i = 0; i < options.length; i++ ) {
Packit 1470ea
            let option = options[i];
Packit 1470ea
            let iter = this._listStore.append();
Packit 1470ea
            this._listStore.set (iter, [0], [option.name]);
Packit 1470ea
            if ('icon' in option)
Packit 1470ea
                this._listStore.set (iter, [1], [option.icon]);
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
    

Zde vytváříme pole s textovými volbami a jim odpovídajícími ikonami a pak je vložíme do ListStore více méně stejným způsobem, jako jsem použili pro ListStore v ukázce <link xref="treeview_simple_liststore.js">TreeView</link>. Ikonu chceme vložit jen v případě, že v položce pole opravdu nějaká je, takže to nejprve zkontrolujeme.

Packit 1470ea
    <note style="tip">

Položka „Select“ není skutečná volba, ale jen takové pozvání ke kliknutí na náš rozbalovací seznam, a proto nemá ikonu.

</note>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="combobox">
Packit 1470ea
    <title>Vytvoření ComboBox</title>
Packit 1470ea
    
Packit 1470ea
        // Vytvoří rozbalovací seznam
Packit 1470ea
        this._comboBox = new Gtk.ComboBox({
Packit 1470ea
            model: this._listStore});
Packit 1470ea
Packit 1470ea
    

Každý rozbalovací seznam má podkladový „model“ obsahující všechny jeho volby. Pokud máte rozbalovací seznam s rozvětvenými volbami, můžete použít TreeStore (stromové úložiště). V tomto případě používáme již vytvořený ListStore (seznamové úložiště).

Packit 1470ea
    
Packit 1470ea
        // Vytvoří vykreslovač buněk pro položky v jednotlivých sloupcích
Packit 1470ea
        let rendererPixbuf = new Gtk.CellRendererPixbuf();
Packit 1470ea
        let rendererText = new Gtk.CellRendererText();
Packit 1470ea
Packit 1470ea
        // Zabalí vykreslovač buněk do rozbalovacího seznamu v pořadí, v jakém je chcem vidět
Packit 1470ea
        this._comboBox.pack_start (rendererPixbuf, false);
Packit 1470ea
        this._comboBox.pack_start (rendererText, false);
Packit 1470ea
Packit 1470ea
        // Nataví vykreslovač buněk, aby se používaly informace z našeho ListStore
Packit 1470ea
        this._comboBox.add_attribute (rendererText, "text", 0);
Packit 1470ea
        this._comboBox.add_attribute (rendererPixbuf, "stock_id", 1);
Packit 1470ea
Packit 1470ea
    

Tato část opět pracuje podobně, jako u vytváření vykreslovačů buněk a balení položek do sloupců u příkladu s <link xref="treeview_simple_liststore.js">TreeView</link>. Největší rozdíl je, že nepotřebujeme vytvářet sloupce rozbalovacího seznamu jako oddělené objekty. Jednoduše zabalíme vykreslovače buněk do ComboBox v pořadí, v jakém chceme objekty zobrazovat, a řekneme jim, že mají informace získávat z ListStore (a typ dat, která očekáváme).

Packit 1470ea
    

Používáme CellRendererText pro zobrazení textu a CellRendererPixbuf pro zobrazení ikon. Názvy standardních ikon můžeme uchovávat v podobě řetězců, ale když je potřeba, zobrazíme je pomocí příslušného vykreslovače jako obrázky.

Packit 1470ea
    <note style="tip">

Obdobně, jako u TreeView, jsou „model“ (v tomto případě ListStore) a „zobrazení“ (v tomto případě ComboBox) oddělené. Díky tomu můžeme dělat věci, jako je mít sloupce v nějakém pořadí v ListStore a vykreslovače buněk pak zabalit tak, že budou tyto sloupce odpovídat jinému pořadí v ComboBox. Můžeme vytvořit TreeView nebo jiný widget, který zobrazuje informace z ListStore v jiném pořadí, aniž by to ovlivnilo náš rozbalovací seznam.

</note>
Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Nastavení prvního řádku v rozbalovacím seznamu, aby byl aktivní po spuštění
Packit 1470ea
        this._comboBox.set_active (0);
Packit 1470ea
Packit 1470ea
        // Napojení signálu „changed“ od rozbalovacího seznamu na naši funkci zpětného volání
Packit 1470ea
        this._comboBox.connect ('changed', this._onComboChanged.bind(this));
Packit 1470ea
Packit 1470ea
    

Chceme, aby součástí byl text „Select“, který lidé uvidí jako první, aby je vyzval ke kliknutí na rozbalovací seznam. Takže jej nastavíme, aby byl aktivní položkou. Dále pak napojíme signál "changed" rozbalovacího seznamu na funkci zpětného volání, takže kdykoliv někdo klikne na novou volbu, něco se stane. V tomto případě jen zobrazíme dialogové okno s drobnou haiku.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Přidá rozbalovací seznam do okna
Packit 1470ea
        this._window.add (this._comboBox);
Packit 1470ea
Packit 1470ea
        // Zobrazí okno a všechny jeho synovské widgety
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    

Nakonec přidáme ComboBox do okna a oknu řekneme ať zobrazí sebe a vše co obsahuje.

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
    _selected() {
Packit 1470ea
Packit 1470ea
        // Bláznivá pseudohaiku, kterou použijeme do dialogového okna se zprávou
Packit 1470ea
        let haiku = ["",
Packit 1470ea
            "You ask for the new\nwith no thought for the aged\nlike fallen leaves trod.",
Packit 1470ea
            "Like a simple clam\nrevealing a lustrous pearl\nit opens for you.",
Packit 1470ea
            "A moment in time\na memory on the breeze\nthese things can't be saved."];
Packit 1470ea
Packit 1470ea
    

Nyní pojďme vytvořit vyskakovací <link xref="messagedialog.js">MessageDialog</link>, který vám zobrazí bláznivou haiku odpovídající tomu, kterou distribuci vyberete. Nejprve vytvoříme pole použitých haiku. Protože první řetězec v našem rozbalovacím seznamu je jen zpráva „Select“, ponecháme první řetězec v poli prázdný.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
        // Která položka v rozbalovacím seznamu je aktivní?
Packit 1470ea
        let activeItem = this._comboBox.get_active();
Packit 1470ea
Packit 1470ea
        // Žádné dialogové okno se zprávou, když zvolíte „Select“
Packit 1470ea
        if (activeItem != 0) {
Packit 1470ea
            this._popUp = new Gtk.MessageDialog ({
Packit 1470ea
                transient_for: this._window,
Packit 1470ea
                modal: true,
Packit 1470ea
                buttons: Gtk.ButtonsType.OK,
Packit 1470ea
                message_type: Gtk.MessageType.INFO,
Packit 1470ea
                text: haiku[activeItem]});
Packit 1470ea
Packit 1470ea
            // Napojí tlačítko OK na zpracující funkci
Packit 1470ea
            this._popUp.connect ('response', this._onDialogResponse.bind(this));
Packit 1470ea
Packit 1470ea
            // Zobrazí dialogové okno se zprávou
Packit 1470ea
            this._popUp.show();
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    

Než dialogové okno se zprávou zobrazíme, provedeme test, abychom se ujistili, než není vybrána zpráva „Select“. Pak pro něj nastavíme text haiku z pole, který bude odpovídat aktivní položce v našem rozbalovacím seznamu. To uděláme pomocí metody get_active, která vrací číselné ID výběru.

Packit 1470ea
    <note style="tip">

Jinými metodami, které bychom mohli použít jsou get_active_id, která vrací textové ID přiřazené metodou append, a get_active_text, která vrací celý text ve vybrané položce.

</note>
Packit 1470ea
    

Po té, co vytvoříme MessageDialog, napojíme jeho signál "response" na funkci _onDialogResponse a následně řekneme oknu, ať se zobrazí.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
    _onDialogResponse() {
Packit 1470ea
Packit 1470ea
        this._popUp.destroy ();
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
};
Packit 1470ea
Packit 1470ea
    

Protože jediným tlačítkem, které dialogové okno se zprávou má, je tlačítko <gui>OK</gui>, nepotřebujeme testovat hodnotu response_id, abychom zjistili, na které tlačítko bylo kliknuto. Vše, co uděláme, je, že dialogové okno zlikvidujeme.

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

Nakonec vytvoříme novou instanci konečné třídy ComboBoxExample 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 GObject = imports.gi.GObject;
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
Packit 1470ea
class ComboBoxExample {
Packit 1470ea
Packit 1470ea
    // Vytvoří vlastní aplikaci
Packit 1470ea
    constructor() {
Packit 1470ea
        this.application = new Gtk.Application ({
Packit 1470ea
            application_id: 'org.example.jscombobox'});
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", která zobrazí 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", která sestaví 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
            title: "Welcome to GNOME",
Packit 1470ea
            default_width: 200,
Packit 1470ea
            border_width: 10 });
Packit 1470ea
Packit 1470ea
        // Vytvoří ListStore pro vložení našich voleb
Packit 1470ea
        this._listStore = new Gtk.ListStore();
Packit 1470ea
        this._listStore.set_column_types ([
Packit 1470ea
            GObject.TYPE_STRING,
Packit 1470ea
            GObject.TYPE_STRING]);
Packit 1470ea
Packit 1470ea
        // Toto pole uchovává seznam voleb a jejich ikony
Packit 1470ea
        let options = [{ name: "Select" },
Packit 1470ea
            { name: "New", icon: Gtk.STOCK_NEW },
Packit 1470ea
            { name: "Open", icon: Gtk.STOCK_OPEN },
Packit 1470ea
            { name: "Save", icon: Gtk.STOCK_SAVE }];
Packit 1470ea
Packit 1470ea
        // Vloží volby do ListStore
Packit 1470ea
        for (let i = 0; i < options.length; i++ ) {
Packit 1470ea
            let option = options[i];
Packit 1470ea
            let iter = this._listStore.append();
Packit 1470ea
            this._listStore.set (iter, [0], [option.name]);
Packit 1470ea
            if ('icon' in option)
Packit 1470ea
                this._listStore.set (iter, [1], [option.icon]);
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
        // Vytvoří rozbalovací seznam
Packit 1470ea
        this._comboBox = new Gtk.ComboBox({
Packit 1470ea
            model: this._listStore});
Packit 1470ea
Packit 1470ea
        // Vytvoří vykreslovače buněk pro položky v jednotlivých sloupcích
Packit 1470ea
        let rendererPixbuf = new Gtk.CellRendererPixbuf();
Packit 1470ea
        let rendererText = new Gtk.CellRendererText();
Packit 1470ea
Packit 1470ea
        // Zabalí vykreslovače buněk do rozbalovacího seznamu v pořadí, v jakém je chcem vidět
Packit 1470ea
        this._comboBox.pack_start (rendererPixbuf, false);
Packit 1470ea
        this._comboBox.pack_start (rendererText, false);
Packit 1470ea
Packit 1470ea
        // Nataví vykreslovače buněk, aby používaly informace z našeho ListStore
Packit 1470ea
        this._comboBox.add_attribute (rendererText, "text", 0);
Packit 1470ea
        this._comboBox.add_attribute (rendererPixbuf, "stock_id", 1);
Packit 1470ea
Packit 1470ea
        // Nastaví první řádek v rozbalovacím seznamu, aby byl aktivní po spuštění
Packit 1470ea
        this._comboBox.set_active (0);
Packit 1470ea
Packit 1470ea
        // Napojí signály „changed“ od rozbalovacího seznamu na naši funkci zpětného volání
Packit 1470ea
        this._comboBox.connect ('changed', this._onComboChanged.bind(this));
Packit 1470ea
Packit 1470ea
        // Přidá rozbalovací seznam do okna
Packit 1470ea
        this._window.add (this._comboBox);
Packit 1470ea
Packit 1470ea
        // Zobrazí okno a všechny jeho synovské widgety
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    _onComboChanged() {
Packit 1470ea
Packit 1470ea
        // Bláznivá pseudohaiku, kterou použijeme do dialogového okna se zprávou
Packit 1470ea
        let haiku = ["",
Packit 1470ea
            "You ask for the new\nwith no thought for the aged\nlike fallen leaves trod.",
Packit 1470ea
            "Like a simple clam\nrevealing a lustrous pearl\nit opens for you.",
Packit 1470ea
            "A moment in time\na memory on the breeze\nthese things can't be saved."];
Packit 1470ea
Packit 1470ea
        // Která položka v rozbalovacím seznamu je aktivní?
Packit 1470ea
        let activeItem = this._comboBox.get_active();
Packit 1470ea
Packit 1470ea
        // Žádné dialogové okno se zprávou, když zvolíte „Select“
Packit 1470ea
        if (activeItem != 0) {
Packit 1470ea
            this._popUp = new Gtk.MessageDialog ({
Packit 1470ea
                transient_for: this._window,
Packit 1470ea
                modal: true,
Packit 1470ea
                buttons: Gtk.ButtonsType.OK,
Packit 1470ea
                message_type: Gtk.MessageType.INFO,
Packit 1470ea
                text: haiku[activeItem]});
Packit 1470ea
Packit 1470ea
            // Napojí tlačítko OK na zpracující funkci
Packit 1470ea
            this._popUp.connect ('response', this._onDialogResponse.bind(this));
Packit 1470ea
Packit 1470ea
            // Zobrazí dialogové okno se zprávou
Packit 1470ea
            this._popUp.show();
Packit 1470ea
        }
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    _onDialogResponse() {
Packit 1470ea
Packit 1470ea
        this._popUp.destroy ();
Packit 1470ea
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
};
Packit 1470ea
Packit 1470ea
// Spustí aplikaci
Packit 1470ea
let app = new ComboBoxExample ();
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

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

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.CellRendererPixbuf.html">Gtk.CellRendererPixbuf</link>

</item>
Packit 1470ea
  <item>

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

</item>
Packit 1470ea
  <item>

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

</item>
Packit 1470ea
  <item>

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

</item>
Packit 1470ea
  <item>

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

</item>
Packit 1470ea
  <item>

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

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