[gnumeric] WorkbookView: add piles of properties.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnumeric] WorkbookView: add piles of properties.
- Date: Mon, 18 May 2009 09:54:13 -0400 (EDT)
commit 693b6d05d1b531cd7b42baa4cdfcd3a56b51743a
Author: Morten Welinder <terra gnome org>
Date: Mon May 18 09:53:40 2009 -0400
WorkbookView: add piles of properties.
---
ChangeLog | 12 +++++
NEWS | 1 +
src/workbook-view.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++----
3 files changed, 139 insertions(+), 11 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 600ca28..fcb8c43 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2009-05-18 Morten Welinder <terra gnome org>
+
+ * src/workbook-view.c (workbook_view_class_init, wb_view_set_property,
+ wb_view_get_property): Add new properties:
+ PROP_SHOW_HORIZONTAL_SCROLLBAR, PROP_SHOW_VERTICAL_SCROLLBAR,
+ PROP_SHOW_NOTEBOOK_TABS, PROP_DO_AUTO_COMPLETION, PROP_PROTECTED,
+ PROP_PREFERRED_WIDTH, PROP_PREFERRED_HEIGHT.
+ (wb_view_preferred_size): Use the new properties thus taking care
+ of any notification needed.
+ (wb_view_set_attribute): Ditto, although this function should die
+ soon.
+
2009-05-17 Morten Welinder <terra gnome org>
* src/graph.c (gnm_go_data_eq): Compare convs too.
diff --git a/NEWS b/NEWS
index 9a20420..f5e9079 100644
--- a/NEWS
+++ b/NEWS
@@ -31,6 +31,7 @@ Morten:
* Make it possible to have horizontal widgets too. [#166487]
* Fix sheet-object paste crash. [#490479]
* Fix critical in format dialog. [#582890]
+ * Turn WorkbookView into a more proper GObject.
Paul Fitzpatrick:
* Extend ssconvert to also merge multiple sheets. [#581616]
diff --git a/src/workbook-view.c b/src/workbook-view.c
index 6819a96..7fd67ba 100644
--- a/src/workbook-view.c
+++ b/src/workbook-view.c
@@ -78,7 +78,14 @@ enum {
PROP_AUTO_EXPR_FUNC,
PROP_AUTO_EXPR_DESCR,
PROP_AUTO_EXPR_MAX_PRECISION,
- PROP_AUTO_EXPR_TEXT
+ PROP_AUTO_EXPR_TEXT,
+ PROP_SHOW_HORIZONTAL_SCROLLBAR,
+ PROP_SHOW_VERTICAL_SCROLLBAR,
+ PROP_SHOW_NOTEBOOK_TABS,
+ PROP_DO_AUTO_COMPLETION,
+ PROP_PROTECTED,
+ PROP_PREFERRED_WIDTH,
+ PROP_PREFERRED_HEIGHT
};
/* WorkbookView signals */
@@ -198,26 +205,28 @@ wb_view_is_protected (WorkbookView *wbv, gboolean check_sheet)
}
void
-wb_view_set_attribute (WorkbookView *wbv, char const *name,
- char const *value)
+wb_view_set_attribute (WorkbookView *wbv, char const *name, char const *value)
{
gboolean res;
+ GObject *obj;
g_return_if_fail (IS_WORKBOOK_VIEW (wbv));
g_return_if_fail (name != NULL);
g_return_if_fail (value != NULL);
+ obj = G_OBJECT (wbv);
res = !g_ascii_strcasecmp (value, "TRUE");
+
if (!strcmp (name , "WorkbookView::show_horizontal_scrollbar"))
- wbv->show_horizontal_scrollbar = res;
+ g_object_set (obj, "show_horizontal_scrollbar", res, NULL);
else if (!strcmp (name , "WorkbookView::show_vertical_scrollbar"))
- wbv->show_vertical_scrollbar = res;
+ g_object_set (obj, "show_vertical_scrollbar", res, NULL);
else if (!strcmp (name , "WorkbookView::show_notebook_tabs"))
- wbv->show_notebook_tabs = res;
+ g_object_set (obj, "show_notebook_tabs", res, NULL);
else if (!strcmp (name , "WorkbookView::do_auto_completion"))
- wbv->do_auto_completion = res;
+ g_object_set (obj, "do_auto_completion", res, NULL);
else if (!strcmp (name , "WorkbookView::is_protected"))
- wbv->is_protected = res;
+ g_object_set (obj, "protected", res, NULL);
else
g_warning ("WorkbookView unknown arg '%s'", name);
}
@@ -227,9 +236,10 @@ wb_view_preferred_size (WorkbookView *wbv, int w, int h)
{
g_return_if_fail (IS_WORKBOOK_VIEW (wbv));
- /* FIXME : should we notify the controls ? */
- wbv->preferred_width = w;
- wbv->preferred_height = h;
+ g_object_set (G_OBJECT (wbv),
+ "preferred-width", w,
+ "preferred-height", h,
+ NULL);
}
void
@@ -635,6 +645,27 @@ wb_view_set_property (GObject *object, guint property_id,
case PROP_AUTO_EXPR_TEXT:
wb_view_auto_expr_text (wbv, g_value_get_string (value));
break;
+ case PROP_SHOW_HORIZONTAL_SCROLLBAR:
+ wbv->show_horizontal_scrollbar = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_VERTICAL_SCROLLBAR:
+ wbv->show_vertical_scrollbar = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_NOTEBOOK_TABS:
+ wbv->show_notebook_tabs = g_value_get_boolean (value);
+ break;
+ case PROP_DO_AUTO_COMPLETION:
+ wbv->do_auto_completion = g_value_get_boolean (value);
+ break;
+ case PROP_PROTECTED:
+ wbv->is_protected = g_value_get_boolean (value);
+ break;
+ case PROP_PREFERRED_WIDTH:
+ wbv->preferred_width = g_value_get_int (value);
+ break;
+ case PROP_PREFERRED_HEIGHT:
+ wbv->preferred_height = g_value_get_int (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -660,6 +691,27 @@ wb_view_get_property (GObject *object, guint property_id,
case PROP_AUTO_EXPR_TEXT:
g_value_set_string (value, wbv->auto_expr_text);
break;
+ case PROP_SHOW_HORIZONTAL_SCROLLBAR:
+ g_value_set_boolean (value, wbv->show_horizontal_scrollbar);
+ break;
+ case PROP_SHOW_VERTICAL_SCROLLBAR:
+ g_value_set_boolean (value, wbv->show_vertical_scrollbar);
+ break;
+ case PROP_SHOW_NOTEBOOK_TABS:
+ g_value_set_boolean (value, wbv->show_notebook_tabs);
+ break;
+ case PROP_DO_AUTO_COMPLETION:
+ g_value_set_boolean (value, wbv->do_auto_completion);
+ break;
+ case PROP_PROTECTED:
+ g_value_set_boolean (value, wbv->is_protected);
+ break;
+ case PROP_PREFERRED_WIDTH:
+ g_value_set_int (value, wbv->preferred_width);
+ break;
+ case PROP_PREFERRED_HEIGHT:
+ g_value_set_int (value, wbv->preferred_height);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -774,6 +826,69 @@ workbook_view_class_init (GObjectClass *gobject_class)
NULL,
GSF_PARAM_STATIC |
G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SHOW_HORIZONTAL_SCROLLBAR,
+ g_param_spec_boolean ("show-horizontal-scrollbar",
+ _("Show horizontal scrollbar"),
+ _("Show the horizontal scrollbar"),
+ TRUE,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SHOW_VERTICAL_SCROLLBAR,
+ g_param_spec_boolean ("show-vertical-scrollbar",
+ _("Show vertical scrollbar"),
+ _("Show the vertical scrollbar"),
+ TRUE,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SHOW_NOTEBOOK_TABS,
+ g_param_spec_boolean ("show-notebook-tabs",
+ _("Show notebook tabs"),
+ _("Show the notebook tabs for sheets"),
+ TRUE,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_DO_AUTO_COMPLETION,
+ g_param_spec_boolean ("do-auto-completion",
+ _("Do auto completion"),
+ _("Auto-complete text"),
+ gnm_app_use_auto_complete (),
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PROTECTED,
+ g_param_spec_boolean ("protected",
+ _("Protected"),
+ _("Is view protected?"),
+ FALSE,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PREFERRED_WIDTH,
+ g_param_spec_int ("preferred-width",
+ _("Preferred width"),
+ _("Preferred width"),
+ 1, G_MAXINT, 1024,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PREFERRED_HEIGHT,
+ g_param_spec_int ("preferred-height",
+ _("Preferred height"),
+ _("Preferred height"),
+ 1, G_MAXINT, 768,
+ GSF_PARAM_STATIC |
+ G_PARAM_READWRITE));
parent_class = g_type_class_peek_parent (gobject_class);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]