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