From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- skinengine/src/skin_complex.cpp | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 skinengine/src/skin_complex.cpp (limited to 'skinengine/src/skin_complex.cpp') diff --git a/skinengine/src/skin_complex.cpp b/skinengine/src/skin_complex.cpp new file mode 100644 index 0000000..0deefc2 --- /dev/null +++ b/skinengine/src/skin_complex.cpp @@ -0,0 +1,59 @@ +#include "headers.h" + +CSkinComplexObject::CSkinComplexObject(): m_children(5) +{ +} + +CSkinComplexObject::~CSkinComplexObject() +{ + for (int i = 0; i < m_children.getCount(); ++i) + m_children[i]->Destroy(); + m_children.destroy(); +} + +void CSkinComplexObject::LoadFromXml(HXML hXml) +{ + CSkinObject::LoadFromXml(hXml); + + int nChildren = xi.getChildCount(hXml); + for (int i = 0; i < nChildren; ++i) + { + HXML hChild = xi.getChild(hXml, i); + if (ISkinElement *obj = SkinCreateObjectFromXml(hChild, m_ds)) + m_children.insert(obj, m_children.getCount()); + } +} + +bool CSkinComplexObject::IsComplexObject() +{ + return true; +} + +int CSkinComplexObject::GetChildCount() +{ + return m_children.getCount(); +} + +ISkinElement *CSkinComplexObject::GetChild(int index) +{ + return (index >= 0 && index < m_children.getCount()) ? m_children[index] : NULL; +} + +bool CSkinComplexObject::AppendChild(ISkinElement *child) +{ + m_children.insert(child, m_children.getCount()); + child->SetParent(this); + return true; +} + +bool CSkinComplexObject::InsertChild(ISkinElement *child, int index) +{ + m_children.insert(child, index); + child->SetParent(this); + return true; +} + +void CSkinComplexObject::RemoveChild(ISkinElement *child) +{ + m_children.remove(child); +} -- cgit v1.2.3