X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window.h;h=3084d2bce34febd3a7e67ebeca6e01d07e8c9233;hb=d2a49ac17e9b80e2ef4bdc6f150c1a871ebb4f04;hp=4ea979b5eb213c9b18975b74567de18529c88524;hpb=e5fdccbc38e45f1d91c4a0e23abea60b81fce937;p=modest diff --git a/src/widgets/modest-window.h b/src/widgets/modest-window.h index 4ea979b..3084d2b 100644 --- a/src/widgets/modest-window.h +++ b/src/widgets/modest-window.h @@ -39,26 +39,56 @@ G_BEGIN_DECLS #include #endif /*HAVE_CONFIG_H*/ +#include + /* * admittedly, the ifdefs for gtk and maemo are rather ugly; still * this way is probably the easiest to maintain */ -#ifdef MODEST_PLATFORM_GNOME +#ifdef MODEST_TOOLKIT_GTK #include typedef GtkWindow ModestWindowParent; typedef GtkWindowClass ModestWindowParentClass; -#endif /* MODEST_PLATFORM_GNOME */ - -#ifdef MODEST_PLATFORM_MAEMO +#else +#if MODEST_HILDON_API == 0 #include +#else +#ifdef MODEST_TOOLKIT_HILDON2 +#include +#else +#include +#endif +#endif /*MODEST_HILDON_API == 0*/ +#ifdef MODEST_TOOLKIT_HILDON2 +typedef HildonStackableWindow ModestWindowParent; +typedef HildonStackableWindowClass ModestWindowParentClass; +#else typedef HildonWindow ModestWindowParent; typedef HildonWindowClass ModestWindowParentClass; -#endif /*MODEST_PLATFORM_MAEMO */ +#endif #ifndef GTK_STOCK_FULLSCREEN #define GTK_STOCK_FULLSCREEN "" #endif /*GTK_STOCK_FULLSCREEN*/ +#endif /*!MODEST_TOOLKIT_GTK */ + +/* Dimmed state variables */ +typedef struct _DimmedState { + guint n_selected; + guint already_opened_msg; + gboolean any_marked_as_deleted; + gboolean all_marked_as_deleted; + gboolean any_marked_as_seen; + gboolean all_marked_as_seen; + gboolean any_marked_as_cached; + gboolean all_marked_as_cached; + gboolean any_has_attachments; + gboolean all_has_attachments; + gboolean sent_in_progress; + gboolean all_selected; +} DimmedState; + /* convenience macros */ #define MODEST_TYPE_WINDOW (modest_window_get_type()) #define MODEST_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_WINDOW,ModestWindow)) @@ -82,9 +112,9 @@ struct _ModestWindowClass { gdouble (*get_zoom_func) (ModestWindow *self); gboolean (*zoom_plus_func) (ModestWindow *self); gboolean (*zoom_minus_func) (ModestWindow *self); - /* Used by view_toolbar, with no public interface */ - void (*create_toolbar_func) (ModestWindow *self); void (*show_toolbar_func) (ModestWindow *self, gboolean show_toolbar); + void (*save_state_func) (ModestWindow *self); + void (*disconnect_signals_func) (ModestWindow *self); }; /** @@ -114,12 +144,35 @@ const gchar* modest_window_get_active_account (ModestWindow *self); * @self: a modest window instance * @active_account: a new active account name for this window * - * set the active account for this window + * set the active account for this window. + * NOTE: this must be a valid, non-pseudo account. * */ void modest_window_set_active_account (ModestWindow *self, const gchar *active_account); /** + * modest_window_get_active_mailbox: + * @self: a modest window instance + * + * get the name of the active mailbox + * + * Returns: the active mailbox as a constant string + */ +const gchar* modest_window_get_active_mailbox (ModestWindow *self); + + + +/** + * modest_window_set_active_account: + * @self: a modest window instance + * @active_mailbox: a new active mailbox name for this window + * + * set the active mailbox for this window. + * + */ +void modest_window_set_active_mailbox (ModestWindow *self, const gchar *active_mailbox); + +/** * modest_window_set_zoom: * @window: a #ModestWindow instance * @zoom: the zoom level (1.0 is no zoom) @@ -161,14 +214,118 @@ gboolean modest_window_zoom_minus (ModestWindow *window); /** - * modest_window_view_toolbar: + * modest_window_show_toolbar: * @window: * @view_toolbar: whether or not the toolbar should be shown * * shows/hides the window toolbar **/ -void modest_window_view_toolbar (ModestWindow *window, - gboolean view_toolbar); +void modest_window_show_toolbar (ModestWindow *window, + gboolean show_toolbar); + +/** + * modest_window_save_state: + * @window: + * + * Ask the window to save its settings for loading again later. + * This actually invokes the save_setting_func vfunc, which + * derived windows should implement. + **/ +void modest_window_save_state (ModestWindow *window); + + +/** + * modest_window_set_dimming_state: + * @window: a #ModestWindow instance object + * @state: the #DimmedState state at specific time + * + * Set basic dimming variables from selected headers at + * specific moment. + **/ +void +modest_window_set_dimming_state (ModestWindow *window, + DimmedState *state); + +/** + * modest_window_set_dimming_state: + * @window: a #ModestWindow instance object + * + * Set basic dimming variables from selected headers at + * specific moment. + * + * @Returns: a #DimmedState state saved previously. + **/ +const DimmedState * +modest_window_get_dimming_state (ModestWindow *window); + + +/** + * modest_window_get_action: + * @window: a #ModestWindow instance object + * @action_path: the full path of required action. + * + * Get an action from ui manager, using @action_path parameter, + * which represent the full path to the required action into UIManager + * xml definition. + **/ +GtkAction * modest_window_get_action (ModestWindow *window, const gchar *action_path); + +/** + * modest_window_get_action_widget: + * @window: a #ModestWindow instance object + * @action_path: the full path of required action. + * + * Get action widget from ui manager, using @action_path parameter, + * which represent the full path to the required action into UIManager + * xml definition. + **/ +GtkWidget *modest_window_get_action_widget (ModestWindow *window, + const gchar *action_path); + +/** + * modest_window_check_dimming_rules: + * @self: a #ModestWindow instance object + * + * Calls UI Dimming Manager of @self window to check all dimming rules. + * + **/ +void modest_window_check_dimming_rules (ModestWindow *self); + +/** + * modest_window_check_dimming_rules: + * @self: a #ModestWindow instance object + * @group: a #ModestWindow instance object + * + * Calls UI Dimming Manager of @self window to check @group_name specific + * dimming rules. + * + **/ +void modest_window_check_dimming_rules_group (ModestWindow *self, + const gchar *group_name); + + +/** + * modest_window_enable_dimming: + * @self: a #ModestWindow instance object + * + * Enables UI dimming rules checking. + * + **/ +void modest_window_enable_dimming (ModestWindow *self); + + +/** + * modest_window_disable_dimming: + * @self: a #ModestWindow instance object + * + * Disables UI dimming rules checking. + * + **/ +void modest_window_disable_dimming (ModestWindow *self); + + +void modest_window_disconnect_signals (ModestWindow *self); + G_END_DECLS