This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
gwen-dotnet/Gwen/Skin/Simple.cs

706 lines
28 KiB
C#

using System;
//using System.Drawing;
namespace Gwen.Skin
{
/// <summary>
/// Simple skin (non-textured). Deprecated and incomplete, do not use.
/// </summary>
[Obsolete]
public class Simple : Skin.Base
{
private readonly Color m_colBorderColor;
private readonly Color m_colControlOutlineLight;
private readonly Color m_colControlOutlineLighter;
private readonly Color m_colBGDark;
private readonly Color m_colControl;
private readonly Color m_colControlDarker;
private readonly Color m_colControlOutlineNormal;
private readonly Color m_colControlBright;
private readonly Color m_colControlDark;
private readonly Color m_colHighlightBG;
private readonly Color m_colHighlightBorder;
private readonly Color m_colToolTipBackground;
private readonly Color m_colToolTipBorder;
private readonly Color m_colModal;
public Simple(Renderer.Base renderer) : base(renderer)
{
m_colBorderColor = Color.FromArgb(255, 80, 80, 80);
//m_colBG = Color.FromArgb(255, 248, 248, 248);
m_colBGDark = Color.FromArgb(255, 235, 235, 235);
m_colControl = Color.FromArgb(255, 240, 240, 240);
m_colControlBright = Color.FromArgb(255, 255, 255, 255);
m_colControlDark = Color.FromArgb(255, 214, 214, 214);
m_colControlDarker = Color.FromArgb(255, 180, 180, 180);
m_colControlOutlineNormal = Color.FromArgb(255, 112, 112, 112);
m_colControlOutlineLight = Color.FromArgb(255, 144, 144, 144);
m_colControlOutlineLighter = Color.FromArgb(255, 210, 210, 210);
m_colHighlightBG = Color.FromArgb(255, 192, 221, 252);
m_colHighlightBorder = Color.FromArgb(255, 51, 153, 255);
m_colToolTipBackground = Color.FromArgb(255, 255, 255, 225);
m_colToolTipBorder = Color.FromArgb(255, 0, 0, 0);
m_colModal = Color.FromArgb(150, 25, 25, 25);
}
#region UI elements
public override void DrawButton(Control.Base control, bool depressed, bool hovered, bool disabled)
{
int w = control.Width;
int h = control.Height;
DrawButton(w, h, depressed, hovered);
}
public override void DrawMenuItem(Control.Base control, bool submenuOpen, bool isChecked)
{
Rectangle rect = control.RenderBounds;
if (submenuOpen || control.IsHovered)
{
m_Renderer.DrawColor = m_colHighlightBG;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colHighlightBorder;
m_Renderer.DrawLinedRect(rect);
}
if (isChecked)
{
m_Renderer.DrawColor = Color.FromArgb(255, 0, 0, 0);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
DrawCheck(r);
}
}
public override void DrawMenuStrip(Control.Base control)
{
int w = control.Width;
int h = control.Height;
m_Renderer.DrawColor = Color.FromArgb(255, 246, 248, 252);
m_Renderer.DrawFilledRect(new Rectangle(0, 0, w, h));
m_Renderer.DrawColor = Color.FromArgb(150, 218, 224, 241);
m_Renderer.DrawFilledRect(Util.FloatRect(0, h * 0.4f, w, h * 0.6f));
m_Renderer.DrawFilledRect(Util.FloatRect(0, h * 0.5f, w, h * 0.5f));
}
public override void DrawMenu(Control.Base control, bool paddingDisabled)
{
int w = control.Width;
int h = control.Height;
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(new Rectangle(0, 0, w, h));
if (!paddingDisabled)
{
m_Renderer.DrawColor = m_colControl;
m_Renderer.DrawFilledRect(new Rectangle(1, 0, 22, h));
}
m_Renderer.DrawColor = m_colControlOutlineNormal;
m_Renderer.DrawLinedRect(new Rectangle(0, 0, w, h));
}
public override void DrawShadow(Control.Base control)
{
int w = control.Width;
int h = control.Height;
int x = 4;
int y = 6;
m_Renderer.DrawColor = Color.FromArgb(10, 0, 0, 0);
m_Renderer.DrawFilledRect(new Rectangle(x, y, w, h));
x += 2;
m_Renderer.DrawFilledRect(new Rectangle(x, y, w, h));
y += 2;
m_Renderer.DrawFilledRect(new Rectangle(x, y, w, h));
}
public virtual void DrawButton(int w, int h, bool depressed, bool bHovered, bool bSquared = false)
{
if (depressed) m_Renderer.DrawColor = m_colControlDark;
else if (bHovered) m_Renderer.DrawColor = m_colControlBright;
else m_Renderer.DrawColor = m_colControl;
m_Renderer.DrawFilledRect(new Rectangle(1, 1, w - 2, h - 2));
if (depressed) m_Renderer.DrawColor = m_colControlDark;
else if (bHovered) m_Renderer.DrawColor = m_colControl;
else m_Renderer.DrawColor = m_colControlDark;
m_Renderer.DrawFilledRect(Util.FloatRect(1, h * 0.5f, w - 2, h * 0.5f - 2));
if (!depressed)
{
m_Renderer.DrawColor = m_colControlBright;
}
else
{
m_Renderer.DrawColor = m_colControlDarker;
}
m_Renderer.DrawShavedCornerRect(new Rectangle(1, 1, w - 2, h - 2), bSquared);
// Border
m_Renderer.DrawColor = m_colControlOutlineNormal;
m_Renderer.DrawShavedCornerRect(new Rectangle(0, 0, w, h), bSquared);
}
public override void DrawRadioButton(Control.Base control, bool selected, bool depressed)
{
Rectangle rect = control.RenderBounds;
// Inside colour
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 220, 242, 254);
else m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 2));
// Border
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 85, 130, 164);
else m_Renderer.DrawColor = m_colControlOutlineLight;
m_Renderer.DrawShavedCornerRect(rect);
m_Renderer.DrawColor = Color.FromArgb(15, 0, 50, 60);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height - 4));
m_Renderer.DrawFilledRect(Util.FloatRect(rect.X + 2, rect.Y + 2, rect.Width * 0.3f, rect.Height - 4));
m_Renderer.DrawFilledRect(Util.FloatRect(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height * 0.3f));
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 121, 198, 249);
else m_Renderer.DrawColor = Color.FromArgb(50, 0, 50, 60);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 3, 1, rect.Height - 5));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 3, rect.Y + 2, rect.Width - 5, 1));
if (selected)
{
m_Renderer.DrawColor = Color.FromArgb(255, 40, 230, 30);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height - 4));
}
}
public override void DrawCheckBox(Control.Base control, bool selected, bool depressed)
{
Rectangle rect = control.RenderBounds;
// Inside colour
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 220, 242, 254);
else m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(rect);
// Border
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 85, 130, 164);
else m_Renderer.DrawColor = m_colControlOutlineLight;
m_Renderer.DrawLinedRect(rect);
m_Renderer.DrawColor = Color.FromArgb(15, 0, 50, 60);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height - 4));
m_Renderer.DrawFilledRect(Util.FloatRect(rect.X + 2, rect.Y + 2, rect.Width * 0.3f, rect.Height - 4));
m_Renderer.DrawFilledRect(Util.FloatRect(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height * 0.3f));
if (control.IsHovered) m_Renderer.DrawColor = Color.FromArgb(255, 121, 198, 249);
else m_Renderer.DrawColor = Color.FromArgb(50, 0, 50, 60);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 2, 1, rect.Height - 4));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, 1));
if (depressed)
{
m_Renderer.DrawColor = Color.FromArgb(255, 100, 100, 100);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
DrawCheck(r);
}
else if (selected)
{
m_Renderer.DrawColor = Color.FromArgb(255, 0, 0, 0);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
DrawCheck(r);
}
}
public override void DrawGroupBox(Control.Base control, int textStart, int textHeight, int textWidth)
{
Rectangle rect = control.RenderBounds;
rect.Y += (int)(textHeight * 0.5f);
rect.Height -= (int)(textHeight * 0.5f);
Color m_colDarker = Color.FromArgb(50, 0, 50, 60);
Color m_colLighter = Color.FromArgb(150, 255, 255, 255);
m_Renderer.DrawColor = m_colLighter;
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y + 1, textStart - 3, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1 + textStart + textWidth, rect.Y + 1,
rect.Width - textStart + textWidth - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, (rect.Y + rect.Height) - 1, rect.Width - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y + 1, 1, rect.Height));
m_Renderer.DrawFilledRect(new Rectangle((rect.X + rect.Width) - 2, rect.Y + 1, 1, rect.Height - 1));
m_Renderer.DrawColor = m_colDarker;
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y, textStart - 3, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1 + textStart + textWidth, rect.Y,
rect.Width - textStart - textWidth - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, (rect.Y + rect.Height) - 1, rect.Width - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X, rect.Y + 1, 1, rect.Height - 1));
m_Renderer.DrawFilledRect(new Rectangle((rect.X + rect.Width) - 1, rect.Y + 1, 1, rect.Height - 1));
}
public override void DrawTextBox(Control.Base control)
{
Rectangle rect = control.RenderBounds;
bool bHasFocus = control.HasFocus;
// Box inside
m_Renderer.DrawColor = Color.FromArgb(255, 255, 255, 255);
m_Renderer.DrawFilledRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 2));
m_Renderer.DrawColor = m_colControlOutlineLight;
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y, rect.Width - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X, rect.Y + 1, 1, rect.Height - 2));
m_Renderer.DrawColor = m_colControlOutlineLighter;
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, (rect.Y + rect.Height) - 1, rect.Width - 2, 1));
m_Renderer.DrawFilledRect(new Rectangle((rect.X + rect.Width) - 1, rect.Y + 1, 1, rect.Height - 2));
if (bHasFocus)
{
m_Renderer.DrawColor = Color.FromArgb(150, 50, 200, 255);
m_Renderer.DrawLinedRect(rect);
}
}
public override void DrawTabButton(Control.Base control, bool active, Pos dir)
{
Rectangle rect = control.RenderBounds;
bool bHovered = control.IsHovered;
if (bHovered) m_Renderer.DrawColor = m_colControlBright;
else m_Renderer.DrawColor = m_colControl;
m_Renderer.DrawFilledRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 1));
if (bHovered) m_Renderer.DrawColor = m_colControl;
else m_Renderer.DrawColor = m_colControlDark;
m_Renderer.DrawFilledRect(Util.FloatRect(1, rect.Height*0.5f, rect.Width - 2, rect.Height*0.5f - 1));
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawShavedCornerRect(new Rectangle(1, 1, rect.Width - 2, rect.Height));
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawShavedCornerRect(new Rectangle(0, 0, rect.Width, rect.Height));
}
public override void DrawTabControl(Control.Base control)
{
Rectangle rect = control.RenderBounds;
m_Renderer.DrawColor = m_colControl;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawLinedRect(rect);
//m_Renderer.DrawColor = m_colControl;
//m_Renderer.DrawFilledRect(CurrentButtonRect);
}
public override void DrawWindow(Control.Base control, int topHeight, bool inFocus)
{
Rectangle rect = control.RenderBounds;
// Titlebar
if (inFocus)
m_Renderer.DrawColor = Color.FromArgb(230, 87, 164, 232);
else
m_Renderer.DrawColor = Color.FromArgb(230, (int)(87 * 0.70f), (int)(164 * 0.70f),
(int)(232 * 0.70f));
int iBorderSize = 5;
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y + 1, rect.Width - 2, topHeight - 1));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y + topHeight - 1, iBorderSize,
rect.Height - 2 - topHeight));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + rect.Width - iBorderSize, rect.Y + topHeight - 1, iBorderSize,
rect.Height - 2 - topHeight));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 1, rect.Y + rect.Height - iBorderSize, rect.Width - 2,
iBorderSize));
// Main inner
m_Renderer.DrawColor = Color.FromArgb(230, m_colControlDark.R, m_colControlDark.G, m_colControlDark.B);
m_Renderer.DrawFilledRect(new Rectangle(rect.X + iBorderSize + 1, rect.Y + topHeight,
rect.Width - iBorderSize * 2 - 2,
rect.Height - topHeight - iBorderSize - 1));
// Light inner border
m_Renderer.DrawColor = Color.FromArgb(100, 255, 255, 255);
m_Renderer.DrawShavedCornerRect(new Rectangle(rect.X + 1, rect.Y + 1, rect.Width - 2, rect.Height - 2));
// Dark line between titlebar and main
m_Renderer.DrawColor = m_colBorderColor;
// Inside border
m_Renderer.DrawColor = m_colControlOutlineNormal;
m_Renderer.DrawLinedRect(new Rectangle(rect.X + iBorderSize, rect.Y + topHeight - 1, rect.Width - 10,
rect.Height - topHeight - (iBorderSize - 1)));
// Dark outer border
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawShavedCornerRect(new Rectangle(rect.X, rect.Y, rect.Width, rect.Height));
}
public override void DrawWindowCloseButton(Control.Base control, bool depressed, bool hovered, bool disabled)
{
// TODO
DrawButton(control, depressed, hovered, disabled);
}
public override void DrawHighlight(Control.Base control)
{
Rectangle rect = control.RenderBounds;
m_Renderer.DrawColor = Color.FromArgb(255, 255, 100, 255);
m_Renderer.DrawFilledRect(rect);
}
public override void DrawScrollBar(Control.Base control, bool horizontal, bool depressed)
{
Rectangle rect = control.RenderBounds;
if (depressed)
m_Renderer.DrawColor = m_colControlDarker;
else
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(rect);
}
public override void DrawScrollBarBar(Control.Base control, bool depressed, bool hovered, bool horizontal)
{
//TODO: something specialized
DrawButton(control, depressed, hovered, false);
}
public override void DrawTabTitleBar(Control.Base control)
{
Rectangle rect = control.RenderBounds;
m_Renderer.DrawColor = Color.FromArgb(255, 177, 193, 214);
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
rect.Height += 1;
m_Renderer.DrawLinedRect(rect);
}
public override void DrawProgressBar(Control.Base control, bool horizontal, float progress)
{
Rectangle rect = control.RenderBounds;
Color FillColour = Color.FromArgb(255, 0, 211, 40);
if (horizontal)
{
//Background
m_Renderer.DrawColor = m_colControlDark;
m_Renderer.DrawFilledRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 2));
//Right half
m_Renderer.DrawColor = FillColour;
m_Renderer.DrawFilledRect(Util.FloatRect(1, 1, rect.Width * progress - 2, rect.Height - 2));
m_Renderer.DrawColor = Color.FromArgb(150, 255, 255, 255);
m_Renderer.DrawFilledRect(Util.FloatRect(1, 1, rect.Width - 2, rect.Height * 0.45f));
}
else
{
//Background
m_Renderer.DrawColor = m_colControlDark;
m_Renderer.DrawFilledRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 2));
//Top half
m_Renderer.DrawColor = FillColour;
m_Renderer.DrawFilledRect(Util.FloatRect(1, 1 + (rect.Height * (1 - progress)), rect.Width - 2,
rect.Height * progress - 2));
m_Renderer.DrawColor = Color.FromArgb(150, 255, 255, 255);
m_Renderer.DrawFilledRect(Util.FloatRect(1, 1, rect.Width * 0.45f, rect.Height - 2));
}
m_Renderer.DrawColor = Color.FromArgb(150, 255, 255, 255);
m_Renderer.DrawShavedCornerRect(new Rectangle(1, 1, rect.Width - 2, rect.Height - 2));
m_Renderer.DrawColor = Color.FromArgb(70, 255, 255, 255);
m_Renderer.DrawShavedCornerRect(new Rectangle(2, 2, rect.Width - 4, rect.Height - 4));
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawShavedCornerRect(rect);
}
public override void DrawListBox(Control.Base control)
{
Rectangle rect = control.RenderBounds;
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawLinedRect(rect);
}
public override void DrawListBoxLine(Control.Base control, bool selected, bool even)
{
Rectangle rect = control.RenderBounds;
if (selected)
{
m_Renderer.DrawColor = m_colHighlightBorder;
m_Renderer.DrawFilledRect(rect);
}
else if (control.IsHovered)
{
m_Renderer.DrawColor = m_colHighlightBG;
m_Renderer.DrawFilledRect(rect);
}
}
public override void DrawSlider(Control.Base control, bool horizontal, int numNotches, int barSize)
{
Rectangle rect = control.RenderBounds;
Rectangle notchRect = rect;
if (horizontal)
{
rect.Y += (int)(rect.Height * 0.4f);
rect.Height -= (int)(rect.Height * 0.8f);
}
else
{
rect.X += (int)(rect.Width * 0.4f);
rect.Width -= (int)(rect.Width * 0.8f);
}
m_Renderer.DrawColor = m_colBGDark;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colControlDarker;
m_Renderer.DrawLinedRect(rect);
}
public override void DrawComboBox(Control.Base control, bool down, bool open)
{
DrawTextBox(control);
}
public override void DrawKeyboardHighlight(Control.Base control, Rectangle r, int iOffset)
{
Rectangle rect = r;
rect.X += iOffset;
rect.Y += iOffset;
rect.Width -= iOffset * 2;
rect.Height -= iOffset * 2;
//draw the top and bottom
bool skip = true;
for (int i = 0; i < rect.Width * 0.5; i++)
{
m_Renderer.DrawColor = Color.FromArgb(255, 0, 0, 0);
if (!skip)
{
m_Renderer.DrawPixel(rect.X + (i * 2), rect.Y);
m_Renderer.DrawPixel(rect.X + (i * 2), rect.Y + rect.Height - 1);
}
else
skip = false;
}
for (int i = 0; i < rect.Height * 0.5; i++)
{
m_Renderer.DrawColor = Color.FromArgb(255, 0, 0, 0);
m_Renderer.DrawPixel(rect.X, rect.Y + i * 2);
m_Renderer.DrawPixel(rect.X + rect.Width - 1, rect.Y + i * 2);
}
}
public override void DrawToolTip(Control.Base control)
{
Rectangle rct = control.RenderBounds;
rct.X -= 3;
rct.Y -= 3;
rct.Width += 6;
rct.Height += 6;
m_Renderer.DrawColor = m_colToolTipBackground;
m_Renderer.DrawFilledRect(rct);
m_Renderer.DrawColor = m_colToolTipBorder;
m_Renderer.DrawLinedRect(rct);
}
public override void DrawScrollButton(Control.Base control, Pos direction, bool depressed, bool hovered, bool disabled)
{
DrawButton(control, depressed, false, false);
m_Renderer.DrawColor = Color.FromArgb(240, 0, 0, 0);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
if (direction == Pos.Top) DrawArrowUp(r);
else if (direction == Pos.Bottom) DrawArrowDown(r);
else if (direction == Pos.Left) DrawArrowLeft(r);
else DrawArrowRight(r);
}
public override void DrawComboBoxArrow(Control.Base control, bool hovered, bool depressed, bool open, bool disabled)
{
//DrawButton( control.Width, control.Height, depressed, false, true );
m_Renderer.DrawColor = Color.FromArgb(240, 0, 0, 0);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
DrawArrowDown(r);
}
public override void DrawNumericUpDownButton(Control.Base control, bool depressed, bool up)
{
//DrawButton( control.Width, control.Height, depressed, false, true );
m_Renderer.DrawColor = Color.FromArgb(240, 0, 0, 0);
Rectangle r = new Rectangle(control.Width / 2 - 2, control.Height / 2 - 2, 5, 5);
if (up) DrawArrowUp(r);
else DrawArrowDown(r);
}
public override void DrawTreeButton(Control.Base control, bool open)
{
Rectangle rect = control.RenderBounds;
rect.X += 2;
rect.Y += 2;
rect.Width -= 4;
rect.Height -= 4;
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawLinedRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
if (!open) // ! because the button shows intention, not the current state
m_Renderer.DrawFilledRect(new Rectangle(rect.X + rect.Width / 2, rect.Y + 2, 1, rect.Height - 4));
m_Renderer.DrawFilledRect(new Rectangle(rect.X + 2, rect.Y + rect.Height / 2, rect.Width - 4, 1));
}
public override void DrawTreeControl(Control.Base control)
{
Rectangle rect = control.RenderBounds;
m_Renderer.DrawColor = m_colControlBright;
m_Renderer.DrawFilledRect(rect);
m_Renderer.DrawColor = m_colBorderColor;
m_Renderer.DrawLinedRect(rect);
}
public override void DrawTreeNode(Control.Base ctrl, bool open, bool selected, int labelHeight, int labelWidth, int halfWay, int lastBranch, bool isRoot)
{
if (selected)
{
Renderer.DrawColor = Color.FromArgb(100, 0, 150, 255);
Renderer.DrawFilledRect(new Rectangle(17, 0, labelWidth + 2, labelHeight - 1));
Renderer.DrawColor = Color.FromArgb(200, 0, 150, 255);
Renderer.DrawLinedRect(new Rectangle(17, 0, labelWidth + 2, labelHeight - 1));
}
base.DrawTreeNode(ctrl, open, selected, labelHeight, labelWidth, halfWay, lastBranch, isRoot);
}
public override void DrawStatusBar(Control.Base control)
{
// todo
}
public override void DrawColorDisplay(Control.Base control, Color color)
{
Rectangle rect = control.RenderBounds;
if (color.A != 255)
{
Renderer.DrawColor = Color.FromArgb(255, 255, 255, 255);
Renderer.DrawFilledRect(rect);
Renderer.DrawColor = Color.FromArgb(128, 128, 128, 128);
Renderer.DrawFilledRect(Util.FloatRect(0, 0, rect.Width * 0.5f, rect.Height * 0.5f));
Renderer.DrawFilledRect(Util.FloatRect(rect.Width * 0.5f, rect.Height * 0.5f, rect.Width * 0.5f,
rect.Height * 0.5f));
}
Renderer.DrawColor = color;
Renderer.DrawFilledRect(rect);
Renderer.DrawColor = Color.FromArgb(255, 0, 0, 0);
Renderer.DrawLinedRect(rect);
}
public override void DrawModalControl(Control.Base control)
{
if (control.ShouldDrawBackground)
{
Rectangle rect = control.RenderBounds;
Renderer.DrawColor = m_colModal;
Renderer.DrawFilledRect(rect);
}
}
public override void DrawMenuDivider(Control.Base control)
{
Rectangle rect = control.RenderBounds;
Renderer.DrawColor = m_colBGDark;
Renderer.DrawFilledRect(rect);
Renderer.DrawColor = m_colControlDarker;
Renderer.DrawLinedRect(rect);
}
public override void DrawMenuRightArrow(Control.Base control)
{
DrawArrowRight(control.RenderBounds);
}
public override void DrawSliderButton(Control.Base control, bool depressed, bool horizontal)
{
DrawButton(control, depressed, control.IsHovered, control.IsDisabled);
}
public override void DrawCategoryHolder(Control.Base control)
{
// todo
}
public override void DrawCategoryInner(Control.Base control, bool collapsed)
{
// todo
}
#endregion
}
}