Coding style and whitespace cleanup.

This commit is contained in:
Matthew Barnes
2010-07-26 00:30:38 -04:00
parent 13cf1d104b
commit 81e5428a59
26 changed files with 1145 additions and 1098 deletions

View File

@ -46,46 +46,24 @@
((obj), E_TYPE_MAIL_FOLDER_PANE, EMailFolderPanePrivate))
struct _EMailFolderPanePrivate {
int fo;
gint placeholder;
};
enum {
PROP_0,
PROP_PREVIEW_VISIBLE,
PROP_PREVIEW_VISIBLE
};
static gpointer parent_class;
G_DEFINE_TYPE (EMailFolderPane, e_mail_folder_pane, E_TYPE_MAIL_PANED_VIEW)
static void
mail_folder_pane_dispose (GObject *object)
folder_pane_set_preview_visible (EMailView *view,
gboolean preview_visible)
{
EMailFolderPanePrivate *priv;
priv = E_MAIL_FOLDER_PANE_GET_PRIVATE (object);
/* Chain up to parent's dispose() method. */
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
mail_folder_pane_constructed (GObject *object)
{
/* Chain up to parent's constructed() method. */
if (G_OBJECT_CLASS (parent_class)->constructed)
G_OBJECT_CLASS (parent_class)->constructed (object);
}
static void
folder_pane_set_preview_visible (EMailPanedView *view,
gboolean preview_visible)
{
return;
}
static gboolean
folder_pane_get_preview_visible (EMailPanedView *view)
folder_pane_get_preview_visible (EMailView *view)
{
return FALSE;
@ -93,9 +71,9 @@ folder_pane_get_preview_visible (EMailPanedView *view)
static void
mail_folder_pane_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
guint property_id,
GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_PREVIEW_VISIBLE:
@ -104,7 +82,6 @@ mail_folder_pane_get_property (GObject *object,
FALSE);
return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@ -112,9 +89,9 @@ mail_folder_pane_get_property (GObject *object,
static void
mail_folder_pane_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_PREVIEW_VISIBLE:
@ -124,22 +101,22 @@ mail_folder_pane_set_property (GObject *object,
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
static void
static guint
mfp_open_selected_mail (EMailPanedView *view)
{
GPtrArray *uids;
int i;
gint i;
GtkWindow *window;
CamelFolder *folder;
const gchar *folder_uri;
GPtrArray *views;
guint ii;
GPtrArray *views;
guint n_views, ii;
uids = e_mail_reader_get_selected_uids (E_MAIL_READER(view));
uids = e_mail_reader_get_selected_uids (E_MAIL_READER(view));
window = e_mail_reader_get_window (E_MAIL_READER(view));
if (!em_utils_ask_open_many (window, uids->len)) {
em_utils_uids_free (uids);
return;
return 0;
}
folder = e_mail_reader_get_folder (E_MAIL_READER(view));
@ -148,7 +125,7 @@ mfp_open_selected_mail (EMailPanedView *view)
em_utils_folder_is_outbox (folder, folder_uri) ||
em_utils_folder_is_templates (folder, folder_uri)) {
em_utils_edit_messages (folder, uids, TRUE);
return;
return 0;
}
views = g_ptr_array_new ();
@ -190,78 +167,48 @@ mfp_open_selected_mail (EMailPanedView *view)
camel_folder_free_message_info (folder, info);
}
for (i=0; i<views->len; i++) {
n_views = views->len;
for (i = 0; i < n_views; i++)
g_signal_emit_by_name (view, "open-mail", views->pdata[i]);
}
g_ptr_array_foreach (views, (GFunc) g_free, NULL);
g_ptr_array_free (views, TRUE);
em_utils_uids_free (uids);
return n_views;
}
static void
mail_folder_pane_class_init (EMailPanedViewClass *class)
e_mail_folder_pane_class_init (EMailFolderPaneClass *class)
{
GObjectClass *object_class;
EMailViewClass *mail_view_class;
EMailPanedViewClass *mail_paned_view_class;
parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (EMailFolderPanePrivate));
object_class = G_OBJECT_CLASS (class);
object_class->dispose = mail_folder_pane_dispose;
object_class->constructed = mail_folder_pane_constructed;
object_class->set_property = mail_folder_pane_set_property;
object_class->get_property = mail_folder_pane_get_property;
class->open_selected_mail = mfp_open_selected_mail;
mail_view_class = E_MAIL_VIEW_CLASS (class);
mail_view_class->set_preview_visible = folder_pane_set_preview_visible;
mail_view_class->get_preview_visible = folder_pane_get_preview_visible;
E_MAIL_VIEW_CLASS(g_type_class_peek_parent(class))->set_preview_visible = folder_pane_set_preview_visible;
E_MAIL_VIEW_CLASS(g_type_class_peek_parent(class))->get_preview_visible = folder_pane_get_preview_visible;
mail_paned_view_class = E_MAIL_PANED_VIEW_CLASS (class);
mail_paned_view_class->open_selected_mail = mfp_open_selected_mail;
g_object_class_override_property (
object_class,
PROP_PREVIEW_VISIBLE,
"preview-visible");
}
static void
mail_folder_pane_init (EMailFolderPane *browser)
e_mail_folder_pane_init (EMailFolderPane *browser)
{
browser->priv = E_MAIL_FOLDER_PANE_GET_PRIVATE (browser);
}
GType
e_mail_folder_pane_get_type (void)
{
static GType type = 0;
if (G_UNLIKELY (type == 0)) {
static const GTypeInfo type_info = {
sizeof (EMailFolderPaneClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) mail_folder_pane_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (EMailFolderPane),
0, /* n_preallocs */
(GInstanceInitFunc) mail_folder_pane_init,
NULL /* value_table */
};
type = g_type_register_static (
E_MAIL_PANED_VIEW_TYPE, "EMailFolderPane", &type_info, 0);
}
return type;
}
GtkWidget *
@ -271,7 +218,7 @@ e_mail_folder_pane_new (EShellContent *content)
return g_object_new (
E_TYPE_MAIL_FOLDER_PANE,
"shell-content", content,
"shell-content", content,
"preview-visible", FALSE,
NULL);
}

View File

@ -22,9 +22,8 @@
#ifndef E_MAIL_FOLDER_PANE_H
#define E_MAIL_FOLDER_PANE_H
#include <gtk/gtk.h>
#include <shell/e-shell-content.h>
#include "mail/e-mail-paned-view.h"
#include <mail/e-mail-paned-view.h>
/* Standard GObject macros */
#define E_TYPE_MAIL_FOLDER_PANE \
@ -60,7 +59,7 @@ struct _EMailFolderPaneClass {
EMailPanedViewClass parent_class;
};
GType e_mail_folder_pane_get_type (void);
GType e_mail_folder_pane_get_type (void);
GtkWidget * e_mail_folder_pane_new (EShellContent *content);
G_END_DECLS

View File

