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