blob: fe3a8eb25e03e523bd234661fbdf45222e6f2072 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/*
* Copyright (C) 2019 MATE Developers
* Copyright (C) 2018, 2019 zhuyaliang https://github.com/zhuyaliang/
* Copyright (C) 2010-2018 The GNOME Project
* Copyright (C) 2010 Intel, Inc
*
* Portions from Ubiquity, Copyright (C) 2009 Canonical Ltd.
* Written by Evan Dandrea <evand@ubuntu.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* Author: Thomas Wood <thomas.wood@intel.com>
*
*/
#ifndef __TIME_ZONE_H__
#define __TIME_ZONE_H__
#include "time-share.h"
#ifndef __sun
# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
#else
# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
#endif
typedef struct TzDB
{
GPtrArray *locations;
GHashTable *backward;
}TzDB;
typedef struct TzLocation
{
gchar *country;
gdouble latitude;
gdouble longitude;
gchar *zone;
gchar *comment;
gdouble dist; /* distance to clicked point for comparison */
}TzLocation;
typedef struct TzInfo
{
gchar *tzname_normal;
gchar *tzname_daylight;
glong utc_offset;
gint daylight;
}TzInfo;
TzDB *tz_load_db (void);
void SetupTimezoneDialog (TimeAdmin *ta);
void RunTimeZoneDialog (GtkButton *button,
gpointer data);
void TimeZoneDateBaseFree (TzDB *db);
GPtrArray *tz_get_locations (TzDB *db);
TzInfo *tz_info_from_location (TzLocation *loc);
glong tz_location_get_utc_offset (TzLocation *loc);
char *tz_info_get_clean_name (TzDB *tz_db,
const char *tz);
void tz_info_free (TzInfo *tzinfo);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TzDB, TimeZoneDateBaseFree)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TzInfo, tz_info_free)
#endif
|