@ -28,13 +28,12 @@
#include "mail/e-mail-reader.h"
#define e_mail_message_pane_GET_PRIVATE(obj) \
#define E_MAIL_MESSAGE_PANE_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
((obj), E_TYPE_MAIL_MESSAGE_PANE, EMailMessagePanePrivate))
struct _EMailMessagePanePrivate {
int fo;
gint placeholder;
};
enum {
@ -42,20 +41,19 @@ enum {
PROP_PREVIEW_VISIBLE
};
static gpointer parent_class;
G_DEFINE_TYPE (EMailMessagePane, e_mail_message_pane, E_TYPE_MAIL_PANED_VIEW)
/* This is too trivial to put in a file.
* It gets merged with the EMailReader UI. */
static void
mail_message_pane_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_PREVIEW_VISIBLE:
return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@ -63,80 +61,66 @@ mail_message_pane_set_property (GObject *object,
static void
mail_message_pane_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
guint property_id,
GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_PREVIEW_VISIBLE:
g_value_set_boolean (
value,
TRUE);
return;
return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
static void
mail_message_pane_dispose (GObject *object)
{
EMailMessagePanePrivate *priv;
priv = e_mail_message_pane_GET_PRIVATE (object);
/* Chain up to parent's dispose() method. */
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
mail_message_pane_constructed (GObject *object)
{
EMailMessagePanePrivate *priv;
/* Chain up to parent's constructed() method. */
if (G_OBJECT_CLASS (parent_class)->constructed)
G_OBJECT_CLASS (parent_class)->constructed (object);
priv = e_mail_message_pane_GET_PRIVATE (object);
priv = E_MAIL_MESSAGE_PANE_GET_PRIVATE (object);
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (e_mail_message_pane_parent_class)->constructed (object);
gtk_widget_hide (e_mail_reader_get_message_list (E_MAIL_READER(object)));
e_mail_paned_view_hide_message_list_pane (E_MAIL_PANED_VIEW(object), FALSE);
}
static void
message_pane_set_preview_visible (EMailMessagePane *view,
gboolean preview_visible)
message_pane_set_preview_visible (EMailView *view,
gboolean preview_visible)
{
e_mail_paned_view_set_preview_visible (E_MAIL_PANED_VIEW(view), TRUE);
return;
/* Chain up to parent's set_preview_visible() method. */
E_MAIL_VIEW_CLASS (e_mail_message_pane_parent_class)->
set_preview_visible (view, TRUE);
}
static gboolean
message_pane_get_preview_visible (EMailMessagePane *view)
message_pane_get_preview_visible (EMailView *view)
{
return TRUE;
}
static void
mail_message_pane_class_init (EMailMessagePaneClass *class)
e_mail_message_pane_class_init (EMailMessagePaneClass *class)
{
GObjectClass *object_class;
EMailViewClass *mail_view_class;
parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (EMailMessagePanePrivate));
object_class = G_OBJECT_CLASS (class);
object_class->set_property = mail_message_pane_set_property;
object_class->get_property = mail_message_pane_get_property;
object_class->dispose = mail_message_pane_dispose;
object_class->constructed = mail_message_pane_constructed;
E_MAIL_VIEW_CLASS(g_type_class_peek_parent(class))->set_preview_visible = message_pane_set_preview_visible;
E_MAIL_VIEW_CLASS(g_type_class_peek_parent(class))->get_preview_visible = message_pane_get_preview_visible;
mail_view_class = E_MAIL_VIEW_CLASS (class);
mail_view_class->set_preview_visible = message_pane_set_preview_visible;
mail_view_class->get_preview_visible = message_pane_get_preview_visible;
g_object_class_override_property (
object_class,
@ -145,37 +129,9 @@ mail_message_pane_class_init (EMailMessagePaneClass *class)
}
static void
mail_message_pane_init (EMailMessagePane *browser)
e_mail_message_pane_init (EMailMessagePane *browser)
{
browser->priv = e_mail_message_pane_GET_PRIVATE (browser);
}
GType
e_mail_message_pane_get_type (void)
{
static GType type = 0;
if (G_UNLIKELY (type == 0)) {
static const GTypeInfo type_info = {
sizeof (EMailMessagePaneClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) mail_message_pane_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (EMailMessagePane),
0, /* n_preallocs */
(GInstanceInitFunc) mail_message_pane_init,
NULL /* value_table */
};
type = g_type_register_static (
E_MAIL_PANED_VIEW_TYPE , "EMailMessagePane", &type_info, 0);
}
return type;
browser->priv = E_MAIL_MESSAGE_PANE_GET_PRIVATE (browser);
}
GtkWidget *
@ -185,7 +141,7 @@ e_mail_message_pane_new (EShellContent *content)
return g_object_new (
E_TYPE_MAIL_MESSAGE_PANE,
"shell-content", content,
"shell-content", content,
"preview-visible", TRUE,
NULL);
}

View File

@ -1,5 +1,5 @@
/*
* e-mail-pane.h
* e-mail-message-pane.h
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -22,8 +22,7 @@
#ifndef E_MAIL_MESSAGE_PANE_H
#define E_MAIL_MESSAGE_PANE_H
#include <gtk/gtk.h>
#include "e-mail-paned-view.h"
#include <mail/e-mail-paned-view.h>
/* Standard GObject macros */
#define E_TYPE_MAIL_MESSAGE_PANE \
@ -59,7 +58,7 @@ struct _EMailMessagePaneClass {
EMailPanedViewClass parent_class;
};
GType e_mail_message_pane_get_type (void);
GType e_mail_message_pane_get_type (void);
GtkWidget * e_mail_message_pane_new (EShellContent *content);
G_END_DECLS

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -20,59 +20,78 @@
*
*/
#ifndef _E_MAIL_NOTEBOOK_VIEW_H_
#define _E_MAIL_NOTEBOOK_VIEW_H_
#ifndef E_MAIL_NOTEBOOK_VIEW_H
#define E_MAIL_NOTEBOOK_VIEW_H
#include <gtk/gtk.h>
#include "e-mail-view.h"
#include <mail/e-mail-view.h>
#include <shell/e-shell-searchbar.h>
#include "widgets/menus/gal-view-instance.h"
#include <menus/gal-view-instance.h>
#define E_MAIL_NOTEBOOK_VIEW_TYPE (e_mail_notebook_view_get_type ())
#define E_MAIL_NOTEBOOK_VIEW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_MAIL_NOTEBOOK_VIEW_TYPE, EMailNotebookView))
#define E_MAIL_NOTEBOOK_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_MAIL_NOTEBOOK_VIEW_TYPE, EMailNotebookViewClass))
#define E_IS_MAIL_NOTEBOOK_VIEW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_MAIL_NOTEBOOK_VIEW_TYPE))
#define E_IS_MAIL_NOTEBOOK_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_MAIL_NOTEBOOK_VIEW_TYPE))
#define E_MAIL_NOTEBOOK_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_MAIL_NOTEBOOK_VIEW_TYPE, EMailNotebookViewClass))
/* Standard GObject macros */
#define E_TYPE_MAIL_NOTEBOOK_VIEW \
(e_mail_notebook_view_get_type ())
#define E_MAIL_NOTEBOOK_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_MAIL_NOTEBOOK_VIEW, EMailNotebookView))
#define E_MAIL_NOTEBOOK_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_MAIL_NOTEBOOK_VIEW, EMailNotebookViewClass))
#define E_IS_MAIL_NOTEBOOK_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_MAIL_NOTEBOOK_VIEW))
#define E_IS_MAIL_NOTEBOOK_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_MAIL_NOTEBOOK_VIEW))
#define E_MAIL_NOTEBOOK_VIEW_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_MAIL_NOTEBOOK_VIEW, EMailNotebookViewClass))
G_BEGIN_DECLS
typedef struct _EMailNotebookView EMailNotebookView;
typedef struct _EMailNotebookViewClass EMailNotebookViewClass;
typedef struct _EMailNotebookViewPrivate EMailNotebookViewPrivate;
typedef struct _EMailNotebookView {
struct _EMailNotebookView {
EMailView parent;
EMailNotebookViewPrivate *priv;
} EMailNotebookView;
};
typedef struct _EMailNotebookViewClass {
struct _EMailNotebookViewClass {
EMailViewClass parent_class;
};
} EMailNotebookViewClass;
GType e_mail_notebook_view_get_type (void);
void e_mail_notebook_view_register_type
(GTypeModule *type_module);
GtkWidget * e_mail_notebook_view_new (EShellContent *content);
EShellSearchbar *
e_mail_notebook_view_get_searchbar
(EMailNotebookView *view);
void e_mail_notebook_view_set_search_strings
(EMailNotebookView *view,
GSList *search_strings);
GalViewInstance *
e_mail_notebook_view_get_view_instance
(EMailNotebookView *view);
void e_mail_notebook_view_update_view_instance
(EMailNotebookView *view);
void e_mail_notebook_view_set_show_deleted
(EMailNotebookView *view,
gboolean show_deleted);
gboolean e_mail_notebook_view_get_show_deleted
(EMailNotebookView *view);
void e_mail_notebook_view_set_preview_visible
(EMailNotebookView *view,
gboolean preview_visible);
gboolean e_mail_notebook_view_get_preview_visible
(EMailNotebookView *view);
void e_mail_notebook_view_set_orientation
(EMailNotebookView *view,
GtkOrientation orientation);
GtkOrientation e_mail_notebook_view_get_orientation
(EMailNotebookView *view);
GType e_mail_notebook_view_get_type (void);
void e_mail_notebook_view_register_type (GTypeModule *type_module);
GtkWidget * e_mail_notebook_view_new (EShellContent *content);
G_END_DECLS
EShellSearchbar * e_mail_notebook_view_get_searchbar (EMailView *view);
void e_mail_notebook_view_set_search_strings (EMailView *view, GSList *search_strings);
GalViewInstance * e_mail_notebook_view_get_view_instance (EMailView *view);
void e_mail_notebook_view_update_view_instance (EMailView *view);
void
e_mail_notebook_view_set_show_deleted (EMailNotebookView *view,
gboolean show_deleted);
gboolean
e_mail_notebook_view_get_show_deleted (EMailNotebookView *view);
void
e_mail_notebook_view_set_preview_visible (EMailNotebookView *view,
gboolean preview_visible);
gboolean
e_mail_notebook_view_get_preview_visible (EMailNotebookView *view);
void
e_mail_notebook_view_set_orientation (EMailNotebookView *view,
GtkOrientation orientation);
GtkOrientation
e_mail_notebook_view_get_orientation (EMailNotebookView *view);
#endif
#endif /* E_MAIL_NOTEBOOK_VIEW_H */

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -24,12 +24,10 @@
# include <config.h>
#endif
#include <glib.h>
#include <glib/gi18n.h>
#include "e-mail-pane.h"
G_DEFINE_TYPE (EMailPane, e_mail_pane, GTK_TYPE_VBOX)
enum {
@ -72,4 +70,3 @@ e_mail_pane_class_init (EMailPaneClass *klass)
}

View File

@ -1,4 +1,6 @@
/*
* e-mail-pane.h
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
@ -10,7 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -20,30 +22,44 @@
*
*/
#ifndef _E_MAIL_PANE_H_
#define _E_MAIL_PANE_H_
#ifndef E_MAIL_PANE_H
#define E_MAIL_PANE_H
#include <gtk/gtk.h>
#define E_MAIL_PANE_TYPE (e_mail_pane_get_type ())
#define E_MAIL_PANE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_MAIL_PANE_TYPE, MailFolderView))
#define E_MAIL_PANE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_MAIL_PANE_TYPE, MailFolderViewClass))
#define IS_E_MAIL_PANE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_MAIL_PANE_TYPE))
#define IS_E_MAIL_PANE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_MAIL_PANE_TYPE))
#define E_MAIL_PANE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_MAIL_PANE_TYPE, EMailPaneClass))
#define E_TYPE_MAIL_PANE \
(e_mail_pane_get_type ())
#define E_MAIL_PANE(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_MAIL_PANE, MailFolderView))
#define E_MAIL_PANE_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_MAIL_PANE, MailFolderViewClass))
#define E_IS_MAIL_PANE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_MAIL_PANE))
#define E_IS_MAIL_PANE_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_MAIL_PANE))
#define E_MAIL_PANE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_MAIL_PANE, EMailPaneClass))
G_BEGIN_DECLS
typedef struct _EMailPane EMailPane;
typedef struct _EMailPaneClass EMailPaneClass;
typedef struct _EMailPanePrivate EMailPanePrivate;
typedef struct _EMailPane {
struct _EMailPane {
GtkVBox parent;
EMailPanePrivate *priv;
} EMailPane;
};
typedef struct _EMailPaneClass {
struct _EMailPaneClass {
GtkVBoxClass parent_class;
};
} EMailPaneClass;
G_END_DECLS
#endif
#endif /* E_MAIL_PANE_H */

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -24,7 +24,6 @@
# include <config.h>
#endif
#include <glib.h>
#include <glib/gi18n.h>
#include "e-mail-paned-view.h"
@ -48,6 +47,10 @@
#include "message-list.h"
#include "e-mail-reader-utils.h"
#define E_MAIL_PANED_VIEW_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
((obj), E_TYPE_MAIL_PANED_VIEW, EMailPanedViewPrivate))
#define E_SHELL_WINDOW_ACTION_GROUP_MAIL(window) \
E_SHELL_WINDOW_ACTION_GROUP ((window), "mail")
@ -86,14 +89,13 @@ enum {
#define STATE_KEY_SELECTED_MESSAGE "SelectedMessage"
#define STATE_KEY_PREVIEW_VISIBLE "PreviewVisible"
static EMailViewClass *parent_class;
static GType mail_paned_view_type;
static void
mail_paned_view_save_boolean (EMailPanedView *view,
const gchar *key,
gboolean value)
const gchar *key,
gboolean value)
{
EShellView *shell_view;
EShellContent *shell_content;
@ -121,7 +123,7 @@ mail_paned_view_save_boolean (EMailPanedView *view,
static void
mail_paned_view_message_list_built_cb (EMailPanedView *view,
MessageList *message_list)
MessageList *message_list)
{
EMailPanedViewPrivate *priv = view->priv;
EShellView *shell_view;
@ -169,8 +171,8 @@ mail_paned_view_message_list_built_cb (EMailPanedView *view,
static void
mail_paned_view_message_selected_cb (EMailPanedView *view,
const gchar *message_uid,
MessageList *message_list)
const gchar *message_uid,
MessageList *message_list)
{
EShellContent *shell_content;
EShellView *shell_view;
@ -206,8 +208,8 @@ mail_paned_view_message_selected_cb (EMailPanedView *view,
static void
mail_paned_view_restore_state_cb (EShellWindow *shell_window,
EShellView *shell_view,
EMailPanedView *view)
EShellView *shell_view,
EMailPanedView *view)
{
EMailPanedViewPrivate *priv;
GConfBridge *bridge;
@ -229,6 +231,22 @@ mail_paned_view_restore_state_cb (EShellWindow *shell_window,
gconf_bridge_bind_property (bridge, key, object, "vposition");
}
static void
mail_paned_display_view_cb (EMailView *view,
GalView *gal_view)
{
EMailReader *reader;
GtkWidget *message_list;
reader = E_MAIL_READER (view);
message_list = e_mail_reader_get_message_list (reader);
if (GAL_IS_VIEW_ETABLE (gal_view))
gal_view_etable_attach_tree (
GAL_VIEW_ETABLE (gal_view),
E_TREE (message_list));
}
static void
mail_paned_view_notify_group_by_threads_cb (EMailReader *reader)
{
@ -241,28 +259,11 @@ mail_paned_view_notify_group_by_threads_cb (EMailReader *reader)
STATE_KEY_GROUP_BY_THREADS, group_by_threads);
}
GtkOrientation
e_mail_paned_view_get_orientation (EMailPanedView *view)
{
return view->priv->orientation;
}
void
e_mail_paned_view_set_orientation (EMailPanedView *view,
GtkOrientation orientation)
{
view->priv->orientation = orientation;
g_object_notify (G_OBJECT (view), "orientation");
e_mail_paned_view_update_view_instance (view);
}
static void
mail_paned_view_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_GROUP_BY_THREADS:
@ -272,20 +273,20 @@ mail_paned_view_set_property (GObject *object,
return;
case PROP_ORIENTATION:
e_mail_paned_view_set_orientation (
E_MAIL_PANED_VIEW (object),
e_mail_view_set_orientation (
E_MAIL_VIEW (object),
g_value_get_enum (value));
return;
case PROP_PREVIEW_VISIBLE:
e_mail_paned_view_set_preview_visible (
E_MAIL_PANED_VIEW (object),
e_mail_view_set_preview_visible (
E_MAIL_VIEW (object),
g_value_get_boolean (value));
return;
case PROP_SHOW_DELETED:
e_mail_paned_view_set_show_deleted (
E_MAIL_PANED_VIEW (object),
e_mail_view_set_show_deleted (
E_MAIL_VIEW (object),
g_value_get_boolean (value));
return;
}
@ -295,9 +296,9 @@ mail_paned_view_set_property (GObject *object,
static void
mail_paned_view_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
guint property_id,
GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_GROUP_BY_THREADS:
@ -310,22 +311,22 @@ mail_paned_view_get_property (GObject *object,
case PROP_ORIENTATION:
g_value_set_enum (
value,
e_mail_paned_view_get_orientation (
E_MAIL_PANED_VIEW (object)));
e_mail_view_get_orientation (
E_MAIL_VIEW (object)));
return;
case PROP_PREVIEW_VISIBLE:
g_value_set_boolean (
value,
e_mail_paned_view_get_preview_visible (
E_MAIL_PANED_VIEW (object)));
e_mail_view_get_preview_visible (
E_MAIL_VIEW (object)));
return;
case PROP_SHOW_DELETED:
g_value_set_boolean (
value,
e_mail_paned_view_get_show_deleted (
E_MAIL_PANED_VIEW (object)));
e_mail_view_get_show_deleted (
E_MAIL_VIEW (object)));
return;
}
@ -337,7 +338,7 @@ mail_paned_view_dispose (GObject *object)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW(object)->priv;
priv = E_MAIL_PANED_VIEW (object)->priv;
if (priv->paned != NULL) {
g_object_unref (priv->paned);
@ -400,7 +401,7 @@ mail_paned_view_get_formatter (EMailReader *reader)
static gboolean
mail_paned_view_get_hide_deleted (EMailReader *reader)
{
return !e_mail_paned_view_get_show_deleted (E_MAIL_PANED_VIEW(reader));
return !e_mail_view_get_show_deleted (E_MAIL_VIEW (reader));
}
static GtkWidget *
@ -539,8 +540,7 @@ mail_paned_view_set_folder (EMailReader *reader,
value = FALSE;
}
e_mail_paned_view_set_preview_visible (
E_MAIL_PANED_VIEW (reader), value);
e_mail_view_set_preview_visible (E_MAIL_VIEW (reader), value);
g_free (group_name);
@ -558,14 +558,14 @@ mail_paned_view_show_search_bar (EMailReader *reader)
gtk_widget_show (priv->search_bar);
}
static void
mail_paned_view_open_selected_mail (EMailReader *reader)
static guint
mail_paned_view_reader_open_selected_mail (EMailReader *reader)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW (reader)->priv;
E_MAIL_PANED_VIEW_CLASS(G_OBJECT_GET_CLASS (reader))->open_selected_mail (E_MAIL_PANED_VIEW(reader));
return E_MAIL_PANED_VIEW_CLASS (G_OBJECT_GET_CLASS (reader))->open_selected_mail (E_MAIL_PANED_VIEW (reader));
}
static void
@ -586,10 +586,6 @@ mail_paned_view_constructed (GObject *object)
priv = E_MAIL_PANED_VIEW (object)->priv;
priv->formatter = em_format_html_display_new ();
/* Chain up to parent's constructed() method. */
if (G_OBJECT_CLASS (parent_class)->constructed)
G_OBJECT_CLASS (parent_class)->constructed (object);
shell_content = E_MAIL_VIEW (object)->content;
shell_view = e_shell_content_get_shell_view (shell_content);
shell_window = e_shell_view_get_shell_window (shell_view);
@ -648,12 +644,11 @@ mail_paned_view_constructed (GObject *object)
/* Load the view instance. */
e_mail_paned_view_update_view_instance (
E_MAIL_PANED_VIEW (object));
e_mail_view_update_view_instance (E_MAIL_VIEW (object));
/* Message list customizations. */
e_mail_reader_init_private (E_MAIL_READER(object));
e_mail_reader_init_private (E_MAIL_READER (object));
reader = E_MAIL_READER (object);
message_list = e_mail_reader_get_message_list (reader);
@ -673,253 +668,31 @@ mail_paned_view_constructed (GObject *object)
e_mail_reader_connect_headers (reader);
}
static void
mpv_open_selected_mail (EMailPanedView *view)
{
e_mail_reader_open_selected (E_MAIL_READER(view));
}
static void
mail_paned_view_init (EMailPanedView *shell)
{
shell->priv = g_new0(EMailPanedViewPrivate, 1);
shell->priv->preview_visible = TRUE;
g_signal_connect (
shell, "notify::group-by-threads",
G_CALLBACK (mail_paned_view_notify_group_by_threads_cb),
NULL);
}
static void
mail_paned_view_class_init (EMailViewClass *klass)
{
GObjectClass * object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->dispose = mail_paned_view_dispose;
object_class->constructed = mail_paned_view_constructed;
object_class->set_property = mail_paned_view_set_property;
object_class->get_property = mail_paned_view_get_property;
klass->get_searchbar = e_mail_paned_view_get_searchbar;
klass->set_search_strings = e_mail_paned_view_set_search_strings;
klass->get_view_instance = e_mail_paned_view_get_view_instance;
klass->update_view_instance = e_mail_paned_view_update_view_instance;
klass->set_orientation = e_mail_paned_view_set_orientation;
klass->get_orientation = e_mail_paned_view_get_orientation;
klass->set_show_deleted = e_mail_paned_view_set_show_deleted;
klass->get_show_deleted = e_mail_paned_view_get_show_deleted;
klass->set_preview_visible = e_mail_paned_view_set_preview_visible;
klass->get_preview_visible = e_mail_paned_view_get_preview_visible;
E_MAIL_PANED_VIEW_CLASS(klass)->open_selected_mail = mpv_open_selected_mail;
/* Inherited from EMailReader */
g_object_class_override_property (
object_class,
PROP_GROUP_BY_THREADS,
"group-by-threads");
g_object_class_install_property (
object_class,
PROP_PREVIEW_VISIBLE,
g_param_spec_boolean (
"preview-visible",
"Preview is Visible",
"Whether the preview pane is visible",
TRUE,
G_PARAM_READWRITE));
g_object_class_install_property (
object_class,
PROP_SHOW_DELETED,
g_param_spec_boolean (
"show-deleted",
"Show Deleted",
NULL,
FALSE,
G_PARAM_READWRITE));
g_object_class_override_property (
object_class, PROP_ORIENTATION, "orientation");
}
static void
mail_paned_view_reader_init (EMailReaderIface *iface)
{
iface->get_action_group = mail_paned_view_get_action_group;
iface->get_formatter = mail_paned_view_get_formatter;
iface->get_hide_deleted = mail_paned_view_get_hide_deleted;
iface->get_message_list = mail_paned_view_get_message_list;
iface->get_popup_menu = mail_paned_view_get_popup_menu;
iface->get_shell_backend = mail_paned_view_get_shell_backend;
iface->get_window = mail_paned_view_get_window;
iface->set_folder = mail_paned_view_set_folder;
iface->show_search_bar = mail_paned_view_show_search_bar;
iface->open_selected_mail = mail_paned_view_open_selected_mail;
}
GType
e_mail_paned_view_get_type (void)
{
return mail_paned_view_type;
}
void
e_mail_paned_view_register_type (GTypeModule *type_module)
{
static const GTypeInfo type_info = {
sizeof (EMailPanedViewClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) mail_paned_view_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (EMailPanedView),
0, /* n_preallocs */
(GInstanceInitFunc) mail_paned_view_init,
NULL /* value_table */
};
#if 0
static const GInterfaceInfo orientable_info = {
(GInterfaceInitFunc) NULL,
(GInterfaceFinalizeFunc) NULL,
NULL /* interface_data */
};
#endif
static const GInterfaceInfo reader_info = {
(GInterfaceInitFunc) mail_paned_view_reader_init,
(GInterfaceFinalizeFunc) NULL,
NULL /* interface_data */
};
mail_paned_view_type = g_type_module_register_type (
type_module, E_MAIL_VIEW_TYPE,
"EMailPanedView", &type_info, 0);
#if 0
g_type_module_add_interface (
type_module, mail_paned_view_type,
GTK_TYPE_ORIENTABLE, &orientable_info);
#endif
g_type_module_add_interface (
type_module, mail_paned_view_type,
E_TYPE_MAIL_READER, &reader_info);
}
GtkWidget *
e_mail_paned_view_new (EShellContent *content)
{
g_return_val_if_fail (E_IS_SHELL_CONTENT (content), NULL);
return g_object_new (
E_MAIL_PANED_VIEW_TYPE,
"shell-content", content, NULL);
}
gboolean
e_mail_paned_view_get_preview_visible (EMailPanedView *view)
{
g_return_val_if_fail (
E_IS_MAIL_PANED_VIEW (view), FALSE);
return view->priv->preview_visible;
}
void
e_mail_paned_view_set_preview_visible (EMailPanedView *view,
gboolean preview_visible)
{
g_return_if_fail (E_IS_MAIL_PANED_VIEW (view));
if (preview_visible == view->priv->preview_visible)
return;
/* If we're showing the preview, tell EMailReader to reload the
* selected message. This should force it to download the full
* message if necessary, so we don't get an empty preview. */
if (preview_visible) {
EMailReader *reader;
GtkWidget *message_list;
const gchar *cursor_uid;
reader = E_MAIL_READER (view);
message_list = e_mail_reader_get_message_list (reader);
cursor_uid = MESSAGE_LIST (message_list)->cursor_uid;
if (cursor_uid != NULL)
e_mail_reader_set_message (reader, cursor_uid);
}
view->priv->preview_visible = preview_visible;
mail_paned_view_save_boolean (
view,
STATE_KEY_PREVIEW_VISIBLE, preview_visible);
g_object_notify (G_OBJECT (view), "preview-visible");
}
EShellSearchbar *
e_mail_paned_view_get_searchbar (EMailPanedView *view)
static EShellSearchbar *
mail_paned_view_get_searchbar (EMailView *view)
{
EShellView *shell_view;
EShellContent *shell_content;
GtkWidget *widget;
g_return_val_if_fail (
E_IS_MAIL_PANED_VIEW (view), NULL);
shell_content = E_MAIL_VIEW (view)->content;
shell_content = view->content;
shell_view = e_shell_content_get_shell_view (shell_content);
widget = e_shell_view_get_searchbar (shell_view);
return E_SHELL_SEARCHBAR (widget);
}
gboolean
e_mail_paned_view_get_show_deleted (EMailPanedView *view)
{
g_return_val_if_fail (
E_IS_MAIL_PANED_VIEW (view), FALSE);
return view->priv->show_deleted;
}
void
e_mail_paned_view_set_show_deleted (EMailPanedView *view,
gboolean show_deleted)
{
g_return_if_fail (E_IS_MAIL_PANED_VIEW (view));
view->priv->show_deleted = show_deleted;
g_object_notify (G_OBJECT (view), "show-deleted");
}
GalViewInstance *
e_mail_paned_view_get_view_instance (EMailPanedView *view)
{
g_return_val_if_fail (
E_IS_MAIL_PANED_VIEW (view), NULL);
return view->priv->view_instance;
}
void
e_mail_paned_view_set_search_strings (EMailPanedView *view,
GSList *search_strings)
static void
mail_paned_view_set_search_strings (EMailView *view,
GSList *search_strings)
{
EMailPanedViewPrivate *priv;
ESearchBar *search_bar;
ESearchingTokenizer *tokenizer;
g_return_if_fail (E_IS_MAIL_PANED_VIEW (view));
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
search_bar = E_SEARCH_BAR (view->priv->search_bar);
search_bar = E_SEARCH_BAR (priv->search_bar);
tokenizer = e_search_bar_get_tokenizer (search_bar);
e_searching_tokenizer_set_secondary_case_sensitivity (tokenizer, FALSE);
@ -934,25 +707,20 @@ e_mail_paned_view_set_search_strings (EMailPanedView *view,
e_search_bar_changed (search_bar);
}
static void
mail_paned_display_view_cb (EMailPanedView *view,
GalView *gal_view)
static GalViewInstance *
mail_paned_view_get_view_instance (EMailView *view)
{
EMailReader *reader;
GtkWidget *message_list;
EMailPanedViewPrivate *priv;
reader = E_MAIL_READER (view);
message_list = e_mail_reader_get_message_list (reader);
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
if (GAL_IS_VIEW_ETABLE (gal_view))
gal_view_etable_attach_tree (
GAL_VIEW_ETABLE (gal_view),
E_TREE (message_list));
return priv->view_instance;
}
void
e_mail_paned_view_update_view_instance (EMailPanedView *view)
static void
mail_paned_view_update_view_instance (EMailView *view)
{
EMailPanedViewPrivate *priv;
EMailReader *reader;
EShell *shell;
EShellContent *shell_content;
@ -970,7 +738,9 @@ e_mail_paned_view_update_view_instance (EMailPanedView *view)
const gchar *folder_uri;
gchar *view_id;
shell_content = E_MAIL_VIEW(view)->content;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
shell_content = view->content;
shell_view = e_shell_content_get_shell_view (shell_content);
shell_view_class = E_SHELL_VIEW_GET_CLASS (shell_view);
view_collection = shell_view_class->view_collection;
@ -990,9 +760,9 @@ e_mail_paned_view_update_view_instance (EMailPanedView *view)
/* If we have a folder, we should also have a URI. */
g_return_if_fail (folder_uri != NULL);
if (view->priv->view_instance != NULL) {
g_object_unref (view->priv->view_instance);
view->priv->view_instance = NULL;
if (priv->view_instance != NULL) {
g_object_unref (priv->view_instance);
priv->view_instance = NULL;
}
view_id = mail_config_folder_to_safe_url (folder);
@ -1001,7 +771,7 @@ e_mail_paned_view_update_view_instance (EMailPanedView *view)
else
view_instance = e_shell_view_new_view_instance (shell_view, view_id);
view->priv->view_instance = view_instance;
priv->view_instance = view_instance;
orientable = GTK_ORIENTABLE (view);
orientation = gtk_orientable_get_orientation (orientable);
@ -1096,29 +866,274 @@ e_mail_paned_view_update_view_instance (EMailPanedView *view)
g_signal_connect_swapped (
view_instance, "display-view",
G_CALLBACK (mail_paned_display_view_cb),
view);
G_CALLBACK (mail_paned_display_view_cb), view);
mail_paned_display_view_cb (
view,
gal_view_instance_get_current_view (view_instance));
view, gal_view_instance_get_current_view (view_instance));
}
static void
mail_paned_view_set_orientation (EMailView *view,
GtkOrientation orientation)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
priv->orientation = orientation;
g_object_notify (G_OBJECT (view), "orientation");
e_mail_view_update_view_instance (view);
}
static GtkOrientation
mail_paned_view_get_orientation (EMailView *view)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
return priv->orientation;
}
static void
mail_paned_view_set_show_deleted (EMailView *view,
gboolean show_deleted)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
priv->show_deleted = show_deleted;
g_object_notify (G_OBJECT (view), "show-deleted");
}
static gboolean
mail_paned_view_get_show_deleted (EMailView *view)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
return priv->show_deleted;
}
static void
mail_paned_view_set_preview_visible (EMailView *view,
gboolean preview_visible)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
if (preview_visible == priv->preview_visible)
return;
/* If we're showing the preview, tell EMailReader to reload the
* selected message. This should force it to download the full
* message if necessary, so we don't get an empty preview. */
if (preview_visible) {
EMailReader *reader;
GtkWidget *message_list;
const gchar *cursor_uid;
reader = E_MAIL_READER (view);
message_list = e_mail_reader_get_message_list (reader);
cursor_uid = MESSAGE_LIST (message_list)->cursor_uid;
if (cursor_uid != NULL)
e_mail_reader_set_message (reader, cursor_uid);
}
priv->preview_visible = preview_visible;
mail_paned_view_save_boolean (
E_MAIL_PANED_VIEW (view),
STATE_KEY_PREVIEW_VISIBLE, preview_visible);
g_object_notify (G_OBJECT (view), "preview-visible");
}
static gboolean
mail_paned_view_get_preview_visible (EMailView *view)
{
EMailPanedViewPrivate *priv;
priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
return priv->preview_visible;
}
static guint
mail_paned_view_open_selected_mail (EMailPanedView *view)
{
return e_mail_reader_open_selected (E_MAIL_READER (view));
}
static void
mail_paned_view_class_init (EMailPanedViewClass *class)
{
GObjectClass *object_class;
EMailViewClass *mail_view_class;
parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (EMailPanedViewPrivate));
object_class = G_OBJECT_CLASS (class);
object_class->dispose = mail_paned_view_dispose;
object_class->constructed = mail_paned_view_constructed;
object_class->set_property = mail_paned_view_set_property;
object_class->get_property = mail_paned_view_get_property;
mail_view_class = E_MAIL_VIEW_CLASS (class);
mail_view_class->get_searchbar = mail_paned_view_get_searchbar;
mail_view_class->set_search_strings = mail_paned_view_set_search_strings;
mail_view_class->get_view_instance = mail_paned_view_get_view_instance;
mail_view_class->update_view_instance = mail_paned_view_update_view_instance;
mail_view_class->set_orientation = mail_paned_view_set_orientation;
mail_view_class->get_orientation = mail_paned_view_get_orientation;
mail_view_class->set_show_deleted = mail_paned_view_set_show_deleted;
mail_view_class->get_show_deleted = mail_paned_view_get_show_deleted;
mail_view_class->set_preview_visible = mail_paned_view_set_preview_visible;
mail_view_class->get_preview_visible = mail_paned_view_get_preview_visible;
class->open_selected_mail = mail_paned_view_open_selected_mail;
/* Inherited from EMailReader */
g_object_class_override_property (
object_class,
PROP_GROUP_BY_THREADS,
"group-by-threads");
g_object_class_install_property (
object_class,
PROP_PREVIEW_VISIBLE,
g_param_spec_boolean (
"preview-visible",
"Preview is Visible",
"Whether the preview pane is visible",
TRUE,
G_PARAM_READWRITE));
g_object_class_install_property (
object_class,
PROP_SHOW_DELETED,
g_param_spec_boolean (
"show-deleted",
"Show Deleted",
NULL,
FALSE,
G_PARAM_READWRITE));
g_object_class_override_property (
object_class, PROP_ORIENTATION, "orientation");
}
static void
mail_paned_view_reader_init (EMailReaderIface *iface)
{
iface->get_action_group = mail_paned_view_get_action_group;
iface->get_formatter = mail_paned_view_get_formatter;
iface->get_hide_deleted = mail_paned_view_get_hide_deleted;
iface->get_message_list = mail_paned_view_get_message_list;
iface->get_popup_menu = mail_paned_view_get_popup_menu;
iface->get_shell_backend = mail_paned_view_get_shell_backend;
iface->get_window = mail_paned_view_get_window;
iface->set_folder = mail_paned_view_set_folder;
iface->show_search_bar = mail_paned_view_show_search_bar;
iface->open_selected_mail = mail_paned_view_reader_open_selected_mail;
}
static void
mail_paned_view_init (EMailPanedView *view)
{
view->priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
view->priv->preview_visible = TRUE;
g_signal_connect (
view, "notify::group-by-threads",
G_CALLBACK (mail_paned_view_notify_group_by_threads_cb),
NULL);
}
GType
e_mail_paned_view_get_type (void)
{
return mail_paned_view_type;
}
void
e_mail_paned_view_register_type (GTypeModule *type_module)
{
static const GTypeInfo type_info = {
sizeof (EMailPanedViewClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) mail_paned_view_class_init,
(GClassFinalizeFunc) NULL,
NULL, /* class_data */
sizeof (EMailPanedView),
0, /* n_preallocs */
(GInstanceInitFunc) mail_paned_view_init,
NULL /* value_table */
};
#if 0
static const GInterfaceInfo orientable_info = {
(GInterfaceInitFunc) NULL,
(GInterfaceFinalizeFunc) NULL,
NULL /* interface_data */
};
#endif
static const GInterfaceInfo reader_info = {
(GInterfaceInitFunc) mail_paned_view_reader_init,
(GInterfaceFinalizeFunc) NULL,
NULL /* interface_data */
};
mail_paned_view_type = g_type_module_register_type (
type_module, E_TYPE_MAIL_VIEW,
"EMailPanedView", &type_info, 0);
#if 0
g_type_module_add_interface (
type_module, mail_paned_view_type,
GTK_TYPE_ORIENTABLE, &orientable_info);
#endif
g_type_module_add_interface (
type_module, mail_paned_view_type,
E_TYPE_MAIL_READER, &reader_info);
}
GtkWidget *
e_mail_paned_view_new (EShellContent *content)
{
g_return_val_if_fail (E_IS_SHELL_CONTENT (content), NULL);
return g_object_new (
E_TYPE_MAIL_PANED_VIEW,
"shell-content", content, NULL);
}
void
e_mail_paned_view_hide_message_list_pane (EMailPanedView *view,
gboolean visible)
gboolean visible)
{
EMailPanedViewPrivate *priv = view->priv;
g_return_if_fail (E_IS_MAIL_PANED_VIEW (view));
if (visible)
gtk_widget_show (priv->scrolled_window);
gtk_widget_show (view->priv->scrolled_window);
else
gtk_widget_hide (priv->scrolled_window);
gtk_widget_hide (view->priv->scrolled_window);
}
GtkWidget *
e_mail_paned_view_get_preview (EMailPanedView *view)
{
g_return_val_if_fail (E_IS_MAIL_PANED_VIEW (view), NULL);
return view->priv->preview;
}

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -20,11 +20,10 @@
*
*/
#ifndef _E_MAIL_PANED_VIEW_H_
#define _E_MAIL_PANED_VIEW_H_
#ifndef E_MAIL_PANED_VIEW_H
#define E_MAIL_PANED_VIEW_H
#include <gtk/gtk.h>
#include "e-mail-view.h"
#include <mail/e-mail-view.h>
#include <shell/e-shell-content.h>
#include <shell/e-shell-searchbar.h>
@ -32,63 +31,50 @@
#include <mail/em-format-html-display.h>
#define E_MAIL_PANED_VIEW_TYPE (e_mail_paned_view_get_type ())
#define E_MAIL_PANED_VIEW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_MAIL_PANED_VIEW_TYPE, EMailPanedView))
#define E_MAIL_PANED_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_MAIL_PANED_VIEW_TYPE, EMailPanedViewClass))
#define E_IS_MAIL_PANED_VIEW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_MAIL_PANED_VIEW_TYPE))
#define E_IS_MAIL_PANED_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_MAIL_PANED_VIEW_TYPE))
#define E_MAIL_PANED_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_MAIL_PANED_VIEW_TYPE, EMailPanedViewClass))
/* Standard GObject macros */
#define E_TYPE_MAIL_PANED_VIEW \
(e_mail_paned_view_get_type ())
#define E_MAIL_PANED_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_MAIL_PANED_VIEW, EMailPanedView))
#define E_MAIL_PANED_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_MAIL_PANED_VIEW, EMailPanedViewClass))
#define E_IS_MAIL_PANED_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_MAIL_PANED_VIEW))
#define E_IS_MAIL_PANED_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_MAIL_PANED_VIEW))
#define E_MAIL_PANED_VIEW_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_MAIL_PANED_VIEW, EMailPanedViewClass))
G_BEGIN_DECLS
typedef struct _EMailPanedView EMailPanedView;
typedef struct _EMailPanedViewClass EMailPanedViewClass;
typedef struct _EMailPanedViewPrivate EMailPanedViewPrivate;
typedef struct _EMailPanedView {
struct _EMailPanedView {
EMailView parent;
EMailPanedViewPrivate *priv;
} EMailPanedView;
};
typedef struct _EMailPanedViewClass {
struct _EMailPanedViewClass {
EMailViewClass parent_class;
void (*open_selected_mail) (EMailPanedView *view);
guint (*open_selected_mail) (EMailPanedView *view);
};
} EMailPanedViewClass;
GType e_mail_paned_view_get_type (void);
void e_mail_paned_view_register_type (GTypeModule *type_module);
GtkWidget * e_mail_paned_view_new (EShellContent *content);
void e_mail_paned_view_hide_message_list_pane
(EMailPanedView *view,
gboolean visible);
GtkWidget * e_mail_paned_view_get_preview (EMailPanedView *view);
GType e_mail_paned_view_get_type (void);
void
e_mail_paned_view_register_type (GTypeModule *type_module);
GtkWidget *
e_mail_paned_view_new (EShellContent *content);
void
e_mail_paned_view_update_view_instance (EMailPanedView *view);
GalViewInstance *
e_mail_paned_view_get_view_instance (EMailPanedView *view);
void
e_mail_paned_view_set_search_strings (EMailPanedView *view,
GSList *search_strings);
void
e_mail_paned_view_set_show_deleted (EMailPanedView *view,
gboolean show_deleted);
G_END_DECLS
gboolean
e_mail_paned_view_get_show_deleted (EMailPanedView *view);
EShellSearchbar *
e_mail_paned_view_get_searchbar (EMailPanedView *view);
void
e_mail_paned_view_set_preview_visible (EMailPanedView *view,
gboolean preview_visible);
gboolean
e_mail_paned_view_get_preview_visible (EMailPanedView *view);
void
e_mail_paned_view_set_orientation (EMailPanedView *view,
GtkOrientation orientation);
GtkOrientation
e_mail_paned_view_get_orientation (EMailPanedView *view);
void
e_mail_paned_view_hide_message_list_pane (EMailPanedView *view,
gboolean visible);
GtkWidget *
e_mail_paned_view_get_preview (EMailPanedView *view);
#endif
#endif /* E_MAIL_PANED_VIEW_H */

