[dia/dia-0-97] Bug 640605 - Page margin limits not considering units
- From: Hans Breuer <hans src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia/dia-0-97] Bug 640605 - Page margin limits not considering units
- Date: Fri, 16 Sep 2011 16:38:00 +0000 (UTC)
commit a944b70b0b880dab1071bbfaca3ab48b7778245b
Author: Hans Breuer <hans breuer org>
Date: Fri Jan 28 17:26:48 2011 +0100
Bug 640605 - Page margin limits not considering units
With "Preferences/Length unit" set to something else than Centimeter
the limit adjustment of margin edit controls was bogus. With a small
helper function
(cherry picked from commit f539025825eda946e514ffe2d882c7cd6729ab7d)
app/diapagelayout.c | 64 +++++++++++++++++++++++++-------------------------
lib/libdia.def | 1 +
lib/widgets.c | 11 ++++++++
lib/widgets.h | 2 +
4 files changed, 46 insertions(+), 32 deletions(-)
---
diff --git a/app/diapagelayout.c b/app/diapagelayout.c
index fe06e90..a00679b 100644
--- a/app/diapagelayout.c
+++ b/app/diapagelayout.c
@@ -718,23 +718,23 @@ paper_size_change(GtkMenuItem *item, DiaPageLayout *self)
get_paper_rmargin(self->papernum));
if (GTK_TOGGLE_BUTTON(self->orient_portrait)->active) {
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->tmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->bmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->lmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->rmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->tmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->bmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->lmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->rmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
} else {
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->tmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->bmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->lmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->rmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->tmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->bmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->lmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->rmargin),
+ max_margin(get_paper_psheight(self->papernum)));
}
self->block_changed = FALSE;
@@ -753,23 +753,23 @@ orient_changed(DiaPageLayout *self)
gtk_widget_queue_draw(self->darea);
if (GTK_TOGGLE_BUTTON(self->orient_portrait)->active) {
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->tmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->bmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->lmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->rmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->tmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->bmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->lmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->rmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
} else {
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->tmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->bmargin))->upper =
- max_margin(get_paper_pswidth(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->lmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
- gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self->rmargin))->upper =
- max_margin(get_paper_psheight(self->papernum));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->tmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->bmargin),
+ max_margin(get_paper_pswidth(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->lmargin),
+ max_margin(get_paper_psheight(self->papernum)));
+ dia_unit_spinner_set_upper (DIA_UNIT_SPINNER(self->rmargin),
+ max_margin(get_paper_psheight(self->papernum)));
}
if (!self->block_changed)
diff --git a/lib/libdia.def b/lib/libdia.def
index 3776a9d..977bf7f 100644
--- a/lib/libdia.def
+++ b/lib/libdia.def
@@ -348,6 +348,7 @@ EXPORTS
dia_unit_spinner_get_value
dia_unit_spinner_new
dia_unit_spinner_set_value
+ dia_unit_spinner_set_upper
; dia_svg_parse_style
diff --git a/lib/widgets.c b/lib/widgets.c
index 9b4f84a..ec47483 100644
--- a/lib/widgets.c
+++ b/lib/widgets.c
@@ -1722,6 +1722,17 @@ dia_unit_spinner_get_value(DiaUnitSpinner *self)
(units[self->unit_num].factor / units[DIA_UNIT_CENTIMETER].factor);
}
+/* Must manipulate the limit values through this to also consider unit.
+ * Given value is in centimeter.
+ */
+void
+dia_unit_spinner_set_upper (DiaUnitSpinner *self, gdouble val)
+{
+ val /= (units[self->unit_num].factor / units[DIA_UNIT_CENTIMETER].factor);
+
+ gtk_adjustment_set_upper (
+ gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(self)), val);
+}
GList *
get_units_name_list(void)
{
diff --git a/lib/widgets.h b/lib/widgets.h
index 0934ba8..4b9ccb4 100644
--- a/lib/widgets.h
+++ b/lib/widgets.h
@@ -165,6 +165,8 @@ GtkWidget *dia_unit_spinner_new (GtkAdjustment *adjustment,
DiaUnit adj_unit);
void dia_unit_spinner_set_value (DiaUnitSpinner *self, gdouble val);
gdouble dia_unit_spinner_get_value (DiaUnitSpinner *self);
+void dia_unit_spinner_set_upper (DiaUnitSpinner *self, gdouble val);
+
GList * get_units_name_list(void);
/* DiaDynamicMenu */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]