00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00029 #ifndef __ERGTK_ENTRY_H__
00030 #define __ERGTK_ENTRY_H__
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 #define ERGTK_ENTRY_DEFAULT_WIDTH 150 // value from the designed screen
00037 #define ERGTK_ENTRY_DEFAULT_HEIGHT 30
00038
00039 #define ERGTK_ENTRY_TYPE (ergtk_entry_get_type())
00040 #define ERGTK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_ENTRY_TYPE, erGtkEntry))
00041 #define ERGTK_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_ENTRY_TYPE))
00042
00043 #define ERGTK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_ENTRY_TYPE, erGtkEntryClass))
00044 #define ERGTK_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ERGTK_ENTRY_TYPE, erGtkEntryClass))
00045 #define ERGTK_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_ENTRY_TYPE))
00046
00047
00048
00049 #define gtk_entry_set_text(entry, text) \
00050 if ( ERGTK_IS_ENTRY(entry) ) \
00051 ergtk_entry_set_text( (erGtkEntry*)(entry), (text) ); \
00052 else \
00053 gtk_entry_set_text( (entry), (text) );
00054
00055 typedef enum
00056 {
00057 ipAddress_e = 0,
00058 integer_e,
00059 string_e
00060 }entryFilter_e;
00061
00062 typedef struct _erGtkEntry erGtkEntry;
00063 typedef struct _erGtkEntryClass erGtkEntryClass;
00064
00065 struct _erGtkEntry
00066 {
00067 GtkEntry parent;
00068
00069
00070 guint timeout_id;
00071 gboolean changed_pending;
00072 gboolean changed_occurred;
00073 gboolean movecursor_occurred;
00074 gboolean visible;
00075 entryFilter_e filter;
00076 };
00077
00078 struct _erGtkEntryClass
00079 {
00080 GtkEntryClass parent_class;
00081
00082
00083 void (*set_text) (erGtkEntry* er_entry, const gchar* text);
00084
00085
00086 void (*changed_stable) (erGtkEntry* er_entry);
00087 void (*screen_refresh) (erGtkEntry* er_entry);
00088 };
00089
00097 GtkWidget* ergtk_entry_new();
00098
00104 GType ergtk_entry_get_type(void);
00105
00113 void ergtk_entry_set_text(erGtkEntry* er_entry, const gchar * text);
00114
00115 void ergtk_entry_set_ipv4_filter(erGtkEntry *er_entry);
00116
00117 void ergtk_entry_set_integer_filter(erGtkEntry *er_entry);
00118
00119 gboolean ergtk_entry_check_field(erGtkEntry *er_entry);
00120
00121 #ifdef __cplusplus
00122 }
00123 #endif
00124
00125 #endif