Commit graph

59 commits

Author SHA1 Message Date
Michael Natterer
2f425f0e2a libgimpwidgets: allow NULL adjustments in gimp_scroll_adjustment_values() 2018-05-29 00:04:31 +02:00
Michael Natterer
7fab74f431 libgimpwidgets: use G_DEFINE_ABSTRACT_CLASS for preview classes 2018-05-28 17:24:58 +02:00
Michael Natterer
ee62c7e92c libgimpwidgets: undeprecate GimpScrolledPreview 2018-05-21 14:07:40 +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
4a979995a3 libgimpwidgets: add gimp_scroll_adjustment_values()
and use it in GimpScrolledPreview. It supports smooth scrolling and
does roughly the same as a whole lot of magic code in GtkScrolledWindow
and GtkRange, resulting in the same scrolling behavior as in stock
GTK+ widgets.
2018-05-20 21:06:34 +02:00
Michael Natterer
08458dcdf6 libgimpwidgets: port GimpPreview to GtkGrid 2018-05-20 21:06:34 +02:00
Michael Natterer
d87eddb1c4 libgimpwidgets: move all GimpPreview members to private
and add tons of API so subclasses can still do their thing, probably
subject to change/fix.
2018-05-20 21:06:33 +02:00
Michael Natterer
3e680b9f32 libgimpwidgets: move all GimpScrolledPreview members to private 2018-05-20 21:06:33 +02:00
Michael Natterer
a535e425ee libgimpwidgets: move all GimpPreviewArea members to private 2018-05-20 21:06:33 +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
37e24d0059 libgimpwidgets: remove gimp3migration.[ch] 2018-05-20 21:06:29 +02:00
Michael Natterer
6e982cd0a4 libgimpwidgets: use g_object_ref()/unref() for GdkCursors
The are GObjects now.
2018-05-20 21:06:28 +02:00
Michael Natterer
8c75151f39 llibgimpwidgets: port GimpScrolledPreview to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer
91d382608f libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:27 +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
71894bd787 libgimpwidgets: rename gimpstock.[ch] to gimpicons.[ch]
because stock is on its way out, so we better start renaming and
deprecating stuff sooner than later.
2015-12-12 20:44:46 +01:00
Michael Natterer
8005eea835 Remove the "GIMP" from all "Since: GIMP 2.x" API doc comments
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.
2015-05-31 21:18:09 +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
16817c666f libgimpwidgets: add gtk_scrollbar_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:41 +02:00
Michael Natterer
60ebedb319 libgimpwidgets: no need to set a GtkRange's update-policy to CONTINUOUS
because it's the default.
2011-01-07 15:06:56 +01: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
a2c70822d4 Use accessors from GTK+ 2.20 instead of using sealed members directly 2010-04-19 19:21:07 +02:00
Michael Natterer
1aeb315ecf undef GTK_DISABLE_DEPRECATED in many places which undef GSEAL_ENABLE
because the widget flag access macros (e.g. GTK_WIDGET_REALIZED) are
now deprecated in GTK+ master.
2010-03-06 23:14:29 +01:00
Michael Natterer
eac902d065 libgimp: use gtk_widget_get_visible() instead of GTK_WIDGET_VISIBLE() 2010-01-17 16:51:48 +01:00
Michael Natterer
fcd346a227 Build with GSEAL_ENABLE with a few exceptions
Use the new accessors in GTK+ 2.18 and #undef GSEAL_ENABLE where
accessors are missing or where I'm not quite sure how to fix the
stuff yet.
2009-10-17 18:51:48 +02:00
Martin Nordholts
eb6bef33e4 Use gtk_widget_set_visible()
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.
2009-10-17 15:07:34 +02:00
Michael Natterer
e6af54a687 use GtkAdjustment's accessors.
2009-03-22  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c: use GtkAdjustment's
	accessors.


svn path=/trunk/; revision=28199
2009-03-22 20:46:48 +00: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
Sven Neumann
ec12326ccb app/widgets/gimpnavigationview.c hardcode the colors to black and white.
2008-08-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpnavigationview.c
	* libgimpwidgets/gimpscrolledpreview.c: hardcode the colors to
	black and white. Using theme colors doesn't make sense here.


svn path=/trunk/; revision=26719
2008-08-22 21:44:52 +00:00
Sven Neumann
943c4dba85 draw the navigation popup using Cairo, just as we do it in the core now.
2008-08-22  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.[ch]: draw the navigation
	popup using Cairo, just as we do it in the core now.


svn path=/trunk/; revision=26718
2008-08-22 21:30:33 +00:00
Michael Natterer
58cfcd4f57 libgimp/gimpgradientselectbutton.c libgimp/gimpmenu.c
2008-06-28  Michael Natterer  <mitch@gimp.org>

	* libgimp/gimpgradientselectbutton.c
	* libgimp/gimpmenu.c
	* libgimpwidgets/gimpbrowser.c
	* libgimpwidgets/gimpcellrenderercolor.c
	* libgimpwidgets/gimpcellrenderertoggle.c
	* libgimpwidgets/gimpchainbutton.c
	* libgimpwidgets/gimpcolorarea.c
	* libgimpwidgets/gimpcolorscale.c
	* libgimpwidgets/gimpcolorscales.c
	* libgimpwidgets/gimpcolorselect.c
	* libgimpwidgets/gimpenumwidgets.c
	* libgimpwidgets/gimpframe.c
	* libgimpwidgets/gimphelpui.c
	* libgimpwidgets/gimpoffsetarea.c
	* libgimpwidgets/gimppreviewarea.c
	* libgimpwidgets/gimppropwidgets.c
	* libgimpwidgets/gimpscrolledpreview.c: use accessors instead of
	accessing members of GTK+ widgets directly.


