Commit Graph

33 Commits

Author SHA1 Message Date
Alx Sa afce1c1f02 libgimpwidgets: Convert more gimpwidgets to derivable type
Continuation of work from 74e7e16e
2024-08-01 03:55:31 +00:00
Povilas Kanapickas 51d1ab9bce libgimpwidgets: Introduce GIMP_ZOOM_PINCH
This zoom mode is handled pretty much the same as GIMP_ZOOM_SMOOTH
except that we do not apply adjustments for the scaling delta. Pinch
zooming is ultimately a different physical activity than smooth
scrolling and users likely expect different sensitivity.
2021-04-22 17:45:32 +00:00
Niels De Graef 434107731a libgimpwidgets: Use g_object_notify_by_pspec for zoommodel
`g_object_notify()` actually takes a global lock to look up the property
by its name, which means there is a performance hit (albeit tiny) every
time this function is called. For this reason, we should try to use
`g_object_notify_by_pspec()` instead.
2020-12-29 22:14:19 +01:00
Niels De Graef db0493aa0d gir: Add more (out) annotations
This will change the API for some bindings, so we probably want to do it
before a release.
2020-05-03 17:57:23 +02:00
Niels De Graef 1dda60154c Use "Returns:" to annotate return values
To be able to annotate return values through GObject-introspection, you
need to make sure it is tagged with `Returns:` and not something else.
2019-08-03 07:53:47 +00:00
Jehan ea53089545 libgimpwidgets: add a bunch of missing (transfer) annotations. 2019-08-01 13:10:39 +02:00
Ell 3b0040c043 app, libgimp*, modules: don't use g_type_class_add_private() ...
... 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.
2018-09-18 14:39:56 -04: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 2dd2f1509b Enable and fix smooth scrolling and zooming
- Fix gimp_scroll_adjustment_values() for smooth scroll events
- Set GDK_SMOOTH_SCROLL_MASK on all widgets where we set GDK_SCROLL_MASK
- Add GIMP_ZOOM_SMOOTH to enum GimpZoomType
- Add "gdouble delta" to gimp_zoom_model_step()
- Change the meaning of the "scale" parameter to "scale or delta" in
  all functions that take GimpZoomType and a scale factor.
2018-05-20 21:06:34 +02:00
Michael Natterer f4f106ad26 libimp*: add private pointers to all instance structs
even if we don't have private members (yet). Also make class padding 8
pointers in all headers. This commit moves nothing to private, it just
makes all headers consistent and adjusts .c files accordigly.
2018-05-20 21:06:33 +02:00
Michael Natterer f9ee38ea33 libgimp: add blurbs to all object properties for the docs
and some minor doc fixes.
2017-06-06 21:19:17 +02:00
Michael Natterer 65a65947d9 app, libgimp: replace GTK_STOCK_FOO by icon names
unless it's a stock ID used for an action button, will address that
later.
2014-05-11 22:49:22 +02:00
Michael Natterer 79bd9c60de libgimpwidgets: mostly port from stock IDs to icon names
Add some new API and deprecate old one.
2014-05-07 21:32:09 +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 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 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann e0bc81c2e3 declared the array of zoom factors as const.
2006-04-10  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpzoommodel.c (gimp_zoom_model_zoom_step):
	declared the array of zoom factors as const.
2006-04-10 08:17:45 +00:00
Sven Neumann 7b24dd8e36 moved GIMP_PARAM defines from here ...
2006-01-30  Sven Neumann  <sven@gimp.org>

	* app/config/config-types.h: moved GIMP_PARAM defines from here ...

	* libgimpbase/gimpparam.h: ... to this new files.

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbasetypes.h: include the new header file.

	* libgimp/gimpfontselectbutton.c
	* libgimpconfig/gimpcolorconfig.c
	* libgimpthumb/gimpthumbnail.c
	* libgimpwidgets/gimpcellrenderercolor.c
	* libgimpwidgets/gimpcellrenderertoggle.c
	* libgimpwidgets/gimpcolorarea.c
	* libgimpwidgets/gimpcolorbutton.c
	* libgimpwidgets/gimpcolordisplay.c
	* libgimpwidgets/gimpcontroller.c
	* libgimpwidgets/gimpdialog.c
	* libgimpwidgets/gimpenumcombobox.c
	* libgimpwidgets/gimpintcombobox.c
	* libgimpwidgets/gimppageselector.c
	* libgimpwidgets/gimppreview.c
	* libgimpwidgets/gimppreviewarea.c
	* libgimpwidgets/gimpzoommodel.c
	* modules/cdisplay_colorblind.c
	* modules/cdisplay_gamma.c
	* modules/cdisplay_highcontrast.c
	* modules/cdisplay_lcms.c
	* modules/cdisplay_proof.c
	* modules/controller_linux_input.c
	* modules/controller_midi.c: use the GIMP_PARAM defines to avoid
	unnecessary string allocations.
