<para>Możesz zgłaszać problemy z &kig; za pomocą wewnętrznego narzędzia do zgłaszania błędów (<menuchoice><guimenu>Pomoc</guimenu><guimenuitem>Raport o błędzie...</guimenuitem> </menuchoice>), lub po prostu skontaktować się ze mną pod adresem <email>toscano.pino@tiscali.it</email>. </para>
<para>Jako że &kig; obsługuje makra i konstrukcję zbiorów punktów, umożliwia on na zdefiniowanie dość zaawansowanych makr. Jeśli stworzyłeś/stworzyłaś interesujące makro, które mogłoby być użyteczne dla innych, proszę prześlij je na <email>toscano.pino@tiscali.it</email>, tak bym mógł je umieścić w dystrybucji (jeśli tak zrobisz, będzie ono dostępne pod licencją &kig; czyli pod <ulink url="http://www.gnu.org/licenses/licenses.html#GPL">GPL</ulink>, tak by inni mogli go swobodnie używać i adaptować do własnych potrzeb). </para>
<para>Wybierz <menuchoice><guimenu>Obiekty</guimenu> <guisubmenu>Punkty</guisubmenu> <guimenuitem>Punkt</guimenuitem></menuchoice> z paska menu, lub wciśnij odpowiedni przycisk na pasku narzędzi. Możesz następnie utworzyć punkt klikając na pożądanym miejscu w oknie.</para> <note><para>Właściwie dla konstruowania innych obiektów to działa w ten sam sposób: kliknij na właściwej pozycji paska menu, lub przycisku paska narzędzi i wybierz niezbędne elementy żeby utworzyć obiekt.</para></note>
<para>Ponieważ często tworzone są punkty, kliknięcie gdzieś na ekranie przy użyciu środkowego przycisku myszy stworzy dla Ciebie punkt, bez przechodzenia do menu, lub używania przycisku. </para>
<para>Możesz skonstruować punkty podczas budowania innych obiektów w tle, opcjonalnie zaznaczając je dla obiektu, który budujesz. Po więcej informacji zerknij do <xref linkend="constructing-other-objects"/>. </para>
<para>Konstruowanie obiektów innych niż punkty zwykle odbywa się przez wybranie odpowiedniej pozycji w menu <guimenu>Obiekty</guimenu>, lub kliknięciu na jednym z przycisków paska narzędzi. </para>
<para>Rozpocznie to konstruowanie wybranego typu obiektów. Wszystkie typy wymagają argumentów. Na przykład, jeśli wybrałeś tworzenie okręgu z podaniem środka i punktu, będziesz musiał podać dwa punkty: jeden dla środka, a drugi dla punktu na okręgu. </para>
<para>Argumenty te są również obiektami, można je zaznaczyć, po prostu klikając na nie. Kiedy przesuniesz kursor nad argumentem, którego chcesz użyć do skonstruowania obiektu, wstępny obrazek obiektu zostanie pokazany, więc zobaczysz, jak to będzie wyglądać. Dla obiektów wymagających punktów jako argumentów, możesz umieścić nowy punkt w miejscu aktualnego położenia kursora i wybrać go klikając środkowym przyciskiem myszy. </para>
<para>Zawsze możesz anulować tworzenie nowego obiektu naciskając przycisk &Esc;, albo klikając na przycisk <guiicon>Stop</guiicon> (czerwony ośmiokąt z <quote>X</quote>) na pasku narzędzi. </para>
<para>Proste kliknięcie na obiekcie powoduje jego zaznaczenie, przy jednoczesnym wyczyszczeniu bieżącego zaznaczenia. Jeśli chcesz wybrać równocześnie wiele obiektów, przytrzymaj klawisz &Ctrl; podczas klikania na obiekcie. </para>
<para>Klikając na puste miejsce na ekranie, a następnie przeciągając kursor myszy można zaznaczyć wszystkie obiekty znajdujące się wewnątrz utworzonego w ten sposób prostokąta. Spowoduje to wyczyszczenie aktualnego zaznaczenia. Jak w poprzednim przypadku, przytrzymanie wciśniętego klawisza &Ctrl; pozwoli zachować aktualne zaznaczenie. </para>
<para>Kiedy pod kursorem myszy znajduje się więcej, niż jeden obiekt, łatwo można wybrać, który obiekt zaznaczyć, lub dodać do aktualnego zaznaczenia. Kliknij środkowym przyciskiem myszy kiedy trzymasz wciśnięty klawisz &Shift;, żeby pojawiło się okienko z listą wszystkich obiektów znajdujących się pod kursorem myszy. Następnie możesz wybrać obiekt, którego potrzebujesz. Jak poprzednio wspomniano, klawisz &Ctrl; wpłynie na zaznaczenie. </para>
<para>Aby przesuwać obiekty, musisz je wpierw <link linkend="selecting-objects">zaznaczyć</link>. </para>
<para>Jeśli obiekty, które chcesz przesunąć, są zaznaczone, możesz rozpocząć ich przemieszczanie klikając lewym przyciskiem myszy i przeciągając dowolny z nich. Po skończeniu po prostu zwolnij środkowy przycisk myszy. </para>
<note><para>Dla niektórych typów obiektów (zwłaszcza zdefiniowanych przez skomplikowane zbiory punktów) ich przemieszczanie może odbywać się wolno na starszym sprzęcie. Nie jest to najszczęśliwsze, ale nieuniknione, biorąc pod uwagę wymaganą ilość obliczeń. </para></note> <note><para>Jeżeli klikniesz prawym przyciskiem myszy na jednym z zaznaczonych obiektów i wybierzesz <guimenuitem>Przesuń</guimenuitem>, poruszanie myszki spowoduje przesunięcie obiektu. Kiedy obiekt znajdzie się już w pożądanym miejscu, ponowne kliknięcie środkowym przyciskiem myszy zatrzyma przemieszczanie obiektu.</para></note>
<para>Kliknij <mousebutton>prawym</mousebutton> klawiszem myszy na jednym z obiektów i wybierz <guimenuitem>Usuń</guimenuitem> w <link linkend="objects-context-menus">menu kontekstowym</link>, które się pojawia. </para>
<para>W &kig; obiekty mogą być ukryte. Odbywa się to przez wybranie obiektów, kliknięcie prawym przyciskiem myszy na jednym z nich, a następnie wybranie <guimenuitem>Ukryj</guimenuitem> z <link linkend="objects-context-menus">menu kontekstowego</link>, które się pojawi. </para>
<para>Aby odkryć obiekty, użyj <menuchoice><guimenu>Edycja</guimenu><guimenuitem>Odkryj wszystkie</guimenuitem></menuchoice>. Odkryje to wszystkie obecnie ukryte obiekty. </para>
<para>Nocny widok to szczególny sposób pracy z ukrytymi obiektami. Kiedy musisz przesunąć, lub zmienić coś w jednym (lub większej liczbie) z obiektów, ale bez odkrywania wszystkich ukrytych obiektów, tryb nocnego widoku będzie dobrodziejstwem dla Ciebie. </para>
<para>W skrócie, pozwala on zobaczyć wszystkie ukryte obiekty, jak gdyby były one widoczne, więc możesz nimi manipulować w zwykły sposób. W trybie nocnego widoku, ukryte obiekty będą widoczne w szarym kolorze. </para>
<para>Aby przełączyć tryb nocnego widoku, użyj <menuchoice><guimenu>Ustawienia</guimenu><guimenuitem>Załóż okulary podczerwone</guimenuitem></menuchoice>. </para>
<para>W &kig; możesz wycofać prawie każdą zmianę, której dokonałeś w dokumencie. Użyj po prostu przycisków <guiicon>cofinij</guiicon>/<guiicon>przywróć</guiicon> na pasku narzędzi, lub odpowiednich skrótów. </para>
<para>&kig; ma również tryb pełnoekranowy. Aby go użyć, kliknij odpowiedni przycisk na pasku narzędziowym, lub wybierz <menuchoice><guimenu>Ustawienia</guimenu><guimenuitem>Tryb pełnoekranowy</guimenuitem></menuchoice>. </para>
<para>Aby opuścić tryb pełnoekranowy, kliknij prawym przyciskiem myszy na ekranie w miejscu, gdzie nie występują obiekty i wybierz <guimenuitem>Zakończ tryb pełnoekranowy</guimenuitem>, lub naciśnij klawisz &Esc;. </para>
<para>&kig; obsługuje całkiem sporą liczbę typów obiektów. Zauważ, że nie wszystkie dostępne obiekty są pokazane na paskach narzędziowych: niektóre z nich mogą być utworzone wyłącznie przy pomocy menu <guimenu>Obiekty</guimenu> w pasku menu. Oczywiście, jak we wszystkich programach &kde;, elementy składowe pasków narzędzi podlegają konfiguracji. Wypróbuj opcję <menuchoice><guimenu>Ustawienia</guimenu><guimenuitem>Konfiguracja pasków narzędzi...</guimenuitem></menuchoice> jeśli chcesz to osiągnąć. </para>
<para>&kig; udostępnia menu kontekstowe dla swoich obiektów. Spróbuj kliknąć prawym przyciskiem myszy na obiekcie żeby zobaczyć pojawiające się menu kontekstowe. Istnieje wiele opcji: do konstruowania innych obiektów, ustawienia kolorów, a także ukrywania, przesuwania i usuwania obiektów. Niektóre z obiektów posiadają swoje własne opcje (⪚ możesz przedefiniować pewne punkty ograniczając je do linii, jeśli nie były poprzednio, &etc;). Działanie tych opcji powinno być bardzo proste do zrozumienia. </para>
<para>Kliknięcie <mousebutton>prawym</mousebutton> klawiszem myszy na dokumencie (&ie; nie na obiekcie) wyświetli okno, które można użyć do rozpoczęcia tworzenia nowego obiektu, zmiany używanego układu współrzędnych, pokazania ukrytych obiektów, a nawet przybliżania i oddalania widoku dokumentu. </para>
<para>Jedną z bardziej zaawansowanych cech &kig; jest jego wsparcie makr. Umożliwia to zdefiniowanie nowych typów obiektów z już zdefiniowanych typów. </para>
<para>Na przykład: Zakładamy, że chcesz stworzyć makro do tworzenia okręgu z trzech punktów znajdujących się na nim. Wprowadzisz trzy punkty, skonstruujesz linie prostopadłe i punkty przecięcia aż do znalezienia środka. Teraz możesz użyć istniejącej komendy <quote>Utwórz okrąg na podstawie środka i punktu</quote> (używając jednego z tych trzech punktów jako punktu dla polecenia). Następujący obrazek powinien to nieco rozjaśnić: </para>
<para>Następne w kolejce jest definiowanie makra. Wybierz <guimenuitem>Nowe makro</guimenuitem> z menu <guimenu>Typ</guimenu>, lub kliknij na przycisku z paska narzędzi. Pojawi się Asystent, który poprosi o zaznaczenie podanych obiektów. W naszym przykładzie są to te trzy punkty. Zaznacz je (kliknij, żeby zaznaczyć, kliknij ponownie, żeby usunąć zaznaczenie), a potem kliknij przycisk <guibutton>Dalej</guibutton>, żeby kontynuować. Na koniec, zaznacz ostatnie obiekty (w naszym przykładzie będzie to okrąg). </para>
<para>Po zakończeniu poprzednich kroków, kliknij przycisk <guibutton>Dalej</guibutton>. Wprowadź nazwę i opcjonalny opis dla nowego typu, po czym kliknij przycisk <guibutton>Zakończ</guibutton>. Tworzenie typu makro zostało zakończony. </para>
<para>Aby użyć nowego typu makra, kliknij na jego przycisk na pasku narzędzi, lub użyj menu <guimenu>Obiekty</guimenu>. Konstruowanie obiektu makro odbywa się dokładnie tak, jak każdego innego obiektu. </para>
<para>Jak można było zobaczyć w poprzednim rozdziale, &kig; pozwala na tworzenie własnych obiektów. &kig; zapewnia również, że po utworzeniu obiektu, zostaje on zapisany przy wyjściu i wczytany na starcie. Nie musisz ręcznie zapisywać, ani wczytywać definicji makr. Jednakże &kig; udostępnia znaczniej więcej możliwości makr. Po wybraniu z menu <menuchoice><guimenu>Typy</guimenu><guimenuitem>Zarządzaj typami...</guimenuitem></menuchoice>, zobaczysz okno, w którym możesz edytować swoje typy. Pozwala to modyfikować istniejące typy, usuwać nieużywane typy, eksportować je do pliku, a także wczytywać z innego pliku. </para>
<para>&kig; pozwala dodawać etykiety tekstowe do konstrukcji. Jest to bardzo użyteczne przy dodawaniu nazw, wyjaśnień, lub innego tekstu do obiektów. &kig; może również wyświetlać zmienne informacje na temat obiektów (znane również jako <quote>właściwości</quote>). </para>
<para>Aby rozpocząć tworzenie etykiety tekstowej, po prostu wciśnij przycisk <guibutton>Etykieta tekstowa</guibutton> na pasku narzędzi &kig;, lub wybierz na pasku menu <menuchoice><guimenu>Obiekty</guimenu><guisubmenu>Inne </guisubmenu><guimenuitem>Etykieta tekstowa</guimenuitem> </menuchoice>. </para>
<para>Następnie, musisz wybrać położenie dla etykiety. Możesz wybrać albo losowe położenie, albo <quote>dołączenie</quote> etykiety do obiektu. </para>
<para>Po wybraniu umiejscowienia etykiety, pojawia się okno etykiety tekstowej. Tutaj można w wpisać tekst, który ma się pojawiać w etykiecie, po czym kliknąć <guibutton>Zakończ</guibutton>. Powinieneś już widzieć etykietę w dokumencie. </para>
<para>Poprzedni przykład był dość prosty, do tego ograniczony do tekstu. Jednak istnieje również wsparcie dla pokazywania zmiennych informacji na temat obiektu w etykiecie (⪚ można stworzyć etykietę z tekstem <quote>ten segment jest długi na %1 jednostek.</quote>, gdzie <token>%1</token> będzie dynamicznie zastąpiony przez długość określonego segmentu). </para>
<para>Aby tego dokonać, wprowadź tekst z pewną liczbą miejsc do zastąpienia (<token>%1</token>, <token>%2</token> &etc;) w nim. Następnie wciśnij przycisk <guibutton>Dalej</guibutton>. Jeśli później będziesz chciał zmienić tekst, lub zmienne, będziesz mógł się cofnąć przy użyciu przycisku <guibutton>Wstecz</guibutton>. </para>
<para>Asystent pokaże tekst, który wpisałeś, ze wszystkimi miejscami do zastąpienia zamienionymi przez coś w stylu <guilabel>argument 1</guilabel>. Wybranie właściwości powiązanej z pewnym argumentem odbywa się przez kliknięcie na ten argument. Następnie trzeba kliknąć na obiekt, którego potrzebujesz i który posiada daną właściwość, żeby potem wybrać tą właściwość z menu, które się pojawi. Na przykład w powyższym przypadku, trzeba kliknąć na <guilabel>argument 1</guilabel>, kliknąć na właściwym segmencie w głównym oknie &kig; i wybrać właściwość <guilabel>Długość</guilabel>. Później można wypełnić resztę zmiennych pozycji, lub wybrać kolejną właściwość dla jednej ze zmiennych, jeśli chce się ją zmienić. Kiedy jest się gotowym, należy kliknąć na przycisk <guibutton>Zakończ</guibutton>, który dokończy proces tworzenia etykiety tekstowej. </para>
<para>&kig; obsługuje użycie zbiorów punktów. Miejsce geometryczne jest zdefiniowane matematycznie jako zbiór punktów, lub linii, które spełniają, lub są określone przez pewne warunki, jak <quote>zbiór punktów jednakowoodległych od pewnego punktu jest okręgiem</quote>. Spójrzmy na przykład jak można użyć miejsca geometryczne w &kig;: </para>
<para>Rozważ następującą konstrukcję geometryczną: Rysujemy okrąg, a następnie punkt, który może się poruszać tylko po jego obwodzie (utwórz ten punkt umieszczając kursor na okręgu, a następnie klikając środkowym przyciskiem myszy. Jeśli później spróbujesz przesunąć wynikowy punkt, zobaczysz, że nie możesz przemieścić go w miejsce poza okręgiem). Następnie rysujemy odcinek pomiędzy tym punktem, a środkiem okręgu i środek tego odcinka. </para>
<para>Teraz, kiedy przesuniesz punkt, który został ograniczony do okręgu, zobaczysz, że drugi punkt porusza się wraz z nim. Gdybyś przytrzymał pióro na drugim punkcie i przesunął pierwszy punkt wzdłuż całego okręgu, nowy okrąg, o połowę mniejszy od poprzedniego zostałby narysowany. Ścieżka, którą przemieszcza się drugi punkt, podczas gdy pierwszy porusza się wokół okręgu, jest jego zbiorem punktów. </para>
<para>Właściwie konstruowanie zbioru punktów jest bardzo proste. Kliknij na przycisk <guiicon>zbiór punktów</guiicon> na pasku narzędzi, lub wybierz <menuchoice><guimenu>Obiekty</guimenu> <guisubmenu>Inne</guisubmenu> <guimenuitem>Zbiór punktów</guimenuitem> </menuchoice> z paska menu. Następnie wybierz ograniczony punkt jako ruchomy punkt (tekst <guilabel>Ruchomy punkt</guilabel> pojawi się kiedy przesuniesz nad niego myszkę), a ten drugi jako zależny punkt. Zbiór punktów zależnego punktu zostanie narysowany. </para>
<para>&kig; pozwala na tworzenie własnych typów w języku skryptowym Python. Jest to bardzo zaawansowana cecha, a z tego, co wiem, tylko jeden inny program geometrii interaktywnej posiada podobną funkcjonalność (program <acronym>GNOME</acronym> &drgeo;). </para>
<para>Skrypty Pythona w &kig; generalnie pozwalają na tworzenie własnych obiektów z obiektów-rodziców. Na przykład, jeśli jesteś nauczycielem matematyki i masz ekstrawagancki sposób wyliczania interesującego punktu na stożku, to zamiast babrać się w makrach i złożonych konstrukcjach, możesz zapisać w Pythonie jak ten punkt ma być wyliczany, a &kig; Ci go pokaże. </para>
<para>Zakładając, że nie miałeś pojęcia o wbudowanym w &kig; typie <quote>Środkowy punkt</quote>, a chciałeś pokazać punkt leżący pośrodku dwóch innych punktów. Kliknąłbyś wtedy na przycisku <guibutton>Skrypt Pythona</guibutton> na pasku narzędzi, lub wybrał z menu <menuchoice><guimenu>Obiekty</guimenu><guisubmenu>Inne</guisubmenu> <guimenuitem>Skrypt Pythona</guimenuitem></menuchoice>. Wtedy zostałby Ci przedstawiony asystent, który poprowadziłby Cię dalej. </para>
<para>Pierwszą rzeczą, jaką musisz zrobić, jest wybranie argumentów dla obiektu skryptowego. W naszym przykładzie oznacza to dwa punkty, dla których chcemy pokazać środkowy punkt. Wybierz je w głównym oknie &kig; i kliknij na <guibutton>Dalej</guibutton>. </para>
<para>Zostaje Ci zaprezentowane okienko edycji tekstu, gdzie możesz wpisać kod dla Twojego obiektu skryptowego. Szablon kodu i kilka komentarzy znajdują się już na miejscu. Ważne jest upewnienie się, że Twój kod jest poprawnym kodem Pythona. Ludzie obeznani z Pythonem zwrócą uwagę, że tak właściwie to definiujemy funkcję Pythona o nazwie <function>calc</function>. Dlatego niezbędne jest dostosowanie się do reguł Pythona definiowania funkcji. Na przykład, każda linia funkcji powinna rozpoczynać się <keysym>Tab</keysym>. Pierwsza linia, która nie rozpoczyna się <keysym>tab</keysym> określa koniec definicji funkcji. </para>
<para>Funkcja Pythona, którą chcemy zdefiniować, nazywa się <function>calc</function> i w naszym przypadku akceptuje dwa argumenty. Są to obiekty wybrane jako argumenty w poprzednim ekranie. Potrzeba takiej liczby argumentów, jaką tam wybrano. Ich nazwy to <parameter>arg1</parameter> i <parameter>arg2</parameter>, ale można zmienić ich nazwy na coś bardziej znaczącego. </para>
<para>W ciele funkcji można dokonywać wszelkiego rodzaju obliczeń, które uzna się za niezbędne, przy użyciu w razie potrzeby dwóch argumentów. Powinno się zwracać obiekt, który chce się zdefiniować. W naszym przypadku, jest to obiekt <classname>Point</classname> (Punkt). Dwa argumenty również są obiektami <classname>Point</classname>, a my możemy użyć funkcji <function>Point.coordinate()</function> do określenia współrzędnych dwóch podanych punktów. </para>
<para>W naszym przykładzie niezbędne obliczenia są bardzo proste, po prostu dodajemy dwa zbiory współrzędnych i dzielimy przez dwa. Następnie tworzymy nowy punkt przy użyciu wyniku. Kod Pythona to:</para>
<para>Jeżeli teraz klikniesz na przycisk <guibutton>Zakończ</guibutton>, nowy obiekt pojawi się w dokumencie &kig;. Kiedy przesuniesz jeden z punktów, nowoutworzony obiekt przesunie się wraz z nim. Znacznie potężniejsze obiekty mogą zostać zbudowane w ten sposób. Zachęcamy do wypróbowania. </para>
<para>Wszystkie obiekty w &kig; mogą być użyte w kodzie Pythona. Jak widzieliśmy powyżej, punkty są obiektami klasy <classname>Point</classname> i można użyć ⪚ metody <function>Point.coordinate()</function>. Można również zwracać wszystkie rodzaje obiektów, nie tylko <classname>Point</classname>. Znacznie więcej klas i metod jest dostępnych w kodzie Pythona &kig;, a bardziej kompletna lista znajduje się na <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html">stronie &kig;</ulink>. </para>
<para>&kig; to program z otwartym kodem źródłowym. Oznacza to, że możesz swobodnie go używać, a także zmieniać w sposób, jaki Ci się podoba. Rozprowadzanie &kig; jest obarczone kilkoma restrykcjami, generalnie każdy powinien posiadać te same prawa do używania &kig;, włączając Twoje modyfikacje, jak Ty czy ja. </para>
<para>Programy wolnego oprogramowania są tworzone w bardzo otwartym duchu, a ich autorzy zwykle bardzo szybko reagują na opinie użytkowników. Dlatego, jeśli masz jakieś pytania, uwagi, lub też cokolwiek na temat &kig;, daj o tym znać autorowi na adres <email>toscano.pino@tiscali.it</email>. </para>
<para>&kig; jest programem KPart, co znaczy, że możesz włączyć go do innego oprogramowania &kde;. Jeżeli otwierasz plik <literal role="extension">.kig</literal> w &konqueror-miejscownik;, może być on otwarty bezpośrednio w oknie &konqueror-dopelniacz; bez potrzeby uruchamiania zewnętrznego programu. </para>
<para>Praca z &kig; powinna być bardzo prosta. Konstruowanie obiektów jest łatwe i interaktywne, z wyświetlaniem wstępnych wyników, &etc;. Przesuwanie, zaznaczanie i budowanie działa tak, jak można by tego oczekiwać. Wsparcie dla cofania powinno również być bardzo intuicyjne. </para>
<para>&kig; wspiera definiowanie makr w bardzo prosty sposób. Obiekty te są przedstawiane użytkownikowi jak normalne obiekty. Są zapisywane przy wychodzeniu i wczytywane przy starcie, więc nie traci się ich przy kończeniu pracy. Można zarządzać tymi obiektami w oknie dialogowym <guilabel>Zarządzaj typami</guilabel> (zobacz <xref linkend="working-with-types"/>). Można eksportować je do plików, importować je z plików, edytować i je usuwać. </para>
<para>&kig; umożliwia eksport pliku &kig; do niektórych interesujących formatów, jak obrazki, pliki <application>XFig</application> i <application>LaTeX</application>, obrazki wektorowe <acronym>SVG</acronym>. Jest to użyteczne, bo jeszcze nie wszystkie programy wspierają format plików &kig;. </para>
<para>&kig; stara się być kompatybilny ze swoimi konkurentami. Dlatego obsługuje format &kgeo;, &kseg; i częściowo &drgeo; oraz &cabri;. Co więcej, planowana jest obsługa innych formatów. </para>
<para>&kig; jest <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware">Wolnym Oprogramowaniem</ulink>. Oznacza to, że kod źródłowy jest wolnodostępny na Internecie, a każdy może go używać, czytać, modyfikować i rozpowszechniać. Pracę nad nim traktuję jako moje hobby i nauczyłem się już sporo na temat programowania, C++, &kde;/&Qt;, matematyki, współpracy w oprogramowaniu i projektów z otwartym kodem źródłowym w jej trakcie. </para>
<para>W tym rozdziale chciałbym wskazać Ci (użytkownikowi) prawa, które daje Ci licencja &kig;. Jak z całym wolnym oprogramowaniem, możesz (a nawet jesteś zachęcany) poprawiać błędy znalezione podczas jego użytkowania, dodawać brakującą funkcjonalność, rozpowszechniać zmieniony program, a także wysyłać mi zmiany na adres <email>toscano.pino@tiscali.it</email>, żebym mógł włączać je w kolejnych wersjach, żeby i inni czerpali z tego satysfakcję. Zwróć uwagę, że ja osobiście nie mam jakiegokolwiek interesu finansowego w tym projekcie. </para>
<para>Jeśli nie jesteś pewien swoich praw dotyczących użytkowania tego oprogramowania, lub też prawa innych osób do używania jakichkolwiek zmian, których w nim dokonałeś, &etc;, przeczytaj licencję. Możesz ją znaleźć w pliku <filename>COPYING</filename> w drzewie plików &kig;, lub zakładce <guilabel>licencja</guilabel> w oknie dialogowym <guilabel>O Kig</guilabel>. </para>
<para>Wszyscy współpracownicy są mile widziani. Jeżeli nie lubisz ikon, albo myślisz, że podręcznik użytkownika wymaga aktualizacji, albo posiadasz to cudowne makro, którym chciałbyś się podzielić ze światem, nie wahaj się i skontaktuj ze mną. Zwróć uwagę, że Twój wkład zostanie rozpowszechniony na warunkach &GNU; <acronym>GPL</acronym>; możesz znaleźć warunki tej licencji w pliku <filename>COPYING</filename> w drzewie &kig;, a także w rozdziale <link linkend="credits">Podziękowania i licencja</link> w tym podręczniku. </para>