]> git.mxchange.org Git - simgear.git/blobdiff - simgear/canvas/elements/CanvasImage.hxx
Helper functions for SGRect and canvas::Element
[simgear.git] / simgear / canvas / elements / CanvasImage.hxx
index 453f7dce5d8dab0205f311529ee219737517c135..741d74d80c3ddfec4e075bd863b7e8adc9605aa3 100644 (file)
@@ -22,7 +22,7 @@
 #include "CanvasElement.hxx"
 
 #include <simgear/canvas/canvas_fwd.hxx>
-#include <simgear/math/SGRect.hxx>
+#include <simgear/misc/CSSBorder.hxx>
 #include <osg/Texture2D>
 
 namespace simgear
@@ -43,7 +43,7 @@ namespace canvas
        */
       Image( const CanvasWeakPtr& canvas,
              const SGPropertyNode_ptr& node,
-             const Style& parent_style,
+             const Style& parent_style = Style(),
              Element* parent = 0 );
       virtual ~Image();
 
@@ -88,34 +88,8 @@ namespace canvas
       enum ImageAttributes
       {
         SRC_RECT       = LAST_ATTRIBUTE << 1, // Source image rectangle
-        DEST_SIZE      = SRC_RECT << 1        // Element size
-      };
-
-      union CSSOffsets
-      {
-        float          val[4];
-        struct { float t, r, b, l; };
-      };
-
-      union CSSOffsetsTypes
-      {
-        bool          rel[4];
-        struct { bool t_rel, r_rel, b_rel, l_rel; };
-      };
-
-      struct CSSBorder
-      {
-        CSSBorder():
-          valid(false)
-        {}
-
-        CSSOffsets getRelOffsets(const SGRect<int>& dim) const;
-        CSSOffsets getAbsOffsets(const SGRect<int>& dim) const;
-
-        CSSOffsets      offsets;
-        CSSOffsetsTypes types;
-        std::string     keyword;
-        bool            valid;
+        DEST_SIZE      = SRC_RECT << 1,       // Element size
+        SRC_CANVAS     = DEST_SIZE << 1
       };
 
       virtual void childChanged(SGPropertyNode * child);
@@ -126,8 +100,6 @@ namespace canvas
       void setQuad(size_t index, const SGVec2f& tl, const SGVec2f& br);
       void setQuadUV(size_t index, const SGVec2f& tl, const SGVec2f& br);
 
-      CSSBorder parseSideOffsets(const std::string& str) const;
-
       osg::ref_ptr<osg::Texture2D> _texture;
       // TODO optionally forward events to canvas
       CanvasWeakPtr _src_canvas;