gimp/libgimpwidgets
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
..
gimpbrowser.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpbrowser.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpbusybox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpbusybox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpbutton.c libgimpwidgets: Make GimpButton a derivable type 2024-07-30 19:04:53 +00:00
gimpbutton.h libgimpwidgets: Make GimpButton a derivable type 2024-07-30 19:04:53 +00:00
gimpcairo-utils.c app, libgimpwidgets, plug-ins: GimpColorArea is now space-invaded. 2024-02-11 23:28:03 +01:00
gimpcairo-utils.h app, libgimp*: more GeglColor's space invasion. 2024-02-11 23:28:02 +01:00
gimpcellrenderercolor.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcellrenderercolor.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcellrenderertoggle.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcellrenderertoggle.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpchainbutton.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpchainbutton.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorarea.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorarea.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorbutton.c app, libgimp*, modules, pdb, plug-ins: new GimpParamColor. 2024-04-19 23:25:13 +02:00
gimpcolorbutton.h app, libgimp*, plug-ins: GimpColorButton now space-invaded. 2024-02-11 23:28:03 +01:00
gimpcolordisplay.c Cleanup GObject signal marshallers 2020-04-01 21:20:01 +00:00
gimpcolordisplay.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpcolordisplaystack.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolordisplaystack.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorhexentry.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorhexentry.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolornotebook.c app, libgimpwidgets: make GimpColorSelector sync with soft-proofing. 2024-02-11 23:28:03 +01:00
gimpcolornotebook.h app, libgimpwidgets: make GimpColorSelector sync with soft-proofing. 2024-02-11 23:28:03 +01:00
gimpcolorprofilechooserdialog.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilechooserdialog.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilecombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilecombobox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilestore-private.h display: Show Soft-Proofing menu in status bar 2022-08-17 11:37:10 -04:00
gimpcolorprofilestore.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilestore.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofileview.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofileview.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorscale.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorscale.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorscaleentry.c libgimpwidgets, plug-ins: remove legacy gimp_color_scale_entry_new(). 2020-11-01 02:23:03 +01:00
gimpcolorscaleentry.h libgimpwidgets, plug-ins: remove legacy gimp_color_scale_entry_new(). 2020-11-01 02:23:03 +01:00
gimpcolorscales.c dialogs, libgimpwidgets: Prevent wide dialogs due to image/profile name 2024-07-22 16:32:47 +00:00
gimpcolorscales.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpcolorselect.c core, widgets: Convert HSV/A to float 2024-04-21 03:42:27 +00:00
gimpcolorselect.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpcolorselection.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorselection.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorselector.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcolorselector.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpcontroller.c libgimpwidgets: mark tooltips as translatable 2024-01-18 13:20:21 +00:00
gimpcontroller.h libgimp*: lots of doc fixes and new docs for structs and enums 2019-07-24 01:18:30 +02:00
gimpdialog.c libgimp, libgimpwidgets: use G_DECLARE_(DERIVABLE|FINAL)_TYPE macros for GimpProcedureDialog… 2024-07-13 12:24:49 +02:00
gimpdialog.h libgimp, libgimpwidgets: use G_DECLARE_(DERIVABLE|FINAL)_TYPE macros for GimpProcedureDialog… 2024-07-13 12:24:49 +02:00
gimpeevl.c libgimpwidgets: free leaked GError. 2021-08-22 12:22:50 +02:00
gimpeevl.h libgimpwidgets: fix percentage use in size-entry arithmetic when lower-bound != 0 2020-01-06 21:35:52 +02:00
gimpenumcombobox.c Use "Returns:" to annotate return values 2019-08-03 07:53:47 +00:00
gimpenumcombobox.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpenumlabel.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpenumlabel.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpenumstore.c gir: (skip) functions with varargs 2020-05-21 13:49:38 +02:00
gimpenumstore.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpenumwidgets.c gimpenumwidgets: Apply (transfer none) annotation 2020-05-18 13:00:58 +02:00
gimpenumwidgets.h libgimpwidgets: add GDestroyNotify to all enum widgets callback_data 2019-08-08 00:01:10 +02:00
gimpfileentry.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpfileentry.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpframe.c libgimpwidget: Fix GimpFrame line-spacing property 2023-04-22 03:01:16 +00:00
gimpframe.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimphelpui.c libgimpwidgets: use gdk_seat_grab,ungrab() in gimphelpui.c, 2023-05-24 17:18:38 +02:00
gimphelpui.h libgimpwidgets: add a GDestroyNotify for gimp_help_connect()'s user_data 2019-08-09 13:11:30 +02:00
gimphintbox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimphintbox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpicons.c libgimpwidgets: properly set the icon theme even at initialization. 2024-02-06 15:10:32 +01:00
gimpicons.h libgimpwidgets, widgets: Fix icons on Path locks 2024-07-16 17:50:41 +00:00
gimpintcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpintcombobox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpintradioframe.c libgimpwidgets: new gimp_int_radio_frame_set_title(). 2024-06-06 21:08:08 +02:00
gimpintradioframe.h libgimpwidgets: new gimp_int_radio_frame_set_title(). 2024-06-06 21:08:08 +02:00
gimpintstore.c libgimpwidgets: new gimp_int_store_new_array(). 2023-01-10 17:48:05 +01:00
gimpintstore.h libgimpwidgets: new gimp_int_store_new_array(). 2023-01-10 17:48:05 +01:00
gimplabelcolor.c app, libgimp*, modules, pdb, plug-ins: new GimpParamColor. 2024-04-19 23:25:13 +02:00
gimplabelcolor.h app, libgimp*, plug-ins, tools: settings custom check colors now space-invaded. 2024-02-11 23:28:02 +01:00
gimplabeled.c libgimpwidgets: add a "mnemonic-widget-changed" signal to GimpLabeled. 2022-02-17 23:24:05 +01:00
gimplabeled.h libgimpwidgets: add a "mnemonic-widget-changed" signal to GimpLabeled. 2022-02-17 23:24:05 +01:00
gimplabelentry.c libgimpwidgets: new GimpLabelEntry widget and associated prop API… 2022-02-17 23:13:42 +01:00
gimplabelentry.h libgimpwidgets: new GimpLabelEntry widget and associated prop API… 2022-02-17 23:13:42 +01:00
gimplabelintwidget.c libgimpwidgets: fix missing doc comments and annotations. 2020-11-20 11:36:11 +01:00
gimplabelintwidget.h libgimpwidgets: new gimp_label_int_widget_get_widget() function. 2020-11-20 01:47:18 +01:00
gimplabelspin.c libgimpwidgets: fix #10821 Problem with LabelSpin widget 2024-04-16 21:44:22 -04:00
gimplabelspin.h libgimpwidgets: improved gimp_prop_scale_entry_new(), new function… 2020-11-25 02:32:22 +01:00
gimplabelstringwidget.c libgimpwidgets: new GimpLabelStringWidget and update GimpStringComboBox. 2023-10-01 20:52:02 +02:00
gimplabelstringwidget.h libgimpwidgets: new GimpLabelStringWidget and update GimpStringComboBox. 2023-10-01 20:52:02 +02:00
gimpmemsizeentry.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpmemsizeentry.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpnumberpairentry.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpnumberpairentry.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpoffsetarea.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpoffsetarea.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimppageselector.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimppageselector.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimppatheditor.c GIR: Add some missing (nullable) annotations 2020-12-25 15:02:09 +01:00
gimppatheditor.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppickbutton-default.c Don't convert to float before storing... 2024-04-09 00:48:35 +00:00
gimppickbutton-default.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppickbutton-kwin.c Don't convert to float before storing... 2024-04-09 00:48:35 +00:00
gimppickbutton-kwin.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppickbutton-private.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppickbutton-quartz.c libgimpwidgets: fix undeclared identifier. 2024-04-12 12:24:53 +02:00
gimppickbutton-quartz.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppickbutton-win32.c Don't convert to float before storing... 2024-04-09 00:48:35 +00:00
gimppickbutton-win32.h libgimpwidgets: fix automake syntaxe. 2022-10-11 00:29:57 +02:00
gimppickbutton-xdg.c libgimpwidgets: Port GimpPickButton to GeglColor 2024-04-09 00:48:35 +00:00
gimppickbutton-xdg.h libgimpwidgets: Use Screenshot portal for picking 2021-12-14 23:15:49 +01:00
gimppickbutton.c libgimpwidgets: Port GimpPickButton to GeglColor 2024-04-09 00:48:35 +00:00
gimppickbutton.h libgimpwidgets: Port GimpPickButton to GeglColor 2024-04-09 00:48:35 +00:00
gimppreview.c app, libgimp, libgimpwidgets, plug-ins, etc: rename behaviour to behavior 2023-07-21 15:35:23 -04:00
gimppreview.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppreviewarea.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimppreviewarea.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimppropwidgets.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimppropwidgets.h libgimp, libgimpwidgets: ability to generate a GimpIntRadioFrame for GimpChoice arguments. 2024-06-06 20:20:30 +02:00
gimpquerybox.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpquerybox.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpruler.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpruler.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpscaleentry.c app, libgimp, libgimpwidgets, plug-ins, etc: rename behaviour to behavior 2023-07-21 15:35:23 -04:00
gimpscaleentry.h libgimpwidgets: make GimpScaleEntry a child class of GimpLabelSpin. 2020-11-05 18:06:52 +01:00
gimpscrolledpreview.c widgets: Minor GimpRGB to GeglColor ports 2024-03-19 04:40:14 +00:00
gimpscrolledpreview.h libgimpwidgets: use GtkGestureDrag in ScrolledPreview 2021-12-12 22:27:48 +01:00
gimpsizeentry.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpsizeentry.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpspinbutton.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpspinbutton.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpspinscale.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpspinscale.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpstringcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpstringcombobox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpunitcombobox.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpunitcombobox.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpunitstore.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpunitstore.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpwidgets-error.c Use "Returns:" to annotate return values 2019-08-03 07:53:47 +00:00
gimpwidgets-error.h Add other misc. typo fixes 2019-08-13 11:50:51 -04:00
gimpwidgets-private.c app, libgimp*, pdb, plug-ins: GimpContext is now using only GeglColor. 2024-02-11 23:28:02 +01:00
gimpwidgets-private.h libgimpwidgets: don't unnecessarily redraw color previews. 2024-02-11 23:28:04 +01:00
gimpwidgets.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpwidgets.def Fix #11613 crash Wayland flatpak unreffing GBytes window handle 2024-07-09 17:48:53 +00:00
gimpwidgets.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpwidgetsenums.c app, libgimp*: commit the newly generated *enums.c files. 2022-08-01 20:00:01 +02:00
gimpwidgetsenums.h libgimpwidgets: Introduce GIMP_ZOOM_PINCH 2021-04-22 17:45:32 +00:00
gimpwidgetsmarshal.list Remove use of custom marshallers in favor of GLib ones 2021-08-13 18:01:13 +00:00
gimpwidgetstypes.h libgimpwidgets: new GimpIntRadioFrame object. 2022-06-15 21:18:37 +02:00
gimpwidgetsutils.c Fix #11613 crash Wayland flatpak unreffing GBytes window handle 2024-07-09 17:48:53 +00:00
gimpwidgetsutils.h Fix #11613 crash Wayland flatpak unreffing GBytes window handle 2024-07-09 17:48:53 +00:00
gimpzoommodel.c libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
gimpzoommodel.h libgimpwidgets: Convert more gimpwidgets to derivable type 2024-08-01 03:55:31 +00:00
meson.build libgimpwidget: Mark gimpcolorscale as introspectable 2024-05-21 10:08:07 +02:00
test-eevl.c libgimpwidgets: fix percentage use in size-entry arithmetic when lower-bound != 0 2020-01-06 21:35:52 +02:00
test-preview-area.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00