MASARYKOVA UNIVERZITA FAKULTA}w¡¢£¤¥¦§¨  INFORMATIKY !"#$%&'()+,-./012345

Tvorba GUI pro Rainmeter

BAKALÁRSKAPRÁCA

Tomáš Tomeˇcek

Brno, jar 2010 Prehlásenie

Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a li- teratúru, ktoré som pri vypracovaní používal alebo z nich ˇcerpal,v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj.

Tomáš Tomeˇcek

Vedúci práce: Mgr. Šimon Suchomel

ii Pod’akovanie

Rád by som sa pod’akoval vedúcemu mojej práce, pánovi Mgr. Šimonovi Suchomelovi, za to, že bol ochotný viest’ moju bakársku prácu, za jeho cenné rady a trpezlivost’.

iii Zhrnutie

Vo svojej práci sa zaoberám zmenou grafického užívatel’ského rozhra- nia operaˇcnéhosystému Windows. Konkrétne pridaním vlastnej kolekcie nastavení pre program Rainmeter. V popisovaných úpravách sa snažím klást’ dôraz ako na funkcionalitu, tak na vzhl’ad. V kapitolách jedna až tri sa zaoberám jednotlývmi grafickými rozhra- niami operaˇcnýchsystémov, zmenou vzhl’adu Windows (opisujem me- tódy a programy, ktoré sa na to používajú). Štvrtá kapitola je venovaná prostrediu Rainmeter. Píšem o jeho mož- nostiach a funkcionalite. V Kapitole ˇcíslopät’ píšem o implementácii vlastného vzhl’adu a ap- likácie, ktorá s ním pracuje. Podrobne popisujem jednotlivé funkcie ako aj postupy, ktoré som použil pri ich tvorbe.

iv Kl’úˇcovéslová

Rainmeter, grafické užívatel’ské rozhranie, gadget, design, vzhl’ad, ope- raˇcnýsystém, Windows

v Obsah

1 GUI rozliˇcnýchoperaˇcnýchsystémov ...... 3 1.1 Mac OS X ...... 3 1.2 Windows ...... 4 1.3 GNOME ...... 5 1.4 KDE ...... 6 2 Kustomizácia vzhl’adu Windows ...... 7 2.1 Litestep ...... 8 3 Prostredia pre vylepšenie plochy Windows ...... 9 3.1 Windows Desktop Sidebar ...... 9 3.2 Google Gadgets ...... 10 3.3 Opera Widgets ...... 11 3.4 Serious Samurize ...... 12 4 Rainmeter ...... 13 4.1 Vstavané meraˇce ...... 13 4.2 Calc ...... 14 4.3 Metre ...... 14 4.4 Grafické rozhranie ...... 15 5 Implementácia ...... 16 5.1 Design ...... 16 5.2 Vývojové komponenty ...... 16 5.2.1 # ...... 16 5.2.2 Formát súborov Ini ...... 17 5.2.3 Regulárne výrazy ...... 17 5.2.4 Bang príkazy ...... 18 5.3 Tvorba aplikácie ktorá ovláda vytvorený vzhl’ad ...... 19 5.4 Parametre vytvoreného vzhl’adu ...... 22 5.5 Algoritmy použité pri tvorbe vzhl’adu ...... 25 5.5.1 Dock ...... 26 5.5.2 Weather ...... 27 5.5.3 Calendar ...... 28 5.6 Algoritmy využité pri tvorbe aplikácie ...... 29 5.6.1 Pracovanie s Ini súbormi ...... 29 5.6.2 Uchovávanie dát ...... 30 5.6.3 Prvé spustenie ...... 30 5.6.4 Štruktúra aplikácie, použité metódy ...... 30 6 Záver ...... 33 7 Prílohy ...... 36

vi Úvod

Štandardná pracovná plocha operaˇcnéhosystému Windows, do verzie XP, neposkytuje vel’a informácií. Jediné l’ahko prístupné dáta sú ˇcasa dátum. Pre získanie iných je nutné použit’ internetový prehliadaˇc,alebo rôzne dialógové okná operaˇcnéhosystému. Bolo by ovel’a príjemnejšie a pohodlnejšie, keby ste po prihlásení sa do systému okamžite vedeli po- ˇcetnových e-mailov, predpoved’ poˇcasia,zát’až vášho procesora, siet’ové informácie, vlastné poznámky, aktuálne správy z niektorého interneto- vého spravodajského portálu a iné. Na základe týchto informácií by ste mohli zefektívnit’ svoju nasledujúcu prácu. Tak isto zoskupenie týchto dát a vlastne celkový vzhl’ad vašej pracovnej plochy by vám dodal pozi- tívny emocionálny pocit. Od vydania Windows Vista je možné si na pracovnú plochu pridat’ Microsoft Gadgets [1], ktoré sú implicitne obsiahnuté v operaˇcnomsys- téme. Majú prostý vzhl’ad a tie predinštalované poskytujú len niektoré funkcie. Práca s nimi je jednoduchá, ale tieto gadgety (jednoduché prog- ramy, ktoré nepotrebujú vlastnú aplikáciu, ale všetky sú spustené v spo- loˇcnomprostredí) poskytujú len jeden typ vzhl’adu, ktorý nie je možné menit’. Tak isto ich poˇcetje výrazne obmedzený. Dalšieˇ možnosti ako rozšírit’ svoj desktop (pracovná plocha), je nainštalovat’ si niektoré z pro- stredí ako napr. Google Desktop, Opera Widgets, Rainmeter, Samurize. Podrobnejšie o týchto prostrediach píšem v kapitole ˇcíslo3. V mojej práci využívam prostredie Rainmeter. Rainmeter [2] je open source (zdrojový kód je prístupný širokej ve- rejnosti) program pre operaˇcnýsystém Windows, ktorý obohacuje pra- covnú plochu o rôzne informácie. Tieto dáta je možné prezentovat’ rôz- nou formou: textom, grafom, obrázkom, progressbarom (grafický kom- ponent, ktorý ukazuje stav operácie v percentách) a ich kombináciou. V tomto prostredí je možné vytvárat’ skiny (vzhl’ady). Skiny obsahujú niekol’ko ˇcastía tieto ˇcastimajú svoju špecifickú úlohu, napr. jedna zobra- zuje aktuálne poˇcasiea iná meria zát’až procesora. Každá jedna funkcia vzhl’adu sa nachádza v samostatnej zložke a jej konfigurácia je riešená pomocou *.ini súborov. Pre prostredie Rainmeter existuje vel’ké množ- stvo skinov, ktoré poskytujú rôzne funkcie. Aby si ich užívatel’ mohol prispôsobit’ svojmu vkusu, musí vediet’ aspoˇnzáklady programovania, ˇcomôže byt’ pre vel’ké množstvo l’udí problém. Ciel’om mojej práce je obohatit’ plochu operaˇcnéhosystému Windows o rôzne informácie, ktoré prezentujem v užívatel’sky príjemnom grafic- kom designe. Moje riešenie sa líši od ostatných tým, že podporuje väˇc- šinu dostupných funkcií programu Rainmeter. Na ich ovládanie som vy- tvoril klientskú aplikáciu, ktorou je možné menit’ atribúty jednotlivých

1 prvkov. V porovnaní s ostatnými riešeniami, ani jedno neobsahuje kli- entskú aplikáciu s takou podporou funkcií, ako má moje riešenie. V prvej kapitole svojej práce píšem o rôznych grafických užívatel’- ských rozhraniach (GUI) operaˇcnýchsystémov. Porovnávam ich funkci- onalitu a vzhl’ad. V druhej kapitole opisujem techniky zmeny vzhl’adu operaˇcnéhosystému Windows. Snažím sa prezentovat’ co najviac prog- ramov a následne aj zmien, ktoré dokážu. Kapitola ˇcíslotri je venovaná prostrediam, v ktorých je možné spúšt’at’ gadgety a iné prostriedky, ktoré obohacujú pracovnú plochu. Porovnávam ich funkˇcnost’ a iné parametre, ktoré dotvárajú koneˇcnypohl’ad na ne. V kapitole štyri sa venujem ˇcisto prostredu Rainmeter. Píšem o jeho možnostiach a funkciách. Piata kapi- tola je venovaná implementácii vlastného vzhl’adu, ktorý som vytvoril a klientskej aplikácii, ktorá s ním pracuje. Píšem o ich parametroch a fun- kciách, ako aj o postupoch a algoritmoch, ktoré som volil. V závere práce hodnotím, ˇcisa mi podarilo splnit’ ciel’ mojej práce. Taktiež rozoberám možnosti rozšírenia vzhl’adu a vylepšenia klientskej aplikácie.

2 1 GUI rozliˇcnýchoperaˇcnýchsystémov

V súˇcastnostije vo vývoji stále viac a viac operaˇcnýchsystémov. Každý z nich má svoje typické grafické rozhranie, podl’a ktorého je ho možné jednoducho urˇcit’. Vo vel’a veciach sa odlišujú, ale zopár vecí majú spo- loˇcných.Po nabootovaní sa zobrazí formulár, kde užívatel’ zadá prihlaso- vacie údaje a následne sa prihlási do systému. Po prihlásení sa zvyˇcajne objaví pracovná plocha a bar (lišta), ktorý môže obsahovat’ rozliˇcnéin- formácie ako sú odkazy na programy a služby, odkaz na menu s d’alšími odkazmi, ikony spustených aplikácií, ˇcasa dátum a vel’a iného.

1.1 Mac OS X

Obr. 1.1: Grafické rozhranie Mac – Snow Leopard

Tento operaˇcnýsystém z produkcie firmy Apple využíva rozhranie, ktoré sa nazýva Aqua [3]. Ako už názov napovedá, jeho inšpirácia bola nájdená vo vode. Elementy rozhrania Aqua robia jednotný vzhl’ad väˇcšinyapli- kácií operaˇcnéhosystému. Dva hlavné prvky tohto prostredia sú gélové tlaˇcidláa Dock (bar na ktorom sú odkazy na aplikácie a spustené apli- kácie – je umiestnený v spodnej ˇcastipracovnej plochy). Posledná verzia operaˇcnéhosystému má oznaˇcenieMac OS X 10.6 a názov Snow Leopard. V tejto verzii dostal Dock väˇcšítrojrozmerný dojem. Toto bolo docielené predovšetkým odrazom v spodnej ˇcastia trojrozmernými ikonami s tie- ˇnom.V hornej ˇcastisa zvyˇcajnenachádza menu bar. V jeho pravej ˇcasti

