aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/text/e-completion.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/text/e-completion.c')
-rw-r--r--widgets/text/e-completion.c199
1 files changed, 96 insertions, 103 deletions
diff --git a/widgets/text/e-completion.c b/widgets/text/e-completion.c
index f96e4cb258..cddd6ed4f4 100644
--- a/widgets/text/e-completion.c
+++ b/widgets/text/e-completion.c
@@ -26,9 +26,9 @@
#include <string.h>
#include <stdio.h>
#include <gtk/gtk.h>
-#include <gal/util/e-util.h>
#include "e-completion.h"
#include "gal/util/e-util.h"
+#include "gal/util/e-marshal.h"
enum {
E_COMPLETION_REQUEST_COMPLETION,
@@ -65,7 +65,7 @@ typedef struct {
static void e_completion_class_init (ECompletionClass *klass);
static void e_completion_init (ECompletion *complete);
-static void e_completion_destroy (GtkObject *object);
+static void e_completion_dispose (GObject *object);
static void e_completion_add_match (ECompletion *complete, ECompletionMatch *);
static void e_completion_clear_search_stack (ECompletion *complete);
@@ -73,109 +73,101 @@ static void e_completion_clear_matches (ECompletion *complete);
static gboolean e_completion_sort (ECompletion *complete);
static void e_completion_restart (ECompletion *complete);
+#define PARENT_TYPE GTK_TYPE_OBJECT
static GtkObjectClass *parent_class;
-GtkType
-e_completion_get_type (void)
-{
- static GtkType complete_type = 0;
-
- if (!complete_type) {
- GtkTypeInfo complete_info = {
- "ECompletion",
- sizeof (ECompletion),
- sizeof (ECompletionClass),
- (GtkClassInitFunc) e_completion_class_init,
- (GtkObjectInitFunc) e_completion_init,
- NULL, NULL, /* reserved */
- (GtkClassInitFunc) NULL
- };
-
- complete_type = gtk_type_unique (gtk_object_get_type (), &complete_info);
- }
-
- return complete_type;
-}
+E_MAKE_TYPE (e_completion,
+ "ECompletion",
+ ECompletion,
+ e_completion_class_init,
+ e_completion_init,
+ PARENT_TYPE)
static void
e_completion_class_init (ECompletionClass *klass)
{
- GtkObjectClass *object_class = (GtkObjectClass *) klass;
+ GObjectClass *object_class = (GObjectClass *) klass;
- parent_class = GTK_OBJECT_CLASS (gtk_type_class (gtk_object_get_type ()));
+ parent_class = g_type_class_ref (PARENT_TYPE);
e_completion_signals[E_COMPLETION_REQUEST_COMPLETION] =
- gtk_signal_new ("request_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, request_completion),
- e_marshal_NONE__POINTER_INT_INT,
- GTK_TYPE_NONE, 3,
- GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_INT);
+ g_signal_new ("request_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, request_completion),
+ NULL, NULL,
+ e_marshal_NONE__POINTER_INT_INT,
+ G_TYPE_NONE, 3,
+ G_TYPE_POINTER, G_TYPE_INT, G_TYPE_INT);
e_completion_signals[E_COMPLETION_BEGIN_COMPLETION] =
- gtk_signal_new ("begin_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, begin_completion),
- e_marshal_NONE__POINTER_INT_INT,
- GTK_TYPE_NONE, 3,
- GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_INT);
+ g_signal_new ("begin_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, begin_completion),
+ NULL, NULL,
+ e_marshal_NONE__POINTER_INT_INT,
+ G_TYPE_NONE, 3,
+ G_TYPE_POINTER, G_TYPE_INT, G_TYPE_INT);
e_completion_signals[E_COMPLETION_COMPLETION] =
- gtk_signal_new ("completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, completion),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1,
- GTK_TYPE_POINTER);
+ g_signal_new ("completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, completion),
+ NULL, NULL,
+ e_marshal_NONE__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
e_completion_signals[E_COMPLETION_RESTART_COMPLETION] =
- gtk_signal_new ("restart_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, restart_completion),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
-
+ g_signal_new ("restart_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, restart_completion),
+ NULL, NULL,
+ e_marshal_NONE__NONE,
+ G_TYPE_NONE, 0);
+
e_completion_signals[E_COMPLETION_CANCEL_COMPLETION] =
- gtk_signal_new ("cancel_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, cancel_completion),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
-
+ g_signal_new ("cancel_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, cancel_completion),
+ NULL, NULL,
+ e_marshal_NONE__NONE,
+ G_TYPE_NONE, 0);
+
e_completion_signals[E_COMPLETION_END_COMPLETION] =
- gtk_signal_new ("end_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, end_completion),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
+ g_signal_new ("end_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, end_completion),
+ NULL, NULL,
+ e_marshal_NONE__NONE,
+ G_TYPE_NONE, 0);
e_completion_signals[E_COMPLETION_CLEAR_COMPLETION] =
- gtk_signal_new ("clear_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, clear_completion),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
+ g_signal_new ("clear_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, clear_completion),
+ NULL, NULL,
+ e_marshal_NONE__NONE,
+ G_TYPE_NONE, 0);
e_completion_signals[E_COMPLETION_LOST_COMPLETION] =
- gtk_signal_new ("lost_completion",
- GTK_RUN_LAST,
- E_OBJECT_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (ECompletionClass, lost_completion),
- gtk_marshal_NONE__POINTER,
- GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
-
- E_OBJECT_CLASS_ADD_SIGNALS (object_class, e_completion_signals, E_COMPLETION_LAST_SIGNAL);
-
- object_class->destroy = e_completion_destroy;
+ g_signal_new ("lost_completion",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (ECompletionClass, lost_completion),
+ NULL, NULL,
+ e_marshal_NONE__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
+ object_class->dispose = e_completion_dispose;
}
static void
@@ -186,7 +178,7 @@ e_completion_init (ECompletion *complete)
}
static void
-e_completion_destroy (GtkObject *object)
+e_completion_dispose (GObject *object)
{
ECompletion *complete = E_COMPLETION (object);
@@ -204,8 +196,8 @@ e_completion_destroy (GtkObject *object)
complete->priv = NULL;
}
- if (parent_class->destroy)
- (parent_class->destroy) (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ (G_OBJECT_CLASS (parent_class)->dispose) (object);
}
static void
@@ -262,7 +254,7 @@ e_completion_clear (ECompletion *complete)
e_completion_clear_search_stack (complete);
complete->priv->refinement_count = 0;
complete->priv->match_count = 0;
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_CLEAR_COMPLETION]);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_CLEAR_COMPLETION], 0);
}
static void
@@ -328,7 +320,7 @@ e_completion_refine_search (ECompletion *comp, const gchar *text, gint pos, ECom
e_completion_push_search (comp, text, pos);
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], text, pos, comp->priv->limit);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], 0, text, pos, comp->priv->limit);
comp->priv->match_count = 0;
@@ -340,14 +332,14 @@ e_completion_refine_search (ECompletion *comp, const gchar *text, gint pos, ECom
if (comp->priv->refinement_count == match->hit_count
&& refine_fn (comp, match, text, pos)) {
++match->hit_count;
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_COMPLETION], match);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_COMPLETION], 0, match);
++comp->priv->match_count;
}
}
++comp->priv->refinement_count;
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_END_COMPLETION]);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_END_COMPLETION], 0);
comp->priv->searching = FALSE;
comp->priv->refining = FALSE;
@@ -363,7 +355,8 @@ e_completion_unrefine_search (ECompletion *comp)
e_completion_pop_search (comp);
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], comp->priv->search_text, comp->priv->pos, comp->priv->limit);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], 0,
+ comp->priv->search_text, comp->priv->pos, comp->priv->limit);
comp->priv->match_count = 0;
--comp->priv->refinement_count;
@@ -375,12 +368,12 @@ e_completion_unrefine_search (ECompletion *comp)
ECompletionMatch *match = g_ptr_array_index (m, i);
if (comp->priv->refinement_count <= match->hit_count) {
match->hit_count = comp->priv->refinement_count;
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_COMPLETION], match);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_COMPLETION], 0, match);
++comp->priv->match_count;
}
}
- gtk_signal_emit (GTK_OBJECT (comp), e_completion_signals[E_COMPLETION_END_COMPLETION]);
+ g_signal_emit (comp, e_completion_signals[E_COMPLETION_END_COMPLETION], 0);
comp->priv->searching = FALSE;
comp->priv->refining = FALSE;
@@ -439,8 +432,8 @@ e_completion_begin_search (ECompletion *complete, const gchar *text, gint pos, g
complete->priv->limit = limit > 0 ? limit : G_MAXINT;
complete->priv->refinement_count = 0;
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], text, pos, limit);
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_REQUEST_COMPLETION], text, pos, limit);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_BEGIN_COMPLETION], 0, text, pos, limit);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_REQUEST_COMPLETION], 0, text, pos, limit);
}
void
@@ -453,7 +446,7 @@ e_completion_cancel_search (ECompletion *complete)
if (!complete->priv->searching)
return;
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_CANCEL_COMPLETION]);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_CANCEL_COMPLETION], 0);
complete->priv->searching = FALSE;
}
@@ -527,7 +520,7 @@ e_completion_foreach_match (ECompletion *complete, ECompletionMatchFn fn, gpoint
ECompletion *
e_completion_new (void)
{
- return E_COMPLETION (gtk_type_new (e_completion_get_type ()));
+ return E_COMPLETION (g_object_new (E_COMPLETION_TYPE, NULL));
}
static gboolean
@@ -568,15 +561,15 @@ e_completion_restart (ECompletion *complete)
GPtrArray *m;
gint i, count;
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_RESTART_COMPLETION]);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_RESTART_COMPLETION], 0);
m = complete->priv->matches;
for (i = count = 0;
i < m->len && count < complete->priv->limit;
i++, count++) {
- gtk_signal_emit (GTK_OBJECT (complete),
- e_completion_signals[E_COMPLETION_COMPLETION],
- g_ptr_array_index (m, i));
+ g_signal_emit (complete,
+ e_completion_signals[E_COMPLETION_COMPLETION], 0,
+ g_ptr_array_index (m, i));
}
}
@@ -601,7 +594,7 @@ e_completion_found_match (ECompletion *complete, ECompletionMatch *match)
e_completion_add_match (complete, match);
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_COMPLETION], match);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_COMPLETION], 0, match);
}
/* to optimize this, make the match a hash table */
@@ -620,7 +613,7 @@ e_completion_lost_match (ECompletion *complete, ECompletionMatch *match)
/* maybe just return here? */
g_return_if_fail (removed);
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_LOST_COMPLETION], match);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_LOST_COMPLETION], 0, match);
e_completion_match_unref (match);
}
@@ -639,7 +632,7 @@ e_completion_end_search (ECompletion *complete)
if (e_completion_sort (complete))
e_completion_restart (complete);
- gtk_signal_emit (GTK_OBJECT (complete), e_completion_signals[E_COMPLETION_END_COMPLETION]);
+ g_signal_emit (complete, e_completion_signals[E_COMPLETION_END_COMPLETION], 0);
complete->priv->searching = FALSE;
complete->priv->done_search = TRUE;