// ui-ncurses
// (c) copyright 2002 wojtek kaniewski <wojtekka@irc.pl>
// (c) copyright 2004 Piotr Kupisiewicz <deli@rzepaknet.us>

Interfejs ten różni się nieco od readline z okienkami. Główną różnicą jest
fakt, że pierwsze okienko istnieje _zawsze_ i jest oknem stanu. Do niego
lecą informacje o pojawianiu się i znikaniu ludzi. Szczegóły dotyczące
obsługi klawiatury znajdują się w pliku README.

Zalecane ustawienia:

	set display_ack 3
	set display_sent 1
	set make_window 2

Pasek stanu zawiera zegar, informacje o własnym numerku (kolor określa
stan: czarny -- niedostępny, biały -- dostępny, szary -- zajęty, ciemnoszary
-- niewidoczny), numer aktualnego okna, informacje o aktywności w innych
oknach, nowej poczcie itd.

Dodano nowy format ,,statusbar''. podobnie jak i reszta obsługuje kolory,
ale nie ma dopełniania, mrugania itp. są za to konstrukcje warunkowe oraz
rozszerzone informacje:

	%{activity}	lista okien, w których się coś pojawiło
	%{debug}	jesteśmy w oknie debug
	%{descr}	opis (naszego) stanu
	%{mail}		ilość nowej poczty lub pusty jeśli nie ma
	%{more}		dopisano coś do okna, gdy jest przewinięte
	%{nick}		własny pseudonim {XXX niezaimplementowane}
	%{query}	rozmówca w aktualnym oknie
	%{query_descr}	opis stanu rozmówcy
	%{query_ip}	IP rozmówcy
	%{query_nickname}	tylko nickname rozmówcy z aktualnego okna
	%{session}	identyfikator lub alias sesji
	%{time}		aktualny czas w formatcie określonym przez statusbar_timestamp
	%{typing}	informacja o wprowadzaniu tekstu przez rozmówcę
	%{uin}		własny numer {XXX niezaimplementowane}
	%{url}		adres do strony ekg
	%{version}	wersja ekg
	%{window}	numer aktualnego okna

W oknie sesji IRC można dodatkowo uzyskać:
	%{irctopic}	temat kanału
	%{irctopicby}	kto ustawił temat
	%{ircmode}	tryb IRC


Konstrukcje warunkowe pozwalają dodawać do pasku stanu teksty tylko,
gdy spełniony zostanie określony warunek. Konstrukcje te wyglądają
następująco:

	%{?warunek tekst}	tekst wyświetlony przy spełnionym warunku
	%{?!warunek tekst}	tekst wyświetlony przy niespełnionym warunku

Warunkiem może być dostępność któregoś z wyżej wymienionych tekstów.
Jeśli na przykład w aktualnym oknie jest prowadzona rozmowa, warunek
%{?query ...} będzie spełniony. Jeśli nie skonfigurowaliśmy własnego
numeru, spełniony będzie warunek %{?!uin ...}. ponadto występują również:

	%{?away ...}		stan zajęty
	%{?avail ...}		stan dostępny
	%{?notavail ...}	stan niedostępny (niepołączony)
	%{?invisible ...}	stan niewidoczny
	%{?more ...}		dopisano coś do okna, gdy jest przewinięte
	%{?query_away ...}	rozmówca zajęty
	%{?query_avail ...}	rozmówca dostępny
	%{?query_notavail ...}	rozmówca niedostępny
	%{?query_invisible ...}	rozmówca niewidoczny

Warunki można zagnieżdżać, tzn. %{?query %{!?query_descr ...}} zostanie
wyświetlone, jeśli prowadzona jest rozmowa, ale rozmówca nie ma stanu
opisowego.

Dzięki temu można konstruować kosmiczne paski stanu, ale i tak domyślny
powinien wystarczyć każdemu. Jest możliwość rozszerzenia pasku stanu do
maksymalnie 5-ciu linii. Kolejne linie są opisane formatami ,,statusbar2'',
,,statusbar3'' itd. Jeśli występuje format ,,statusbar1'', ma on
pierwszeństwo przed ,,statusbar''.

Możliwe jest też włączenie nagłówka okna, tj. paska wyświetlanego u góry
ekranu, nad oknami. jest on opisany formatami ,,header'', ,,header1'',
,,header2'' itd., analogicznie do paska stanu. dostępne formaty są identyczne.

Lista kontaktów, która jest dostępna po prawej (zazwyczaj) stronie okna, 
poprzez włączenie ncurses:contacts. Kontakty, które aktualnie do nas piszą
są ustawiane jako mrugające (w zasadzie to element blink strutkury userlist_t).
Ui-ncurses obsługuję to poprzez odczytanie stosownego theme'a i wyświetlenie 
go w sposób prawidłowy.

$Id$