3 1. GUI ROZLICNÝCHOPERAˇ CNÝCHSYSTÉMOVˇ sú odkazy na používané systémove služby ako hlasitost’, siet’ové nasta- venia, ˇcasa dátum a pod. L’avá ˇcast’ obsahuje ikonu jablka. Po kliknutí na ˇnusa vyvolá menu s d’alšími ponukami. Vedl’a tejto ikony sa nachá- dza menu, ktoré je pre každý program špecifické.

1.2 Windows

Obr. 1.2: Grafické rozhranie Windows 7

Tento operaˇcnýsystém patrí medzi najpoužívanejšie na svete, takže väˇc- šina l’udí už pozná jeho grafické užívatel’ské rozhranie. To sa vcelku radi- kálne zmenilo za celé roky. Windows 7 obsahuje nasledovné vylepšenia: • Vel’kou zmenou prešiel – obsahuje odkazy na programy ako aj bežiace aplikácie. Po prebehnutí kurzorom na bežiacu apliká- ciu sa zobrazí jej náhl’ad. Ak to aplikácia umožˇnuje,ikona môže do- konca zobrazovat’ stav nejakej operácie ako progressbar, napr. st’a- hovanie súboru z internetu. Ikony je možné zobrazit’ dvomi spô- sobmi. Bud’ ikonou s väˇcšímirozmermi bez popisku, alebo s men- šími a s popiskom, tak ako to bývalo v starších verziách.

• System Tray ostal prakticky nezmenený. Obsahuje ikony aplikácií a služieb, ktoré sú pustené na pozadí (ale nemusí to byt’ tak). Je možné obmedzit’ poˇcetzobrazených ikon a ostatné prípadne skryt’.

• Ponuka štart dostala niekol’ko zmien. Ako najprínosnejšiu hodno- tím vyhl’adávanie integrované priamo v ponuke. Dalejˇ l’avá ˇcast’

4 1. GUI ROZLICNÝCHOPERAˇ CNÝCHSYSTÉMOVˇ

ponuky obsahuje najpoužívanejšie aplikácie a napravo sú dôležité systémové odkazy ako Poˇcítaˇc,Nápoveda, Ovládacie Panely a iné.

• Prieskumník Windows dostal tak isto zopár vylepšení. Vyhl’adá- vanie umiestnené vpravo hore je trefa do ˇcierneho.Stromy, ktoré sú v l’avej ˇcastiokna, sú tak isto výhodné, pretože obsahujú použí- vané zložky systému ako Užívatel’ský Adresár, Siet’ a samozrejme celý Poˇcítaˇc.

Grafické rozhranie dostalo ešte omnoho viac zmien, z tých prínosnejších spomeniem ešte napr. prepracovanejšie siet’ové nastavenie, prehl’adnejší ovládací panel a Desktop Sidebar. Operaˇcnésystémy na báze Linux jadra majú viacero desktopových pro- stredí. Tie najpoužívanejšie sú GNOME a KDE.

1.3 GNOME

Obr. 1.3: Grafické rozhranie GNOME

Názov tohto desktopového prostredia je odvodený z GNU Network Ob- ject Model Environment. Je naprogramované v jazyku C s využitím kniž- nice GTK+. Jeho prvá verzia bola 1.0. V súˇcastnostije najnovšia verzia 2.30 a pracuje sa na verzii GNOME 3.0 [4]. Hlavným prvkom rozhrania sú 2 lišty. Jedna sa nachádza v hornej ˇcastiobrazovky, druhá v dolnej. Tá v dolnej obsahuje ikony spustených aplikácií a miniatúry plôch. Lišta

5 1. GUI ROZLICNÝCHOPERAˇ CNÝCHSYSTÉMOVˇ v hornej ˇcastipozostáva z 2 ˇcastí.L’avá ˇcast’ obsahuje rozbalovacie po- nuky. Úplne nal’avo je logo GNOME. Po kliknutí naˇnsa zobrazí ponuka, ktorá obsahuje väˇcšinunainštalovaných aplikácií. V pravej ˇcastisa nachá- dza aktuálny ˇcasa dátum a ikony niektorých spustených systémových služieb ako hlasitost’, stav siete a iné. Tieto lišty je možné si prispôso- bit’ napr. pridaním alebo odobratím niektorých ikon, zmenou ich farby, priehl’adnost’ou a pod.

1.4 KDE

Obr. 1.4: Grafické rozhranie KDE

Prostredie KDE [5] bolo vyvinuté Matthiasom Ettrichom. Momentálne existuje vo verzii 4 s názvom KDE Software Compilation 4. Jedná sa o ko- munitu l’udí produkujúcich software zadarmo pre rôzne platformy ako Linux, FreeBSD, Windows, Solaris a Mac OS X. Jeho grafické rozhranie je vcelku vel’mi podobné tomu, ktoré ma Windows. Hlavným prvkom pro- stredia je lišta nachádzajúca sa v spodnej ˇcastiobrazovky, ktorá obsahuje niekol’ko prvkov:

• logo KDE – po kliknutí naˇnsa vytvorí ponuka aplikácií a vyhl’adá- vanie

• spustené aplikácie

• plochy – jednoduché prepínanie medzi plochami

• ˇcasa systémové služby

6 Kliknutím pravým tlaˇcidlommyši na plochu je možné pridat’ widgety1. Existuje množstvo aplikácií vytvorených priamo pre KDE. Zväˇcšaich meno zaˇcínana K, napr. Kate (textový editor), Koffice (prostredie pre prácu s dokumentmi), Konqueror (webový prehliadaˇca súborový ma- nažér), Kopete (Instant messaging klient)... 2 Kustomizácia vzhl’adu Windows

Vzhl’ad operaˇcnéhosystému Windows je možné zmenit’ na nepoznanie pomocou zopár pomocných aplikácií. Najjednoduchšie je zaˇcat’ so zme- nou visual style, teda štýlu Windows, na ktorý netreba žiadny dodatoˇcný software. V prvom rade sa doporuˇcujezálohovat’ pôvodné súbory. Naj- l’ahšie je to pomocou niektorej pomocnej aplikácie ako Windows Theme Installer, UxStyle Core, Universal Theme Patcher, Tune Up Utilities a iné. Následne už len zvolenú tému pridáte do adresára na systémovom disku. Dalšiaˇ možnost’ ako zmenit’ štýl tohto operaˇcnéhosystému je použit’ program WindowBlinds. Najnovšia verzia tohto programu plne podpo- ruje štýlovanie Windows 7 a Windows Vista. Tak isto je možné apliko- vat’ zmeny na Aero ako aj podporuje 64 bitovú architektúru. Na vzhl’ady je možné aplikovat’ textúry, vd’aka ˇcomuvyzerajú pestrejšie oproti kla- sickým Windows visual styles. Nanešt’astie tento program nie je free- ware, ale pre plnú verziu je nutné ho zakúpit’. Najpoužívanejšia apli- kácia na zmenu vzhl’adu je Litestep [6]. Podrobnejšie o nej píšem v ka- pitole ˇcíslo2.1. Dalšíˇ vel’mi používaný typ softwaru sú docky. Takýto program vám na pracovnú plochu pridá kustomizovatel’nú lištu. Táto lišta obsahuje ikony (ˇciuž textové alebo obrazové), ktoré fungujú ako odkazy na jednotlivé aplikácie. Najpoužívanejšia aplikácia tohto typu je pravdepodobne ObjectDock, ktorá existuje ako vo freeware verzii, tak aj v rozšírenej – platenej. Samotná lišta vychádza z lišty v operaˇcnomsys- téme MacOS. Tvorcovia sa snažia napodobnit’ okrem vzhl’adu aj efekty. Dalšíˇ element, ktorý je možné zmenit’ je kurzor. Na jeho zmenu sa zvy- ˇcajnepoužíva aplikácia CursorFX. Pri zmene vzhl’adu je dôležité, okrem aplikácií ktoré sú na to urˇcené, používat’ programy ktoré sú skinovatel’né (je mozné menit’ ich vzhl’ad). Medzi používaný software, ktorý umožˇnujetakúto funkciu patria multi- mediálne prehrávaˇce,komunikaˇcnéprogramy, browsery a iné.

1. widget je malá aplikácia bežiaca na pracovnej ploche, ktorá umožˇnujezobrazovat’ rôzne dáta ako hodiny, poˇcasie,kalendár a pod.

7 2. KUSTOMIZÁCIA VZHL’ADU WINDOWS 2.1 Litestep

Litestep je náhrada Shellu1 vo Windows pre radu 98 a vyššie, licenco- vané pod licenciou GNU GPL. Samotná aplikácia je založená na myš- lienke malého jadra s naˇcítavanímdodatoˇcnýchmodulov (DLL knižnic). Litestep podporuje tvorbu vlastných pracovných plôch tak ako to vyho- vuje užívatel’ovi. Je možné pridat’ alebo odobrat’ každý element pracov- nej plochy. Prostredie Litestep pozostáva z množstva modulov, z ktorých každý ma svoju funkciu. Každý vzhl’ad využíva niektoré moduly a uží- vatel’ si ich musí dodatoˇcnedoinštalovat’. Vzhl’ad je kolekcia nastavení, skriptov a obrázkov uložených v archíve. Jednotlivé moduly sa naˇcíta- vajú cez textový konfiguraˇcnýsúbor Step.rc. Dalšieˇ dôležité konfiguraˇcné súbory [7]:

Obr. 2.1: Príklad použitia Litestep

• Evars.rc – všetky cesty k programom sú definované v tomto súbore. Je možné ho jednoducho zmenit’ v textovom editore a tak isto pri- dat’ d’alšie programy. • Hotkey.rc – tento súbor obsahuje vlastné klávesové skratky. Užíva- tel’ si môže pridat’ nové vlastné skratky alebo konfigurácie pre iné moduly. • Personal.rc – obsahuje užívatel’ské nastavenia pre všetky moduly a naˇcítavaEvars.rc, Hotkey.rc a Popup.rc.

