* Changes in the autotools stuff affecting a lot of platform dependent
[modest] / src / widgets / modest-window.h
index fa574fe..cd159d4 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <glib-object.h>
 #include <tny-account-store.h>
-#include "modest-widget-factory.h"
 
 G_BEGIN_DECLS
 
@@ -40,19 +39,46 @@ G_BEGIN_DECLS
 #include <config.h>
 #endif /*HAVE_CONFIG_H*/
 
+#include <gtk/gtk.h>
 /* 
  * admittedly, the ifdefs for gtk and maemo are rather ugly; still
  * this way is probably the easiest to maintain
  */
-#if MODEST_PLATFORM_ID==1   /* gtk */
+#ifdef MODEST_TOOLKIT_GTK
 #include <gtk/gtkwindow.h>
 typedef GtkWindow      ModestWindowParent;
 typedef GtkWindowClass ModestWindowParentClass;
-#elif MODEST_PLATFORM_ID==2   /* hildon (maemo) */
+#else
+#if MODEST_HILDON_API == 0
 #include <hildon-widgets/hildon-window.h>
+#else
+#include <hildon/hildon-window.h>
+#endif /*MODEST_HILDON_API == 0*/
 typedef HildonWindow      ModestWindowParent;
 typedef HildonWindowClass ModestWindowParentClass;
-#endif /*MODEST_PLATFORM_ID*/
+
+#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())
@@ -71,32 +97,203 @@ struct _ModestWindow {
 
 struct _ModestWindowClass {
        ModestWindowParentClass parent_class;
+
+       /* virtual methods */
+       void (*set_zoom_func) (ModestWindow *self, gdouble zoom);
+       gdouble (*get_zoom_func) (ModestWindow *self);
+       gboolean (*zoom_plus_func) (ModestWindow *self);
+       gboolean (*zoom_minus_func) (ModestWindow *self);
+       void (*show_toolbar_func) (ModestWindow *self, gboolean show_toolbar);
+       void (*save_state_func) (ModestWindow *self);
+       void (*disconnect_signals_func) (ModestWindow *self);
 };
 
-/* member functions */
+/**
+ * modest_window_get_type:
+ *
+ * get the #GType for #ModestWindow
+ * 
+ * Returns: the type
+ */    
 GType        modest_window_get_type    (void) G_GNUC_CONST;
 
+
+/**
+ * modest_window_get_active_account:
+ * @self: a modest window instance
+ * 
+ * get the name of the active account
+ * 
+ * Returns: the active account name as a constant string
+ */    
+const gchar* modest_window_get_active_account (ModestWindow *self);
+
+
+
+/**
+ * modest_window_set_active_account:
+ * @self: a modest window instance
+ * @active_account: a new active account name 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_set_zoom:
+ * @window: a #ModestWindow instance
+ * @zoom: the zoom level (1.0 is no zoom)
+ *
+ * sets the zoom level of the window
+ */
+void            modest_window_set_zoom    (ModestWindow *window,
+                                          gdouble value);
+
+/**
+ * modest_window_get_zoom:
+ * @window: a #ModestWindow instance
+ *
+ * gets the zoom of the window
+ *
+ * Returns: the current zoom value (1.0 is no zoom)
+ */
+gdouble         modest_window_get_zoom    (ModestWindow *window);
+
+/**
+ * modest_window_zoom_plus:
+ * @window: a #ModestWindow
+ *
+ * increases one level the zoom.
+ *
+ * Returns: %TRUE if successful, %FALSE if increasing zoom is not available
+ */
+gboolean modest_window_zoom_plus (ModestWindow *window);
+
 /**
- * modest_window_get_account_store:
+ * modest_window_zoom_minus:
  * @window: a #ModestWindow
+ *
+ * decreases one level the zoom.
+ *
+ * Returns: %TRUE if successful, %FALSE if increasing zoom is not available
+ */
+gboolean modest_window_zoom_minus (ModestWindow *window);
+
+
+/**
+ * modest_window_show_toolbar:
+ * @window: 
+ * @view_toolbar: whether or not the toolbar should be shown
  * 
- * gets a new reference to the account store associated with the main
- * window. The caller must free the returned instance
+ * shows/hides the window toolbar
+ **/
+void     modest_window_show_toolbar (ModestWindow *window, 
+                                    gboolean show_toolbar);
+                                    
+/**
+ * modest_window_save_state:
+ * @window: 
  * 
- * Returns: the account store
+ * Ask the window to save its settings for loading again later.
+ * This actually invokes the save_setting_func vfunc, which 
+ * derived windows should implement.
  **/
-TnyAccountStore*        modest_window_get_account_store     (ModestWindow *window);
+void     modest_window_save_state (ModestWindow *window);
+
 
 /**
- * modest_window_get_widget_factory:
- * @window: a #ModestWindow
+ * 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
  * 
- * gets a reference to the #ModestWidgetFactory associated with the
- * Modest Window. The caller must free the returned instance
+ * Calls UI Dimming Manager of @self window to check all dimming rules.
  * 
- * Returns: the widget factory
  **/
-ModestWidgetFactory*    modest_window_get_widget_factory    (ModestWindow *window);
+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