[dia] Bug 640605 - Page margin limits not considering units
- From: Hans Breuer <hans src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] Bug 640605 - Page margin limits not considering units
- Date: Sun, 30 Jan 2011 15:43:44 +0000 (UTC)
commit f539025825eda946e514ffe2d882c7cd6729ab7d
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
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 4eca2f5..142760e 100644
--- a/app/diapagelayout.c
+++ b/app/diapagelayout.c
@@ -705,23 +705,23 @@ paper_size_change(GtkWidget *widget, 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;
@@ -740,23 +740,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 b60b768..bca63ea 100644
--- a/lib/libdia.def
+++ b/lib/libdia.def
@@ -365,6 +365,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 ba25a0b..71b4dd1 100644
--- a/lib/widgets.c
+++ b/lib/widgets.c
@@ -1259,6 +1259,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 2f600a7..68a91cf 100644
--- a/lib/widgets.h
+++ b/lib/widgets.h
@@ -131,6 +131,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);
/* **** Util functions for Gtk stuff **** */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]