diff options
Diffstat (limited to 'shell/e-shell-view.h')
-rw-r--r-- | shell/e-shell-view.h | 195 |
1 files changed, 158 insertions, 37 deletions
diff --git a/shell/e-shell-view.h b/shell/e-shell-view.h index f284604d92..1392acfa0a 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,51 +19,173 @@ * */ -#ifndef _E_SHELL_VIEW_H_ -#define _E_SHELL_VIEW_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-content.h> +#include <shell/e-shell-module.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 + +typedef struct _EShellView EShellView; +typedef struct _EShellViewClass EShellViewClass; +typedef struct _EShellViewPrivate EShellViewPrivate; -#include <bonobo-activation/bonobo-activation.h> -#include <bonobo/bonobo-object.h> +/** + * EShellView: + * + * Contains only private data that should be read and manipulated using the + * functions below. + **/ +struct _EShellView { + GObject parent; + EShellViewPrivate *priv; +}; -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ +/** + * 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>. + * @type_module: The corresponding #GTypeModule for this shell + * view. Subclasses are responsible for setting + * this. An easy way do so is to pass it to the + * shell view's #GClassInitFunc via the + * <structfield>class_data</structfield> field in + * #GTypeInfo. + * @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. + * @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 { + GObjectClass parent_class; -struct _EShell; + /* Initial switcher action values. */ + const gchar *label; + const gchar *icon_name; -typedef struct _EShellView EShellView; -typedef struct _EShellViewPrivate EShellViewPrivate; -typedef struct _EShellViewClass EShellViewClass; + /* Base name of the UI definition file. */ + const gchar *ui_definition; -#include "Evolution.h" + /* GtkUIManager identifier for use with EPluginUI. + * Usually "org.gnome.evolution.$(VIEW_NAME)". */ + const gchar *ui_manager_id; -#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)) + /* Widget path to the search options popup menu. */ + const gchar *search_options; -struct _EShellView { - BonoboObject parent; + /* Base name of the search rule definition file. */ + const gchar *search_rules; - struct _EShellWindow *window; + /* Subclasses should set this via the "class_data" field in + * the GTypeInfo they pass to g_type_module_register_type(). */ + GTypeModule *type_module; - EShellViewPrivate *priv; -}; + /* A unique instance is created for each subclass. */ + GalViewCollection *view_collection; -struct _EShellViewClass { - BonoboObjectClass parent_class; + /* Factory Methods */ + GtkWidget * (*new_shell_content) (EShellView *shell_view); + GtkWidget * (*new_shell_sidebar) (EShellView *shell_view); + GtkWidget * (*new_shell_taskbar) (EShellView *shell_view); - POA_GNOME_Evolution_ShellView__epv epv; + /* 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); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_SHELL_VIEW_H_ */ - +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); +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); +EShellModule * e_shell_view_get_shell_module (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 */ |