... as I would like it to.
Use GimpSpinButton, added in the previous commit, in GimpSizeEntry,
instead of GtkSpinButton. This avoids updating the spin-buttons'
adjustment values when they lose focus, truncating the value if it
can't be accurately displayed using the corresponding spin-button's
digit count. Since size-entries can have multiple spin-buttons
using different units, this prevents the value from changing when
entring a value using one unit, and then shifting the focus to, but
not changing, another unit.
... and G_TYPE_INSTANCE_GET_PRIVATE()
g_type_class_add_private() and G_TYPE_INSTANCE_GET_PRIVATE() were
deprecated in GLib 2.58. Instead, use
G_DEFINE_[ABSTRACT_]TYPE_WITH_PRIVATE(), and
G_ADD_PRIVATE[_DYNAMIC](), and the implictly-defined
foo_get_instance_private() functions, all of which are available in
the GLib versions we depend on.
This commit only covers types registered using one of the
G_DEFINE_FOO() macros (i.e., most types), but not types with a
custom registration function, of which we still have a few -- GLib
currently only provides a (non-deprecated) public API for adding a
private struct using the G_DEFINE_FOO() macros.
Note that this commit was 99% auto-generated (because I'm not
*that* crazy :), so if there are any style mismatches... we'll have
to live with them for now.
When a size entry has exactly two fields, enable ratio expressions
in eevl. Set the reference value to the value of the field that is
not currently being evaluated, and invert the ratio when evaluating
the second field.
Pass the evaluation options to gimp_eevl_evaluate() using a single
parameter of type GimpEevlOptions, instead of using individual
parameters for each option. Add a GIMP_EEVL_OPTIONS_INIT macro,
used to initialize a GimpEevlOptions struct to the default set of
options. This would allow us to add evaluation options more
easily.
Rather than just discovering them by chance, a simple grep and some
search and replace are much more efficient! :-)
Cleaning only done on C and automake files.
because it confuses gtk-doc and breaks some links. Also change the
"Index of new symbols in GIMP 2.x" sections to be what seems to be the
modern standard (looked at the GLib and GTK+ docs), and update some
other stuff.
gimp_size_entry_eevl_input_callback(): CLAMP() the input value before
passing it back to GtkSpinButton, or it will revert too large/small
inputs back to the old value, instead of using the field's max/min
values.
Use the user-provided format string as long-format and try to create a
short-format by replacing "%s" and "%p" by "%a" for the popup. Works
nicely for all cases I've seen so far.
to allow having unit combos without "pixels". Adapt GimpUnitComboBox
to not assume that the unit is equal to the index in the store and
enable "menu_has_pixels" in GimpSizeEntry again.
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...
In places where the pattern
if (show)
gtk_widget_show (widget);
else
gtk_widget_hide (widget);
is used, change to
gtk_widget_set_visible (widget, show);
Also do some other minor cleanups.
Add a simple parser to the GimpSizeEntry widget so that one can write
things such as "40in" and "50%" in a size entry widget and get that
converted to the current unit.
The parser also handles basic expresions such as "20cm + 20px" and
"2 * 3.14in".
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2005-12-20 Michael Natterer <mitch@gimp.org>
* libgimp/*.c
* libgimpconfig/*.c
* libgimpmodule/*.c
* libgimpthumb/*.c
* libgimpwidgets/*.c: port to G_DEFINE_TYPE() and friends. Some
related cleanup.
2005-04-17 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpsizeentry.c: use gimp_spin_button_new() which
calls gtk_spin_button_set_numeric() for us. Part of a fix for bug
#300935.
* libgimpwidgets/gimpwidgets.c: improved the API docs for
gimp_spin_button_new().
* app/tools/gimpcolorbalancetool.c
* app/tools/gimplevelstool.c
* plug-ins/common/screenshot.c
* plug-ins/ifscompose/ifscompose.c
* plug-ins/rcm/rcm_dialog.c
* plug-ins/script-fu/script-fu-interface.c
* plug-ins/winsnap/winsnap.c: use gimp_spin_button_new().
2005-03-10 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpsizeentry.c (gimp_size_entry_show_unit_menu):
added "Since: GIMP 2.4" to the docs.
* libgimpwidgets/gimpwidgets.def: added the new symbol.
* libgimpwidgets/gimpsizeentry.[ch]: added function
gimp_size_entry_show_unit_menu() for convenience.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: more work on
controls in Tool Options. Can now resize rectangle
by dragging any corner or edge -- move rectangle by
clicking inside and dragging.
2005-02-09 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpsizeentry.[ch]
* libgimpwidgets/gimpwidgets.def: added new function
gimp_size_entry_set_activates_default().
* app/dialogs/image-new-dialog.c: set the initial focus on the
Width entry and set the activates_default flag for the size entry.
Fixes bug #165748.
2004-05-18 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpsizeentry.[ch] (gimp_size_entry_attach_label):
return the created label widget so that it can for example be put
into a GtkSizeGroup.
* plug-ins/libgimpoldpreview/gimpoldpreview.[ch]: removed the
optional "Preview" frame. Always put the preview into a sunken
frame.
* plug-ins/common/AlienMap2.c
* plug-ins/common/blinds.c
* plug-ins/common/flarefx.c
* plug-ins/common/glasstile.c
* plug-ins/common/grid.c
* plug-ins/common/illusion.c
* plug-ins/common/jigsaw.c
* plug-ins/common/max_rgb.c
* plug-ins/common/nlfilt.c
* plug-ins/common/noisify.c
* plug-ins/common/nova.c
* plug-ins/common/plasma.c
* plug-ins/common/polar.c
* plug-ins/common/waves.c
* plug-ins/common/wind.c: changed accordingly, HIG-ified.
2003-11-15 Michael Natterer <mitch@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase-private.[ch]
* libgimpbase/gimpunit.c: new files implementing GimpUnitVTable
(formerly known as GimpWidgetsVTable). Now the unit functions
finally live in the same library as their header declarations.
* libgimpbase/gimpunit.h: removed comment about being a header for
two different files.
* libgimpwidgets/gimpwidgets-private.[ch]: removed
GimpWidgetsVTable.
* libgimpwidgets/gimpsizeentry.c
* libgimpwidgets/gimpunitmenu.c
* libgimpwidgets/gimpwidgets.c: use normal gimp_unit functions
again.
* libgimp/gimpui.c
* app/gui/gui.c: removed GimpWidgetVTable stuff.
* libgimp/Makefile.am
* libgimp/gimpunitcache.[ch]: new files.
* libgimp/gimpunit.c: removed (moved to gimpunitcache.c).
* libgimp/gimp.c (gimp_main): initialize GimpUnitVTable using the
gimp_unit_cache functions.
* app/Makefile.am
* app/units.[ch]: new files implementing GimpUnitVTable.
* app/libgimp_glue.[ch]: removed.
* app/app_procs.[ch]: made "the_gimp" a static variable. Call
units_init().
* app/main.c: changed accordingly.
2003-10-30 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpsizeentry.c: moved all signal emissions to
their resp update() functions (e.g. "value_changed" is emitted
from gimp_size_entry_value_update() now). Should fix all bugs ;)
for the cost of a few extra signal emissions. We definitely
emitted too few signals before so it's at least less broken.
Removed "gboolean value_boundaries" stuff because this fix should
always update the reference values correctly now.
2003-10-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c: setup size entries in the order
suggested by the GimpSizeEntry documentation.
* libgimpwidgets/gimpsizeentry.c: added an internal flag so the
size entry knows if the boundaries are set on the value or on the
reference value. Needed to make gimp_size_entry_update_unit() do
the right thing.
2003-10-15 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpsizeentry.[ch]: added new function
gimp_size_entry_get_help_widget() to make it possible to set
tooltips on a GimpSizeEntry.