aardio 文档

web.layout 库模块帮助文档

web.layout 成员列表

创建 HTMLayout 窗口。
此对象支持多线程界面回调,可传入工作线程使用

web.layout._dll

dll;

web.layout.appendMasterCss(css)

追加默认CSS,
必须在创建HTMLayout窗体,以及调用其他函数以前调用

web.layout.appendMasterCssFile("/res/master.css")

追加默认CSS文件
CSS文件请使用UTF编码保存,
必须在创建HTMLayout窗体,以及调用其他函数以前调用

web.layout.createEle()

返回对象:layoutEleObject

web.layout.createEle(标签名,节点内容)

创建节点,
节点内容可省略

web.layout.declareEle( "字符串参数", HLELM )

声明标记,
必须在创建HTMLayout窗体,以及调用其他函数以前调用,
并且须要早于设置MasterCss的函数调用

web.layout.setMasterCss(css)

替换默认CSS
必须在调用其他函数之前调用

全局对象 成员列表

_event_subsriptions

在HTMLayout中的behavior对象,或eventHandle对象中可添加此成员变量,
使用一个或多个 HL_HANDLE 前缀的掩码来指定 指定订阅的事件
如果未显示指定该参数,程序将自动设定为合适的值

web 成员列表

web.layout(窗口对象,捕获事件)

从窗口对象创建 HTMLayout 窗口。
参数二默认为 _HL_HANDLE_LITE - 仅允许捕获按钮命令等基本交互事件

weblayoutObject 成员列表

weblayoutObject.$("标签名[属性名='属性值']")

使用CSS选择器语法,
查找所有符合条件节点

weblayoutObject.$()

返回对象:layoutEleObject

weblayoutObject.$1("标签名[属性名='属性值']")

使用CSS选择器语法,
查找第一个符合条件节点

weblayoutObject.$1()

返回对象:layoutEleObject

weblayoutObject._contrls.?

自定义控件

返回对象:staticObject

weblayoutObject.addHeaders

weblayoutObject.addHeaders = /**  
Accept-Language: cn  
/*设置默认的HTTP请求头  
多个请求头使用回车换行分隔*/  
**/

weblayoutObject.attachEventHandler(eventHandler,subscription)

添加事件监听对象,参数一不可省略,
subscription 可选使用 HL_HANDLE 前缀常量指定捕获的事件,
省略该参数则根据定义的回调函数自动设定该值,
也可以使用对象的 _event_subsriptions 成员指定该值,
该函数返回事件ID,用于注销监听

weblayoutObject.callback

weblayoutObject.callback = function ( message,wParam,lParam,vParam,notifyCode ) {  

}

weblayoutObject.combineUrl(URL)

将URL转换为绝对路径,
可省略参数返回 baseURL

weblayoutObject.commitUpdates()

立即更新所有节点
因为节点可能会延迟更新,
需要立即获取节点更新后的位置可调用此函数
该函数不会调用updateWindow

weblayoutObject.createEle()

返回对象:layoutEleObject

weblayoutObject.createEle(标签名,节点内容)

创建节点,
节点内容可省略

weblayoutObject.css

weblayoutObject.css = /**  
#my-button{   
    behavior:"my.command";   
    active-on!:  
        /*输入CSS脚本,语句用逗号分隔*/  
    ;   
}   
**/

weblayoutObject.debug()

import web.layout.debug;  
weblayoutObject.attachEventHandler( web.layout.debug );

weblayoutObject.detachEventHandler(事件ID)

注销事件监听对象,事件ID不可省略

weblayoutObject.documentElement

返回对象:layoutEleObject

weblayoutObject.enumQuery(枚举函数,CSS选择器,格式化参数)

weblayoutObject.enumQuery(  
    function(ltEle){  
         /*返回true停止枚举*/  
    },"div"  
)

weblayoutObject.enumRes(枚举函数)

weblayoutObject.enumRes(  
    function(uri,resType,imgData,size){   
        /*枚举页面页源*/   
    }   
)

weblayoutObject.eventsHandler

