[gimp/soc-2011-gimpunitentry: 33/68] libgimpwidgets: port GimpPropWidgets to GimpUnitEntry
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/soc-2011-gimpunitentry: 33/68] libgimpwidgets: port GimpPropWidgets to GimpUnitEntry
- Date: Fri, 13 Sep 2013 19:56:45 +0000 (UTC)
commit 3dd68c1e937f0896c04180ea3478a810f0c8a9c6
Author: Enrico Schröder <enni schroeder gmail com>
Date: Sun Jul 3 20:59:54 2011 +0200
libgimpwidgets: port GimpPropWidgets to GimpUnitEntry
Finished porting of GimpPropWidgets to UnitEntry. The old functions are still there to maintain
compatibility for the classes which have not been ported yet (namely GimpSizeBox).
libgimpwidgets/gimppropwidgets.c | 176 +++++++++++++++++++++++++-------------
libgimpwidgets/gimppropwidgets.h | 11 ++-
libgimpwidgets/gimpwidgets.def | 2 +
3 files changed, 128 insertions(+), 61 deletions(-)
---
diff --git a/libgimpwidgets/gimppropwidgets.c b/libgimpwidgets/gimppropwidgets.c
index 10b5379..8d79e8c 100644
--- a/libgimpwidgets/gimppropwidgets.c
+++ b/libgimpwidgets/gimppropwidgets.c
@@ -2908,6 +2908,48 @@ gimp_prop_coordinates_new (GObject *config,
return entry;
}
+GObject *
+gimp_prop_coordinates_new2 (GObject *config,
+ const gchar *x_property_name,
+ const gchar *y_property_name,
+ const gchar *x_label_str,
+ const gchar *y_label_str,
+ const gchar *unit_property_name,
+ gdouble xresolution,
+ gdouble yresolution,
+ gboolean has_chainbutton)
+{
+ GimpUnitEntryTable *UETable;
+ GtkWidget *chainbutton = NULL;
+
+ UETable = GIMP_UNIT_ENTRY_TABLE (gimp_unit_entry_table_new ());
+
+ gimp_unit_entry_table_add_entry_defaults (UETable, x_property_name, x_label_str);
+ gimp_unit_entry_table_add_entry_defaults (UETable, y_property_name, y_label_str);
+
+ if (has_chainbutton)
+ {
+ chainbutton = gimp_unit_entry_table_add_chainbutton (UETable,
+ x_property_name,
+ y_property_name);
+ }
+
+ if (! gimp_prop_coordinates_connect2 (config,
+ x_property_name,
+ y_property_name,
+ unit_property_name,
+ G_OBJECT (UETable),
+ chainbutton,
+ xresolution,
+ yresolution))
+ {
+ gtk_widget_destroy (UETable->table);
+ return NULL;
+ }
+
+ return G_OBJECT (UETable);
+}
+
gboolean
gimp_prop_coordinates_connect (GObject *config,
const gchar *x_property_name,
@@ -3067,31 +3109,31 @@ gimp_prop_coordinates_connect (GObject *config,
return TRUE;
}
-gboolean gimp_prop_coordinates_connect2 (GObject *config,
+gboolean gimp_prop_coordinates_connect2 (GObject *config,
const gchar *x_property_name,
const gchar *y_property_name,
const gchar *unit_property_name,
- GObject *sizeentry,
+ GObject *unitentrytable,
GtkWidget *chainbutton,
gdouble xresolution,
gdouble yresolution)
{
- GParamSpec *x_param_spec;
- GParamSpec *y_param_spec;
- GParamSpec *unit_param_spec;
- gdouble x_value, x_lower, x_upper;
- gdouble y_value, y_lower, y_upper;
- GimpUnit unit_value;
- gdouble *old_x_value;
- gdouble *old_y_value;
- GimpUnit *old_unit_value;
- gboolean chain_checked;
- GimpUnitEntry *entry1, *entry2;
- GimpUnitEntryTable *entry;
-
- g_return_val_if_fail (GIMP_IS_UNIT_ENTRY_TABLE (sizeentry), FALSE);
- entry = GIMP_UNIT_ENTRY_TABLE (sizeentry);
- g_return_val_if_fail (gimp_unit_entry_table_get_entry_count(entry) == 2, FALSE);
+ GParamSpec *x_param_spec;
+ GParamSpec *y_param_spec;
+ GParamSpec *unit_param_spec;
+ gdouble x_value, x_lower, x_upper;
+ gdouble y_value, y_lower, y_upper;
+ GimpUnit unit_value;
+ gdouble *old_x_value;
+ gdouble *old_y_value;
+ GimpUnit *old_unit_value;
+ gboolean chain_checked;
+ GimpUnitEntry *entry1, *entry2;
+ GimpUnitEntryTable *ue_table;
+
+ g_return_val_if_fail (GIMP_IS_UNIT_ENTRY_TABLE (unitentrytable), FALSE);
+ ue_table = GIMP_UNIT_ENTRY_TABLE (unitentrytable);
+ g_return_val_if_fail (gimp_unit_entry_table_get_entry_count(ue_table) == 2, FALSE);
g_return_val_if_fail (chainbutton == NULL ||
GIMP_IS_CHAIN_BUTTON (chainbutton), FALSE);
@@ -3126,8 +3168,10 @@ gboolean gimp_prop_coordinates_connect2 (GObject *config,
unit_value = GIMP_UNIT_INCH;
}
- entry1 = gimp_unit_entry_table_get_nth_entry (entry, 0);
- entry2 = gimp_unit_entry_table_get_nth_entry (entry, 1);
+ entry1 = gimp_unit_entry_table_get_nth_entry (ue_table, 0);
+ entry2 = gimp_unit_entry_table_get_nth_entry (ue_table, 1);
+ g_return_val_if_fail (GIMP_IS_UNIT_ENTRY (entry1), FALSE);
+ g_return_val_if_fail (GIMP_IS_UNIT_ENTRY (entry2), FALSE);
set_param_spec (NULL,
GTK_WIDGET (entry1),
@@ -3136,7 +3180,7 @@ gboolean gimp_prop_coordinates_connect2 (GObject *config,
GTK_WIDGET (entry2),
y_param_spec);
- gimp_unit_entry_table_set_unit (entry, unit_value);
+ gimp_unit_entry_table_set_unit (ue_table, unit_value);
gimp_unit_entry_set_resolution (entry1, xresolution);
gimp_unit_entry_set_resolution (entry2, yresolution);
@@ -3144,32 +3188,32 @@ gboolean gimp_prop_coordinates_connect2 (GObject *config,
chain_checked = (ABS (x_value - y_value) < 1);
gimp_unit_entry_set_bounds (entry1,
- unit_value,
+ GIMP_UNIT_PIXEL,
x_upper,
x_lower);
gimp_unit_entry_set_bounds (entry2,
- unit_value,
+ GIMP_UNIT_PIXEL,
y_upper,
y_lower);
gimp_unit_entry_set_value_in_unit (entry1, x_value, GIMP_UNIT_PIXEL);
gimp_unit_entry_set_value_in_unit (entry2, y_value, GIMP_UNIT_PIXEL);
- g_object_set_data (G_OBJECT (entry), "gimp-config-param-spec-x",
+ g_object_set_data (G_OBJECT (ue_table), "gimp-config-param-spec-x",
x_param_spec);
- g_object_set_data (G_OBJECT (entry), "gimp-config-param-spec-y",
+ g_object_set_data (G_OBJECT (ue_table), "gimp-config-param-spec-y",
y_param_spec);
old_x_value = g_new0 (gdouble, 1);
*old_x_value = x_value;
- g_object_set_data_full (G_OBJECT (entry), "old-x-value",
+ g_object_set_data_full (G_OBJECT (ue_table), "old-x-value",
old_x_value,
(GDestroyNotify) g_free);
old_y_value = g_new0 (gdouble, 1);
*old_y_value = y_value;
- g_object_set_data_full (G_OBJECT (entry), "old-y-value",
+ g_object_set_data_full (G_OBJECT (ue_table), "old-y-value",
old_y_value,
(GDestroyNotify) g_free);
@@ -3178,38 +3222,38 @@ gboolean gimp_prop_coordinates_connect2 (GObject *config,
if (chain_checked)
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (chainbutton), TRUE);
- g_object_set_data (G_OBJECT (entry), "chainbutton", chainbutton);
+ g_object_set_data (G_OBJECT (ue_table), "chainbutton", chainbutton);
}
- g_signal_connect (entry, "changed",
+ g_signal_connect (ue_table, "changed",
G_CALLBACK (gimp_prop_coordinates_callback2),
config);
connect_notify (config, x_property_name,
G_CALLBACK (gimp_prop_coordinates_notify_x2),
- entry);
+ ue_table);
connect_notify (config, y_property_name,
G_CALLBACK (gimp_prop_coordinates_notify_y2),
- entry);
+ ue_table);
if (unit_property_name)
{
- g_object_set_data (G_OBJECT (entry), "gimp-config-param-spec-unit",
+ g_object_set_data (G_OBJECT (ue_table), "gimp-config-param-spec-unit",
unit_param_spec);
old_unit_value = g_new0 (GimpUnit, 1);
*old_unit_value = unit_value;
- g_object_set_data_full (G_OBJECT (entry), "old-unit-value",
+ g_object_set_data_full (G_OBJECT (ue_table), "old-unit-value",
old_unit_value,
(GDestroyNotify) g_free);
- g_signal_connect (entry1, "changed",
+ g_signal_connect (ue_table, "changed",
G_CALLBACK (gimp_prop_coordinates_callback2),
config);
connect_notify (config, unit_property_name,
G_CALLBACK (gimp_prop_coordinates_notify_unit2),
- entry);
+ ue_table);
}
return TRUE;
@@ -3325,8 +3369,8 @@ gimp_prop_coordinates_callback (GimpSizeEntry *entry,
static void
gimp_prop_coordinates_callback2 (GimpUnitEntryTable *entry,
- GimpUnitEntry *e,
- GObject *config)
+ GimpUnitEntry *e,
+ GObject *config)
{
GParamSpec *x_param_spec;
GParamSpec *y_param_spec;
@@ -3351,7 +3395,7 @@ gimp_prop_coordinates_callback2 (GimpUnitEntryTable *entry,
"gimp-config-param-spec-unit");
entry1 = gimp_unit_entry_table_get_nth_entry (entry, 0);
- entry2 = gimp_unit_entry_table_get_nth_entry (entry, 1);
+ entry2 = gimp_unit_entry_table_get_nth_entry (entry, 1);
x_value = gimp_unit_entry_get_value_in_unit (entry1, GIMP_UNIT_PIXEL);
y_value = gimp_unit_entry_get_value_in_unit (entry2, GIMP_UNIT_PIXEL);
@@ -3560,8 +3604,12 @@ gimp_prop_coordinates_notify_unit2 (GObject *config,
GParamSpec *param_spec,
GimpUnitEntryTable *entryTable)
{
- GimpUnit value;
- GimpUnitEntry *entry = gimp_unit_entry_table_get_nth_entry (entryTable, 0);
+ GimpUnit value;
+ GimpUnitEntry *entry;
+
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY_TABLE (entryTable));
+ entry = gimp_unit_entry_table_get_nth_entry (entryTable, 0);
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY (entry));
g_object_get (config,
param_spec->name, &value,
@@ -3582,12 +3630,16 @@ gimp_prop_coordinates_notify_unit2 (GObject *config,
}
static void
-gimp_prop_coordinates_notify_x2 (GObject *config,
- GParamSpec *param_spec,
- GimpUnitEntryTable *entry)
+gimp_prop_coordinates_notify_x2 (GObject *config,
+ GParamSpec *param_spec,
+ GimpUnitEntryTable *entryTable)
{
- gdouble value;
- GimpUnitEntry *entry1 = gimp_unit_entry_table_get_nth_entry (entry, 0);
+ gdouble value;
+ GimpUnitEntry *entry;
+
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY_TABLE (entryTable));
+ entry = gimp_unit_entry_table_get_nth_entry (entryTable, 0);
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY (entry));
if (G_IS_PARAM_SPEC_INT (param_spec))
{
@@ -3606,33 +3658,37 @@ gimp_prop_coordinates_notify_x2 (GObject *config,
NULL);
}
- if (value != gimp_unit_entry_get_value_in_unit (entry1, GIMP_UNIT_PIXEL))
+ if (value != gimp_unit_entry_get_value_in_unit (entry, GIMP_UNIT_PIXEL))
{
- gdouble *old_x_value = g_object_get_data (G_OBJECT (entry),
+ gdouble *old_x_value = g_object_get_data (G_OBJECT (entryTable),
"old-x-value");
- g_signal_handlers_block_by_func (entry,
+ g_signal_handlers_block_by_func (entryTable,
gimp_prop_coordinates_callback2,
config);
- gimp_unit_entry_set_value_in_unit (entry1, value, GIMP_UNIT_PIXEL);
+ gimp_unit_entry_set_value_in_unit (entry, value, GIMP_UNIT_PIXEL);
if (old_x_value)
*old_x_value = value;
- g_signal_handlers_unblock_by_func (entry,
+ g_signal_handlers_unblock_by_func (entryTable,
gimp_prop_coordinates_callback2,
config);
}
}
static void
-gimp_prop_coordinates_notify_y2 (GObject *config,
- GParamSpec *param_spec,
- GimpUnitEntryTable *entry)
+gimp_prop_coordinates_notify_y2 (GObject *config,
+ GParamSpec *param_spec,
+ GimpUnitEntryTable *entryTable)
{
- gdouble value;
- GimpUnitEntry *entry1 = gimp_unit_entry_table_get_nth_entry (entry, 1);
+ gdouble value;
+ GimpUnitEntry *entry;
+
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY_TABLE (entryTable));
+ entry = gimp_unit_entry_table_get_nth_entry (entryTable, 1);
+ g_return_if_fail (GIMP_IS_UNIT_ENTRY (entry));
if (G_IS_PARAM_SPEC_INT (param_spec))
{
@@ -3651,21 +3707,21 @@ gimp_prop_coordinates_notify_y2 (GObject *config,
NULL);
}
- if (value != gimp_unit_entry_get_value_in_unit (entry1, GIMP_UNIT_PIXEL))
+ if (value != gimp_unit_entry_get_value_in_unit (entry, GIMP_UNIT_PIXEL))
{
- gdouble *old_y_value = g_object_get_data (G_OBJECT (entry),
+ gdouble *old_y_value = g_object_get_data (G_OBJECT (entryTable),
"old-y-value");
- g_signal_handlers_block_by_func (entry,
+ g_signal_handlers_block_by_func (entryTable,
gimp_prop_coordinates_callback2,
config);
- gimp_unit_entry_set_value_in_unit (entry1, value, GIMP_UNIT_PIXEL);
+ gimp_unit_entry_set_value_in_unit (entry, value, GIMP_UNIT_PIXEL);
if (old_y_value)
*old_y_value = value;
- g_signal_handlers_unblock_by_func (entry,
+ g_signal_handlers_unblock_by_func (entryTable,
gimp_prop_coordinates_callback2,
config);
}
diff --git a/libgimpwidgets/gimppropwidgets.h b/libgimpwidgets/gimppropwidgets.h
index ceaa939..5046e25 100644
--- a/libgimpwidgets/gimppropwidgets.h
+++ b/libgimpwidgets/gimppropwidgets.h
@@ -177,7 +177,7 @@ GtkWidget * gimp_prop_size_entry_new (GObject *config,
/* x,y: GParamInt, GParamDouble unit: GimpParamUnit */
-GtkWidget * gimp_prop_coordinates_new (GObject *config,
+GtkWidget * gimp_prop_coordinates_new (GObject *config,
const gchar *x_property_name,
const gchar *y_property_name,
const gchar *unit_property_name,
@@ -186,6 +186,15 @@ GtkWidget * gimp_prop_coordinates_new (GObject *config,
gdouble xresolution,
gdouble yresolution,
gboolean has_chainbutton);
+GObject * gimp_prop_coordinates_new2 (GObject *config,
+ const gchar *x_property_name,
+ const gchar *y_property_name,
+ const gchar *x_label_str,
+ const gchar *y_label_str,
+ const gchar *unit_property_name,
+ gdouble xresolution,
+ gdouble yresolution,
+ gboolean has_chainbutton);
gboolean gimp_prop_coordinates_connect (GObject *config,
const gchar *x_property_name,
const gchar *y_property_name,
diff --git a/libgimpwidgets/gimpwidgets.def b/libgimpwidgets/gimpwidgets.def
index 779d242..4ff6d2f 100644
--- a/libgimpwidgets/gimpwidgets.def
+++ b/libgimpwidgets/gimpwidgets.def
@@ -272,7 +272,9 @@ EXPORTS
gimp_prop_check_button_new
gimp_prop_color_area_new
gimp_prop_coordinates_connect
+ gimp_prop_coordinates_connect2
gimp_prop_coordinates_new
+ gimp_prop_coordinates_new2
gimp_prop_entry_new
gimp_prop_enum_check_button_new
gimp_prop_enum_combo_box_new
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]