Premium

Získejte všechny články
jen za 89 Kč/měsíc

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

Uvedeme si, jak PalmOS spouští jednotlivé aplikace a o jejich povinných součástech, které jsou obsahem souboru s příponou *.prc.

1.7. Data aplikace na Palm Pilotovi

Struktura souboru *.prc

Soubory s příponou *.prc v sobě obsahují všechny prostředky, které tvoří jednu aplikaci: jednak její spustitelný kód, data pro inicializaci globálních proměnných, ikonu a jméno programu, ale i definici uživatelského rozhraní: formulářů, obrázků, textových konstant, menu programu, výzev - prostě všeho, co aplikace potřebuje k činnosti. Každý z těchto prostředků je jednoznačně určen svým typem a číslem. Typ je 32-bitová hodnota, často reprezentovaná jako 4-znaková konstanta. Číslo je uživatelem zvolené 16-bitové číslo prostředku. Na pořadí těchto prostředků v souboru nezáleží. Připomeňme si, že tyto prostředky spojuje do jednoho souboru program build-prc. Struktura souboru je na obrázku:

Typy prostředků, ve kterých jsou uloženy prvky uživatelského rozhraní a kód aplikace jsou v PalmOS pevně dané. Pro vaší informaci uvádím neúplný seznam prostředků, které mohou být přítomny v souboru *.prc:

TypČísloPopis
code1* vlastní spustitelný kód programu
pref0* informace pro (budoucí verze) PalmOS o požadavcích programu na paměť.
code0* Velikost požadované paměti pro globální proměnné.
data0* Inicializace globálních proměnných (v komprimované podobě).
Taltlibovolné Definice výzvy (alert).
tFRMlibovolné Definice jednoho formuláře (form).
tSTRlibovolné Definice textové konstanty (string).
MBARlibovolné Definice menu.
Tbmplibovolné Obrázek (bitmap).
FONTlibovolné Definice vlastního písma.
TRAP> 1000 Definice rozšíření systému pro program HackMaster.
tAISlibovolné Seznam textových konstant, určený k například k inicializaci kategorií databáze při prvním spuštění programu.
APPLlibovolné* Jednoznačná identifikace prostředků programu - 4-písmenný kód.
tAINlibovolné* Jméno ikony programu.
tVERlibovolné* Textové označení verze aplikace.
tAIBdle barev* Ikony aplikace - může jich být víc; číslem prostředku jsou odlišeny ikony černobílé, v odstínech šedi a barevné.

Prostředky, které jsou pro program povinné jsou v tabulce označeny hvězdičkou. Z toho první 4 v tabulce (s typy 'code', 'pref' a 'data') jsou vytvářeny v procesu překladu zdrojového textu programu (vytvoří je program m68k-palmos-obj-res) a poslední 4 jsou povinně definovány v souboru prostředků aplikace (*.rcp) a přeloží je program pilrc.

Jednoznačná identifikace programu

Každá aplikace pro Palm Pilota má přiřazeno vlastní unikátní 32bitové číslo (to je ona jednoznačná identifikace), které ji odlišuje od ostatních. Pokud na Palm Pilota instalujete aplikaci, která má stejnou jednoznačnou identifikaci jako starší aplikace, která už je přítomna, tak je stará aplikace nahrazena tou novější. Různé verze aplikace mohou mít stejnou jednoznačnou identifikaci a je to výhodné - instalujete-li novější verzi, je stará automaticky přemazána. Smažete-li na Palm Pilotovi aplikaci, jsou na základě tohoto jednoznačného kódu, který je označuje smazána i všechna její data.

Tento systém je výhodný z hlediska správy aplikací operačním systémem, programátorům však komplikuje život tím, že si musí svůj kód registrovat na webových stránkách společnosti Palm, Inc., která zdarma archivuje a přiděluje tyto jednoznačné identifikace na internetové adrese http://www.palmos.com/dev/tech/palmos/creatorid. Pro všechny aplikace popsané v této knize již byla registrována jednoznačná identifikace 'NECO'; proto už nemusíte pro programy z této knihy žádné další své jednoznačné identifikace registrovat. Z toho že mají všechny v knize popsané aplikace stejnou jednoznačnou identifikaci mimo jiné vyplývá, že pokud tuto jednoznačnou identifikaci u některé z aplikací v této knize nezměníte, tak můžete mít na svém Palm Pilotovi pouze jednu z těchto aplikací.

