diff options
author | Marco Pesenti Gritti <set EMAIL_ADDRESS environment variable> | 2005-07-06 10:36:28 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-07-06 10:36:28 (GMT) |
commit | 938636d838432d71cd8ed1c2aa1604faa6f8d083 (patch) | |
tree | a5321bd00b2ad4a793a8aca13f0570f3a0c437ab /shell/ev-metadata-manager.c | |
parent | 5c7621f5c00e82a787d3cdbc038cf833e581cfa7 (diff) |
Add support for some more types
2005-07-06 Marco Pesenti Gritti <set EMAIL_ADDRESS environment variable>
* shell/ev-metadata-manager.c: (parse_value), (save_values),
(ev_metadata_manager_set_int), (ev_metadata_manager_set_double),
(ev_metadata_manager_set_string),
(ev_metadata_manager_set_boolean):
* shell/ev-metadata-manager.h:
Add support for some more types
* shell/ev-view.c: (scroll_to_current_page),
(ev_view_get_continuous), (ev_view_set_continuous),
(ev_view_get_dual_page):
* shell/ev-view.h:
* shell/ev-window.c: (page_changed_cb),
(setup_document_from_metadata), (ev_window_setup_document),
(setup_view_from_metadata), (ev_window_open_uri),
(ev_window_run_fullscreen), (ev_window_stop_fullscreen),
(ev_window_run_presentation), (ev_window_stop_presentation),
(save_sizing_mode), (ev_window_sizing_mode_changed_cb),
(ev_window_zoom_changed_cb), (ev_window_update_continuous_action),
(ev_window_update_dual_page_action),
(ev_window_continuous_changed_cb),
(ev_window_dual_mode_changed_cb), (ev_window_init):
Remember a bunch of view/document properties. Prolly some
are still missing but it's getting interesting.
Diffstat (limited to 'shell/ev-metadata-manager.c')
-rw-r--r-- | shell/ev-metadata-manager.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/shell/ev-metadata-manager.c b/shell/ev-metadata-manager.c index bbf5f76..6e709e3 100644 --- a/shell/ev-metadata-manager.c +++ b/shell/ev-metadata-manager.c @@ -149,6 +149,12 @@ parse_value (xmlChar *value, xmlChar *type) case G_TYPE_INT: g_value_set_int (ret, atoi ((char *)value)); break; + case G_TYPE_DOUBLE: + g_value_set_double (ret, atof ((char *)value)); + break; + case G_TYPE_BOOLEAN: + g_value_set_boolean (ret, atoi ((char *)value)); + break; } return ret; @@ -426,6 +432,12 @@ save_values (const gchar *key, GValue *value, xmlNodePtr parent) case G_TYPE_INT: string_value = g_strdup_printf ("%d", g_value_get_int (value)); break; + case G_TYPE_DOUBLE: + string_value = g_strdup_printf ("%f", g_value_get_double (value)); + break; + case G_TYPE_BOOLEAN: + string_value = g_strdup_printf ("%d", g_value_get_boolean (value)); + break; default: string_value = NULL; g_assert_not_reached (); @@ -549,3 +561,36 @@ ev_metadata_manager_set_int (const gchar *uri, const gchar *key, int value) ev_metadata_manager_set (uri, key, &val); } + +void +ev_metadata_manager_set_double (const gchar *uri, const gchar *key, double value) +{ + GValue val = { 0, }; + + g_value_init (&val, G_TYPE_DOUBLE); + g_value_set_double (&val, value); + + ev_metadata_manager_set (uri, key, &val); +} + +void +ev_metadata_manager_set_string (const gchar *uri, const gchar *key, const gchar *value) +{ + GValue val = { 0, }; + + g_value_init (&val, G_TYPE_STRING); + g_value_set_string (&val, value); + + ev_metadata_manager_set (uri, key, &val); +} + +void +ev_metadata_manager_set_boolean (const gchar *uri, const gchar *key, gboolean value) +{ + GValue val = { 0, }; + + g_value_init (&val, G_TYPE_BOOLEAN); + g_value_set_boolean (&val, value); + + ev_metadata_manager_set (uri, key, &val); +} |