summaryrefslogtreecommitdiffstats
path: root/src/display/sodipodi-ctrlrect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/display/sodipodi-ctrlrect.cpp')
-rw-r--r--src/display/sodipodi-ctrlrect.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/display/sodipodi-ctrlrect.cpp b/src/display/sodipodi-ctrlrect.cpp
index 75789ff50..ecc952c48 100644
--- a/src/display/sodipodi-ctrlrect.cpp
+++ b/src/display/sodipodi-ctrlrect.cpp
@@ -74,6 +74,8 @@ void CtrlRect::init()
{
_has_fill = false;
_dashed = false;
+ _checkerboard = false;
+
_shadow = 0;
_area = Geom::OptIntRect();
@@ -109,10 +111,17 @@ void CtrlRect::render(SPCanvasBuf *buf)
cairo_rectangle(buf->ct, 0.5 + area[X].min(), 0.5 + area[Y].min(),
area[X].max() - area[X].min(), area[Y].max() - area[Y].min());
+ if (_checkerboard) {
+ cairo_pattern_t *cb = ink_cairo_pattern_create_checkerboard();
+ cairo_set_source(buf->ct, cb);
+ cairo_pattern_destroy(cb);
+ cairo_fill_preserve(buf->ct);
+ }
if (_has_fill) {
ink_cairo_set_source_rgba32(buf->ct, _fill_color);
cairo_fill_preserve(buf->ct);
}
+
ink_cairo_set_source_rgba32(buf->ct, _border_color);
cairo_stroke(buf->ct);
@@ -297,6 +306,12 @@ void CtrlRect::setDashed(bool d)
_requestUpdate();
}
+void CtrlRect::setCheckerboard(bool d)
+{
+ _checkerboard = d;
+ _requestUpdate();
+}
+
void CtrlRect::_requestUpdate()
{
sp_canvas_item_request_update(SP_CANVAS_ITEM(this));