[ Pobierz całość w formacie PDF ]
.gint value = 42;gnome_config_set_int("/application/general/number", value);gnome_config_sync();Dla innych typów danych istniej¹ podobne funkcje:void gnome_config_set_string(const gchar *path, const gchar *value)void gnome_config_set_float(const gchar *path, gdouble value)void gnome_config_set_bool(const gchar *path, gboolean value)void gnome_config_set_int(const gchar *path, gint value)void gnome_config_set_translated_string(const gchar *path,const gchar *value)void gnome_config_set_vector(const gchar *path, gint argc,const gchar *const argv[])Istnieje te¿ równowa¿ny zestaw funkcji, z nazwami rozpoczynaj¹cymi siê odgnome_config_private_set, zapisuj¹cych dane w katalogu ~/.gnome_private.Tenkatalog powinien byæ dostêpny do odczytu tylko dla u¿ytkownika.Tak wiêcfunkcje gnome_config_private mog¹ byæ u¿yte do zapisu danych poufnych, takichjak np.has³a.Odczyt zachowanych danychTak dobrze siê sk³ada, ¿e dane s¹ zwrócone w postaci wartoœci zwracanychfunkcji gnome_config:gchar *gnome_config_get_string(const gchar *path)gdouble gnome_config_get_float(const gchar *path)gboolean gnome_config_get_bool(const gchar *path)gint gnome_config_get_int(const gchar *path)gchar *gnome_config_get_translated_string(const gchar *path)void gnome_config_set_vector(const gchar *path, gint *argcp, gchar ***argvp)£atwo wiêc odzyskaæ uprzednio zachowan¹ liczbê ca³kowit¹ int za pomoc¹:g_print("Wynikiem jest %d\n",gnome_config_get_int("/application/general/number"));co daje:Wynikiem jest 42Jeœli plik konfiguracyjny nie zosta³ utworzony, lub klucz jeszcze nie istnieje,to funkcje gnome_config_get zwróc¹ 0, NULL lub FALSE, zale¿nie od typu.Poprzezdo³¹czenie =default do œcie¿ki mo¿na dostarczyæ wartoœæ domyœln¹, która bêdziezwrócona, jeœli klucz nie zostanie znaleziony.To równie¿ wykluczy mo¿liwoœæzwrotu przez funkcjê gnome_config wskaŸnika NULL.gchar *msgmsg = gnome_config_get_string("/application/general/string=Default_Text");g_print("Zachowany lancuch to %s\n",msg);g_free(msg);gnome-config udostêpnia funkcje gnome_config_push_prefix orazgnome_config_pop_prefix, dziêki którym unika siê podawania pe³nej œcie¿ki przyka¿dym wywo³aniu.Poza tym, mened¿er sesji mo¿e przekazaæ prefiks (przedrostek)do odpowiedniego pliku, aby zachowaæ dane konfiguracyjne pomiêdzy sesjami — tobêdzie opisane w nastêpnym podrozdziale.gnome_config_push_prefix("/application/general");gnome_config_get_int("number=42");gnome_config_pop_prefix();Zarz¹dzanie sesj¹Zarz¹dzanie sesj¹ to proces zapisu stanu pulpitu pod koniec sesji i jegoodtworzenia na pocz¹tku nowej sesji.Stan pulpitu odnosi siê do aktualnie otwartych aplikacji, pozycji i rozmiaruich okien, otwartych dokumentów itd., jak równie¿ do komponentów pulpitu,takich jak np.pozycja panelu.Odpowiedzialnoœci¹ za zapewnienie poprawnego oddzia³ywania z mened¿erem sesjijest obarczony programista, który, kiedy o to poproszony, powinien zapisaæwystarczaj¹c¹ informacjê o stanie utworzonej przez siebie aplikacji tak, abyumo¿liwiæ innym jej ponowne uruchomienie (lub sklonowanie) w tym samym stanie.Mened¿er sesji GNOME, gnome-session, u¿ywa specyfikacji zarz¹dzania sesj¹ X dlazapewnienia kompatybilnoœci z innymi œrodowiskami pulpitowymi takimi jak CDE iKDE.Mened¿er gnome-session komunikuje siê z aplikacjami GNOME za pomoc¹nastêpuj¹cych sygna³Ã³w:"save_yourself" („zapisz siê”) emitowany, kiedy aplikacja musi zachowaæ swójstan 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¿erasesji nie s¹ sygna³ami GTK.Iloœæ informacji, jak¹ aplikacja powinna zachowaæ pomiêdzy sesjami bêdziezale¿eæ od typu aplikacji.Edytor tekstu, na przyk³ad, móg³by zapisaæ aktualnieotwarty dokument, pozycjê kursora, stos zdarzeñ cofnij-powtórz, itd., itd.,podczas gdy jakiœ ma³y program narzêdziowy móg³by wcale niczego nie zachowywaæ.W pewnych sytuacjach, takich jak np.program z baz¹ danych chronion¹ has³em,zapis stanu mo¿e mieæ nastêpstwa w aspekcie bezpieczeñstwa.W GNOME, u¿ytkownik musi zazwyczaj sam wyraŸnie za¿yczyæ sobie, aby sesjazosta³a zachowana, poprzez zaznaczenie przycisku prze³¹czania (ang.togglebutton) w oknie wyrejestrowania (ang.logout window).GnomeClientW celu po³¹czenia sygna³Ã³w z gnome-client, najpierw nale¿y przechwyciæ wskaŸnikdo obiektu nadrzêdnego klienta (ang.master client), a nastêpnie zwyczajnieprzy³¹czyæ funkcjê wywo³ania zwrotnego:GnomeClient *client = gnome_master_client ();gtk_signal_connect(GTK_OBJECT(client), "save_yourself",GTK_SIGNAL_FUNC(on_session_save), argv[0]);gtk_signal_connect(GTK_OBJECT(client), "die",GTK_SIGNAL_FUNC(on_session_die), NULL);W funkcji wywo³ania zwrotnego save_yourself aplikacja musi zachowaæ odpowiedni¹informacjê dla ponownego uruchomienia w nastêpnej sesji.S¹ dwie standardowemetody zachowania danych:Argumenty wiersza poleceñArgumenty potrzebne do uruchomienia aplikacji w ¿¹danym stanie mog¹ byæprzekazane do gnome-session , pod warunkiem, ¿e jest to niewielka iloœæinformacji, daj¹ca siê przedstawiæ poprzez argumenty wiersza poleceñ.Poni¿ej znajduje siê przyk³ad, gdzie dwa parametry, --username (nazwau¿ytkownika) i –-password (has³o), wraz z ich bie¿¹cymi wartoœciami, user ipasswd s¹ przekazane do gnome-session w tablicy argv.Przy rozpoczêciunastêpnej sesji, gnome-session uruchomi ponownie aplikacjê, przekazuj¹c–-username user –-password passwd jako argumenty.Aplikacja powinna wtedypodj¹æ odpowiednie dzia³anie: w tym przypadku zapewne otworzy interfejs GUIwraz z charakterystycznymi dla tej aplikacji nazw¹ u¿ytkownika i has³em,wprowadzonymi uprzednio.static ginton_session_save(GnomeClient *client, gint phase, GnomeSaveStyle save_style,gint is_shutdown, GnomeInteractStyle interact_style, gint is_fast,gpointer client_data){gchar **argv;guint argc;if ( !(argv = malloc( sizeof(char *) * 6 )) {perror("malloc() failed") ;exit(errno );}memset( argv, 0, (sizeof(char *) * 6 ) ) ;argv[0] = client_data;argc = 1;If (connected){argv[1] = "—-username";argv[2] = userargv[3] = "—-password";argv[4] = passwd;argc = 5;}gnome_client_set_clone_command(client, argc, argv);gnome_client_set_restart_command(client, argc, argv);return TRUE;}Interfejs programowania gnome-configU¿ycie argumentów wiersza poleceñ do przechowania informacji pomiêdzy sesjamima tylko praktyczne zastosowanie, kiedy iloœæ informacji jest niewielka.Przywiêkszej iloœci informacji wykorzystuje siê alternatywnie API gnome-config,prosz¹c gnome-session o dostarczenie odpowiedniego prefiksu.Odzyskanieinformacji przy ponownym uruchomieniu nie wymaga analizy sk³adniowej argumentówwiersza poleceñ.Spróbujmy wiêc [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rurakamil.xlx.pl
  •