Zaawansowane programowanie w systemie Linux 

[ Pobierz całość w formacie PDF ]

uruchomi si¹ w oknie terminala.
powinien być ustawiony na .
Plik w katalogu dla informuje o plikach zródłowych
i bibliotekach, które muszą być skompilowane i skonsolidowane.
Schemat procesu tworzenia i kompilacji drzewa kodu zródłowego zawiera rysunek
umieszczony na nast¹pnej stronie.
Zapis konfiguracji
Ważną cechą każdej aplikacji GUI jest jej zdolność do zapisu konfiguracji i ustawień
użytkownika. GNOME bardzo ułatwia przechowywanie i odzyskiwanie danych wszystkich
powszechnie używanych typów. Udost¹pnia w tym celu wszechstronny interfejs API
314 Zaawansowane programowanie w systemie Linux
w przestrzeni nazw . Dane konfiguracyjne sÄ… przechowywane jako pary
klucz-wartość w zwykÅ‚ym pliku tekstowym, który znajduje si¹ domyÅ›lnie w katalogu
.
Przechowywanie danych
Zapisywanie danych do pliku konfiguracyjnego wiąże si¹ z przekazaniem do odpowied-
niej funkcji ścieżki wraz z danymi, które mają być zachowane.
Zcieżka skÅ‚ada si¹ z trzech sekcji oddzielonych znakiem ukoÅ›nika :
nazwa pliku jest zgodnie z konwencjÄ… nazwÄ… aplikacji,
sekcja, dowolna etykieta opisujÄ…ca kategori¹ klucza,
i wreszcie sam klucz: .
Zatem, aby zapisać wartość całkowitą do ścieżki , należy
wywołać , a potem , by faktycznie zapisać
dane na dysku.
Dla innych typów danych istnieją podobne funkcje:

Rozdział 8. Programowanie graficznych interfejsów użytkownika (GUI) ... 315
Istnieje też równoważny zestaw funkcji z nazwami rozpoczynajÄ…cymi si¹ od
, zapisujÄ…cych dane w katalogu . Ten katalog
powinien być dost¹pny do odczytu tylko dla użytkownika. Tak wi¹c funkcje
mogą być użyte do zapisu danych poufnych, takich jak np. hasła.
Odczyt zachowanych danych
Zachowane dane możemy wygodnie odebrać w postaci wartości zwracanych funkcji
:
Aatwo wi¹c odzyskać uprzednio zachowanÄ… liczb¹ caÅ‚kowitÄ… za pomocÄ…:
co daje:
Jeśli plik konfiguracyjny nie został utworzony lub klucz jeszcze nie istnieje, to funkcje
zwrócą , lub , zależnie od typu. Dołączając do
Å›cieżki, można dostarczyć wartość domyÅ›lnÄ…, która b¹dzie zwrócona, jeÅ›li klucz nie zo-
stanie znaleziony. To również wykluczy możliwość zwrócenia przez funkcj¹
wskaznika .
Funkcja udost¹pnia funkcje oraz
, dzi¹ki którym unika si¹ podawania peÅ‚nej Å›cieżki przy każdym wywoÅ‚aniu.
Poza tym, menedżer sesji może przekazać prefiks (przedrostek) do odpowiedniego
pliku, aby zachować dane konfiguracyjne pomi¹dzy sesjami  opiszemy to w nast¹p-
nym podrozdziale.
ZarzÄ…dzanie sesjÄ…
ZarzÄ…dzanie sesjÄ… to proces zapisu stanu pulpitu pod koniec sesji i jego odtworzenie na
poczÄ…tku nowej sesji.
316 Zaawansowane programowanie w systemie Linux
Stan pulpitu odnosi siÄ™ do aktualnie otwartych aplikacji, pozycji i rozmiaru ich
okien, otwartych dokumentów itd., jak również do komponentów pulpitu, takich
jak np. pozycja panelu.
Odpowiedzialnością za zapewnienie poprawnej współpracy z menedżerem sesji obar-
czony jest programista, który, poproszony, powinien zapisać wystarczajÄ…cÄ… informacj¹
o stanie utworzonej przez siebie aplikacji tak, aby umożliwić innym jej ponowne uru-
chomienie (lub sklonowanie) w tym samym stanie.
Menedżer sesji GNOME, , używa specyfikacji zarządzania sesją X do
zapewnienia kompatybilności z innymi środowiskami pulpitowymi, takimi jak CDE i KDE.
Menedżer komunikuje si¹ z aplikacjami GNOME za pomocÄ… nast¹pujÄ…-
cych sygnałów:
"save_yourself" ( zapisz si¹ 2) emitowany, kiedy aplikacja musi zachować swój
stan bieżący,
"die" ( giÅ„ ) emitowany, kiedy aplikacja powinna natychmiast si¹ zakoÅ„czyć.
Choć GNOME generuje sygnały GTK w obrębie aplikacji, te, użyte przez
menedżera sesji, nie są sygnałami GTK.
Ilość informacji, jakÄ… aplikacja powinna zachować pomi¹dzy sesjami, b¹dzie zależeć od
typu aplikacji. Edytor tekstu np. mógÅ‚by zapisać aktualnie otwarty dokument, pozycj¹
kursora, stos zdarzeń cofnij-powtórz itd., itd., podczas gdy jakiś mały program na-
rz¹dziowy mógÅ‚by nic nie zachowywać. W pewnych sytuacjach, takich jak np. program
z bazą danych chronioną hasłem, zapis stanu może mieć konsekwencje dotyczące bezpie-
czeństwa.
W GNOME użytkownik musi zazwyczaj sam wyraznie zażyczyć sobie, aby sesja została
zachowana za pomocą zaznaczenia przycisku przełączania w oknie wylogowania.
GnomeClient
W celu połączenia sygnałów z najpierw należy przechwycić wskaznik do
obiektu klienta nadrz¹dnego, a nast¹pnie zwyczajnie przyÅ‚Ä…czyć funkcj¹ wywoÅ‚ania
zwrotnego.
2
 Save yourself w j¹zyku angielskim oznacza raczej  ratuj si¹  wi¹c pod koniec pracy
