summaryrefslogtreecommitdiff
path: root/src/config/ConfigurationInterfaces.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/ConfigurationInterfaces.vala')
-rw-r--r--src/config/ConfigurationInterfaces.vala1609
1 files changed, 1609 insertions, 0 deletions
diff --git a/src/config/ConfigurationInterfaces.vala b/src/config/ConfigurationInterfaces.vala
new file mode 100644
index 0000000..97f41cc
--- /dev/null
+++ b/src/config/ConfigurationInterfaces.vala
@@ -0,0 +1,1609 @@
+/* Copyright 2009-2014 Yorba Foundation
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+public errordomain ConfigurationError {
+ PROPERTY_HAS_NO_VALUE,
+ /**
+ * the underlying configuration engine reported an error; the error is
+ * specific to the configuration engine in use (e.g., GSettings)
+ * and is usually meaningless to client code */
+ ENGINE_ERROR,
+}
+
+public enum FuzzyPropertyState {
+ ENABLED,
+ DISABLED,
+ UNKNOWN
+}
+
+public enum ConfigurableProperty {
+ AUTO_IMPORT_FROM_LIBRARY = 0,
+ BG_COLOR_NAME,
+ COMMIT_METADATA_TO_MASTERS,
+ DESKTOP_BACKGROUND_FILE,
+ DESKTOP_BACKGROUND_MODE,
+ DIRECTORY_PATTERN,
+ DIRECTORY_PATTERN_CUSTOM,
+ DIRECT_WINDOW_HEIGHT,
+ DIRECT_WINDOW_MAXIMIZE,
+ DIRECT_WINDOW_WIDTH,
+ DISPLAY_BASIC_PROPERTIES,
+ DISPLAY_EVENT_COMMENTS,
+ DISPLAY_EXTENDED_PROPERTIES,
+ DISPLAY_SIDEBAR,
+ DISPLAY_SEARCH_BAR,
+ DISPLAY_PHOTO_RATINGS,
+ DISPLAY_PHOTO_TAGS,
+ DISPLAY_PHOTO_TITLES,
+ DISPLAY_PHOTO_COMMENTS,
+ EVENT_PHOTOS_SORT_ASCENDING,
+ EVENT_PHOTOS_SORT_BY,
+ EVENTS_SORT_ASCENDING,
+ EXTERNAL_PHOTO_APP,
+ EXTERNAL_RAW_APP,
+ HIDE_PHOTOS_ALREADY_IMPORTED,
+ IMPORT_DIR,
+ KEEP_RELATIVITY,
+ LAST_CROP_HEIGHT,
+ LAST_CROP_MENU_CHOICE,
+ LAST_CROP_WIDTH,
+ LAST_USED_SERVICE,
+ LAST_USED_DATAIMPORTS_SERVICE,
+ LIBRARY_PHOTOS_SORT_ASCENDING,
+ LIBRARY_PHOTOS_SORT_BY,
+ LIBRARY_WINDOW_HEIGHT,
+ LIBRARY_WINDOW_MAXIMIZE,
+ LIBRARY_WINDOW_WIDTH,
+ MODIFY_ORIGINALS,
+ PHOTO_THUMBNAIL_SCALE,
+ PIN_TOOLBAR_STATE,
+ PRINTING_CONTENT_HEIGHT,
+ PRINTING_CONTENT_LAYOUT,
+ PRINTING_CONTENT_PPI,
+ PRINTING_CONTENT_UNITS,
+ PRINTING_CONTENT_WIDTH,
+ PRINTING_IMAGES_PER_PAGE,
+ PRINTING_MATCH_ASPECT_RATIO,
+ PRINTING_PRINT_TITLES,
+ PRINTING_SIZE_SELECTION,
+ PRINTING_TITLES_FONT,
+ RAW_DEVELOPER_DEFAULT,
+ SHOW_WELCOME_DIALOG,
+ SIDEBAR_POSITION,
+ SLIDESHOW_DELAY,
+ SLIDESHOW_TRANSITION_DELAY,
+ SLIDESHOW_TRANSITION_EFFECT_ID,
+ SLIDESHOW_SHOW_TITLE,
+ USE_24_HOUR_TIME,
+ USE_LOWERCASE_FILENAMES,
+ VIDEO_INTERPRETER_STATE_COOKIE,
+
+
+ NUM_PROPERTIES;
+
+ public string to_string() {
+ switch (this) {
+ case AUTO_IMPORT_FROM_LIBRARY:
+ return "AUTO_IMPORT_FROM_LIBRARY";
+
+ case BG_COLOR_NAME:
+ return "BG_COLOR_NAME";
+
+ case COMMIT_METADATA_TO_MASTERS:
+ return "COMMIT_METADATA_TO_MASTERS";
+
+ case DESKTOP_BACKGROUND_FILE:
+ return "DESKTOP_BACKGROUND_FILE";
+
+ case DESKTOP_BACKGROUND_MODE:
+ return "DESKTOP_BACKGROUND_MODE";
+
+ case DIRECTORY_PATTERN:
+ return "DIRECTORY_PATTERN";
+
+ case DIRECTORY_PATTERN_CUSTOM:
+ return "DIRECTORY_PATTERN_CUSTOM";
+
+ case DIRECT_WINDOW_HEIGHT:
+ return "DIRECT_WINDOW_HEIGHT";
+
+ case DIRECT_WINDOW_MAXIMIZE:
+ return "DIRECT_WINDOW_MAXIMIZE";
+
+ case DIRECT_WINDOW_WIDTH:
+ return "DIRECT_WINDOW_WIDTH";
+
+ case DISPLAY_BASIC_PROPERTIES:
+ return "DISPLAY_BASIC_PROPERTIES";
+
+ case DISPLAY_EXTENDED_PROPERTIES:
+ return "DISPLAY_EXTENDED_PROPERTIES";
+
+ case DISPLAY_SIDEBAR:
+ return "DISPLAY_SIDEBAR";
+
+ case DISPLAY_SEARCH_BAR:
+ return "DISPLAY_SEARCH_BAR";
+
+ case DISPLAY_PHOTO_RATINGS:
+ return "DISPLAY_PHOTO_RATINGS";
+
+ case DISPLAY_PHOTO_TAGS:
+ return "DISPLAY_PHOTO_TAGS";
+
+ case DISPLAY_PHOTO_TITLES:
+ return "DISPLAY_PHOTO_TITLES";
+
+ case DISPLAY_PHOTO_COMMENTS:
+ return "DISPLAY_PHOTO_COMMENTS";
+
+ case DISPLAY_EVENT_COMMENTS:
+ return "DISPLAY_EVENT_COMMENTS";
+
+ case EVENT_PHOTOS_SORT_ASCENDING:
+ return "EVENT_PHOTOS_SORT_ASCENDING";
+
+ case EVENT_PHOTOS_SORT_BY:
+ return "EVENT_PHOTOS_SORT_BY";
+
+ case EVENTS_SORT_ASCENDING:
+ return "EVENTS_SORT_ASCENDING";
+
+ case EXTERNAL_PHOTO_APP:
+ return "EXTERNAL_PHOTO_APP";
+
+ case EXTERNAL_RAW_APP:
+ return "EXTERNAL_RAW_APP";
+
+ case HIDE_PHOTOS_ALREADY_IMPORTED:
+ return "HIDE_PHOTOS_ALREADY_IMPORTED";
+
+ case IMPORT_DIR:
+ return "IMPORT_DIR";
+
+ case KEEP_RELATIVITY:
+ return "KEEP_RELATIVITY";
+
+ case LAST_CROP_HEIGHT:
+ return "LAST_CROP_HEIGHT";
+
+ case LAST_CROP_MENU_CHOICE:
+ return "LAST_CROP_MENU_CHOICE";
+
+ case LAST_CROP_WIDTH:
+ return "LAST_CROP_WIDTH";
+
+ case LAST_USED_SERVICE:
+ return "LAST_USED_SERVICE";
+
+ case LAST_USED_DATAIMPORTS_SERVICE:
+ return "LAST_USED_DATAIMPORTS_SERVICE";
+
+ case LIBRARY_PHOTOS_SORT_ASCENDING:
+ return "LIBRARY_PHOTOS_SORT_ASCENDING";
+
+ case LIBRARY_PHOTOS_SORT_BY:
+ return "LIBRARY_PHOTOS_SORT_BY";
+
+ case LIBRARY_WINDOW_HEIGHT:
+ return "LIBRARY_WINDOW_HEIGHT";
+
+ case LIBRARY_WINDOW_MAXIMIZE:
+ return "LIBRARY_WINDOW_MAXIMIZE";
+
+ case LIBRARY_WINDOW_WIDTH:
+ return "LIBRARY_WINDOW_WIDTH";
+
+ case MODIFY_ORIGINALS:
+ return "MODIFY_ORIGINALS";
+
+ case PHOTO_THUMBNAIL_SCALE:
+ return "PHOTO_THUMBNAIL_SCALE";
+
+ case PIN_TOOLBAR_STATE:
+ return "PIN_TOOLBAR_STATE";
+
+ case PRINTING_CONTENT_HEIGHT:
+ return "PRINTING_CONTENT_HEIGHT";
+
+ case PRINTING_CONTENT_LAYOUT:
+ return "PRINTING_CONTENT_LAYOUT";
+
+ case PRINTING_CONTENT_PPI:
+ return "PRINTING_CONTENT_PPI";
+
+ case PRINTING_CONTENT_UNITS:
+ return "PRINTING_CONTENT_UNITS";
+
+ case PRINTING_CONTENT_WIDTH:
+ return "PRINTING_CONTENT_WIDTH";
+
+ case PRINTING_IMAGES_PER_PAGE:
+ return "PRINTING_IMAGES_PER_PAGE";
+
+ case PRINTING_MATCH_ASPECT_RATIO:
+ return "PRINTING_MATCH_ASPECT_RATIO";
+
+ case PRINTING_PRINT_TITLES:
+ return "PRINTING_PRINT_TITLES";
+
+ case PRINTING_SIZE_SELECTION:
+ return "PRINTING_SIZE_SELECTION";
+
+ case PRINTING_TITLES_FONT:
+ return "PRINTING_TITLES_FONT";
+
+ case RAW_DEVELOPER_DEFAULT:
+ return "RAW_DEVELOPER_DEFAULT";
+
+ case SHOW_WELCOME_DIALOG:
+ return "SHOW_WELCOME_DIALOG";
+
+ case SIDEBAR_POSITION:
+ return "SIDEBAR_POSITION";
+
+ case SLIDESHOW_DELAY:
+ return "SLIDESHOW_DELAY";
+
+ case SLIDESHOW_TRANSITION_DELAY:
+ return "SLIDESHOW_TRANSITION_DELAY";
+
+ case SLIDESHOW_TRANSITION_EFFECT_ID:
+ return "SLIDESHOW_TRANSITION_EFFECT_ID";
+
+ case SLIDESHOW_SHOW_TITLE:
+ return "SLIDESHOW_SHOW_TITLE";
+
+ case USE_24_HOUR_TIME:
+ return "USE_24_HOUR_TIME";
+
+ case USE_LOWERCASE_FILENAMES:
+ return "USE_LOWERCASE_FILENAMES";
+
+ case VIDEO_INTERPRETER_STATE_COOKIE:
+ return "VIDEO_INTERPRETER_STATE_COOKIE";
+
+ default:
+ error("unknown ConfigurableProperty enumeration value");
+ }
+ }
+}
+
+public interface ConfigurationEngine : GLib.Object {
+ public signal void property_changed(ConfigurableProperty p);
+
+ public abstract string get_name();
+
+ public abstract int get_int_property(ConfigurableProperty p) throws ConfigurationError;
+ public abstract void set_int_property(ConfigurableProperty p, int val) throws ConfigurationError;
+
+ public abstract string get_string_property(ConfigurableProperty p) throws ConfigurationError;
+ public abstract void set_string_property(ConfigurableProperty p, string val) throws ConfigurationError;
+
+ public abstract bool get_bool_property(ConfigurableProperty p) throws ConfigurationError;
+ public abstract void set_bool_property(ConfigurableProperty p, bool val) throws ConfigurationError;
+
+ public abstract double get_double_property(ConfigurableProperty p) throws ConfigurationError;
+ public abstract void set_double_property(ConfigurableProperty p, double val) throws ConfigurationError;
+
+ public abstract bool get_plugin_bool(string domain, string id, string key, bool def);
+ public abstract void set_plugin_bool(string domain, string id, string key, bool val);
+ public abstract double get_plugin_double(string domain, string id, string key, double def);
+ public abstract void set_plugin_double(string domain, string id, string key, double val);
+ public abstract int get_plugin_int(string domain, string id, string key, int def);
+ public abstract void set_plugin_int(string domain, string id, string key, int val);
+ public abstract string? get_plugin_string(string domain, string id, string key, string? def);
+ public abstract void set_plugin_string(string domain, string id, string key, string? val);
+ public abstract void unset_plugin_key(string domain, string id, string key);
+
+ public abstract FuzzyPropertyState is_plugin_enabled(string id);
+ public abstract void set_plugin_enabled(string id, bool enabled);
+}
+
+public abstract class ConfigurationFacade : Object {
+ private ConfigurationEngine engine;
+
+ public signal void auto_import_from_library_changed();
+ public signal void bg_color_name_changed();
+ public signal void commit_metadata_to_masters_changed();
+ public signal void events_sort_ascending_changed();
+ public signal void external_app_changed();
+ public signal void import_directory_changed();
+
+ protected ConfigurationFacade(ConfigurationEngine engine) {
+ this.engine = engine;
+
+ engine.property_changed.connect(on_property_changed);
+ }
+
+ private void on_property_changed(ConfigurableProperty p) {
+ debug ("ConfigurationFacade: engine reports property '%s' changed.", p.to_string());
+
+ switch (p) {
+ case ConfigurableProperty.AUTO_IMPORT_FROM_LIBRARY:
+ auto_import_from_library_changed();
+ break;
+
+ case ConfigurableProperty.BG_COLOR_NAME:
+ bg_color_name_changed();
+ break;
+
+ case ConfigurableProperty.COMMIT_METADATA_TO_MASTERS:
+ commit_metadata_to_masters_changed();
+ break;
+
+ case ConfigurableProperty.EVENTS_SORT_ASCENDING:
+ events_sort_ascending_changed();
+ break;
+
+ case ConfigurableProperty.EXTERNAL_PHOTO_APP:
+ case ConfigurableProperty.EXTERNAL_RAW_APP:
+ external_app_changed();
+ break;
+
+ case ConfigurableProperty.IMPORT_DIR:
+ import_directory_changed();
+ break;
+ }
+ }
+
+ protected ConfigurationEngine get_engine() {
+ return engine;
+ }
+
+ protected void on_configuration_error(ConfigurationError err) {
+ if (err is ConfigurationError.PROPERTY_HAS_NO_VALUE) {
+ message("configuration engine '%s' reports PROPERTY_HAS_NO_VALUE error: %s",
+ engine.get_name(), err.message);
+ }
+ else if (err is ConfigurationError.ENGINE_ERROR) {
+ critical("configuration engine '%s' reports ENGINE_ERROR: %s",
+ engine.get_name(), err.message);
+ } else {
+ critical("configuration engine '%s' reports unknown error: %s",
+ engine.get_name(), err.message);
+ }
+ }
+
+ //
+ // auto import from library
+ //
+ public virtual bool get_auto_import_from_library() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.AUTO_IMPORT_FROM_LIBRARY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_auto_import_from_library(bool auto_import) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.AUTO_IMPORT_FROM_LIBRARY,
+ auto_import);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // bg color name
+ //
+ public virtual string get_bg_color_name() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.BG_COLOR_NAME);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_bg_color_name(string color_name) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.BG_COLOR_NAME, color_name);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // commit metadata to masters
+ //
+ public virtual bool get_commit_metadata_to_masters() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.COMMIT_METADATA_TO_MASTERS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_commit_metadata_to_masters(bool commit_metadata) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.COMMIT_METADATA_TO_MASTERS,
+ commit_metadata);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // desktop background
+ //
+ public virtual string get_desktop_background() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.DESKTOP_BACKGROUND_FILE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_desktop_background(string filename) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.DESKTOP_BACKGROUND_FILE,
+ filename);
+ get_engine().set_string_property(ConfigurableProperty.DESKTOP_BACKGROUND_MODE,
+ "zoom");
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // directory pattern
+ //
+ public virtual string? get_directory_pattern() {
+ try {
+ string s = get_engine().get_string_property(ConfigurableProperty.DIRECTORY_PATTERN);
+ return (s == "") ? null : s;
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_directory_pattern(string? s) {
+ try {
+ if (s == null)
+ s = "";
+
+ get_engine().set_string_property(ConfigurableProperty.DIRECTORY_PATTERN, s);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // directory pattern custom
+ //
+ public virtual string get_directory_pattern_custom() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.DIRECTORY_PATTERN_CUSTOM);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_directory_pattern_custom(string s) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.DIRECTORY_PATTERN_CUSTOM, s);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // direct window state
+ //
+ public virtual void get_direct_window_state(out bool maximize, out Dimensions dimensions) {
+ maximize = false;
+ dimensions = Dimensions(1024, 768);
+ try {
+ maximize = get_engine().get_bool_property(ConfigurableProperty.DIRECT_WINDOW_MAXIMIZE);
+ int w = get_engine().get_int_property(ConfigurableProperty.DIRECT_WINDOW_WIDTH);
+ int h = get_engine().get_int_property(ConfigurableProperty.DIRECT_WINDOW_HEIGHT);
+ dimensions = Dimensions(w, h);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ public virtual void set_direct_window_state(bool maximize, Dimensions dimensions) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DIRECT_WINDOW_MAXIMIZE, maximize);
+ get_engine().set_int_property(ConfigurableProperty.DIRECT_WINDOW_WIDTH,
+ dimensions.width);
+ get_engine().set_int_property(ConfigurableProperty.DIRECT_WINDOW_HEIGHT,
+ dimensions.height);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display basic properties
+ //
+ public virtual bool get_display_basic_properties() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_BASIC_PROPERTIES);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_display_basic_properties(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_BASIC_PROPERTIES, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display extended properties
+ //
+ public virtual bool get_display_extended_properties() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_EXTENDED_PROPERTIES);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_extended_properties(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_EXTENDED_PROPERTIES,
+ display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display sidebar
+ //
+ public virtual bool get_display_sidebar() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_SIDEBAR);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_sidebar(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_SIDEBAR, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display search & filter toolbar
+ //
+ public virtual bool get_display_search_bar() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_SEARCH_BAR);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_search_bar(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_SEARCH_BAR, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display photo ratings
+ //
+ public virtual bool get_display_photo_ratings() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_PHOTO_RATINGS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_display_photo_ratings(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_PHOTO_RATINGS, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display photo tags
+ //
+ public virtual bool get_display_photo_tags() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_PHOTO_TAGS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_display_photo_tags(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_PHOTO_TAGS, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display photo titles
+ //
+ public virtual bool get_display_photo_titles() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_PHOTO_TITLES);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_photo_titles(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_PHOTO_TITLES, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display photo comments
+ //
+ public virtual bool get_display_photo_comments() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_PHOTO_COMMENTS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_photo_comments(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_PHOTO_COMMENTS, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // display event comments
+ //
+ public virtual bool get_display_event_comments() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_EVENT_COMMENTS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_event_comments(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_EVENT_COMMENTS, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // event photos sort
+ //
+ public virtual void get_event_photos_sort(out bool sort_order, out int sort_by) {
+ sort_order = false;
+ sort_by = 2;
+ try {
+ sort_order = get_engine().get_bool_property(
+ ConfigurableProperty.EVENT_PHOTOS_SORT_ASCENDING);
+ sort_by = get_engine().get_int_property(ConfigurableProperty.EVENT_PHOTOS_SORT_BY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ public virtual void set_event_photos_sort(bool sort_order, int sort_by) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.EVENT_PHOTOS_SORT_ASCENDING,
+ sort_order);
+ get_engine().set_int_property(ConfigurableProperty.EVENT_PHOTOS_SORT_BY,
+ sort_by);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // events sort ascending
+ //
+ public virtual bool get_events_sort_ascending() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.EVENTS_SORT_ASCENDING);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_events_sort_ascending(bool sort) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.EVENTS_SORT_ASCENDING, sort);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // external photo app
+ //
+ public virtual string get_external_photo_app() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.EXTERNAL_PHOTO_APP);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_external_photo_app(string external_photo_app) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.EXTERNAL_PHOTO_APP,
+ external_photo_app);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // external raw app
+ //
+ public virtual string get_external_raw_app() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.EXTERNAL_RAW_APP);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_external_raw_app(string external_raw_app) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.EXTERNAL_RAW_APP,
+ external_raw_app);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // Default RAW developer.
+ //
+ public virtual RawDeveloper get_default_raw_developer() {
+ try {
+ return RawDeveloper.from_string(get_engine().get_string_property(
+ ConfigurableProperty.RAW_DEVELOPER_DEFAULT));
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return RawDeveloper.CAMERA;
+ }
+ }
+
+ public virtual void set_default_raw_developer(RawDeveloper d) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.RAW_DEVELOPER_DEFAULT,
+ d.to_string());
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return;
+ }
+ }
+
+ //
+ // hide photos already imported
+ //
+ public virtual bool get_hide_photos_already_imported() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.HIDE_PHOTOS_ALREADY_IMPORTED);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_hide_photos_already_imported(bool hide_imported) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.HIDE_PHOTOS_ALREADY_IMPORTED, hide_imported);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // import dir
+ //
+ public virtual string get_import_dir() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.IMPORT_DIR);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return "";
+ }
+ }
+
+ public virtual void set_import_dir(string import_dir) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.IMPORT_DIR, import_dir);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // keep relativity
+ //
+ public virtual bool get_keep_relativity() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.KEEP_RELATIVITY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_keep_relativity(bool keep_relativity) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.KEEP_RELATIVITY, keep_relativity);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // pin toolbar state
+ //
+ public virtual bool get_pin_toolbar_state() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.PIN_TOOLBAR_STATE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return false;
+ }
+ }
+
+ public virtual void set_pin_toolbar_state(bool state) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.PIN_TOOLBAR_STATE, state);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // last crop height
+ //
+ public virtual int get_last_crop_height() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.LAST_CROP_HEIGHT);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return 1;
+ }
+ }
+
+ public virtual void set_last_crop_height(int choice) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.LAST_CROP_HEIGHT, choice);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // last crop menu choice
+ //
+ public virtual int get_last_crop_menu_choice() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.LAST_CROP_MENU_CHOICE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ // in the event we can't get a reasonable value from the configuration engine, we
+ // return the empty string since it won't match the name of any existing publishing
+ // service -- this will cause the publishing subsystem to select the first service
+ // loaded that supports the user's media type
+ return 0;
+ }
+ }
+
+ public virtual void set_last_crop_menu_choice(int choice) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.LAST_CROP_MENU_CHOICE, choice);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // last crop width
+ //
+ public virtual int get_last_crop_width() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.LAST_CROP_WIDTH);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return 1;
+ }
+ }
+
+ public virtual void set_last_crop_width(int choice) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.LAST_CROP_WIDTH, choice);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // last used service
+ //
+ public virtual string get_last_used_service() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.LAST_USED_SERVICE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ // in the event we can't get a reasonable value from the configuration engine, we
+ // return the empty string since it won't match the name of any existing publishing
+ // service -- this will cause the publishing subsystem to select the first service
+ // loaded that supports the user's media type
+ return "";
+ }
+ }
+
+ public virtual void set_last_used_service(string service_name) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.LAST_USED_SERVICE, service_name);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // last used import service
+ //
+ public virtual string get_last_used_dataimports_service() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.LAST_USED_DATAIMPORTS_SERVICE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ // in the event we can't get a reasonable value from the configuration engine, we
+ // return the empty string since it won't match the name of any existing import
+ // service -- this will cause the import subsystem to select the first service
+ // loaded
+ return "";
+ }
+ }
+
+ public virtual void set_last_used_dataimports_service(string service_name) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.LAST_USED_DATAIMPORTS_SERVICE, service_name);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // library photos sort
+ //
+ public virtual void get_library_photos_sort(out bool sort_order, out int sort_by) {
+ sort_order = false;
+ sort_by = 2;
+ try {
+ sort_order = get_engine().get_bool_property(
+ ConfigurableProperty.LIBRARY_PHOTOS_SORT_ASCENDING);
+ sort_by = get_engine().get_int_property(ConfigurableProperty.LIBRARY_PHOTOS_SORT_BY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ public virtual void set_library_photos_sort(bool sort_order, int sort_by) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.LIBRARY_PHOTOS_SORT_ASCENDING,
+ sort_order);
+ get_engine().set_int_property(ConfigurableProperty.LIBRARY_PHOTOS_SORT_BY,
+ sort_by);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // library window state
+ //
+ public virtual void get_library_window_state(out bool maximize, out Dimensions dimensions) {
+ maximize = false;
+ dimensions = Dimensions(1024, 768);
+ try {
+ maximize = get_engine().get_bool_property(ConfigurableProperty.LIBRARY_WINDOW_MAXIMIZE);
+ int w = get_engine().get_int_property(ConfigurableProperty.LIBRARY_WINDOW_WIDTH);
+ int h = get_engine().get_int_property(ConfigurableProperty.LIBRARY_WINDOW_HEIGHT);
+ dimensions = Dimensions(w, h);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ public virtual void set_library_window_state(bool maximize, Dimensions dimensions) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.LIBRARY_WINDOW_MAXIMIZE, maximize);
+ get_engine().set_int_property(ConfigurableProperty.LIBRARY_WINDOW_WIDTH,
+ dimensions.width);
+ get_engine().set_int_property(ConfigurableProperty.LIBRARY_WINDOW_HEIGHT,
+ dimensions.height);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // modify originals
+ //
+ public virtual bool get_modify_originals() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.MODIFY_ORIGINALS);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ // if we can't get a reasonable value from the configuration engine, don't modify
+ // originals
+ return false;
+ }
+ }
+
+ public virtual void set_modify_originals(bool modify_originals) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.MODIFY_ORIGINALS, modify_originals);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // photo thumbnail scale
+ //
+ public virtual int get_photo_thumbnail_scale() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PHOTO_THUMBNAIL_SCALE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ return Thumbnail.DEFAULT_SCALE;
+ }
+ }
+
+ public virtual void set_photo_thumbnail_scale(int scale) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PHOTO_THUMBNAIL_SCALE, scale);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing content height
+ //
+ public virtual double get_printing_content_height() {
+ try {
+ return get_engine().get_double_property(ConfigurableProperty.PRINTING_CONTENT_HEIGHT);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 5.0;
+ }
+ }
+
+ public virtual void set_printing_content_height(double content_height) {
+ try {
+ get_engine().set_double_property(ConfigurableProperty.PRINTING_CONTENT_HEIGHT,
+ content_height);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing content layout
+ //
+ public virtual int get_printing_content_layout() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PRINTING_CONTENT_LAYOUT) - 1;
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 0;
+ }
+ }
+
+ public virtual void set_printing_content_layout(int layout_code) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PRINTING_CONTENT_LAYOUT,
+ layout_code + 1);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing content ppi
+ //
+ public virtual int get_printing_content_ppi() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PRINTING_CONTENT_PPI);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 600;
+ }
+ }
+
+ public virtual void set_printing_content_ppi(int content_ppi) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PRINTING_CONTENT_PPI, content_ppi);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing content units
+ //
+ public virtual int get_printing_content_units() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PRINTING_CONTENT_UNITS) - 1;
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 0;
+ }
+ }
+
+ public virtual void set_printing_content_units(int units_code) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PRINTING_CONTENT_UNITS,
+ units_code + 1);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing content width
+ //
+ public virtual double get_printing_content_width() {
+ try {
+ return get_engine().get_double_property(ConfigurableProperty.PRINTING_CONTENT_WIDTH);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 7.0;
+ }
+ }
+
+ public virtual void set_printing_content_width(double content_width) {
+ try {
+ get_engine().set_double_property(ConfigurableProperty.PRINTING_CONTENT_WIDTH,
+ content_width);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing images per page
+ //
+ public virtual int get_printing_images_per_page() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PRINTING_IMAGES_PER_PAGE) - 1;
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 0;
+ }
+ }
+
+ public virtual void set_printing_images_per_page(int images_per_page_code) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PRINTING_IMAGES_PER_PAGE,
+ images_per_page_code + 1);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing match aspect ratio
+ //
+ public virtual bool get_printing_match_aspect_ratio() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.PRINTING_MATCH_ASPECT_RATIO);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_printing_match_aspect_ratio(bool match_aspect_ratio) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.PRINTING_MATCH_ASPECT_RATIO,
+ match_aspect_ratio);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing print titles
+ //
+ public virtual bool get_printing_print_titles() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.PRINTING_PRINT_TITLES);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_printing_print_titles(bool print_titles) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.PRINTING_PRINT_TITLES,
+ print_titles);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing size selection
+ //
+ public virtual int get_printing_size_selection() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.PRINTING_SIZE_SELECTION) - 1;
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 0;
+ }
+ }
+
+ public virtual void set_printing_size_selection(int size_code) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.PRINTING_SIZE_SELECTION,
+ size_code + 1);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // printing titles font
+ //
+ public virtual string get_printing_titles_font() {
+ try {
+ return get_engine().get_string_property(ConfigurableProperty.PRINTING_TITLES_FONT);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ // in the event we can't get a reasonable value from the configuration engine, just
+ // use the system default Sans Serif font
+ return "Sans Bold 12";
+ }
+ }
+
+ public virtual void set_printing_titles_font(string font_name) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.PRINTING_TITLES_FONT, font_name);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // show welcome dialog
+ //
+ public virtual bool get_show_welcome_dialog() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.SHOW_WELCOME_DIALOG);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return true;
+ }
+ }
+
+ public virtual void set_show_welcome_dialog(bool show) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.SHOW_WELCOME_DIALOG,
+ show);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // sidebar position
+ //
+ public virtual int get_sidebar_position() {
+ try {
+ return get_engine().get_int_property(ConfigurableProperty.SIDEBAR_POSITION);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 180;
+ }
+ }
+
+ public virtual void set_sidebar_position(int position) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.SIDEBAR_POSITION, position);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // slideshow delay
+ //
+ public virtual double get_slideshow_delay() {
+ try {
+ return get_engine().get_double_property(ConfigurableProperty.SLIDESHOW_DELAY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 3.0;
+ }
+ }
+
+ public virtual void set_slideshow_delay(double delay) {
+ try {
+ get_engine().set_double_property(ConfigurableProperty.SLIDESHOW_DELAY, delay);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // slideshow transition delay
+ //
+ public virtual double get_slideshow_transition_delay() {
+ try {
+ return get_engine().get_double_property(
+ ConfigurableProperty.SLIDESHOW_TRANSITION_DELAY);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return 0.3;
+ }
+ }
+
+ public virtual void set_slideshow_transition_delay(double delay) {
+ try {
+ get_engine().set_double_property(ConfigurableProperty.SLIDESHOW_TRANSITION_DELAY,
+ delay);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // slideshow transition effect id
+ //
+ public virtual string get_slideshow_transition_effect_id() {
+ try {
+ return get_engine().get_string_property(
+ ConfigurableProperty.SLIDESHOW_TRANSITION_EFFECT_ID);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ // in the event we can't get a reasonable value from the configuration engine, use
+ // the null transition effect
+ return TransitionEffectsManager.NULL_EFFECT_ID;
+ }
+ }
+
+ public virtual void set_slideshow_transition_effect_id(string id) {
+ try {
+ get_engine().set_string_property(ConfigurableProperty.SLIDESHOW_TRANSITION_EFFECT_ID,
+ id);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // Slideshow show title
+ //
+ public virtual bool get_slideshow_show_title() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.SLIDESHOW_SHOW_TITLE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_slideshow_show_title(bool show_title) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.SLIDESHOW_SHOW_TITLE, show_title);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // use 24 hour time
+ //
+ public virtual bool get_use_24_hour_time() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.USE_24_HOUR_TIME);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ // if we can't get a reasonable value from the configuration system, then use the
+ // operating system default for the user's country and region.
+ return is_string_empty(Time.local(0).format("%p"));
+ }
+ }
+
+ public virtual void set_use_24_hour_time(bool use_24_hour_time) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.USE_24_HOUR_TIME, use_24_hour_time);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // use lowercase filenames
+ //
+ public virtual bool get_use_lowercase_filenames() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.USE_LOWERCASE_FILENAMES);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_use_lowercase_filenames(bool b) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.USE_LOWERCASE_FILENAMES, b);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // video interpreter state cookie
+ //
+ public virtual int get_video_interpreter_state_cookie() {
+ try {
+ return get_engine().get_int_property(
+ ConfigurableProperty.VIDEO_INTERPRETER_STATE_COOKIE);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return -1;
+ }
+ }
+
+ public virtual void set_video_interpreter_state_cookie(int state_cookie) {
+ try {
+ get_engine().set_int_property(ConfigurableProperty.VIDEO_INTERPRETER_STATE_COOKIE,
+ state_cookie);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
+ //
+ // allow plugins to get & set arbitrary properties
+ //
+ public virtual bool get_plugin_bool(string domain, string id, string key, bool def) {
+ return get_engine().get_plugin_bool(domain, id, key, def);
+ }
+
+ public virtual void set_plugin_bool(string domain, string id, string key, bool val) {
+ get_engine().set_plugin_bool(domain, id, key, val);
+ }
+
+ public virtual double get_plugin_double(string domain, string id, string key, double def) {
+ return get_engine().get_plugin_double(domain, id, key, def);
+ }
+
+ public virtual void set_plugin_double(string domain, string id, string key, double val) {
+ get_engine().set_plugin_double(domain, id, key, val);
+ }
+
+ public virtual int get_plugin_int(string domain, string id, string key, int def) {
+ return get_engine().get_plugin_int(domain, id, key, def);
+ }
+
+ public virtual void set_plugin_int(string domain, string id, string key, int val) {
+ get_engine().set_plugin_int(domain, id, key, val);
+ }
+
+ public virtual string? get_plugin_string(string domain, string id, string key, string? def) {
+ string? result = get_engine().get_plugin_string(domain, id, key, def);
+ return (result == "") ? null : result;
+ }
+
+ public virtual void set_plugin_string(string domain, string id, string key, string? val) {
+ if (val == null)
+ val = "";
+
+ get_engine().set_plugin_string(domain, id, key, val);
+ }
+
+ public virtual void unset_plugin_key(string domain, string id, string key) {
+ get_engine().unset_plugin_key(domain, id, key);
+ }
+
+ //
+ // enable & disable plugins
+ //
+ public virtual FuzzyPropertyState is_plugin_enabled(string id) {
+ return get_engine().is_plugin_enabled(id);
+ }
+
+ public virtual void set_plugin_enabled(string id, bool enabled) {
+ get_engine().set_plugin_enabled(id, enabled);
+ }
+}