Commit 8cb514d6 authored by Peter Williams's avatar Peter Williams

Merge with camel-async.

svn path=/trunk/; revision=4687
parent bcbb63c5
ABOUT-NLS
Makefile
Makefile.in
aclocal.m4
config.cache
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
install-sh
intl
libtool
ltconfig
ltmain.sh
missing
mkinstalldirs
stamp-h
stamp-h.in
stamp.h
xlibtool
xltmain.sh
evolution.spec
......@@ -5,6 +5,14 @@
* data/Makefile.am (mime_DATA): add evolution.keys
2000-08-09 Peter Williams <peterw@helixcode.com>
* configure.in (EVOLUTION_DIR): Remove the warning about camel-async.
2000-08-08 Peter Williams <peterw@helixcode.com>
* Makefile.am (SUBDIRS): Reenable the calendar. Oops.
2000-08-05 Dan Winship <danw@helixcode.com>
* tools/verify-evolution-install.sh: Look for oafinfo files in
......@@ -84,6 +92,11 @@
* calendar/gui/event-editor.c: Typo fix
2000-07-20 Peter Williams <peterw@helixcode.com>
* configure.in (THREADS_CFLAGS): Make threads mandatory
again.
2000-07-19 Fatih Demir <kabalak@gmx.net>
* evolution.desktop & data/evolution.desktop: Added
......@@ -97,6 +110,11 @@
(EVOLUTION_DIR): Substitute EVOLUTION_DIR for the top_srcdir.
Added checks for gtk-doc.
2000-07-13 Peter Williams <peterw@curious-george.helixcode.com>
* configure.in (end): Bigass warnings for camel-async branch
(remove them later).
2000-07-12 Federico Mena Quintero <federico@helixcode.com>
* configure.in: Make gnome-print-0.20 mandatory. We will bail out
......
changelogs = \
ChangeLog
appicondir = $(datadir)/pixmaps
appicon_DATA = evolution.png
applicationdir = $(datadir)/gnome/apps/Applications
application_DATA = evolution.desktop
EXTRA_DIST = \
AUTHORS \
$(changelogs) \
README \
HACKING \
MAINTAINERS \
NEWS \
evolution.spec.in \
$(appicon_DATA) \
$(application_DATA)
SUBDIRS = \
intl \
macros \
data \
e-util \
widgets \
shell \
libibex \
camel \
filter \
composer \
mail \
libical \
libversit \
addressbook \
calendar \
wombat \
art \
default_user \
tools \
po \
doc
dist-hook: evolution.spec
cp evolution.spec $(distdir)
SUBDIRS = C
......@@ -173,6 +173,9 @@
* gui/calendar-model.c: compile fix for Solaris
(works under Linux, too; don't know about others)
* this is a test of whether CVS merge does what I
think it will do.
2000-07-26 Federico Mena Quintero <federico@helixcode.com>
OK, it seems that we have all the interesting properties for
......
......@@ -5,3 +5,4 @@ Makefile.in
.deps
*.lo
*.la
temp-test
......@@ -61,6 +61,15 @@
(camel_tag_list_size):
(camel_tag_list_free): Operations for working with CamelTags.
2000-08-09 Peter Williams <peterw@helixcode.com>
* camel-store.c (camel_store_get_folder): Connect beforehand, if
necessary.
* providers/imap/camel-imap-store.c (camel_imap_store_init): Default
the dir_sep to "/" so that certain functions can safely assume that
dir_sep is valid (at least, nonnull).
2000-08-09 Ettore Perazzoli <ettore@helixcode.com>
* providers/nntp/camel-nntp-folder.c
......@@ -92,35 +101,22 @@
* camel-mime-message.c (process_header): Add another subject
g_strstrip that fejj's earlier commit missed.
2000-08-07 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-folder.c (mh_append_message): Only retry
another uid if we had a name clash, otherwise fail.
2000-08-04 Not Zed <NotZed@HelixCode.com>
* camel-url.c (camel_url_set_protocol):
(camel_url_set_host):
(camel_url_set_path):
(camel_url_set_port): Url editing functions.
2000-08-02 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-summary.c (camel_mh_summary_sync): Expunge
from the end, so the index isn't messed up when you remove a
message.
2000-08-08 Peter Williams <peterw@helixcode.com>
* providers/mh/camel-mh-folder.c (mh_append_message): Fix a bug
where it would never open an output file/uid.
* camel-provider.h: Remove some GTK stuff that I missed.
* providers/mbox/camel-mbox-store.c (rename_folder):
Implementation for mbox as well.
* providers/imap/camel-imap-store.c (imap_noop): Turn this
back on with the new timeout interface in CamelSession.
* camel-store.c (camel_store_rename_folder): New method to rename folders.
(rename_folder): Default implementation.
* camel-session.[ch] (camel_session_register_timeout): New
interface for Camel to register timeouts. Basically the
GTK timeout interface is copied. We do this because Camel isn't
allowed to use GTK anymore.
2000-08-07 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-store.c (delete_folder): Implement this.
(rename_folder): Implement a rename operation.
* providers/mh/camel-mh-folder.c (mh_append_message): Only retry
another uid if we had a name clash, otherwise fail.
2000-08-07 Jeffrey Stedfast <fejj@helixcode.com>
......@@ -132,6 +128,14 @@
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
Check for NIL as a directory separator.
2000-08-07 Peter Williams <peterw@helixcode.com>
* providers/nntp/Makefile.am: Reorder the INCLUDES to pull
in the camel headers from the local source tree before
the ones in $(includedir). This was causing compile problems
because the installed, Gtk-based camel-object.h was included
before the uninstall Camel-based one.
2000-08-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-utils.c (imap_translate_sexp): Strip
......@@ -160,6 +164,18 @@
* providers/imap/camel-imap-store.c (get_folder): Prevent a coredump
when get_folder()ing from a store with dir_sep = NULL.
2000-08-04 Peter Williams <peterw@helixcode.com>
* camel-store.h: Include camel-object.h. Ettore said this wasn't
compiling.
2000-08-04 Not Zed <NotZed@HelixCode.com>
* camel-url.c (camel_url_set_protocol):
(camel_url_set_host):
(camel_url_set_path):
(camel_url_set_port): Url editing functions.
2000-08-04 Dan Winship <danw@helixcode.com>
* providers/pop3/camel-pop3-folder.c (pop3_set_message_flags):
......@@ -182,6 +198,24 @@
* providers/nntp/Makefile.am (INCLUDES): Add -I$(top_srcdir) to
pull in libibex/ibex.h
2000-08-02 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-summary.c (camel_mh_summary_sync): Expunge
from the end, so the index isn't messed up when you remove a
message.
* providers/mh/camel-mh-folder.c (mh_append_message): Fix a bug
where it would never open an output file/uid.
* providers/mbox/camel-mbox-store.c (rename_folder):
Implementation for mbox as well.
* camel-store.c (camel_store_rename_folder): New method to rename folders.
(rename_folder): Default implementation.
* providers/mh/camel-mh-store.c (delete_folder): Implement this.
(rename_folder): Implement a rename operation.
2000-08-02 Dan Winship <danw@helixcode.com>
* providers/MH: Kill this. It doesn't have any code to do anything
......@@ -540,6 +574,19 @@
(imap_get_message_info): Oops. Fix UID parser to allow 0 and 9 to
be in the range of valid UID chars.
2000-07-20 Peter Williams <peterw@helixcode.com>
* camel-object.c (camel_object_unref): Add a new global mutex
'refcount' held when refcounting operations occur.
2000-07-19 Peter Williams <peterw@helixcode.com>
* camel-object.c (camel_type_lock_up): Correct the recursiveness;
the locklevel is stored as a private, so each thread has its own
idea of the locklevel. Thus one thread can relock, but a different
one will think that it's a level 0 and try to lock the type_system
mutex.
2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c: General cleanup working
......@@ -578,6 +625,16 @@
(imap_get_subfolder_names): Let the subfolder parser trim the
namespace off the folder name.
2000-07-17 Peter Williams <peterw@helixcode.com>
* camel-object.c (camel_type_lock_up): New function; the
Camel type_system lock is now fakey-recursive, being controlled
by a semaphore that goes up and down and is protected by another
lock. Theoretically all we need is the lock on the semaphore,
but this we catch exceptions "better" (by deadlocking).
(camel_type_lock_down): Corresponding to above.
(all functions): s,G_LOCK,camel_type_lock_up, etc.
2000-07-17 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-store.c (imap_disconnect): Send a
......@@ -617,6 +674,31 @@
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
One last fix to get rid of hard-coded "/" directory separators
2000-07-14 Peter Williams <peterw@helixcode.com>
* camel-object.c : Implement 'events', which are suspiciously
like signals except without all the marshalling baggage, and
with quasi-thread-safety.
(camel_object_class_declare_event): New func.
(camel_object_hook_event): Ditto.
(camel_object_trigger_event): Ditto.
(obj_class_init): Declare the "finalize" event.
(obj_class_finalize): Free the hashtable of events->preps
(obj_finalize): Free the hashtable of events->hooklists
(camel_object_unref): Trigger the finalize event (ourselves,
to prevent massively unpleasant looping things.)
2000-07-14 Peter Williams <peterw@helixcode.com>
* camel-object.c (make_global_classfuncs): Change to return
a CamelObjectClass. Change parents to a GSList and free it
when done.
(camel_object_new): Don't allocate a classfuncs for every object;
merely give it a reference to the global_classfuncs. Convert
parents to a GSList and free it when done.
(camel_object_unref): Don't free the classfuncs. Free the parents
list, which is changed to a GSList.
2000-07-14 Jeffrey Stedfast <fejj@helixcode.com>
* string-utils.c (string_unquote): New convenience function
......@@ -634,6 +716,30 @@
Deals with the case where the user edits the mbox and makes it
bigger, without adding new messages.
2000-07-13 Peter Williams <peterw@helixcode.com>
* camel-object.c: Rewritten to not be based on GtkObject,
but a tiny threadsafe ripoff thereof. Objects still cannot
be shared across threads, but ref/unref/destroy/new/etc
will work. Signals are not implemented because doing it
robustly would be a major pain in the butt, but class
functions are. There's a small demonstration that it doesn't
crash in ./temp-test.c: build it with ./make-test.sh.
* camel-stream.c, camel-seekable-stream.c, camel-stream-mem.c:
moved over to CamelObject. Proof of concept: two levels of
subclass and class functions, all working without coredumps.
To port to CamelObject:
- s,GTK_,CAMEL_,g in the cast checks
- s,gtk_type_new,camel_object_new,g
- s,GtkType,CamelType,g
- Change get_type function over to camel_type_declare
- instead of hooking to finalize function, it goes into the
type declaration.
- remove signals.
- instead of GTK_OBJECT(so)->klass, CAMEL_OBJECT_GET_CLASS(so)
- s,gtk_type_class,camel_type_get_global_classfuncs,g
- don't chain finalize handlers; it will be done for you
2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c:
......@@ -834,6 +940,20 @@
* providers/imap/camel-imap-folder.c (imap_append_message):
Updated.
2000-07-11 Dan Winship <danw@helixcode.com>
* camel-folder.c: Remove exceptions from a number of methods
that work on what ought to be static data: get_parent_folder,
get_parent_store, get_message_count, get_unread_message_count,
get_permanent_flags, get_message_flags, set_message_flags,
get_message_user_flag, set_message_user_flag, get_message_uid,
get_uids, get_summary, get_subfolder_names. Turn
camel_folder_delete_message into a macro.
* providers/{mbox,pop3,vee}: Update for CamelFolder changes
* providers/Makefile.am: Disable imap and nntp for now
2000-07-11 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
......
......@@ -7,10 +7,10 @@ providerdir = $(libdir)/evolution/camel-providers/$(VERSION)
lib_LTLIBRARIES = libcamel.la
INCLUDES = -I.. -I$(srcdir)/.. -I$(includedir) \
-I$(top_srcdir)/intl \
$(GTK_INCLUDEDIR) \
$(UNICODE_CFLAGS) \
INCLUDES = -I.. -I$(srcdir)/.. -I$(includedir) \
-I$(top_srcdir)/intl \
$(GLIB_CFLAGS) \
$(UNICODE_CFLAGS) \
-DCAMEL_PROVIDERDIR=\""$(providerdir)"\" \
-DG_LOG_DOMAIN=\"camel\"
......
......@@ -23,48 +23,14 @@
static void camel_address_class_init (CamelAddressClass *klass);
static void camel_address_init (CamelAddress *obj);
static void camel_address_finalise (GtkObject *obj);
static void camel_address_finalize (CamelObject *obj);
static CamelObjectClass *camel_address_parent;
enum SIGNALS {
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
guint
camel_address_get_type (void)
{
static guint type = 0;
if (!type) {
GtkTypeInfo type_info = {
"CamelAddress",
sizeof (CamelAddress),
sizeof (CamelAddressClass),
(GtkClassInitFunc) camel_address_class_init,
(GtkObjectInitFunc) camel_address_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL
};
type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
}
static void
camel_address_class_init (CamelAddressClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
camel_address_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = camel_address_finalise;
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
camel_address_parent = camel_type_get_global_classfuncs (camel_object_get_type ());
}
static void
......@@ -74,11 +40,27 @@ camel_address_init (CamelAddress *obj)
}
static void
camel_address_finalise (GtkObject *obj)
camel_address_finalize (CamelObject *obj)
{
camel_address_remove((CamelAddress *)obj, -1);
}
((GtkObjectClass *)(camel_address_parent))->finalize((GtkObject *)obj);
CamelType
camel_address_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
if (type == CAMEL_INVALID_TYPE) {
type = camel_type_register (camel_object_get_type (), "CamelAddress",
sizeof (CamelAddress),
sizeof (CamelAddressClass),
(CamelObjectClassInitFunc) camel_address_class_init,
NULL,
(CamelObjectInitFunc) camel_address_init,
(CamelObjectFinalizeFunc) camel_address_finalize);
}
return type;
}
/**
......@@ -91,7 +73,7 @@ camel_address_finalise (GtkObject *obj)
CamelAddress *
camel_address_new (void)
{
CamelAddress *new = CAMEL_ADDRESS ( gtk_type_new (camel_address_get_type ()));
CamelAddress *new = CAMEL_ADDRESS ( camel_object_new (camel_address_get_type ()));
return new;
}
......@@ -111,7 +93,7 @@ camel_address_decode (CamelAddress *a, const char *raw)
{
g_return_val_if_fail(IS_CAMEL_ADDRESS(a), -1);
return ((CamelAddressClass *)((GtkObject *)a)->klass)->decode(a, raw);
return CAMEL_ADDRESS_CLASS (CAMEL_OBJECT_GET_CLASS (a))->decode(a, raw);
}
/**
......@@ -127,7 +109,7 @@ camel_address_encode (CamelAddress *a)
{
g_return_val_if_fail(IS_CAMEL_ADDRESS(a), NULL);
return ((CamelAddressClass *)((GtkObject *)a)->klass)->encode(a);
return CAMEL_ADDRESS_CLASS (CAMEL_OBJECT_GET_CLASS (a))->encode(a);
}
/**
......@@ -144,8 +126,8 @@ camel_address_remove (CamelAddress *a, int index)
if (index == -1) {
for (index=a->addresses->len; index>-1; index--)
((CamelAddressClass *)((GtkObject *)a)->klass)->remove(a, index);
CAMEL_ADDRESS_CLASS (CAMEL_OBJECT_GET_CLASS (a))->remove(a, index);
} else {
((CamelAddressClass *)((GtkObject *)a)->klass)->remove(a, index);
CAMEL_ADDRESS_CLASS (CAMEL_OBJECT_GET_CLASS (a))->remove(a, index);
}
}
......@@ -23,9 +23,9 @@
#include <camel/camel-object.h>
#define CAMEL_ADDRESS(obj) GTK_CHECK_CAST (obj, camel_address_get_type (), CamelAddress)
#define CAMEL_ADDRESS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, camel_address_get_type (), CamelAddressClass)
#define IS_CAMEL_ADDRESS(obj) GTK_CHECK_TYPE (obj, camel_address_get_type ())
#define CAMEL_ADDRESS(obj) CAMEL_CHECK_CAST (obj, camel_address_get_type (), CamelAddress)
#define CAMEL_ADDRESS_CLASS(klass) CAMEL_CHECK_CLASS_CAST (klass, camel_address_get_type (), CamelAddressClass)
#define IS_CAMEL_ADDRESS(obj) CAMEL_CHECK_TYPE (obj, camel_address_get_type ())
typedef struct _CamelAddressClass CamelAddressClass;
......
......@@ -33,7 +33,7 @@
static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelDataWrapper */
#define CDW_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (GTK_OBJECT (so)->klass)
#define CDW_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (CAMEL_OBJECT_GET_CLASS(so))
static int construct_from_stream(CamelDataWrapper *, CamelStream *);
......@@ -42,15 +42,11 @@ static void set_mime_type (CamelDataWrapper *data_wrapper, const gchar *mime_typ
static gchar *get_mime_type (CamelDataWrapper *data_wrapper);
static GMimeContentField *get_mime_type_field (CamelDataWrapper *data_wrapper);
static void set_mime_type_field (CamelDataWrapper *data_wrapper, GMimeContentField *mime_type);
static void finalize (GtkObject *object);
static void
camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
{
GtkObjectClass *gtk_object_class =
GTK_OBJECT_CLASS (camel_data_wrapper_class);
parent_class = gtk_type_class (camel_object_get_type ());
parent_class = camel_type_get_global_classfuncs (camel_object_get_type ());
/* virtual method definition */
camel_data_wrapper_class->write_to_stream = write_to_stream;
......@@ -60,9 +56,6 @@ camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
camel_data_wrapper_class->set_mime_type_field = set_mime_type_field;
camel_data_wrapper_class->construct_from_stream = construct_from_stream;
/* virtual method overload */
gtk_object_class->finalize = finalize;
}
static void
......@@ -73,35 +66,8 @@ camel_data_wrapper_init (gpointer object, gpointer klass)
camel_data_wrapper->mime_type = gmime_content_field_new (NULL, NULL);
}
GtkType
camel_data_wrapper_get_type (void)
{
static GtkType camel_data_wrapper_type = 0;
if (!camel_data_wrapper_type) {
GtkTypeInfo camel_data_wrapper_info =
{
"CamelDataWrapper",
sizeof (CamelDataWrapper),
sizeof (CamelDataWrapperClass),
(GtkClassInitFunc) camel_data_wrapper_class_init,
(GtkObjectInitFunc) camel_data_wrapper_init,
/* reserved_1 */ NULL,
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
camel_data_wrapper_type = gtk_type_unique (camel_object_get_type (), &camel_data_wrapper_info);
}
return camel_data_wrapper_type;
}
static void
finalize (GtkObject *object)
camel_data_wrapper_finalize (CamelObject *object)
{
CamelDataWrapper *camel_data_wrapper = CAMEL_DATA_WRAPPER (object);
......@@ -109,9 +75,25 @@ finalize (GtkObject *object)
gmime_content_field_unref (camel_data_wrapper->mime_type);
if (camel_data_wrapper->stream)
gtk_object_unref (GTK_OBJECT (camel_data_wrapper->stream));
camel_object_unref (CAMEL_OBJECT (camel_data_wrapper->stream));
}
GTK_OBJECT_CLASS (parent_class)->finalize (object);
CamelType
camel_data_wrapper_get_type (void)
{
static CamelType camel_data_wrapper_type = CAMEL_INVALID_TYPE;
if (camel_data_wrapper_type == CAMEL_INVALID_TYPE) {
camel_data_wrapper_type = camel_type_register (CAMEL_OBJECT_TYPE, "CamelDataWrapper",
sizeof (CamelDataWrapper),
sizeof (CamelDataWrapperClass),
(CamelObjectClassInitFunc) camel_data_wrapper_class_init,
NULL,
(CamelObjectInitFunc) camel_data_wrapper_init,
(CamelObjectFinalizeFunc) camel_data_wrapper_finalize);
}
return camel_data_wrapper_type;
}
static int
......@@ -130,7 +112,7 @@ write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
CamelDataWrapper *
camel_data_wrapper_new(void)
{
return (CamelDataWrapper *)gtk_type_new(camel_data_wrapper_get_type());
return (CamelDataWrapper *)camel_object_new(camel_data_wrapper_get_type());
}
/**
......@@ -160,10 +142,10 @@ static int
construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
{
if (data_wrapper->stream)
gtk_object_unref((GtkObject *)data_wrapper->stream);
camel_object_unref((CamelObject *)data_wrapper->stream);
data_wrapper->stream = stream;
gtk_object_ref (GTK_OBJECT (stream));
camel_object_ref (CAMEL_OBJECT (stream));
return 0;
}
......
......@@ -38,9 +38,9 @@ extern "C" {
#include <camel/gmime-content-field.h>
#define CAMEL_DATA_WRAPPER_TYPE (camel_data_wrapper_get_type ())
#define CAMEL_DATA_WRAPPER(obj) (GTK_CHECK_CAST((obj), CAMEL_DATA_WRAPPER_TYPE, CamelDataWrapper))
#define CAMEL_DATA_WRAPPER_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), CAMEL_DATA_WRAPPER_TYPE, CamelDataWrapperClass))
#define CAMEL_IS_DATA_WRAPPER(o) (GTK_CHECK_TYPE((o), CAMEL_DATA_WRAPPER_TYPE))
#define CAMEL_DATA_WRAPPER(obj) (CAMEL_CHECK_CAST((obj), CAMEL_DATA_WRAPPER_TYPE, CamelDataWrapper))
#define CAMEL_DATA_WRAPPER_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_DATA_WRAPPER_TYPE, CamelDataWrapperClass))
#define CAMEL_IS_DATA_WRAPPER(o) (CAMEL_CHECK_TYPE((o), CAMEL_DATA_WRAPPER_TYPE))
struct _CamelDataWrapper
{
......@@ -72,8 +72,8 @@ typedef struct {
CamelStream *);
} CamelDataWrapperClass;
/* Standard Gtk function */
GtkType camel_data_wrapper_get_type (void);
/* Standard Camel function */
CamelType camel_data_wrapper_get_type (void);
/* public methods */
CamelDataWrapper * camel_data_wrapper_new(void);
......
......@@ -48,54 +48,19 @@ static ESExpResult *search_dummy(struct _ESExp *f, int argc, struct _ESExpResult
static void camel_folder_search_class_init (CamelFolderSearchClass *klass);
static void camel_folder_search_init (CamelFolderSearch *obj);
static void camel_folder_search_finalise (GtkObject *obj);
static void camel_folder_search_finalize (CamelObject *obj);
static CamelObjectClass *camel_folder_search_parent;
enum SIGNALS {
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
guint
camel_folder_search_get_type (void)
{
static guint type = 0;
if (!type) {
GtkTypeInfo type_info = {
"CamelFolderSearch",
sizeof (CamelFolderSearch),
sizeof (CamelFolderSearchClass),
(GtkClassInitFunc) camel_folder_search_class_init,
(GtkObjectInitFunc) camel_folder_search_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL
};
type = gtk_type_unique (camel_object_get_type (), &type_info);
}
return type;
}
static void
camel_folder_search_class_init (CamelFolderSearchClass *klass)
{
GtkObjectClass *object_class = (GtkObjectClass *) klass;
camel_folder_search_parent = gtk_type_class (camel_object_get_type ());
object_class->finalize = camel_folder_search_finalise;
camel_folder_search_parent = camel_type_get_global_classfuncs (camel_object_get_type ());
klass->match_all = search_match_all;