svn path=/trunk/; revision=26005
2008-06-28 15:09:46 +00:00
Sven Neumann
1449a6d202 libgimpwidgets/gimpscrolledpreview.c don't rely on the pointer position in
2007-12-18  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	* libgimpwidgets/gimpcolorselect.c: don't rely on the pointer
	position in the GdkEventMotion struct, query the pointer instead.

svn path=/trunk/; revision=24396
2007-12-18 17:57:27 +00:00
Sven Neumann
aabb94ec92 libgimpwidgets/gimpcolorselect.c use gdk_event_request_motions() to handle
2007-11-04  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpcolorselect.c
	* libgimpwidgets/gimpscrolledpreview.c: use
	gdk_event_request_motions() to handle motion hint events.


svn path=/trunk/; revision=24050
2007-11-04 12:52:47 +00:00
Sven Neumann
5226c66080 changed move cursor to GDK_HAND1 and switch to GDK_FLEUR while the mouse
2007-11-01  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c: changed move cursor to
	GDK_HAND1 and switch to GDK_FLEUR while the mouse button is down.

svn path=/trunk/; revision=24029
2007-11-01 15:50:05 +00:00
Sven Neumann
fa3e0fb71a use small-checks for the navigation popup and inherit the check-type from
2007-10-28  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_nav_button_press): use small-checks for 
the
	navigation popup and inherit the check-type from the preview.


svn path=/trunk/; revision=23979
2007-10-27 22:01:25 +00:00
Sven Neumann
24c7fc1e8d formatting.
2007-09-21  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimppreview.c: formatting.

	* libgimpwidgets/gimpscrolledpreview.c: make use of freeze/thaw to
	reduce the number of updates during initialization.

svn path=/trunk/; revision=23602
2007-09-21 12:19:00 +00:00
Sven Neumann
e3813131b7 also use the middle mouse button for panning.
2007-04-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c: also use the middle mouse
	button for panning.

	* plug-ins/common/nova.c: override the default mouse handling of
	the GimpScrolledPreview and allow to reposition the center using
	the left mouse button. Fixes bug #364432.

	* app/tools/gimprectangletool.c: formatting.

svn path=/trunk/; revision=22319
2007-04-25 10:10:43 +00:00
Sven Neumann
2c6bf5c03c applied patch from Aurimas Juška that fixes positioning of the quick
2007-04-18  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_nav_button_press): applied patch from
	Aurimas Juška that fixes positioning of the quick navigation
	popup (bug #430917).

svn path=/trunk/; revision=22276
2007-04-18 07:55:13 +00:00
Sven Neumann
64e893e62f there's no need to make GTypeInfo and GInterfaceInfo structs static.
2006-10-18  Sven Neumann  <sven@gimp.org>

        * [lots of files]: there's no need to make GTypeInfo and
        GInterfaceInfo structs static.
2006-10-18 13:17:50 +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
10bc4df305 fixed check that suppresses the redraw for motion events that don't cause
2006-02-07  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_area_event): fixed check that suppresses
	the redraw for motion events that don't cause the preview to scroll.
2006-02-07 12:34:07 +00:00
Sven Neumann
539ff359a4 connect-after to "realize" and "size-allocate" signals of the preview area
2006-02-06  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimppreview.c: connect-after to "realize" and
	"size-allocate" signals of the preview area and call the
	set-cursor method from the callback.

	* libgimpwidgets/gimpscrolledpreview.c: no need to explicitely set
	the cursor now that the virtual method is used correctly.

	* libgimp/gimpzoompreview.c: implement set-cursor and set the move
	cursor in accordance with the zoom factor.
2006-02-06 11:07:48 +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
a4c54f7aa8 removed unused variable.
2005-12-20  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c: removed unused variable.
2005-12-20 09:18:09 +00:00
Sven Neumann
887129a2c3 request motion hints in the navigation popup and redraw the window
2005-11-22  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c: request motion hints in
	the navigation popup and redraw the window immidiately to give
	better feedback.
2005-11-22 13:31:08 +00:00
Sven Neumann
3ac4aab0a1 zoom on Ctrl-Scroll events.
2005-11-22  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpzoompreview.c: zoom on Ctrl-Scroll events.

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_area_event): correctly clamp adjustment
	value on scroll events. Ignore scroll events when Ctrl is pressed.
2005-11-22 11:50:29 +00:00
Sven Neumann
795e2a8be1 scroll using the mouse wheel.
2005-11-21  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_area_event): scroll using the mouse wheel.
2005-11-21 17:53:58 +00:00
David Odin
ce58314257 don't return void in a function returning a gboolean.
* libgimpwidgets/gimpscrolledpreview.c: don't return void in a
  function returning a gboolean.
2005-11-05 12:40:17 +00:00
Sven Neumann
20db799250 draw the rectangle according to the scrollbar adjustments.
2005-09-28  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpscrolledpreview.c
	(gimp_scrolled_preview_nav_popup_expose): draw the rectangle
	according to the scrollbar adjustments.
2005-09-28 12:53:28 +00:00