aplikacja Gnome albo dostaje od menedżera sesji szans¹ ratunku, bÄ…dz też jest przez niego
bezlitośnie likwidowana.

Rozdział 8. Programowanie graficznych interfejsów użytkownika (GUI) ... 317
W funkcji wywołania zwrotnego aplikacja musi zachować odpowiednią
informacj¹ do ponownego uruchomienia w nast¹pnej sesji. IstniejÄ… dwie standardowe
metody zachowania danych.
Argumenty wiersza poleceń
Argumenty potrzebne do uruchomienia aplikacji w żądanym stanie mogą być przekaza-
ne do , o ile jest to niewielka ilość informacji dajÄ…ca si¹ zamknąć w ra-
mach wiersza poleceń.
Poniżej znajduje si¹ przykÅ‚ad, w którym dwa parametry, (nazwa użytkowni-
ka) i (hasło) wraz z ich bieżącymi wartościami, i , są przekazane
do w tablicy . Przy rozpocz¹ciu nast¹pnej sesji uru-
chomi ponownie aplikacj¹, przekazujÄ…c jako argu-
menty. Aplikacja powinna wtedy podjąć odpowiednie działanie: w tym przypadku zapewne
otworzy interfejs GUI wraz z charakterystycznymi dla tej aplikacji nazwą użytkownika
i hasłem, wprowadzonymi uprzednio.


318 Zaawansowane programowanie w systemie Linux
API gnome-config
Użycie argumentów wiersza poleceÅ„ do przechowania informacji pomi¹dzy sesjami ma
wtedy tylko praktyczne zastosowanie, kiedy ilość informacji jest niewielka. Przy wi¹kszej
iloÅ›ci wykorzystuje si¹ alternatywnie API , nakazujÄ…c dostar- [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • showthemusic.xlx.pl
  • © 2009 Silni rzÄ…dzÄ…, sÅ‚abych rzuca siÄ™ na pożarcie, ci poÅ›redni gdzieÅ› tam przemykajÄ… niezauważeni jak pierd-cichacz. - Ceske - Sjezdovky .cz. Design downloaded from free website templates