Commit Graph

154 Commits

Author SHA1 Message Date
Jehan d493f0537f Issue #8900 and #9923: reimplementing GimpUnit as a proper class.
This fixes all our GObject Introspection issues with GimpUnit which was
both an enum and an int-derived type of user-defined units *completing*
the enum values. GIR clearly didn't like this!

Now GimpUnit is a proper class and units are unique objects, allowing to
compare them with an identity test (i.e. `unit == gimp_unit_pixel ()`
tells us if unit is the pixel unit or not), which makes it easy to use,
just like with int, yet adding also methods, making for nicer
introspected API.

As an aside, this also fixes #10738, by having all the built-in units
retrievable even if libgimpbase had not been properly initialized with
gimp_base_init().
I haven't checked in details how GIR works to introspect, but it looks
like it loads the library to inspect and runs functions, hence
triggering some CRITICALS because virtual methods (supposed to be
initialized with gimp_base_init() run by libgimp) are not set. This new
code won't trigger any critical because the vtable method are now not
necessary, at least for all built-in units.

Note that GimpUnit is still in libgimpbase. It could have been moved to
libgimp in order to avoid any virtual method table (since we need to
keep core and libgimp side's units in sync, PDB is required), but too
many libgimpwidgets widgets were already using GimpUnit. And technically
most of GimpUnit logic doesn't require PDB (only the creation/sync
part). This is one of the reasons why user-created GimpUnit list is
handled and stored differently from other types of objects.

Globally this simplifies the code a lot too and we don't need separate
implementations of various utils for core and libgimp, which means less
prone to errors.
2024-08-02 10:46:38 +02:00
Niels De Graef c2971f000a libgimpwidgets: Add missing GIR annotations 2024-05-11 15:30:45 +02:00
Niels De Graef 842dc7535f gir: (skip) functions with varargs
Bindings can't handle these, so they are not introspectable.
2020-05-21 13:49:38 +02:00
Niels De Graef ed310dd48d Fix some gtk-doc comments and GIR annotations 2020-05-08 15:26:42 +02:00
Niels De Graef a8de828195 gimpwidget: Correct gtk-doc docs wrt GtkHBox
GtkHBox is a deprecated version of GtkBox, which we don't even use
anymore. It confuses the gtk-doc a build though, so let's fix it to get
rid of another warning.
2020-05-08 14:17:18 +02:00
Jehan ec9dbd8115 libgimpwidgets, app, plug-ins: fix last GIR warnings.
gimp_int_radio_group_new() was still complaining about the scope of
radio_button_callback(). Make it (scope notified) because it needs to
stay alive after the function returns and may be called multiple times.

