00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef GNT_ENTRY_H
00028 #define GNT_ENTRY_H
00029
00030 #include "gntwidget.h"
00031 #include "gnt.h"
00032 #include "gntcolors.h"
00033 #include "gntkeys.h"
00034
00035 #define GNT_TYPE_ENTRY (gnt_entry_get_gtype())
00036 #define GNT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_ENTRY, GntEntry))
00037 #define GNT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_ENTRY, GntEntryClass))
00038 #define GNT_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_ENTRY))
00039 #define GNT_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_ENTRY))
00040 #define GNT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_ENTRY, GntEntryClass))
00041
00042 #define GNT_ENTRY_FLAGS(obj) (GNT_ENTRY(obj)->priv.flags)
00043 #define GNT_ENTRY_SET_FLAGS(obj, flags) (GNT_ENTRY_FLAGS(obj) |= flags)
00044 #define GNT_ENTRY_UNSET_FLAGS(obj, flags) (GNT_ENTRY_FLAGS(obj) &= ~(flags))
00045
00046 #define ENTRY_CHAR '_'
00047
00048 typedef struct _GntEntry GntEntry;
00049 typedef struct _GntEntryPriv GntEntryPriv;
00050 typedef struct _GntEntryClass GntEntryClass;
00051
00052 typedef enum
00053 {
00054 GNT_ENTRY_FLAG_ALPHA = 1 << 0,
00055 GNT_ENTRY_FLAG_INT = 1 << 1,
00056 GNT_ENTRY_FLAG_NO_SPACE = 1 << 2,
00057 GNT_ENTRY_FLAG_NO_PUNCT = 1 << 3,
00058 GNT_ENTRY_FLAG_MASK = 1 << 4,
00059 } GntEntryFlag;
00060
00061 #define GNT_ENTRY_FLAG_ALL (GNT_ENTRY_FLAG_ALPHA | GNT_ENTRY_FLAG_INT)
00062
00063 struct _GntEntry
00064 {
00065 GntWidget parent;
00066
00067 GntEntryFlag flag;
00068
00069 char *start;
00070 char *end;
00071 char *scroll;
00072 char *cursor;
00073
00074
00075 size_t buffer;
00076
00077 int max;
00078 gboolean masked;
00079
00080 GList *history;
00081 int histlength;
00082
00083 GList *suggests;
00084 gboolean word;
00085 gboolean always;
00086 GntWidget *ddown;
00087 };
00088
00089 struct _GntEntryClass
00090 {
00091 GntWidgetClass parent;
00092
00093 void (*text_changed)(GntEntry *entry);
00094 void (*gnt_reserved1)(void);
00095 void (*gnt_reserved2)(void);
00096 void (*gnt_reserved3)(void);
00097 void (*gnt_reserved4)(void);
00098 };
00099
00100 G_BEGIN_DECLS
00101
00105 GType gnt_entry_get_gtype(void);
00106
00114 GntWidget * gnt_entry_new(const char *text);
00115
00122 void gnt_entry_set_max(GntEntry *entry, int max);
00123
00130 void gnt_entry_set_text(GntEntry *entry, const char *text);
00131
00138 void gnt_entry_set_flag(GntEntry *entry, GntEntryFlag flag);
00139
00147 const char *gnt_entry_get_text(GntEntry *entry);
00148
00154 void gnt_entry_clear(GntEntry *entry);
00155
00162 void gnt_entry_set_masked(GntEntry *entry, gboolean set);
00163
00171 void gnt_entry_add_to_history(GntEntry *entry, const char *text);
00172
00179 void gnt_entry_set_history_length(GntEntry *entry, int num);
00180
00188 void gnt_entry_set_word_suggest(GntEntry *entry, gboolean word);
00189
00197 void gnt_entry_set_always_suggest(GntEntry *entry, gboolean always);
00198
00205 void gnt_entry_add_suggest(GntEntry *entry, const char *text);
00206
00213 void gnt_entry_remove_suggest(GntEntry *entry, const char *text);
00214
00215 G_END_DECLS
00216
00217 #endif