summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Hallendal <micke@codefactory.se>2002-03-02 00:53:05 +0000
committerMikael Hallendal <hallski@src.gnome.org>2002-03-02 00:53:05 +0000
commit0bcf62c77c87db2d2fe00e7ea7eb333f685db267 (patch)
treed4ef2b8cc71152da9ad131a961546645ace8680b
parent0c38a619d7dc0bf81cafa5eb5faedc1127fe0a99 (diff)
downloadyelp-0bcf62c77c87db2d2fe00e7ea7eb333f685db267.tar.gz
- in-the-middle-commit on index search stuff. (yvi_entry_changed_cb):
2002-03-02 Mikael Hallendal <micke@codefactory.se> * src/yelp-view-index.c: - in-the-middle-commit on index search stuff. (yvi_entry_changed_cb): added (yvi_entry_activated_cb): added (yvi_entry_text_inserted_cb): added (yvi_search): added (yvi_complete_idle): added (yvi_complete_func): added (yelp_view_index_new): connect to signals in the entry. * src/yelp-scrollkeeper.c: removed debug variable. * src/yelp-index-model.[ch]: added model for the index. * configure.in: added compile warnings. Please don't report problems running/building Yelp after this commit, I'm in the middle of hacking and will finish this during the weekend.
-rw-r--r--ChangeLog18
-rw-r--r--configure.in2
-rw-r--r--src/Makefile.am1
-rw-r--r--src/yelp-index-model.c388
-rw-r--r--src/yelp-index-model.h57
-rw-r--r--src/yelp-scrollkeeper.c4
-rw-r--r--src/yelp-view-index.c143
7 files changed, 599 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d5a27c3..7549f3b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2002-03-02 Mikael Hallendal <micke@codefactory.se>
+
+ * src/yelp-view-index.c:
+ - in-the-middle-commit on index search stuff.
+ (yvi_entry_changed_cb): added
+ (yvi_entry_activated_cb): added
+ (yvi_entry_text_inserted_cb): added
+ (yvi_search): added
+ (yvi_complete_idle): added
+ (yvi_complete_func): added
+ (yelp_view_index_new): connect to signals in the entry.
+
+ * src/yelp-scrollkeeper.c: removed debug variable.
+
+ * src/yelp-index-model.[ch]: added model for the index.
+
+ * configure.in: added compile warnings.
+
2002-02-28 Mikael Hallendal <micke@codefactory.se>
* src/yelp-window.c:
diff --git a/configure.in b/configure.in
index 038be5ef..0f35c73c 100644
--- a/configure.in
+++ b/configure.in
@@ -5,6 +5,8 @@ AM_INIT_AUTOMAKE(yelp, 0.2.99)
AC_PROG_INTLTOOL
AM_MAINTAINER_MODE
+GNOME_COMMON_INIT
+GNOME_COMPILE_WARNINGS(maximum)
AC_PROG_CC
AC_ISC_POSIX
diff --git a/src/Makefile.am b/src/Makefile.am
index 3563b1b4..68b17088 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -31,6 +31,7 @@ yelp_SOURCES = \
yelp-base.c yelp-base.h \
yelp-history.c yelp-history.h \
yelp-html.c yelp-html.h \
+ yelp-index-model.c yelp-index-model.h \
yelp-info.c yelp-info.h \
yelp-main.c \
yelp-man.c yelp-man.h \
diff --git a/src/yelp-index-model.c b/src/yelp-index-model.c
new file mode 100644
index 00000000..1605dfcf
--- /dev/null
+++ b/src/yelp-index-model.c
@@ -0,0 +1,388 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2002 CodeFactory AB
+ * Copyright (C) 2002 Richard Hult <rhult@codefactory.se>
+ * Copyright (C) 2002 Mikael Hallendal <micke@codefactory.se>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtktreemodel.h>
+#include <libgnome/gnome-i18n.h>
+#include "yelp-section.h"
+#include "yelp-index-model.h"
+
+struct _YelpIndexModelPriv {
+ GList *index_words;
+
+ gint stamp;
+};
+
+#define G_LIST(x) ((GList *) x)
+
+static void yim_init (YelpIndexModel *list_store);
+static void yim_class_init (YelpIndexModelClass *class);
+static void yim_tree_model_init (GtkTreeModelIface *iface);
+
+
+static void yim_finalize (GObject *object);
+static gint yim_get_n_columns (GtkTreeModel *tree_model);
+static GType yim_get_column_type (GtkTreeModel *tree_model,
+ gint index);
+
+static gboolean yim_get_iter (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreePath *path);
+static GtkTreePath * yim_get_path (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static void yim_get_value (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value);
+static gboolean yim_iter_next (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gboolean yim_iter_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
+static gboolean yim_iter_has_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gint yim_iter_n_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gboolean yim_iter_nth_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n);
+static gboolean yim_iter_parent (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
+
+static GObjectClass *parent_class = NULL;
+
+
+GtkType
+yelp_index_model_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo info =
+ {
+ sizeof (YelpIndexModelClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) yim_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (YelpIndexModel),
+ 0,
+ (GInstanceInitFunc) yim_init,
+ };
+
+ static const GInterfaceInfo tree_model_info =
+ {
+ (GInterfaceInitFunc) yim_tree_model_init,
+ NULL,
+ NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT,
+ "YelpIndexModel",
+ &info, 0);
+
+ g_type_add_interface_static (type,
+ GTK_TYPE_TREE_MODEL,
+ &tree_model_info);
+ }
+
+ return type;
+}
+
+static void
+yim_class_init (YelpIndexModelClass *class)
+{
+ GObjectClass *object_class;
+
+ parent_class = g_type_class_peek_parent (class);
+ object_class = (GObjectClass*) class;
+
+ object_class->finalize = yim_finalize;
+}
+
+static void
+yim_tree_model_init (GtkTreeModelIface *iface)
+{
+/* iface->get_flags = yim_get_flags; */
+ iface->get_n_columns = yim_get_n_columns;
+ iface->get_column_type = yim_get_column_type;
+ iface->get_iter = yim_get_iter;
+ iface->get_path = yim_get_path;
+ iface->get_value = yim_get_value;
+ iface->iter_next = yim_iter_next;
+ iface->iter_children = yim_iter_children;
+ iface->iter_has_child = yim_iter_has_child;
+ iface->iter_n_children = yim_iter_n_children;
+ iface->iter_nth_child = yim_iter_nth_child;
+ iface->iter_parent = yim_iter_parent;
+}
+
+static void
+yim_init (YelpIndexModel *model)
+{
+ YelpIndexModelPriv *priv;
+
+ priv = g_new0 (YelpIndexModelPriv, 1);
+
+ do {
+ priv->stamp = g_random_int ();
+ } while (priv->stamp == 0);
+
+ model->priv = priv;
+}
+
+static void
+yim_finalize (GObject *object)
+{
+ YelpIndexModel *model = YELP_INDEX_MODEL (object);
+
+ if (model->priv) {
+ if (model->priv->index_words) {
+ /* FIXME: Clean up the list */
+ }
+
+ g_free (model->priv);
+ model->priv = NULL;
+ }
+
+ (* parent_class->finalize) (object);
+}
+
+static gint
+yim_get_n_columns (GtkTreeModel *tree_model)
+{
+ return 1;
+}
+
+static GType
+yim_get_column_type (GtkTreeModel *tree_model,
+ gint column)
+{
+ return G_TYPE_STRING;
+}
+
+static gboolean
+yim_get_iter (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreePath *path)
+{
+ YelpIndexModel *model;
+ YelpIndexModelPriv *priv;
+ GList *node;
+ gint i;
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), FALSE);
+ g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
+
+ model = YELP_INDEX_MODEL (tree_model);
+ priv = model->priv;
+
+ i = gtk_tree_path_get_indices (path)[0];
+
+ if (i >= g_list_length (priv->index_words)) {
+ return FALSE;
+ }
+
+ node = g_list_nth (priv->index_words, i);
+
+ iter->stamp = priv->stamp;
+ iter->user_data = node;
+
+ return TRUE;
+}
+
+static GtkTreePath *
+yim_get_path (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ YelpIndexModel *model = YELP_INDEX_MODEL (tree_model);
+ YelpIndexModelPriv *priv;
+ GtkTreePath *path;
+ GList *node;
+ gint i = 0;
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), NULL);
+ g_return_val_if_fail (iter->stamp == model->priv->stamp, NULL);
+
+ priv = model->priv;
+
+ for (node = priv->index_words; node; node = node->next)
+ {
+ if ((gpointer)node->data == (gpointer)iter->user_data)
+ break;
+ i++;
+ }
+
+ if (node == NULL) {
+ return NULL;
+ }
+
+ path = gtk_tree_path_new ();
+ gtk_tree_path_append_index (path, i);
+
+ return path;
+}
+
+static void
+yim_get_value (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value)
+{
+ YelpSection *section;
+
+ g_return_if_fail (MG_IS_RESOURCE_MODEL (tree_model));
+ g_return_if_fail (iter != NULL);
+
+ section = (YelpSection *) (G_LIST(iter->user_data)->data);
+
+ switch (column) {
+ case 0:
+ g_value_set_string (value, section->name);
+ break;
+ default:
+ g_warning ("Bad column %d requested", column);
+ }
+}
+
+static gboolean
+yim_iter_next (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ YelpIndexModel *model = YELP_INDEX_MODEL (tree_model);
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), FALSE);
+ g_return_val_if_fail (model->priv->stamp == iter->stamp, FALSE);
+
+ iter->user_data = G_LIST(iter->user_data)->next;
+
+ return (iter->user_data != NULL);
+}
+
+static gboolean
+yim_iter_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
+{
+ YelpIndexModelPriv *priv;
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), FALSE);
+
+ priv = YELP_INDEX_MODEL(tree_model)->priv;
+
+ /* this is a list, nodes have no children */
+ if (parent) {
+ return FALSE;
+ }
+
+ /* but if parent == NULL we return the list itself as children of the
+ * "root"
+ */
+
+ if (priv->index_words) {
+ iter->stamp = priv->stamp;
+ iter->user_data = priv->index_words;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+yim_iter_has_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ return FALSE;
+}
+
+static gint
+yim_iter_n_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ YelpIndexModelPriv *priv;
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), -1);
+
+ priv = YELP_INDEX_MODEL(tree_model)->priv;
+
+ if (iter == NULL) {
+ return g_list_length (priv->index_words);
+ }
+
+ g_return_val_if_fail (priv->stamp == iter->stamp, -1);
+
+ return 0;
+}
+
+static gboolean
+yim_iter_nth_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n)
+{
+ YelpIndexModelPriv *priv;
+ GList *child;
+
+ g_return_val_if_fail (MG_IS_RESOURCE_MODEL (tree_model), FALSE);
+
+ priv = YELP_INDEX_MODEL(tree_model)->priv;
+
+ if (parent) {
+ return FALSE;
+ }
+
+ child = g_list_nth (priv->index_words, n);
+
+ if (child) {
+ iter->stamp = priv->stamp;
+ iter->user_data = child;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+yim_iter_parent (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
+{
+ return FALSE;
+}
+
+YelpIndexModel *
+yelp_index_model_new (GList *index_words)
+{
+ YelpIndexModel *model;
+ YelpIndexModelPriv *priv;
+
+ model = g_object_new (YELP_TYPE_INDEX_MODEL, NULL);
+
+ priv = model->priv;
+
+ priv->index_words = index_words;
+
+ return model;
+}
+
diff --git a/src/yelp-index-model.h b/src/yelp-index-model.h
new file mode 100644
index 00000000..86f0a479
--- /dev/null
+++ b/src/yelp-index-model.h
@@ -0,0 +1,57 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2002 CodeFactory AB
+ * Copyright (C) 2002 Richard Hult <rhult@codefactory.se>
+ * Copyright (C) 2002 Mikael Hallendal <micke@codefactory.se>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __YELP_INDEX_MODEL_H__
+#define __YELP_INDEX_MODEL_H__
+
+#include <glib-object.h>
+#include <gtk/gtktreemodel.h>
+#include <gtk/gtktreesortable.h>
+
+#define YELP_TYPE_INDEX_MODEL (yelp_index_model_get_type ())
+#define YELP_INDEX_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), YELP_TYPE_INDEX_MODEL, YelpIndexModel))
+#define YELP_INDEX_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), YELP_TYPE_INDEX_MODEL, YelpIndexModelClass))
+#define MG_IS_RESOURCE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), YELP_TYPE_INDEX_MODEL))
+#define MG_IS_RESOURCE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), YELP_TYPE_INDEX_MODEL))
+#define YELP_INDEX_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), YELP_TYPE_INDEX_MODEL, YelpIndexModelClass))
+
+typedef struct _YelpIndexModel YelpIndexModel;
+typedef struct _YelpIndexModelClass YelpIndexModelClass;
+typedef struct _YelpIndexModelPriv YelpIndexModelPriv;
+
+struct _YelpIndexModel
+{
+ GObject parent;
+
+ YelpIndexModelPriv *priv;
+
+};
+
+struct _YelpIndexModelClass
+{
+ GObjectClass parent_class;
+};
+
+GtkType yelp_index_model_get_type (void);
+YelpIndexModel *yelp_index_model_new (GList *index_words);
+
+#endif /* __YELP_INDEX_MODEL_H__ */
diff --git a/src/yelp-scrollkeeper.c b/src/yelp-scrollkeeper.c
index d1f49536..548833b0 100644
--- a/src/yelp-scrollkeeper.c
+++ b/src/yelp-scrollkeeper.c
@@ -61,8 +61,6 @@ static void ys_parse_index_item (GList **index,
xmlNode *node);
-static gint calls = 0;
-
static GHashTable *seriesid_hash = NULL;
static GHashTable *docid_hash = NULL;
@@ -330,8 +328,6 @@ ys_get_xml_docpath (const gchar *command, const gchar *argument)
success = g_spawn_command_line_sync (full_command, &xml_location,
NULL, NULL, NULL);
- calls++;
-
g_free (full_command);
if (!success) {
diff --git a/src/yelp-view-index.c b/src/yelp-view-index.c
index 3e0de723..7d83dfa8 100644
--- a/src/yelp-view-index.c
+++ b/src/yelp-view-index.c
@@ -26,19 +26,33 @@
#include <libgnome/gnome-i18n.h>
#include <gtk/gtktreeview.h>
+#include <string.h>
#include "yelp-html.h"
#include "yelp-view-index.h"
-static void yvi_init (YelpViewIndex *view);
-static void yvi_class_init (YelpViewIndexClass *klass);
-static void yvi_index_selection_changed_cb (GtkTreeSelection *selection,
- YelpViewIndex *content);
-static void yvi_html_url_selected_cb (YelpViewIndex *content,
- char *url,
- char *base_url,
- gboolean handled);
-static void yvi_setup_index_view (YelpViewIndex *view);
+static void yvi_init (YelpViewIndex *view);
+static void yvi_class_init (YelpViewIndexClass *klass);
+static void yvi_index_selection_changed_cb (GtkTreeSelection *selection,
+ YelpViewIndex *content);
+static void yvi_html_url_selected_cb (YelpViewIndex *content,
+ char *url,
+ char *base_url,
+ gboolean handled);
+static void yvi_setup_index_view (YelpViewIndex *view);
+static void yvi_entry_changed_cb (GtkEntry *entry,
+ YelpViewIndex *view);
+static void yvi_entry_activated_cb (GtkEntry *entry,
+ YelpViewIndex *view);
+static void yvi_entry_text_inserted_cb (GtkEntry *entry,
+ const gchar *text,
+ gint length,
+ gint *position,
+ YelpViewIndex *view);
+static void yvi_search (YelpViewIndex *view,
+ const gchar *string);
+static gboolean yvi_complete_idle (YelpViewIndex *view);
+static gchar * yvi_complete_func (YelpSection *section);
struct _YelpViewIndexPriv {
GList *index;
@@ -52,6 +66,10 @@ struct _YelpViewIndexPriv {
/* Html view */
GtkWidget *html_view;
+
+ GCompletion *completion;
+
+ guint complete;
};
GType
@@ -89,7 +107,12 @@ yvi_init (YelpViewIndex *view)
priv = g_new0 (YelpViewIndexPriv, 1);
view->priv = priv;
-
+
+ priv->complete = 0;
+ priv->completion =
+ g_completion_new ((GCompletionFunc)yvi_complete_func);
+ g_completion_set_compare (priv->completion, g_ascii_strncasecmp);
+
priv->index_view = gtk_tree_view_new ();
priv->list_store = gtk_list_store_new (2,
G_TYPE_STRING, G_TYPE_POINTER);
@@ -180,11 +203,99 @@ yvi_setup_index_view (YelpViewIndex *view)
priv = view->priv;
+ g_completion_add_items (priv->completion, priv->index);
+
g_list_foreach (priv->index,
(GFunc )yvi_index_term_add,
view);
}
+static void
+yvi_entry_changed_cb (GtkEntry *entry, YelpViewIndex *view)
+{
+ g_print ("Entry changed\n");
+}
+
+static void
+yvi_entry_activated_cb (GtkEntry *entry, YelpViewIndex *view)
+{
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+ g_return_if_fail (YELP_IS_VIEW_INDEX (view));
+
+ yvi_search (view, gtk_entry_get_text (entry));
+
+ g_print ("Entry activated\n");
+}
+
+static void
+yvi_entry_text_inserted_cb (GtkEntry *entry,
+ const gchar *text,
+ gint length,
+ gint *position,
+ YelpViewIndex *view)
+{
+ YelpViewIndexPriv *priv;
+
+ g_return_if_fail (YELP_IS_VIEW_INDEX (view));
+
+ priv = view->priv;
+
+ if (!priv->complete) {
+ priv->complete = g_idle_add ((GSourceFunc)yvi_complete_idle,
+ view);
+ }
+
+ g_print ("Entry text insterted\n");
+}
+
+static void
+yvi_search (YelpViewIndex *view, const gchar *string)
+{
+ g_print ("Doing a search on %s...\n", string);
+}
+
+static gboolean
+yvi_complete_idle (YelpViewIndex *view)
+{
+ YelpViewIndexPriv *priv;
+ const gchar *text;
+ gchar *completed = NULL;
+ GList *list;
+ gint text_length;
+
+ g_return_val_if_fail (YELP_IS_VIEW_INDEX (view), FALSE);
+
+ priv = view->priv;
+
+ g_print ("Completing ... \n");
+
+ text = gtk_entry_get_text (GTK_ENTRY (priv->entry));
+
+ list = g_completion_complete (priv->completion,
+ (gchar *)text,
+ &completed);
+
+ if (completed) {
+ text_length = strlen (text);
+
+ gtk_entry_set_text (GTK_ENTRY (priv->entry), completed);
+ gtk_editable_set_position (GTK_EDITABLE (priv->entry),
+ text_length);
+ gtk_editable_select_region (GTK_EDITABLE (priv->entry),
+ text_length, -1);
+ }
+
+ priv->complete = 0;
+
+ return FALSE;
+}
+
+static gchar *
+yvi_complete_func (YelpSection *section)
+{
+ return section->name;
+}
+
GtkWidget *
yelp_view_index_new (GList *index)
{
@@ -214,8 +325,20 @@ yelp_view_index_new (GList *index)
priv->entry = gtk_entry_new ();
+ g_signal_connect (priv->entry, "changed",
+ G_CALLBACK (yvi_entry_changed_cb),
+ view);
+
gtk_box_pack_end (GTK_BOX (hbox), priv->entry, FALSE, FALSE, 0);
+ g_signal_connect (priv->entry, "activate",
+ G_CALLBACK (yvi_entry_activated_cb),
+ view);
+
+ g_signal_connect (priv->entry, "insert-text",
+ G_CALLBACK (yvi_entry_text_inserted_cb),
+ view);
+
gtk_box_pack_start (GTK_BOX (box), hbox,
FALSE, FALSE, 0);