Opis plików

W niniejszym rozdziale zostaną opisane wszystkie pliki wykorzystywane przez aplikację "Tsk'al". Pliki konfiguracyjne i dane zdarzeń umieszczone są w katalogu domowym użytkownika: ${HOME}/.tskal dla Linuksa i C:\Document and Settings\uzytkownik\Application Data\tskal\ dla Windows. Katalogi i pliki skórek znajdują się w katalogu /usr/share/tskal/themes dla Linuksa i C:\Program Files\tskal\themes dla Windowsa.

Pliki zdarzeń

Pliki zdarzeń zawierają listy zdarzeń w postaci XML. Są nadpisywane za każdym uruchomieniem aplikacji. Wszystkie zmiany, które mają mieć odzwierciedlenie w aplikacji muszą być wprowadzane, kiedy aplikacja nie jest uruchomiona.

Zdarzenia jednokrotne

Plik individual.xml

Zdarzenia jednokrotne są zapisywane w rekordzie:

<event>
   <date>20040912</date>
   <text>tekst zdarzenia</text>
</event>
W polu date jest zapisana data w formacie YYYYMMDD a w polu text tekst, będący opisem zdarzenia.

Zdarzenia wielokrotne

Plik periodic.xml

Zdarzenie wielokrotne jest zapisywane w tym pliku w następującej strukturze:

<event>
	<start_date>20020802</start_date>
	<end_date>29991231</end_date>
	<weekday/>
	<day_period/>
	<week_period/>
	<month_period/>
	<year_period>1</year_period>
	<autodelete>1</autodelete>
	<forgotafter>0</forgotafter>
	<text>Urodziny: Wojtek<text>
</event>
Znaczenie poszczególnych tagów jest następujące:

start_date - data początkowa w formacie YYYYMMDD. Jest to też data pierwszego wystąpienia zdarzenia (uwaga ta nie dotyczy zdarzenie wielokrotnych w dni tygodnia).
end_date - data końcowa w formacie YYYYMMDD zdarzeń wielokrotnych. Po tej dacie zdarzenia już nie będą się powtarzać. Jeśli ta data minie to zdarzenie może być skasowane automatycznie.
weekday - określa w który dzień tygodnia zdarzenie będzie występować. 1 oznacza poniedziałek, 7 - niedzielę. Jeśli zdarzenie ma występować w dwa lub więcej dni tygodnia należy w tym samym rekordzie dodać jeszcze jeden tag weekday.
day_period - określa co ile dni ma się powtarzać zdarzenia.
week_period - określa co ile tygodni ma się powtarzać zdarzenie.
month_period - określa co ile miesięcy ma się powtarzać zdarzenie
year_period - określa co ile lat ma się powtarzać zdarzenie
autodelete - określa, czy zdarzenie ma być usunięte z pliku periodic.xml po upłynięciu daty końcowej.
forgotafter - określa, czy po ilu dniach po minięciu daty zdarzenia, zdarzenie ma zniknąć z kalendarza zdarzeń minionych.
text - opis zdarzenia. Tekst który zostanie wyświetlony

Uwaga: tylko jeden z tagów weekday, day_period, week_period, month_period i year_period może być użyty w jednym zdarzeniu.

Zdarzenia minione

Plik past.xml

Zdarzenia minione są zapisywane w rekordzie:

<event>
        <date>20040912</date>
        <text>tekst zdarzenia</text>
</event>
W polu date jest zapisana data w formacie YYYYMMDD a w polu text tekst, będący opisem zdarzenia Dodatkowo w nagłówku pliku znajduje się tag:

	<SavingDate>20050713</SavingDate>
	
który określa datę ostatniego generowania pliku past.xml. Data ta ma duży wpływ na zawartość pliku past.xml, ponieważ tylko dni pomiędzy nią a datą aktualną są sprawdzane w poszukiwaniu minionych zdarzeń. Wszystkie zdarzenia wcześniejsze niż ta data (być może wprowadzone ręcznie) nie zostaną przepisane do pliku past.xml.

Plik konfiguracji aplikacji

Plik tskalrc

Jest to plik tekstowy, który zawiera listę parametrów aplikacji. Plik ten jest nadpisywane przy każdej zmianie parametrów, więc ewentualne ręczne zmiany muszą być wykonywane, kiedy aplikacja nie jest uruchomiona. Większość tych parametrów jest ustawiana w aplikacji w oknie ustawień