POZOR: Jednoznačné identifikace, ve kterých jsou použita pouze malá písmena anglické abecedy jsou vyhrazeny pro vývojáře společnosti Palm, Inc..

32bitové číslo bývá většinou reprezentováno jako 4písmenná znaková konstanta (v jazyce C/C++ uvedena v apostrofech). Některé známější programy mají (pro vaší informaci) registrovány následující jednoznačné identifikace:

Jméno aplikaceidentifikace
Čeština GNU'CZcz'
QEd - všechny verze'QEDi'
List (freewarová databáze)'LSdb'
Všechny programy v této knize'NECO'

Pokud budete uvádět jednoznačnou identifikaci vaší aplikace v souboru Makefile pro program build-prc, můžete ale nemusíte ji dát do uvozovek:

        build-prc appl.prc "MujProgram" NECO *.bin *.grc
        
        build-prc appl.prc "MujProgram" 'NECO' *.bin *.grc

Pokud budete jednoznačnou identifikaci vaší aplikace uvádět ve zdrojovém textu vašeho programu, uzavřete ji do apostrofů jako 4znakovou (32bitovou) konstantu. Následující dva řádky definují stejnou konstantu - jediný rozdíl je, že ten první je o něco čitelnější a proto mu budeme dávat přednost:


        #define MOJE_IDENTIFIKACE  'NECO'

        #define MOJE_IDENTIFIKACE   0x4E45434F

A konečně pokud budete uvádět tuto identifikaci v souboru prostředků aplikace (s příponou *.rcp) tak bude v uvozovkách:

1.8. Hlavičkové soubory (header files)

Hlavičkové soubory pro PalmOS 3.5

Prototypy všech funkcí a konstant pro PalmOS 3.5 (znovu podotýkám, že je možné je použít ve většině případů i pro nižší verze operačního systému PalmOS) jsou dostupné po vložení souboru c:\PalmDev\sdk3.5\include\PalmOS.h do zdrojového textu vaší aplikace. Na začátku souboru zdrojového textu je třeba uvést deklaraci:

        #include <PalmOS.h>

a všechny prototypy funkcí a konstant, které budete používat při programování PalmOS vám budou k dispozici.

Základní typy číselných proměnných

V hlavičkovém souboru PalmTypes.h jsou definovány základní číselné typy, které vývojáři PalmOS doporučují využívat místo datových typů jazyka C/C++ z důvodů jednoznačnosti a snadnější přenositelnosti zdrojových textů vaší aplikace mezi různými vývojovými prostředími (Windows - GCC a CodeWarrior, MacOS, Unix).

 8bitové16bitové32bitové
se znaménkemInt8Int16Int32
bez znaménkaUInt8UInt16UInt32
písmenoCharWChar 
logickéBoolean  
kód chyby Err 
obecný ukazatel  MemPtr

Také jsou zde mimo jiné definovány konstanty true a false pro logický datový typ Boolean a hodnota NULL.

Při popisu funkcí, proměnných, konstant a typů dat operačního systému (které jsou popsány v hlavičkových souborech) použili vývojáři operačního systému PalmOS několik základních konvencí, které si zde musíme uvést. Funkce, proměnné i typy dat jsou uspořádány do skupin, podle jednotlivých podjednotek operačního systému (podjednotka pro práci s formuláři, s řetězci, se zvukem apod.).

Tyto konvence pro vytváření jmen funkcí, jsou důsledně dodržovány a doporučuji se jich držet i při psaní vlastních aplikací. Nejvýznamnější použité konvence jsou následující:

Funkce

  1. Jména funkcí začínají velkým počátečním písmenem (např. FrmGetActiveForm())
  2. Všechny funkce jedné podjednotky (například pro kreslení) začínají společným prefixem (např. StrCopy(), StrCat() a StrIToA() jsou funkce z podjednotky pracující s řetězci a mají společný prefix Str)

Proměnné

  1. Všechny globální proměnné PalmOS začínají velkým počátečním písmenem
  2. Lokální proměnné začínají malým počátečním písmenem

Typy dat

  1. Jednoduché datové typy začínají velkým písmenem (Char)
  2. Prvky struktury začínají s malým počátečním písmenem
  3. Definice typů (typedef) začínají velkým písmenem a končí slovem Type (například DateFormatType)
  4. Definice ukazatelů končí slovem Ptr (například ukazatel na strukturu RectangleType je pojmenován RectanglePtr)
  5. Prvky výčtového typu (enum) začínají prefixem z malých písmen, po kterém následuje jméno začínající velkým písmenem.
        typedef struct RectangleType {
          PointType  topLeft;
          PointType  extent;
        } RectangleType;

        typedef RectangleType *RectanglePtr;

        typedef enum {  blackPattern,
                        whitePattern,
                        grayPattern,
                        customPattern } PatternType;

