--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnode.cpp Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,1140 @@
+/*
+* 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 "xnnodepluginif.h"
+#include "xnnodeappif.h"
+#include "xnnodeimpl.h"
+#include "xnviewsnodeimpl.h"
+#include "xnviewnodeimpl.h"
+#include "xncomponentnodeimpl.h"
+#include "xnproperty.h"
+#include "xntype.h"
+#include "xncomponent.h"
+#include "xnscrollablecontroladapter.h"
+
+_LIT8( KView, "view" );
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnNode::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CXnNode* CXnNode::NewL()
+ {
+ CXnNode* self = new ( ELeave ) CXnNode;
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::ConstructL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::CXnNode()
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CXnNode::CXnNode()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::~CXnNode()
+// C++ default destructor.
+// -----------------------------------------------------------------------------
+//
+CXnNode::~CXnNode()
+ {
+ delete iImpl;
+ delete iPluginIf;
+ delete iAppIf;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Impl
+// -----------------------------------------------------------------------------
+//
+CXnNodeImpl* CXnNode::Impl()
+ {
+ return iImpl;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::RootNodeImpl
+// -----------------------------------------------------------------------------
+//
+CXnNodeImpl* CXnNode::RootNodeImpl()
+ {
+ return iRootNodeImpl;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ViewNodeImpl
+// -----------------------------------------------------------------------------
+//
+CXnViewNodeImpl* CXnNode::ViewNodeImpl()
+ {
+ return iViewNodeImpl;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ComponentNodeImpl
+// -----------------------------------------------------------------------------
+//
+CXnComponentNodeImpl* CXnNode::ComponentNodeImpl()
+ {
+ return iComponentNodeImpl;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetImpl
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetImpl( CXnNodeImpl* aImpl )
+ {
+ if ( aImpl )
+ {
+ delete iImpl;
+ iImpl = aImpl;
+ iImpl->SetNode( *this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetRootNodeImpl
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetRootNodeImpl( CXnNodeImpl* aRootNodeImpl )
+ {
+ if ( aRootNodeImpl )
+ {
+ delete iImpl;
+ iRootNodeImpl = aRootNodeImpl;
+ iImpl = iRootNodeImpl;
+ iImpl->SetNode( *this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetViewsNodeImpl
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetViewsNodeImpl( CXnViewsNodeImpl* aViewsNodeImpl )
+ {
+ if ( aViewsNodeImpl )
+ {
+ delete iImpl;
+ iViewsNodeImpl = aViewsNodeImpl;
+ iImpl = iViewsNodeImpl;
+ iImpl->SetNode( *this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetViewNodeImpl
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetViewNodeImpl( CXnViewNodeImpl* aViewNodeImpl )
+ {
+ if ( aViewNodeImpl )
+ {
+ delete iImpl;
+ iViewNodeImpl = aViewNodeImpl;
+ iImpl = iViewNodeImpl;
+ iImpl->SetNode( *this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetComponentNodeImpl
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetComponentNodeImpl( CXnComponentNodeImpl* aComponentNodeImpl )
+ {
+ if ( aComponentNodeImpl )
+ {
+ delete iImpl;
+ iComponentNodeImpl = aComponentNodeImpl;
+ iImpl = iComponentNodeImpl;
+ iImpl->SetNode( *this );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetDropped
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetDropped( const TInt aDropped )
+ {
+ iImpl->SetDropped( aDropped );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::IsDropped
+// -----------------------------------------------------------------------------
+//
+TInt CXnNode::IsDropped() const
+ {
+ return iImpl->IsDropped();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Type()
+// Returns control type.
+// -----------------------------------------------------------------------------
+//
+CXnType* CXnNode::Type()
+ {
+ return iImpl->Type();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Parent
+// Get component parent
+// -----------------------------------------------------------------------------
+//
+CXnNode* CXnNode::Parent() const
+ {
+ return iImpl->Parent();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetParent
+// Set component parent
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetParent( CXnNode& aParent )
+ {
+ iImpl->SetParent( aParent );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::AddChildL
+// Adds a child to this container.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::AddChildL( CXnNode* aChild )
+ {
+ if ( aChild )
+ {
+ iImpl->AddChildL( aChild );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Children
+// -----------------------------------------------------------------------------
+//
+RPointerArray< CXnNode >& CXnNode::Children()
+ {
+ return iImpl->Children();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetPCDataL
+// -----------------------------------------------------------------------------
+void CXnNode::SetPCDataL( const TDesC8& aData )
+ {
+ iImpl->SetPCDataL( aData );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::GetPCData
+// -----------------------------------------------------------------------------
+const TDesC8& CXnNode::GetPCData() const
+ {
+ return iImpl->GetPCData();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetPropertyWithoutNotificationL
+// Set a property.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetPropertyWithoutNotificationL( CXnProperty* aProperty )
+ {
+ if ( aProperty )
+ {
+ iImpl->SetPropertyWithoutNotificationL( aProperty );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetPropertyL
+// Set a property.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetPropertyL( CXnProperty* aProperty )
+ {
+ if ( aProperty )
+ {
+ iImpl->SetPropertyL( aProperty );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetPropertyArrayL
+// Set a property array.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetPropertyArrayL( RPointerArray< CXnProperty >* aPropertyArray )
+ {
+ if ( aPropertyArray )
+ {
+ iImpl->SetPropertyArrayL( *aPropertyArray );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::InitializePropertyL
+// Set a property.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::InitializePropertyL( CXnProperty* aProperty )
+ {
+ if ( aProperty )
+ {
+ iImpl->InitializePropertyL( aProperty );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::GetProperty
+// Gets a property.
+// -----------------------------------------------------------------------------
+//
+CXnProperty* CXnNode::GetPropertyL( const TDesC8& aKey ) const
+ {
+ return iImpl->GetPropertyL( aKey );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetStateL
+// Set a state
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetStateL( const TDesC8& aState, TInt aSource )
+ {
+ iImpl->SetStateL( aState, aSource );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::IsStateSet
+// Check whether a state is set or not
+// -----------------------------------------------------------------------------
+//
+TBool CXnNode::IsStateSet( const TDesC8& aState )
+ {
+ return iImpl->IsStateSet( aState );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetStateWithoutNotificationL
+// Set a state
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetStateWithoutNotificationL( const TDesC8& aState )
+ {
+ iImpl->SetStateWithoutNotificationL( aState );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::UnsetState
+// Unset a pseudoclass
+// -----------------------------------------------------------------------------
+//
+void CXnNode::UnsetStateL( const TDesC8& aState )
+ {
+ iImpl->UnsetStateL( aState );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetRect
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetRect( const TRect& aRect )
+ {
+ iImpl->SetRect( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Rect
+// -----------------------------------------------------------------------------
+//
+TRect CXnNode::Rect()
+ {
+ return iImpl->Rect();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetBorderRect
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetBorderRect( const TRect& aRect )
+ {
+ iImpl->SetBorderRect( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::BorderRect
+// -----------------------------------------------------------------------------
+//
+TRect CXnNode::BorderRect()
+ {
+ return iImpl->BorderRect();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetNormalFlowBorderRect
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetNormalFlowBorderRect( const TRect& aRect )
+ {
+ iImpl->SetNormalFlowBorderRect( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::NormalFlowBorderRect
+// -----------------------------------------------------------------------------
+//
+TRect CXnNode::NormalFlowBorderRect()
+ {
+ return iImpl->NormalFlowBorderRect();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetMarginRect
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetMarginRect( const TRect& aRect )
+ {
+ iImpl->SetMarginRect( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::MarginRect
+// -----------------------------------------------------------------------------
+//
+TRect CXnNode::MarginRect()
+ {
+ return iImpl->MarginRect();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetPaddingRect
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetPaddingRect( const TRect& aRect )
+ {
+ iImpl->SetPaddingRect( aRect );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::PaddingRect
+// -----------------------------------------------------------------------------
+//
+TRect CXnNode::PaddingRect()
+ {
+ return iImpl->PaddingRect();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetUiEngine
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetUiEngine( CXnUiEngine& aEngine )
+ {
+ iImpl->SetUiEngine( aEngine );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::UiEngine
+// -----------------------------------------------------------------------------
+//
+CXnUiEngine* CXnNode::UiEngine()
+ {
+ return iImpl->UiEngine();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ReportXuikonEventL
+// -----------------------------------------------------------------------------
+//
+TBool CXnNode::ReportXuikonEventL( CXnNode& aEventData, TInt aSource )
+ {
+ return iImpl->ReportXuikonEventL( aEventData, aSource );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::OfferKeyEventL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ iImpl->OfferKeyEventL( aKeyEvent, aType );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetLayoutCapable
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetLayoutCapable( const TBool aLayoutCapable )
+ {
+ iImpl->SetLayoutCapable( aLayoutCapable );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetLayoutCapable
+// -----------------------------------------------------------------------------
+//
+TBool CXnNode::IsLayoutCapable() const
+ {
+ return iImpl->IsLayoutCapable();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNodeImpl::SetRenderedL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetRenderedL()
+ {
+ iImpl->SetRenderedL();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNodeImpl::SetLaidOutL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetLaidOutL()
+ {
+ iImpl->SetLaidOutL();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNodeImpl::IsLaidOut
+// -----------------------------------------------------------------------------
+//
+TBool CXnNode::IsLaidOut() const
+ {
+ return iImpl->IsLaidOut();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ClearRenderedAndLaidOut
+// -----------------------------------------------------------------------------
+//
+void CXnNode::ClearRenderedAndLaidOut()
+ {
+ iImpl->ClearRenderedAndLaidOut();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::PluginIfL
+// Get node plugin interface
+// -----------------------------------------------------------------------------
+//
+CXnNodePluginIf& CXnNode::PluginIfL()
+ {
+ if ( iPluginIf )
+ {
+ return *iPluginIf;
+ }
+ else
+ {
+ iPluginIf = new ( ELeave ) CXnNodePluginIf( *this );
+ return *iPluginIf;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::AppIfL
+// Get node plugin interface
+// -----------------------------------------------------------------------------
+//
+CXnNodeAppIf& CXnNode::AppIfL()
+ {
+ if ( iAppIf )
+ {
+ return *iAppIf;
+ }
+ else
+ {
+ iAppIf = new ( ELeave ) CXnNodeAppIf( *this );
+ return *iAppIf;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::MakeInterfaceL
+// Create a component interface according to the given type.
+// -----------------------------------------------------------------------------
+//
+XnComponentInterface::MXnComponentInterface* CXnNode::MakeInterfaceL(
+ const TDesC8& aType )
+ {
+ return iImpl->MakeInterfaceL( aType );
+ }
+
+CXnProperty* CXnNode::WidthL()
+ {
+ return iImpl->WidthL();
+ }
+
+CXnProperty* CXnNode::HeightL()
+ {
+ return iImpl->HeightL();
+ }
+
+CXnProperty* CXnNode::MarginLeftL()
+ {
+ return iImpl->MarginLeftL();
+ }
+
+CXnProperty* CXnNode::MarginRightL()
+ {
+ return iImpl->MarginRightL();
+ }
+
+CXnProperty* CXnNode::BorderLeftL()
+ {
+ return iImpl->BorderLeftL();
+ }
+
+CXnProperty* CXnNode::BorderRightL()
+ {
+ return iImpl->BorderRightL();
+ }
+
+CXnProperty* CXnNode::PaddingLeftL()
+ {
+ return iImpl->PaddingLeftL();
+ }
+
+CXnProperty* CXnNode::PaddingRightL()
+ {
+ return iImpl->PaddingRightL();
+ }
+
+CXnProperty* CXnNode::MarginTopL()
+ {
+ return iImpl->MarginTopL();
+ }
+
+CXnProperty* CXnNode::MarginBottomL()
+ {
+ return iImpl->MarginBottomL();
+ }
+
+CXnProperty* CXnNode::BorderTopL()
+ {
+ return iImpl->BorderTopL();
+ }
+
+CXnProperty* CXnNode::BorderBottomL()
+ {
+ return iImpl->BorderBottomL();
+ }
+
+CXnProperty* CXnNode::PaddingTopL()
+ {
+ return iImpl->PaddingTopL();
+ }
+
+CXnProperty* CXnNode::PaddingBottomL()
+ {
+ return iImpl->PaddingBottomL();
+ }
+
+CXnProperty* CXnNode::BorderWidthL()
+ {
+ return iImpl->BorderWidthL();
+ }
+
+CXnProperty* CXnNode::BlockProgressionL()
+ {
+ return iImpl->BlockProgressionL();
+ }
+
+CXnProperty* CXnNode::DirectionL()
+ {
+ return iImpl->DirectionL();
+ }
+
+CXnProperty* CXnNode::PositionL()
+ {
+ return iImpl->PositionL();
+ }
+
+CXnProperty* CXnNode::MaxHeightL()
+ {
+ return iImpl->MaxHeightL();
+ }
+
+CXnProperty* CXnNode::MinHeightL()
+ {
+ return iImpl->MinHeightL();
+ }
+
+CXnProperty* CXnNode::MaxWidthL()
+ {
+ return iImpl->MaxWidthL();
+ }
+
+CXnProperty* CXnNode::MinWidthL()
+ {
+ return iImpl->MinWidthL();
+ }
+
+CXnProperty* CXnNode::DisplayL()
+ {
+ return iImpl->DisplayL();
+ }
+
+CXnProperty* CXnNode::VisibilityL()
+ {
+ return iImpl->VisibilityL();
+ }
+
+CXnProperty* CXnNode::LeftL()
+ {
+ return iImpl->LeftL();
+ }
+
+CXnProperty* CXnNode::RightL()
+ {
+ return iImpl->RightL();
+ }
+
+CXnProperty* CXnNode::TopL()
+ {
+ return iImpl->TopL();
+ }
+
+CXnProperty* CXnNode::BottomL()
+ {
+ return iImpl->BottomL();
+ }
+
+CXnProperty* CXnNode::BorderLeftStyleL()
+ {
+ return iImpl->BorderLeftStyleL();
+ }
+
+CXnProperty* CXnNode::BorderRightStyleL()
+ {
+ return iImpl->BorderRightStyleL();
+ }
+
+CXnProperty* CXnNode::BorderTopStyleL()
+ {
+ return iImpl->BorderTopStyleL();
+ }
+
+CXnProperty* CXnNode::BorderBottomStyleL()
+ {
+ return iImpl->BorderBottomStyleL();
+ }
+
+CXnProperty* CXnNode::BorderStyleL()
+ {
+ return iImpl->BorderStyleL();
+ }
+
+CXnProperty* CXnNode::BorderImageL()
+ {
+ return iImpl->BorderImageL();
+ }
+
+CXnProperty* CXnNode::DisplayPriorityL()
+ {
+ return iImpl->DisplayPriorityL();
+ }
+
+CXnProperty* CXnNode::NameL()
+ {
+ return iImpl->NameL();
+ }
+
+CXnProperty* CXnNode::ValueL()
+ {
+ return iImpl->ValueL();
+ }
+
+CXnProperty* CXnNode::LabelL()
+ {
+ return iImpl->LabelL();
+ }
+
+CXnProperty* CXnNode::InitialFocusL()
+ {
+ return iImpl->InitialFocusL();
+ }
+
+CXnProperty* CXnNode::ClassL()
+ {
+ return iImpl->ClassL();
+ }
+
+CXnProperty* CXnNode::IdL()
+ {
+ return iImpl->IdL();
+ }
+CXnProperty* CXnNode::PathL()
+ {
+ return iImpl->PathL();
+ }
+CXnProperty* CXnNode::MaskPathL()
+ {
+ return iImpl->MaskPathL();
+ }
+
+CXnProperty* CXnNode::NavIndexL()
+ {
+ return iImpl->NavIndexL();
+ }
+
+CXnProperty* CXnNode::VisibleRowsL()
+ {
+ return iImpl->VisibleRowsL();
+ }
+
+CXnProperty* CXnNode::GridColumnsL()
+ {
+ return iImpl->GridColumnsL();
+ }
+
+CXnProperty* CXnNode::GridOrientationL()
+ {
+ return iImpl->GridOrientationL();
+ }
+
+CXnProperty* CXnNode::GridVerDirectionL()
+ {
+ return iImpl->GridVerDirectionL();
+ }
+
+CXnProperty* CXnNode::GridHorDirectionL()
+ {
+ return iImpl->GridHorDirectionL();
+ }
+
+CXnProperty* CXnNode::FocusHorLoopingL()
+ {
+ return iImpl->FocusHorLoopingL();
+ }
+
+CXnProperty* CXnNode::FocusVerLoopingL()
+ {
+ return iImpl->FocusVerLoopingL();
+ }
+
+CXnProperty* CXnNode::ZIndexL()
+ {
+ return iImpl->ZIndexL();
+ }
+
+CXnProperty* CXnNode::BackgroundColorL()
+ {
+ return iImpl->BackgroundColorL();
+ }
+
+CXnProperty* CXnNode::BackgroundImageL()
+ {
+ return iImpl->BackgroundImageL();
+ }
+
+CXnProperty* CXnNode::FocusBackgroundL()
+ {
+ return iImpl->FocusBackgroundL();
+ }
+
+CXnProperty* CXnNode::RefL()
+ {
+ return iImpl->RefL();
+ }
+
+CXnProperty* CXnNode::GridScrollBarMarginL()
+ {
+ return iImpl->GridScrollBarMarginL();
+ }
+
+CXnProperty* CXnNode::GridScrollBarWidthL()
+ {
+ return iImpl->GridScrollBarWidthL();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetDomNode
+// Sets the DOM node pointer
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetDomNode( CXnDomNode* aDomNode )
+ {
+ if ( aDomNode )
+ {
+ iImpl->SetDomNode( aDomNode );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::DomNode
+// Returns the DOM node pointer
+// -----------------------------------------------------------------------------
+//
+CXnDomNode* CXnNode::DomNode()
+ {
+ return iImpl->DomNode();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetHandleTooltip
+// Sets handle tooltip flag.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetHandleTooltip( TBool aFlag )
+ {
+ iImpl->SetHandleTooltip( aFlag );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::MeasureAdaptiveContentL
+// Measures the adaptive content dimensions.
+// -----------------------------------------------------------------------------
+//
+TSize CXnNode::MeasureAdaptiveContentL( const TSize& aAvailableSize )
+ {
+ return iImpl->MeasureAdaptiveContentL( aAvailableSize );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::IsAdaptive
+// Checks if the node has adaptive content
+// -----------------------------------------------------------------------------
+//
+TInt CXnNode::IsAdaptive( TBool aIgnoreSizeFixed ) const
+ {
+ return iImpl->IsAdaptive( aIgnoreSizeFixed );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetAdaptiveL
+// Marks the node as content based.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetAdaptiveL( const TInt aAdaptive )
+ {
+ iImpl->SetAdaptiveL( aAdaptive );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::FixAdaptiveSizeL
+// Marks the node as content based.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::FixAdaptiveSizeL( const TSize& aFixedSize )
+ {
+ iImpl->FixAdaptiveSizeL( aFixedSize );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::RestartTimedTrigger
+// Restarts the timed trigger.
+// -----------------------------------------------------------------------------
+//
+void CXnNode::RestartTimedTrigger( TInt aDelay )
+ {
+ CPeriodic* timer = iImpl->PeriodicTimer();
+ if ( timer )
+ {
+ if ( timer->IsActive() )
+ {
+ timer->Cancel();
+ if ( aDelay > 0 )
+ {
+ timer->After( aDelay );
+ }
+ else
+ {
+ iImpl->DeletePeriodic();
+ }
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetTriggerDelay
+// Sets default trigger delay
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetTriggerDelay( TTimeIntervalMicroSeconds32 aDelay )
+ {
+ iTriggerDelay = aDelay;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::TriggerDelay
+// Returns default trigger delay
+// -----------------------------------------------------------------------------
+//
+TTimeIntervalMicroSeconds32 CXnNode::TriggerDelay()
+ {
+ return iTriggerDelay;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetDirtyL
+// Marks the node dirty
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetDirtyL( TInt aLevel, TBool aDisplayedState )
+ {
+ iImpl->SetDirtyL( aLevel, aDisplayedState );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::RunFocusChangeL
+// Runs focus change
+// -----------------------------------------------------------------------------
+//
+TBool CXnNode::RunFocusChangeL( RPointerArray< CXnNode >& aFocusCandidates )
+ {
+ return iImpl->RunFocusChangeL( aFocusCandidates );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ReorderNodesL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::ReorderNodesL( CXnNode* aSource, CXnNode* aTarget )
+ {
+ if ( aSource && aTarget )
+ {
+ iImpl->ReorderNodesL( aSource, aTarget );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::FindViewNode
+// -----------------------------------------------------------------------------
+//
+CXnNode* CXnNode::FindViewNode()
+ {
+ CXnNode* tmp = NULL;
+ tmp = Parent();
+ while( tmp )
+ {
+ if ( tmp->Type()->Type() == KView )
+ {
+ break;
+ }
+ else
+ {
+ tmp = tmp->Parent();
+ }
+ }
+ return tmp;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ShowTooltipsL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::ShowTooltipsL()
+ {
+ if ( IsStateSet( XnPropertyNames::action::trigger::name::KFocus ) )
+ {
+ iImpl->HidePopupsL();
+ iImpl->ShowPopupsL( Rect() );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::HideTooltipsL
+// -----------------------------------------------------------------------------
+//
+void CXnNode::HideTooltipsL()
+ {
+ iImpl->HidePopupsL();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::Namespace
+// -----------------------------------------------------------------------------
+//
+const TDesC8& CXnNode::Namespace()
+ {
+ return iImpl->Namespace();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ControlL
+// -----------------------------------------------------------------------------
+//
+CXnControlAdapter* CXnNode::Control() const
+ {
+ CXnComponent* component( NULL );
+
+ if ( iViewNodeImpl )
+ {
+ component = iViewNodeImpl->Component();
+ }
+ else if ( iComponentNodeImpl )
+ {
+ component = iComponentNodeImpl->Component();
+ }
+
+ if ( component )
+ {
+ return component->ControlAdapter();
+ }
+
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::SetScrollableControl()
+// -----------------------------------------------------------------------------
+//
+void CXnNode::SetScrollableControl( CXnScrollableControlAdapter* aScrollableControl )
+ {
+ iImpl->SetScrollableControl( aScrollableControl );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNode::ScrollableControl()
+// -----------------------------------------------------------------------------
+//
+CXnScrollableControlAdapter* CXnNode::ScrollableControl()
+ {
+ return iImpl->ScrollableControl();
+ }
+