Znaczenie parametrów:

Display/MARK_ACTIVE - wartość 1 oznacza, że tekst na kartkach kalendarza, które mają otwarte okienka zdarzeń, zostanie wyświetlony w inny sposób, określony w konfiguracji skórki.
Display/MARK_SUNDAY - wartość 1 oznacza, że tekst na niedzielnych kartkach kalendarza zostanie wyświetlkony w inny sposób, określony w konfiguracji skórki.
General/CALENDAR_WIDTH - określa ile procent szerokości ekranu powinien zajmować kalendarz. Możliwe wartości od 10 do 100.
General/DELETE_INDIVIDUAL_AFTER - określa jak długo zdarzenia indywidualne mają być przetrzymywane w kalendarzu zdarzeń minionych zanim zostaną automatycznie usunięte.
General/DIVIDER - określa w którym miejscu aplikacji jest wyświetlona belka rozdzielająca kalendarz zdarzeń przyszłych i minionych.
General/MAX_PAST_CARDS - określa ile maksymalnie kartek kalendarza zdarzeń minionych może być wyświetlonych.
General/POS_X - ostatnio zapamiętane położenie w poziomie kalendarza na ekranie.
General/POS_Y - ostatnio zapamiętane położenie w pionie kalendarza na ekranie
Info_behavior/CLOSE_ALL_INFOS - określa zachowanie się aplikacji. Jeśli parametr jest równy 1 to wszystkie okienka zdarzeń będą zamykane przy otwieraniu nowego. Dla wartości 0 tego parametru okienka zdarzeń pozostaną otwarte przy otwarciu następnego.
Info_behavior/OK_ACCEPTS_INFO - wartość 1 oznacza, że tylko naciśnięcie guzika OK spowoduje zapisanie zmian z okienka zdarzeń. Wartość 0 oznacza, że zmiany z okienka zdarzeń będą zapisane w przypadku każdego zamknięcia okienka zdarzeń nie spowodowanego przyciskiem Anuluj
Pixmap_order/{ P1 | P2 | P3 | P4 | P5 | P6 } - określa, która ikonka (wartość parametru) będzie przyporządkowana, do którego typu kartki. Parametry odpowiadają typom kartek kalendarza: pusta, zdarzenie o częstości wyrażonej w dniach, zdarzenie cotygodniowe i w dni tygodnia, wydarzenie comiesięczne, wydarzenie coroczne, wydarzenie indywidualne. Patrz ustawienia aplikacji.
Theme/THEME - określa nazwę skórki i jednocześnie nazwę katalogu w podkatalogu themes. Jeśli podany podkatalog nie istnieje zostanie użyta skórka domyślna. W tym parametrze może być także podana bezwzględna ścieżka do katalogu skórki
Export/EVERY_CHANGE - określa, czy eksport danych do pliku ma się odbywać po każdej zmianie. Dopuszczalne wartości to : true i false
Export/FILENAME - nazwa pliku, do którego będą eksportowane dane.
Export/FORMAT - format eksportu. Obecnie dostępny jest tylko format: plain . W przyszłości dojdą jeszcze: iCal i iCalToDo.
Export/NO_EVENTS - liczba dni w przód, których zdarzenia będą eksportowane do pliku
Window/ON_TOP - określa, czy aplikacja będzie wyświetlana zawsze na wierzchu, czy nie
Window/TRAY_ICON - określa, czy ma być wyświetlana ikonka w zasobniku systemowym
Window/OPACiTY - określa stopień nieprzeźroczystości aplikacji.

Pliki skórki

Mechanizm skórek pozwala na w miarę prostę i szybkie dostosowanie wyglądu aplikacji do reszty środowiska graficznego.

Skórki są składowane w katalogu /usr/share/tskal/themes/, każda w oddzielnym katalogu, którego nazwa zostanie wyświetlona jako nazwa skórki.

Skórka składa się z następujących plików:

