gtkentrycompletion.h 7.57 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* gtkentrycompletion.h
 * Copyright (C) 2003  Kristian Rietveld  <kris@gtk.org>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

20 21 22 23
#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
#ifndef __GTK_ENTRY_COMPLETION_H__
#define __GTK_ENTRY_COMPLETION_H__

#include <gtk/gtktreemodel.h>
#include <gtk/gtkliststore.h>
#include <gtk/gtktreeviewcolumn.h>
#include <gtk/gtktreemodelfilter.h>

G_BEGIN_DECLS

#define GTK_TYPE_ENTRY_COMPLETION            (gtk_entry_completion_get_type ())
#define GTK_ENTRY_COMPLETION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY_COMPLETION, GtkEntryCompletion))
#define GTK_ENTRY_COMPLETION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ENTRY_COMPLETION, GtkEntryCompletionClass))
#define GTK_IS_ENTRY_COMPLETION(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ENTRY_COMPLETION))
#define GTK_IS_ENTRY_COMPLETION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ENTRY_COMPLETION))
#define GTK_ENTRY_COMPLETION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ENTRY_COMPLETION, GtkEntryCompletionClass))

typedef struct _GtkEntryCompletion            GtkEntryCompletion;
typedef struct _GtkEntryCompletionClass       GtkEntryCompletionClass;
typedef struct _GtkEntryCompletionPrivate     GtkEntryCompletionPrivate;

typedef gboolean (* GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion,
                                                  const gchar        *key,
                                                  GtkTreeIter        *iter,
                                                  gpointer            user_data);


struct _GtkEntryCompletion
{
  GObject parent_instance;

  /*< private >*/
Tim Janik's avatar
Tim Janik committed
56
  GtkEntryCompletionPrivate *GSEAL (priv);
57 58 59 60 61 62 63 64 65 66
};

struct _GtkEntryCompletionClass
{
  GObjectClass parent_class;

  gboolean (* match_selected)   (GtkEntryCompletion *completion,
                                 GtkTreeModel       *model,
                                 GtkTreeIter        *iter);
  void     (* action_activated) (GtkEntryCompletion *completion,
67
                                 gint                index_);
68
  gboolean (* insert_prefix)    (GtkEntryCompletion *completion,
69
				 const gchar        *prefix);
70 71 72
  gboolean (* cursor_on_match)  (GtkEntryCompletion *completion,
				 GtkTreeModel       *model,
				 GtkTreeIter        *iter);
73 74 75 76

  /* Padding for future expansion */
  void (*_gtk_reserved0) (void);
  void (*_gtk_reserved1) (void);
77 78 79
};

/* core */
Matthias Clasen's avatar
Matthias Clasen committed
80
GType               gtk_entry_completion_get_type               (void) G_GNUC_CONST;
81 82
GtkEntryCompletion *gtk_entry_completion_new                    (void);

83
GtkWidget          *gtk_entry_completion_get_entry              (GtkEntryCompletion          *completion);
84 85 86 87 88 89 90 91 92 93 94 95 96

void                gtk_entry_completion_set_model              (GtkEntryCompletion          *completion,
                                                                 GtkTreeModel                *model);
GtkTreeModel       *gtk_entry_completion_get_model              (GtkEntryCompletion          *completion);

void                gtk_entry_completion_set_match_func         (GtkEntryCompletion          *completion,
                                                                 GtkEntryCompletionMatchFunc  func,
                                                                 gpointer                     func_data,
                                                                 GDestroyNotify               func_notify);
void                gtk_entry_completion_set_minimum_key_length (GtkEntryCompletion          *completion,
                                                                 gint                         length);
gint                gtk_entry_completion_get_minimum_key_length (GtkEntryCompletion          *completion);
void                gtk_entry_completion_complete               (GtkEntryCompletion          *completion);
97
void                gtk_entry_completion_insert_prefix          (GtkEntryCompletion          *completion);
98 99

void                gtk_entry_completion_insert_action_text     (GtkEntryCompletion          *completion,
100
                                                                 gint                         index_,
101
                                                                 const gchar                 *text);
102
void                gtk_entry_completion_insert_action_markup   (GtkEntryCompletion          *completion,
103
                                                                 gint                         index_,
104
                                                                 const gchar                 *markup);
105
void                gtk_entry_completion_delete_action          (GtkEntryCompletion          *completion,
106
                                                                 gint                         index_);
107

108
void                gtk_entry_completion_set_inline_completion  (GtkEntryCompletion          *completion,
109
                                                                 gboolean                     inline_completion);
110
gboolean            gtk_entry_completion_get_inline_completion  (GtkEntryCompletion          *completion);
111 112 113
void                gtk_entry_completion_set_inline_selection  (GtkEntryCompletion          *completion,
                                                                 gboolean                     inline_selection);
gboolean            gtk_entry_completion_get_inline_selection  (GtkEntryCompletion          *completion);
114
void                gtk_entry_completion_set_popup_completion   (GtkEntryCompletion          *completion,
115
                                                                 gboolean                     popup_completion);
116
gboolean            gtk_entry_completion_get_popup_completion   (GtkEntryCompletion          *completion);
117
void                gtk_entry_completion_set_popup_set_width    (GtkEntryCompletion          *completion,
118
                                                                 gboolean                     popup_set_width);
119
gboolean            gtk_entry_completion_get_popup_set_width    (GtkEntryCompletion          *completion);
120 121 122
void                gtk_entry_completion_set_popup_single_match (GtkEntryCompletion          *completion,
                                                                 gboolean                     popup_single_match);
gboolean            gtk_entry_completion_get_popup_single_match (GtkEntryCompletion          *completion);
123

124
const gchar         *gtk_entry_completion_get_completion_prefix (GtkEntryCompletion *completion);
125 126 127
/* convenience */
void                gtk_entry_completion_set_text_column        (GtkEntryCompletion          *completion,
                                                                 gint                         column);
128
gint                gtk_entry_completion_get_text_column        (GtkEntryCompletion          *completion);
129 130 131 132

G_END_DECLS

#endif /* __GTK_ENTRY_COMPLETION_H__ */