2006-01-30 16:10:56 +00:00
Sven Neumann b614bf5e85 libgimpwidgets/gimpintcombobox.[ch] libgimpwidgets/gimppageselector.[ch]
2006-01-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpintcombobox.[ch]
	* libgimpwidgets/gimppageselector.[ch]
	* libgimpwidgets/gimpzoommodel.[ch]: added a priv pointer to the
	instance struct and changed the GET_PRIVATE() macro to access the
	private data via that pointer.

	* libgimpwidgets/gimpscrolledpreview.[ch]
	* libgimpwidgets/gimpwidgets.def: added a priv pointer to the
	instance struct and moved all private data to the
	GimpScrolledPreviewPrivate struct. Added freeze/thaw methods so
	that derived widgets can be implemented without accessing private
	data.

	* libgimp/gimpzoompreview.c: changed accordingly.

	* libgimp/gimpfontselectbutton.[ch]: let the priv pointer be an
	anonymous void pointer.
2006-01-25 14:35:56 +00:00
Sven Neumann ea03ed8cbe connect to the model's "zoomed" signal and set the button sensitivity.
2005-11-21  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpzoommodel.c (gimp_zoom_button_new): connect
	to the model's "zoomed" signal and set the button sensitivity.
2005-11-21 12:27:13 +00:00
David Odin 9af9bae012 added VOID__DOUBLE_DOUBLE marshaller.
* libgimpwidgets/gimpwidgetsmarshal.list: added VOID__DOUBLE_DOUBLE
 marshaller.

* libgimpwidgets/gimpzoommodel.[ch]: new signal: "zoomed", emitted
  when the zoom factor changes.  This signal have the old factor and the
  new factor as argument.

* libgimp/gimpzoompreview.c: use the "zoomed" signal instead of the
  "notify::value" one. This allow to use the old and new factors to keep
  the preview centered on the same point.
2005-10-01 15:12:59 +00:00
Sven Neumann 3670d4c3ae renamed newly added function to gimp_preview_get_controls(). Increased row
2005-09-28  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimppreview.[ch]: renamed newly added function to
	gimp_preview_get_controls(). Increased row padding for controls.

	* libgimpwidgets/gimpwidgets.def
	* libgimp/gimpzoompreview.c: changed accordingly.

	* libgimpbase/gimputils.c (gimp_enum_get_value): ref the enum
	class instead of only peeking at it.

	* libgimpwidgets/gimpzoommodel.c (gimp_zoom_button_new): set a
	tooltip on zoom buttons that only show an icon.
2005-09-28 11:02:02 +00:00
David Odin 5e2033cb75 zooming out more is zooming out three times, not zooming in. Fixes bug
* libgimpwidgets/gimpzoommodel.c: zooming out more is zooming out
  three times, not zooming in. Fixes bug #155446.
2005-09-27 06:53:19 +00:00
Sven Neumann 3d0adbf117 removed GimpZoomWidgetType.
2005-09-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgetsenums.[ch]: removed GimpZoomWidgetType.

	* libgimpwidgets/gimpzoommodel.[ch]: removed gimp_zoom_widget_new()
	in favor of gimp_zoom_button_new().

	* libgimp/gimpzoompreview.c: changed accordingly.

	* libgimpwidgets/gimpwidgets.def: updated.

	* plug-ins/MapObject/mapobject_main.[ch]
	* plug-ins/MapObject/mapobject_preview.c
	* plug-ins/MapObject/mapobject_ui.c: use a GimpZoomModel and let
	it create the zoom buttons.

	* plug-ins/MapObject/mapobject_apply.c
	* plug-ins/MapObject/mapobject_image.c
	* plug-ins/MapObject/mapobject_shade.c: include "gimp/gimpui.h".
2005-09-25 21:22:39 +00:00
Sven Neumann 1f0aff2b09 libgimpwidgets/gimpwidgets.def added gimp_zoom_model_zoom() and changed
2005-09-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.def
	* libgimpwidgets/gimpzoommodel.[ch]: added gimp_zoom_model_zoom()
	and changed gimp_zoom_model_get_fraction() to take a model instead
	of the zoom factor.

	* app/display/gimpdisplayshell.[ch]: use a GimpZoomModel for the
	display scale factor.

	* app/actions/image-commands.c
	* app/actions/view-actions.c
	* app/actions/view-commands.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-title.c
	* app/display/gimpnavigationeditor.c
	* app/display/gimpstatusbar.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmagnifytool.c: changed accordingly.
