Commit graph

42 commits

Author SHA1 Message Date
Jehan
2a00a9e60a Issue #434: remove broken plural support for GimpUnit.
Rather than trying to implement full i18n plural support, we just remove
this failed attempt from the past. The fact is that to get proper
support, we'd basically need to reimplement a Gettext-like plural
definition syntax within our API, then ask people to write down this
plural definition for their language, then to write every plural form…
all this for custom units which only them will ever see!

Moreover code investigation shows that the singular form was simply
never used, and the plural form was always used (whatever the actual
unit value displayed).

As for the "identifier", this was a text which was never shown anywhere
(except in the unit editor) and for all built-in units, as well as
default unitrc units, it was equivalent to the English plural value.

So we now just have a unique name which is the "long label" to be used
everywhere in the GUI, and abbreviation will be basically the "short
label". That's it. No useless (or worse, not actually usable because it
was not generic internationalization) values anymore!
2024-08-06 11:39:57 +02:00
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
Alx Sa
4bf5dc7b97 plug-ins: Port argument macros to functions
With the new API introduced int d1c4457f,
we next need to port all plug-ins using
the argument macros to functions.
This will allow us to remove the macros
as part of the 3.0 API clean-up.
2024-06-13 23:17:48 +00:00
Jehan
9a2d9991e5 plug-ins: get rid of hardcoded colors for built-in units.
Hardcoded colors don't work well with theme customization (on a dark theme in
particular, it was bad).

Anyway built-in units are already grayed-out and non-editable. I don't think
further styling is needed.
2023-10-01 21:02:34 +02:00
Jehan
2b38a2df86 libgimp, plug-ins: rename gimp_procedure_new2() as gimp_procedure_new() and…
… remove the latter.

Now all GimpProcedure use this new implementation with use a config object.
2023-10-01 20:52:01 +02:00
Jehan
38ecbfc762 plug-ins: more plug-ins ported to gimp_procedure_new2(). 2023-10-01 20:52:01 +02:00
Jehan
9ad5049dec menus, plug-ins: now place various plug-ins in the right menu sections.
This removes a bunch of inconsistencies we had from the before-2.99.16 version
because new items from plug-ins were all added at the bottom of their respective
submenu.
2023-07-13 15:49:05 +02:00
Simon Budig
d16734a4e4 plug-ins: fix some glib related deprecations 2023-05-20 21:46:17 +02:00
Jehan
6ecfc4a77b plug-ins: more placeholders removed from menu paths. 2023-04-12 22:07:08 +02:00
Jehan
e4e87d65ca plug-ins: fix the new unit editor (!655).
- Don't forget to run gimp_ui_init() to get GIMP's styling in plug-ins.
- Process the "key-press-event" signal so that Escape key closes the window (as
  it used to before the MR commit).
- Expand vertically the tree view, otherwise resizing the window leaves a lot of
  ugly empty space, even though the tree view is still shown incomplete with a
  scrollbar.
- Fix the Help button (which was doing nothing).
- Use full words for the "Refresh" and "Help" buttons, rather than icons. Text
  is usually prefered for UI discoverability/understandability, unless there is
  a space issue (i.e. too many icons for all of them to be words).
- Add a "OK" button too, and reorder the buttons similarly to how we usually
  order them.
- Minor coding style fixes (alignments…).
2022-10-11 22:11:16 +00:00
Niels De Graef
567d7beb11 plug-ins: Remove GtkAction from unit editor
Migrate to `GAction` and while we're at it, clean up the plug-in by
using `G_DECLARE_FINAL_TYPE()`.
2022-10-11 22:11:16 +00:00
Jehan
df074bfe09 plug-ins: label and documentation of plug-ins localized plug-in side.
This is the consequence of previous commit. Plug-ins' label and
documentation are now localized before sending these data to GIMP core.
In other words, we replace N_() macros with basic gettext calls.
2022-07-05 12:23:51 +02:00
Jehan
18c37f7084 plug-ins, libgimp: override set_i18n() for all our core plug-ins.
Hence avoiding the stderr messages. These are going to be localized with
centrally installed catalogs "gimp*-std-plugins", "gimp*-script-fu" and
"gimp*-python".