Also adding a GDestroyNotify to free the callback data once the widget
is destroyed (additionally it will also serve as a notifier for bindings
to properly free the callback closure itself, not only it's data).

With this last one done, GObject Introspection generation now happens
without any warning output.
2020-01-15 14:00:19 +01:00
Michael Natterer 1f7c823a90 libgimpwidgets: remove the gimp_radio_group_*() functions
they are antique cruft and unused.
2019-09-25 23:37:03 +02:00
Jehan ea53089545 libgimpwidgets: add a bunch of missing (transfer) annotations. 2019-08-01 13:10:39 +02:00
Ell 8954d1f386 libgimpwidgets, app, plug-ins: use GimpSpinButton everywhere
Replace all direct uses of GtkSpinButton with GimpSpinButton, so
that its modified behavior extends to all our spin buttons.
2019-03-09 07:28:52 -05:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Michael Natterer 80997a8646 Remove most GTK_ADJUSTMENT() and (GtkAdjutment *) casts
they are obsolete in GTK+ 3.x because GtkAdjustment cannot be passed
around as GtkObject any longer, GtkObject is gone.
2018-06-24 18:15:16 +02:00
Michael Natterer b55e481459 libgimpwidgets: remove gimp_spin_button_new() 2018-05-20 21:06:34 +02:00
Simon Budig 72e63887ba libgimpwidgets: convert GimpSizeEntry to a GtkGrid. 2018-05-20 21:06:32 +02:00
Michael Natterer 1b3135ca95 Get rid of using GtkMisc API globally 2018-05-20 21:06:30 +02:00
Michael Natterer 4ae7d4c825 libgimpwidgets: remove deprecated files completely 2018-05-20 21:06:26 +02:00
Michael Natterer a562a0c798 libgimpwidgets: s/GtkObject/GtkAdjustment/ in gimpwidgets.[ch] 2018-05-20 21:06:26 +02:00
Richard Kreckel dd9b0fc55b Bug 768044 - Fix many typos
This fixes many typos in comments and one in a user-visible string (msgid
"center abscisse" changed to "center abscissa" in affected po files. too).
2016-06-26 00:35:24 +02:00
Michael Natterer 6b0b774302 libgimpwidgets: add gimpwidgetsutils.[ch]
Move some functions from libgimpwidgets/gimpwidgets.[ch]
and from app/widgets/gimpwidgets-utils.[ch]. Newly add
gimp_widget_get_color_profile() which is extracted from
modules/display-filter-lcms.c.
2015-05-06 22:15:30 +02:00
Michael Natterer eaea58f5e3 libgimpwidgets: deprecate gimp_spin_button_new()
it should have never been added in the first place. Port all users
to using gtk_spin_button_new() directly.
2014-06-21 22:35:39 +02:00
Téo Mazars 24a2113170 Bug 656522 - Scaled Image Rounds Up To Nearest Pixel
Prevent gimp_coordinates_callback () to be called recursively
when x and y are chained.

One call puts all values in a consistent state, a recusive call can
cause side effects (calculations with rounded values)
2013-03-27 01:04:33 +01:00
Michael Natterer 3ad73b3658 libgimpcolor: add GdkPixbuf <-> GeglBuffer utility functions
and update tons of includes in libgimp and app.
2012-05-03 03:37:20 +02:00
Michael Natterer 3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
Mukund Sivaraman 0afe030552 libgimpwidgets: Remove dead assignments 2011-10-04 14:33:42 +05:30
Michael Natterer f1d4dde36a libgimpwidgets: add gdk_event_triggers_context_menu() to gimp3migration.[ch]
and remove gimp_button_event_triggers_context_menu() again. Update
all callers to use the new function.
2011-10-02 16:23:59 +02:00
Michael Natterer 83eb6fdc9e libgimpwidgets: use gtk_box_new() 2011-09-30 10:50:50 +02:00
Michael Natterer d92cd2f6c8 Add gimp_button_event_triggers_context_menu() and use it
instead of checking for event->button == 3, so context menus
work correctly on the Mac. Didn't change the image menu yet
because thet requires some more refactoring.
2011-09-19 00:47:23 +02:00
Michael Natterer 05cd8670c3 libgimpwidgets: deprecate gimp_toggle_button_sensitive_update()
Use g_object_bind_property() instead.
2011-05-11 22:13:33 +02:00
Michael Natterer 268930f489 libgimpwidgets: gimp_pixmap_button_new, gimp_unit_menu_update -> gimpoldwidgets
where they belog. gimp_unit_menu_update() is newly deprecated.
2011-04-28 14:53:49 +02:00
Michael Natterer c6e35435ad libgimpwidgets: don't treat -1 as value of enum PangoAttrType 2011-03-17 15:28:41 +01:00
Michael Natterer 0f28b38a55 libgimpwidgets: set page_size to 0 on adjustments used for spin buttons
Spin buttons must always have a zero page size, fix that for all
spin buttons created with gimp_spin_button_new().
2010-09-12 00:57:13 +02:00
Michael Natterer b3ee51794d libgimpwidgets: fix most gtk-doc warnings 2010-07-05 19:04:15 +02:00
Michael Natterer 1f7ff98c45 libgimpwidgets: move docs from template files to inline comments
but leave the template file for gimpstock there because its contents
would be too much for gimpstock.h.
2010-07-05 18:01:28 +02:00
Michael Natterer 3795f9b9c5 libgimpwidgets/gimpchainbutton.c libgimpwidgets/gimpcolorarea.c
2009-03-22  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpchainbutton.c
	* libgimpwidgets/gimpcolorarea.c
	* libgimpwidgets/gimpcolorbutton.c
	* libgimpwidgets/gimpcolorscale.c
	* libgimpwidgets/gimpcolorselect.c
	* libgimpwidgets/gimpdialog.c
	* libgimpwidgets/gimphelpui.c
	* libgimpwidgets/gimpmemsizeentry.c
	* libgimpwidgets/gimpoffsetarea.c
	* libgimpwidgets/gimppickbutton.c
	* libgimpwidgets/gimppixmap.c
	* libgimpwidgets/gimppreview.c
	* libgimpwidgets/gimppreviewarea.c
	* libgimpwidgets/gimpruler.c
	* libgimpwidgets/gimpscrolledpreview.c
	* libgimpwidgets/gimpwidgets.c: use accessors for various members
	of GTK+ structures that don't exist any longer when GSEAL_ENABLE
	is defined.


svn path=/trunk/; revision=28190
2009-03-22 15:42:42 +00:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
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
2009-01-17 22:28:01 +00:00
Michael Natterer d9bc8db7a3 app/widgets/gimplayertreeview.c libgimpwidgets/gimpcolorscales.c
2008-08-29  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimplayertreeview.c
	* libgimpwidgets/gimpcolorscales.c
	* libgimpwidgets/gimppropwidgets.c
	* libgimpwidgets/gimpscaleentry.c
	* libgimpwidgets/gimpwidgets.c: use gtk_adjustment_get_value()
	instead of adjustment->value.


svn path=/trunk/; revision=26815
2008-08-29 15:54:10 +00:00
Martin Nordholts b5b51b475f libgimpwidgets/gimpwidgets.c
2008-08-26  Martin Nordholts  <martinn@svn.gnome.org>

	* libgimpwidgets/gimpwidgets.c

	* plug-ins/common/file-xbm.c
	* plug-ins/common/file-wmf.c
	* plug-ins/common/file-svg.c
	* plug-ins/common/file-gih.c
	* plug-ins/common/blur-motion.c
	* plug-ins/file-jpeg/jpeg-save.c
	* plug-ins/lighting/lighting-ui.c
	* plug-ins/map-object/map-object-ui.c

	* app/tools/gimpsheartool.c
	* app/tools/gimpaligntool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimplevelstool.c
	* app/dialogs/resize-dialog.c
	* app/dialogs/offset-dialog.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimpcolormapeditor.c
	* app/dialogs/layer-options-dialog.c
	* app/display/gimpdisplayshell-scale-dialog.c: Pass page_size = 0
	to gimp_spin_button_new() to adapt to new and correct value
	clamping in GTK+.

svn path=/trunk/; revision=26778
2008-08-26 19:32:14 +00:00
Michael Natterer bc9424a2b5 app/actions/data-commands.c app/actions/debug-commands.c
2008-03-12  Michael Natterer  <mitch@gimp.org>

	* app/actions/data-commands.c
	* app/actions/debug-commands.c
	* app/actions/dockable-commands.c
	* app/dialogs/stroke-dialog.c
	* app/display/gimpdisplayshell-handlers.c
	* app/gui/gui-message.c
	* app/gui/gui.c
	* app/tools/gimpforegroundselectoptions.c
	* app/tools/gimpinkoptions-gui.c
	* app/widgets/gimpcolordialog.c
	* app/widgets/gimpcontainerpopup.c
	* app/widgets/gimpcontainerview-utils.c
	* app/widgets/gimpdock.c
	* app/widgets/gimpdockable.c
	* app/widgets/gimpsessioninfo-book.c
	* app/widgets/gimpsessioninfo-dock.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimpunitcombobox.c
	* app/widgets/gimpviewablebox.c
	* libgimp/gimpexport.c
	* libgimpmodule/gimpmodule.h
	* libgimpwidgets/gimpenumwidgets.c
	* libgimpwidgets/gimpframe.c
	* libgimpwidgets/gimpoldwidgets.c
	* libgimpwidgets/gimpwidgets.c
	* plug-ins/MapObject/mapobject_ui.c
	* plug-ins/common/papertile.c
	* plug-ins/common/sinus.c
	* plug-ins/flame/flame.c
	* plug-ins/helpbrowser/gimpthrobber.c
	* plug-ins/script-fu/scheme-wrapper.c
	* plug-ins/script-fu/script-fu-console.c: use accessors instead of
	accessing GtkBin.child and GtkPaned.child1,2 directly.


svn path=/trunk/; revision=25095
2008-03-12 16:58:28 +00:00
William Skaggs 4397dc25bf Bill Skaggs <weskaggs@primate.ucdavis.edu>
Merged from weskaggs branch at Mitch's request.  Will
	need to update devel docs.
	
	Place scale entry code into separate files, no
	functional changes.

	* libgimpwidgets/gimpscaleentry.c
	* libgimpwidgets/gimpscaleentry.h: new files.
	
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgets.c
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/Makefile.am: changed accordingly.

svn path=/trunk/; revision=24887
2008-02-14 17:02:47 +00:00
Sven Neumann e601d3e704 update the original width and height when the chain-button is changed to
2007-05-26  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.c (gimp_coordinates_new): update 
the
	original width and height when the chain-button is changed to 
the
	active state.


svn path=/trunk/; revision=22631
2007-05-26 20:32:56 +00:00
Sven Neumann 3b9f1cc4fa libgimpconfig/gimpscanner.c allocate structs using GSlice.
2007-05-22  Sven Neumann  <sven@gimp.org>

	* libgimpconfig/gimpscanner.c
	* libgimpwidgets/gimpwidgets.c: allocate structs using GSlice.


svn path=/trunk/; revision=22581
2007-05-22 17:58:02 +00:00
Sven Neumann 9dbebcab4a fixed implementation for PANGO_ATTR_STRIKETHROUGH, spotted by Behdad
2007-03-13  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.c (gimp_label_set_attributes): 
fixed
	implementation for PANGO_ATTR_STRIKETHROUGH, spotted by Behdad
	Esfahbod.


svn path=/trunk/; revision=22107
2007-03-13 07:22:25 +00:00
Sven Neumann dec954cc2a special case GimpSizeEntry and use the last entry.
2006-10-18  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.c (find_mnemonic_widget): special
	case GimpSizeEntry and use the last entry.

	* app/tools/gimprotatetool.c
	* app/tools/gimpsheartool.c: added mnemonics (bug #162541).
2006-10-18 10:29:16 +00:00
William Skaggs 55d716e258 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpwidgets/gimpwidgets.c (gimp_coordinate_callback):
	Don't stop emission of "value-changed" signal.  Fixes
	bug #346088.  Let's see if it breaks anything else...
2006-08-10 19:17:44 +00:00
Sven Neumann 68f562226c app/widgets/gimpcoloreditor.c in the tooltip for the hex entry, mention
2006-07-07  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpcoloreditor.c
	* libgimpwidgets/gimpcolorselection.c: in the tooltip for the hex
	entry, mention that it also accepts CSS color names.

	* libgimpwidgets/gimpwidgets.c (gimp_scale_entry_new_internal):
	use an invisible event box for the tooltip.
2006-07-07 11:19:52 +00:00
William Skaggs 1beec26359 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpwidgets/gimpwidgets.c (gimp_coordinates_callback):
	use ROUND() to prevent incorrect chainbutton logic.  Fixes
	bug #336259.
2006-05-19 20:32:49 +00:00
Sven Neumann f2df31a50e converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* libgimp*/gimp*.[ch]: converted tabs to spaces.
2006-04-12 10:53:28 +00:00
Sven Neumann 3ca90a182e Use the canonical form for signal names in lots of places (but by far not
2005-05-27  Sven Neumann  <sven@gimp.org>

	* (lots of files): Use the canonical form for signal names in lots
	of places (but by far not all).
2005-05-27 13:05:26 +00:00
Sven Neumann b73e908ca5 use gimp_spin_button_new() which calls gtk_spin_button_set_numeric() for
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-04-17 15:28:28 +00:00
Sven Neumann 2088a86ae7 fixed copy-n-paste bug that affected PANGO_ATTR_SIZE.
2005-03-30  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.c (gimp_label_set_attributes): fixed
	copy-n-paste bug that affected PANGO_ATTR_SIZE.
2005-03-30 19:58:49 +00:00
William Skaggs 4f698cd30c Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpwidgets/gimpwidgets.c (gimp_coordinates_callback):
	Make sure last_x and last_y are set to values that match
	those returned by gimp_size_entry_get_refval(),
	fixes bug #163951.
2005-01-18 18:09:19 +00:00