1 /* gtkentryprivate.h 2 * Copyright (C) 2003 Kristian Rietveld <kris@gtk.org> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __GTK_ENTRY_PRIVATE_H__ 19 #define __GTK_ENTRY_PRIVATE_H__ 20 21 #include <gtk/gtktreeviewcolumn.h> 22 #include <gtk/gtktreemodelfilter.h> 23 #include <gtk/gtkliststore.h> 24 #include <gtk/gtkentrycompletion.h> 25 #include <gtk/gtkentry.h> 26 #include <gtk/gtkcssgadgetprivate.h> 27 #include <gtk/gtkspinbutton.h> 28 29 G_BEGIN_DECLS 30 31 struct _GtkEntryCompletionPrivate 32 { 33 GtkWidget *entry; 34 35 GtkWidget *tree_view; 36 GtkTreeViewColumn *column; 37 GtkTreeModelFilter *filter_model; 38 GtkListStore *actions; 39 GtkCellArea *cell_area; 40 41 GtkEntryCompletionMatchFunc match_func; 42 gpointer match_data; 43 GDestroyNotify match_notify; 44 45 gint minimum_key_length; 46 gint text_column; 47 48 gchar *case_normalized_key; 49 50 /* only used by GtkEntry when attached: */ 51 GtkWidget *popup_window; 52 GtkWidget *vbox; 53 GtkWidget *scrolled_window; 54 GtkWidget *action_view; 55 56 gulong completion_timeout; 57 gulong changed_id; 58 gulong insert_text_id; 59 60 gint current_selected; 61 62 guint first_sel_changed : 1; 63 guint ignore_enter : 1; 64 guint has_completion : 1; 65 guint inline_completion : 1; 66 guint popup_completion : 1; 67 guint popup_set_width : 1; 68 guint popup_single_match : 1; 69 guint inline_selection : 1; 70 guint has_grab : 1; 71 72 gchar *completion_prefix; 73 74 GSource *check_completion_idle; 75 76 GdkDevice *device; 77 }; 78 79 void _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion); 80 void _gtk_entry_completion_popdown (GtkEntryCompletion *completion); 81 void _gtk_entry_completion_connect (GtkEntryCompletion *completion, 82 GtkEntry *entry); 83 void _gtk_entry_completion_disconnect (GtkEntryCompletion *completion); 84 85 gchar* _gtk_entry_get_display_text (GtkEntry *entry, 86 gint start_pos, 87 gint end_pos); 88 void _gtk_entry_get_borders (GtkEntry *entry, 89 GtkBorder *borders); 90 GtkIMContext* _gtk_entry_get_im_context (GtkEntry *entry); 91 GtkCssGadget* gtk_entry_get_gadget (GtkEntry *entry); 92 void _gtk_entry_grab_focus (GtkEntry *entry, 93 gboolean select_all); 94 95 /* in gtkspinbutton.c (because I'm too lazy to create gtkspinbuttonprivate.h) */ 96 gint gtk_spin_button_get_text_width (GtkSpinButton *spin_button); 97 98 void gtk_entry_enter_text (GtkEntry *entry, 99 const char *text); 100 void gtk_entry_set_positions (GtkEntry *entry, 101 int current_pos, 102 int selection_bound); 103 104 G_END_DECLS 105 106 #endif /* __GTK_ENTRY_PRIVATE_H__ */ 107