Mercurial > pidgin
annotate finch/libgnt/gntentry.h @ 16889:c31328dba5c2
Fix some ickyness in the tab-completion. Now, if there's only one suggest word, then the first tab will just complete the suggestion. If there's only one suggest word, and it's already completed, then tab will take focus to the next widget. If there is a dropdown, then you can select a suggest word by pressing tabs to move to it, then either space or enter to accept it.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 04 May 2007 15:53:24 +0000 |
parents | f00f2e283ffb |
children | 8410511f4dbb |
rev | line source |
---|---|
15817 | 1 #ifndef GNT_ENTRY_H |
2 #define GNT_ENTRY_H | |
3 | |
4 #include "gntwidget.h" | |
5 #include "gnt.h" | |
6 #include "gntcolors.h" | |
7 #include "gntkeys.h" | |
8 | |
9 #define GNT_TYPE_ENTRY (gnt_entry_get_gtype()) | |
10 #define GNT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_ENTRY, GntEntry)) | |
11 #define GNT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_ENTRY, GntEntryClass)) | |
12 #define GNT_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_ENTRY)) | |
13 #define GNT_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_ENTRY)) | |
14 #define GNT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_ENTRY, GntEntryClass)) | |
15 | |
16 #define GNT_ENTRY_FLAGS(obj) (GNT_ENTRY(obj)->priv.flags) | |
17 #define GNT_ENTRY_SET_FLAGS(obj, flags) (GNT_ENTRY_FLAGS(obj) |= flags) | |
18 #define GNT_ENTRY_UNSET_FLAGS(obj, flags) (GNT_ENTRY_FLAGS(obj) &= ~(flags)) | |
19 | |
20 #define ENTRY_CHAR '_' /* The character to use to fill in the blank places */ | |
21 | |
15928
f00f2e283ffb
Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
22 typedef struct _GntEntry GntEntry; |
f00f2e283ffb
Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
23 typedef struct _GntEntryPriv GntEntryPriv; |
f00f2e283ffb
Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
24 typedef struct _GntEntryClass GntEntryClass; |
15817 | 25 |
26 typedef enum | |
27 { | |
28 GNT_ENTRY_FLAG_ALPHA = 1 << 0, /* Only alpha */ | |
29 GNT_ENTRY_FLAG_INT = 1 << 1, /* Only integer */ | |
30 GNT_ENTRY_FLAG_NO_SPACE = 1 << 2, /* No blank space is allowed */ | |
31 GNT_ENTRY_FLAG_NO_PUNCT = 1 << 3, /* No punctuations */ | |
32 GNT_ENTRY_FLAG_MASK = 1 << 4, /* Mask the inputs */ | |
33 } GntEntryFlag; | |
34 | |
35 #define GNT_ENTRY_FLAG_ALL (GNT_ENTRY_FLAG_ALPHA | GNT_ENTRY_FLAG_INT) | |
36 | |
15928
f00f2e283ffb
Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
37 struct _GntEntry |
15817 | 38 { |
39 GntWidget parent; | |
40 | |
41 GntEntryFlag flag; | |
42 | |
43 char *start; | |
44 char *end; | |
45 char *scroll; /* Current scrolling position */ | |
46 char *cursor; /* Cursor location */ | |
47 /* 0 <= cursor - scroll < widget-width */ | |
48 | |
49 size_t buffer; /* Size of the buffer */ | |
50 | |
51 int max; /* 0 means infinite */ | |
52 gboolean masked; | |
53 | |
54 GList *history; /* History of the strings. User can use this by pressing ctrl+up/down */ | |
55 int histlength; /* How long can the history be? */ | |
56 | |
57 GList *suggests; /* List of suggestions */ | |
58 gboolean word; /* Are the suggestions for only a word, or for the whole thing? */ | |
59 gboolean always; /* Should the list of suggestions show at all times, or only on tab-press? */ | |
60 GntWidget *ddown; /* The dropdown with the suggested list */ | |
61 }; | |
62 | |
15928
f00f2e283ffb
Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
63 struct _GntEntryClass |
15817 | 64 { |
65 GntWidgetClass parent; | |
66 | |
67 void (*text_changed)(GntEntry *entry); | |
68 void (*gnt_reserved1)(void); | |
69 void (*gnt_reserved2)(void); | |
70 void (*gnt_reserved3)(void); | |
71 void (*gnt_reserved4)(void); | |
72 }; | |
73 | |
74 G_BEGIN_DECLS | |
75 | |
76 GType gnt_entry_get_gtype(void); | |
77 | |
78 GntWidget *gnt_entry_new(const char *text); | |
79 | |
80 void gnt_entry_set_max(GntEntry *entry, int max); | |
81 | |
82 void gnt_entry_set_text(GntEntry *entry, const char *text); | |
83 | |
84 void gnt_entry_set_flag(GntEntry *entry, GntEntryFlag flag); | |
85 | |
86 const char *gnt_entry_get_text(GntEntry *entry); | |
87 | |
88 void gnt_entry_clear(GntEntry *entry); | |
89 | |
90 void gnt_entry_set_masked(GntEntry *entry, gboolean set); | |
91 | |
92 void gnt_entry_add_to_history(GntEntry *entry, const char *text); | |
93 | |
94 void gnt_entry_set_history_length(GntEntry *entry, int num); | |
95 | |
96 void gnt_entry_set_word_suggest(GntEntry *entry, gboolean word); | |
97 | |
98 void gnt_entry_set_always_suggest(GntEntry *entry, gboolean always); | |
99 | |
100 void gnt_entry_add_suggest(GntEntry *entry, const char *text); | |
101 | |
102 void gnt_entry_remove_suggest(GntEntry *entry, const char *text); | |
103 | |
104 G_END_DECLS | |
105 | |
106 #endif /* GNT_ENTRY_H */ |