Commit Graph

2023 Commits

Author SHA1 Message Date
Michael Natterer f284e5f748 app: don't draw the draw tool's items to the wrong display 2010-09-26 16:56:26 +02:00
Michael Natterer e6ce564de4 app: add an infrastructure that allows to stroke multiple items at once
In order to avoid visually overlapping lines:

- GimpCanvasItem got a "suspend_stroking" API that allows to skip
  stroking and instead starts a new sub-path
- GimpCanvasGroup got a "group_stroking" API that sets suspend_stroking
  on all its children and does one stroke after calling all items'
  draw().
2010-09-26 14:12:54 +02:00
Michael Natterer e074d4d151 app: move the GimpCanvasItem typedef to display-types.h 2010-09-25 17:17:02 +02:00
Michael Natterer 349c1500c9 app: add a canvas group item which keeps around sub-items
It can draw them all with one call to draw() and returns a union of
their extents via get_extents().
2010-09-25 17:14:57 +02:00
Michael Natterer e89650edd9 app: fix size of outside corner handles 2010-09-25 00:02:26 +02:00
Michael Natterer e8d46f7098 app: fix GimpCanvasArc's extents so it doesn't leave artifacts 2010-09-24 22:55:54 +02:00
Michael Natterer d6f035a934 app: bye bye XOR :D 2010-09-24 21:03:51 +02:00
Michael Natterer 225d22473e app: add a text cursor canvas item class 2010-09-24 20:34:21 +02:00
Michael Natterer e7f1d444c3 app: remove much more dead code paths from the draw tool and the canvas 2010-09-24 19:08:19 +02:00
Michael Natterer 9c7cd6d41c app: fix canvas arc extents 2010-09-24 18:54:50 +02:00
Michael Natterer 4e5d47dcbf app: add an arc canvas item class 2010-09-24 18:41:57 +02:00
Michael Natterer 74fe162f93 app: move adding an arc path out to a utility function 2010-09-24 13:12:34 +02:00
Michael Natterer e98a20c158 app: increase max corner size 2010-09-24 13:11:54 +02:00
Michael Natterer 870faec210 app: fix bounding box calculation for lines that are not axis-aligned
because the square caps make these line extend up to
sqrt(1.5^2 + 1.5^2) beyond the end points.
2010-09-24 11:21:44 +02:00
Michael Natterer a29a7ec4a2 app: add a corner canvas item class 2010-09-24 10:50:05 +02:00
Michael Natterer 41c338ce93 app: remove XOR drawing code paths which are now dead 2010-09-24 02:11:04 +02:00
Michael Natterer 6ebc29818e app: add arc slices to GimpCanvasHandle 2010-09-24 01:32:09 +02:00
Michael Natterer 483efcbff5 app: add a boundary canvas item class
This can be done much better, but this one kindof works for now.
2010-09-23 23:38:27 +02:00
Michael Natterer d1d89e0dde app: add a "highlight" mode for the tool FG style
such a hack, but looks better than dashed lines
2010-09-23 19:25:22 +02:00
Michael Natterer 74bc42edf3 app: implement square handles 2010-09-23 19:24:40 +02:00
Michael Natterer 8dbab53fae app: add a guide line canvas item class 2010-09-23 19:24:16 +02:00
Michael Natterer 612aee9f33 app: change segment drawing to using pixel centers and CAP_SQUARE line ends
This looks exactly the same for the selection, but is needed like that
for segment drawing in tools.
2010-09-23 19:24:10 +02:00
Michael Natterer ddc63de6d6 app: remove "gboolean use_offsets" from gimpdisplayshell-transform.[ch] 2010-09-23 19:24:04 +02:00
Michael Natterer 7c82f3dc09 app: add gimp_canvas_polygon_new_from_coords()
and use it from gimp_draw_tool_draw_strokes().
2010-09-23 00:40:32 +02:00
Michael Natterer c80cea5937 app: proper line caps and joins for canvas items 2010-09-23 00:19:44 +02:00
Michael Natterer 5f349c352f app: nicer fill style for canvas items
Let's see if this works for anything else but filled handles
2010-09-23 00:11:49 +02:00
Michael Natterer c058ec93ee app: temporarily enable double buffering unconditionally 2010-09-23 00:11:18 +02:00
Michael Natterer 4bedffd2cf app: add a polygon canvas item class (filled polygons unimplemented) 2010-09-23 00:00:57 +02:00
Michael Natterer f719cf1ea2 app: implement circle handles 2010-09-23 00:00:57 +02:00
Sven Neumann ddcd5a6983 app: workaround warning about empty private struct 2010-09-22 23:38:08 +02:00
Michael Natterer 1ea16c0770 app: draw the active tool's stuff in the display expose handler 2010-09-22 22:24:22 +02:00
Michael Natterer 284403d99e app: fix width and height properties to allow negative sizes 2010-09-22 21:45:33 +02:00
Michael Natterer d0f6846ff5 app: remove premature canvas item extents caching optimization again 2010-09-22 10:33:41 +02:00
Michael Natterer de2ae87047 app: add GimpCanvasHandle which draws tool handles
Currently only a centered cross is implemented.
2010-09-21 19:22:29 +02:00
Michael Natterer 69da253e51 app: move enum GimpHandleType to display-enums.h 2010-09-20 19:26:34 +02:00
Michael Natterer 5e5cacfd4c app: fix canvas line extents 2010-09-19 23:50:35 +02:00
Michael Natterer 46836d950d app: add a canvas line class 2010-09-19 23:46:52 +02:00
Michael Natterer f17cc0093d app: minor cleanup and fixes 2010-09-19 23:46:06 +02:00
Michael Natterer 96bdf1fec5 app: refactor the canvas items to return a GdkRegion as extents
instead of invalidating the canvas themselves.
2010-09-19 23:20:36 +02:00
Michael Natterer 69a898cc9f app: some cairo tool drawing infrastructure for review, please have a look 2010-09-19 19:45:51 +02:00
Michael Natterer 11aecbd090 app: add styles for tool drawing (still unused) 2010-09-19 19:19:24 +02:00
Michael Natterer f04e16016f app: draw inactive paths blue on white 2010-09-19 19:14:42 +02:00
Michael Natterer 7e28f52dd7 app: remove unused clipping functions in GimpDrawTool and GimpCanvas 2010-09-19 18:58:23 +02:00
Michael Natterer 8a029f3e4e app: enable double buffering when editing vectors 2010-09-17 23:12:42 +02:00
Michael Natterer cca9257018 app: add functions to set the vectors' cairo style
so all style constants are in one place. Also draw the active path in
red on white instead of black on white.
2010-09-17 22:50:20 +02:00
Michael Natterer 8e33205b65 app: draw all vectors strokes with one cairo_stroke() 2010-09-17 22:30:43 +02:00
Sven Neumann ae0cf760ab app: only expose the area covered by the vectors object
gimp_display_shell_expose_vectors() exposes the bounding box of
the vectors plus a small border.
2010-09-17 21:32:38 +02:00
Michael Natterer 6bce0641d4 app: add signal GimpImage::update_vectors() and have the image manage updates
...just as we do for drawables. Connect to adding, removing, modifying
and toggling visibility of all vectors and emit "update-vectors"
accordingly. Add an update-vectors signal handler to GimpDisplayShell
and remove all other vectors handlers.
2010-09-17 11:31:57 +02:00
Sven Neumann 372e7316b7 app: adjust line style for cairo-drawn vectors 2010-09-17 00:12:38 +02:00
Sven Neumann a9a20e8c61 app: cleanup of vectors rendering
Respect the visible property of the active vectors object.
2010-09-16 21:51:23 +02:00