X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window.c;h=3eda53e02927382db68f55c52ba451db2cf72686;hp=a5a667db0bc48d568d94b42c594a8cbece6fb8ca;hb=2da007966ea445b3574320d9c914c7475df64c59;hpb=bb790bd8b50e81a1e965341d010864d6000c5b38 diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index a5a667d..3eda53e 100644 --- a/src/widgets/modest-window.c +++ b/src/widgets/modest-window.c @@ -35,6 +35,15 @@ static void modest_window_class_init (ModestWindowClass *klass); static void modest_window_init (ModestWindow *obj); static void modest_window_finalize (GObject *obj); + +static void modest_window_set_zoom_default (ModestWindow *window, + gdouble zoom); +static gdouble modest_window_get_zoom_default (ModestWindow *window); +static gboolean modest_window_zoom_plus_default (ModestWindow *window); +static gboolean modest_window_zoom_minus_default (ModestWindow *window); +static void modest_window_show_toolbar_default (ModestWindow *window, + gboolean show_toolbar); + /* list my signals */ enum { LAST_SIGNAL @@ -86,6 +95,12 @@ modest_window_class_init (ModestWindowClass *klass) parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = modest_window_finalize; + klass->set_zoom_func = modest_window_set_zoom_default; + klass->get_zoom_func = modest_window_get_zoom_default; + klass->zoom_plus_func = modest_window_zoom_plus_default; + klass->zoom_minus_func = modest_window_zoom_minus_default; + klass->show_toolbar_func = modest_window_show_toolbar_default; + g_type_class_add_private (gobject_class, sizeof(ModestWindowPrivate)); } @@ -97,6 +112,7 @@ modest_window_init (ModestWindow *obj) priv = MODEST_WINDOW_GET_PRIVATE(obj); priv->ui_manager = NULL; + priv->ui_dimming_manager = NULL; priv->toolbar = NULL; priv->menubar = NULL; @@ -114,6 +130,10 @@ modest_window_finalize (GObject *obj) g_object_unref (G_OBJECT(priv->ui_manager)); priv->ui_manager = NULL; } + if (priv->ui_dimming_manager) { + g_object_unref (G_OBJECT(priv->ui_dimming_manager)); + priv->ui_dimming_manager = NULL; + } g_free (priv->active_account); @@ -141,6 +161,112 @@ modest_window_set_active_account (ModestWindow *self, const gchar *active_accoun return; else { g_free (priv->active_account); - priv->active_account = g_strdup (active_account); + priv->active_account = NULL; + if (active_account) + priv->active_account = g_strdup (active_account); } } + +void +modest_window_check_dimming_rules (ModestWindow *self) +{ + ModestWindowPrivate *priv; + + priv = MODEST_WINDOW_GET_PRIVATE(self); + modest_ui_dimming_manager_process_dimming_rules (priv->ui_dimming_manager); +} + +GtkAction * +modest_window_get_action (ModestWindow *window, + const gchar *action_path) +{ + GtkAction *action = NULL; + ModestWindowPrivate *priv; + + priv = MODEST_WINDOW_GET_PRIVATE(window); + + action = gtk_ui_manager_get_action (priv->ui_manager, action_path); + + return action; +} + +void +modest_window_set_zoom (ModestWindow *window, + gdouble zoom) +{ + MODEST_WINDOW_GET_CLASS (window)->set_zoom_func (window, zoom); + return; +} + +gdouble +modest_window_get_zoom (ModestWindow *window) +{ + return MODEST_WINDOW_GET_CLASS (window)->get_zoom_func (window); +} + +gboolean +modest_window_zoom_plus (ModestWindow *window) +{ + return MODEST_WINDOW_GET_CLASS (window)->zoom_plus_func (window); +} + +gboolean +modest_window_zoom_minus (ModestWindow *window) +{ + return MODEST_WINDOW_GET_CLASS (window)->zoom_minus_func (window); +} + +void +modest_window_show_toolbar (ModestWindow *window, + gboolean show_toolbar) +{ + MODEST_WINDOW_GET_CLASS (window)->show_toolbar_func (window, + show_toolbar); +} + + +/* Default implementations */ + +static void +modest_window_set_zoom_default (ModestWindow *window, + gdouble zoom) +{ + g_warning ("modest: You should implement %s", __FUNCTION__); + +} + +static gdouble +modest_window_get_zoom_default (ModestWindow *window) +{ + g_warning ("modest: You should implement %s", __FUNCTION__); + return 1.0; +} + +static gboolean +modest_window_zoom_plus_default (ModestWindow *window) +{ + g_warning ("modest: You should implement %s", __FUNCTION__); + return FALSE; +} + +static gboolean +modest_window_zoom_minus_default (ModestWindow *window) +{ + g_warning ("modest: You should implement %s", __FUNCTION__); + return FALSE; +} + +static void +modest_window_show_toolbar_default (ModestWindow *window, + gboolean show_toolbar) +{ + g_warning ("modest: You should implement %s", __FUNCTION__); +} + +void +modest_window_save_state (ModestWindow *window) +{ + ModestWindowClass *klass = MODEST_WINDOW_GET_CLASS (window); + if (klass->save_state_func) + klass->save_state_func (window); +}