From 2f21b582cdf28cf9c1907498bcd9336671f656e1 Mon Sep 17 00:00:00 2001 From: James Turner Date: Fri, 16 Dec 2016 09:24:40 +0000 Subject: [PATCH] Canvas image fill and source rect setters. C++ code can set the fill and source rect directly. --- simgear/canvas/elements/CanvasImage.cxx | 19 ++++++++++++++++--- simgear/canvas/elements/CanvasImage.hxx | 5 +++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/simgear/canvas/elements/CanvasImage.cxx b/simgear/canvas/elements/CanvasImage.cxx index 152cb112..aac82287 100644 --- a/simgear/canvas/elements/CanvasImage.cxx +++ b/simgear/canvas/elements/CanvasImage.cxx @@ -487,11 +487,17 @@ namespace canvas if( !fill.empty() // If no color is given default to white && !parseColor(fill, color) ) return; - - _colors->front() = color; - _colors->dirty(); + setFill(color); } + //---------------------------------------------------------------------------- + void Image::setFill(const osg::Vec4& color) + { + _colors->front() = color; + _colors->dirty(); + } + + //---------------------------------------------------------------------------- void Image::setOutset(const std::string& outset) { @@ -506,6 +512,13 @@ namespace canvas _attributes_dirty |= SRC_RECT; } + //---------------------------------------------------------------------------- + void Image::setSourceRect(const SGRect& sourceRect) + { + _attributes_dirty |= SRC_RECT; + _src_rect = sourceRect; + } + //---------------------------------------------------------------------------- void Image::setSlice(const std::string& slice) { diff --git a/simgear/canvas/elements/CanvasImage.hxx b/simgear/canvas/elements/CanvasImage.hxx index 3e6c7e9d..b7ddfb8f 100644 --- a/simgear/canvas/elements/CanvasImage.hxx +++ b/simgear/canvas/elements/CanvasImage.hxx @@ -61,6 +61,7 @@ namespace canvas void setImage(osg::ref_ptr img); void setFill(const std::string& fill); + void setFill(const osg::Vec4& color); /** * @see http://www.w3.org/TR/css3-background/#border-image-outset @@ -95,6 +96,10 @@ namespace canvas bool handleEvent(const EventPtr& event); + /** + * + */ + void setSourceRect(const SGRect& sourceRect); protected: enum ImageAttributes