idlehomescreen/xmluirendering/uiengine/src/xnnodeappif.cpp
changeset 0 f72a12da539e
child 9 f966699dea19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeappif.cpp	Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Node of the layout tree
+*
+*/
+
+// INCLUDES
+#include "xnnode.h"
+#include "xnnodeappif.h"
+#include "xntype.h"
+#include "xnuiengine.h"
+#include "xndomnode.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::CXnNodeAppIf()
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CXnNodeAppIf::CXnNodeAppIf( CXnNode& aNode )
+    {
+    iNode = &aNode;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::Type()
+// Returns control type.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CXnType* CXnNodeAppIf::Type()
+    {
+    return iNode->Type();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::SetPCDataL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::SetPCDataL( const TDesC8& aData )
+    {
+    iNode->SetPCDataL( aData );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::GetPCData
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CXnNodeAppIf::GetPCData() const
+    {
+    return iNode->GetPCData();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::SetPropertyL
+// Set a property.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::SetPropertyL( CXnProperty* aProperty )
+    {
+    iNode->SetPropertyL( aProperty );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::SetPropertyArrayL
+// Set a property array.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::SetPropertyArrayL(
+    RPointerArray< CXnProperty >* aPropertyArray )
+    {
+    iNode->SetPropertyArrayL( aPropertyArray );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::GetProperty
+// Gets a property.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CXnProperty* CXnNodeAppIf::GetPropertyL( CXnProperty& /*aProperty*/ ) const
+    {
+    return NULL;//return iNode->GetPropertyL(aProperty);
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::GetProperty
+// Gets a property.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CXnProperty* CXnNodeAppIf::GetPropertyL( const TDesC8& aKey ) const
+    {
+    return iNode->GetPropertyL( aKey );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::SetStateL
+// Set a state
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::SetStateL( const TDesC8& aState )
+    {
+    iNode->SetStateL( aState );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::IsStateSet
+// Check whether a state is set or not
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CXnNodeAppIf::IsStateSet( const TDesC8& aState )
+    {
+    return iNode->IsStateSet( aState );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::UnsetState
+// Unset a pseudoclass
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::UnsetStateL( const TDesC8& aState )
+    {
+    iNode->UnsetStateL( aState );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::Rect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TRect CXnNodeAppIf::Rect()
+    {
+    return iNode->Rect();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::BorderRect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TRect CXnNodeAppIf::BorderRect()
+    {
+    return iNode->BorderRect();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::MarginRect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TRect CXnNodeAppIf::MarginRect()
+    {
+    return iNode->MarginRect();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::PaddingRect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TRect CXnNodeAppIf::PaddingRect()
+    {
+    return iNode->PaddingRect();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::UiEngine
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TXnUiEngineAppIf* CXnNodeAppIf::UiEngineL()
+    {
+    return &(iNode->UiEngine()->AppIfL());
+    }
+
+// -----------------------------------------------------------------------------
+// Get internal node
+// -----------------------------------------------------------------------------
+//
+CXnNode& CXnNodeAppIf::Node()
+    {
+    return *iNode;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::MakeInterfaceL
+// Create a component interface according to the given type.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C XnComponentInterface::MXnComponentInterface* CXnNodeAppIf::MakeInterfaceL(
+    const TDesC8& aType )
+    {
+    return iNode->MakeInterfaceL( aType );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::Children
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RPointerArray< CXnNodeAppIf > CXnNodeAppIf::ChildrenL()
+    {
+    RPointerArray< CXnNode >& nodes = iNode->Children();
+    RPointerArray< CXnNodeAppIf > appNodes;
+    CleanupClosePushL( appNodes );
+    TInt count = nodes.Count();
+    for ( TInt i = 0; i < count; ++i )
+        {
+        appNodes.AppendL( &nodes[i]->AppIfL() );
+        }
+    CleanupStack::Pop( &appNodes );
+    // Compiler will generate bitwise copy ctor, thus
+    // caller of this function must call reset or close for copied RPointerArrays,
+    // which is very nasty thing to do...
+    return appNodes;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::ParentL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CXnNodeAppIf* CXnNodeAppIf::ParentL() const
+    {
+    CXnNode* parent = iNode->Parent();
+    if ( !parent )
+        {
+        return NULL;
+        }
+    return &( parent->AppIfL() );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::InternalDomNodeType
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CXnNodeAppIf::InternalDomNodeType() const
+    {
+    CXnDomNode* node = iNode->DomNode();
+    if ( node )
+        {
+        return node->Name();
+        }
+    return KNullDesC8;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::ShowTooltipsL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::ShowTooltipsL()
+    {
+    iNode->ShowTooltipsL();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::HideTooltipsL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnNodeAppIf::HideTooltipsL()
+    {
+    iNode->HideTooltipsL();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodeAppIf::Namespace
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC8& CXnNodeAppIf::Namespace()
+    {
+    CXnDomNode* node = iNode->DomNode();
+    if ( node )
+        {
+        return node->Namespace();
+        }
+    return KNullDesC8;
+    }