We now handle core plug-in localizations differently and in particular,
with kind of a reverse logic:

- We don't consider "gimp*-std-plugins" to be the default catalog
  anymore. It made sense in the old world where we would consider the
  core plug-ins to be the most important and numerous ones. But we want
  to push a world where people are even more encouraged to develop their
  own plug-ins. These won't use the standard catalog anymore (because
  there are nearly no reasons that the strings are the same, it's only a
  confusing logic). So let's explicitly set the standard catalogs with
  DEFINE_STD_SET_I18N macro (which maps to a different catalog for
  script-fu plug-ins).
- Doing something similar for Python plug-ins which have again their own
  catalog.
- Getting rid of the INIT_I18N macro since now all the locale domain
  binding is done automatically by libgimp when using the set_i18n()
  method infrastructure.
2022-06-05 01:57:02 +02:00
Michael Natterer
df8d5b02ae libgimp, plug-ins: remove the "preview" parameter from gimp_ui_init()
It's dead since a looong time.
2019-09-20 19:56:00 +02:00
Michael Natterer
8a78203aed Properly prefix the values of enum GimpPDBProcType
to be GIMP_PDB_PROC_TYPE_PLUGIN, _EXTENSION etc.
2019-08-30 12:52:28 +02:00
Michael Natterer
9cabc8c8d0 libgimp, plug-ins: use the new macros everwhere
Except for gimp_param_spec_string() which is on its way back to the
core.
2019-08-19 10:02:07 +02:00
Michael Natterer
15019fef52 plug-ins: port many plug-ins from GimpProcedure to GimpImageProcedure
Also move the call to set_icon_name() after set_menu_label(), all
ported plug-ins should look the same so we are a good example for copy
and paste ;)
2019-08-18 13:45:58 +02:00
Michael Natterer
b6ca0c4433 plug-ins: port unit-editor to GimpPlugIn 2019-08-14 20:24:02 +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
08a31a01f8 plug-ins: set a minimum height on the unit editor's scrolled window 2019-01-05 14:15:01 +01: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
Simon Budig
a109e1e9ae unit-editor: kill GtkTable 2018-05-20 21:06:35 +02:00
Michael Natterer
bdbec7941c Use the new macros from the last commit in all files
...and gone are the annoying warnings.
2018-05-20 21:06:34 +02:00
Michael Natterer
05e2d3c034 plug-ins: port the unit-editor to GtkScrollable 2018-05-20 21:06:27 +02:00
Michael Natterer
eb8487b487 plug-ins: s/GtkObject/GtkAdjustment/g in plug-ins/common/ 2018-05-20 21:06:27 +02:00
Michael Natterer
710ac0fb52 Bug 795611 - unit-editor.c: Boolean result is used in bitwise operation
Fix "or" expression: it's || not |.
2018-04-28 02:48:56 +02:00
Michael Natterer
dda54c1df8 Deprecate stock items for good and change all icon defines to GIMP_ICON_*
Try to sort all GIMP_ICON_* defines into FDO categories like in
https://specifications.freedesktop.org/icon-naming-spec/latest/ar01s04.html

