soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SouiLayoutParamStruct.h
1#ifndef __SOUILAYOUTPARAMSTRUCT__H__
2#define __SOUILAYOUTPARAMSTRUCT__H__
3
4#include "SLayoutSize.h"
5
6#define POSFLAG_REFCENTER '|' //参考父窗口中心
7#define POSFLAG_REFPREV_NEAR '[' //参考前一个兄弟窗口与自己近的边
8#define POSFLAG_REFNEXT_NEAR ']' //参考下一个兄弟窗口与自己近的边
9#define POSFLAG_REFPREV_FAR '{' //参考前一个兄弟窗口与自己远的边
10#define POSFLAG_REFNEXT_FAR '}' //参考下一个兄弟窗口与自己远的边
11#define POSFLAG_PERCENT '%' //采用在父窗口的百分比定义坐标
12#define POSFLAG_SIZE '@' //在pos属性中定义窗口的size,只在在定义x2,y2时有效
13
14SNSBEGIN
15
16//坐标类型
17enum PIT
18{
19
20 PIT_NULL = 0, //无效定义
21 PIT_NORMAL, //锚点坐标
22 PIT_CENTER, //参考父窗口中心点,以"|"开始
23 PIT_PERCENT, //指定在父窗口坐标的中的百分比,以"%"开始
24 PIT_PREV_NEAR, //参考前一个兄弟窗口与自己近的边,以"["开始
25 PIT_NEXT_NEAR, //参考下一个兄弟窗口与自己近的边,以"]"开始
26 PIT_PREV_FAR, //参考前一个兄弟窗口与自己远的边,以"{"开始
27 PIT_NEXT_FAR, //参考下一个兄弟窗口与自己远的边,以"}"开始
28 PIT_SIZE, //指定窗口的宽或者高,以"@"开始
29 PIT_SIB_LEFT = 10, //兄弟结点的left,用于X
30 PIT_SIB_TOP = 10, //兄弟结点的top,与left相同,用于Y
31 PIT_SIB_RIGHT = 11, //兄弟结点的right,用于X
32 PIT_SIB_BOTTOM = 11, //兄弟结点的bottom,与right相同,用于Y
33};
34
35struct POS_INFO
36{
37 PIT pit; /**<坐标类型 */
38 int nRefID; /**<根据ID引用兄弟窗口时使用的ID,-1代表不参考特定ID的兄弟,使用ID引用的格式为"sib.left@200:10"类似的格式
39 */
40 bool bMinus; /**<定义的值包含"-", 由于-0不能直接做nPos表示,需要一个单独的标志位 */
41 SLayoutSize nPos; /**<坐标值*/
42};
43
44struct SouiLayoutParamStruct
45{
46 int nCount; /**< 定义的坐标个数 */
47 POS_INFO posLeft, posRight; /**< 由pos属性定义的值, nCount >0 时有效*/
48 POS_INFO posTop, posBottom; /**< 由pos属性定义的值, nCount >0 时有效*/
49
50 float fOffsetX, fOffsetY; /**< 窗口坐标偏移量, x += fOffsetX * width, y += fOffsetY * height */
51
52 SLayoutSize width; /**<使用width属性定义的宽 nCount==0 时有效*/
53 SLayoutSize height; /**<使用height属性定义的高 nCount==0 时有效*/
54};
55SNSEND
56
57#endif // __SOUILAYOUTPARAMSTRUCT__H__