View File

@ -53,7 +53,6 @@
#include "mail/mail-vfolder.h"
#include "mail/message-list.h"
#if HAVE_CLUTTER
#include <clutter/clutter.h>
#include <mx/mx.h>
@ -682,7 +681,7 @@ action_mail_next_cb (GtkAction *action,
#if HAVE_CLUTTER
ClutterActor *actor;
#endif
direction = MESSAGE_LIST_SELECT_NEXT;
flags = 0;
mask = 0;
@ -691,13 +690,12 @@ action_mail_next_cb (GtkAction *action,
#if HAVE_CLUTTER
actor = g_object_get_data ((GObject *)message_list, "preview-actor");
if (actor) {
clutter_actor_set_opacity (actor, 0);
clutter_actor_animate (actor, CLUTTER_EASE_OUT_SINE, 500,
"opacity", 255,
NULL);
clutter_actor_set_opacity (actor, 0);
clutter_actor_animate (
actor, CLUTTER_EASE_OUT_SINE,
500, "opacity", 255, NULL);
}
#endif
#endif
message_list_select (
MESSAGE_LIST (message_list), direction, flags, mask);
}
@ -887,7 +885,7 @@ action_mail_reply_all_check(CamelFolder *folder, const gchar *uid, CamelMimeMess
mode = REPLY_MODE_SENDER;
else if (response == GTK_RESPONSE_CANCEL)
return;
}
}
e_mail_reader_reply_to_message (reader, message, mode);
}
@ -966,7 +964,7 @@ action_mail_reply_sender_check(CamelFolder *folder, const gchar *uid, CamelMimeM
/* get_message_free() will unref the message, so we need to take an
extra ref for e_mail_reader_reply_to_message() to own. */
g_object_ref(message);
/* Don't do the "Are you sure you want to reply in private?" pop-up if
it's a Reply-To: munged list message... unless we're ignoring munging */
if (gconf_client_get_bool (gconf,
@ -2190,13 +2188,12 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
gboolean store_async;
MailMsgDispatchFunc disp_func;
string = g_strdup_printf (
_("Retrieving message '%s'"), cursor_uid);
#if HAVE_CLUTTER
if (!e_shell_get_express_mode(e_shell_get_default()))
e_web_view_load_string (web_view, string);
#else
e_web_view_load_string (web_view, string);
#else
e_web_view_load_string (web_view, string);
#endif
g_free (string);
@ -3037,7 +3034,7 @@ e_mail_reader_init_private (EMailReader *reader)
message_list = e_mail_reader_get_message_list (reader);
web_view = em_format_html_get_web_view (formatter);
quark_private = g_quark_from_static_string ("EMailReader-private");
/* Connect signals. */
@ -3064,7 +3061,7 @@ e_mail_reader_init_private (EMailReader *reader)
g_signal_connect_swapped (
message_list, "selection-change",
G_CALLBACK (e_mail_reader_changed), reader);
G_CALLBACK (e_mail_reader_changed), reader);
g_object_set_qdata_full (
G_OBJECT (reader), quark_private,
@ -3457,17 +3454,17 @@ e_mail_reader_set_message (EMailReader *reader,
iface->set_message (reader, uid);
}
void
guint
e_mail_reader_open_selected_mail (EMailReader *reader)
{
EMailReaderIface *iface;
g_return_if_fail (E_IS_MAIL_READER (reader));
g_return_val_if_fail (E_IS_MAIL_READER (reader), 0);
iface = E_MAIL_READER_GET_IFACE (reader);
g_return_if_fail (iface->open_selected_mail != NULL);
g_return_val_if_fail (iface->open_selected_mail != NULL, 0);
iface->open_selected_mail (reader);
return iface->open_selected_mail (reader);
}
gboolean

View File

@ -99,7 +99,7 @@ struct _EMailReaderIface {
const gchar *folder_uri);
void (*set_message) (EMailReader *reader,
const gchar *uid);
void (*open_selected_mail) (EMailReader *reader);
guint (*open_selected_mail) (EMailReader *reader);
/* Signals */
void (*show_search_bar) (EMailReader *reader);
@ -121,7 +121,7 @@ GtkActionGroup *
EMFormatHTML * e_mail_reader_get_formatter (EMailReader *reader);
gboolean e_mail_reader_get_hide_deleted (EMailReader *reader);
GtkWidget * e_mail_reader_get_message_list (EMailReader *reader);
void e_mail_reader_open_selected_mail(EMailReader *reader);
guint e_mail_reader_open_selected_mail(EMailReader *reader);
GtkMenu * e_mail_reader_get_popup_menu (EMailReader *reader);
GPtrArray * e_mail_reader_get_selected_uids (EMailReader *reader);
EShellBackend * e_mail_reader_get_shell_backend (EMailReader *reader);

View File

@ -154,7 +154,7 @@ e_mail_tab_picker_drop (MxDroppable *droppable,
(tab->position + tab->width <= props->position) &&
!mx_draggable_is_enabled (MX_DRAGGABLE (props->tab)))
{
new_position --;
new_position--;
break;
}
@ -674,7 +674,7 @@ e_mail_tab_picker_allocate (ClutterActor *actor,
clutter_actor_get_preferred_width (actor, child_box.y2, NULL, &width);
/* Fill out data - note it's ok to fill out docking here as when it
/* Fill out data - note it's ok to fill out docking here as when it
* changes, the tab queues a relayout.
*/
props->docking = e_mail_tab_get_docking (props->tab);
@ -876,7 +876,7 @@ e_mail_tab_picker_scroll_event_cb (ClutterActor *actor,
e_mail_tab_picker_scroll_to (self, priv->scroll_end + 200, 150);
break;
}
return TRUE;
}
@ -1021,12 +1021,12 @@ e_mail_tab_picker_add_tab (EMailTabPicker *picker, EMailTab *tab, gint position)
EMailTabPickerPrivate *priv = picker->priv;
if (priv->tabs && (priv->current_tab >= position))
priv->current_tab ++;
priv->current_tab++;
props = g_slice_new (EMailTabPickerProps);
props->tab = tab;
priv->tabs = g_list_insert (priv->tabs, props, position);
priv->n_tabs ++;
priv->n_tabs++;
clutter_actor_set_parent (CLUTTER_ACTOR (tab), CLUTTER_ACTOR (picker));
mx_draggable_set_axis (MX_DRAGGABLE (tab), MX_DRAG_AXIS_X);
@ -1073,21 +1073,21 @@ e_mail_tab_picker_remove_tab (EMailTabPicker *picker, EMailTab *tab)
if (priv->current_tab)
{
if (priv->current_tab > position)
priv->current_tab --;
priv->current_tab--;
else if (priv->current_tab == position)
e_mail_tab_picker_set_current_tab (picker, priv->current_tab - 1);
}
else if (priv->tabs->next && (position == 0))
{
e_mail_tab_picker_set_current_tab (picker, priv->current_tab + 1);
priv->current_tab --;
priv->current_tab--;
}
}
g_slice_free (EMailTabPickerProps, tab_link->data);
priv->tabs = g_list_delete_link (priv->tabs, tab_link);
clutter_actor_unparent (CLUTTER_ACTOR (tab));
priv->n_tabs --;
priv->n_tabs--;
clutter_actor_queue_relayout (CLUTTER_ACTOR (picker));
}
@ -1096,9 +1096,9 @@ GList *
e_mail_tab_picker_get_tabs (EMailTabPicker *picker)
{
GList *tab_list, *t;
EMailTabPickerPrivate *priv = picker->priv;
tab_list = NULL;
for (t = g_list_last (priv->tabs); t; t = t->prev)
{
@ -1184,10 +1184,10 @@ e_mail_tab_picker_reorder (EMailTabPicker *picker,
}
else if ((priv->current_tab > old_position) &&
(new_position >= priv->current_tab))
priv->current_tab --;
priv->current_tab--;
else if ((priv->current_tab < old_position) &&
(new_position <= priv->current_tab))
priv->current_tab ++;
priv->current_tab++;
clutter_actor_queue_relayout (CLUTTER_ACTOR (picker));
}

View File

@ -16,7 +16,6 @@
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef _E_MAIL_TAB_PICKER_H
#define _E_MAIL_TAB_PICKER_H

View File

@ -663,7 +663,7 @@ e_mail_tab_get_preferred_height (ClutterActor *actor,
padding.top + padding.bottom + priv->spacing +
label_nat_height;
/* Sometimes the preview's natural height will be nan due to
/* Sometimes the preview's natural height will be nan due to
* keeping of the aspect ratio. This guards against that and stops
* Clutter from warning that the natural height is less than the
* minimum height.
@ -1853,7 +1853,7 @@ e_mail_tab_alert_cb (EMailTab *tab)
name = (priv->private ^ (priv->alert_count % 2)) ? NULL : "private-tab";
if (!priv->preview_mode)
clutter_actor_set_name (CLUTTER_ACTOR (tab), name);
priv->alert_count ++;
priv->alert_count++;
if (priv->alert_count < 4)
return TRUE;

View File

@ -1,5 +1,5 @@
/*
* Borrowed from Moblin-Web-Browser: The web browser for Moblin
* Borrowed from Moblin-Web-Browser: The web browser for Moblin
* Copyright (c) 2009, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -24,13 +24,17 @@
# include <config.h>
#endif
#include <glib.h>
#include <glib/gi18n.h>
#include "e-mail-view.h"
#include <glib/gi18n-lib.h>
G_DEFINE_TYPE (EMailView, e_mail_view, GTK_TYPE_VBOX)
#define E_MAIL_VIEW_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
((obj), E_TYPE_MAIL_VIEW, EMailViewPrivate))
struct _EMailViewPrivate {
gint placeholder;
};
enum {
PANE_CLOSE,
@ -44,36 +48,20 @@ enum {
PROP_SHELL_VIEW
};
struct _EMailViewPrivate {
};
static guint signals[LAST_SIGNAL];
static guint signals[LAST_SIGNAL] = { 0 };
static void
e_mail_view_init (EMailView *shell)
{
shell->priv = g_new0(EMailViewPrivate, 1);
shell->prev = NULL;
}
static void
e_mail_view_finalize (GObject *object)
{
/* EMailView *shell = (EMailView *)object; */
G_OBJECT_CLASS (e_mail_view_parent_class)->finalize (object);
}
G_DEFINE_TYPE (EMailView, e_mail_view, GTK_TYPE_VBOX)
static void
mail_view_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_SHELL_VIEW:
E_MAIL_VIEW(object)->content = g_value_get_object (value);
E_MAIL_VIEW(object)->content =
g_value_get_object (value);
return;
}
@ -82,15 +70,14 @@ mail_view_set_property (GObject *object,
static void
mail_view_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
guint property_id,
GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_SHELL_VIEW:
g_value_set_object (
value, E_MAIL_VIEW(object)->content);
value, E_MAIL_VIEW(object)->content);
return;
}
@ -98,52 +85,43 @@ mail_view_get_property (GObject *object,
}
static void
e_mail_view_class_init (EMailViewClass *klass)
e_mail_view_class_init (EMailViewClass *class)
{
GObjectClass * object_class = G_OBJECT_CLASS (klass);
GObjectClass *object_class;
e_mail_view_parent_class = g_type_class_peek_parent (klass);
object_class->finalize = e_mail_view_finalize;
g_type_class_add_private (class, sizeof (EMailViewPrivate));
object_class = G_OBJECT_CLASS (class);
object_class->set_property = mail_view_set_property;
object_class->get_property = mail_view_get_property;
klass->get_searchbar = NULL;
klass->set_search_strings = NULL;
klass->get_view_instance = NULL;
klass->update_view_instance = NULL;
klass->set_orientation = NULL;
klass->get_orientation = NULL;
klass->set_show_deleted = NULL;
klass->get_show_deleted = NULL;
klass->set_preview_visible = NULL;
klass->get_preview_visible = NULL;
signals[PANE_CLOSE] =
g_signal_new ("pane-close",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , pane_close),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[VIEW_CHANGED] =
g_signal_new ("view-changed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , view_changed),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[PANE_CLOSE] = g_signal_new (
"pane-close",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , pane_close),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[VIEW_CHANGED] = g_signal_new (
"view-changed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , view_changed),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[OPEN_MAIL] = g_signal_new (
"open-mail",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , open_mail),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[OPEN_MAIL] =
g_signal_new ("open-mail",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EMailViewClass , open_mail),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
/**
* EMailView:shell-content
*
@ -159,66 +137,144 @@ e_mail_view_class_init (EMailViewClass *klass)
E_TYPE_SHELL_CONTENT,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
}
static void
e_mail_view_init (EMailView *view)
{
view->priv = E_MAIL_VIEW_GET_PRIVATE (view);
}
void
e_mail_view_update_view_instance (EMailView *view)
{
E_MAIL_VIEW_GET_CLASS (view)->update_view_instance (view);
EMailViewClass *class;
g_return_if_fail (E_IS_MAIL_VIEW (view));
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_if_fail (class->update_view_instance != NULL);
class->update_view_instance (view);
}
GalViewInstance *
e_mail_view_get_view_instance (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_view_instance (view);
EMailViewClass *class;
g_return_val_if_fail (E_IS_MAIL_VIEW (view), NULL);
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_val_if_fail (class->get_view_instance != NULL, NULL);
return class->get_view_instance (view);
}
void
e_mail_view_set_search_strings (EMailView *view,
GSList *search_strings)
GSList *search_strings)
{
E_MAIL_VIEW_GET_CLASS (view)->set_search_strings (view, search_strings);
EMailViewClass *class;
g_return_if_fail (E_IS_MAIL_VIEW (view));
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_if_fail (class->set_search_strings != NULL);
class->set_search_strings (view, search_strings);
}
EShellSearchbar *
e_mail_view_get_searchbar (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_searchbar (view);
EMailViewClass *class;
g_return_val_if_fail (E_IS_MAIL_VIEW (view), NULL);
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_val_if_fail (class->get_searchbar != NULL, NULL);
return class->get_searchbar (view);
}
void
e_mail_view_set_orientation (EMailView *view, GtkOrientation orientation)
void
e_mail_view_set_orientation (EMailView *view,
GtkOrientation orientation)
{
E_MAIL_VIEW_GET_CLASS (view)->set_orientation (view, orientation);
EMailViewClass *class;
g_return_if_fail (E_IS_MAIL_VIEW (view));
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_if_fail (class->set_orientation != NULL);
class->set_orientation (view, orientation);
}
GtkOrientation
GtkOrientation
e_mail_view_get_orientation (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_orientation (view);
EMailViewClass *class;
g_return_val_if_fail (E_IS_MAIL_VIEW (view), 0);
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_val_if_fail (class->get_orientation != NULL, 0);
return class->get_orientation (view);
}
void
e_mail_view_set_preview_visible (EMailView *view, gboolean visible)
void
e_mail_view_set_preview_visible (EMailView *view,
gboolean visible)
{
E_MAIL_VIEW_GET_CLASS (view)->set_preview_visible (view, visible);
EMailViewClass *class;
g_return_if_fail (E_IS_MAIL_VIEW (view));
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_if_fail (class->set_preview_visible != NULL);
class->set_preview_visible (view, visible);
}
gboolean
gboolean
e_mail_view_get_preview_visible (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_preview_visible (view);
EMailViewClass *class;
g_return_val_if_fail (E_IS_MAIL_VIEW (view), FALSE);
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_val_if_fail (class->get_preview_visible != NULL, FALSE);
return class->get_preview_visible (view);
}
void
e_mail_view_set_show_deleted (EMailView *view, gboolean show_deleted)
void
e_mail_view_set_show_deleted (EMailView *view,
gboolean show_deleted)
{
E_MAIL_VIEW_GET_CLASS (view)->set_show_deleted (view, show_deleted);
EMailViewClass *class;
g_return_if_fail (E_IS_MAIL_VIEW (view));
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_if_fail (class->set_show_deleted != NULL);
class->set_show_deleted (view, show_deleted);
}
gboolean
gboolean
e_mail_view_get_show_deleted (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_show_deleted (view);
EMailViewClass *class;
g_return_val_if_fail (E_IS_MAIL_VIEW (view), FALSE);
class = E_MAIL_VIEW_GET_CLASS (view);
g_return_val_if_fail (class->get_show_deleted != NULL, FALSE);
return class->get_show_deleted (view);
}

View File

@ -10,7 +10,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
@ -23,63 +23,87 @@
#ifndef _E_MAIL_VIEW_H_
#define _E_MAIL_VIEW_H_
#include <gtk/gtk.h>
#include <shell/e-shell-content.h>
#include <shell/e-shell-searchbar.h>
#include "widgets/menus/gal-view-instance.h"
#define E_MAIL_VIEW_TYPE (e_mail_view_get_type ())
#define E_MAIL_VIEW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_MAIL_VIEW_TYPE, EMailView))
#define E_MAIL_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_MAIL_VIEW_TYPE, EMailViewClass))
#define IS_E_MAIL_VIEW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_MAIL_VIEW_TYPE))
#define IS_E_MAIL_VIEW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_MAIL_VIEW_TYPE))
#define E_MAIL_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), E_MAIL_VIEW_TYPE, EMailViewClass))
/* Standard GObject macros */
#define E_TYPE_MAIL_VIEW \
(e_mail_view_get_type ())
#define E_MAIL_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_MAIL_VIEW, EMailView))
#define E_MAIL_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_MAIL_VIEW, EMailViewClass))
#define E_IS_MAIL_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_MAIL_VIEW))
#define E_IS_MAIL_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_MAIL_VIEW))
#define E_MAIL_VIEW_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_MAIL_VIEW, EMailViewClass))
G_BEGIN_DECLS
typedef struct _EMailView EMailView;
typedef struct _EMailViewClass EMailViewClass;
typedef struct _EMailViewPrivate EMailViewPrivate;
typedef struct _EMailView {
struct _EMailView {
GtkVBox parent;
EMailViewPrivate *priv;
EShellContent *content;
struct _EMailView *prev;
} EMailView;
EMailView *prev;
};
typedef struct _EMailViewClass {
struct _EMailViewClass {
GtkVBoxClass parent_class;
void (*pane_close) (EMailView *);
void (*view_changed) (EMailView *);
void (*open_mail) (EMailView *, const char *);
void (*pane_close) (EMailView *view);
void (*view_changed) (EMailView *view);
void (*open_mail) (EMailView *view,
const gchar *);
EShellSearchbar * (*get_searchbar) (EMailView *view);
void (*set_search_strings) (EMailView *view, GSList *search_strings);
GalViewInstance * (*get_view_instance) (EMailView *view);
void (*update_view_instance) (EMailView *view);
void (*set_orientation) (EMailView *view, GtkOrientation orientation);
GtkOrientation (*get_orientation) (EMailView *);
void (*set_preview_visible) (EMailView *view, gboolean visible);
gboolean (*get_preview_visible) (EMailView *view);
void (*set_show_deleted) (EMailView *view, gboolean show_deleted);
gboolean (*get_show_deleted) (EMailView *view);
EShellSearchbar *
(*get_searchbar) (EMailView *view);
void (*set_search_strings) (EMailView *view,
GSList *search_strings);
GalViewInstance *
(*get_view_instance) (EMailView *view);
void (*update_view_instance) (EMailView *view);
void (*set_orientation) (EMailView *view,
GtkOrientation orientation);
GtkOrientation (*get_orientation) (EMailView *view);
void (*set_preview_visible) (EMailView *view,
gboolean visible);
gboolean (*get_preview_visible) (EMailView *view);
void (*set_show_deleted) (EMailView *view,
gboolean show_deleted);
gboolean (*get_show_deleted) (EMailView *view);
};
} EMailViewClass;
GType e_mail_view_get_type (void);
void e_mail_view_update_view_instance(EMailView *view);
GalViewInstance *
e_mail_view_get_view_instance (EMailView *view);
void e_mail_view_set_search_strings (EMailView *view,
GSList *search_strings);
void e_mail_view_set_orientation (EMailView *view,
GtkOrientation orientation);
GtkOrientation e_mail_view_get_orientation (EMailView *);
void e_mail_view_set_preview_visible (EMailView *view,
gboolean visible);
gboolean e_mail_view_get_preview_visible (EMailView *view);
void e_mail_view_set_show_deleted (EMailView *view,
gboolean show_deleted);
gboolean e_mail_view_get_show_deleted (EMailView *view);
EShellSearchbar *
e_mail_view_get_searchbar (EMailView *view);
GType e_mail_view_get_type (void);
G_END_DECLS
void e_mail_view_update_view_instance (EMailView *view);
GalViewInstance * e_mail_view_get_view_instance (EMailView *view);
void e_mail_view_set_search_strings (EMailView *view, GSList *search_strings);
void e_mail_view_set_orientation (EMailView *view, GtkOrientation orientation);
GtkOrientation e_mail_view_get_orientation (EMailView *);
void e_mail_view_set_preview_visible (EMailView *view, gboolean visible);
gboolean e_mail_view_get_preview_visible (EMailView *view);
void e_mail_view_set_show_deleted (EMailView *view, gboolean show_deleted);
gboolean e_mail_view_get_show_deleted (EMailView *view);
EShellSearchbar * e_mail_view_get_searchbar (EMailView *view);
#endif
#endif /* E_MAIL_VIEW_H */

View File

@ -344,10 +344,10 @@ efh_format_timeout(struct _format_msg *m)
} else {
efh->state = EM_FORMAT_HTML_STATE_RENDERING;
#if HAVE_CLUTTER
if (p->last_part != m->message && !e_shell_get_express_mode(e_shell_get_default())) {
#else
if (p->last_part != m->message && !e_shell_get_express_mode(e_shell_get_default())) {
#else
if (p->last_part != m->message) {
#endif
#endif
hstream = gtk_html_begin (GTK_HTML (web_view));
gtk_html_stream_printf (hstream, "<h5>%s</h5>", _("Formatting Message..."));
gtk_html_stream_close (hstream, GTK_HTML_STREAM_OK);

View File

@ -2382,7 +2382,7 @@ message_list_init (MessageList *message_list)
message_list->priv->timeline = NULL;
message_list->priv->search_texture = NULL;
#endif
message_list->normalised_hash = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
@ -4137,10 +4137,10 @@ on_timeline_stopped (ClutterTimeline *timeline, ClutterActor *actor)
void
message_list_set_search (MessageList *ml, const gchar *search)
{
#if HAVE_CLUTTER
#if HAVE_CLUTTER
if (ml->priv->timeline == NULL) {
ClutterActor *stage = g_object_get_data ((GObject *)ml, "stage");
if (stage) {
ClutterActor *texture = NULL;
ClutterPath *path;
@ -4152,7 +4152,7 @@ message_list_set_search (MessageList *ml, const gchar *search)
"system-search",
72,
GTK_ICON_LOOKUP_NO_SVG);
if (info) {
texture = clutter_texture_new_from_file (gtk_icon_info_get_filename(info), NULL);
gtk_icon_info_free(info);
@ -4174,18 +4174,18 @@ message_list_set_search (MessageList *ml, const gchar *search)
clutter_behaviour_apply (behaviour, texture);
clutter_timeline_set_loop (ml->priv->timeline, TRUE);
g_signal_connect(ml->priv->timeline, "started", G_CALLBACK(on_timeline_started), texture);
g_signal_connect(ml->priv->timeline, "paused", G_CALLBACK(on_timeline_stopped), texture);
//g_signal_connect(ml->priv->timeline, "completed", G_CALLBACK(on_timeline_stopped), texture);
clutter_timeline_pause (ml->priv->timeline);
clutter_timeline_pause (ml->priv->timeline);
clutter_timeline_stop (ml->priv->timeline);
}
}
#endif
if (search == NULL || search[0] == '\0')
if (ml->search == NULL || ml->search[0] == '\0')
return;
@ -4658,15 +4658,15 @@ regen_list_done (struct _regen_list_msg *m)
clutter_timeline_stop (m->ml->priv->timeline);
} else {
ClutterActor *pane = g_object_get_data ((GObject *)m->ml, "actor");
if (pane) {
clutter_actor_set_opacity (pane, 0);
clutter_actor_animate (pane, CLUTTER_EASE_OUT_SINE, 150,
"opacity", 255,
NULL);
clutter_actor_set_opacity (pane, 0);
clutter_actor_animate (
pane, CLUTTER_EASE_OUT_SINE,
150, "opacity", 255, NULL);
}
}
#endif
#endif
}
static void

View File

@ -51,7 +51,7 @@
((obj), E_TYPE_MAIL_SHELL_CONTENT, EMailShellContentPrivate))
struct _EMailShellContentPrivate {
int temp;
gint temp;
};
enum {
@ -121,7 +121,7 @@ mail_shell_content_constructed (GObject *object)
/* Build content widgets. */
container = GTK_WIDGET (object);
if (e_shell_get_express_mode(e_shell_get_default ())) {
widget = e_mail_notebook_view_new (E_SHELL_CONTENT(object));
g_signal_connect (widget, "view-changed", G_CALLBACK(msc_view_changed), object);
@ -155,10 +155,10 @@ mail_shell_content_focus_search_results (EShellContent *shell_content)
gtk_widget_grab_focus (e_mail_reader_get_message_list(E_MAIL_READER (E_MAIL_SHELL_CONTENT(shell_content)->view)));
}
static void
static guint
mail_shell_content_open_selected_mail (EMailReader *reader)
{
e_mail_reader_open_selected_mail (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
return e_mail_reader_open_selected_mail (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
}
static GtkActionGroup *
@ -172,7 +172,7 @@ mail_shell_content_get_action_group (EMailReader *reader)
shell_view = e_shell_content_get_shell_view (shell_content);
shell_window = e_shell_view_get_shell_window (shell_view);
return E_SHELL_WINDOW_ACTION_GROUP_MAIL (shell_window);
return E_SHELL_WINDOW_ACTION_GROUP_MAIL (shell_window);
}
static EMFormatHTML *
@ -216,7 +216,7 @@ mail_shell_content_set_folder (EMailReader *reader,
CamelFolder *folder,
const gchar *folder_uri)
{
return e_mail_reader_set_folder (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view),
return e_mail_reader_set_folder (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view),
folder,
folder_uri);
}
@ -320,7 +320,6 @@ mail_shell_content_class_init (EMailShellContentClass *class)
object_class->set_property = mail_shell_content_set_property;
object_class->get_property = mail_shell_content_get_property;
shell_content_class = E_SHELL_CONTENT_CLASS (class);
shell_content_class->check_state = mail_shell_content_check_state;
shell_content_class->focus_search_results = mail_shell_content_focus_search_results;
@ -351,7 +350,7 @@ mail_shell_content_class_init (EMailShellContentClass *class)
G_PARAM_READWRITE));
g_object_class_override_property (
object_class, PROP_ORIENTATION, "orientation");
object_class, PROP_ORIENTATION, "orientation");
}
static void
@ -411,19 +410,19 @@ e_mail_shell_content_register_type (GTypeModule *type_module)
(GInterfaceFinalizeFunc) NULL,
NULL /* interface_data */
};
mail_shell_content_type = g_type_module_register_type (
type_module, E_TYPE_SHELL_CONTENT,
"EMailShellContent", &type_info, 0);
g_type_module_add_interface (
type_module, mail_shell_content_type,
E_TYPE_MAIL_READER, &reader_info);
E_TYPE_MAIL_READER, &reader_info);
g_type_module_add_interface (
type_module, mail_shell_content_type,
GTK_TYPE_ORIENTABLE, &orientable_info);
}
GtkWidget *