weblayoutObject.eventsHandler = function (tag,he,evtg,prms) {  

}

weblayoutObject.fromPoint()

返回对象:layoutEleObject

weblayoutObject.fromPoint(x坐标,y坐标,是否屏幕坐标)

参数三可选,默认为窗口客户区坐标
成功返回节点对象

weblayoutObject.getCtrl("字符串参数")

根据ID或name查找节点,
并获取在该节点中自定义的控件对象

weblayoutObject.getCtrl()

返回对象:staticObject

weblayoutObject.getEle("字符串参数")

根据ID查找节点
如果未找到,尝试使用name查找

weblayoutObject.getEle()

返回对象:layoutEleObject

weblayoutObject.getEleByUid()

返回对象:layoutEleObject

weblayoutObject.getEleByUid(UID)

根据唯一标志符(数值)返回节点

weblayoutObject.getEles("字符串参数")

根据name属性查找节点

weblayoutObject.getEles()

返回对象:layoutEleObject

weblayoutObject.getFocus()

获取当前输入焦点所在节点

返回对象:layoutEleObject

weblayoutObject.go("字符串参数")

跳转到指定网址,支持aardio资源文件
如果参数指定的是aardio文件,参数@2可选用一个表指定request.get对象
其他文件可用参数@2指定代码页,默认为65001

weblayoutObject.html

weblayoutObject.html = /**  
<!doctype html>  
<html>  
<head>  
    <style type="text/css">  
    html,body{ height:100%; margin:0; }   
    </style>  
</head>  
<body>  
    <div id="header"></div>  
    <div id="container">   
        <div class="lside"> </div>   
        <div class="rside"> </div>    
    </div>  
</body>  
</html>  
**/

weblayoutObject.loadcode(HTML模板代码)

使用aardio模板语法加载HTML文件
可选在第二个参数中传入模板参数,
模板代码中使用owner参数获取首个模板参数

weblayoutObject.location

当前页面URL,
只读属性

weblayoutObject.onControlCreated

weblayoutObject.onControlCreated = {
    节点ID = function( ltEle,ltCtrl ){ 
        /*onControlCreate也可以是一个函数,在onElementControlCreated之前被触发*/
    }
}

weblayoutObject.onDataLoaded

weblayoutObject.onDataLoaded = function(lParam) {
    var dataLoaded = raw.convert(lParam,{
        struct hdr = ::NMHDR();
        ustring  uri; 
        ptr data;
        INT dataSize; 
        INT dataType;
        INT status; 
    });
    /*单个文件数据加载完成后触发*/
}

weblayoutObject.onDocumentComplete

weblayoutObject.onDocumentComplete = function() {
    /*文档已加载*/
}

weblayoutObject.post(网址,参数)

参数可以是字符串或键值对组成的表对象
该函数可触发onDataArrived事件

weblayoutObject.queryEle()

返回对象:layoutEleObject

weblayoutObject.queryEles()

返回对象:layoutEleObject

weblayoutObject.querySelector("标签名[属性名='属性值']")

使用CSS选择器语法,
查找第一个符合条件节点,
如果有多个参数则首先调用string.format格式化为CSS文本,
该函数名可使用'$1'代替,等价于CSS!中的$1函数

weblayoutObject.querySelector()

返回对象:layoutEleObject

weblayoutObject.querySelectorAll("标签名[属性名='属性值']")

使用CSS选择器语法,
查找所有符合条件节点,
如果有多个参数则首先调用string.format格式化为CSS文本,
该函数名可使用'$'代替,等价于CSS!中的$函数

weblayoutObject.querySelectorAll()

返回对象:layoutEleObject

weblayoutObject.readyState

获取当前状态,可能返回的值:
'uninitialized','loading','complete'

weblayoutObject.setCss(css,mediaType,baseUrl)

替换CSS

weblayoutObject.setMode( _HLM )

设置模式
_HLM_SHOW_SELECTION 类似于在body节点应用behavior:htmlarea

weblayoutObject.setOption(_HL_OPTIONS,1)

