00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00025 #ifndef __SETTING_ITEM_TEXT_ENTRY_H__
00026 #define __SETTING_ITEM_TEXT_ENTRY_H__
00027 
00028 #define SETTINGITEMTEXT_BORDER_TOP       0
00029 #define SETTINGITEMTEXT_BORDER_BOTTOM    0
00030 #define SETTINGITEMTEXT_BORDER_LEFT      13
00031 #define SETTINGITEMTEXT_BORDER_RIGHT     13
00032 
00033 #define SETTINGITEMTEXT_REQ_WIDTH        640
00034 #define SETTINGITEMTEXT_REQ_HEIGHT       115
00035 
00036 #define SETTINGITEMTEXT_LABEL_HEIGHT     50
00037 
00038 #define SETTINGITEMTEXT_ENTRY_HEIGHT     30
00039 #define SETTINGITEMTEXT_ENTRY_WIDTH      400
00040 
00041 #define SETTINGITEMTEXT_BUTTON_WIDTH_SMALL 130
00042 #define SETTINGITEMTEXT_BUTTON_WIDTH_LARGE 200
00043 #define SETTINGITEMTEXT_BUTTON_PADDING     25
00044 
00045 #include <gtk/gtk.h>
00046 #include <gdk/gdk.h>
00047 #include <glib.h>
00048 
00049 #define GTK_SETTINGITEM_TEXTENTRY_TYPE (gtk_settingitem_textentry_get_type())
00050 #define GTK_SETTINGITEM_TEXTENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
00051                                         GTK_SETTINGITEM_TEXTENTRY_TYPE, \
00052                                         GtkSettingItemTextEntry))
00053 #define GTK_SETTINGITEM_TEXTENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
00054                                                 GTK_SETTINGITEM_TEXTENTRY_TYPE, \
00055                                                 GtkSettingItemTextEntryClass))
00056 #define IS_GTK_SETTINGITEM_TEXTENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
00057                                            GTK_SETTINGITEM_TEXTENTRY_TYPE))
00058 #define IS_GTK_SETTINGITEM_TEXTENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
00059                                                    GTK_SETTINGITEM_TEXTENTRY_TYPE))
00060 
00061 typedef struct _GtkSettingItemTextEntry       GtkSettingItemTextEntry;
00062 typedef struct _GtkSettingItemTextEntryClass  GtkSettingItemTextEntryClass;
00063 
00064 typedef void on_textentry_changed_t(GtkWidget* item, const gchar* text);
00065 typedef void on_textentry_buttonclicked_t(GtkWidget* item, 
00066                                           const gboolean button_active);
00067 
00068 struct _GtkSettingItemTextEntry
00069 {
00070     GtkEventBox                   eventbox;         
00071 
00072     
00073     GtkWidget*                    label;
00074     GtkWidget*                    entry;
00075     GtkWidget*                    button;
00076     on_textentry_changed_t*       callback_on_changed;
00077     on_textentry_buttonclicked_t* callback_on_buttonclicked;
00078 };
00079 
00080 struct _GtkSettingItemTextEntryClass
00081 {
00082     GtkEventBoxClass  parent_class;
00083     
00084     void (*settingitem_textentry_enter) (GtkSettingItemTextEntry *item, 
00085                                          char* text);
00086 };
00087 
00088 #ifdef __cplusplus
00089 extern "C" {
00090 #endif 
00091 
00092     
00093     GtkWidget* gtk_settingitem_textentry_new(gboolean with_button);
00094 
00095     void gtk_settingitem_textentry_grabfocus(GtkSettingItemTextEntry *item);
00096 
00097     void gtk_settingitem_textentry_setlabel(GtkSettingItemTextEntry *item, 
00098                                             const gchar* text);
00099 
00100     void gtk_settingitem_textentry_settext(GtkSettingItemTextEntry *item, 
00101                                            const gchar* text);
00102     void gtk_settingitem_textentry_setvisibility(GtkSettingItemTextEntry* item, 
00103                                                  gboolean visible);
00104     void gtk_settingitem_textentry_setsensitive(GtkSettingItemTextEntry* item, 
00105                                                 gboolean sensitive);
00106 
00107     void gtk_settingitem_textentry_show_button(GtkSettingItemTextEntry* item, 
00108                                                const gboolean show);
00109     void gtk_settingitem_textentry_set_buttontext(GtkSettingItemTextEntry *item, 
00110                                                   const gchar* text);
00111     void gtk_settingitem_textentry_set_buttonsize(GtkSettingItemTextEntry *item,
00112                                                   const gboolean large_button);
00113     void gtk_settingitem_textentry_set_buttonstate(GtkSettingItemTextEntry*item, 
00114                                                    const gboolean active);
00115     const gboolean gtk_settingitem_textentry_get_buttonactive(GtkSettingItemTextEntry* item);
00116 
00117     
00118     void gtk_settingitem_textentry_callback_on_changed(GtkSettingItemTextEntry* item, 
00119                                             on_textentry_changed_t* callback);
00120 
00121     
00122     void gtk_settingitem_textentry_callback_on_buttonclicked(GtkSettingItemTextEntry* item, 
00123                                         on_textentry_buttonclicked_t* callback);
00124 
00125     
00126     
00127     
00128     const gchar* gtk_settingitem_textentry_gettext(GtkSettingItemTextEntry *item);
00129 
00130     
00131     GType gtk_settingitem_textentry_get_type (void);
00132 
00133 #ifdef __cplusplus
00134 }
00135 #endif 
00136 
00137 #endif //__SETTING_ITEM_TEXT_ENTRY_H__
00138