]> Pileus Git - aweather/blob - src/plugins/alert.h
Various threading fixes
[aweather] / src / plugins / alert.h
1 /*
2  * Copyright (C) 2010-2011 Andy Spencer <andy753421@gmail.com>
3  * 
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #ifndef __ALERT_H__
19 #define __ALERT_H__
20
21 #include <glib-object.h>
22 #include <grits.h>
23
24 #define GRITS_TYPE_PLUGIN_ALERT            (grits_plugin_alert_get_type ())
25 #define GRITS_PLUGIN_ALERT(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),   GRITS_TYPE_PLUGIN_ALERT, GritsPluginAlert))
26 #define GRITS_IS_PLUGIN_ALERT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),   GRITS_TYPE_PLUGIN_ALERT))
27 #define GRITS_PLUGIN_ALERT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST   ((klass), GRITS_TYPE_PLUGIN_ALERT, GritsPluginAlertClass))
28 #define GRITS_IS_PLUGIN_ALERT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE   ((klass), GRITS_TYPE_PLUGIN_ALERT))
29 #define GRITS_PLUGIN_ALERT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),   GRITS_TYPE_PLUGIN_ALERT, GritsPluginAlertClass))
30
31 typedef struct _GritsPluginAlert      GritsPluginAlert;
32 typedef struct _GritsPluginAlertClass GritsPluginAlertClass;
33
34 struct _GritsPluginAlert {
35         GObject parent_instance;
36
37         /* instance members */
38         GritsViewer *viewer;
39         GritsPrefs  *prefs;
40         GtkWidget   *config;
41         GtkWidget   *details;
42
43         GritsHttp   *http;
44         guint        refresh_id;
45         guint        time_changed_id;
46         guint        update_source;
47         GThreadPool *threads;
48
49         GList       *msgs;
50         time_t       updated;
51         GTree       *counties;
52         GList       *states;
53 };
54
55 struct _GritsPluginAlertClass {
56         GObjectClass parent_class;
57 };
58
59 GType grits_plugin_alert_get_type();
60
61 /* Methods */
62 GritsPluginAlert *grits_plugin_alert_new(GritsViewer *viewer, GritsPrefs *prefs);
63
64 #endif
65