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

iPhone 8 podle designéra s českými kořeny
iPhone 8 už neodemknete prstem. Budete mu muset nastavit tvář

Integrace snímače Touch ID do displeje Apple nejenže pořádně potrápila, ale navíc se ji nakonec ani nepodařilo dotáhnout do konce. Očekávaný iPhone 8 tak místo...  celý článek

Samsung Galaxy Note 8
Samsung vyvíjí snímač otisků integrovaný v displeji. Bude pětkrát dražší

Smartphone Galaxy Note 8 ještě ani nevyšel a analytik Ming-Chi Kuo už ve svých předpovědích mluví o jeho nástupci. Právě u Notu 9 by měl debutovat v displeji...  celý článek

Nokia vyhrála patentovou válku s Applem
Záhada drahých tarifů. Plnou cenu platí jen někdo

Je to paradox, T-Mobile dlouhodobě získává za zákazníka s tarifem v průměru jen 350 korun měsíčně, navíc suma trvale mírně klesá. Jenže přesně tolik stojí jeho...  celý článek

(Ilustrační snímek)
Apple odmítá odblokovat funkci iPhonu, která může zachránit životy

Ve výbavě smartphonů od Applu chybí speciální funkce, která dokáže s vysokou přesností určit místo, odkud člověk volá na pohotovostní linku. Upozornila na to...  celý článek

Během letu si chtěl natočit vedle letící letadlo, telefonu mu ovšem vypadl z...
Samsung mu vypadl z letícího letadla a nerozbil se

Může smartphone přežít pád ze 300 metrů, když i náraz z jen půlmetrové výšky mívá často fatální následky? Někdy zjevně ano. Třeba jeden tři roky starý Samsung...  celý článek

Další z rubriky

Mobilní Messenger projde změnou, k nelibosti uživatelů v něm budou cílené...
Bez reklamy ani ránu. Bude už i na Facebook Messengeru v mobilu

Oblíbený mobilní kecálek se brzy promění. Facebook totiž do Messengeru po úspěšném testování implementuje cílené reklamy. Zobrazovat se budou na domovské...  celý článek

Ilustrační snímek
Nikam nevolali, přesto mají platit tisíce. Oškubala je „astro aplikace“

Tváří se jako rozšíření oblíbené mobilní hry, ve skutečnosti však ukrývá škodlivý kód. Ten bez vědomí uživatele uskutečňuje hovory na audiotexové linky, které...  celý článek

Ilustrační snímek
S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha situacích je totiž neocenitelným pomocníkem....  celý článek

Jsem těhotná a partner mi zahnul. Přesto zůstávám
Jsem těhotná a partner mi zahnul. Přesto zůstávám

Jak se jiné ženy postavily k nevěře a co jim pomohlo.

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.