aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2002-11-02 08:23:28 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2002-11-02 08:23:28 +0800
commit793f838a7be8618034e8544ca364c0f09457f316 (patch)
tree8ea3e85045955877d56edd31b40ef263ed11a637
parente5f0f54052e2bec6f02d4f0c3169355ffdb4f7ec (diff)
downloadgsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar.gz
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar.bz2
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar.lz
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar.xz
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.tar.zst
gsoc2013-evolution-793f838a7be8618034e8544ca364c0f09457f316.zip
Ported to GObject.
2002-11-01 Jeffrey Stedfast <fejj@ximian.com> * filter-element.c: Ported to GObject. * filter-input.c: Same. * filter-code.c: This too. * filter-colour.c: And this. * filter-datespec.c: You guessed it. * filter-file.c: And again... * filter-folder.c: Wheee! This is fun... * filter-int.c: Gee, I wonder... * filter-label.c: Also ported. * filter-option.c: Yep, this too. * filter-source.c: And finally this one. svn path=/trunk/; revision=18495
-rw-r--r--filter/ChangeLog10
-rw-r--r--filter/filter-folder.c122
-rw-r--r--filter/filter-folder.h34
-rw-r--r--filter/filter-int.c143
-rw-r--r--filter/filter-int.h25
-rw-r--r--filter/filter-label.c87
-rw-r--r--filter/filter-label.h19
-rw-r--r--filter/filter-option.c150
-rw-r--r--filter/filter-option.h38
-rw-r--r--filter/filter-source.c177
-rw-r--r--filter/filter-source.h54
11 files changed, 433 insertions, 426 deletions
diff --git a/filter/ChangeLog b/filter/ChangeLog
index c41b423058..0a4c0fdadf 100644
--- a/filter/ChangeLog
+++ b/filter/ChangeLog
@@ -12,6 +12,16 @@
* filter-file.c: And again...
+ * filter-folder.c: Wheee! This is fun...
+
+ * filter-int.c: Gee, I wonder...
+
+ * filter-label.c: Also ported.
+
+ * filter-option.c: Yep, this too.
+
+ * filter-source.c: And finally this one.
+
2002-10-30 Dan Winship <danw@ximian.com>
* rule-editor.c (rule_add): Adjust default rule editor size to
diff --git a/filter/filter-folder.c b/filter/filter-folder.c
index f33735ea39..ab6531e0f8 100644
--- a/filter/filter-folder.c
+++ b/filter/filter-folder.c
@@ -1,7 +1,9 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Copyright (C) 2000 Ximian Inc.
+ * Copyright (C) 2000-2002 Ximian Inc.
*
* Authors: Not Zed <notzed@lostzed.mmc.com.au>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,9 +20,11 @@
* Boston, MA 02111-1307, USA.
*/
+
+#ifdef HAVE_CONFIG_H
#include <config.h>
+#endif
-#include <glib.h>
#include <libgnome/gnome-defs.h>
#include <libgnome/gnome-i18n.h>
#include <libgnomeui/gnome-dialog.h>
@@ -34,85 +38,84 @@
#define d(x)
static gboolean validate (FilterElement *fe);
-static int folder_eq(FilterElement *fe, FilterElement *cm);
-static void xml_create(FilterElement *fe, xmlNodePtr node);
-static xmlNodePtr xml_encode(FilterElement *fe);
-static int xml_decode(FilterElement *fe, xmlNodePtr node);
-static GtkWidget *get_widget(FilterElement *fe);
-static void build_code(FilterElement *fe, GString *out, struct _FilterPart *ff);
-static void format_sexp(FilterElement *, GString *);
+static int folder_eq (FilterElement *fe, FilterElement *cm);
+static void xml_create (FilterElement *fe, xmlNodePtr node);
+static xmlNodePtr xml_encode (FilterElement *fe);
+static int xml_decode (FilterElement *fe, xmlNodePtr node);
+static GtkWidget *get_widget (FilterElement *fe);
+static void build_code (FilterElement *fe, GString *out, struct _FilterPart *ff);
+static void format_sexp (FilterElement *, GString *);
-extern EvolutionShellClient *global_shell_client;
+static void filter_folder_class_init (FilterFolderClass *class);
+static void filter_folder_init (FilterFolder *ff);
+static void filter_folder_finalise (GObject *obj);
-static void filter_folder_class_init (FilterFolderClass *class);
-static void filter_folder_init (FilterFolder *gspaper);
-static void filter_folder_finalise (GtkObject *obj);
-#define _PRIVATE(x) (((FilterFolder *)(x))->priv)
+static FilterElementClass *parent_class;
-struct _FilterFolderPrivate {
-};
-static FilterElementClass *parent_class;
+extern EvolutionShellClient *global_shell_client;
+
-guint
+GType
filter_folder_get_type (void)
{
- static guint type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo type_info = {
- "FilterFolder",
- sizeof(FilterFolder),
- sizeof(FilterFolderClass),
- (GtkClassInitFunc)filter_folder_class_init,
- (GtkObjectInitFunc)filter_folder_init,
- (GtkArgSetFunc)NULL,
- (GtkArgGetFunc)NULL
+ static const GTypeInfo info = {
+ sizeof (FilterFolderClass),
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) filter_folder_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (FilterFolder),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) filter_folder_init,
};
- type = gtk_type_unique (filter_element_get_type (), &type_info);
+ type = g_type_register_static (FILTER_TYPE_ELEMENT, "FilterFolder", &info, 0);
}
return type;
}
static void
-filter_folder_class_init (FilterFolderClass *class)
+filter_folder_class_init (FilterFolderClass *klass)
{
- GtkObjectClass *object_class;
- FilterElementClass *filter_element = (FilterElementClass *)class;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ FilterElementClass *fe_class = FILTER_ELEMENT_CLASS (klass);
+
+ parent_class = g_type_class_ref (FILTER_TYPE_ELEMENT);
- object_class = (GtkObjectClass *)class;
- parent_class = gtk_type_class (filter_element_get_type ());
-
object_class->finalize = filter_folder_finalise;
-
+
/* override methods */
- filter_element->validate = validate;
- filter_element->eq = folder_eq;
- filter_element->xml_create = xml_create;
- filter_element->xml_encode = xml_encode;
- filter_element->xml_decode = xml_decode;
- filter_element->get_widget = get_widget;
- filter_element->build_code = build_code;
- filter_element->format_sexp = format_sexp;
+ fe_class->validate = validate;
+ fe_class->eq = folder_eq;
+ fe_class->xml_create = xml_create;
+ fe_class->xml_encode = xml_encode;
+ fe_class->xml_decode = xml_decode;
+ fe_class->get_widget = get_widget;
+ fe_class->build_code = build_code;
+ fe_class->format_sexp = format_sexp;
}
static void
-filter_folder_init (FilterFolder *o)
+filter_folder_init (FilterFolder *ff)
{
- o->priv = g_malloc0 (sizeof (*o->priv));
+ ;
}
static void
-filter_folder_finalise (GtkObject *obj)
+filter_folder_finalise (GObject *obj)
{
- FilterFolder *o = (FilterFolder *)obj;
+ FilterFolder *ff = (FilterFolder *) obj;
- g_free (o->uri);
+ g_free (ff->uri);
- ((GtkObjectClass *)(parent_class))->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
}
/**
@@ -125,15 +128,14 @@ filter_folder_finalise (GtkObject *obj)
FilterFolder *
filter_folder_new (void)
{
- FilterFolder *o = (FilterFolder *)gtk_type_new (filter_folder_get_type ());
- return o;
+ return (FilterFolder *) g_object_new (FILTER_TYPE_FOLDER, NULL, NULL);
}
void
-filter_folder_set_value(FilterFolder *ff, const char *uri)
+filter_folder_set_value (FilterFolder *ff, const char *uri)
{
- g_free(ff->uri);
- ff->uri = g_strdup(uri);
+ g_free (ff->uri);
+ ff->uri = g_strdup (uri);
}
static gboolean
@@ -155,9 +157,9 @@ validate (FilterElement *fe)
}
static int
-folder_eq(FilterElement *fe, FilterElement *cm)
+folder_eq (FilterElement *fe, FilterElement *cm)
{
- return ((FilterElementClass *)(parent_class))->eq(fe, cm)
+ return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
&& strcmp(((FilterFolder *)fe)->uri, ((FilterFolder *)cm)->uri) == 0;
}
@@ -165,7 +167,7 @@ static void
xml_create (FilterElement *fe, xmlNodePtr node)
{
/* parent implementation */
- ((FilterElementClass *)(parent_class))->xml_create(fe, node);
+ FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node);
}
static xmlNodePtr
@@ -201,7 +203,7 @@ xml_decode (FilterElement *fe, xmlNodePtr node)
while (n) {
if (!strcmp (n->name, "folder")) {
char *uri;
-
+
uri = xmlGetProp (n, "uri");
g_free (ff->uri);
ff->uri = g_strdup (uri);
@@ -236,9 +238,9 @@ get_widget (FilterElement *fe)
_("Select Folder"),
ff->uri,
allowed_types);
-
+
gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "selected", folder_selected, ff);
+ g_signal_connect (button, "selected", folder_selected, ff);
return button;
}
diff --git a/filter/filter-folder.h b/filter/filter-folder.h
index d69a5e5352..0e541a580b 100644
--- a/filter/filter-folder.h
+++ b/filter/filter-folder.h
@@ -1,7 +1,9 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Copyright (C) 2000 Ximian Inc.
+ * Copyright (C) 2000-2002 Ximian Inc.
*
* Authors: Not Zed <notzed@lostzed.mmc.com.au>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,38 +20,40 @@
* Boston, MA 02111-1307, USA.
*/
+
#ifndef _FILTER_FOLDER_H
#define _FILTER_FOLDER_H
#include "filter-element.h"
-#define FILTER_FOLDER(obj) GTK_CHECK_CAST (obj, filter_folder_get_type (), FilterFolder)
-#define FILTER_FOLDER_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, filter_folder_get_type (), FilterFolderClass)
-#define IS_FILTER_FOLDER(obj) GTK_CHECK_TYPE (obj, filter_folder_get_type ())
+#define FILTER_TYPE_FOLDER (filter_folder_get_type ())
+#define FILTER_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILTER_TYPE_FOLDER, FilterFolder))
+#define FILTER_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILTER_TYPE_FOLDER, FilterFolderClass))
+#define IS_FILTER_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILTER_TYPE_FOLDER))
+#define IS_FILTER_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILTER_TYPE_FOLDER))
+#define FILTER_FOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILTER_TYPE_FOLDER, FilterFolderClass))
-typedef struct _FilterFolder FilterFolder;
-typedef struct _FilterFolderClass FilterFolderClass;
+typedef struct _FilterFolder FilterFolder;
+typedef struct _FilterFolderClass FilterFolderClass;
struct _FilterFolder {
- FilterElement parent;
- struct _FilterFolderPrivate *priv;
-
+ FilterElement parent_object;
+
char *uri;
};
struct _FilterFolderClass {
FilterElementClass parent_class;
-
+
/* virtual methods */
-
+
/* signals */
};
-guint filter_folder_get_type (void);
-FilterFolder *filter_folder_new (void);
+GType filter_folder_get_type (void);
+FilterFolder *filter_folder_new (void);
/* methods */
-void filter_folder_set_value(FilterFolder *ff, const char *uri);
+void filter_folder_set_value (FilterFolder *ff, const char *uri);
#endif /* ! _FILTER_FOLDER_H */
-
diff --git a/filter/filter-int.c b/filter/filter-int.c
index e6b5cb8a55..4378204b92 100644
--- a/filter/filter-int.c
+++ b/filter/filter-int.c
@@ -1,30 +1,31 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Ripped off by Sam Creasey <sammy@oh.verio.com> from
- * filter-score by Jeffrey Stedfast <fejj@helixcode.com>
+ * Authors: Jeffrey Stedfast <fejj@ximian.com>
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * Copyright 2002 Ximian, Inc. (www.ximian.com)
*
- * 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.
+ * 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.
*
- * 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.
+ * 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 Street #330, Boston, MA 02111-1307, USA.
*
*/
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdlib.h>
-#include <gtk/gtksignal.h>
#include <gtk/gtkspinbutton.h>
#include "e-util/e-sexp.h"
@@ -32,7 +33,7 @@
#define d(x)
-static int int_eq(FilterElement *fe, FilterElement *cm);
+static int int_eq (FilterElement *fe, FilterElement *cm);
static void xml_create (FilterElement *fe, xmlNodePtr node);
static xmlNodePtr xml_encode (FilterElement *fe);
static int xml_decode (FilterElement *fe, xmlNodePtr node);
@@ -40,80 +41,73 @@ static GtkWidget *get_widget (FilterElement *fe);
static void build_code (FilterElement *fe, GString *out, struct _FilterPart *ff);
static void format_sexp (FilterElement *fe, GString *out);
-static void filter_int_class_init (FilterIntClass *class);
-static void filter_int_init (FilterInt *gspaper);
-static void filter_int_finalise (GtkObject *obj);
+static void filter_int_class_init (FilterIntClass *klass);
+static void filter_int_init (FilterInt *fi);
+static void filter_int_finalise (GObject *obj);
-static FilterElementClass *parent_class;
-enum {
- LAST_SIGNAL
-};
+static FilterElementClass *parent_class;
-static guint signals[LAST_SIGNAL] = { 0 };
-GtkType
+GType
filter_int_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo type_info = {
- "FilterInt",
- sizeof (FilterInt),
+ static const GTypeInfo info = {
sizeof (FilterIntClass),
- (GtkClassInitFunc) filter_int_class_init,
- (GtkObjectInitFunc) filter_int_init,
- (GtkArgSetFunc) NULL,
- (GtkArgGetFunc) NULL
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) filter_int_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (FilterInt),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) filter_int_init,
};
- type = gtk_type_unique (filter_element_get_type (), &type_info);
+ type = g_type_register_static (FILTER_TYPE_ELEMENT, "FilterInt", &info, 0);
}
return type;
}
static void
-filter_int_class_init (FilterIntClass *class)
+filter_int_class_init (FilterIntClass *klass)
{
- GtkObjectClass *object_class;
- FilterElementClass *filter_element = (FilterElementClass *)class;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ FilterElementClass *fe_class = FILTER_ELEMENT_CLASS (klass);
- object_class = (GtkObjectClass *)class;
- parent_class = gtk_type_class (filter_element_get_type ());
+ parent_class = g_type_class_ref (FILTER_TYPE_ELEMENT);
object_class->finalize = filter_int_finalise;
/* override methods */
- filter_element->eq = int_eq;
- filter_element->xml_create = xml_create;
- filter_element->xml_encode = xml_encode;
- filter_element->xml_decode = xml_decode;
- filter_element->get_widget = get_widget;
- filter_element->build_code = build_code;
- filter_element->format_sexp = format_sexp;
-
- /* signals */
-
- gtk_object_class_add_signals(object_class, signals, LAST_SIGNAL);
+ fe_class->eq = int_eq;
+ fe_class->xml_create = xml_create;
+ fe_class->xml_encode = xml_encode;
+ fe_class->xml_decode = xml_decode;
+ fe_class->get_widget = get_widget;
+ fe_class->build_code = build_code;
+ fe_class->format_sexp = format_sexp;
}
static void
-filter_int_init (FilterInt *o)
+filter_int_init (FilterInt *fi)
{
- o->min = 0;
- o->max = G_MAXINT;
+ fi->min = 0;
+ fi->max = G_MAXINT;
}
static void
-filter_int_finalise(GtkObject *obj)
+filter_int_finalise (GObject *obj)
{
- FilterInt *o = (FilterInt *)obj;
-
- g_free(o->type);
+ FilterInt *fi = (FilterInt *) obj;
+
+ g_free (fi->type);
- ((GtkObjectClass *)(parent_class))->finalize(obj);
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
}
/**
@@ -126,30 +120,33 @@ filter_int_finalise(GtkObject *obj)
FilterInt *
filter_int_new (void)
{
- FilterInt *o = (FilterInt *)gtk_type_new(filter_int_get_type ());
- return o;
+ return (FilterInt *) g_object_new (FILTER_TYPE_INT, NULL, NULL);
}
FilterInt *
-filter_int_new_type(const char *type, int min, int max)
+filter_int_new_type (const char *type, int min, int max)
{
- FilterInt *o = (FilterInt *)gtk_type_new(filter_int_get_type ());
- o->type = g_strdup(type);
- o->min = min;
- o->max = max;
+ FilterInt *fi;
+
+ fi = filter_int_new ();
+
+ fi->type = g_strdup (type);
+ fi->min = min;
+ fi->max = max;
+
return o;
}
void
-filter_int_set_value(FilterInt *fi, int val)
+filter_int_set_value (FilterInt *fi, int val)
{
fi->val = val;
}
static int
-int_eq(FilterElement *fe, FilterElement *cm)
+int_eq (FilterElement *fe, FilterElement *cm)
{
- return ((FilterElementClass *)(parent_class))->eq(fe, cm)
+ return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
&& ((FilterInt *)fe)->val == ((FilterInt *)cm)->val;
}
@@ -157,7 +154,7 @@ static void
xml_create (FilterElement *fe, xmlNodePtr node)
{
/* parent implementation */
- ((FilterElementClass *)(parent_class))->xml_create(fe, node);
+ FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node);
}
static xmlNodePtr
@@ -169,7 +166,7 @@ xml_encode (FilterElement *fe)
const char *type;
type = fs->type?fs->type:"integer";
-
+
d(printf("Encoding %s as xml\n", type));
value = xmlNewNode (NULL, "value");
@@ -195,7 +192,7 @@ xml_decode (FilterElement *fe, xmlNodePtr node)
d(printf ("Name = %s\n", name));
xmlFree (fe->name);
fe->name = name;
-
+
type = xmlGetProp(node, "type");
d(printf ("Type = %s\n", type));
g_free(fs->type);
@@ -237,7 +234,7 @@ get_widget (FilterElement *fe)
if (fs->val)
gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), (gfloat) fs->val);
- gtk_signal_connect (GTK_OBJECT (spin), "changed", spin_changed, fe);
+ g_signal_connect (spin, "changed", spin_changed, fe);
return spin;
}
@@ -252,6 +249,6 @@ static void
format_sexp (FilterElement *fe, GString *out)
{
FilterInt *fs = (FilterInt *)fe;
-
- g_string_sprintfa(out, "%d", fs->val);
+
+ g_string_sprintfa (out, "%d", fs->val);
}
diff --git a/filter/filter-int.h b/filter/filter-int.h
index 833fd30bc8..caba992958 100644
--- a/filter/filter-int.h
+++ b/filter/filter-int.h
@@ -26,16 +26,19 @@
#include "filter-element.h"
-#define FILTER_INT(obj) GTK_CHECK_CAST (obj, filter_int_get_type (), FilterInt)
-#define FILTER_INT_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, filter_int_get_type (), FilterIntClass)
-#define IS_FILTER_INT(obj) GTK_CHECK_TYPE (obj, filter_int_get_type ())
+#define FILTER_TYPE_INT (filter_int_get_type ())
+#define FILTER_INT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILTER_TYPE_INT, FilterInt))
+#define FILTER_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILTER_TYPE_INT, FilterIntClass))
+#define IS_FILTER_INT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILTER_TYPE_INT))
+#define IS_FILTER_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILTER_TYPE_INT))
+#define FILTER_INT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILTER_TYPE_INT, FilterIntClass))
-typedef struct _FilterInt FilterInt;
-typedef struct _FilterIntClass FilterIntClass;
+typedef struct _FilterInt FilterInt;
+typedef struct _FilterIntClass FilterIntClass;
struct _FilterInt {
- FilterElement parent;
-
+ FilterElement parent_object;
+
char *type;
int val;
int min;
@@ -50,10 +53,10 @@ struct _FilterIntClass {
/* signals */
};
-GtkType filter_int_get_type (void);
-FilterInt *filter_int_new (void);
-FilterInt *filter_int_new_type(const char *type, int min, int max);
-void filter_int_set_value(FilterInt *fi, int val);
+GType filter_int_get_type (void);
+FilterInt *filter_int_new (void);
+FilterInt *filter_int_new_type (const char *type, int min, int max);
+void filter_int_set_value (FilterInt *fi, int val);
/* methods */
diff --git a/filter/filter-label.c b/filter/filter-label.c
index c7c44fbb0f..de82f04b52 100644
--- a/filter/filter-label.c
+++ b/filter/filter-label.c
@@ -27,7 +27,6 @@
#endif
#include <string.h>
-#include <gtk/gtkobject.h>
#include <gtk/gtkwidget.h>
#include <libgnome/gnome-defs.h>
@@ -54,33 +53,31 @@ static void xml_create (FilterElement *fe, xmlNodePtr node);
static void filter_label_class_init (FilterLabelClass *klass);
static void filter_label_init (FilterLabel *label);
-static void filter_label_finalise (GtkObject *obj);
+static void filter_label_finalise (GObject *obj);
-static FilterElementClass *parent_class;
-enum {
- LAST_SIGNAL
-};
+static FilterElementClass *parent_class;
-static guint signals[LAST_SIGNAL] = { 0 };
-GtkType
+GType
filter_label_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo type_info = {
- "FilterLabel",
- sizeof (FilterLabel),
+ static const GTypeInfo info = {
sizeof (FilterLabelClass),
- (GtkClassInitFunc) filter_label_class_init,
- (GtkObjectInitFunc) filter_label_init,
- (GtkArgSetFunc) NULL,
- (GtkArgGetFunc) NULL
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) filter_label_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (FilterLabel),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) filter_label_init,
};
- type = gtk_type_unique (filter_option_get_type (), &type_info);
+ type = g_type_register_static (FILTER_TYPE_OPTION, "FilterLabel", &info, 0);
}
return type;
@@ -89,30 +86,27 @@ filter_label_get_type (void)
static void
filter_label_class_init (FilterLabelClass *klass)
{
- GtkObjectClass *object_class = (GtkObjectClass *) klass;
- FilterElementClass *filter_element = (FilterElementClass *) klass;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ FilterElementClass *fe_class = FILTER_ELEMENT_CLASS (klass);
- parent_class = gtk_type_class (filter_option_get_type ());
+ parent_class = g_type_class_ref (FILTER_TYPE_OPTION);
object_class->finalize = filter_label_finalise;
/* override methods */
- filter_element->xml_create = xml_create;
-
- /* signals */
- gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
+ fe_class->xml_create = xml_create;
}
static void
-filter_label_init (FilterLabel *o)
+filter_label_init (FilterLabel *fl)
{
- ((FilterOption *)o)->type = "label";
+ ((FilterOption *) fl)->type = "label";
}
static void
filter_label_finalise (GtkObject *obj)
{
- ((GtkObjectClass *)(parent_class))->finalize (obj);
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
}
/**
@@ -125,7 +119,7 @@ filter_label_finalise (GtkObject *obj)
FilterLabel *
filter_label_new (void)
{
- return (FilterLabel *) gtk_type_new (filter_label_get_type ());
+ return (FilterLabel *) g_object_new (FILTER_TYPE_LABEL, NULL, NULL);
}
static struct {
@@ -140,28 +134,31 @@ static struct {
{ "/Mail/Labels/label_4", N_("Later"), "later" },
};
-int filter_label_count(void)
+int
+filter_label_count (void)
{
- return sizeof(labels)/sizeof(labels[0]);
+ return (sizeof (labels) / sizeof (labels[0]));
}
-const char *filter_label_label(int i)
+const char *
+filter_label_label (int i)
{
- if (i<0 || i >= sizeof(labels)/sizeof(labels[0]))
+ if (i < 0 || i >= sizeof (labels) / sizeof (labels[0]))
return NULL;
else
return labels[i].value;
}
-int filter_label_index(const char *label)
+int
+filter_label_index (const char *label)
{
int i;
-
- for (i=0;i<sizeof(labels)/sizeof(labels[0]);i++) {
- if (strcmp(labels[i].value, label) == 0)
+
+ for (i = 0; i < sizeof (labels) / sizeof (labels[0]); i++) {
+ if (strcmp (labels[i].value, label) == 0)
return i;
}
-
+
return -1;
}
@@ -172,9 +169,9 @@ xml_create (FilterElement *fe, xmlNodePtr node)
Bonobo_ConfigDatabase db;
CORBA_Environment ev;
int i;
-
- ((FilterElementClass *)(parent_class))->xml_create(fe, node);
-
+
+ FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node);
+
CORBA_exception_init (&ev);
db = bonobo_get_object ("wombat:", "Bonobo/ConfigDatabase", &ev);
@@ -182,18 +179,18 @@ xml_create (FilterElement *fe, xmlNodePtr node)
db = CORBA_OBJECT_NIL;
CORBA_exception_free (&ev);
-
- for (i=0;i<sizeof(labels)/sizeof(labels[0]);i++) {
+
+ for (i = 0; i < sizeof (labels) / sizeof (labels[0]); i++) {
const char *title;
char *btitle;
if (db == CORBA_OBJECT_NIL
- || (title = btitle = bonobo_config_get_string(db, labels[i].path, NULL)) == NULL) {
+ || (title = btitle = bonobo_config_get_string (db, labels[i].path, NULL)) == NULL) {
btitle = NULL;
title = U_(labels[i].title);
}
- filter_option_add(fo, labels[i].value, title, NULL);
- g_free(btitle);
+ filter_option_add (fo, labels[i].value, title, NULL);
+ g_free (btitle);
}
}
diff --git a/filter/filter-label.h b/filter/filter-label.h
index a348e88efb..c62f806fa0 100644
--- a/filter/filter-label.h
+++ b/filter/filter-label.h
@@ -31,15 +31,18 @@ extern "C" {
#include "filter-option.h"
-#define FILTER_LABEL(obj) GTK_CHECK_CAST (obj, filter_label_get_type (), FilterLabel)
-#define FILTER_LABEL_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, filter_label_get_type (), FilterLabelClass)
-#define IS_FILTER_LABEL(obj) GTK_CHECK_TYPE (obj, filter_label_get_type ())
+#define FILTER_TYPE_LABEL (filter_label_get_type ())
+#define FILTER_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILTER_TYPE_LABEL, FilterLabel))
+#define FILTER_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILTER_TYPE_LABEL, FilterLabelClass))
+#define IS_FILTER_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILTER_TYPE_LABEL))
+#define IS_FILTER_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILTER_TYPE_LABEL))
+#define FILTER_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILTER_TYPE_LABEL, FilterLabelClass))
typedef struct _FilterLabel FilterLabel;
typedef struct _FilterLabelClass FilterLabelClass;
struct _FilterLabel {
- FilterOption parent;
+ FilterOption parent_object;
};
struct _FilterLabelClass {
@@ -50,14 +53,14 @@ struct _FilterLabelClass {
/* signals */
};
-GtkType filter_label_get_type (void);
+GType filter_label_get_type (void);
FilterLabel *filter_label_new (void);
/* Sigh, this is a mess, but its cleaner than the original mess */
-int filter_label_count(void);
-const char *filter_label_label(int i);
-int filter_label_index(const char *label);
+int filter_label_count (void);
+const char *filter_label_label (int i);
+int filter_label_index (const char *label);
#ifdef __cplusplus
}
diff --git a/filter/filter-option.c b/filter/filter-option.c
index 8bf1601ca7..8d3429ca69 100644
--- a/filter/filter-option.c
+++ b/filter/filter-option.c
@@ -1,7 +1,9 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Copyright (C) 2000 Ximian Inc.
+ * Copyright (C) 2000-2002 Ximian Inc.
*
* Authors: Not Zed <notzed@lostzed.mmc.com.au>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,10 +20,13 @@
* Boston, MA 02111-1307, USA.
*/
+
+#ifdef HAVE_CONFIG_H
#include <config.h>
+#endif
#include <string.h>
-#include <glib.h>
+
#include <gtk/gtkmenuitem.h>
#include <gtk/gtkoptionmenu.h>
#include <libgnome/gnome-defs.h>
@@ -34,106 +39,92 @@
#define d(x)
-static int option_eq(FilterElement *fe, FilterElement *cm);
-static void xml_create(FilterElement *fe, xmlNodePtr node);
-static xmlNodePtr xml_encode(FilterElement *fe);
-static int xml_decode(FilterElement *fe, xmlNodePtr node);
-static FilterElement *clone(FilterElement *fe);
-static GtkWidget *get_widget(FilterElement *fe);
-static void build_code(FilterElement *fe, GString *out, struct _FilterPart *ff);
-static void format_sexp(FilterElement *, GString *);
-
-static void filter_option_class_init (FilterOptionClass *class);
-static void filter_option_init (FilterOption *gspaper);
-static void filter_option_finalise (GtkObject *obj);
+static int option_eq (FilterElement *fe, FilterElement *cm);
+static void xml_create (FilterElement *fe, xmlNodePtr node);
+static xmlNodePtr xml_encode (FilterElement *fe);
+static int xml_decode (FilterElement *fe, xmlNodePtr node);
+static FilterElement *clone (FilterElement *fe);
+static GtkWidget *get_widget (FilterElement *fe);
+static void build_code (FilterElement *fe, GString *out, struct _FilterPart *ff);
+static void format_sexp (FilterElement *, GString *);
-#define _PRIVATE(x) (((FilterOption *)(x))->priv)
+static void filter_option_class_init (FilterOptionClass *klass);
+static void filter_option_init (FilterOption *fo);
+static void filter_option_finalise (GObject *obj);
-struct _FilterOptionPrivate {
-};
static FilterElementClass *parent_class;
-enum {
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-
-guint
+GType
filter_option_get_type (void)
{
- static guint type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo type_info = {
- "FilterOption",
- sizeof(FilterOption),
- sizeof(FilterOptionClass),
- (GtkClassInitFunc)filter_option_class_init,
- (GtkObjectInitFunc)filter_option_init,
- (GtkArgSetFunc)NULL,
- (GtkArgGetFunc)NULL
+ static const GTypeInfo info = {
+ sizeof (FilterOptionClass),
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) filter_option_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (FilterOption),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) filter_option_init,
};
- type = gtk_type_unique (filter_element_get_type (), &type_info);
+ type = g_type_register_static (FILTER_TYPE_ELEMENT, "FilterOption", &info, 0);
}
return type;
}
static void
-filter_option_class_init (FilterOptionClass *class)
+filter_option_class_init (FilterOptionClass *klass)
{
- GtkObjectClass *object_class;
- FilterElementClass *filter_element = (FilterElementClass *)class;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ FilterElementClass *fe_class = FILTER_ELEMENT_CLASS (klass);
+
+ parent_class = g_type_class_ref (FILTER_TYPE_ELEMENT);
- object_class = (GtkObjectClass *)class;
- parent_class = gtk_type_class(filter_element_get_type ());
-
object_class->finalize = filter_option_finalise;
/* override methods */
- filter_element->eq = option_eq;
- filter_element->xml_create = xml_create;
- filter_element->xml_encode = xml_encode;
- filter_element->xml_decode = xml_decode;
- filter_element->clone = clone;
- filter_element->get_widget = get_widget;
- filter_element->build_code = build_code;
- filter_element->format_sexp = format_sexp;
-
- /* signals */
-
- gtk_object_class_add_signals(object_class, signals, LAST_SIGNAL);
+ fe_class->eq = option_eq;
+ fe_class->xml_create = xml_create;
+ fe_class->xml_encode = xml_encode;
+ fe_class->xml_decode = xml_decode;
+ fe_class->clone = clone;
+ fe_class->get_widget = get_widget;
+ fe_class->build_code = build_code;
+ fe_class->format_sexp = format_sexp;
}
static void
-filter_option_init (FilterOption *o)
+filter_option_init (FilterOption *fo)
{
- o->type = "option";
-
- o->priv = g_malloc0 (sizeof (*o->priv));
+ fo->type = "option";
}
static void
-free_option(struct _filter_option *o, void *data)
+free_option (struct _filter_option *o, void *data)
{
- g_free(o->title);
- g_free(o->value);
- g_free(o->code);
- g_free(o);
+ g_free (o->title);
+ g_free (o->value);
+ g_free (o->code);
+ g_free (o);
}
static void
-filter_option_finalise (GtkObject *obj)
+filter_option_finalise (GObject *obj)
{
- FilterOption *o = (FilterOption *)obj;
-
- g_list_foreach(o->options, (GFunc)free_option, NULL);
- g_list_free(o->options);
+ FilterOption *fo = (FilterOption *) obj;
- ((GtkObjectClass *)(parent_class))->finalize(obj);
+ g_list_foreach (fo->options, (GFunc)free_option, NULL);
+ g_list_free (fo->options);
+
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
}
/**
@@ -146,8 +137,7 @@ filter_option_finalise (GtkObject *obj)
FilterOption *
filter_option_new (void)
{
- FilterOption *o = (FilterOption *)gtk_type_new (filter_option_get_type ());
- return o;
+ return (FilterOption *) g_object_new (FILTER_TYPE_OPTION, NULL, NULL);
}
static struct _filter_option *
@@ -180,15 +170,15 @@ void
filter_option_add(FilterOption *fo, const char *value, const char *title, const char *code)
{
struct _filter_option *op;
-
+
g_assert(IS_FILTER_OPTION(fo));
g_return_if_fail(find_option(fo, value) == NULL);
-
+
op = g_malloc(sizeof(*op));
op->title = g_strdup(title);
op->value = g_strdup(value);
op->code = g_strdup(code);
-
+
fo->options = g_list_append(fo->options, op);
if (fo->current == NULL)
fo->current = op;
@@ -198,8 +188,8 @@ static int
option_eq(FilterElement *fe, FilterElement *cm)
{
FilterOption *fo = (FilterOption *)fe, *co = (FilterOption *)cm;
-
- return ((FilterElementClass *)(parent_class))->eq(fe, cm)
+
+ return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
&& ((fo->current && co->current && strcmp(fo->current->value, co->current->value) == 0)
|| (fo->current == NULL && co->current == NULL));
}
@@ -211,7 +201,7 @@ xml_create (FilterElement *fe, xmlNodePtr node)
xmlNodePtr n, work;
/* parent implementation */
- ((FilterElementClass *)(parent_class))->xml_create(fe, node);
+ FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node);
n = node->childs;
while (n) {
@@ -289,7 +279,7 @@ option_changed (GtkWidget *widget, FilterElement *fe)
{
FilterOption *fo = (FilterOption *)fe;
- fo->current = gtk_object_get_data (GTK_OBJECT (widget), "option");
+ fo->current = g_object_get_data (widget, "option");
}
static GtkWidget *
@@ -308,8 +298,8 @@ get_widget (FilterElement *fe)
while (l) {
op = l->data;
item = gtk_menu_item_new_with_label (_(op->title));
- gtk_object_set_data (GTK_OBJECT (item), "option", op);
- gtk_signal_connect (GTK_OBJECT (item), "activate", option_changed, fe);
+ g_object_set_data (item, "option", op);
+ g_signal_connect (item, "activate", option_changed, fe);
gtk_menu_append (GTK_MENU (menu), item);
gtk_widget_show (item);
if (op == fo->current) {
@@ -327,7 +317,7 @@ get_widget (FilterElement *fe)
gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
if (first)
- gtk_signal_emit_by_name (GTK_OBJECT (first), "activate", fe);
+ g_signal_emit_by_name (first, "activate", fe);
gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), current);
@@ -363,7 +353,7 @@ clone (FilterElement *fe)
d(printf ("cloning option\n"));
- new = FILTER_OPTION (((FilterElementClass *)(parent_class))->clone(fe));
+ new = FILTER_OPTION (FILTER_ELEMENT_CLASS (parent_class)->clone (fe));
l = fo->options;
while (l) {
op = l->data;
@@ -373,5 +363,5 @@ clone (FilterElement *fe)
d(printf ("cloning option code %p, current = %p\n", new, new->current));
- return (FilterElement *)new;
+ return (FilterElement *) new;
}
diff --git a/filter/filter-option.h b/filter/filter-option.h
index a296c75602..39418868ab 100644
--- a/filter/filter-option.h
+++ b/filter/filter-option.h
@@ -1,7 +1,9 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Copyright (C) 2000 Ximian Inc.
+ * Copyright (C) 2000-2002 Ximian Inc.
*
* Authors: Not Zed <notzed@lostzed.mmc.com.au>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,17 +20,21 @@
* Boston, MA 02111-1307, USA.
*/
+
#ifndef _FILTER_OPTION_H
#define _FILTER_OPTION_H
#include "filter-element.h"
-#define FILTER_OPTION(obj) GTK_CHECK_CAST (obj, filter_option_get_type (), FilterOption)
-#define FILTER_OPTION_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, filter_option_get_type (), FilterOptionClass)
-#define IS_FILTER_OPTION(obj) GTK_CHECK_TYPE (obj, filter_option_get_type ())
+#define FILTER_TYPE_OPTION (filter_option_get_type ())
+#define FILTER_OPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILTER_TYPE_OPTION, FilterOption))
+#define FILTER_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILTER_TYPE_OPTION, FilterOptionClass))
+#define IS_FILTER_OPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILTER_TYPE_OPTION))
+#define IS_FILTER_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILTER_TYPE_OPTION))
+#define FILTER_OPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILTER_TYPE_OPTION, FilterOptionClass))
-typedef struct _FilterOption FilterOption;
-typedef struct _FilterOptionClass FilterOptionClass;
+typedef struct _FilterOption FilterOption;
+typedef struct _FilterOptionClass FilterOptionClass;
struct _filter_option {
char *title; /* button title */
@@ -37,29 +43,27 @@ struct _filter_option {
};
struct _FilterOption {
- FilterElement parent;
- struct _FilterOptionPrivate *priv;
-
+ FilterElement parent_object;
+
const char *type; /* static memory, type name written to xml */
-
+
GList *options;
struct _filter_option *current;
};
struct _FilterOptionClass {
FilterElementClass parent_class;
-
+
/* virtual methods */
-
+
/* signals */
};
-guint filter_option_get_type (void);
-FilterOption *filter_option_new (void);
+GType filter_option_get_type (void);
+FilterOption *filter_option_new (void);
/* methods */
-void filter_option_set_current(FilterOption *option, const char *name);
-void filter_option_add(FilterOption *fo, const char *name, const char *title, const char *code);
+void filter_option_set_current (FilterOption *option, const char *name);
+void filter_option_add (FilterOption *fo, const char *name, const char *title, const char *code);
#endif /* ! _FILTER_OPTION_H */
-
diff --git a/filter/filter-source.c b/filter/filter-source.c
index 83e20d1bd5..4d9aa4f6f8 100644
--- a/filter/filter-source.c
+++ b/filter/filter-source.c
@@ -1,24 +1,24 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * filter-source.c
+ * Authors: Jon Trowbridge <trow@ximian.com>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
- * Copyright (C) 2001 Ximian, Inc.
+ * Copyright 2001-2002 Ximian, Inc. (www.ximian.com)
*
- * Authors: Jon Trowbridge <trow@ximian.com>
+ * 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 free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * 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.
*
- * 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 Street #330, Boston, MA 02111-1307, USA.
*
- * 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.
*/
@@ -41,90 +41,83 @@
#include <bonobo-conf/bonobo-config-database.h>
#include <camel/camel-url.h>
-typedef struct _SourceInfo SourceInfo;
-struct _SourceInfo {
+
+static void filter_source_class_init (FilterSourceClass *klass);
+static void filter_source_init (FilterSource *fs);
+static void filter_source_finalize (GObject *obj);
+
+static int source_eq (FilterElement *fe, FilterElement *cm);
+static void xml_create (FilterElement *fe, xmlNodePtr node);
+static xmlNodePtr xml_encode (FilterElement *fe);
+static int xml_decode (FilterElement *fe, xmlNodePtr node);
+static FilterElement *clone (FilterElement *fe);
+static GtkWidget *get_widget (FilterElement *fe);
+static void build_code (FilterElement *fe, GString *out, struct _FilterPart *ff);
+static void format_sexp (FilterElement *, GString *);
+
+static void filter_source_add_source (FilterSource *fs, const char *account_name, const char *name,
+ const char *addr, const char *url);
+static void filter_source_get_sources (FilterSource *fs);
+
+typedef struct _SourceInfo {
char *account_name;
char *name;
char *address;
char *url;
-};
+} SourceInfo;
struct _FilterSourcePrivate {
GList *sources;
char *current_url;
};
-static FilterElementClass *parent_class = NULL;
-enum {
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-static void filter_source_class_init (FilterSourceClass *);
-static void filter_source_init (FilterSource *);
-static void filter_source_finalize (GtkObject *);
-
-static int source_eq(FilterElement *fe, FilterElement *cm);
-static void xml_create(FilterElement *fe, xmlNodePtr node);
-static xmlNodePtr xml_encode(FilterElement *fe);
-static int xml_decode(FilterElement *fe, xmlNodePtr node);
-static FilterElement *clone(FilterElement *fe);
-static GtkWidget *get_widget(FilterElement *fe);
-static void build_code(FilterElement *fe, GString *out, struct _FilterPart *ff);
-static void format_sexp(FilterElement *, GString *);
-static void filter_source_add_source (FilterSource *fs, const char *account_name, const char *name,
- const char *addr, const char *url);
-static void filter_source_get_sources (FilterSource *fs);
+static FilterElementClass *parent_class = NULL;
-GtkType
+GType
filter_source_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (!type) {
- GtkTypeInfo type_info = {
- "FilterSource",
- sizeof(FilterSource),
- sizeof(FilterSourceClass),
- (GtkClassInitFunc)filter_source_class_init,
- (GtkObjectInitFunc)filter_source_init,
- (GtkArgSetFunc)NULL,
- (GtkArgGetFunc)NULL
+ static const GTypeInfo info = {
+ sizeof (FilterSourceClass),
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) filter_source_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (FilterSource),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) filter_source_init,
};
- type = gtk_type_unique (filter_element_get_type (), &type_info);
+ type = g_type_register_static (FILTER_TYPE_ELEMENT, "FilterSource", &info, 0);
}
return type;
}
static void
-filter_source_class_init (FilterSourceClass *class)
+filter_source_class_init (FilterSourceClass *klass)
{
- GtkObjectClass *object_class;
- FilterElementClass *filter_element = (FilterElementClass *)class;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ FilterElementClass *fe_class = FILTER_ELEMENT_CLASS (klass);
+
+ parent_class = g_type_class_ref (FILTER_TYPE_ELEMENT);
- object_class = (GtkObjectClass *)class;
- parent_class = gtk_type_class(filter_element_get_type ());
-
object_class->finalize = filter_source_finalize;
-
+
/* override methods */
- filter_element->eq = source_eq;
- filter_element->xml_create = xml_create;
- filter_element->xml_encode = xml_encode;
- filter_element->xml_decode = xml_decode;
- filter_element->clone = clone;
- filter_element->get_widget = get_widget;
- filter_element->build_code = build_code;
- filter_element->format_sexp = format_sexp;
-
- /* signals */
-
- gtk_object_class_add_signals(object_class, signals, LAST_SIGNAL);
+ fe_class->eq = source_eq;
+ fe_class->xml_create = xml_create;
+ fe_class->xml_encode = xml_encode;
+ fe_class->xml_decode = xml_decode;
+ fe_class->clone = clone;
+ fe_class->get_widget = get_widget;
+ fe_class->build_code = build_code;
+ fe_class->format_sexp = format_sexp;
}
static void
@@ -136,11 +129,11 @@ filter_source_init (FilterSource *fs)
}
static void
-filter_source_finalize (GtkObject *obj)
+filter_source_finalize (GObject *obj)
{
FilterSource *fs = FILTER_SOURCE (obj);
GList *i = fs->priv->sources;
-
+
while (i) {
SourceInfo *info = i->data;
g_free (info->account_name);
@@ -150,29 +143,28 @@ filter_source_finalize (GtkObject *obj)
g_free (info);
i = g_list_next (i);
}
-
+
g_list_free (fs->priv->sources);
-
+
g_free (fs->priv);
- if (GTK_OBJECT_CLASS (parent_class)->finalize)
- GTK_OBJECT_CLASS (parent_class)->finalize (obj);
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
}
FilterSource *
filter_source_new (void)
{
- FilterSource *s = (FilterSource *) gtk_type_new (filter_source_get_type ());
- return s;
+ return (FilterSource *) g_object_new (FILTER_TYPE_SOURCE, NULL, NULL);
}
static int
-source_eq(FilterElement *fe, FilterElement *cm)
+source_eq (FilterElement *fe, FilterElement *cm)
{
FilterSource *fs = (FilterSource *)fe, *cs = (FilterSource *)cm;
-
- return ((FilterElementClass *)parent_class)->eq(fe, cm)
- && ((fs->priv->current_url && cs->priv->current_url && strcmp(fs->priv->current_url, cs->priv->current_url) == 0)
+
+ return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
+ && ((fs->priv->current_url && cs->priv->current_url
+ && strcmp (fs->priv->current_url, cs->priv->current_url) == 0)
|| (fs->priv->current_url == NULL && cs->priv->current_url == NULL));
}
@@ -180,7 +172,7 @@ static void
xml_create (FilterElement *fe, xmlNodePtr node)
{
/* Call parent implementation */
- ((FilterElementClass *)parent_class)->xml_create (fe, node);
+ FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node);
}
static xmlNodePtr
@@ -217,7 +209,7 @@ xml_decode (FilterElement *fe, xmlNodePtr node)
fs->priv->current_url = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
camel_url_free (url);
}
-
+
return 0;
}
@@ -227,23 +219,23 @@ clone (FilterElement *fe)
FilterSource *fs = (FilterSource *) fe;
FilterSource *cpy = filter_source_new ();
GList *i;
-
- ((FilterElement *)cpy)->name = xmlStrdup (fe->name);
-
+
+ ((FilterElement *) cpy)->name = xmlStrdup (fe->name);
+
cpy->priv->current_url = g_strdup (fs->priv->current_url);
-
+
for (i = fs->priv->sources; i != NULL; i = g_list_next (i)) {
SourceInfo *info = (SourceInfo *) i->data;
filter_source_add_source (cpy, info->account_name, info->name, info->address, info->url);
}
-
+
return (FilterElement *) cpy;
}
static void
source_changed (GtkWidget *w, FilterSource *fs)
{
- SourceInfo *info = (SourceInfo *) gtk_object_get_data (GTK_OBJECT (w), "source");
+ SourceInfo *info = (SourceInfo *) g_object_get_data (w, "source");
g_free (fs->priv->current_url);
fs->priv->current_url = g_strdup (info->url);
@@ -287,8 +279,9 @@ get_widget (FilterElement *fe)
g_free (label);
g_free (native_label);
- gtk_object_set_data (GTK_OBJECT (item), "source", info);
- gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC (source_changed), fs);
+ g_object_set_data (item, "source", info);
+ g_signal_connect (item, "activate", source_changed, fs);
+
gtk_menu_append (GTK_MENU (menu), item);
gtk_widget_show (item);
@@ -340,7 +333,7 @@ filter_source_add_source (FilterSource *fs, const char *account_name, const char
{
SourceInfo *info;
- g_return_if_fail (fs && IS_FILTER_SOURCE (fs));
+ g_return_if_fail (IS_FILTER_SOURCE (fs));
info = g_new0 (SourceInfo, 1);
info->account_name = g_strdup (account_name);
diff --git a/filter/filter-source.h b/filter/filter-source.h
index da7cadb3dd..73bd63f503 100644
--- a/filter/filter-source.h
+++ b/filter/filter-source.h
@@ -1,52 +1,56 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * filter-source.h
+ * Authors: Jon Trowbridge <trow@ximian.com>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
- * Copyright (C) 2001 Ximian, Inc.
+ * Copyright 2001-2002 Ximian, Inc. (www.ximian.com)
*
- * Authors: Jon Trowbridge <trow@ximian.com>
+ * 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 free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * 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.
*
- * 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 Street #330, Boston, MA 02111-1307, USA.
*
- * 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 __FILTER_SOURCE_H__
#define __FILTER_SOURCE_H__
#include "filter-element.h"
-#define FILTER_SOURCE(obj) GTK_CHECK_CAST (obj, filter_source_get_type (), FilterSource)
-#define FILTER_SOURCE_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, filter_source_get_type (), FilterSourceClass)
-#define IS_FILTER_SOURCE(obj) GTK_CHECK_TYPE (obj, filter_source_get_type ())
+#define FILTER_TYPE_SOURCE (filter_source_get_type ())
+#define FILTER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FILTER_TYPE_SOURCE, FilterSource))
+#define FILTER_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FILTER_TYPE_SOURCE, FilterSourceClass))
+#define IS_FILTER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FILTER_TYPE_SOURCE))
+#define IS_FILTER_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FILTER_TYPE_SOURCE))
+#define FILTER_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FILTER_TYPE_SOURCE, FilterSourceClass))
-typedef struct _FilterSource FilterSource;
-typedef struct _FilterSourceClass FilterSourceClass;
-struct _FilterSourcePrivate;
+typedef struct _FilterSource FilterSource;
+typedef struct _FilterSourceClass FilterSourceClass;
struct _FilterSource {
- FilterElement parent;
+ FilterElement parent_object;
struct _FilterSourcePrivate *priv;
};
struct _FilterSourceClass {
FilterElementClass parent_class;
+
};
-GtkType filter_source_get_type (void);
-FilterSource *filter_source_new (void);
-void filter_source_set_current (FilterSource *src, const gchar *url);
+GType filter_source_get_type (void);
+FilterSource *filter_source_new (void);
-#endif /* __FILTER_SOURCE_H__ */
+void filter_source_set_current (FilterSource *src, const char *url);
+#endif /* __FILTER_SOURCE_H__ */