From d7494c8f160b12e1199b06dcafdc8ff01b24b796 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 4 Mar 2010 15:26:59 -0500 Subject: Shell and UI manager cleanups. Replace the EVO_EXPRESS environment variable with an --express command line option. (Note, this adds a new translatable string for --help.) Add an EUIManager class with an "express-mode" property and custom load functions that use our new "express" preprocessor. This replaces the UI manager functions in e-utils.c. (Also going to see if I can get GTK+ to add an "add_ui_from_string" method to GtkUIManagerClass that we can override. Then we could just call gtk_ui_manager_add_ui_from_string() and the preprocessor would automatically do its thing and chain up.) Add an "express-mode" read-only GObject property to EShell. Add e_shell_configure_ui_manager() to e-shell-utils.c. For now this just creates a one-way property binding: EShell:express-mode -> EUIManager:express-mode Call this immediately after e_ui_manager_new(). (EUIManager can't do this itself because it lives too low in the dependency hierarchy and doesn't know about EShell.) --- shell/e-shell-utils.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'shell/e-shell-utils.c') diff --git a/shell/e-shell-utils.c b/shell/e-shell-utils.c index f954492a0c..a584289d20 100644 --- a/shell/e-shell-utils.c +++ b/shell/e-shell-utils.c @@ -26,6 +26,31 @@ #include "e-util/e-binding.h" #include "widgets/misc/e-import-assistant.h" +/** + * e_shell_configure_ui_manager: + * @shell: an #EShell + * @ui_manager: an #EUIManager + * + * Adds shell integration to @ui_manager. In particular, it keeps + * @ui_manager's EUIManager:express-mode property synchronized with + * @shell's EShell:express-mode property. + **/ +void +e_shell_configure_ui_manager (EShell *shell, + EUIManager *ui_manager) +{ + EShellSettings *shell_settings; + + g_return_if_fail (E_IS_SHELL (shell)); + g_return_if_fail (E_IS_UI_MANAGER (ui_manager)); + + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell, "express-mode", + ui_manager, "express-mode"); +} + /** * e_shell_configure_web_view: * @shell: an #EShell -- cgit v1.2.3