aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.h
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell.h')
-rw-r--r--shell/e-shell.h288
1 files changed, 129 insertions, 159 deletions
diff --git a/shell/e-shell.h b/shell/e-shell.h
index 5e1cb6590e..c27bd0e624 100644
--- a/shell/e-shell.h
+++ b/shell/e-shell.h
@@ -1,178 +1,148 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shell.h
- *
- * Copyright (C) 2000 Ximian, Inc.
+/*
+ * e-shell.h
*
* This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
*
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
*
- * Author: Ettore Perazzoli
*/
-#ifndef _E_SHELL_H_
-#define _E_SHELL_H_
-
-#include <liboaf/liboaf.h> /* For the registration stuff. */
-#include <bonobo/bonobo-xobject.h>
-#include <bonobo-conf/bonobo-config-database.h>
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
-
-typedef struct _EShell EShell;
+#ifndef E_SHELL_H
+#define E_SHELL_H
+
+#include <libedataserver/libedataserver.h>
+
+#include <e-util/e-util.h>
+
+#include <shell/e-shell-common.h>
+#include <shell/e-shell-backend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_SHELL \
+ (e_shell_get_type ())
+#define E_SHELL(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_SHELL, EShell))
+#define E_SHELL_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_SHELL, EShellClass))
+#define E_IS_SHELL(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_SHELL))
+#define E_IS_SHELL_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_SHELL))
+#define E_SHELL_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_SHELL, EShellClass))
+
+G_BEGIN_DECLS
+
+typedef struct _EShell EShell;
+typedef struct _EShellClass EShellClass;
typedef struct _EShellPrivate EShellPrivate;
-typedef struct _EShellClass EShellClass;
-
-#include "Evolution.h"
-
-#include "e-component-registry.h"
-#include "e-shell-view.h"
-#include "e-uri-schema-registry.h"
-#include "e-shell-user-creatable-items-handler.h"
-#include "e-local-storage.h"
-
-
-#define E_TYPE_SHELL (e_shell_get_type ())
-#define E_SHELL(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SHELL, EShell))
-#define E_SHELL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL, EShellClass))
-#define E_IS_SHELL(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SHELL))
-#define E_IS_SHELL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL))
-
-
-enum _EShellLineStatus {
- E_SHELL_LINE_STATUS_ONLINE,
- E_SHELL_LINE_STATUS_GOING_OFFLINE,
- E_SHELL_LINE_STATUS_OFFLINE
-};
-typedef enum _EShellLineStatus EShellLineStatus;
-
-enum _EShellStartupLineMode {
- E_SHELL_STARTUP_LINE_MODE_CONFIG,
- E_SHELL_STARTUP_LINE_MODE_ONLINE,
- E_SHELL_STARTUP_LINE_MODE_OFFLINE
-};
-typedef enum _EShellStartupLineMode EShellStartupLineMode;
+/**
+ * EShellQuitReason:
+ * @E_SHELL_QUIT_ACTION:
+ * @E_SHELL_WINDOW_ACTION_QUIT was activated.
+ * @E_SHELL_QUIT_LAST_WINDOW:
+ * The last watched window has been destroyed.
+ * @E_SHELL_QUIT_OPTION:
+ * The program was invoked with --quit. Extensions will never
+ * see this value because they are not loaded when --quit is given.
+ * @E_SHELL_QUIT_REMOTE_REQUEST:
+ * Another Evolution process requested we quit.
+ * @E_SHELL_QUIT_SESSION_REQUEST:
+ * The desktop session requested we quit.
+ *
+ * These values are passed in the #EShell::quit-requested signal to
+ * indicate why the shell is requesting to shut down.
+ **/
+typedef enum {
+ E_SHELL_QUIT_ACTION,
+ E_SHELL_QUIT_LAST_WINDOW,
+ E_SHELL_QUIT_OPTION,
+ E_SHELL_QUIT_REMOTE_REQUEST,
+ E_SHELL_QUIT_SESSION_REQUEST
+} EShellQuitReason;
+
+/**
+ * EShell:
+ *
+ * Contains only private data that should be read and manipulated using the
+ * functions below.
+ **/
struct _EShell {
- BonoboXObject parent;
-
+ GtkApplication parent;
EShellPrivate *priv;
};
struct _EShellClass {
- BonoboXObjectClass parent_class;
-
- POA_GNOME_Evolution_Shell__epv epv;
-
- void (* no_views_left) (EShell *shell);
- void (* line_status_changed) (EShell *shell, EShellLineStatus status);
- void (* new_view_created) (EShell *shell, EShellView *view);
-
+ GtkApplicationClass parent_class;
+
+ gboolean (*handle_uri) (EShell *shell,
+ const gchar *uri);
+ void (*prepare_for_offline) (EShell *shell,
+ EActivity *activity);
+ void (*prepare_for_online) (EShell *shell,
+ EActivity *activity);
+ void (*prepare_for_quit) (EShell *shell,
+ EActivity *activity);
+ void (*quit_requested) (EShell *shell,
+ EShellQuitReason reason);
};
-
-/* ID for registering the shell in the OAF name service. */
-#define E_SHELL_OAFIID "OAFIID:GNOME_Evolution_Shell"
-
-enum _EShellConstructResult {
- E_SHELL_CONSTRUCT_RESULT_OK,
- E_SHELL_CONSTRUCT_RESULT_INVALIDARG,
- E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER,
- E_SHELL_CONSTRUCT_RESULT_NOCONFIGDB,
- E_SHELL_CONSTRUCT_RESULT_GENERICERROR
-};
-typedef enum _EShellConstructResult EShellConstructResult;
-
-
-#include "e-shortcuts.h"
-
-
-GtkType e_shell_get_type (void);
-EShellConstructResult e_shell_construct (EShell *shell,
- const char *iid,
- const char *local_directory,
- gboolean show_splash,
- EShellStartupLineMode startup_line_mode);
-EShell *e_shell_new (const char *local_directory,
- gboolean show_splash,
- EShellStartupLineMode startup_line_mode,
- EShellConstructResult *construct_result_return);
-
-EShellView *e_shell_create_view (EShell *shell,
- const char *uri,
- EShellView *template_view);
-EShellView *e_shell_create_view_from_uri_and_settings (EShell *shell,
- const char *uri,
- int view_num);
-gboolean e_shell_request_close_view (EShell *shell,
- EShellView *view);
-
-
-const char *e_shell_get_local_directory (EShell *shell);
-EShortcuts *e_shell_get_shortcuts (EShell *shell);
-EStorageSet *e_shell_get_storage_set (EShell *shell);
-ELocalStorage *e_shell_get_local_storage (EShell *shell);
-EFolderTypeRegistry *e_shell_get_folder_type_registry (EShell *shell);
-EUriSchemaRegistry *e_shell_get_uri_schema_registry (EShell *shell);
-
-gboolean e_shell_save_settings (EShell *shell);
-gboolean e_shell_restore_from_settings (EShell *shell,
- gboolean restore_all_views);
-
-void e_shell_destroy_all_views (EShell *shell);
-
-void e_shell_unregister_all (EShell *shell);
-void e_shell_disconnect_db (EShell *shell);
-
-void e_shell_component_maybe_crashed (EShell *shell,
- const char *uri,
- const char *type_name,
- EShellView *shell_view);
-
-EShellLineStatus e_shell_get_line_status (EShell *shell);
-void e_shell_go_offline (EShell *shell,
- EShellView *action_view);
-void e_shell_go_online (EShell *shell,
- EShellView *action_view);
-
-void e_shell_set_interactive (EShell *shell,
- gboolean interactive);
-
-void e_shell_send_receive (EShell *shell);
-void e_shell_show_settings (EShell *shell,
- const char *type,
- EShellView *shell_view);
-
-Bonobo_ConfigDatabase e_shell_get_config_db (EShell *shell);
-EComponentRegistry *e_shell_get_component_registry (EShell *shell);
-EShellUserCreatableItemsHandler *e_shell_get_user_creatable_items_handler (EShell *shell);
-
-gboolean e_shell_prepare_for_quit (EShell *shell);
-
-
-const char *e_shell_construct_result_to_string (EShellConstructResult result);
-
-
-gboolean e_shell_parse_uri (EShell *shell,
- const char *uri,
- char **path_return,
- char **extra_return);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _E_SHELL_H_ */
+GType e_shell_get_type (void);
+EShell * e_shell_get_default (void);
+void e_shell_load_modules (EShell *shell);
+GList * e_shell_get_shell_backends (EShell *shell);
+const gchar * e_shell_get_canonical_name (EShell *shell,
+ const gchar *name);
+EShellBackend * e_shell_get_backend_by_name (EShell *shell,
+ const gchar *name);
+EShellBackend * e_shell_get_backend_by_scheme (EShell *shell,
+ const gchar *scheme);
+EClientCache * e_shell_get_client_cache (EShell *shell);
+ESourceRegistry *
+ e_shell_get_registry (EShell *shell);
+GtkWidget * e_shell_create_shell_window (EShell *shell,
+ const gchar *view_name);
+guint e_shell_handle_uris (EShell *shell,
+ const gchar * const *uris,
+ gboolean do_import);
+void e_shell_submit_alert (EShell *shell,
+ EAlert *alert);
+GtkWindow * e_shell_get_active_window (EShell *shell);
+gboolean e_shell_get_express_mode (EShell *shell);
+const gchar * e_shell_get_module_directory (EShell *shell);
+gboolean e_shell_get_network_available (EShell *shell);
+void e_shell_set_network_available (EShell *shell,
+ gboolean network_available);
+void e_shell_lock_network_available (EShell *shell);
+gboolean e_shell_get_online (EShell *shell);
+void e_shell_set_online (EShell *shell,
+ gboolean online);
+GtkWidget * e_shell_get_preferences_window (EShell *shell);
+void e_shell_event (EShell *shell,
+ const gchar *event_name,
+ gpointer event_data);
+gboolean e_shell_quit (EShell *shell,
+ EShellQuitReason reason);
+void e_shell_cancel_quit (EShell *shell);
+
+G_END_DECLS
+
+#endif /* E_SHELL_H */