From ed6323e9781d6a38bdb6151a77f79b1326fbb6ba Mon Sep 17 00:00:00 2001 From: bertrand Date: Wed, 21 Apr 1999 22:45:49 +0000 Subject: more test implementation. 1999-04-22 bertrand * camel/providers/MH/camel-mh-store.c: more test implementation. * camel/camel-store.c (camel_store_get_type): typo fix A lot of small adds and corrections. svn path=/trunk/; revision=867 --- camel/providers/MH/camel-mh-folder.c | 51 ++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 5 deletions(-) (limited to 'camel/providers/MH/camel-mh-folder.c') diff --git a/camel/providers/MH/camel-mh-folder.c b/camel/providers/MH/camel-mh-folder.c index abaf638df8..d875182564 100644 --- a/camel/providers/MH/camel-mh-folder.c +++ b/camel/providers/MH/camel-mh-folder.c @@ -23,19 +23,24 @@ #include "camel-mh-folder.h" -static CamelMhFolderClass *camel_mh_folder_parent_class=NULL; +static CamelFolderClass *parent_class=NULL; /* Returns the class for a CamelMhFolder */ #define CMHF_CLASS(so) CAMEL_MH_FOLDER_CLASS (GTK_OBJECT(so)->klass) +#define CF_CLASS(so) CAMEL_FOLDER_CLASS (GTK_OBJECT(so)->klass) +#define CMHS_CLASS(so) CAMEL_STORE_CLASS (GTK_OBJECT(so)->klass) + +static void camel_mh_folder_set_name(CamelFolder *folder, GString *name); static void camel_mh_folder_class_init (CamelMhFolderClass *camel_mh_folder_class) { - camel_mh_folder_parent_class = gtk_type_class (camel_folder_get_type ()); + parent_class = gtk_type_class (camel_folder_get_type ()); /* virtual method definition */ /* virtual method overload */ + CAMEL_FOLDER_CLASS(camel_mh_folder_class)->set_name = camel_mh_folder_set_name; } @@ -53,8 +58,8 @@ camel_mh_folder_get_type (void) GtkTypeInfo camel_mh_folder_info = { "CamelMhFolder", - sizeof (CamelFolder), - sizeof (CamelFolderClass), + sizeof (CamelMhFolder), + sizeof (CamelMhFolderClass), (GtkClassInitFunc) camel_mh_folder_class_init, (GtkObjectInitFunc) NULL, /* reserved_1 */ NULL, @@ -62,10 +67,46 @@ camel_mh_folder_get_type (void) (GtkClassInitFunc) NULL, }; - camel_mh_folder_type = gtk_type_unique (gtk_object_get_type (), &camel_mh_folder_info); + camel_mh_folder_type = gtk_type_unique (CAMEL_FOLDER_TYPE, &camel_mh_folder_info); } return camel_mh_folder_type; } +/** + * camel_mh_folder_set_name: set the name of an MH folder + * @folder: the folder to set the name + * @name: a string representing the (short) name + * + * + * + **/ +static void +camel_mh_folder_set_name(CamelFolder *folder, GString *name) +{ + GString *root_dir_path; + GString *full_dir_path; + CamelMhFolder *mh_folder = CAMEL_MH_FOLDER(folder); + gchar separator; + + g_assert(folder); + g_assert(name); + g_assert(folder->parent_store); + + /* call default implementation */ + parent_class->set_name (folder, name); + + if (mh_folder->directory_path) g_string_free (mh_folder->directory_path, 0); + + separator = camel_store_get_separator (folder->parent_store); + + + root_dir_path = camel_mh_store_get_toplevel_dir (CAMEL_MH_STORE(folder->parent_store)); + full_dir_path = g_string_clone(root_dir_path); + g_string_append_c(full_dir_path, separator); + g_string_append_g_string(full_dir_path, name); + mh_folder->directory_path = full_dir_path; + + +} -- cgit v1.2.3