Added a graphical image representing increase/decrease in price.
[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 #include <gdk-pixbuf/gdk-pixbuf.h>
13
14 /* Custom includes */
15 #include "stockgetter.h"
16 #include "lib-stock-settings.h"
17
18 G_BEGIN_DECLS
19
20 typedef struct _StockPlugin StockPlugin;
21 typedef struct _StockPluginClass StockPluginClass;
22
23 #define STOCK_TYPE_HOME_PLUGIN (stock_plugin_get_type ())
24
25 #define STOCK_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STOCK_TYPE_HOME_PLUGIN, StockPlugin))
26
27 #define STOCK_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STOCK_TYPE_HOME_PLUGIN, StockPluginClass))
28
29 #define STOCK_IS_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STOCK_TYPE_HOME_PLUGIN))
30
31 #define STOCK_IS_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STOCK_TYPE_HOME_PLUGIN))
32
33 #define STOCK_HOME_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STOCK_TYPE_HOME_PLUGIN, StockPluginClass))
34
35 typedef struct _StockPluginContext
36 {
37         /* Used for updating when stock price changes */
38         GtkWidget       *psLabel;
39         GtkWidget       *psArrow;
40         GtkWidget       *psEventBox;
41         GtkWidget       *psParent;
42
43         /* Arrow active */
44         gboolean bArrowActive;
45         
46         /* PixBuf of stock images */
47         GdkPixbuf *asStockImage[2];
48
49         /* Stock Getter Handle */
50         SGHandle hSG;
51
52         /* Timer func id */
53         guint nTimerID;
54         
55         /* Settings for the plugin (saved and loaded into config file) */
56         StockPluginSettings *psSettings;
57         
58 } StockPluginContext;
59
60 struct _StockPlugin
61 {
62     HDHomePluginItem     hitem;
63         StockPluginContext      *context;
64 };
65
66 struct _StockPluginClass
67 {
68     HDHomePluginItemClass parent_class;
69 };
70
71 GType stock_home_plugin_get_type(void);
72
73 G_END_DECLS
74
75 #define STOCK_IMAGE_INCREASE 0
76 #define STOCK_IMAGE_DECREASE 1
77
78 #define DEBUG
79
80 /* Debug print only */
81 #if defined(DEBUG)
82 #define DebugOut(X) {g_print("stockwidget: "); g_print X; g_print("\n");}
83 #else
84 #define DebugOut(X)
85 #endif/*defined(DEBUG)*/
86
87 #endif