#到这一行尾是注释 #dm_root_type表示DataModel的根节点类型, #即根节点类型表示整个DataModel树的类型, #如果没有写dm_root_type,就表示默认的根节点类型 dm_root_type={ #w= #h= #dm_type是DataModel的节点的类型, #即不同类型的节点可以有不同的排版 #没有dm_type就表示默认的节点类型 dm_type={ w=n #整数,像素值 h=n style="xxx" #节点显示的风格 zoom=w_pixel+h_pixel #节点大小的缩放方式 layout=wrap_down #布局的方式,见下面说明 expand_x=0; #展开到下一级子节点时, expand_y=0; #调整排版字节点的起始 expand_w=10; #位置和大小. expand_h=10; #DataModel中每个节点的值都是一个table #可以同时显示table中的多个子项 { value_key="xxx" #字符串表示对应table的子项key, #没有value_key就表示不对应table子项 is_image #如果该子项的值是整数,那么作为图片的id is_expand #表示展开状态 x=n #整数,像素值,相对Node的位置和大小 y=n w=n h=n style="xxx" #该子项显示的风格 caption="xxx" # widget={ #用一个控件来显示该子项(这样才可以修改子项的值) type=id("process") #控件类型 flags= #控件标记 min=0 #控件的属性,不同类型的控件支持的属性不同 max=1 } } #other item #不同的item可以显示相同的value_key子项 } } #布局决定外观 #root_type 决定全局的布局, #node_type 决定节点的布局, #一旦datamodel 和listview 绑定, root_type 不能改变 #但是在绑定时root_type 可以灵活设置 #这种设计提供了最常用的折中的灵活性。 #关于排版的zoom (放大缩小) #node 可以设置wh 按照dpi 还是pixel 缩放. #item 一律按照node 的比例(pixel) 进行缩放 #节点大小的缩放方式: # (默认方式)根据控件的dpi缩放 # w_pixel: 先dpi缩放,再按(控件的w/root_type的w)的值比例缩放 # root_type的w也会先按dpi缩放 # h_pixel: 先dpi缩放,再按(控件的h/root_type的_h)的值比例缩放 # root_type的h也会先按dpi缩放 #节点的大小决定后,节点中子项的显示位置和大小都按比例缩放 #布局方式: # wrap_down: 向下换行 # right_autowrap_down: 右边放置,自动向下换行 # right_nowrap: 右边放置,不换行 # wrap_right: 向右换行 # down_autowrap_right: 下边放置,自动向右换行 # down_nowrap: 下边放置,不换行 #如果是控件,根据不同的控件类型可以设置部分属性 #type=id("processbar"); #min=n; #max=n; # #type=id("bool_button"); #radio_group="name"; #