--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/wmlengine/src/hed/include/nw_hed_domhelper.h Wed Sep 01 12:28:30 2010 +0100
@@ -0,0 +1,559 @@
+/*
+* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+/** ----------------------------------------------------------------------- **
+ @package: NW_HED
+
+ @synopsis: Convenience functions for accessing the DOM.
+
+ @description: default
+
+ ** ----------------------------------------------------------------------- **/
+
+#ifndef NW_HED_DOM_HELPER_H
+#define NW_HED_DOM_HELPER_H
+
+#include <nw_dom_node.h>
+#include <nw_string_string.h>
+#include "nw_hed_context.h"
+#include "nw_hed_entityset.h"
+#include "BrsrStatusCodes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* ------------------------------------------------------------------------- *
+ public data types
+ * ------------------------------------------------------------------------- */
+
+/** ----------------------------------------------------------------------- **
+ @struct: NW_HED_DomHelper_t
+
+ @synopsis: default
+
+ @scope: public
+ @variables:
+ const NW_HED_EntitySet_t*
+ default
+
+ NW_HED_Context_t* context
+ default
+
+ NW_Bool resolvePlainTextVariablesAndEntities
+ default
+
+ @description: default
+ ** ----------------------------------------------------------------------- **/
+typedef struct NW_HED_DomHelper_s{
+ const NW_HED_EntitySet_t* entitySet;
+ NW_HED_Context_t* context;
+
+ NW_Bool resolvePlainTextVariablesAndEntities;
+} NW_HED_DomHelper_t;
+
+
+
+/* ------------------------------------------------------------------------- *
+ public methods
+ * ------------------------------------------------------------------------- */
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_ResolveEntities
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_EntitySet_t* entitySet
+ default
+
+ [in] const NW_Ucs2* origText
+ default
+
+ [out] NW_String_t* destString
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_ResolveEntities (const NW_HED_EntitySet_t* entitySet,
+ const NW_Ucs2* origText,
+ NW_String_t* destString);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetAttributeValue
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ [out] NW_String_t* value
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetAttributeValue (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* element,
+ NW_Uint16 attribute,
+ NW_String_t* value);
+
+TBrowserStatusCode NW_HED_DomHelper_GetHTMLAttributeValue (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* element,
+ NW_Uint16 attribute,
+ NW_String_t* value);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetText
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Bool forceUcs2Copy
+ default
+
+ [out] NW_String_t* value
+ default
+
+ [out] NW_Uint32* valueEncoding
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetText (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* element,
+ NW_Bool forceUcs2Copy,
+ NW_String_t* value,
+ NW_Uint32* valueEncoding);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetChildText
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [out] NW_String_t* value
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetChildText (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* element,
+ NW_String_t* value);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_AttributeEquals
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ [in] const NW_String_t* value
+ default
+
+ @description: default
+
+ @returns: NW_Bool
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Bool NW_HED_DomHelper_AttributeEquals (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* element,
+ NW_Uint16 attribute,
+ const NW_String_t* value);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_IsMatch
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Uint16 elementType
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ [in] const attributeMatchString
+ default
+
+ @description: default
+
+ @returns: NW_Bool
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Bool NW_HED_DomHelper_IsMatch (const NW_HED_DomHelper_t* domHelper,
+ NW_DOM_Node_t* element,
+ NW_Uint16 elementType,
+ NW_Uint16 attribute,
+ const NW_String_t* attributeMatchString);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_FindElement
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] NW_DOM_Node_t* rootNode
+ default
+
+ [in] NW_Int32 maxSearchDepth
+ default
+
+ [in] NW_Uint16 elementType
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ [in] const NW_String_t* attributeMatchString
+ default
+
+ @description: default
+
+ @returns: NW_DOM_Node_t*
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_DOM_Node_t* NW_HED_DomHelper_FindElement (const NW_HED_DomHelper_t* domHelper,
+ NW_DOM_Node_t* rootNode,
+ NW_Int32 maxSearchDepth,
+ NW_Uint16 elementType,
+ NW_Uint16 attribute,
+ const NW_String_t* attributeMatchString);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetEncoding
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_DOM_Node_t* element
+ default
+
+ @description: default
+
+ @returns: NW_Uint32
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Uint32 NW_HED_DomHelper_GetEncoding (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetDictionary
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_DOM_Node_t* element
+ default
+
+ @description: default
+
+ @returns: NW_WBXML_Dictionary_t*
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_WBXML_Dictionary_t* NW_HED_DomHelper_GetDictionary (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetAttributeName
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ [out] NW_String_t* name
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetAttributeName (const NW_DOM_Node_t* element,
+ NW_Uint16 attribute,
+ NW_String_t* name);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetElementToken
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_DOM_Node_t* element
+ default
+
+ @description: default
+
+ @returns: NW_Uint16
+ default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Uint16 NW_HED_DomHelper_GetElementToken (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_GetElementName
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [out] NW_String_t* name
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetElementName (const NW_DOM_Node_t* element,
+ NW_String_t* name);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_PrintTree
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in] const NW_HED_DomHelper_t* domHelper
+ default
+
+ [in] const rootNode
+ const NW_DOM_Node_t* rootNode
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_PrintTree (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* rootNode);
+
+
+TBrowserStatusCode NW_HED_DomHelper_PrintNode (const NW_HED_DomHelper_t* domHelper,
+ const NW_DOM_Node_t* domNode);
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_CatString
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in-out] NW_String_t* destString
+ default
+
+ [in] const NW_String_t* srcString
+ default
+
+ [in] NW_Uint32 srcEncoding
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_CatString (NW_String_t* destString,
+ const NW_String_t* srcString,
+ NW_Uint32 srcEncoding);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_CatUcs2String
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+ [in-out] NW_String_t* destString
+ default
+
+ [in] const NW_Ucs2* srcString
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ default
+
+ [default]
+ default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_CatUcs2String (NW_String_t* destString,
+ const NW_Ucs2* srcString);
+
+/** ----------------------------------------------------------------------- **
+ @function: NW_HED_DomHelper_HasAttribute
+
+ @synopsis: default
+
+ @scope: public
+
+ @parameters:
+
+ [in] const NW_DOM_Node_t* element
+ default
+
+ [in] NW_Uint16 attribute
+ default
+
+ @description: default
+
+ @returns: TBrowserStatusCode
+ KBrsrSuccess- Attribute is found.
+ KBrsrNotFound - Attribute is not found.
+ KBrsrDomNodeTypeErr - not a DOM node
+
+ [default]
+ default
+ ** ----------------------------------------------------------------------- **/
+
+TBrowserStatusCode NW_HED_DomHelper_HasAttribute(const NW_DOM_Node_t* element,
+ NW_Uint16 attributeToken);
+
+#ifdef __cplusplus
+} // extern "C" {
+#endif /* __cplusplus */
+
+#endif /* NW_HED_DOM_HELPER_H */