themerc - zawierającego konfigurację skórki (patrz Plik konfiguracji skórki>
alert.xpm - plik z bitmapą kartki ze zdarzeniem alarmowym. Być może w przyszłości tą bitmapą będzie wyświetlana kartka aktualnego dnia posiadająca zdarzenie
daily.xpm - plik z bitmapą, która będzie wyświetlana na kartce zawierającej zdarzenie wielokrotne z okresem dniowym (co dziennie, co 2 dni).
individual.xpm - plik z bitmapą, która będzie wyświetlana na kartce zawierającej zdarzenie jednokrotne.
mini.xpm - nieobowiązkowy plik skórki - zawiera miniaturkę albo przykład wyglądu danej skórki. Bitmapa ta jest wyświetlana w oknie ustawień aplikacji
monthly.xpm - plik z bitmapą, która będzie wyświetlana na kartce zawierającej zdarzenie wielokrotne z okresem miesięcznym
weekly.xpm - plik z bitmapą, która będzie wyświetlana na kartce zawierajacej zdarzenie wielokrotne z okresem tygodniowym, lub z określonymi dniami tygodnia
yearly.xpm - plik z bitmapą, która będzie wyświetlana na kartce zawierającej zdarzenie wielokrotne z okresem rocznym
normal.xpm - plik z bitmapą, która będzie wyświetlana na kartce nie zawierającej żadnego zdarzenia.

Zasady wyświetlania skórki

Skórka definiuje tylko wygląd poszczególnych typów kartek kalendarza. Rozmiar kalendarza i każdej z kartek będzie dobrany tak, żeby zmieściła się na nich każda z bitmap, więc zaleca się utworzenie bitmap o identycznych rozmiarach.

Właściwe przyporządkowanie bitmap do typów odbywa się w konfiguracji aplikacji w ustawieniach "Zaznaczenia zdarzeń", a w pliku konfiguracyjnym odpowiadają temu parametry: Pixmap_order/P1 .. P6. Czyli możliwe jest takie ustawienie aplikacji (ale nie skórki), żeby na wszystkich kartkach ze zdarzeniami była wyświetlana bitmapa typu alert.xpm, albo pomieszać kolejności.

Należy jednak pamiętać o priorytetach typów zdarzeń. Jeśli danego dnia zaistnieją dwa zdarzenia to zostanie wybrana ikonka ważniejszego z nich.

Lista typów zdarzeń w kolejności od najważniejszego: alert, indywidualne, roczne, miesięczne, tygodnowe/w dni tygodnia, dzienne, żadne.

Plik konfiguracji skórki

Plik: themerc

Plik konfiguracji określa parametry kolorów i czcionek wyświetlanych na kartkach kalendarza.

Kolory mogą być podawane jako nazwa lub jako kod RGB (np. blue lub #0000FF)

Zawiera następujące dane:

NormalDayFont - font, którym zostanie wyświetlony dzień tygodnia na zwykłej kartce kalendarza. Wartość domyślna: Arial
NormalDayFontColor - kolor nazwy dnia tygodnia wyświetlanej na zwykłej kartce kalendarza. Wartość domyślna: niebieski
NormalDayNumberFont - nieużywane
NormalDayNumberColor - nieużywane
SundayDayFont - font, którym zostanie wyświetlony dzień tygodnia w niedzielę. Wartość domyślna: wartość NormalDayFont
SundayDayFontColor - kolor nazwy dnia tygodnia wyświetlanej na niedzielnej kartce kalendarza. Wartość domyślna: czerwony
SundayDayNumberFont - nieużywane
SundayDayNumberColor - nieużywane
ActiveFont - font, którym zostanie wyświetlony dzień tygodnia na aktywnej kartce kalendarza (z otwartym oknem zdarzeń). Warość domyślna: wartość NormalDayFont
ActiveColor - kolor nazwy dnia tygodnia wyświetlanej na aktywnej kartce kalendarza. Wartość domyślna: żółty
ActiveNumberFont - nieużywane
ActiveNumberColor - nieużywane
MonthFont - font, którym zostanie wyświetlona nazwa miesiąca pod kartkami. Wartość domyślna: wartość NormalDayFont
MonthColor - kolor nazwy miesiąca. Wartość domyślna: czarny.
BackgroundColor - kolor aplikacji (tła pod nazwami miesiąca). Wartość domyślna: szary.
ApplicationFontColor - nieużywane
VerticalBarColor - kolor belki rozdzielającej kalendarze.
VerticalBarPressedColor - kolor wciśniętej belki rozdzielającej kalendarze.