aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.h
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-06-13 02:28:07 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-06-13 02:28:07 +0800
commit51d0fc6863be998af5056605281cc0ebc2abfe00 (patch)
treeca9410d6729e2b3d989f0fbbc069c2563a634739 /shell/e-shell.h
parent077116eac4cbfd5f06c44c8f5634469eab3130e6 (diff)
downloadgsoc2013-evolution-51d0fc6863be998af5056605281cc0ebc2abfe00.tar.gz
gsoc2013-evolution-51d0fc6863be998af5056605281cc0ebc2abfe00.tar.zst
gsoc2013-evolution-51d0fc6863be998af5056605281cc0ebc2abfe00.zip
Bug 603468 - Improve handling of --quit option
Diffstat (limited to 'shell/e-shell.h')
-rw-r--r--shell/e-shell.h33
1 files changed, 31 insertions, 2 deletions
diff --git a/shell/e-shell.h b/shell/e-shell.h
index f1d76b9ea6..6962ff6d0f 100644
--- a/shell/e-shell.h
+++ b/shell/e-shell.h
@@ -57,6 +57,32 @@ typedef struct _EShellClass EShellClass;
typedef struct _EShellPrivate EShellPrivate;
/**
+ * 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
@@ -78,7 +104,8 @@ struct _EShellClass {
EActivity *activity);
void (*prepare_for_quit) (EShell *shell,
EActivity *activity);
- void (*quit_requested) (EShell *shell);
+ void (*quit_requested) (EShell *shell,
+ EShellQuitReason reason);
void (*send_receive) (EShell *shell,
GtkWindow *parent);
void (*window_created) (EShell *shell,
@@ -88,6 +115,7 @@ struct _EShellClass {
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);
@@ -122,7 +150,8 @@ 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);
+gboolean e_shell_quit (EShell *shell,
+ EShellQuitReason reason);
void e_shell_cancel_quit (EShell *shell);
void e_shell_adapt_window_size (EShell *shell,