设置选项

weblayoutObject.traverseUiEvent(结构体参数)

结构体参数是 web.layout.event.MOUSE_PARAMS 或 KEY_PARAMS
该函数发送事件经过捕获与冒泡过程直到事件被处理

weblayoutObject.updateWindow()

更新窗口
如果仅仅需要更新节点位置等,可调用commitUpdates函数

weblayoutObject.wait()

等待所有资源加载完成

weblayoutObject.write(/*HTML 代码*/)

写入HTML代码到网页

全局常量

::HTMLayout

HTMLayout.dll

返回对象:dllModuleObject

自动完成常量

_BLOCK_BLOCK_ELEMENT=4
_BLOCK_TEXT_ELEMENT=3
_DATA_ELEMENT=0
_HLELMBLOCK_BLOCK_ELEMENT=4
_HLELMBLOCK_TEXT_ELEMENT=3
_HLELMDATA_ELEMENT=0
_HLELMINLINE_BLOCK_ELEMENT=2
_HLELMINLINE_TEXT_ELEMENT=1
_HLM_LAYOUT_ONLY=0
_HLM_SHOW_SELECTION=1
_HLN_ATTACH_BEHAVIOR=0xB07
_HLN_CONTROL_CREATED=0xB02
_HLN_CREATE_CONTROL=0xB00
_HLN_DATA_LOADED=0xB03
_HLN_DESTROY_CONTROL=0xB06
_HLN_DIALOG_CLOSE_RQ=0xB10
_HLN_DIALOG_CREATED=0xB0F
_HLN_DOCUMENT_COMPLETE=0xB04
_HLN_LOAD_DATA=0xB01
_HLN_UPDATE_UI=0xB05
_HLRT_DATA_CURSOR=3
_HLRT_DATA_HTML=0
_HLRT_DATA_IMAGE=1
_HLRT_DATA_SCRIPT=4
_HLRT_DATA_STYLE=2
_HL_ANIMATION_THREAD=5
_HL_CONNECTION_TIMEOUT=2
_HL_DISABLE_INITIALIZATION=0x80000000
_HL_FONT_SMOOTHING=4
_HL_HANDLE_ALL=0xFFFF
_HL_HANDLE_BEHAVIOR_EVENT=0x100
_HL_HANDLE_DATA_ARRIVED=0x80
_HL_HANDLE_DRAW=0x40
_HL_HANDLE_EXCHANGE=0x1000
_HL_HANDLE_FOCUS=4
_HL_HANDLE_GESTURE=0x2000
_HL_HANDLE_INITIALIZATION=0
_HL_HANDLE_INPUT=0x80000007
_HL_HANDLE_KEY=2
_HL_HANDLE_LITE=0x80000100
_HL_HANDLE_METHOD_CALL=0x200
_HL_HANDLE_MOUSE=1
_HL_HANDLE_SCROLL=8
_HL_HANDLE_SIZE=0x20
_HL_HANDLE_TIMER=0x10
_HL_HTTPS_ERROR=3
_HL_OPTIONS_ANIMATION_THREAD=5
_HL_OPTIONS_CONNECTION_TIMEOUT=2
_HL_OPTIONS_FONT_SMOOTHING=4
_HL_OPTIONS_HTTPS_ERROR=3
_HL_OPTIONS_SMOOTH_SCROLL=1
_HL_OPTIONS_TRANSPARENT_WINDOW=6
_HL_SMOOTH_SCROLL=1
_HL_TRANSPARENT_WINDOW=6
_HWND_DISCARD_CREATION=1
_HWND_TRY_DEFAULT=0
_INLINE_BLOCK_ELEMENT=2
_INLINE_TEXT_ELEMENT=1
_LOAD_DISCARD=1
_LOAD_OK=0
_SIH_APPEND_AFTER_LAST=2
_SIH_INSERT_AT_START=1
_SIH_REPLACE_CONTENT=0
_SOH_INSERT_AFTER=5
_SOH_INSERT_BEFORE=4
_SOH_REPLACE=3

Markdown 格式