Tyto konvence, které vývojáři PalmOS důsledně dodržují nám pomohou orientovat se ve vlastních i cizích zdrojových textech (například podle počátečního písmena proměnné poznáme zda je lokální nebo globální; podle prvních několika písmen jména funkce poznáme, ve které skupině ji hledat apod.) Pro získání ucelené představy bych vám doporučil prohlédnout si některé z hlavičkových souborů PalmOS, které máte instalovány ve vašem počítači.


Příště si povíme o tom, jak operační systém PalmOS spouští programy a pak zkusíme dát všechno, co jsme doteď probrali dohromady a vytvoříme první program, který sice nebude dělat vůbec nic, ale zato to bude dělat správně.

Autor:
  • Nejčtenější

Neomezená data dává O2 ještě levněji než dříve. S odměnou jsou za hubičku

15. dubna 2024  7:02

Základní datově neomezený tarif za cenu nižší, než standardně stojí tarif s 12 GB dat? U O2 na...

Doma si natáhnete neviditelné kabely k internetu. Huawei ukázal inovace

17. dubna 2024

Huawei na každoroční roadshow ukázal v Praze své inovace pro letošní rok. Vedle průmyslových...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

K mobilu teď dostanete televizi zdarma a levnější jsou také iPhony

16. dubna 2024,  aktualizováno  10:12

Výrobci mobilních telefonů se už zase začínají předhánět ve výhodných nabídkách. Přímé slevy jsou...

Čínský smartphonový standard dorazil do Česka. Není co vytknout, ani cenu

17. dubna 2024  7:02

Motorola představila hned tři modely z top řady Edge. První se začne prodávat model Edge 50 Pro,...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Mobily začínají vadit. Obec u Paříže je zakázala, v Nizozemsku nesmějí do škol

19. dubna 2024

Premium Ačkoliv žijeme v době, kdy mnoho lidí téměř nedá mobil z ruky, někde už úřadům a dalším institucím...

I velké značky mají laciné smartphony. Ale počítejte s kompromisy

19. dubna 2024

Výrobci telefonů mají zpravidla řešení i pro ty zákazníky, kteří potřebují co možná nejlevnější...

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Tento podnik budou milovníci vína zbožňovat. Musí se ovšem vzdát mobilu

18. dubna 2024  12:33

Se zajímavým způsobem, jak strávníky přimět ke vzájemné komunikaci, přišel majitel restaurace v...

Měsíc bez starostí s BEBELO® Milk 2: Vyhrajte zásobu mléka pro miminko
Měsíc bez starostí s BEBELO® Milk 2: Vyhrajte zásobu mléka pro miminko

Zajistěte svému miminku to nejlepší hned od začátku s BEBELO® Milk 2, které je pečlivě vyvinuté pro harmonický růst a vývoj vašeho dítěte. Mléko...

Náhle zemřel zpěvák Maxim Turbulenc Daniel Vali, bylo mu 53 let

Ve věku 53 let zemřel zpěvák skupiny Maxim Turbulenc Daniel Vali. Letos by se svou kapelou oslavil 30 let na scéně....

Sexy Sandra Nováková pózovala pro Playboy. Focení schválil manžel

Herečka Sandra Nováková už několikrát při natáčení dokázala, že s odhalováním nemá problém. V minulosti přitom tvrdila,...

Charlotte spí na Hlaváku mezi feťáky, dluží spoustě lidí, říká matka Štikové

Charlotte Štiková (27) před rokem oznámila, že zhubla šedesát kilo. Na aktuálních fotkách, které sdílela na Instagramu...

Vykrojené trikoty budí emoce. Olympijská kolekce Nike je prý sexistická

Velkou kritiku vyvolala kolekce, kterou pro olympijský tým amerických atletek navrhla značka Nike. Pozornost vzbudily...

Rohlík pro dítě, nákup do kočárku. Co v obchodě projde a kdy už hrozí právník?

V obchodech platí pravidla, která občas zákazník nedodržuje. Někdy se navoní parfémem, aniž by použil tester, nebo...