gimp/app/display
Ell 4ef06b9922 app: add GimpToolWidgetGroup
GimpToolWidgetGroup is a tool widget acting as a container for
child widgets, multiplexing widget events and demultiplexing tool
events.  It can be used by tools to display multiple widgets
simultaneously.

The group keeps track of the current focus widget, and hover
widget.  Certain events are only dispatched to/forwarded from these
widgets.

The hover widget is determined by performing a hit test for all the
children, starting from the last child.  The first widget returning
GIMP_HIT_DIRECT, if any, is selected as the hover widget;
otherwise, if the current focus widget returns GIMP_HIT_INDIRECT,
it's selected; otherwise, if exactly one widget returns
GIMP_HIT_INDIRECT, it's selected; otherwise, there is no hover
widget.

The focus widget is set when clicking on a widget (or
programatically, using gimp_tool_widget_set_focus()).
Additionally, the group can raise the clicked widget to the top of
the stack (see gimp_tool_widget_group_set_auto_raise().)
2018-06-05 04:04:47 -04:00
..
.gitignore enums: add intermediate generated enum files to .gitignore 2017-08-24 15:35:27 -04:00
Makefile.am app: add GimpToolWidgetGroup 2018-06-05 04:04:47 -04:00
display-enums.c app: add dashed canvas handle types 2017-10-09 12:48:49 -04:00
display-enums.h app: add GimpToolWidget::hit() virtual function 2018-06-05 04:04:47 -04:00
display-types.h app: add GimpToolWidgetGroup 2018-06-05 04:04:47 -04:00
gimpcanvas-style.c app: improve drawing of sample points so they are always visible 2018-04-19 16:20:41 +02:00
gimpcanvas-style.h Bug 761270 - layer boundary not re-drawn correctly on scrolling 2016-03-26 22:50:10 +01:00
gimpcanvas.c app: fix drawing of the canvas padding color 2018-05-23 22:46:54 +02:00
gimpcanvas.h app: fix drawing of the canvas padding color 2018-05-23 22:46:54 +02:00
gimpcanvasarc.c app: avoid scaling GimpCanvasArc to zero, it causes a non-invertable matrix 2018-05-04 11:48:44 +02:00
gimpcanvasarc.h app: add gimp_canvas_arc_set() 2017-06-27 00:46:24 +02:00
gimpcanvasboundary.c app: rename gimp_cairo_foo() functions to follow cairo naming scheme 2018-03-07 06:18:20 -05:00
gimpcanvasboundary.h app: BoundSeg -> GimpBoundSeg, boundary_foo() -> gimp_boundary_foo() 2012-05-02 17:46:02 +02:00
gimpcanvasbufferpreview.c app: some cleanup in GimpCanvasBufferPreview 2015-03-01 00:18:10 +01:00
gimpcanvasbufferpreview.h app: add canvas buffer preview 2015-02-27 20:21:52 +01:00
gimpcanvascorner.c app: add gimp_canvas_corner_set() which sets everything except the anchor 2017-06-24 19:48:09 +02:00
gimpcanvascorner.h app: add gimp_canvas_corner_set() which sets everything except the anchor 2017-06-24 19:48:09 +02:00
gimpcanvascursor.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvascursor.h app: add and use more GimpCanvasItem setters 2011-03-28 15:15:43 +02:00
gimpcanvasgrid.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpcanvasgrid.h app: add a canvas grid item class and use it to draw the grid 2010-10-02 20:57:40 +02:00
gimpcanvasgroup.c app: properly remove the children when a GimpCanvasGroup gets destroyed 2017-06-10 22:08:09 +02:00
gimpcanvasgroup.h Bug 735810 - performance shrinkage of Paths tool 2016-01-24 00:57:16 +01:00
gimpcanvasguide.c Bug 761270 - layer boundary not re-drawn correctly on scrolling 2016-03-26 22:50:10 +01:00
gimpcanvasguide.h app: move all guide styling to gimpcanvas-style. 2016-02-03 19:38:32 +01:00
gimpcanvashandle.c app: rename gimp_cairo_foo() functions to follow cairo naming scheme 2018-03-07 06:18:20 -05:00
gimpcanvashandle.h app: add utility function gimp_canvas_handle_calc_size() 2017-06-20 01:02:23 +02:00
gimpcanvasitem-utils.c app: add various handle and vectors hit tests to gimpcanvasitems-utils.[ch] 2017-06-21 23:21:26 +02:00
gimpcanvasitem-utils.h app: add various handle and vectors hit tests to gimpcanvasitems-utils.[ch] 2017-06-21 23:21:26 +02:00
gimpcanvasitem.c app: replace all g_assert() by the newly added gimp_assert() 2018-02-11 22:23:10 +01:00
gimpcanvasitem.h app: add gimp_canvas_item_transform_distance() and transform_distance_square() 2017-06-10 21:55:40 +02:00
gimpcanvaslayerboundary.c app: rename more stuff from "floating sel" to "floating selection" 2016-05-20 16:46:26 +02:00
gimpcanvaslayerboundary.h app: add a layer boundary canvas item class 2010-10-03 00:28:40 +02:00
gimpcanvasline.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvasline.h app: change GimpCanvasItem setters to take GimpCanvasItem* 2011-03-28 12:20:36 +02:00
gimpcanvaspassepartout.c Bug 770689 - Custom transparency controller for dark... 2018-01-02 14:33:27 +01:00
gimpcanvaspassepartout.h app/display: add new canvas item GimpCanvasPassePartout 2010-10-18 22:17:27 +02:00
gimpcanvaspath.c app: use a cairo recording surface to measure GimpCanvasPath's extents 2018-05-20 21:06:35 +02:00
gimpcanvaspath.h app: Fix broken header guards. 2014-05-25 20:50:56 -04:00
gimpcanvaspen.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvaspen.h app: whitespace fix in gimpcanvaspen.h 2013-04-30 17:18:28 +02:00
gimpcanvaspolygon.c app: use gimp_transform_polygon() in GimpCanvasPolygon 2018-02-03 05:58:41 -05:00
gimpcanvaspolygon.h app: add gimp_canvas_polygon_set_points() 2017-06-23 01:40:35 +02:00
gimpcanvasprogress.c app: throttle GimpCanvasProgress updates 2018-03-16 04:34:00 -04:00
gimpcanvasprogress.h app: add GimpCanvasProgress, an on-canvas progress item 2010-11-09 19:35:04 +01:00
gimpcanvasproxygroup.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpcanvasproxygroup.h app: add a "shell" property to GimpCanvasItem 2010-10-01 14:13:45 +02:00
gimpcanvasrectangle.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvasrectangle.h app: port GimpMagnifyTool away from draw_tool_pause()/resume() 2011-03-28 12:22:29 +02:00
gimpcanvasrectangleguides.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvasrectangleguides.h app: add "n-lines" property to GimpCanvasRectangleGuides 2011-07-24 17:49:31 +02:00
gimpcanvassamplepoint.c app: improve drawing of sample points so they are always visible 2018-04-19 16:20:41 +02:00
gimpcanvassamplepoint.h app: gimp_canvas_sample_point_set(): x and y are integers not doubles 2011-04-03 23:42:26 +02:00
gimpcanvastextcursor.c app: remove GimpDisplayShell parameters from all GimpCanvasItem vfuncs 2013-04-18 16:46:01 +02:00
gimpcanvastextcursor.h app: add a "shell" property to GimpCanvasItem 2010-10-01 14:13:45 +02:00
gimpcanvastransformguides.c app: use gimp_transform_polygon() in GimpCanvasTransformGuides 2018-01-28 16:37:34 -05:00
gimpcanvastransformguides.h app: use gimp_transform_polygon() in GimpCanvasTransformGuides 2018-01-28 16:37:34 -05:00
gimpcanvastransformpreview.c app: pass near-plane z-coordinate to gegl:transform 2018-01-28 16:37:34 -05:00
gimpcanvastransformpreview.h app: use matrix to determine if doing perspective transform in preview 2017-11-14 11:24:56 -05:00
gimpcursorview.c app: port GimpCursorView to GtkGrid 2018-05-20 21:06:30 +02:00
gimpcursorview.h Bug 647957 - GimpColorFrame's CMYK mode is not color managed 2016-10-18 22:48:04 +02:00
gimpdisplay-foreach.c app: fix implicit enum casting 2015-01-10 00:02:28 +01:00
gimpdisplay-foreach.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplay-handlers.c Move refing/unrefing the image to gimp_display_set_image() 2009-10-07 21:13:39 +02:00
gimpdisplay-handlers.h Move refing/unrefing the image to gimp_display_set_image() 2009-10-07 21:13:39 +02:00
gimpdisplay.c Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimpdisplay.h Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimpdisplayshell-actions.c app: add gimp_display_shell_set_action_sensitive() 2016-05-16 13:00:27 +02:00
gimpdisplayshell-actions.h app: add gimp_display_shell_set_action_sensitive() 2016-05-16 13:00:27 +02:00
gimpdisplayshell-appearance.c app: fix drawing of the canvas padding color 2018-05-23 22:46:54 +02:00
gimpdisplayshell-appearance.h app: turn the transform preview into a GimpCanvasItem 2011-03-27 16:40:41 +02:00
gimpdisplayshell-autoscroll.c app: add gimp_context_get_foreground,background_pixel() 2012-05-02 17:50:41 +02:00
gimpdisplayshell-autoscroll.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-callbacks.c app: don't set a permanent size request on the canvas 2018-05-29 21:09:44 +02:00
gimpdisplayshell-callbacks.h Revert "Bug 794356 - Rulers always shown for subsequent image views" 2018-05-20 21:06:30 +02:00
gimpdisplayshell-close.c Use the new macros from the last commit in all files 2018-05-20 21:06:34 +02:00
gimpdisplayshell-close.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-cursor.c app: add GimpDockContainer::get_dialog_factory() 2016-11-25 13:26:08 +01:00
gimpdisplayshell-cursor.h app: rename the functions dealing with GimpDisplayShell's software cursor 2011-02-20 14:46:52 +01:00
gimpdisplayshell-dnd.c Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimpdisplayshell-dnd.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-draw.c app: fix drawing of the canvas padding color 2018-05-23 22:46:54 +02:00
gimpdisplayshell-draw.h app: remove rectangle parameters from gimp_display_shell_draw_checkerboard() 2013-04-20 10:47:13 +02:00
gimpdisplayshell-expose.c app: pass the cairo_region_t to gdk_window_invalidate_region() directly 2018-05-20 21:06:26 +02:00
gimpdisplayshell-expose.h app: remove the unused gimp_display_shell_expose_vectors() 2010-11-13 23:02:07 +01:00
gimpdisplayshell-filter-dialog.c Use the new macros from the last commit in all files 2018-05-20 21:06:34 +02:00
gimpdisplayshell-filter-dialog.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-filter.c app: use gimp_color_display_stack_get_filters() instead of stack->filters 2018-05-20 21:06:29 +02:00
gimpdisplayshell-filter.h app: add a GimpColorConfig to GimpDisplayShell 2016-05-14 00:56:26 +02:00
gimpdisplayshell-grab.c app: the last s/GdkDeviceManager/GdkSeat/ 2018-05-20 21:06:35 +02:00
gimpdisplayshell-grab.h app: sprinkle const qualifiers in the tool event callback functions 2011-05-31 23:18:11 +02:00
gimpdisplayshell-handlers.c Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimpdisplayshell-handlers.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-icon.c app: fix application icon compositing with the canvas on display scale. 2018-05-31 00:27:23 +02:00
gimpdisplayshell-icon.h Simplify GimpDisplayShell's icon update API 2009-10-08 23:30:56 +02:00
gimpdisplayshell-items.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpdisplayshell-items.h app: add an unrotated canvas item group to GimpDisplayShell 2013-04-24 00:01:01 +02:00
gimpdisplayshell-layer-select.c app: kill all except one GtkAlignment, the tag popup one is a bit tricky 2018-05-20 21:06:33 +02:00
gimpdisplayshell-layer-select.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-profile.c app: don't upscale preallocated display buffers by GIMP_DISPLAY_RENDER_MAX_SCALE 2017-12-31 11:57:22 -05:00
gimpdisplayshell-profile.h app: remove gimp_display_shell_profile_convert_buffer() 2016-05-30 01:26:50 +02:00
gimpdisplayshell-progress.c app: add GIMP_MESSAGE_BUG_WARNING + GIMP_MESSAGE_BUG_CRITICAL severity. 2018-02-12 18:22:15 +01:00
gimpdisplayshell-progress.h Add gimp_statusbar_override/restore_window_title() 2009-09-28 22:55:52 +02:00
gimpdisplayshell-render.c app: fix formatting in previous commit 2018-03-28 00:44:33 +02:00
gimpdisplayshell-render.h Bug 759287 - Canvas Tearing While in Rotated Canvas View 2017-12-09 05:01:30 -05:00
gimpdisplayshell-rotate-dialog.c Use the new macros from the last commit in all files 2018-05-20 21:06:34 +02:00
gimpdisplayshell-rotate-dialog.h app: add a rotate dialog to rotate to exact degrees 2013-04-20 23:22:14 +02:00
gimpdisplayshell-rotate.c Bug 768726 - Canvas rotation, flipping applied in image space ... 2016-07-21 21:24:06 +00:00
gimpdisplayshell-rotate.h Bug 758049 - Please add canvas flipping 2015-11-13 18:51:32 +01:00
gimpdisplayshell-rulers.c app: avoid expensive rotated scale calculation when scale_x == scale_y 2016-08-09 22:28:21 +00:00
gimpdisplayshell-rulers.h app: move the code to update scrollbars and rulers to their own files 2016-01-05 18:05:38 +01:00
gimpdisplayshell-scale-dialog.c Use the new macros from the last commit in all files 2018-05-20 21:06:34 +02:00
gimpdisplayshell-scale-dialog.h Change licence to GPLv3 (and to LGPLv3 for libgimp). 2009-01-17 22:28:01 +00:00
gimpdisplayshell-scale.c Issue #1531 - Zooming with mouse movement should keep track of original point 2018-06-04 11:42:02 +02:00
gimpdisplayshell-scale.h Issue #1531 - Zooming with mouse movement should keep track of original point 2018-06-04 11:42:02 +02:00
gimpdisplayshell-scroll.c app: code layout/typo fixes 2016-08-09 21:55:19 +00:00
gimpdisplayshell-scroll.h app: move the code to update scrollbars and rulers to their own files 2016-01-05 18:05:38 +01:00
gimpdisplayshell-scrollbars.c app: make rulers rotation aware 2016-08-09 21:31:07 +00:00
gimpdisplayshell-scrollbars.h app: add gimp_display_shell_scrollbars_update_steppers() 2016-01-05 20:53:34 +01:00
gimpdisplayshell-selection.c app: rename gimp_cairo_foo() functions to follow cairo naming scheme 2018-03-07 06:18:20 -05:00
gimpdisplayshell-selection.h app: get rid of selection_control() in core/ and display/ 2010-10-09 20:28:37 +02:00
gimpdisplayshell-title.c app: more gimp_unit_get_scaled_digits() usage. 2017-01-24 00:28:33 +01:00
gimpdisplayshell-title.h Remove gimp_display_shell_title() because it was completely empty 2009-09-28 22:55:39 +02:00
gimpdisplayshell-tool-events.c Issue #1531 - Zooming with mouse movement should keep track of original point 2018-06-04 11:42:02 +02:00
gimpdisplayshell-tool-events.h Bug 732160 - menu activation with alt-somekey makes tools stay... 2016-04-15 00:22:25 +01:00
gimpdisplayshell-transform.c Bug 795557 - Misc. typo fixes in source, comments and doxygen (pt3) 2018-04-25 23:49:06 +02:00
gimpdisplayshell-transform.h Bug 791741 - Transparent rectangles when image is drawn 2017-12-19 15:04:51 -05:00
gimpdisplayshell-utils.c app: new gimp_display_shell_get_line_status(). 2017-12-22 23:24:24 +01:00
gimpdisplayshell-utils.h app: new gimp_display_shell_get_line_status(). 2017-12-22 23:24:24 +01:00
gimpdisplayshell.c app: fix positioning of the text tool's style overlay 2018-05-22 01:59:26 +02:00
gimpdisplayshell.h Issue #1531 - Zooming with mouse movement should keep track of original point 2018-06-04 11:42:02 +02:00
gimpdisplayxfer.c app: improvements in code executed a lot while painting. 2018-03-31 00:18:46 +02:00
gimpdisplayxfer.h app: make projection chunk size and display render chunk size configurable 2014-06-04 01:23:41 +02:00
gimpimagewindow.c app: don't use gtk_window_parse_geometry() in GimpImageWindow 2018-05-22 12:33:58 +02:00
gimpimagewindow.h Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimpmotionbuffer.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpmotionbuffer.h Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpmultiwindowstrategy.c app: allow setting parent for dialogs created by GimpDialogFactory. 2018-05-20 21:06:33 +02:00
gimpmultiwindowstrategy.h app: Make positioning of new dockables depend on window mode 2011-07-03 21:20:36 +02:00
gimpnavigationeditor.c Enable and fix smooth scrolling and zooming 2018-05-20 21:06:34 +02:00
gimpnavigationeditor.h app: port some stuff to gdk_seat_grab/ungrab 2018-05-20 21:06:30 +02:00
gimpscalecombobox.c Undeprecate/improve GimpScaleComboBox and GimpUnitComboBox 2018-05-20 21:06:35 +02:00
gimpscalecombobox.h app: port GimpScalComboBox to GTK+ 3.0 2018-05-20 21:06:26 +02:00
gimpsinglewindowstrategy.c app: allow setting parent for dialogs created by GimpDialogFactory. 2018-05-20 21:06:33 +02:00
gimpsinglewindowstrategy.h app: Make positioning of new dockables depend on window mode 2011-07-03 21:20:36 +02:00
gimpstatusbar.c Issue #1560 - invisible canvas flip/rotation buttons... 2018-06-04 15:13:23 +02:00
gimpstatusbar.h Issue #1560 - invisible canvas flip/rotation buttons... 2018-06-04 15:13:23 +02:00
gimptoolcompass.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolcompass.h app: add GimpToolCompass, which is the entire canvas GUI of the measure tool 2017-06-11 23:38:55 +02:00
gimptooldialog.c app: honor the use-header-bar setting in GimpToolDialog 2018-05-20 21:06:32 +02:00
gimptooldialog.h Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimptoolgui.c Use the new macros from the last commit in all files 2018-05-20 21:06:34 +02:00
gimptoolgui.h Port a lot of stuff from GdkScreen/monitor_number to GdkMonitor 2018-05-20 21:06:30 +02:00
gimptoolgyroscope.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolgyroscope.h app: add GimpToolGyroscope 2018-04-10 10:18:48 -04:00
gimptoolhandlegrid.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolhandlegrid.h app: add new GimpToolTransformGrid subclass GimpToolHandleGrid 2017-06-19 01:21:06 +02:00
gimptoolline.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolline.h app: add handle-clicked signal to GimpToolLine 2017-10-09 12:48:50 -04:00
gimptoolpath.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolpath.h app: add GimpToolWidget subclass GimpToolPath, a complete vectors editor 2017-06-21 23:27:20 +02:00
gimptoolpolygon.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolpolygon.h app: add a generic GimpToolWidget::response() signal 2017-06-25 23:23:27 +02:00
gimptoolrectangle.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptoolrectangle.h app: improve button release behavior or GimpToolRectangle a lot 2017-06-29 20:01:08 +02:00
gimptoolrotategrid.c app: add GimpToolTransformGrid, GimpToolRotateGrid and GimpToolShearGrid 2017-06-17 03:04:06 +02:00
gimptoolrotategrid.h app: add GimpToolTransformGrid, GimpToolRotateGrid and GimpToolShearGrid 2017-06-17 03:04:06 +02:00
gimptoolsheargrid.c app: add GimpToolTransformGrid, GimpToolRotateGrid and GimpToolShearGrid 2017-06-17 03:04:06 +02:00
gimptoolsheargrid.h app: add GimpToolTransformGrid, GimpToolRotateGrid and GimpToolShearGrid 2017-06-17 03:04:06 +02:00
gimptooltransformgrid.c app: implement GimpToolWidget::hit() in all tool widgets 2018-06-05 04:04:47 -04:00
gimptooltransformgrid.h app: manage the transform tools' grid properties in GimpTransformTool 2017-06-19 23:06:39 +02:00
gimptoolwidget.c app: add gimp_tool_widget_changed() 2018-06-05 04:04:47 -04:00
gimptoolwidget.h app: add gimp_tool_widget_changed() 2018-06-05 04:04:47 -04:00
gimptoolwidgetgroup.c app: add GimpToolWidgetGroup 2018-06-05 04:04:47 -04:00
gimptoolwidgetgroup.h app: add GimpToolWidgetGroup 2018-06-05 04:04:47 -04:00