View File

@ -358,7 +358,7 @@ mail_shell_view_reader_changed_cb (EMailShellView *mail_shell_view,
g_signal_connect_swapped (
web_view, "status-message",
G_CALLBACK (e_shell_taskbar_set_message),
shell_taskbar);
shell_taskbar);
}
static void

View File

@ -795,7 +795,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
shell_window = e_shell_view_get_shell_window (shell_view);
mail_shell_content = mail_shell_view->priv->mail_shell_content;
reader = E_MAIL_READER (mail_shell_content->view);
reader = E_MAIL_READER (mail_shell_content->view);
state = e_mail_reader_check_state (reader);
e_mail_reader_update_actions (reader, state);
@ -862,7 +862,6 @@ mail_shell_view_update_actions (EShellView *shell_view)
g_free (uri);
}
action = ACTION (MAIL_ACCOUNT_DISABLE);
sensitive = (account != NULL) && folder_is_store;
if (account_is_groupwise)

View File

@ -54,7 +54,7 @@ e_module_load (GTypeModule *type_module)
e_mail_shell_backend_register_type (type_module);
e_mail_shell_content_register_type (type_module);
e_mail_paned_view_register_type (type_module);
e_mail_paned_view_register_type (type_module);
e_mail_notebook_view_register_type (type_module);
e_mail_shell_sidebar_register_type (type_module);
e_mail_shell_view_register_type (type_module);

