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ší

Ilustrační snímek
Geniální iPhonová finta. Odvezl si telefony za milion a čtvrt

Neobvyklou krádež řeší od 14. září newyorská policie. Pátrá po identitě muže, který si ze značkové prodejny Applu odvezl tři krabice plné iPhonů. Vydal mu je...  celý článek

TrueDepth fotoaparát u iPhonu X
Čelní foťák iPhonu X doženou ostatní nejdřív za dva roky, tvrdí analytik

Příchod iPhonu X očekávají nejspíše desítky milionů applistů z celého světa. Po třech letech okoukaného designu totiž přijde zcela nový přístroj s obřím...  celý článek

Za nový iPhone 8 si nechal na ruku vytetovat logo T-Mobilu
Chtěl iPhone zdarma a tak si nechal vytetoval logo T-Mobilu

Neobvyklý způsob, jak si pořídit nový mobil, zvolil muž z USA. Domluvil se s ředitelem T-Mobilu, že si nechá vytetovat logo tohoto operátora na ruku výměnou za...  celý článek

KRACK: Key Reinstallation Attacks
Nepříjemné překvapení: I vaše wi-fi je zranitelná, odhalili experti

Bezpečnostní odborníci varují: zabezpečení bezdrátového připojení wi-fi pomocí WPA2 nelze považovat za bezpečné. Výzkumníci upozorňují, že zranitelností...  celý článek

iPhone 8 zakusil i klasickou ohybovou zkoušku. A uspěl, k nevratným deformacím...
iPhone 8 bodoval v crashtestech. Youtuber jej neohnul

Ve vodách chytrých telefonů známý youtuber Zachary Nelson prověřil sérií zatěžkávacích testů zbrusu nový iPhone 8. Telefonu uštědřil nespočet škrábanců,...  celý článek

Další z rubriky

Virus pro Android
Na aplikace alternativních taxi útočí virus. Pase po údajích ke kartám

Uživatelé mobilních aplikací alternativních taxi včetně aplikace Uber by měli být obezřetní. Ohrožuje je totiž nový trojský kůň, který od uživatelů láká údaje...  celý článek

Aplikace Facebook Messenger Lite je dostupná i v Česku
Šetří místo i data. Dietní Messenger od Facebooku je i v Česku

Facebook Messenger je jedním z nejpoužívanějších kecálků, ale ne všechny telefony si s ním poradí. Loni se tak zrodila myšlenka na odlehčenou verzi určenou pro...  celý článek

Záchranná služba představila ve středu oficiální mobilní aplikaci, pomůže...
Aplikaci české záchranky používá už 330 tisíc lidí, čekají ji vylepšení

Aplikaci Záchranka, která v naléhavých případech umožňuje přivolat si pomoc přes mobil, čekají v dubnu inovace. Spustí se zdokonalené funkce pro neslyšící a...  celý článek

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.