Commit c36f762f authored by Michael Natterer's avatar Michael Natterer 😴

libgimpwidgets: deprecate GimpUnitMenu and gimp_prop_unit_menu_new()

Add gimp_prop_unit_combo_box_new() and adapt all places using the
prop_unit_menu. Some things are broken now, like there are no pixel
digits set, resolution unit menus show "pixels" and warn badly when
pixels is selected, and file-pdf-load is not built right now.
More fixes to come...
parent 74458f46
......@@ -224,13 +224,16 @@ fade_options_gui (GimpPaintOptions *paint_options,
spinbutton, 1, FALSE);
/* the fade-out unitmenu */
menu = gimp_prop_unit_menu_new (config, "fade-unit", "%a");
menu = gimp_prop_unit_combo_box_new (config, "fade-unit");
gtk_table_attach (GTK_TABLE (table), menu, 2, 3, 0, 1,
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
gtk_widget_show (menu);
#if 0
/* FIXME pixel digits */
g_object_set_data (G_OBJECT (menu), "set_digits", spinbutton);
gimp_unit_menu_set_pixel_digits (GIMP_UNIT_MENU (menu), 0);
#endif
/* the repeat type */
combo = gimp_prop_enum_combo_box_new (config, "fade-repeat", 0, 0);
......
......@@ -757,7 +757,7 @@ gimp_rectangle_options_prop_dimension_frame_new (GObject *config,
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);
menu = gimp_prop_unit_menu_new (config, unit_property_name, "%a");
menu = gimp_prop_unit_combo_box_new (config, unit_property_name);
gtk_box_pack_end (GTK_BOX (hbox), menu, FALSE, FALSE, 0);
gtk_widget_show (menu);
......
......@@ -26,6 +26,13 @@
#include "libgimpbase/gimpbase.h"
#include "libgimpconfig/gimpconfig.h"
#include "gimpwidgetstypes.h"
#undef GIMP_DISABLE_DEPRECATED
#include "gimppropwidgets.h"
#include "gimpunitmenu.h"
#define GIMP_DISABLE_DEPRECATED
#include "gimpwidgets.h"
#include "libgimp/libgimp-intl.h"
......@@ -3373,6 +3380,127 @@ gimp_prop_color_area_notify (GObject *config,
}
/********************/
/* unit combo box */
/********************/
static void gimp_prop_unit_combo_box_callback (GtkWidget *combo,
GObject *config);
static void gimp_prop_unit_combo_box_notify (GObject *config,
GParamSpec *param_spec,
GtkWidget *combo);
/**
* gimp_prop_unit_combo_box_new:
* @config: Object to which property is attached.
* @property_name: Name of Unit property.
*
* Creates a #GimpUnitComboBox to set and display the value of a Unit
* property. See gimp_unit_combo_box_new() for more information.
*
* Return value: A new #GimpUnitComboBox widget.
*
* Since GIMP 2.8
*/
GtkWidget *
gimp_prop_unit_combo_box_new (GObject *config,
const gchar *property_name)
{
GParamSpec *param_spec;
GtkWidget *combo;
GimpUnit unit;
GValue value = { 0, };
gboolean show_pixels;
gboolean show_percent;
param_spec = check_param_spec_w (config, property_name,
GIMP_TYPE_PARAM_UNIT, G_STRFUNC);
if (! param_spec)
return NULL;
g_value_init (&value, param_spec->value_type);
g_value_set_int (&value, GIMP_UNIT_PIXEL);
show_pixels = (g_param_value_validate (param_spec, &value) == FALSE);
g_value_set_int (&value, GIMP_UNIT_PERCENT);
show_percent = (g_param_value_validate (param_spec, &value) == FALSE);
g_value_unset (&value);
g_object_get (config,
property_name, &unit,
NULL);
/* FIXME implement show_pixels and show_percent */
combo = gimp_unit_combo_box_new ();
set_param_spec (G_OBJECT (combo), combo, param_spec);
g_signal_connect (combo, "changed",
G_CALLBACK (gimp_prop_unit_combo_box_callback),
config);
connect_notify (config, property_name,
G_CALLBACK (gimp_prop_unit_combo_box_notify),
combo);
return combo;
}
static void
gimp_prop_unit_combo_box_callback (GtkWidget *combo,
GObject *config)
{
GParamSpec *param_spec;
GimpUnit unit;
param_spec = get_param_spec (G_OBJECT (combo));
if (! param_spec)
return;
unit = gimp_unit_combo_box_get_active (GIMP_UNIT_COMBO_BOX (combo));
/* FIXME gimp_unit_menu_update (menu, &unit); */
g_signal_handlers_block_by_func (config,
gimp_prop_unit_combo_box_notify,
combo);
g_object_set (config,
param_spec->name, unit,
NULL);
g_signal_handlers_unblock_by_func (config,
gimp_prop_unit_combo_box_notify,
combo);
}
static void
gimp_prop_unit_combo_box_notify (GObject *config,
GParamSpec *param_spec,
GtkWidget *combo)
{
GimpUnit unit;
g_object_get (config,
param_spec->name, &unit,
NULL);
g_signal_handlers_block_by_func (combo,
gimp_prop_unit_combo_box_callback,
config);
gimp_unit_combo_box_set_active (GIMP_UNIT_COMBO_BOX (combo), unit);
/* FIXME gimp_unit_menu_update (menu, &unit); */
g_signal_handlers_unblock_by_func (combo,
gimp_prop_unit_combo_box_callback,
config);
}
/***************/
/* unit menu */
/***************/
......
......@@ -202,9 +202,13 @@ GtkWidget * gimp_prop_color_area_new (GObject *config,
/* GimpParamUnit */
GtkWidget * gimp_prop_unit_combo_box_new (GObject *config,
const gchar *property_name);
#ifndef GIMP_DISABLE_DEPRECATED
GtkWidget * gimp_prop_unit_menu_new (GObject *config,
const gchar *property_name,
const gchar *unit_format);
#endif /* GIMP_DISABLE_DEPRECATED */
/* GParamString (stock_id) */
......
......@@ -40,7 +40,7 @@
* SECTION: gimpsizeentry
* @title: GimpSizeEntry
* @short_description: Widget for entering pixel values and resolutions.
* @see_also: #GimpUnit, #GimpUnitMenu, gimp_coordinates_new()
* @see_also: #GimpUnit, #GimpUnitComboBox, gimp_coordinates_new()
*
* This widget is used to enter pixel distances/sizes and resolutions.
*
......@@ -48,13 +48,13 @@
* each field automatic mappings are performed between the field's
* "reference value" and its "value".
*
* There is a #GimpUnitMenu right of the entry fields which lets you
* specify the #GimpUnit of the displayed values.
* There is a #GimpUnitComboBox right of the entry fields which lets
* you specify the #GimpUnit of the displayed values.
*
* For each field, there can be one or two #GtkSpinButton's to enter
* "value" and "reference value". If you specify @show_refval as
* #FALSE in gimp_size_entry_new() there will be only one
* #GtkSpinButton and the #GimpUnitMenu will contain an item for
* #GtkSpinButton and the #GimpUnitComboBox will contain an item for
* selecting GIMP_UNIT_PIXEL.
*
* The "reference value" is either of GIMP_UNIT_PIXEL or dpi,
......@@ -246,7 +246,7 @@ gimp_size_entry_finalize (GObject *object)
*
* The #GimpSizeEntry is derived from #GtkTable and will have
* an empty border of one cell width on each side plus an empty column left
* of the #GimpUnitMenu to allow the caller to add labels or a
* of the #GimpUnitComboBox to allow the caller to add labels or a
* #GimpChainButton.
*
* Returns: A Pointer to the new #GimpSizeEntry widget.
......@@ -262,6 +262,7 @@ gimp_size_entry_new (gint number_of_fields,
GimpSizeEntryUpdatePolicy update_policy)
{
GimpSizeEntry *gse;
GimpUnitStore *store;
gint i;
g_return_val_if_fail ((number_of_fields >= 0) && (number_of_fields <= 16),
......@@ -376,14 +377,17 @@ gimp_size_entry_new (gint number_of_fields,
gsef->refval_digits);
}
gse->unitmenu = gimp_unit_menu_new (unit_format, unit,
gse->menu_show_pixels,
gse->menu_show_percent, TRUE);
store = gimp_unit_store_new (gse->number_of_fields);
gse->unitmenu = gimp_unit_combo_box_new_with_model (store);
g_object_unref (store);
gimp_unit_combo_box_set_active (GIMP_UNIT_COMBO_BOX (gse->unitmenu), unit);
gtk_table_attach (GTK_TABLE (gse), gse->unitmenu,
i+2, i+3,
gse->show_refval+1, gse->show_refval+2,
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);
g_signal_connect (gse->unitmenu, "unit-changed",
g_signal_connect (gse->unitmenu, "changed",
G_CALLBACK (gimp_size_entry_unit_callback),
gse);
gtk_widget_show (gse->unitmenu);
......@@ -595,7 +599,7 @@ gimp_size_entry_set_resolution (GimpSizeEntry *gse,
*
* These values will be used if you specified @menu_show_percent as %TRUE
* in gimp_size_entry_new() and the user has selected GIMP_UNIT_PERCENT in
* the #GimpSizeEntry's #GimpUnitMenu.
* the #GimpSizeEntry's #GimpUnitComboBox.
*
* This function does nothing if the #GimpSizeEntryUpdatePolicy specified in
* gimp_size_entry_new() doesn't equal to GIMP_SIZE_ENTRY_UPDATE_SIZE.
......@@ -721,7 +725,7 @@ gimp_size_entry_set_value_boundaries (GimpSizeEntry *gse,
*
* The @value returned is a distance or resolution
* in the #GimpUnit the user has selected in the #GimpSizeEntry's
* #GimpUnitMenu.
* #GimpUnitComboBox.
*
* NOTE: In most cases you won't be interested in this value because the
* #GimpSizeEntry's purpose is to shield the programmer from unit
......@@ -805,7 +809,7 @@ gimp_size_entry_update_value (GimpSizeEntryField *gsef,
*
* The @value passed is treated to be a distance or resolution
* in the #GimpUnit the user has selected in the #GimpSizeEntry's
* #GimpUnitMenu.
* #GimpUnitComboBox.
*
* NOTE: In most cases you won't be interested in this value because the
* #GimpSizeEntry's purpose is to shield the programmer from unit
......@@ -1107,7 +1111,7 @@ gimp_size_entry_refval_callback (GtkWidget *widget,
* @gse: The sizeentry you want to know the unit of.
*
* Returns the #GimpUnit the user has selected in the #GimpSizeEntry's
* #GimpUnitMenu.
* #GimpUnitComboBox.
*
* Returns: The sizeentry's unit.
**/
......@@ -1129,7 +1133,8 @@ gimp_size_entry_update_unit (GimpSizeEntry *gse,
gse->unit = unit;
digits = gimp_unit_menu_get_pixel_digits (GIMP_UNIT_MENU (gse->unitmenu));
digits = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (gse),
"gimp-pixel-digits"));
for (i = 0; i < gse->number_of_fields; i++)
{
......@@ -1184,7 +1189,7 @@ gimp_size_entry_set_unit (GimpSizeEntry *gse,
g_return_if_fail (gse->menu_show_pixels || (unit != GIMP_UNIT_PIXEL));
g_return_if_fail (gse->menu_show_percent || (unit != GIMP_UNIT_PERCENT));
gimp_unit_menu_set_unit (GIMP_UNIT_MENU (gse->unitmenu), unit);
gimp_unit_combo_box_set_active (GIMP_UNIT_COMBO_BOX (gse->unitmenu), unit);
gimp_size_entry_update_unit (gse, unit);
}
......@@ -1194,7 +1199,7 @@ gimp_size_entry_unit_callback (GtkWidget *widget,
{
GimpUnit new_unit;
new_unit = gimp_unit_menu_get_unit (GIMP_UNIT_MENU (widget));
new_unit = gimp_unit_combo_box_get_active (GIMP_UNIT_COMBO_BOX (widget));
if (gse->unit != new_unit)
gimp_size_entry_update_unit (gse, new_unit);
......@@ -1392,21 +1397,22 @@ gimp_size_entry_show_unit_menu (GimpSizeEntry *gse,
* @gse: a #GimpSizeEntry
* @digits: the number of digits to display for a pixel size
*
* Similar to gimp_unit_menu_set_pixel_digits(), this function allows
* you set up a #GimpSizeEntry so that sub-pixel sizes can be entered.
* This function allows you set up a #GimpSizeEntry so that sub-pixel
* sizes can be entered.
**/
void
gimp_size_entry_set_pixel_digits (GimpSizeEntry *gse,
gint digits)
{
GimpUnitMenu *menu;
GimpUnitComboBox *combo;
g_return_if_fail (GIMP_IS_SIZE_ENTRY (gse));
menu = GIMP_UNIT_MENU (gse->unitmenu);
combo = GIMP_UNIT_COMBO_BOX (gse->unitmenu);
gimp_unit_menu_set_pixel_digits (menu, digits);
gimp_size_entry_update_unit (gse, gimp_unit_menu_get_unit (menu));
g_object_set_data (G_OBJECT (gse), "gimp-pixel-digits",
GINT_TO_POINTER (digits));
gimp_size_entry_update_unit (gse, gimp_unit_combo_box_get_active (combo));
}
......
......@@ -31,9 +31,11 @@
#include "gimpdialog.h"
#include "gimphelpui.h"
#include "gimpunitmenu.h"
#include "gimpwidgets.h"
#undef GIMP_DISABLE_DEPRECATED
#include "gimpunitmenu.h"
#include "libgimp/libgimp-intl.h"
......
......@@ -19,6 +19,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef GIMP_DISABLE_DEPRECATED
#ifndef __GIMP_UNIT_MENU_H__
#define __GIMP_UNIT_MENU_H__
......@@ -95,3 +97,5 @@ gint gimp_unit_menu_get_pixel_digits (GimpUnitMenu *menu);
G_END_DECLS
#endif /* __GIMP_UNIT_MENU_H__ */
#endif /* GIMP_DISABLE_DEPRECATED */
......@@ -130,8 +130,6 @@
/file-pat.exe
/file-pcx
/file-pcx.exe
/file-pdf-load
/file-pdf-load.exe
/file-pdf-save
/file-pdf-save.exe
/file-pix
......
......@@ -107,7 +107,6 @@ libexec_PROGRAMS = \
$(FILE_MNG) \
file-pat \
file-pcx \
$(FILE_PDF_LOAD) \
$(FILE_PDF_SAVE) \
file-pix \
$(FILE_PNG) \
......@@ -193,7 +192,6 @@ EXTRA_PROGRAMS = \
file-aa \
file-jp2-load \
file-mng \
file-pdf-load \
file-pdf-save \
file-png \
file-psp \
......@@ -1272,26 +1270,6 @@ file_pcx_LDADD = \
$(INTLLIBS) \
$(file_pcx_RC)
file_pdf_load_CFLAGS = $(POPPLER_CFLAGS)
file_pdf_load_SOURCES = \
file-pdf-load.c
file_pdf_load_LDADD = \
$(libgimpui) \
$(libgimpwidgets) \
$(libgimpmodule) \
$(libgimp) \
$(libgimpmath) \
$(libgimpconfig) \
$(libgimpcolor) \
$(libgimpbase) \
$(GTK_LIBS) \
$(POPPLER_LIBS) \
$(RT_LIBS) \
$(INTLLIBS) \
$(file_pdf_load_RC)
file_pdf_save_CFLAGS = $(CAIRO_PDF_CFLAGS)
file_pdf_save_SOURCES = \
......
......@@ -62,7 +62,6 @@ file_jp2_load_RC = file-jp2-load.rc.o
file_mng_RC = file-mng.rc.o
file_pat_RC = file-pat.rc.o
file_pcx_RC = file-pcx.rc.o
file_pdf_load_RC = file-pdf-load.rc.o
file_pdf_save_RC = file-pdf-save.rc.o
file_pix_RC = file-pix.rc.o
file_png_RC = file-png.rc.o
......
......@@ -66,7 +66,7 @@
'file-pix' => { ui => 1 },
'file-png' => { ui => 1, optional => 1, libs => 'PNG_LIBS', cflags => 'PNG_CFLAGS' },
'file-pnm' => { ui => 1 },
'file-pdf-load' => { ui => 1, optional => 1, libs => 'POPPLER_LIBS', cflags => 'POPPLER_CFLAGS' },
# 'file-pdf-load' => { ui => 1, optional => 1, libs => 'POPPLER_LIBS', cflags => 'POPPLER_CFLAGS' },
'file-pdf-save' => { ui => 1, optional => 1, libs => 'CAIRO_PDF_LIBS', cflags => 'CAIRO_PDF_CFLAGS' },
'file-ps' => { ui => 1 },
'file-psp' => { ui => 1, optional => 1, libs => 'Z_LIBS' },
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment