diff options
author | Michael Terry <mike@mterry.name> | 2011-02-22 11:20:34 -0500 |
---|---|---|
committer | Michael Terry <mike@mterry.name> | 2011-02-22 11:20:34 -0500 |
commit | 45b1165f77cab0ac8dc40ce7d605e32c697fb22d (patch) | |
tree | b803709c23f3e50dbca5b57ebb3a4215b0b45d58 /libmap/test-timezone.c | |
parent | 8754d980f2992a2596465d46b5d18d35846060fa (diff) | |
download | ayatana-indicator-datetime-45b1165f77cab0ac8dc40ce7d605e32c697fb22d.tar.gz ayatana-indicator-datetime-45b1165f77cab0ac8dc40ce7d605e32c697fb22d.tar.bz2 ayatana-indicator-datetime-45b1165f77cab0ac8dc40ce7d605e32c697fb22d.zip |
add initial timezone map implementation, borrowed from gnome-control-center
Diffstat (limited to 'libmap/test-timezone.c')
-rw-r--r-- | libmap/test-timezone.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/libmap/test-timezone.c b/libmap/test-timezone.c new file mode 100644 index 0000000..d667c42 --- /dev/null +++ b/libmap/test-timezone.c @@ -0,0 +1,55 @@ +#include <config.h> +#include <locale.h> + +#include "tz.h" + +int main (int argc, char **argv) +{ + TzDB *db; + GPtrArray *locs; + guint i; + char *pixmap_dir; + int retval = 0; + + setlocale (LC_ALL, ""); + + if (argc == 2) { + pixmap_dir = g_strdup (argv[1]); + } else if (argc == 1) { + pixmap_dir = g_strdup ("data/"); + } else { + g_message ("Usage: %s [PIXMAP DIRECTORY]", argv[0]); + return 1; + } + + db = tz_load_db (); + locs = tz_get_locations (db); + for (i = 0; i < locs->len ; i++) { + TzLocation *loc = locs->pdata[i]; + TzInfo *info; + char *filename, *path; + gdouble selected_offset; + char buf[16]; + + info = tz_info_from_location (loc); + selected_offset = tz_location_get_utc_offset (loc) + / (60.0*60.0) + ((info->daylight) ? -1.0 : 0.0); + + filename = g_strdup_printf ("timezone_%s.png", + g_ascii_formatd (buf, sizeof (buf), + "%g", selected_offset)); + path = g_build_filename (pixmap_dir, filename, NULL); + + if (g_file_test (path, G_FILE_TEST_IS_REGULAR) == FALSE) { + g_message ("File '%s' missing for zone '%s'", filename, loc->zone); + retval = 1; + } + + g_free (filename); + g_free (path); + } + tz_db_free (db); + g_free (pixmap_dir); + + return retval; +} |