Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package haxe.ui.containers;
- import haxe.ui.components.Image;
- import haxe.ui.components.Label;
- import haxe.ui.components.Spacer;
- import haxe.ui.containers.HBox;
- import haxe.ui.containers.ScrollView;
- import haxe.ui.containers.VBox;
- import haxe.ui.core.MouseEvent;
- class TreeView extends ScrollView {
- public function new() {
- super();
- styleString = "padding: 1px;border: 1px solid #ABABAB;border-radius: 1px;";
- }
- public function addNode(text:String, icon:String = null):TreeViewNode {
- var node = new TreeViewNode();
- node.text = text;
- node.icon = icon;
- addComponent(node);
- return node;
- }
- public function clear() {
- this.clearContents();
- }
- }
- class TreeViewNode extends VBox {
- private var _hbox:HBox;
- private var _label:Label;
- private var _nodeExpander:Image;
- private var _nodeIcon:Image;
- private var _expanded:Bool = false;
- public function new() {
- super();
- this.styleString = "spacing: 2";
- _hbox = new HBox();
- _hbox.styleString = "spacing: 0";
- _nodeExpander = new Image();
- _nodeExpander.resource = "haxeui-core/styles/default/transparent_px.png";
- _nodeExpander.styleString = "vertical-align: center;cursor:pointer;";
- _nodeExpander.onClick = function(e) {
- if (_expanded == false) {
- _nodeExpander.resource = "haxeui-core/styles/default/down_arrow.png";
- _expanded = true;
- } else {
- _nodeExpander.resource = "haxeui-core/styles/default/right_arrow.png";
- _expanded = false;
- }
- for (c in childComponents) {
- if (c == _hbox) {
- continue;
- }
- if (_expanded == false) {
- c.hide();
- } else {
- c.show();
- }
- }
- }
- _hbox.addComponent(_nodeExpander);
- var hbox:HBox = new HBox();
- hbox.id = "node";
- hbox.styleString = "spacing: 4;cursor:pointer;";
- _nodeIcon = new Image();
- hbox.addComponent(_nodeIcon);
- var spacer:Spacer = new Spacer();
- spacer.width = 5;
- //hbox.addComponent(spacer);
- _label = new Label();
- hbox.addComponent(_label);
- hbox.registerEvent(MouseEvent.MOUSE_OVER, function(e) {
- hbox.addClass(":hover");
- });
- hbox.registerEvent(MouseEvent.MOUSE_OUT, function(e) {
- hbox.removeClass(":hover");
- });
- _hbox.addComponent(hbox);
- addComponent(_hbox);
- }
- public override function set_text(value:String):String {
- super.set_text(value);
- _label.text = value;
- return value;
- }
- public override function set_icon(value:String):String {
- super.set_icon(value);
- _nodeIcon.resource = value;
- return value;
- }
- public function addNode(text:String, icon:String = null):TreeViewNode {
- _nodeExpander.resource = "haxeui-core/styles/default/down_arrow.png";
- _hbox.styleString = "spacing: 0";
- _expanded = true;
- var node = new TreeViewNode();
- node.marginLeft = 16;
- node.text = text;
- node.icon = icon;
- addComponent(node);
- return node;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement