TnyMergeFolder

TnyMergeFolder — A virtual folder that merges folders together

Synopsis

                    TnyMergeFolder;
TnyFolder*          tny_merge_folder_new                (const gchar *folder_name);
TnyFolder*          tny_merge_folder_new_with_ui_locker (const gchar *folder_name,
                                                         TnyLockable *ui_locker);
void                tny_merge_folder_set_ui_locker      (TnyMergeFolder *self,
                                                         TnyLockable *ui_locker);
void                tny_merge_folder_add_folder         (TnyMergeFolder *self,
                                                         TnyFolder *folder);
void                tny_merge_folder_remove_folder      (TnyMergeFolder *self,
                                                         TnyFolder *folder);
void                tny_merge_folder_set_folder_type    (TnyMergeFolder *self,
                                                         TnyFolderType folder_type);
void                tny_merge_folder_get_folders        (TnyMergeFolder *self,
                                                         TnyList *list);

Object Hierarchy

  GObject
   +----TnyMergeFolder

Implemented Interfaces

TnyMergeFolder implements TnyFolderObserver and TnyFolder.

Description

A type that can merge multiple other folders together

Details

TnyMergeFolder

typedef struct _TnyMergeFolder TnyMergeFolder;

A TnyFolder that merges other folders together

free-function: g_object_unref


tny_merge_folder_new ()

TnyFolder*          tny_merge_folder_new                (const gchar *folder_name);

Creates a a new TnyMergeFolder instance that can merge multiple TnyFolder instances together (partly read only, though).

Important consideration: if you use this type within a Gtk+ application, you probably want to use tny_merge_folder_new_with_ui_locker in stead. If your UI toolkid isn't thread safe (most aren't), but so-called thread aware because it has a UI context lock (like Gtk+ has), then you must create this type with a TnyLockable that aquires and releases this lock correctly. For Gtk+ there's a default implementation called TnyGtkLockable available in libtinymailui-gtk. Please use this, else you can have threading related problems in your user interface software.

folder_name :

the name of the merged folder

Returns :

(caller-owns): a new TnyMergeFolder instance

Since 1.0 audience: application-developer


tny_merge_folder_new_with_ui_locker ()

TnyFolder*          tny_merge_folder_new_with_ui_locker (const gchar *folder_name,
                                                         TnyLockable *ui_locker);

Creates a a new TnyMergeFolder instance that can merge multiple TnyFolder instances together (partly read only, though). Upon construction it instantly sets the ui locker. For Gtk+ you should use a TnyGtkLockable here.

folder_name :

the name of the merged folder

ui_locker :

a TnyLockable for locking your ui

Returns :

(caller-owns): a new TnyMergeFolder instance

Since 1.0 audience: application-developer


tny_merge_folder_set_ui_locker ()

void                tny_merge_folder_set_ui_locker      (TnyMergeFolder *self,
                                                         TnyLockable *ui_locker);

Sets the ui locker. For Gtk+ you should use a TnyGtkLockable here.

self :

a TnyMergeFolder

ui_locker :

a TnyLockable locker for locking your ui

Since 1.0 audience: application-developer


tny_merge_folder_add_folder ()

void                tny_merge_folder_add_folder         (TnyMergeFolder *self,
                                                         TnyFolder *folder);

Add folder to the list of folders that are merged by self.

self :

a TnyMergeFolder

folder :

a TnyFolder

Since 1.0 audience: application-developer


tny_merge_folder_remove_folder ()

void                tny_merge_folder_remove_folder      (TnyMergeFolder *self,
                                                         TnyFolder *folder);

Removes folder from the list of folders that are merged by self.

self :

a TnyMergeFolder

folder :

a TnyFolder

Since 1.0 audience: application-developer


tny_merge_folder_set_folder_type ()

void                tny_merge_folder_set_folder_type    (TnyMergeFolder *self,
                                                         TnyFolderType folder_type);

Set the folder type of the TnyMergeFolder. The default is TNY_FOLDER_TYPE_MERGE but you can change this to any folder type. It will not affect anything except that tny_folder_get_folder_type() will return the new type.

self :

a TnyMergeFolder

folder_type :

the new folder

Since 1.0 audience: application-developer


tny_merge_folder_get_folders ()

void                tny_merge_folder_get_folders        (TnyMergeFolder *self,
                                                         TnyList *list);

Get the folders that are merged in the merge folder self.

self :

a TnyMergeFolder

list :

a TnyList to which the folders will be prepended

Since 1.0 audience: application-developer