1. je oznaˇcenieprogramu, ktorý poskytuje rozhranie pre používatel’ov operaˇc- ného systému. Shell umožˇnujevyužívat’ funkcie jadra.

8 • Popup.rc – pozostáva z vlastných položiek menu. Medzi samotnými vzhl’admi môžu byt’ znaˇcnérozdiely, tak ako vo vzhl’a- de, alebo vo funkciách. Základné typy [8] tém môžu byt’: • Bar – typický desktopový interface. Tento pruh ma urˇcitérozmery (šírku, prípadne d´lžku) a vo vnútri drží všetky informácie. Typický príklad je Explorer vo Windows alebo podobné lišty v ostatných GUI. • Minimalistická – pre užívatel’ov, ktorí majú radi ˇcistéplochy s mi- nimálnym obsahom informácií a jednoduchým designom. • Box (štvorcové) – väˇcšinainformácií a vlastne celé GUI je založené na štvorcoch (obdl’žnikoch). • Complete alebo Fully Featured – tieto vzhl’ady obsahujú maxi- mum možného. • Port – kópia existujúceho vzhl’adu alebo GUI iného operaˇcného systému prevedená do prostredia Litestep.

3 Prostredia pre vylepšenie plochy Windows

Vo svojej bakalárskej práci sa venujem predovšetkým prostrediu Rainme- ter, podrobnejšie o ˇnompíšem v kapitole ˇcíslo4. Všetky spomínané pro- stredia testujem na poˇcítaˇcis 32-bitovými Windows 7, Intel Core 2 Duo 1.83 GHz, 2 GB RAM (usudzujem, že na novších a výkonejších poˇcítaˇcoch by zat’aženie jednotlivých prostredí bolo úplne minimálne a užívatel’ by ho prakticky asi ani necítil).

3.1 Windows Desktop Sidebar

Windows desktop sidebar je implicitne obsiahnutý v operaˇcnomsystéme Windows Vista a 7. Obsahuje zopár gadgetov, prípadne d’alšie je možné dodatoˇcnestiahnut’ z internetu. Ich st’ahovanie a inštalácia je jednodu- chý proces. Po vyvolaní ponuky Gadgets v systéme Windows sa odka- zom Get more gadgets online presunieme do webového rozhra- nia, ktoré obsahuje zoznam gadgetov na stiahnutie. Samotné gadgety sa tvoria pomocou HTML, XML, CSS a Microsoft Jscript. Takže je možné vytvárat’ modálne okna, input boxy a podobné dynamické prvky. Zvo- lená konfigurácia na obrázku 3.1 zaberá v pamäti približne 16 MB a vy- t’ažuje procesor priemerne na 1 %, ˇcohodnotím ako vcelku vysoké hod- noty, vzhl’adom na poˇcetzobrazených informácií.

9 3. PROSTREDIAPREVYLEPŠENIEPLOCHY WINDOWS

Obr. 3.1: Ukážka gadgetov

Klady:  neni nutná inštalácia prostredia  množstvo funkcií pri vytváraní nového gadgetu Zápory:  vyššie nároky na pamät’  neexistuje rozmanitost’ vzhl’adov a designov  vel’ká nároˇcnost’ pri vytváraní nového gadgetu

3.2 Google Gadgets

Spoloˇcnost’ Google vytvorila prostredie Google Desktop. Toto prostre- die má niekol’ko funkcií, za zmienku stoja napr. prehl’adávanie poˇcítaˇca pomocou tejto aplikácie s Google algoritmami, hl’adanie a spúšt’anie ap- likácií a súborov pomocou klávesových skratiek, prostredie pre spúšt’a- nie miniaplikácií – gadgetov. Pre moju prácu je najpodstatnejšia posledná spomínaná funkcia. Tieto miniaplikácie umožˇnujúprístup k najaktuál- nejším informáciám. Je možné ich umiestˇnovat’ po celej ploche, prípadne na panel na pravej strane plochy (podobne ako Windows Desktop Side- bar) ako aj na vlastnú iGoogle1 stránku. Súˇcast’ou tejto aplikácie je malá lišta, ktorá slúži ako vstup pre vyhl’adávanie na Googli. Vyhl’adávanie gadgetov urobili vývojári, podl’a mojho názoru, efektívne a prehl’adne. Je

1. iGoogle je personálna stránka, na ktorú si užívatelia môžu pridat’ fotky, novinky, správy, poˇcasiea iné.

10 3. PROSTREDIAPREVYLEPŠENIEPLOCHY WINDOWS možné hl’adat’ podl’a rôznych parametrov ako obl’úbenost’, dátum, meno a iné. Priamo na domovskej stránke prostredia je množstvo gadgetov. Tie s bežnými funkciami sú hodiny, kalendár, predpoved’ poˇcasia,systé- mové a siet’ové informácie a pod. Avšak, je možné si stiahnut’ aj niektoré s lepšími funkciami ako rôzne hry, populárne videá na YouTube, ovládaˇc hlasitosti, Run – integrácia Windows funkcie Spustit’ a vel’a iných zaují- mavých miniaplikácií.

Klady:

 množstvo gadgetov

 vyhl’adávanie

 možnosti aké prináša prostredie

Zápory:

 absencia celých vzhl’adov s jednotným designom

 design väˇcšinyminiaplikácií

 pamät’ová nároˇcnost’

 zložitost’ vytvárania nových gadgetov

3.3 Opera Widgets

Populárny internetový prehliadaˇcOpera podporuje tzv. Opera Widgets. Sú to vlastne malé webové aplikácie. Ich najväˇcšouvýhodou je, že sú ne- závislé na platforme, takže fungujú na poˇcítaˇcis operaˇcnýmsystémom Windows, Linux, alebo do konca na mobilnom telefóne, ˇcihernej kon- zole. Pri ich vytváraní sa využívajú jazyky HTML, CSS a JavaScript. Av- šak, podl’a môjho názoru majú Widgety viac záporov, než kladov. Ich zapnutie v Opere je jednoduché. V záložke Widgets sa na plochu pridajú vol’bou Add Widgets. Táto možnost’ vás presunie na domovskú stránku tejto funkcie. Widgety sú na nej výborne zoradené a l’ahko sa v nich vy- hl’adáva. Po tom ˇcosa takýto doplnok nainštaluje je možné ho okam- žite spustit’. Jednotlivé widgety su nainštalované ako ktorýkol’vek iný software. Hned’ prvá nevýhoda je, že každý Widget vytvorí svoju ikonu na taskbare. V prípade použitia viacerých by bol taskbar vel’mi zahltený. Dalšiaˇ výrazná nevýhoda je, že každý Widget zaberá v pamäti viac ako 20 MB. Avšak, funkcie niektorých doplnkov sú vel’mi pestré. Užívatel’ má možnost’ vybrat’ si z prekladaˇcavyužívajúceho službu GoogleTrans- late, nástroja na kreslenie, vykreslovania matematických funkcií, nástroja

11 3. PROSTREDIAPREVYLEPŠENIEPLOCHY WINDOWS na ˇcítanieelektronických kníh, virtuálneho akvária a vel’a iných.

Klady:

 platformová nezávislost’

 pestrost’ vytvorených widgetov

Zápory:

 pamät’ová nároˇcnost’

 ikona na taskbare pre každý widget

3.4 Serious Samurize

Samurize je freeware prostredie, v ktorom je možné vytvárat’ a spúš- t’at’ konfigurácie – grafické prvky, ktoré obohacujú pracovnú plochu o rôzne informácie. Každá jedna konfigurácia beží v samostatnej inštancii prostredia. Ak teda užívatel’ chce mat’ spustených viacero naraz, musí pre každú vytvorit’ novú inštanciu Samurize. Avšak, tieto operácie je možné jednoducho spravovat’ pomocou nástroja Instance Manager, kto- rý je súˇcast’ou aplikácie. Uchovávanie konfigurácie sa uchovávajú vo for- máte ini. Pre ich úpravu je možné použit’ Samurize editor, ktorý obsahuje pre túto ˇcinnost’ grafické rozhranie. Užívatel’ teda nemusí poznat’ syntax, aby bol schopný vytvorit’ vlastnú konfiguráciu. Avšak na editor si treba zvyknút’ a pracovat’ s ním nejaký ˇcas,aby užívatel’ pochopil všetky fun- kcie a možnosti. Na tvorbu zložitejších funkcií je možné použit’ Visual Basic skripty. Aplikácia podporuje vlastný formát – sam. Pomocou neho si užívatel’ jednoducho nainštaluje konfiguráciu bez nutnosti kopírova- nia a extrahovania súborov. Na operaˇcnomsystéme Windows 7 som mal problémy pri inštalácii, ktorú je nutné spustit’ v Compatibility móde, aby úspešne prebehla. Dalšieˇ problémy sa vyskytli pri zobrazovaní niekto- rých informácií, ked’ mi nefungovala aktuálna zát’až procesora ani siete. Celkovo vyzerá toto prostredie vel’mi kvalitne, ale treba ˇcasa skúsenosti, aby ste využili naplno jeho možnosti.

Klady:

 grafické rozhranie na tvorbu konfigurácií

 inštalovanie konfigurácií

 podpora vbs skritpov

12 Zápory:  zložitost’ celého prostredia

 inštancia zobrazuje len jednu konfiguráciu

 problémy vo Windows 7

4 Rainmeter

Prostredie Rainmeter [9] slúži na tvorbu meraˇcov, ktoré dokážu merat’ aktuálnu zát’až CPU, stav využitia RAM alebo diskov, siet’ové informácie ako je lokálna IP adresa, verejná IP adresa, gateway, aktuálny download alebo upload, ping, uptime; zobrazovat’ informácie z RSS feedov, poˇca- sie, klikatelné tlaˇcidlaa iné. Tieto informácie sa získavajú skrz jednotlivé pluginy alebo aj cez vstavané meraˇce(measure). O pluginoch v aktuálnej verzii (1.2-r393) programu píšem v prílohách.

4.1 Vstavané meraˇce

Rainmeter obsahuje vstavané meraˇce,ˇciženie je nutné používat’ jednot- livé pluginy na získavanie niektorých druhov informácií. Zoznam vsta- vaných meraˇcov: • CPU – meria aktuálny výkon procesoru

• Memory – meria využitie operaˇcnejpamäte

