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