树
树是列表的一种特例。组件的特殊扩展。
树属性
每级缩进:树结掉的深度每增加一级,向右缩进的像素距离。
点击文件夹展开/折叠:点击文件夹节点时是否自动展开或者折叠这个节点。
- 否:没有动作
- 单击:
- 双击:
编辑列表项目界面会出现层级选项。
树节点设计
1.名称为expanded的控制器。如果节点时文件夹节点,当节点展开时,这个控制器自动切换页面到1。反之同理。如果内置按钮负责展开和折叠,那这个按钮和控制器链接。
2.名为leaf的控制器。如果节点是文件夹节点,那么这个控制器的页面是0;如果节点是叶节点,那么这个控制器的页面是1。
3.名称为indent的对象用于设置缩进。
Popup
弹出一些组件,在用户点击空白地方时自动消失。
Popup管理
弹出和关闭Popup的API再GRoot中提供。
//弹出在当前鼠标位置
GRoot.inst.ShowPopup(aComponent);
//弹出在aButton的下方
GRoot.inst.ShowPopup(aComponent, aButton);
//弹出在自定义的位置
GRoot.inst.ShowPopup(aComponent);
aComponent.SetXY(100, 100);
//点击空白关闭
//和使用aWindow.Show显示窗口的唯一区别就是多了点击空白关闭的功能,其它用法没有任何区别。
Window aWindow;
GRoot.inst.ShowPopup(aWindow);
//获得关闭弹出框的通知
aComponent.onRemoveFromStage.Add(onPopupClosed);
PopupMenu
是FGUI提供的一个工具类,用于实现弹出菜单。菜单组件中关键组件就是一个列表,溢出处理模式应该为可见,直接显示全部item,不需要滚动。
制作好菜单后,通过一下代码生成调用。
//设置全局菜单资源
UIConfig.popupMenu = "ui://包名/菜单组件名";
//如果有设计分隔条
UIConfig.popupMenu_seperator = "ui://包名/菜单分隔条";
//如果构造函数不带参数,则表示使用UIConfig.popupMenu里定义的资源。
//也可以带一个参数,指定这个菜单使用的菜单组件资源
PopupMenu menu = new PopupMenu();
//如果要修改菜单的宽度。
menu.contentPane.width = 300;
//添加一个菜单item,并注册点击回调函数
GButton item = menu.AddItem("标题", MenuItemCallback);
item.