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

V tomto dílu doplníme zdrojový text programu o zpracování události menu a rozebereme si funkce menu na kartě Editace.

4.24. Doplnění programu o funkce menu

Ve zdrojovém textu programu uděláme dvě změny. První z nich se týká smyčky zpracování událostí, do které doplníme funkci pro zpracování události menu MenuHandleEvent(). Tím zajistíme, že naše aplikace bude schopna používat uživatelskou nabídku.

Druhá změna se bude týkat funkce formuláře, do které musíme doplnit zpracování události menuEvent. Příklad zpracování události menuEvent pro jednu položku menu je v následujícím rámečku:

static Boolean UdalostVstupnihoFormulare(EventPtr udalost)
{
    Boolean zpracovano = false;
 
    switch(udalost->eType)
    {
        ...
		
        case menuEvent:

                // Byla zvolena polozka menu

            switch(udalost->data.menu.itemID)
            {
                case PolozkaMenuOProgramu:

                        // Po zvoleni prislusne polozky menu zavolame
                        // funkci napovedy

                    FrmHelp(TextOProgramu);
                    zpracovano = true;
                    break;

                default:
                    break;
            }
            break;
        ...
		
    }

    return zpracovano;
}

Zpracování události menuEvent doplníme do funkcí obou formulářů. Pro oba dva formuláře jsme za příkazem MENUID nastavili použití stejného menu. Po stisknutí tlačítka pro zobrazení uživatelské nabídky se zobrazí jednoduché menu, podobně jako na následujícím obrázku.

Vybereme-li perem jediný příkaz menu, zobrazí se formulář nápovědy s textem, který jsme definovali v souboru prostředků aplikace. Podobně se definovaný text zobrazí i při volbě zkráceným příkazem. Zdrojový text aplikace, ve které jsme zpřístupnili uživatelskou nabídku, si můžete stáhnout zde.

4.25. Menu na kartě Editace

Jak njsme již uvedli, tak v každém formuláři, ve kterém může uživatel editovat text, musí být v menu přítomna karta Editace. Na této kartě jsou uvedeny příkazy pro práci se schránkou, která slouží k přenosu textu mezi aplikacemi a k ovládání políček. Na kartě Editace bývají obvykle následující příkazy menu:

  • Vrácení předchozí operace v políčku zpět.
  • Kopirování označeného textu do schránky.
  • Vyříznutí označeného textu a jeho vložení do schránky.
  • Vložení textu ze schránky do políčka.
  • Označení celého textu v políčku.
  • Zapnutí klávesnice pro zadávání textu do políčka.
  • Zobrazení nápovědy ke Graffiti.

Anglické menu ve vestavěných aplikacích je obvykle následující:

České ekvivalenty příkazů menu z předchozího obrázku jsou například tady:

Definice této karty menu v souboru prostředků aplikace je v následujícím rámečku:

MENU ID MenuFormulare
BEGIN
  ...
  PULLDOWN "Editace"
  BEGIN
    MENUITEM "Zpet" ID PolozkaMenuZpet "U"
    MENUITEM "Vyrizni" ID PolozkaMenuVyrizni "X"
    MENUITEM "Kopiruj" ID PolozkaMenuKopiruj "C"
    MENUITEM "Vloz" ID PolozkaMenuVloz "P"
    MENUITEM "Vyber vse" ID PolozkaMenuVyberVse "S"
    MENUITEM SEPARATOR
    MENUITEM "Klavesnice" ID PolozkaMenuKlavesnice "K"
    MENUITEM "Graffiti" ID PolozkaMenuGraffiti "G"
  END
END

V české uživatelské nabídce jsme použili stejné klávesové zkratky jako v uživatelské nabídce anglické. Většina uživatelů počítačů Palm Pilot si na zkrácené příkazy původních aplikací již zvykla a automaticky používá pro kopírování textu do schránky zkrácený příkaz C a podobně.


V příštím dílu si uvedeme několik funkcí, které budeme používat pro zpracování příkazů menu na kartě Editace.


Témata: Graffiti, práce