• PhysicalMemory – meria využitie fyzickej pamäte

• SwapMemory – meria vel’kost’ využitia odkladacieho priestoru

• Uptime – zobrazuje uptime systému

• NetIn – meria aktuálny download

• NetOut – meria aktuálny upload

• NetTotal – meria aktuálnu zát’až siete

• FreeDiskSpace – meria vol’né miesto na jednotlivých diskoch

• Plugin – meraˇcje definovaný niektorým z externých pluginov

• Registry – získava hodnoty z registrov

13 4. RAINMETER

• Time – meria dátum a ˇcas

• Calc – meria na základe zadaného vzorca

4.2 Calc

V meraˇcitypu Calc je možné zadat’ vzorec. V tomto vzorci je povolené použit’ nasledovné operátory: +, -, *, /, ** (mocnina), % (modulus), & (bitový súˇcin), | (bitový súˇcet), ^ (bitový XOR), ~ (bitový NOT); d’alej logické operátory: <>, =, >, <, &&, ||; matematické funkcie ako sínus, cosínus a iné.; funkciu Random. Taktiež je možné použit’ ternárny operá- tor – ? : . Pomocou Calcu je možné tvorit’ podmienky. Slúžia na to parametre: • IfAboveAction – ak je výsledná hodnota Calcu vaˇcšiaako zadaná hodnota parametru IfAboveValue, vykonajú sa bang príkazy v tom- to atribúte

• IfAboveValue – tu sa zadáva hodnota, ktorá ked’ sa prekroˇcí,tak sa vykonajú príkazy parametru IfAboveAction

• IfBelowAction – ak je výsledná hodnota Calcu menšia ako zadaná hodnota parametru IfBelowValue, vykonajú sa bang príkazy v tom- to atribúte

• IfBelowValue – zadaná hodnota pre parameter IfBelowAction

• IfEqualAction – ak je hodnota rovnaká, ako zadaná hodnota v IfE- qualValue, vykonajú sa príkazy zadané v tomto parametri

• IfEqualValue – hodnota používaná atribútom IfEqualAction

4.3 Metre

Rainmeter využíva na jeho konfiguráciu ini súbory. Poznáme 2 základné typy sekcií (existuje ešte sekcia pomenovaná Rainmeter a Variables). A to measure (meraˇc)a meter. Measure získava alebo spracováva dáta, zatial’ ˇcometer ich zobrazuje. Existuje niekol’ko typov metrov, resp. spôsob ako zobrazovat’ dáta: • BAR – vytvorí obd´lžnik – progressbar, ktorý reprezentuje merané dáta

• BITMAP – zobrazuje dáta pomocou zadaného obrázku

14 • BUTTON – reprezentuje tlaˇcidlo,na ktoré je možno klikat’

• HISTOGRAM – namerané dáta vykresluje pomocou histogramu

• IMAGE – väˇcšinoupoužívané na zobrazovanie obrázkov

• LINE – dáta sú zobrazované pomocou priamky

• ROTATOR – namerané hodnoty sú zobrazované pomocou obrázku, ktorý je rotovaný okolo bodu

• ROUNDLINE – dáta sú reprezentované priamkou, ktorá sa otáˇca okolo bodu

• STRING – dáta je vo výstupe vidiet’ ako ret’azce

4.4 Grafické rozhranie

Rainmeter síce nemá žiadne prepracované GUI (obsahuje len rozbalova- cie menu, po kliknutí pravého tlaˇcidlamyši na jeho ikonu v tray), av- šak obsahuje niekol’ko užitoˇcnýchaddonov 1. V aktuálnej verzii sú na- sledovné 3 addony :

• Rainstaller – pomocou tohto addonu je inštalácia nových vzhl’a- dov otázka troch kliknutí. Pôvodne bolo nutné celý vzhl’ad ruˇcne kopírovat’ do zložky pre to urˇcenej(bud’ v adresári Rainmeter alebo v užívatel’skom profile Documents\Rainmeter\Skins). Samotná in- štalácia nových vzhl’adov prebieha úplne jednoducho, môžete si vybrat’, ktoré ˇcasti(vzhl’ad, pluginy, addony, písma, témy) chcete nainštalovat’. Addon tak isto podporuje zálohovanie dát. Vzhl’ady sú naˇcítavanécez vlastný formát – rmskin.

• RainBrowser – tento addon umožˇnujeprezerat’ nainštalované kon- figurácie a následne ich náˇcítat’. U naˇcítanýchje možné menit’ ich atribúty, konkrétne priehl’adnost’, pozíciu a iné. Bohužial addon má nepraktické ovládanie, pre ktoré je nutné si preˇcítat’ návod. Tak isto nie je možné menit’ špecifické vlastnosti jednotlivých vzhl’adov, ako niektoré premenné, farby, lokalizáciu a pozície v rámci konigu- rácií. To bol hlavný dôvod tvorby mojej klientskej aplikácie.

• RainThemes – podporuje správu tém – vytváranie, mazanie a úp- ravu.

1. pomocné aplikácie, ktoré majú urˇcitýúˇcel,napr. správa súborov

15 5. IMPLEMENTÁCIA 5 Implementácia

5.1 Design

Pri navrhovaní som sa snažil o minimalistický design. Po niekol’kých pokusoch som sa dopracoval k aktuálnemu stavu. Samotný vzhl’ad po- zostáva predovšetkým zo štvorcov, na ktoré je aplikovaná priehl’adnost’. Okraj tvorí nepriehl’adná ˇciara.Samotné štvorce majú rovnaké rozmery, ˇcižeje možné jednotlivé ˇcastirozmiestˇnovat’ po ploche. Niektoré prvky majú poloviˇcnú(štvrtinovú) vel’kost’, takže zapadajú tak isto do seba. Samotné rozmery štvorca sú 190x190 pixelov. Táto plocha je dostatoˇcne vel’ká pojat’ množstvo informácií. Pri pridávaní informácií na tieto štvor- ce som sa snažil minimalizovat’ poˇcetgrafických prvkov, aby to nepô- sobilo prehusteným dojmom. Samotné progressbary majú 1px medzery medzi samotným okrajom a pruhom. Tak isto grafy sú takým istým spô- sobom oddelené od progressbarov. Tento štýl pôsobí vel’mi elegantne. Do niektorých konfigurácií som pridal separátory, ˇcize1 pixel hrubé ˇciary ktoré oddel’ujú obsah. Konfigurácia Winamp neobsahuje taký progress- bar ako ostatné. Je to 2 pixely hrubá ˇciaras tmavým pozadím a samotný obd´lžnik, ktorý zobrazuje progres, má takú farbu, akú majú hodnoty. Problém som mal so zobrazením poˇcasia.Pre každý deˇnsom chcel vypi- sovat’ ikonu stavu poˇcasia,teplotu ako ˇcíselnúhodnotu, deˇn,pre ktorý je daná predpoved’ urˇcená,textový popisok vývoju a teplotu ako progress- bar (toto zobrazenie je atypické a chcel som ho využit’ z dôvodu sledova- nia stavu vývoja). Avšak s posledným menovaným som mal problém, že pre túto informáciu už nezostávalo miesto. Riešenie tohto problému sa vyskytlo pri budovaní konfigurácie Winamp, ked’ som využil rovnaký progressbar ako sa v ˇnomnachádza. Navyše tento obd´lžnik pôsobí ako oddel’ovaˇca esteticky separuje hodnoty od seba.

5.2 Vývojové komponenty

V tejto podkapitole opisujem použité komponenty a technológie, ktoré som použil pri vývoji aplikácie a vzhl’adu.

5.2.1 C# C# [10] je imperatívny, funkcionálny, generický a objektovo orientovaný programovací jazyk, ktorý vyvinula spoloˇcnost’ Microsoft (pod vedením Andersa Hejlsberga). Vo vel’kej miere sa využíva na tvorbu desktopo- vých aplikácií. Pre operaˇcnýsystém Windows vytvorila spoloˇcnost’ Mic-

16 5. IMPLEMENTÁCIA rosoft vývojové prostredie Microsoft Visual C# s vel’kým množstvom pri- pravených grafických komponentov.

