文档中心

控件开发_复杂数据模型和显示

04.布局和外观的配置

在用列表视图控件显示复杂数据时,灵活配置显示时的排版布局和外观的方法如下:

首先复杂数据也是通过控件的显示单元来显示,并且模型树中的每个节点都可能对应多个显示单元,如上面目录树中的每个节点代表一个文件,每个节点的值 Table中有三项:文件名,文件大小和修改的时间,那么列表视图控件对每一个文件节点就可能创建以下4个显示单元:

最大的显示单元 1对应节点,里面三个显示单元分别对应节点值 Table中的三项。这些显示单元的相对位置和大小都可以通过一个排版文件来灵活配置:

dm_root_type = {
    #w;
    #h;
    #dpi;
    dm_type = {
        w=n; h=n;
        style="xxx"
        #zoom=w_fix+h_pixel; #默认是 wh_dpi
        #换行或不换行或自动换行         wrap=wrap or no_wrap or auto_wrap {
            value_key="key1";
            x=n; y=n; w=n; h=n;
            style="xxx"
            caption="xxx"
            is_image #如果该子项的值是整数, 那么作为图片
            id widget = {
                type=id("processbar")
                flags=processbar_h
                min=0
                max=1
            }
        }
        {
            x=n; y=n; w=n; h=n;
            style="xxx"
            caption="xxx"
        }
        ... #other value_key or no value_key
    }
}

这些显示单元可以通过标准的风格文件来配置外观,对应节点的显示单元通过listview_node类型的风格来配置,对应值 Table项的显示单元通过 listview_cell类型的风格来配置,如:

listview_node {
    bg="line.png", stretch_hv3
}
listview_cell {
    bg="cell.png", stretch_hv3
    font=”default-16”
}