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 (58)

aktualizováno 
Dnes si doplníme funkce pro zobrazení klávesnice a nápovědy ke Graffiti a vytvoříme funkci pro obsluhu událostí uživatelské nabídky.

4.28 Zobrazení klávesnice a nápovědy ke Graffiti

Popsali jsme si funkce, které použijeme při obsluze schránky v menu na kartě Editace. Obvykle bývají tyto příkazy pro práci se schránkou na kartě Editace oddělené od dvou dalších příkazů: zobrazení klávesnice a nápověda ke Graffiti.

void SysGraffitiReferenceDialog(ReferenceType typ)

Zobrazí nápovědu ke Graffiti.

Vstupní parametry
  • typ - jaká nápověda bude zobrazena. Tento parametr musí mít hodnotu referenceDefault.

Funkce SysGraffitiReferenceDialog() zobrazí na displeji nápovědu ke Graffiti. Nemůžeme však zvolit, která stránka nápovědy bude zobrazena. Jediná možná hodnota parametru, kterým funkci předáváme, je referenceDefault: zobrazení první stránky nápovědy ke Graffiti.

void SysKeyboardDialog(KeyboardType typ)

Zobrazí na displeji klávesnici pro editaci textu v políčku.

Vstupní parametry
  • typ - jaká klávesnice bude zobrazena:
    • kbdAlpha - klávesníce QWERTY
    • kbdNumbersAndPunc - číselná klávesnice
    • kbdAccent - klávesnice s národními znaky
    • kbdDefault - standardní klávesnice (s číslicemi pro políčka, ve kterých musíme zadat číslo, jinak s písmenky)

Zavoláme-li funkci SysKeyboardDialog(), zobrazí se na displeji formulář klávesnice. Ve spodní části formuláře jsou uspořádána tlačítka odpovídající jednotlivým znakům, nad nimi je políčko, do kterého znaky vpisujeme. Do políčka je zkopírován obsah aktivního políčka. Při opuštění formuláře klávesnice je text políčka zkopírován zpět do původního formuláře.

4.29 Funkce pro obsluhu příkazů na kartě Editace

Teď už umíme napsat funkci, která obsluhuje všechny příkazy na kartě Editace. Pokud je v našem programu více než jeden formulář, na kterém jsou políčka, je výhodné použít stejné identifikátory příkazů menu pro stejné akce (například PolozkaMenuKopiruj pro příkazy "Kopíruj"). Příklad je zvýrazněn v rámečku:

MENU ID MenuVstupniho
BEGIN
  PULLDOWN "Program"
  BEGIN
    MENUITEM "O Programu" ID PolozkaMenuOProgramu "O"
  END
  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

MENU ID MenuVystupniho
BEGIN
  PULLDOWN "Program"
  BEGIN
    MENUITEM "O Programu" ID PolozkaMenuOProgramu "O"
  END
  PULLDOWN "Editace"
  BEGIN
    MENUITEM "Kopiruj" ID PolozkaMenuKopiruj "C"
    MENUITEM "Vyber vse" ID PolozkaMenuVyberVse "S"
  END
END

Pokud jsou takto v každém menu naší aplikace definovány stejné identifikátory pro stejné příkazy, můžeme seskupit obsluhu těchto příkazů do jedné funkce. Ve funkci, která bude obsluhovat příkazy menu na kartě editace musíme:

  • Pro příkazy pracující se schránkou (Zpět, Kopíruj, Vyřízni, Vlož) zavoláme příslušnou systémovou funkci (například FldUndo() a podobně), které předáme ukazatel na data aktivního políčka.
  • Pro příkaz Vyber vše zavoláme funkci FldSetSelection() tak, aby označila všechen text v políčku.
  • Zobrazení klávesnice zajistíme funkcí SysKeyboardDialog(kbdDefault).
  • Abychom zobrazili nápovědu ke Graffiti zavoláme funkci SysGraffitiReferenceDialog(referenceDefault).
Boolean FunkceMenuKartyEditace(UInt16 prvekMenu)
{
	FieldPtr policko;

	switch(prvekMenu)
	{
		case PolozkaMenuZpet:
		case PolozkaMenuKopiruj:
		case PolozkaMenuVyrizni:
		case PolozkaMenuVloz:
		case PolozkaMenuVyberVse:

			policko = ZjistiEditovanePole();
			
			if (!policko)
			{
				return false;
			}

			if(prvekMenu == PolozkaMenuZpet)
			{
				FldUndo(policko);
			}
			else if(prvekMenu == PolozkaMenuVyrizni)
			{
				FldCut(policko);
			}
			else if(prvekMenu == PolozkaMenuKopiruj)
			{
				FldCopy(policko);
			}
			else if(prvekMenu == PolozkaMenuVloz)
			{
				FldPaste(policko);
			}
			else if(prvekMenu == PolozkaMenuVyberVse)
			{
				FldSetSelection(policko, 0, FldGetTextLength(policko));
			}

			return true;

		case PolozkaMenuKlavesnice:
			SysKeyboardDialog(kbdDefault);
			return true;

		case PolozkaMenuGraffiti:
			SysGraffitiReferenceDialog(referenceDefault);
			return true;

		default:
			return false;
	}
}

Důležitou součástí naší funkce FunkceMenuKartyEditace() je zjištění, které políčko je aktivní. Pokud není aktivní žádné políčko (funkce ZjistiEditovanePole(), kterou jsme si popisovali v minulém díle vrátí hodnotu NULL) tak logicky nejsou příkazy schránky podporovány.


Příště si do naší aplikace zařadíme kompletní obsluhu menu a drobným domácím úkolem ukončíme čtvrtou kapitolu.




Nejčtenější

Berte, dokud je. Mobil pro fajnšmekry po neúspěchu drasticky zlevnil

Essential PH-1

Keramické tělo, jeden z nejmodernějších procesorů, 128 GB vnitřní paměti a velký displej s tenkými rámečky a...

Konkurenci poprvé ukazuje záda, Huawei P20 Pro je nejlepší smartphone

Huawei P20 Pro

Čínský Huawei si dal letos na nových modelech řady P20 opravdu záležet. Model P20 Pro chce být tím nejlepším...



Američtí teenageři se mohou z iPhonů zbláznit. A zájem roste

iPhone 8 Plus v Drážďanech

Ve Spojených státech je mezi mladými uživateli smartphonů enormní zájem o iPhony - v současnosti je vlastní 82 procent...

Berte telefon jako kreditní kartu, radil odborník v Rozstřelu o podvodném volání

Redaktor Mobil.iDNES.cz Jan Matura (vlevo) a mluvčí Českého telekomunikačního...

V posledních dnech se opět ozvali podvodníci, kteří se snaží vydělat na snadné záměně telefonních čísel. Prozvoní vás z...

Revoluce v mobilním focení? Umí nasadit profi objektiv na smartphony

S adaptérem můžete na mobil nasadit i profesionální objektivy

Na výstavě americké Národní asociace provozovatelů vysílání v Las Vegas byl ukázán zajímavý doplněk k mobilům pro...

Další z rubriky

S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Ilustrační snímek

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...

Už přes ni vyhrožovali smrtí. Přesto je aplikace extrémně populární

Logo aplikace Sarahah

Vysoký nárůst popularity zaznamenala aplikace Sarahah, určená k posílání anonymních zpráv. Ačkoliv se v posledních...

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