00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026 #ifndef __INFO_ITEM_H__
00027 #define __INFO_ITEM_H__
00028
00029 #define INFOITEM_BORDER_TOP 10
00030 #define INFOITEM_BORDER_BOTTOM 10
00031 #define INFOITEM_BORDER_LEFT 13
00032 #define INFOITEM_BORDER_RIGHT 13
00033
00034 #define INFOITEM_REQ_WIDTH 666
00035 #define INFOITEM_REQ_HEIGHT 115
00036
00037 #define INFOITEM_BUTTON_WIDTH 100
00038 #define INFOITEM_BUTTON_HEIGHT 27
00039
00040
00041 #define INFOITEM_HBOX_SPACING 13
00042
00043 #define INFOITEM_ICON_IMG_WIDTH 75
00044 #define INFOITEM_ICON_IMG_HEIGHT 102
00045
00046 #define INFOITEM_TEXT_WIDTH (INFOITEM_REQ_WIDTH \
00047 - INFOITEM_BORDER_LEFT \
00048 - INFOITEM_ICON_IMG_WIDTH \
00049 - INFOITEM_HBOX_SPACING \
00050 - 1 \
00051 - INFOITEM_HBOX_SPACING \
00052 - INFOITEM_BUTTON_WIDTH \
00053 - INFOITEM_BORDER_RIGHT )
00054 #define INFOITEM_TEXT_HEIGHT (INFOITEM_REQ_HEIGHT \
00055 - INFOITEM_BORDER_TOP \
00056 - INFOITEM_BORDER_BOTTOM)
00057
00058
00059 #include <gtk/gtk.h>
00060 #include <gdk/gdk.h>
00061
00062 #define GTK_INFOITEM_TYPE (gtk_infoitem_get_type())
00063 #define GTK_INFOITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
00064 GTK_INFOITEM_TYPE, GtkInfoItem))
00065 #define GTK_INFOITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
00066 GTK_INFOITEM_TYPE, GtkInfoItemClass))
00067 #define IS_GTK_INFOITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
00068 GTK_INFOITEM_TYPE))
00069 #define IS_GTK_INFOITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
00070 GTK_INFOITEM_TYPE))
00071
00072 typedef struct _GtkInfoItem GtkInfoItem;
00073 typedef struct _GtkInfoItemClass GtkInfoItemClass;
00074
00075 typedef void on_infoitem_buttonclicked_t(GtkWidget* item,
00076 const gboolean button_active);
00077
00078 struct _GtkInfoItem
00079 {
00080 GtkEventBox eventbox;
00081 GtkWidget* icon;
00082 GtkWidget* label;
00083 GtkWidget* button;
00084 on_infoitem_buttonclicked_t* callback_on_buttonclicked;
00085 };
00086
00087 struct _GtkInfoItemClass
00088 {
00089 GtkEventBoxClass parent_class;
00090 };
00091
00092 typedef enum
00093 {
00094 iconInfo_e = 0,
00095 iconOk_e,
00096 iconFailed_e,
00097 }infoItemIcon_t;
00098
00099 #ifdef __cplusplus
00100 extern "C" {
00101 #endif
00102
00103 GType gtk_infoitem_get_type (void);
00104
00105
00106
00107 GtkWidget* gtk_infoitem_new(gboolean with_button);
00108
00109
00110 void gtk_infoitem_set_icon(GtkInfoItem *item, infoItemIcon_t icon);
00111 void gtk_infoitem_set_text(GtkInfoItem *item, const gchar* text);
00112 void gtk_infoitem_set_buttontext(GtkInfoItem* item, const gchar* text);
00113 void gtk_infoitem_set_buttonstate(GtkInfoItem* item,
00114 const gboolean active);
00115 void gtk_infoitem_callback_on_buttonclicked(GtkInfoItem* item,
00116 on_infoitem_buttonclicked_t* callback);
00117
00118 #ifdef __cplusplus
00119 }
00120 #endif
00121
00122 #endif //__INFO_ITEM_H__
00123