Add defines for all icons we override, rename some icons to their FDO
standard names, and mark the ones we duplicate with a comment so we
don't forget to rename those to standard names in 3.0.
2017-03-05 16:01:59 +01:00
Michael Natterer
801bd8fb3f plug-ins: get rid of icons in dialog buttons (use labels not stock IDs) 2017-02-12 16:18:54 +01:00
Michael Natterer
6914bbc65f plug-ins: more gimp_spin_button_new() -> gtk_spin_button_new() 2014-06-22 23:01:31 +02:00
Michael Natterer
102a236265 plug-ins: some more stock-id -> icon-name porting 2014-05-12 00:37:42 +02:00
Michael Natterer
de08267f06 libgimpbase, *: add enum value GIMP_ICON_TYPE_ICON_NAME
and keep GIMP_ICON_TYPE_STOCK_ID as a deprecated alias. Change all
plug-ins accordingly and increase the pluginrc file version number so
it gets regenerated with "icon-name" instead of "stock-id".
2014-05-11 23:56:30 +02:00
Mukund Sivaraman
f79d4707a2 unit-editor: Drop dead variable and assignment 2011-10-11 10:16:49 +05:30
Michael Natterer
8c4d99f883 Bug 645456 - Inconsistent window (role) naming scheme
Applied patch from Christoph Kappel which adds a "gimp-" prefix to all
plug-in dialog window roles.
2011-04-08 20:31:34 +02:00
Michael Natterer
97a73ea83f app: use gtk_box_pack_start() to pack a dialog's toplevel container
instead of gtk_container_add()'s because otherwise the widget will not
expand in GTK+ 3.x
2011-03-04 10:44:58 +01:00
Michael Natterer
06673f27e2 Use various GTK+ accessors instead of object->member 2009-10-10 15:10:57 +02:00
Michael Natterer
e805cb0cf4 Use gtk_dialog_get_content_area() instead of dialog->vbox 2009-07-15 18:57:12 +02:00
Michael Natterer
4ea1437646 plug-ins/common/*.c plug-ins/color-rotate/color-rotate.c
2009-01-19  Michael Natterer  <mitch@gimp.org>

	* plug-ins/common/*.c
	* plug-ins/color-rotate/color-rotate.c
	* plug-ins/file-bmp/bmp.c
	* plug-ins/file-faxg3/faxg3.c
	* plug-ins/file-fits/fits.c
	* plug-ins/file-fli/fli-gimp.c
	* plug-ins/file-ico/ico.c
	* plug-ins/file-jpeg/jpeg.c
	* plug-ins/file-psd/psd-save.c
	* plug-ins/file-psd/psd.c
	* plug-ins/file-sgi/sgi.c
	* plug-ins/file-uri/uri.c
	* plug-ins/file-xjt/xjt.c
	* plug-ins/flame/flame.c
	* plug-ins/fractal-explorer/fractal-explorer.c
	* plug-ins/gfig/gfig.c
	* plug-ins/gimpressionist/gimp.c
	* plug-ins/gradient-flare/gradient-flare.c
	* plug-ins/help-browser/help-browser.c
	* plug-ins/ifs-compose/ifs-compose.c
	* plug-ins/imagemap/imap_main.c
	* plug-ins/lighting/lighting-main.c
	* plug-ins/map-object/map-object-main.c
	* plug-ins/maze/maze.c
	* plug-ins/metadata/metadata.c
	* plug-ins/pagecurl/pagecurl.c
	* plug-ins/print/print.c
	* plug-ins/pygimp/gimpfu.py
	* plug-ins/script-fu/script-fu-script.c
	* plug-ins/script-fu/script-fu.c
	* plug-ins/selection-to-path/selection-to-path.c
	* plug-ins/twain/twain.c
	* plug-ins/win-snap/winsnap.c: document the "run-mode" parameter
	as we document enums for core procedures.


svn path=/trunk/; revision=27922
2009-01-19 20:11:36 +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
Sven Neumann
a7e23df19d corrected column tooltip (pointed out by Cristian Secară).
2008-11-18  Sven Neumann  <sven@gimp.org>

	* plug-ins/common/unit-editor.c (columns): corrected column
	tooltip (pointed out by Cristian Secară).


svn path=/trunk/; revision=27679
2008-11-18 12:49:01 +00:00
David Odin
83e631faf4 untabified
* plug-ins/common/*.c: untabified

svn path=/trunk/; revision=27335
2008-10-20 06:04:39 +00:00
Michael Natterer
bfa8547a93 Renamed tons of plug-ins to make more sense and to be consistent:
2008-03-24  Michael Natterer  <mitch@gimp.org>

	Renamed tons of plug-ins to make more sense and to be consistent:

	* plug-ins/common/AlienMap2.c -> alien-map.c
	* plug-ins/common/CEL.c -> cel.c
	* plug-ins/common/CML_explorer.c -> cml-explorer.c
	* plug-ins/common/align_layers.c -> align-layers.c
	* plug-ins/common/animationplay.c -> animation-play.c
	* plug-ins/common/animoptimize.c -> animation-optimize.c
	* plug-ins/common/apply_lens.c -> lens-apply.c
	* plug-ins/common/autocrop.c -> crop-auto.c
	* plug-ins/common/autostretch_hsv.c -> contrast-stretch-hsv.c
	* plug-ins/common/borderaverage.c -> border-average.c
	* plug-ins/common/bumpmap.c -> bump-map.c
	* plug-ins/common/c_astretch.c -> contrast-stretch.c
	* plug-ins/common/ccanalyze.c -> color-cube-analyze.c
	* plug-ins/common/channel_mixer.c -> channel-mixer.c
	* plug-ins/common/color_enhance.c -> color-enhance.c
	* plug-ins/common/colortoalpha.c -> color-to-alpha.c
	* plug-ins/common/convmatrix.c -> convolution-matrix.c
	* plug-ins/common/curve_bend.c -> curve-bend.c
	* plug-ins/common/depthmerge.c -> depth-merge.c
	* plug-ins/common/dog.c -> edge-dog.c
	* plug-ins/common/exchange.c -> color-exchange.c
	* plug-ins/common/flarefx.c -> lens-flare.c
	* plug-ins/common/fp.c -> filter-pack.c
	* plug-ins/common/fractaltrace.c -> fractal-trace.c
	* plug-ins/common/gauss.c -> blur-gauss.c
	* plug-ins/common/gee_zoom.c -> gee-zoom.c
	* plug-ins/common/glasstile.c -> tile-glass.c
	* plug-ins/common/gqbist.c -> qbist.c
	* plug-ins/common/gradmap.c -> gradient-map.c
	* plug-ins/common/laplace.c -> edge-laplace.c
	* plug-ins/common/lens.c -> lens-distortion.c
	* plug-ins/common/lic.c -> van-gogh-lic.c
	* plug-ins/common/max_rgb.c -> max-rgb.c
	* plug-ins/common/mblur.c -> blur-motion.c
	* plug-ins/common/nlfilt.c -> nl-filter.c
	* plug-ins/common/noisify.c -> noise-rgb.c
	* plug-ins/common/normalize.c -> contrast-normalize.c
	* plug-ins/common/papertile.c -> tile-paper.c
	* plug-ins/common/polar.c -> polar-coords.c
	* plug-ins/common/randomize.c -> noise-randomize.c
	* plug-ins/common/redeye.c -> red-eye-removal.c
	* plug-ins/common/retinex.c -> contrast-retinex.c
	* plug-ins/common/sample_colorize.c -> sample-colorize.c
	* plug-ins/common/scatter_hsv.c -> noise-hsv.c
	* plug-ins/common/sel_gauss.c -> blur-gauss-selective.c
	* plug-ins/common/semiflatten.c -> semi-flatten.c
	* plug-ins/common/smooth_palette.c -> smooth-palette.c
	* plug-ins/common/snoise.c -> noise-solid.c
	* plug-ins/common/sobel.c -> edge-sobel.c
	* plug-ins/common/spheredesigner.c -> sphere-designer.c
	* plug-ins/common/spread.c -> noise-spread.c
	* plug-ins/common/struc.c -> apply-canvas.c
	* plug-ins/common/threshold_alpha.c -> threshold-alpha.c
	* plug-ins/common/tileit.c -> tile-small.c
	* plug-ins/common/tiler.c -> tile-seamless.c
	* plug-ins/common/uniteditor.c -> unit-editor.c
	* plug-ins/common/unsharp.c -> unsharp-mask.c
	* plug-ins/common/vinvert.c -> value-invert.c
	* plug-ins/common/vpropagate.c -> value-propagate.c
	* plug-ins/common/webbrowser.c -> web-browser.c
	* plug-ins/common/whirlpinch.c -> whirl-pinch.c
	* plug-ins/common/zealouscrop.c -> crop-zealous.c

	* plug-ins/common/plugin-defs.pl: changed accordingly.

	* plug-ins/common/Makefile.am: regenerated.


svn path=/trunk/; revision=25192
2008-03-24 15:29:55 +00:00
Renamed from plug-ins/common/uniteditor.c (Browse further)