!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Tools / LuaRemoteDebugger / Aga.Controls / Tree / NodeControls / NodePlusMinus.cs
blob7f141a3da774b694d621445033528865f163f5bc
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 using System;
4 using System.Collections.Generic;
5 using System.Text;
6 using System.Drawing;
7 using Aga.Controls.Properties;
8 using System.Windows.Forms;
9 using System.Windows.Forms.VisualStyles;
11 namespace Aga.Controls.Tree.NodeControls
13 internal class NodePlusMinus : NodeControl
15 public const int ImageSize = 9;
16 public const int Width = 16;
17 private Bitmap _plus;
18 private Bitmap _minus;
20 private VisualStyleRenderer _openedRenderer;
21 private VisualStyleRenderer OpenedRenderer
23 get
25 if (_openedRenderer == null)
26 _openedRenderer = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Opened);
27 return _openedRenderer;
32 private VisualStyleRenderer _closedRenderer;
33 private VisualStyleRenderer ClosedRenderer
35 get
37 if (_closedRenderer == null)
38 _closedRenderer = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Closed);
39 return _closedRenderer;
43 public NodePlusMinus()
45 _plus = Resources.plus;
46 _minus = Resources.minus;
49 public override Size MeasureSize(TreeNodeAdv node, DrawContext context)
51 return new Size(Width, Width);
54 public override void Draw(TreeNodeAdv node, DrawContext context)
56 if (node.CanExpand)
58 Rectangle r = context.Bounds;
59 int dy = (int)Math.Round((float)(r.Height - ImageSize) / 2);
60 if (Application.RenderWithVisualStyles)
62 VisualStyleRenderer renderer;
63 if (node.IsExpanded)
64 renderer = OpenedRenderer;
65 else
66 renderer = ClosedRenderer;
67 renderer.DrawBackground(context.Graphics, new Rectangle(r.X, r.Y + dy, ImageSize, ImageSize));
69 else
71 Image img;
72 if (node.IsExpanded)
73 img = _minus;
74 else
75 img = _plus;
76 context.Graphics.DrawImageUnscaled(img, new Point(r.X, r.Y + dy));
81 public override void MouseDown(TreeNodeAdvMouseEventArgs args)
83 if (args.Button == MouseButtons.Left)
85 args.Handled = true;
86 if (args.Node.CanExpand)
87 args.Node.IsExpanded = !args.Node.IsExpanded;
91 public override void MouseDoubleClick(TreeNodeAdvMouseEventArgs args)
93 args.Handled = true; // Supress expand/collapse when double click on plus/minus