ef8f87b3f67c9339c366ca1be965567bce3234e8
[stockwidget] / lib-stock-home-widget.h
1 /*
2  * Simple stock widget
3  * Jon Parr
4  */
5
6 #ifndef STOCK_PLUGIN_H
7 #define STOCK_PLUGIN_H
8
9 /* Standard includes */
10 #include <glib-object.h>
11 #include <libhildondesktop/libhildondesktop.h>
12
13 /* Custom includes */
14 #include "stockgetter.h"
15 #include "lib-stock-settings.h"
16
17 G_BEGIN_DECLS
18
19 typedef struct _StockPlugin StockPlugin;
20 typedef struct _StockPluginClass StockPluginClass;
21
22 #define STOCK_TYPE_HOME_PLUGIN (stock_home_plugin_get_type ())
23
24 #define STOCK_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
25                         STOCK_TYPE_HOME_PLUGIN, StockPlugin))
26
27 #define STOCK_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
28                         STOCK_TYPE_HOME_PLUGIN, StockPluginClass))
29
30 #define STOCK_IS_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
31                         STOCK_TYPE_HOME_PLUGIN))
32
33 #define STOCK_IS_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
34                         STOCK_TYPE_HOME_PLUGIN))
35
36 #define STOCK_HOME_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
37                         STOCK_TYPE_HOME_PLUGIN, StockPluginClass))
38
39 typedef struct _StockPluginContext
40 {
41         /* Used for updating when stock price changes */
42         HildonButton            *psButton;
43         GtkWidget                       *psLabel;
44         GtkWidget                       *psBox;
45
46         /* Stock Getter Handle */
47         SGHandle hSG;
48
49         /* Timer func id */
50         guint nTimerID;
51         
52         /* Settings for the plugin (saved and loaded into config file) */
53         StockPluginSettings *psSettings;
54         
55 } StockPluginContext;
56
57 struct _StockPlugin
58 {
59     HDHomePluginItem     hitem;
60         StockPluginContext      *context;
61 };
62
63 struct _StockPluginClass
64 {
65     HDHomePluginItemClass parent_class;
66 };
67
68 GType stock_home_plugin_get_type(void);
69 G_END_DECLS
70
71 #define DEBUG
72
73 /* Debug print only */
74 #if defined(DEBUG)
75 #define DebugOut(X) {g_print("stockwidget: "); g_print X; g_print("\n");}
76 #else
77 #define DebugOut(X)
78 #endif/*defined(DEBUG)*/
79
80 #endif