add layers



git-svn-id: http://skia.googlecode.com/svn/trunk@501 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkLayer.cpp b/src/utils/SkLayer.cpp
new file mode 100644
index 0000000..c5a6d9a
--- /dev/null
+++ b/src/utils/SkLayer.cpp
@@ -0,0 +1,67 @@
+#include "SkLayer.h"
+
+SkLayer::SkLayer() {
+    m_doRotation = false;
+    m_isFixed = false;
+    m_backgroundColorSet = false;
+
+    m_angleTransform = 0;
+    m_opacity = 1;
+
+    m_size.set(0, 0);
+    m_position.set(0, 0);
+    m_translation.set(0, 0);
+    m_anchorPoint.set(0.5, 0.5);
+    m_scale.set(1, 1);
+
+    m_backgroundColor = 0;
+}
+
+SkLayer::SkLayer(const SkLayer& src) {
+    m_doRotation = src.m_doRotation;
+    m_isFixed = src.m_isFixed;
+    m_backgroundColorSet = src.m_backgroundColorSet;
+
+    m_angleTransform = src.m_angleTransform;
+    m_opacity = src.m_opacity;
+    m_size = src.m_size;
+    m_position = src.m_position;
+    m_translation = src.m_translation;
+    m_anchorPoint = src.m_anchorPoint;
+    m_scale = src.m_scale;
+
+    m_fixedLeft = src.m_fixedLeft;
+    m_fixedTop = src.m_fixedTop;
+    m_fixedRight = src.m_fixedRight;
+    m_fixedBottom = src.m_fixedBottom;
+
+    m_backgroundColor = src.m_backgroundColor;
+}
+
+SkLayer::~SkLayer() {
+    this->removeChildren();
+}
+
+int SkLayer::countChildren() const {
+    return m_children.count();
+}
+
+SkLayer* SkLayer::getChild(int index) const {
+    if ((unsigned)index < (unsigned)m_children.count()) {
+        return m_children[index];
+    }
+    return NULL;
+}
+
+SkLayer* SkLayer::addChild(SkLayer* child) {
+    child->ref();
+    *m_children.append() = child;
+    return child;
+}
+
+void SkLayer::removeChildren() {
+    m_children.unrefAll();
+    m_children.reset();
+}
+
+