aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-folder.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-folder.c')
-rw-r--r--shell/e-folder.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/shell/e-folder.c b/shell/e-folder.c
index f582c9e40b..017b258766 100644
--- a/shell/e-folder.c
+++ b/shell/e-folder.c
@@ -41,9 +41,12 @@ struct _EFolderPrivate {
char *type;
char *description;
char *physical_uri;
- gboolean self_highlight;
+
int child_highlight;
int unread_count;
+
+ int self_highlight : 1;
+ int is_stock : 1;
};
#define EF_CLASS(obj) \
@@ -148,9 +151,10 @@ init (EFolder *folder)
priv->name = NULL;
priv->description = NULL;
priv->physical_uri = NULL;
- priv->self_highlight = FALSE;
priv->child_highlight = 0;
priv->unread_count = 0;
+ priv->self_highlight = FALSE;
+ priv->is_stock = FALSE;
folder->priv = priv;
}
@@ -251,6 +255,15 @@ e_folder_get_highlighted (EFolder *folder)
return folder->priv->child_highlight || folder->priv->unread_count;
}
+gboolean
+e_folder_get_is_stock (EFolder *folder)
+{
+ g_return_val_if_fail (folder != NULL, FALSE);
+ g_return_val_if_fail (E_IS_FOLDER (folder), FALSE);
+
+ return folder->priv->is_stock;
+}
+
void
e_folder_set_name (EFolder *folder,
@@ -327,11 +340,25 @@ e_folder_set_child_highlight (EFolder *folder,
g_return_if_fail (folder != NULL);
g_return_if_fail (E_IS_FOLDER (folder));
+ /* FIXME: Doesn't emit CHANGED. */
+
if (highlighted)
folder->priv->child_highlight++;
else
folder->priv->child_highlight--;
}
+void
+e_folder_set_is_stock (EFolder *folder,
+ gboolean is_stock)
+{
+ g_return_if_fail (folder != NULL);
+ g_return_if_fail (E_IS_FOLDER (folder));
+
+ folder->priv->is_stock = !! is_stock;
+
+ gtk_signal_emit (GTK_OBJECT (folder), signals[CHANGED]);
+}
+
E_MAKE_TYPE (e_folder, "EFolder", EFolder, class_init, init, PARENT_TYPE)