/*
* 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
* version 2 of the License, or (at your option) version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* 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
*
*
* Authors:
* Srinivasa Ragavan
*
* Copyright (C) 2010 Intel corporation. (www.intel.com)
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include "e-mail-view.h"
G_DEFINE_TYPE (EMailView, e_mail_view, GTK_TYPE_VBOX)
enum {
PANE_CLOSE,
VIEW_CHANGED,
OPEN_MAIL,
LAST_SIGNAL
};
enum {
PROP_0,
PROP_SHELL_VIEW
};
struct _EMailViewPrivate {
};
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);
}
static void
mail_view_set_property (GObject *object,
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);
return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
static void
mail_view_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
switch (property_id) {
case PROP_SHELL_VIEW:
g_value_set_object (
value, E_MAIL_VIEW(object)->content);
return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
static void
e_mail_view_class_init (EMailViewClass *klass)
{
GObjectClass * object_class = G_OBJECT_CLASS (klass);
e_mail_view_parent_class = g_type_class_peek_parent (klass);
object_class->finalize = e_mail_view_finalize;
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[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
*
* The #EShellContent to which the widget belongs.
**/
g_object_class_install_property (
object_class,
PROP_SHELL_VIEW,
g_param_spec_object (
"shell-content",
NULL,
NULL,
E_TYPE_SHELL_CONTENT,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
}
void
e_mail_view_update_view_instance (EMailView *view)
{
E_MAIL_VIEW_GET_CLASS (view)->update_view_instance (view);
}
GalViewInstance *
e_mail_view_get_view_instance (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_view_instance (view);
}
void
e_mail_view_set_search_strings (EMailView *view,
GSList *search_strings)
{
E_MAIL_VIEW_GET_CLASS (view)->set_search_strings (view, search_strings);
}
EShellSearchbar *
e_mail_view_get_searchbar (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_searchbar (view);
}
void
e_mail_view_set_orientation (EMailView *view, GtkOrientation orientation)
{
E_MAIL_VIEW_GET_CLASS (view)->set_orientation (view, orientation);
}
GtkOrientation
e_mail_view_get_orientation (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_orientation (view);
}
void
e_mail_view_set_preview_visible (EMailView *view, gboolean visible)
{
E_MAIL_VIEW_GET_CLASS (view)->set_preview_visible (view, visible);
}
gboolean
e_mail_view_get_preview_visible (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_preview_visible (view);
}
void
e_mail_view_set_show_deleted (EMailView *view, gboolean show_deleted)
{
E_MAIL_VIEW_GET_CLASS (view)->set_show_deleted (view, show_deleted);
}
gboolean
e_mail_view_get_show_deleted (EMailView *view)
{
return E_MAIL_VIEW_GET_CLASS (view)->get_show_deleted (view);
}