[ Pobierz całość w formacie PDF ]
.Uzyskanie takiej informacji mogłoby być dość kłopotliwe, gdyby nie funkcjekalendarza występujące w bibliotece glib, bowiem nie można w prosty sposób dodać liczby dni dodaty i porównać ją z jakąś inną datą, uwzględniając przy tym różne długości miesięcy i lataprzestępne.Wykorzystując bibliotekę glib, zmieniamy każdą datę na obiekt GDate (za pomocąsscanf), dodajemy liczbę dozwolonych dni wypożyczenia (za pomocą g_date_add_days) inastępnie porównujemy daty używając g_date_compare:gintR-09-07.doc Strona 65z 67date_overdue(gchar *date){gchar *date_today;gint day, month, year;gintoverdue;GDate *g_rent_date;GDate *g_date_today;dvd_today(&date_today);sscanf(date_today, "%04d%02d%02d", &year, &month, &day);g_date_today = g_date_new_dmy(day, month, year);sscanf(date, "%04d%02d%02d", &year, &month, &day);g_rent_date = g_date_new_dmy(day, month, year);g_date_add_days(g_rent_date, gnome_config_get_int_with_default("/dvdstore/general/days_rent=3", NULL));/* g_date_compare zwraca zero dla równych dat, wartość ujemną jeśli* g_rent_date jest mniejsze niż g_date_today i wartość dodatnią jeśli* g_rent_date jest większe niż g_date_today*/overdue = g_date_compare(g_rent_date, g_date_today);g_date_free(g_rent_date);g_date_free(g_date_today);return overdue;}do_about_dialogNa zakończenie mamy funkcję wyświetlającą okno informacyjne about.Zauważmy, że oknatego rodzaju tworzone przez Glade są oknami modalnymi:voiddo_about_dialog(){GtkWidget* about_dialog = NULL;R-09-07.doc Strona 66z 67 about_dialog = create_about_dialog ();gtk_widget_show (about_dialog);}Na tym kończy się przegląd kodu zródłowego dvdstore.PodsumowanieW tym rozdziale zapoznaliśmy się szczegółowo z Glade i zobaczyliśmy, jak tworzy sięprzykładową aplikację.Pokazano tu wiele właściwości Glade oraz możliwości szybkiegotworzenia skomplikowanych aplikacji na podstawie szkieletu wygenerowanego przez ten programi połączonego z prostymi, lecz wydajnymi bibliotekami GNOME/GTK+.Pokazaliśmy metodę lookup_widget służącą do pobierania wskaznika i zastosowaliśmylibglade do prostej przykładowej aplikacji.Następnie zapoznaliśmy się z budową interfejsugraficznego używanego przez aplikację obsługującą wypożyczalnię płyt DVD, w którymzastosowano funkcje GNOME/GTK+.R-09-07.doc Strona 67z 67 [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl odbijak.htw.pl
.Uzyskanie takiej informacji mogłoby być dość kłopotliwe, gdyby nie funkcjekalendarza występujące w bibliotece glib, bowiem nie można w prosty sposób dodać liczby dni dodaty i porównać ją z jakąś inną datą, uwzględniając przy tym różne długości miesięcy i lataprzestępne.Wykorzystując bibliotekę glib, zmieniamy każdą datę na obiekt GDate (za pomocąsscanf), dodajemy liczbę dozwolonych dni wypożyczenia (za pomocą g_date_add_days) inastępnie porównujemy daty używając g_date_compare:gintR-09-07.doc Strona 65z 67date_overdue(gchar *date){gchar *date_today;gint day, month, year;gintoverdue;GDate *g_rent_date;GDate *g_date_today;dvd_today(&date_today);sscanf(date_today, "%04d%02d%02d", &year, &month, &day);g_date_today = g_date_new_dmy(day, month, year);sscanf(date, "%04d%02d%02d", &year, &month, &day);g_rent_date = g_date_new_dmy(day, month, year);g_date_add_days(g_rent_date, gnome_config_get_int_with_default("/dvdstore/general/days_rent=3", NULL));/* g_date_compare zwraca zero dla równych dat, wartość ujemną jeśli* g_rent_date jest mniejsze niż g_date_today i wartość dodatnią jeśli* g_rent_date jest większe niż g_date_today*/overdue = g_date_compare(g_rent_date, g_date_today);g_date_free(g_rent_date);g_date_free(g_date_today);return overdue;}do_about_dialogNa zakończenie mamy funkcję wyświetlającą okno informacyjne about.Zauważmy, że oknatego rodzaju tworzone przez Glade są oknami modalnymi:voiddo_about_dialog(){GtkWidget* about_dialog = NULL;R-09-07.doc Strona 66z 67 about_dialog = create_about_dialog ();gtk_widget_show (about_dialog);}Na tym kończy się przegląd kodu zródłowego dvdstore.PodsumowanieW tym rozdziale zapoznaliśmy się szczegółowo z Glade i zobaczyliśmy, jak tworzy sięprzykładową aplikację.Pokazano tu wiele właściwości Glade oraz możliwości szybkiegotworzenia skomplikowanych aplikacji na podstawie szkieletu wygenerowanego przez ten programi połączonego z prostymi, lecz wydajnymi bibliotekami GNOME/GTK+.Pokazaliśmy metodę lookup_widget służącą do pobierania wskaznika i zastosowaliśmylibglade do prostej przykładowej aplikacji.Następnie zapoznaliśmy się z budową interfejsugraficznego używanego przez aplikację obsługującą wypożyczalnię płyt DVD, w którymzastosowano funkcje GNOME/GTK+.R-09-07.doc Strona 67z 67 [ Pobierz całość w formacie PDF ]