diff options
Diffstat (limited to 'shell/e-shell-view.h')
-rw-r--r-- | shell/e-shell-view.h | 180 |
1 files changed, 151 insertions, 29 deletions
diff --git a/shell/e-shell-view.h b/shell/e-shell-view.h index 1ca2656bb0..b9a12ab893 100644 --- a/shell/e-shell-view.h +++ b/shell/e-shell-view.h @@ -1,6 +1,5 @@ /* - * - * This is only a CORBA wrapper around e_shell_window. + * e-shell-view.h * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,46 +19,169 @@ * */ -#ifndef _E_SHELL_VIEW_H_ -#define _E_SHELL_VIEW_H_ - -#include <bonobo-activation/bonobo-activation.h> -#include <bonobo/bonobo-object.h> +/** + * SECTION: e-shell-view + * @short_description: views within the main window + * @include: shell/e-shell-view.h + **/ + +#ifndef E_SHELL_VIEW_H +#define E_SHELL_VIEW_H + +#include <shell/e-shell-common.h> +#include <shell/e-shell-backend.h> +#include <shell/e-shell-content.h> +#include <shell/e-shell-sidebar.h> +#include <shell/e-shell-taskbar.h> +#include <shell/e-shell-window.h> + +#include <widgets/menus/gal-view-collection.h> +#include <widgets/menus/gal-view-instance.h> + +/* Standard GObject macros */ +#define E_TYPE_SHELL_VIEW \ + (e_shell_view_get_type ()) +#define E_SHELL_VIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_SHELL_VIEW, EShellView)) +#define E_SHELL_VIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_SHELL_VIEW, EShellViewClass)) +#define E_IS_SHELL_VIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_SHELL_VIEW)) +#define E_IS_SHELL_VIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_SHELL_VIEW)) +#define E_SHELL_VIEW_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_SHELL_VIEW, EShellViewClass)) G_BEGIN_DECLS -struct _EShell; - -typedef struct _EShellView EShellView; +typedef struct _EShellView EShellView; +typedef struct _EShellViewClass EShellViewClass; typedef struct _EShellViewPrivate EShellViewPrivate; -typedef struct _EShellViewClass EShellViewClass; - -#include "Evolution.h" - -#define E_TYPE_SHELL_VIEW (e_shell_view_get_type ()) -#define E_SHELL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_SHELL_VIEW, EShellView)) -#define E_SHELL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL_VIEW, EShellViewClass)) -#define E_IS_SHELL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_SHELL_VIEW)) -#define E_IS_SHELL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL_VIEW)) +/** + * EShellView: + * + * Contains only private data that should be read and manipulated using the + * functions below. + **/ struct _EShellView { - BonoboObject parent; - - struct _EShellWindow *window; - + GObject parent; EShellViewPrivate *priv; }; +/** + * EShellViewClass: + * @parent_class: The parent class structure. + * @label: The initial value for the switcher action's + * #GtkAction:label property. See + * e_shell_view_get_action(). + * @icon_name: The initial value for the switcher action's + * #GtkAction:icon-name property. See + * e_shell_view_get_action(). + * @ui_definition: Base name of the UI definintion file to add + * when the shell view is activated. + * @ui_manager_id: The #GtkUIManager ID for #EPluginUI. Plugins + * should use to this ID in their "eplug" files to + * add menu and toolbar items to the shell view. + * @search_options: Widget path in the UI definition to the search + * options popup menu. The menu gets shown when the + * user clicks the "find" icon in the search entry. + * @search_rules: Base name of the XML file containing predefined + * search rules for this shell view. The XML files + * are usually named something like <filename> + * <emphasis>view</emphasis>types.xml</filename>. + * @view_collection: A unique #GalViewCollection instance is created + * for each subclass and shared across all instances + * of that subclass. That much is done automatically + * for subclasses, but subclasses are still responsible + * for adding the appropriate #GalView factories to the + * view collection. + * @shell_backend: The corresponding #EShellBackend for the shell view. + * @new_shell_content: Factory method for the shell view's #EShellContent. + * See e_shell_view_get_shell_content(). + * @new_shell_sidebar: Factory method for the shell view's #EShellSidebar. + * See e_shell_view_get_shell_sidebar(). + * @new_shell_taskbar: Factory method for the shell view's #EShellTaskbar. + * See e_shell_view_get_shell_taskbar(). + * @toggled: Class method for the #EShellView::toggled signal. + * Subclasses should rarely need to override the + * default behavior. + * @update_actions: Class method for the #EShellView::update_actions + * signal. There is no default behavior; subclasses + * should override this. + * + * #EShellViewClass contains a number of important settings for subclasses. + **/ struct _EShellViewClass { - BonoboObjectClass parent_class; + GObjectClass parent_class; - POA_GNOME_Evolution_ShellView__epv epv; + /* Initial switcher action values. */ + const gchar *label; + const gchar *icon_name; + + /* Base name of the UI definition file. */ + const gchar *ui_definition; + + /* GtkUIManager identifier for use with EPluginUI. + * Usually "org.gnome.evolution.$(VIEW_NAME)". */ + const gchar *ui_manager_id; + + /* Widget path to the search options popup menu. */ + const gchar *search_options; + + /* Base name of the search rule definition file. */ + const gchar *search_rules; + + /* A unique instance is created for each subclass. */ + GalViewCollection *view_collection; + + /* This is set by the corresponding EShellBackend. */ + EShellBackend *shell_backend; + + /* Factory Methods */ + GtkWidget * (*new_shell_content) (EShellView *shell_view); + GtkWidget * (*new_shell_sidebar) (EShellView *shell_view); + GtkWidget * (*new_shell_taskbar) (EShellView *shell_view); + + /* Signals */ + void (*toggled) (EShellView *shell_view); + void (*update_actions) (EShellView *shell_view); }; -GType e_shell_view_get_type (void); -EShellView *e_shell_view_new(struct _EShellWindow *window); +GType e_shell_view_get_type (void); +const gchar * e_shell_view_get_name (EShellView *shell_view); +GtkAction * e_shell_view_get_action (EShellView *shell_view); +const gchar * e_shell_view_get_title (EShellView *shell_view); +void e_shell_view_set_title (EShellView *shell_view, + const gchar *title); +const gchar * e_shell_view_get_view_id (EShellView *shell_view); +void e_shell_view_set_view_id (EShellView *shell_view, + const gchar *view_id); +gboolean e_shell_view_is_active (EShellView *shell_view); +gint e_shell_view_get_page_num (EShellView *shell_view); +void e_shell_view_set_page_num (EShellView *shell_view, + gint page_num); +GtkSizeGroup * e_shell_view_get_size_group (EShellView *shell_view); +EShellBackend * e_shell_view_get_shell_backend (EShellView *shell_view); +EShellContent * e_shell_view_get_shell_content (EShellView *shell_view); +EShellSidebar * e_shell_view_get_shell_sidebar (EShellView *shell_view); +EShellTaskbar * e_shell_view_get_shell_taskbar (EShellView *shell_view); +EShellWindow * e_shell_view_get_shell_window (EShellView *shell_view); +GKeyFile * e_shell_view_get_state_key_file (EShellView *shell_view); +void e_shell_view_set_state_dirty (EShellView *shell_view); +void e_shell_view_update_actions (EShellView *shell_view); +void e_shell_view_show_popup_menu (EShellView *shell_view, + const gchar *widget_path, + GdkEventButton *event); +GalViewInstance * + e_shell_view_new_view_instance (EShellView *shell_view, + const gchar *instance_id); G_END_DECLS -#endif /* _E_SHELL_VIEW_H_ */ - +#endif /* E_SHELL_VIEW_H */ |