From 6f817f71119774c09888fddf8ba28a96c4546165 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 21 Dec 2015 10:48:56 +0100 Subject: Add option for checkerboard background. Fixed bugs: - https://launchpad.net/bugs/397723 (bzr r14539) --- src/display/sodipodi-ctrlrect.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/display/sodipodi-ctrlrect.cpp') 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)); -- cgit v1.2.3