5.2.2 Formát súborov Ini Ini súbor [11] je textový dokument rozdelený do sekcií. Každá sekcia ob- sahuje niekol’ko (alebo žiadny) kl’úˇcov. Každý kl’úˇcobsahuje niekol’ko (alebo žiadnu) hodnôt. Komentáre je možno uvádzat’ za znak ’;’ (alebo aj podl’a iných štandardov za znak ’#’). Príklad sekcie: [NázovSekcie] klúc=hodnotaˇ ;komentár inýklúc=hodnota,ˇ dalšiahodnota ;komentár

Názvy sekcií sú uzatvorené v hranatých zátvorkách a musia zaˇcínat’ no- vý riadok. Tento spôsob uchovávania dát je starší, ale stále sa používa.

5.2.3 Regulárne výrazy Jeden z najpoužívanejších pluginov prostredia Rainmter je WebParser plugin. Využíva sa na pársovanie (spracovanie) textových dokumentov. Dokumenty dokáže získavat’ zo zadaných URL adries, alebo z disku. Sa- motné pársovanie je riešené pomocou regulárnych výrazov [12]. Regu- lárny výraz (regular expression), oznaˇcovanýtiež zkrátene ako regexp ˇci regex, je špeciálny ret’azec znakov, ktorý predstavuje urˇcitývzor (alebo masku) pre textové ret’azce. V súˇcasnejdobe ich môžeme nájst’ v mnoho programovacích jazykoch napr. C#, Java, Visual Basic .NET, Perl, PHP, Javascript a mnoho programoch obzvlášt’ pre Unix/Linux. Jednoduchý výraz v Rainmetri môže vyzerat’ napr. takto: (?siU)(.*) Vysvetlenie zaˇciatoˇcnéhoret’azca a jednotlivých špeciálnych znakov:

• s – jednoriadkový mód – ˇcoznamená, že sa ’.’ a ’.*’ nezastavia na konci riadku

• i – nezáleží na vel’kosti písmen (case insensitive)

• U – akonáhle použijeme ’.*’, výraz skontroluje d’alší výskyt, než aby šiel na koniec ret’azca alebo súboru

• . – reprezentuje jeden akýkol’vek znak okrem nového riadku

• * – zopakuje predošlú zhodu nekoneˇcnevel’a krát

17 5. IMPLEMENTÁCIA

• () – ret’azce v zátvorkách sa uložia do StringIndex a je možné potom s nimi d’alej pracovat’ (napr pre d’alší WebParser, alebo ich môžeme vypísat’) Daný regulárny výraz v zadanom dokumente hl’adá prvý výskyt ret’azca a spracuje text, ktorý sa nachádza medzi týmto ret’azcom a ret’azcom . Najjednoduchšie sa spracovávajú doku- menty napísane v niektorom zo znaˇckovacíchjazykov – XML, HTML a pod., lebo majú pevne danú štruktúru a je vcelku jednoduché na ich pár- sovanie vytvorit’ regulárny výraz.

5.2.4 Bang príkazy Rainmeter podporuje tzv. bang príkazy. Každý takýto príkaz zaˇcínazna- kom výkriˇcník.Tieto príkazy slúžia na zmenu rôznych konfigurácií v ap- likácii ako napr. premenné, pozície, naˇcítanévzhl’ady a iné. V online do- kumentácii sa pri argumentoch vyskytujú hranaté zátvorky (argument je povinný) a okrúhle zátvorky (argument je volitel’ný). Medzi najpoužíva- nejšie „bangy“ patria: • !RainmeterRefresh (Configuration) – obnoví aktuálnu konfigurá- ciu, alebo tú, ktorá je zadaná v parametri • !RainmeterRedraw (Configuration) – prekreslí aktuálnu konfigurá- ciu, tak isto obnoví všetky meraˇce • !RainmeterHideMeter [Meter] (Configuration) – skryje zadaný me- raˇcalebo meter (ale nezastaví measure, ktorú je treba dodatoˇcne zastavit’) • !RainmeterShowMeter [Meter] (Configuration) – zobrazí zadaný meraˇcalebo meter, ak bol skrytý • !RainmeterDisableMeasure [Measure] (Configuration) – pozastaví zadaný meraˇc • !RainmeterEnableMeasure [Measure] (Configuration) – spustí za- daný meraˇc • !Execute – špeciálny bang príkaz pomocou ktorého je možné skom- binovat’ niekol’ko príkazov dokopy. Tie sú od seba oddelené hrana- tými zátvorkami. Tak isto je možné spúšt’at’ súbory a aplikácie. • !RainmeterSetVariable [Variable] [Value] (Configuration) – nastaví premennú na zadanú hodnotu. Meraˇcalebo meter musí mat’ povo- lene dynamické premenné, aby bol schopný akceptovat’ novozme- nenú premennú (DynamicVariables=1).

18 5. IMPLEMENTÁCIA

Jednotlivé príkazy sa môžu volat’ bud’ v rámci programu, alebo je možné ovládat’ Rainmeter externe a to konkrétne volaním programu rainme- ter.exe a pridaním atribútu konkrétneho Bang príkazu, napr. rainmeter.exe !RainmeterRefreshApp, ktorý znovunaˇcítacelý obsah aplikácie. Príklad po- užitia Bang príkazu v rámci aplikácie:

[PowerCalc] Measure=CALC Formula=MeasurePower IfAboveValue=20 IfAboveAction=!execute [!RainmeterShowMeter MeterHighPower][!RainmeterHideMeter MeterLowPower] IfBelowValue=21 IfBelowAction=!execute [!RainmeterHideMeter MeterHighPower][!RainmeterShowMeter MeterLowPower]

Tento meraˇcako vstup berie iný meraˇcMeasurePower, ktorý merá aktu- álny stav batérie v percentách. Ak je táto hodnota väˇcšiaako 20, pomo- cou Bang príkazov sa zobrazí meter MeterHighPower a skryje sa me- ter MeterLowPower. Ak je táto hodnota menšia ako 21, spraví sa opak. Rozdiel v týchto dvoch metroch je ten, že výsledná farba zobrazovaného elementu je rozdielna, a teda zdôrazˇnujenízky stav batérie.

5.3 Tvorba aplikácie ktorá ovláda vytvorený vzhl’ad

Ked’že Rainmeter nemá prakticky žiadne GUI, ktoré by pracovalo s at- ribútmi vzhl’adov, vytvoril som aplikáciu, ktorá pracuje s mojím vzhl’a- dom1. Samotný program pozostáva z niekol’kých formulárov: Hlavné okno aplikácie (Form1). Dialógové okno O aplikácii (About) (Form2) – struˇcnéinformácie o aplikácii. Dialógové okno Nastavenie (Configuration) (Form3) – tu je mož- né nastavit’ cestu k prostrediu Rainmeter pre správnu komunikáciu. Tak isto toto dialógové okno nastavuje akciu, ktorá je vyvolaná dvojklikom na ikonu Rainmetru v tray ˇcastipracovnej plochy. Implicitne som pripra- vil, aby sa spustila samotná aplikácia. Aplikácia má nasledovnú funkcionalitu:

• umožˇnujezmenu jazyka vzhl’adu a aplikácie. Na výber je anglická a slovenská lokalizácia.

1. samozrejme táto aplikácia môže byt’ použitá aj pri práci s inými, avšak bolo by nutné dodržat’ názvy súborov (a niektorých premenných), s ktorými pracuje

19 5. IMPLEMENTÁCIA

Obr. 5.1: Hlavné okno aplikácie (Form1)

• dokáže prefarbit’ vzhl’ad do tmavých alebo svetlých farieb

• znovunaˇcítacelý obsah prostredia Rainmetru – refresh all

• v konfigurácii network_info_perfmon.ini zmení meranie aktuálneho siet’ového zariadenia

• najdôležitejšia funkcia – zmena jednotlivých parametrov vzhl’adu

Jednotlivé parametre, ktoré je možné menit’:

• Vel’kost’ písma v RSS ˇcítaˇcke(RSS Font Size)

• Vel’kost’ písma (Font Size) – vel’kost’ fontu vo väˇcšinekonfigurácií

• Vel’kost’ písma v Dock (Dock Font Size)

• Vel’kost’ písma hodín (Clock Size)

• Vel’kost’ písma prehrávaˇca(Player Time Size) – vel’kost’ fontu zo- stávajúceho ˇcasuprehrávaneho média vo Winamp konfigurácii

• Farba popiskov (Label Color) – farba popiskov jednotlivých funkcií

• Farba separátoru (SepaColor) – farba oddelovacej ˇciari

• Farba hodnôt (Value Color) – farba hodnôt jednotlivých údajov

20 5. IMPLEMENTÁCIA

• Farba okrajov (Border Color)

• Farba pozadia (Background Color)

• Farba progressbarov (Bar Color) – farba vnútra progressbarov

• Obrázok okrajov progressbarov (Bar Border Path)

• Obrázok na progressbaroch (Bar Image) – cesta k obrázku vnútra progressbarov (niektoré obsahujú ˇcervenéfarby kritických hodnôt)

• Názov pisma (Font Name)

• Disk pre meranie 1 (Drive for measure 1)

• Disk pre meranie 2 (Drive for measure 2)

• Siet’ové zariadenie (Network Device) – názov siet’ového zariade- nia, ktoré je zobrazované v konfigurácii network_info_perfmon.ini

• Siet’ové zariadenie 2 (Network Device 2) – názov d’alšieho siet’o- vého zariadenia. Túto hodnotu je možné jednoducho vymienat’ s hod- notou „Siet’ové zariadenie“.

• Adresa na ping (Address for ping) – URL adresa serveru, na ktorý budú odosielané ping packety

• Oneskorenie vypnutia (Shutdown Delay) – ˇcasv sekundách, za kto- rý sa vypne stanica v konfigrácii Shutdown

• LAN IP adresa (LAN IP address) – výber medzi IP adresami jed- notlivých siet’ových zariadení

• Vzdialenost’ prvého objektu v dock (Distance of first element in dock) – vzdialenost’ prvého elementu od l’avého okraju v konfigu- rácii Dock

• 8 elementov, ktoré je možné mat’ v konfigurácii Dock. „Popisok záznamu v dock“ (Label) reprezentuje popisok, ktorý bude zobra- zený, a „Záznam v dock“ (Entry) je cesta k danému súboru

• Prihlasovacie meno do GMail (GMail Username)

• Heslo do GMail (GMail Password)

• 3 RSS ˇcítaˇcky. „RSS 1 popisok“ (Label) znaˇcípopisok a „RSS ad- resa“ (URL) je adresa k danému XML

21 5. IMPLEMENTÁCIA

• AccuWeather kód lokácie (AccuWeather Location) – kód lokácie v službe AccuWeather, ktorá zobrazuje poˇcasie

• Yahoo Weather kód lokácie (Yahoo Weather Location) – kód lokácie v službe YahooWeather, ktorá zobrazuje poˇcasie

• Yahoo Weather meracia jednotka (Yahoo Weather Unit) – jednotky (Celzia alebo Fahrenheity) v ktorých má byt poˇcasiezobrazované v konfigurácii YahooWeather

5.4 Parametre vytvoreného vzhl’adu

Vo vytvorenom vzhl’ade som sa snažil implementovat’ ˇconajviac funkcií, ktoré obsahujú ostatné vzhl’ady. Samotný design pozostáva z nasledov- ných súborov:

• Analog_Clock – analógové hodiny. Majú jednoduchý a prehl’adný design o rozmeroch 95x95 pixelov.

• Calendar – kalendár s rozmermi 190x190 pixelov. Zobrazuje celý me- siac a navyše ešte niektoré dni, ktoré patria k hraniˇcnýmmesiacom. Ako zaˇciatoˇcnýdeˇntýždˇnaje zvolený pondelok. Na kalendár je ap- likovaná lokalizácia, ktoré zobrazuje iniciály dní v danom jazyku.

• Dock – táto konfigurácia reprezentuje pruh – bar, na ktorý je možné umiestˇnovat’ odkazy na súbory. Má rozmery 805x32 a zvyˇcajnesa

22 5. IMPLEMENTÁCIA

umiestˇnujena horný alebo dolný okraj plochy. Pomocou vytvore- nej aplikácie je možné na tento panel pridávat’ jednotlivé odkazy a posúvat’ ich umiestnenie. • Network_Info – zobrazuje siet’ové informácie. Jeho 2 varianty sú ne- twork_info_perfmon.ini a network_info.ini. Konfigurácia s postfixom perfmon meria siet’ovú komunikáciu pomocou Windows apliká- cie Performance Monitor. Pre úspech je nutné do aplikácie zadat’ presné meno siet’ového zariadenia na meranie. Tá bez postfixu me- ria celkovú siet’ovú zát’až a pre jej správnu funkˇcnost’ nie je potreba zadávat’ žiadne údaje. Preferujem túto variantu. Jednotlivé zobra- zované informácie: – systémový uptime – ping – implicitne je táto funkcia vypnutá, aby zbytoˇcnene- zat’ažovala koncový server. Užívatel’ si ju jednoducho zapne kliknutím na hodnotu „neaktívny“. – LAN IP – lokálna IP adresa stanice – WAN IP – IP adresa v rámci siete internet – DOWN / UP – aktuálny download alebo upload v kilobytoch. Súˇcast’ou týchto 2 funkcií je aj graf. • Notes – plocha, kde si užívatel’ môže umiestˇnovat’ svoje poznámky. Po kliknutí na štvorec vpravo hore sa otvorí editor, kde je možné dané zápisky vložit’. • Resources – adresár obsahuje súbory obrázkov použitých v jednotli- vých konfiguráciách. Tak isto obsahuje konfiguraˇcnýsúbor pre ap- likáciu. • RSS – obsahuje 3 RSS cítaˇcky. Sú urˇcenépre RSS verziu Atom2. Na jednotlivé správy je možné klikat’ a následne sa otvoria vo we- bovom prehliadaˇci.V záhlaví je uvedený zdroj, odkial’ sa dané dáta ˇcerpajú. • Shutdown – táto konfigurácia obsahuje 4 farebné tlaˇcidlá,priˇcom každé ma svoju úlohu. Tieto funkcie sú volané pomocou windows aplikácie shutdown. – oranžové slúži na reštart stanice – ˇcervenéje pre vypnutie PC

2. Atom je formát dokumentu podl’a štandardu XML, ktorý opisuje zoznam informácií bežne známych ako „feedy“

23 5. IMPLEMENTÁCIA

– žlté je vypnutie poˇcítaˇcaza urˇcitýˇcas(tento ˇcasje možné me- nit’ pomocou aplikácie) – zelené slúži na odhlásenie

• System_Info – základné systémove informácie, konkrétne:

– RAM – aktuálne vyt’aženie systémovej pamäti. Po kliknutí na hodnotu je možne menit’ medzi percentami a absolútnou hodnotou. – HDD – dva meraˇcepre pevné disky. Merajú kapacitu v per- centách a Bytoch, ako aj aktuálny zápis na daný disk. Medzi týmito hodnotami je možné cyklit’ po klikaní na danú hod- notu. – CPU – aktuálne vyt’aženie procesora. V grafe je možné si po- zriet’ vyt’aženie jednotlivých jadier. Za hodnotou vyt’aženia sa nachádza takt.

• System_Info2– dodatoˇcnésystémove informácie:

– Mail – poˇcetnových mailov v zadanom Gmail úˇcte – Top proces – proces, ktorý najviac vyt’ažuje procesor – Procesy – poˇcetspustených procesov – Batéria – aktuálny stav batérie. Ak sa hodnota zmení pod 20 percent, progressbar zmení farbu. – Kôš – aktuálne zaplnenie košu. Po kliknutí na popisok kôš sa otvorí adresár s košom. Kliknutím na progressbar sa kôš vy- prázdni.

• Time&Date – aktuálny ˇcasa dátum zobrazený pomocou znakov. V slovenskej lokalizácii je ešte pridaná informácia o meninách.

• Weather – informácie o aktuálnom poˇcasía predpovedi na blízke dni. Dáta sú získavané z 2 serverov, a to YahooWeather a AccuWe- ather. Pre korektné informácie je nutné zadat’ v aplikácii správne kódy lokácií.

• Wifi – zobrazuje informácie o aktuálnom stave bezdrôtového pripo- jenia ako SSID siete, kvalitu spojenia a typ autentizácie.

• Winamp – táto konfigurácia ponúka informácie z multimediálneho prehrávaˇcaWinamp. S Winampom komunikuje pomocou pluginu WindowMessagePlugin. Tak isto je možné ˇciastoˇcnekontrolovat’

24 5. IMPLEMENTÁCIA

prehrávaný obsah, konkrétne pozastavit’/prehrat’ aktuálny medi- álny súbor, preskoˇcit’ na d’alšiu/predchádzajúcu položku v zozna- me prehrávaných súborov. Daná konfigurácia zobrazuje aktuálny ˇcasa progressbar prehrávaného média.

5.5 Algoritmy použité pri tvorbe vzhl’adu

Pri niektorých prvkoch nebolo nutné používat’ zložité algoritmy ani kon- štrukcie, nanešt’astie, niektoré sa bez toho neobišli. Bežné meranie a ná- sledné zobrazenie môže vyzerat’ napríklad takto: [MeasureTime] Measure=Time Format=%H:%M

[MeterTime] MeasureName=MeasureTime Meter=STRING X=95 Y=5 W=75 FontColor=#ValueColor# FontSize=#ClockSize# StringEffect=SHADOW FontFace=#TagFont# StringAlign=CENTER AntiAlias=1

MeraˇcMeasureTime získava informácie o ˇcasea vracia ich vo formáte hodiny:minúty. Meter MeterTime ich zobrazuje ako ret’azec. Získanie týchto dát nevyžaduje žiadny zložitý prístup, avšak niektoré komplexnejšie informácie ako pársovanie dát z webu, alebo textových súborov, získavanie dát z Performance Monitoru, tvorba zložitejších zo- brazovacích prostriedkov (hover efekty, rozbalovacie menu, animácie a iné) a relatívne pozíciovanie vyžadujú kvalitnejší prístup a spracovanie. Pri tvorbe konfigurácií ako system_info,network_info a pod. som použil rovnaký štýl, aby jednotlivé ˇcastik sebe esteticky zapadali. Ap- likovat’ na ne relatívne pozíciovanie nebolo t’ažké, kedže staˇcilozistit’ cielené vzdialenosti u jedného zobrazenia a následne to aplikovat’ na os- tatné.

25 5. IMPLEMENTÁCIA

5.5.1 Dock V tejto konfigurácii som použil relatívne pozíciovanie (o ktoré som sa snažil všade inde), pretože tento element je vel’mi závislý na dátach ktoré zobrazuje. Podl’a poˇctuzobrazených odkazov som chcel, aby bolo možné jednoducho zobrazit’ celý obsah na stred. Bohužial’ v prípadne absolút- neho pozíciovania by to nebolo možné, ked’že by bolo nutné posúvat’ každý odkaz zvlášt’ a navyše by vzdialenost’ medzi nimi nemusela byt’ konštantná. Cižeˇ relatívne pozíciovanie je perfektné riešenie tohto prob- lému. Avšak som natrafil na problém, ktorý sa prejavoval pri použití ho- ver efektu, konkrétne, že sa jednotlivé odkazy pri posunutí kurzoru po- súvali dol’ava a doprava. Riešenie bolo jednoduché: [App2] Meter=STRING MeterStyle=StyleLabelApp Text="#icon2text#" MouseOverAction=!Execute [!RainmeterHideMeter App2][!RainmeterShowMeter App2ro] [!RainmeterRedraw]

[App2ro] Meter=STRING MeterStyle=StyleRolloverApp Text="#icon2text#" LeftMouseDownAction=!Execute ["#icon2#"] MouseLeaveAction=!Execute [!RainmeterHideMeter App2ro][!RainmeterShowMeter App2] [!RainmeterRedraw]

[App2Placeholder] Meter=STRING MeterStyle=StylePlaceHolderApp Text="#icon2text#"

Pridal som ku každému objektu tzv. Placeholder, ktorý drží miesto pre objekty závislé od relatívnych pozícií. Jav posunutia odkazov bol spôso- bený tým, že ak som kurzorom prešiel po danom odkaze, ten okamžite skryl konkrétny objekt, a zobrazil jeho rollover ekvivalent. Nanešt’astie, d’alšie objekty, ktorých pozícia závisela od skrytého objektu sa teraz po- sunuli. Preto som pridal Placeholder objekt, ktorý síce nie je vidno, ale ostatné odkazy ho využívajú ako miesto, podl’a ktorého je urˇcená ich po- zícia. Placeholder objekty som musel pridat’ aj do ostatných konfigurácií,

26 5. IMPLEMENTÁCIA ktorých dáta boli závislé na internetovom pripojení, pretože bez dát zís- kaných z internetu, by sa ostatné objekty posunuli.

5.5.2 Weather V konfigurácii poˇcasie,konkrétne YahooWeather sa pomocou pluginu WebParser pársuje XML dokument z internetu a z neho sa získavajú dáta na zobrazenie. V tejto konfigurácii sa o toto pársovanie stará meraˇcMea- sureYahooWeather: [MeasureYahooWeather] Measure=Plugin Plugin=Plugins\WebParser.dll UpdateRate=600 URL=http://weather.yahooapis.com/forecastrss? w=\#YahooLocation\#\&u=\#YahooUnit\# RegExp="(?siU)city="(.*)".*speed="(.*)".*

Samotný XML dokument má vel’mi atypickú a neprehl’adnú štruktúru. Niektoré dáta sú v danom súbore na viacerých miestach, ˇcopôsobí mä- túco. Ja získavam informácie z blokov:

27 5. IMPLEMENTÁCIA

Tieto bloky dokonca nie sú v dokumente vedl’a seba a je medzi nimi ešte množstvo iných dát. Pravdepodobne najt’ažšie bolo vytvorit’ regulárny výraz pre získanie ˇcasu,pre ktorý sa týka daná predpoved’: Conditions for Brno, CZ at 4:00 pm CEST Odpovedajúci regulárny výraz: Conditions for .* .* .* (.*)<.* Tento regulárny výraz však nie je prvý. Pôvodne som používal: Conditions for .* .* .* (.*) CET Avšak, s príchodom letného ˇcasusa postfix zmenil na CEST. Dokonca pre ostatných užívatel’ov z iných krajín, ktorý by využívali môj vzhl’ad, by ani nefungoval, kedže môžu žit’ v rôznych ˇcasovýchpásmach. Samotné zobrazovanie získaných dát je už vel’mi jednoduché, ked’že staˇcívytvorit’ d’alší meraˇc,ktorým z meraˇcaMeasureYahooWeather zís- kavame odpovedajúce indexy. Vytvoril som ešte konfiguráciu ktorá získava dáta o poˇcasízo serveru AccuWeather. Samotný XML dokument má štruktúru rozdelenú podl’a jednotlivých dní. Aby som si ul’ahˇcilprácu, prípadne zjednodušil elimi- náciu chýb, rozhodol som sa na pársovanie použit’ viacero meraˇcov. Prvý meraˇcrozdelí dokument podl’a dní na jednotlivé indexy. Dalšieˇ z kaž- dého dˇnazískajú jednotlivé informácie. Pri použití tohto prístupu je eli- minácia chýb l’ahká a výsledný zápis pôsobí vel’mi prehl’adne. Príklad neprehl’adného pársovania som uviedol v prílohe. Ak sa vyskytne ne- jaká chyba, tak hl’adat’ v takomto regulárnom výraze bez dodatoˇcného softwaru nepresnosti, je podla môjho názoru znaˇcnenepríjemné. Takže ak Rainmeter podporuje takéto funkcie postupného získavania dát, ur- ˇciteby som ich preferoval, ˇcoaj robím.

5.5.3 Calendar Bohužial’ Rainmeter neobsahuje plugin na tvorbu kalendára (na túto fun- kciu sa využíva software ), takže je nutné si dni vyrátat’ pomo- cou algoritmu [13]. Algoritmus pracuje podl’a tohto vzorca:  Y ear dayOfMonth + Month + Y ear + − 4  2 ∗ (Century mod 4) − isLeapJanF eb mod 7

Implementáciu algoritmu vytvoril užívatel’ s prezývkou limpet a je mož- né si ju vol’ne stiahnut’ [14].

28 5. IMPLEMENTÁCIA 5.6 Algoritmy využité pri tvorbe aplikácie

Pri tvorbe aplikácie nebolo nutné používat’ zložité algoritmy ani kon- štrukcie, takže jej tvorba bola relatívne jednoduchá. Väˇcšíproblém bolo ošetrovanie výnimiek a chýb kvôli vstupno-výstupným operáciám. Bolo nutné pridat’ trycatch3 boxy na vel’a miest, na ošetrenie chýb pri neko- rektne zadaných údajoch.

5.6.1 Pracovanie s Ini súbormi Vel’mi dôležitou ˇcast’ou mojej práce bolo úspešne pracovat’ so súbormi, v ktorých sú uchovávané dáta. Bolo mi jasné, že touto problematikou sa už urˇciteniekto zaoberal a tak som na internete našiel knižnicu AMS.pro- file [15]. Táto knižnica má triedy, pomocou ktorých je možné jednoducho pracovat’ so súbormi vo formáte XML, Ini, registrami a konfiguráciami (súbory, ktoré obsahujú nastavenia aplikácie). Ja som využil len triedu, ktorá pracuje s Ini súbormi a z nej nasledovné metódy: • object GetValue(String section, String key) táto metóda získava hodnoty zo zadaných súborov. Parameter sec- tion je názov sekcie. Parameter key je názov kl’úˇcadanej sekcie, z ktorej získavame hodnotu. Ak je niektorí z parametrov null, me- tóda vyhodí výnimku ArgumentNullException. • void SetValue(String section, String key , String value) metóda, ktorá vytvára Ini súbory a v nich príslušné dáta podl’a sta- novených konvencií. Parameter section je názov sekcie, do ktorej chceme zapisovat’, alebo ju vytvorit’. Parameter key je meno kl’úˇca a premenná value reprezentuje zapisovanú hodnotu. Metóda môže vyhodit’ výnimku ArgumentNullException, v prípade, že je nie- ktorý parameter null, alebo je prázdny (v prípade null hodnoty pa- rametra value sa daný kl’uˇczmaže). • string[] GetEntryNames() táto metóda nemá žiadne parametre, ale vracia všetky názvy kl’ú- ˇcovdaného súboru ako pole hodnôt typu String. Pri budovaní aplikácie som narazil na problém, ako vyriešit’ zobrazenie jednotlivých parametrov vzhl’adu a ich nastavenie. Možností som mal niekol’ko a to bud’ staticky v aplikácii vytvorit’ názvy jednotlivých para- metrov. Sprvu som používal toto riešenie, ale nebolo vôbec praktické. Ak

3. Blok kódu, v ktorom ked’ sa vyskytne výnimka, je okamžite spracovaná a teda je možné na ˇnureagovat’

29 5. IMPLEMENTÁCIA by som chcel pridávat’ alebo uberat’ niektoré parametre, musel by som menit’ aj samotnú aplikáciu, ˇcoje vel’mi neefektívne. Tak som sa rozho- dol zvolit’ univerzálnejší spôsob pomocou metódy uchovávania dát v sú- bore. Vytvoril som nový súbor, v ktorom sú uložené názvy parametrov a ich popisy, ktoré zobrazuje aplikácia. Pomocou metódy GetEntryNames zistím mená kl’úˇcova ich zástupcov, ktoré zobrazím. Takto môžem jed- noducho pridávat’ a odoberat’ parametre bez nutnosti zmien v aplikácii. Avšak tento spôsob má aj jeden nedostatok, a to, ked’ niektorý parame- ter nemá svoje meno pre zobrazenie a popisok. V prípade absencie mena, aplikácia daný parameter ani neumožní upravit’ a oznámi chybové hláse- nie. Ak chýba popisok, nahradí sa hodnotou Cannot load comment.

5.6.2 Uchovávanie dát Dáta uchovávam vo formáte ini, o ktorom som už písal skorej. Dôvodov preˇcosom si zvolil tento typ uchovávania je viacero. Ked’že samotný Rainmeter pracuje s ini súbormi, nechcel som komplikovat’ súborovú hierarchiu. Tento spôsob uchovávania dát je vel’mi jednoduchý a výborne sa s ním pracuje po programovacej stránke. Ini súbor sa l’ahko upravuje pomocou ktoréhokol’vek textového editoru.

5.6.3 Prvé spustenie Po prvom spustení je nutné zadat’ cestu k prostrediu Rainmeter, aby mohla aplikácia korektne komunikovat’. Tak isto je nutné zadat’ cestu ku konfiguraˇcnýmsúborom Rainmetru. Aplikácia zistí, že je spustená po prvý krát (a ponúkne pravdepodobnú cestu k jednotlivým súborom a zložkám) hodnotou zo súboru Resources/app.var v sekcii Config a kl’uˇci ConfPath hodnotou no_value:

if (labels.GetValue("Config", "ConfPath") .ToString() == "no_value") { this.changePaths(); } else rainPath = labels.GetValue("Config", "RainPath").ToString();

5.6.4 Štruktúra aplikácie, použité metódy Trieda hlavného formulára Form1 má nasledovné atribúty: • private Ini variables;

30 5. IMPLEMENTÁCIA

reprezentuje súbor variables.var, ktorý obsahuje nastavitel’né para- metre vzhl’adu. • private Ini labels; reprezentuje súbor Resources/app.var, ktorý obsahuje zobrazované hodnoty v aplikácii, ako aj informácie o cestách. • private string[] varStrings; trieda uchováva všetky názvy parametrov z variables.var, tak ako sú použité v prostredí Rainmeter • private string AppIniPath; cesta k aktuálnemu adresáru • private string rainPath; cesta k aplikácii Rainmeter Konštruktor triedy Form1 obsahuje množstvo príkazov, ktoré je nutné spustit’ pri inicializácii. V prvom rade je dôležité inicializovat’ premenné variables, labels a varStrings. Pomocou for cyklu prejdem všetky položky pola vo varStrings, nájdem ich zastúpenie a vložím do listu, ktorý zobra- zujem: for (int i = 0; i < varStrings.Length; i++) { try { string name = labels.GetValue("Names", varStrings[i]).ToString(); this.list.Items.Add(name); } catch (Exception ex) { //printing output with error message } } Ak získavanie zástupného mena vyhodí výnimku, znamená to, že také meno neexistuje. Túto informácie oznámim užívatel’ovi pomocou chybo- vej hlášky. Pre rovnaké alebo podobné ˇcastikódu som sa snažil vytvorit’ metódy, ktoré následne využívam: • private void changePaths() – vytvorí inštanciu formulára Form3 a následne vyvolá dialóg na zmenu premenných k cestám • private void refreshComponents() – metóda, ktorá aktu- alizuje stav komponentov pre zobrazenie hodnoty vybranej polož- ky z listu a popisu. Tak isto zobrazuje tlaˇcidlopre dialóg na zmenu

31 5. IMPLEMENTÁCIA

farby. Pri naˇcítavaníhodnót zo súborov môže nastat’ chyba, že daná hodnota neexistuje, v tomto prípade sa vyhodí výnimka a oznámi to užívatel’ovi chybovou hláškou.

• private void changeLang(string lang) – pre zmenu jazy- ka slúži táto metóda. Parameter lang obsahuje cestu k súboru s lo- kalizáciou, napr. #SKINSPATH#Zianne\\local-EN.loc. Samotná me- tóda obsahuje mená všetkých konfigurácií, ktoré využívajú rôzne jazykové verzie.

• private void swapDrives() - vymení obsah parametrov NetworkDevice a NetworkDevice2

• private void executeCommand(string command) – táto metóda odošle prostrediu Rainemter bang príkaz, ktorý je zadaný jej parametrom. try { Process myProcess = new Process(); ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(rainPath, command); myProcess.StartInfo = myProcessStartInfo; myProcess.Start(); } catch (Exception ex) { //printing output with error message }

Ak je zadaná cesta nesprávna, vyhodí sa výnimka, ktorá je okamžite za- chytená a táto informácia sa oznámi užívatel’ovi.

32 6 Záver

Ciel’om mojej bakalárskej práce bolo vytvorit’ vzhl’ad pre platformu Rain- meter. Následne k tomuto vzhl’adu naprogramovat’ aplikáciu s grafic- kým rozhraním, ktorá by dokázala menit’ jednotlivé parametre vzhl’adu ako farby, vel’kost’ písma, pridávat’ a odoberat’ odkazy a iné. Vo finále by som rád ponúkol svoj výsledok vol’ne na stiahnutie na internet. Svoj ciel’ sa mi podarilo splnit’. Vytvorený vzhl’ad obsahuje informá- cie ako ˇcasa dátum, kalendár, stav procesora, pamäti, harddiskov, zat’a- ženie a stav siete, stav Wifi siete, RSS správy, poˇcasiea vel’a iných. Sa- mozrejme Rainmeter toho dokáže zobrazit’ omnoho viac, avšak mojím ciel’om nebolo zahltit’ plochu nepotrebnými informáciami, ktoré bežný užívatel’ nevyužije. Skin je vo formáte rmskin, takže jeho inštalácia je jednoduchá. Klientská aplikácia pracuje s parametrami vzhl’adu a do- káže ich menit’ ako aj pomocou bang príkazov pristupovat’ k Rainmetru. Výsledok svojej práce som 2. mája ponúkol na internet vol’ne na stia- hnutie1. K dátumu 11. máj má celý môj balík už skoro 200 stiahnutí a 1200 l’udí ho videlo. Niektorým l’udom sa môj výtvor páˇcilnatol’ko, že zane- chali aj pozitívny komentár, ˇcoma potešilo. Moju prácu by bolo možné ešte dodatoˇcnerozšírit’. Samotné rozšíre- nie by spoˇcívalopridaním viacero funkcií aplikácii. Konkrétne sa jedná o tieto: Pridat’ d’alšie grafické komponenty, ktoré by pracovali s parametrami vzhl’adu, napríklad posuvný komponent, ktorý by predstavoval ovláda- nie alfa kanálu pri manipulácii s farbami. Pokúsit’ sa o prepojenie aplikácie so službou YahooWeather, aby užívatel’ mohol zadat’ svoju lokáciu priamo do aplikácie bez nutnosti využívat’ in- ternetový prehliadaˇc. Prehl’adnejšie usporiadanie parametrov vzhl’adu, napr. do stromu, ˇciže vytvorit’ skupiny pre podobné atribúty. Zmenit’ niektoré premenné na dynamické, prípadne rozšírit’ zoznam fun- kcií v aplikácii, ktoré pracujú s Rainmetrom, napr. umožnit’ posúvanie konfigurácií, zobrazovat’ a skrývat’ jednotlivé konfigurácie a pod. (i ked’ táto funkcia by bola zbytoˇcná,ked’že tieto funkcie už má RainBrowser).

1. Zvolil som server DeviantArt, kde má Rainmeter vel’kú komunitu, odkaz: http: //n-e-r-e.deviantart.com/art/Zianne-Skin-1-0b-162681056

33 Literatúra

[1] WIKIPEDIA. Microsoft Gadgets [online]. 29.10.2009 [cit. 14.11.2009]. Dostupné na: . [2] RAINMETER DEVELOPMENT TEAM. About Rainmeter [online]. 1.11.2009 [cit. 14.11.2009]. Dostupné na:

[3] APPLE INC. The Aqua Interface [online]. 20. 8. 2009 [cit. 13. 5. 2010]. Dostupné na:

[4] CUTLER, Paul a GNOME komunita. GNOME 2.30 Release Notes [on- line]. [cit. 11. 5. 2010]. Dostupné na:

[5] KDE DEVELOPMENT TEAM. About KDE [online]. [cit. 13. 5. 2010]. Dostupné na:

[6] LITESTEP WIKI. 10. 2. 2007 [cit. 11. 5. 2010]. Dostupné na:

[7] LITESTEP WIKI. LiteStep:Configuration [online]. 31. 7. 2006 [cit. 11. 5. 2010]. Dostupné na:

[8] LITESTEP WIKI. Themes:Development [online]. 21. 1. 2006 [cit. 11. 5. 2010]. Dostupné na:

[9] RAINMETER DEVELOPMENT TEAM. Introduction [online]. 1. 11. 2009 [cit. 11. 5. 2010]. Dostupné na:

[10] WIKIPEDIA. C Sharp (programming language) [online]. 10. 5. 2010 [cit. 11. 5. 2010]. Dostupné na:

[11] CLOANTO. Cloanto Implementation of INI File Format [online]. 4. 5. 2010 [cit. 11. 5. 2010]. Dostupné na:

34 6. ZÁVER

[12] PECKA, Miroslav. Shrnutí syntaxe regulárních výraz ˚u [online]. 21. 4. 2006 [cit. 11. 5. 2010]. Dostupné na:

[13] Perpetual Calendar – Weekday computation in your head [online]. [cit. 11. 5. 2010]. Dostupné na: ]

[14] LIMPET. Rainmeter Calendar [online]. 20. 12. 2008 [cit. 11. 5. 2010]. Dostupné na:

[15] MENDEZ, Alvaro. Read/Write XML files, Config files, INI files, or the Registry [online]. 21. 2. 2005 [cit. 11. 5. 2010]. Dostupné na:

35 7 Prílohy

Príklad neprehl’adného regulárneho výrazu, ktorý pársuje informácie o po- ˇcasíz YahooWeather:

"(?siU).*-(.*).*(.*)/(.*) .*(.*).* (.*).* (.*).* (.*).*(.*).*(.*) .*(.*).*(.*).* (.*).*(.*).*(.*).*(.*)/\*(.*).* (.*).* (.*)
.*Forecast:
(.*)
.*(.*)
.*.*provided by(.*).*

Zoznam pluginov v aktuálnej verzii Rainmetru:

1. AdvancedCPU Plugin – tento plugin meria procesy, ktoré vyt’ažujú procesor. Jeho parametrami je možné vylúˇcit’, alebo obsiahnut’ špe- cifické procesy.

2. iTunes Plugin – tento plugin zobrazuje informácie z multimediál- neho prehrávaˇcaiTunes. Tak isto pomocou tohto pluginu je možné iTunes aj ˇciastoˇcneovládat’.

3. MBM5 Plugin – plugin, ktorý len získava informácie z programu Motherboard Monitor 5. Tento program slúži na získavanie infor-

36 7. PRÍLOHY

mácií zo senzoru na matiˇcnejdoske. Konkrétne sa jedná o teplotu, takt, voltáž a rýchlost’ komponentov poˇcítaˇca. 4. Perfmon Plugin – jeden z najdôležitejších pluginov, pretože dokáže získat’ vel’ké množstvo systémových dát. Získava informácie z Per- formance Monitoru. Performance Monitor je program obsiahnutý v operaˇcnomsystéme Windows Vista a Windows 7. Tento Monitor meria vel’ké množstvo systémových informácií. Perfmon plugin si dokáže jednotlivé informácie odtial’to získat’. 5. Ping Plugin – tento plugin môže byt’ použitý na odosielanie ping paketov na server na meranie latencie siete. Pomocou parametrov je možné zadat’ adresu, na ktorý budú pakety odosielané, frekvenciu ich odosielania a timeout. 6. Power Plugin – tento plugin slúži pre laptopy, lebo meria stav ich batérie a navyše ešte frekvenciu procesru. Parametrami je možné zistit’ ˇcije daný poˇcítaˇczapojený do elektrickej siete, status batérie a ako dlho dlho ešte batéria vydrží. 7. Quote Plugin – tento plugin slúži na náhodné zobrazenie ret’azca zo súboru alebo náhodný výber súboru zo zložky. 8. RecycleManager Plugin – tento plugin slúži na správu koša a mo- nitorovanie jeho stavu. Navyše má tento plugin vlastné bang prí- kazy, pomocou ktorých je možné kôš otvorit’ alebo vyprázdnit’. 9. ResMon Plugin – plugin pre Windows XP. Meria jednotlivé pro- cesy. 10. SysInfo Plugin – plugin zist’uje rôzne informácie o systéme ako meno stanice, prihlasovacie meno užívatel’a, rozlíšenie monitora, verziu operaˇcnéhosystému... 11. WebParser Plugin – pravdepodobne najdôležitejší a najpoužívanej- ší plugin. Vel’ké množstvo developerov ho používa na spracovanie dát z internetu ako stav poˇcasia,RSS správy, získanie WAN IP ad- resy, stav e-mailovej schránky a pod. Dalšieˇ jeho možné využitie je v získavaní informácií zo súborov na disku. Pomocou neho je možné pársovat’ dáta z internetových stránok ako aj súborov z lo- kálnych diskov. Pri pársovaní sú využité regulárne výrazy. Plugin ma tieto parametre: • Url – url spracovaného súboru (ˇciuž je v sieti Internet, alebo na lokálnom disku). Hodnota môže byt’ tak isto iný WebParser meraˇc.

37 7. PRÍLOHY

• RegExp – regulárny výraz pomocou ktorého sú dáta spraco- vané. Plugin využíva regulárne výrazy kompatibilné s výraz- mi z jazyka Perl. • FinishAction – akcia, ktorá sa vykoná, ak je súbor úspešne spracovaný • StringIndex – definuje, ktorý ret’azec z regulárneho výrazu tento meraˇcvráti • StringIndex2 – využíva sa ak je parameter pluginu iný Web- Parser meraˇc • UpdateRate – doba, ako ˇcastoje spracovávaný súbor st’aho- vaný • Debug – ako je táto hodnota nastavená na 1, v logu budú pri- dané niektoré dodatoˇcnéinformácie na debugovanie • Debug2File – ak je Debug nastavený na 2, je možné logovat’ do zadaného súboru v tomto atribúte • Download – ak je táto hodnota nastavená na 1, daný súbor bude stiahnutý do týmto zadaného adresára • ErrorString – ak sa pársovanie nezdarí, meraˇcvráti tento ret’a- zec • Proxy – meno proxy servera • CodePage – kódovanie súboru. Kódy sú zadávane podl’a štan- dardov spoloˇcnostiMicrosoft – Microsoft Reference

12. WiFiStatus Plugin – zaznamenáva informácie o Wifi spojeniach. Parametrami je možné zistit’ SSID (názov) siete, kvalitu spojenia, typ autentizácie a iné.

13. WindowMessage Plugin – plugin ktorý umožˇnujeposielat’ (a teda kontrolovat’ iné aplikácie) a príjmat’ správy od rôznych aplikácií.

38