View File

@ -471,18 +471,18 @@ main (gint argc, gchar **argv)
#if HAVE_CLUTTER
gtk_clutter_init_with_args (
&argc, &argv,
_("- The Evolution PIM and Email Client"),
&argc, &argv,
_("- The Evolution PIM and Email Client"),
entries, (gchar *) GETTEXT_PACKAGE, &error);
mx_style_load_from_file (mx_style_get_default (),
EVOLUTION_MX_THEMEDIR "/default.css", NULL);
#else
mx_style_load_from_file (
mx_style_get_default (),
EVOLUTION_MX_THEMEDIR "/default.css", NULL);
#else
gtk_init_with_args (
&argc, &argv,
_("- The Evolution PIM and Email Client"),
entries, (gchar *) GETTEXT_PACKAGE, &error);
#endif
#endif
if (error != NULL) {
g_printerr ("%s\n", error->message);
g_error_free (error);

View File

@ -109,6 +109,7 @@ e_table_header_width_extras (GtkStyle *style)
/* Creates a pixmap that is a composite of a background color and the upper-left
* corner rectangle of a pixbuf.
*/
#if 0
static GdkPixmap *
make_composite_pixmap (GdkDrawable *drawable, GdkGC *gc,
GdkPixbuf *pixbuf, GdkColor *bg, gint width, gint height,
@ -216,6 +217,7 @@ make_composite_pixmap (GdkDrawable *drawable, GdkGC *gc,
return pixmap;
}
#endif
/* Default width of the elision arrow in pixels */
#define ARROW_WIDTH 4
@ -407,7 +409,7 @@ e_table_header_draw_button (GdkDrawable *drawable, ETableCol *ecol,
gint pwidth, pheight;
gint clip_width, clip_height;
gint xpos;
GdkPixmap *pixmap;
/* GdkPixmap *pixmap; */
g_return_if_fail (ecol->pixbuf != NULL);
@ -435,9 +437,9 @@ e_table_header_draw_button (GdkDrawable *drawable, ETableCol *ecol,
layout, ecol->text, inner_width - (xpos - inner_x), FALSE);
}
/* FIXME: For some reason, under clutter gdk_draw_rgb_image_dithalign crashes
/* FIXME: For some reason, under clutter gdk_draw_rgb_image_dithalign crashes
* Debug that later */
#if 0
#if 0
pixmap = make_composite_pixmap (drawable, gc,
ecol->pixbuf, &style->bg[state],
clip_width, clip_height,
@ -456,12 +458,12 @@ e_table_header_draw_button (GdkDrawable *drawable, ETableCol *ecol,
}
#endif
gdk_draw_pixbuf (drawable, gc,
ecol->pixbuf,
0, 0,
ecol->pixbuf,
0, 0,
xpos, inner_y + (inner_height - clip_height) / 2,
-1, -1,
GDK_RGB_DITHER_NONE,
0, 0);
0, 0);
} else {
e_table_draw_elided_string (drawable, gc, widget,
inner_x, inner_y,