2005-09-25 17:03:03 +00:00
Sven Neumann 13ebb1ca2b added more values to the GimpZoomType enum.
2005-09-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgetsenums.h: added more values to the
	GimpZoomType enum.

	* libgimpwidgets/gimpzoommodel.c (gimp_zoom_model_zoom_step):
	handle the new enum values.

	* app/actions/view-commands.c (view_zoom_cmd_callback) use the new
	values.

	* app/display/gimpdisplayshell.c (gimp_display_shell_new): cosmetics.
2005-09-25 12:10:01 +00:00
Sven Neumann 8d60ac2f40 *** empty log message *** 2005-09-25 10:17:41 +00:00
David Odin 5f32493cc8 remove the GIMP_ZOOM_LABEL value from GimpZoomWidgetType.
* libgimpwidgets/gimpwidgetsenums.h: remove the GIMP_ZOOM_LABEL value
  from GimpZoomWidgetType.

* libgimpwidgets/gimpwidgetsenums.c: regenerated.

* libgimp/gimpzoompreview.c: provides two read only properties,
  "fraction" and "percentage" to be used with prop widgets.

* libgimpwidgets/gimpzoommodel.c: use a gimp_prop_label to show the
  zoom fraction.
2005-09-24 21:12:56 +00:00
David Odin f94f48f130 Moved the GimpZoomType enum from here...
* app/widgets/widgets-enums.h: Moved the GimpZoomType enum from	here...

* libgimpwidgets/gimpwidgetsenums.h: ...to here.

* app/widgets/widgets-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.

* app/display/gimpdisplayshell-scale.[ch]: removed
  gimp_display_shell_scale_zoom_step and
  gimp_display_shell_scale_get_fraction from here...

* libgimpwidgets/gimpzoommodel.[ch]: ... to here so we can use these
  utility functions in plug-ins and in the core.
  Also removed the step-size property since the zoom-model now use
  gimp_zoom_model_zoom_step.

* app/actions/view-commands.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpdisplayshell.c
* app/tools/gimpmagnifytool.c: modified accordingly.

* libgimp/gimpzoompreview.c: don't pass any argument to the
  gimp_zoom_model_new function.

* libgimpwidgets/gimpwidgets.def: added gimp_zoom_model_zoom_step
  (gimp_zoom_model_get_fraction was already there)

* devel-docs/app/app-sections.txt: removed
  gimp_display_shell_scale_zoom_step and
  gimp_display_shell_scale_get_fraction.
2005-09-24 17:25:36 +00:00
David Odin a4baae329d renamed the properties "value", "minimum" and "maximum".
* libgimpwidgets/gimpzoommodel.c: renamed the properties "value",
  "minimum" and "maximum".

* libgimp/gimpzoompreview.c: modified accordingly.
2005-09-22 17:24:50 +00:00
David Odin 68ea16b7a1 use private data instead of struct members. Added min-factor and
* libgimpwidgets/gimpzoommodel.[ch]: use private data instead of
  struct members. Added min-factor and max-factor properties so we can
  set the zoom range. These can be set by a new utility function:
  gimp_zoom_model_set_range.

* libgimpwidgets/gimpwidgets.def: added gimp_zoom_model_set_range.

* libgimp/gimpzoompreview.c: use gimp_zoom_model_set_range so we can
  only zoom in.
2005-09-20 19:56:52 +00:00
David Odin 5b538db8e4 New object to handle zoom factor, and create widgets to control or view
* libgimpwidgets/gimpzoommodel.[ch]: New object to handle zoom
  factor, and create widgets to control or view this value.

* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h: Added gimpzoommodel.[ch].

* libgimpwidgets/gimpwidgetsenums.h: new enum: GimpZoomWidgetType.
  This enumerate which knid of widget you can created from the zoom
  model.

* libgimpwidgets/gimpwidgetsenums.c
* libgimpwidgets/gimpwidgetstypes.h: regenerated.

* libgimpwidgets/gimppreview.c: move the update toggle to the bottom
  of the vbox.

* libgimp/Makefile.am
* libgimp/gimpui.h
* libgimp/gimpuitypes.h
* libgimp/gimpzoompreview.[ch]: New widget, derivated from
  GimpScrolledPreview, which offer the same functionnalities as the
  GimpAspectPreview widget plus zoom facilities.

* plug-ins/common/AlienMap2.c
* plug-ins/common/apply_lens.c
* plug-ins/common/blinds.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/colorify.c
* plug-ins/common/flarefx.c
* plug-ins/common/illusion.c
* plug-ins/common/jigsaw.c
* plug-ins/common/mapcolor.c
* plug-ins/common/max_rgb.c
* plug-ins/common/nova.c
* plug-ins/common/polar.c
* plug-ins/common/retinex.c
* plug-ins/common/waves.c
* plug-ins/common/whirlpinch.c: use a GimpZoomPreview instead of a
  GimpAspectPreview.
2005-09-19 22:58:16 +00:00