Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Programování pro PalmOS počítače krok za krokem (53)

aktualizováno 
V tomto dílu si povíme o uživatelské nabídce (menu) a připomeneme si její definici v souboru prostředků aplikace.

4.21. Uživatelská nabídka (menu)

Vlevo dole u plochy pro zápis graffiti je na počítačích Palm Pilot a kompatibilních umístěné tlačítko sloužící k vyvolání uživatelské nabídky. Příklad uživatelské nabídky v programu MemoPad je na obrázku:

Dále budeme pro uživatelskou nabídku používat termín menu, podobně jako v angličtině. Uspořádání menu a jeho definice v souboru prostředků aplikace je podrobně popisováno ve druhé kapitole. Na tomto místě jen připomeneme, že menu je uspořádáno do jednotlivých karet. Každá karta má své jméno a obsahuje seznam příkazů. Vpravo vedle jména příkazu může být uvedena klávesová zkratka. Mezi příkazy menu mohou být vloženy oddělovače, které logicky seskupují příkazy menu patřící k sobě.

Po vyvolání menu na displeji může uživatel vybrat některý z příkazů na jedné z karet menu. Dotkne-li se displeje nebo plochy pro zápis graffiti kdekoliv jinde, PalmOS menu zruší a obnoví zobrazení formuláře.

Definice menu

Menu definujeme v souboru prostředků aplikace. Podrobnosti definice uživatelské nabídky jsou vysvětleny ve druhé kapitole. Příklad definice menu je uveden v následujícím rámečku:

MENU ID MenuHlavni 
BEGIN
      PULLDOWN "Program"
      BEGIN
        MENUITEM "Tabulka" ID menuPrikazTabulka
        MENUITEM "O Programu" ID menuPrikazOProgramu
      END	  

      PULLDOWN "Edit"
      BEGIN
        MENUITEM "Vyrizni" ID menuPrikazVyrizni "X"
        MENUITEM "Kopiruj" ID menuPrikazKopiruj "C"
        MENUITEM "Vloz" ID menuPrikazVloz "P"
        MENUITEM "Vyber vse" ID menuPrikazVyberVse "P"
        MENUITEM SEPARATOR
        MENUITEM "Klavesnice" ID menuPrikazKlavesnice "K"
        MENUITEM "Graffiti" ID menuPrikazGraffiti "G"
      END	  
END

Příkazem MENUID v definici formuláře připojíme k formuláři uživatelskou nabídku. Jedno menu může být použito ve více formulářích. I když jednoznačný identifikátor menu v naší aplikaci nepoužijeme, musíme příslušnou konstantu definovat ve hlavičkovém souboru.

Každý příkaz menu obsahuje svůj identifikátor (za ID). Hodnota identifikátoru je vrácena naší aplikaci, když uživatel zvolí příslušný příkaz menu nebo klávesovou zkratku. Tento identifikátor nemusí být jednoznačný - příkaz "Vyřízni" u všech uživatelských nabídek v programu může mít identifikátor menuPrikazVyrizni.

Menu a zkrácené příkazy

Ke každé položce menu může být přiřazen zkrácený příkaz. Zkrácené příkazy vyvoláme tahem graffiti , za kterým následuje jedno písmeno nebo číslice.

Pro programátora jsou zkrácené příkazy zajímavé hlavně tím, že se jimi nemusí zabývat. Operační systém PalmOS, který řídí zobrazování menu na displeji a reaguje na akce uživatele, zpracuje zkrácený příkaz sám. Pokud uživatel zvolí zkrácený příkaz, je vyvolána událost menuEvent úplně stejně, jako když zvolí příslušný příkaz z uživatelské nabídky. Také to znamená, že nemohou být definovány jiné zkrácené příkazy než ty, které jsou spojeny s příkazy menu.

4.22. Událost menu

Poté, co uživatel zvolí příkaz menu, zašle operační systém naší aplikaci zprávu menuEvent. Zprávu menuEvent budeme většinou zpracovávat ve funkci formuláře, ke kterému je menu připojeno.

menuEvent
EventType* event;
UInt16 event->data.menu.itemID
Jednoznačná identifikace položky menu, která byla zvolena. Byl-li zadán zkrácený příkaz, obsahuje tento prvek jednoznačnou identifikaci položky menu, ke které zkrácený příkaz patří.

Na příkladu zprávy menuEvent si můžeme ukázat, že řada zpráv koluje v operačním systému PalmOS nezávisle na naší aplikaci. Dotkne-li se uživatel tlačítka pro vyvolání uživatelské nabídky, vytvoří PalmOS zprávu keyDownEvent. Parametrem této zprávy je virtuální znak vcharMenu.

Pokud naše aplikace tuto zprávu ignoruje, zpracuje ji operační systém PalmOS v následujícím kole sám. Zobrazí na displeji uživatelskou nabídku. Dotkne-li se uživatel při zobrazení uživatelské nabídky perem displeje, nejsou naší aplikaci zasílány žádné zprávy. Naše aplikace se dozví až to, že byla nějaká položka menu vybrána; v tomto případě zašle operační systém zprávu menuEvent.

Zpráva menuEvent je naší aplikaci zaslána i při volbě zkráceným příkazem. Pokud žádná položka uživatelské nabídky nebyla vybrána, operační systém nezašle naší aplikaci žádnou zprávu - tedy ani ji neinformuje o zrušené volbě.


Příště si povíme něco o tom, jak aplikace zpracovává zprávy zasílané operačním systémem PalmOS při výběru z menu. Navrhneme také a vyzkoušíme uživatelskou nabídku pro naši aplikaci.



Nejčtenější

Apple má tři nové iPhony. Podporují dvě SIM, ale v Česku to nefunguje

iPhone XS/XS Max

Apple letos představil tři nové iPhony, které navazují na loňský model X. Úplně nových smartphonů od Applu se ovšem...

Takto vypadá boj o zákazníky: pětkrát více dat a úhrada smluvní pokuty

Slovenský operátor O2 navýšil základní data u vybraných tarifů

Od revoluce v roce 2013 zažívá český mobilní trh spíše menší otřesy, zákazníci operátorů toužící po neomezeném tarifu s...



Konkurence se trefuje do „předražených“ nových iPhonů

Všechny tyto produkty Xiaomi stojí stejně, jako nový model iPhone XR

Na vysoké ceny novinek od Applu reagovali konkurenti poněkud posměšnými nabídkami. Ukazují v nich, co všechno z jejich...

Nejnovější hodinky Apple Watch se povedly. Změří i elektrokardiogram

Apple představil Watch Series 4 s většími displeji a senzorem pro měření EKG

Přestože byly hlavními hvězdami tiskové konference Applu nové iPhony, zájem vzbudila i další generace chytrých hodinek....

Feministky kritizují nové iPhony. Jsou moc velké na ženskou ruku

iPhone XS/XS Max

Od doby, kdy Apple upustil od malých smartphonů, úhlopříčka nových modelů prudce narůstá. Nejnovější model ve verzi Max...

Další z rubriky

Sem chodí smartphony umřít. Aplikaci lze použít jen s vybitou baterií

Die With Me

Aplikace s názvem Umři se mnou má velmi neobvyklé omezení. Nemůžete ji zapnout, pokud máte telefon nabitý víc než na...

Google loni zlikvidoval 700 tisíc aplikací

Mobilní aplikace

Z aplikačního obchodu Google Play bylo loni odstraněno 700 tisíc aplikací, většina zmizela prakticky ihned po umístění...

Na dovolené se můžete seznámit i nespálit

Ilustrační snímek

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k...

Najdete na iDNES.cz