#region Imports
|
|
using DPumpHydr.WinFrmUI.RLT.Util;
|
using System.Drawing;
|
using System.Windows.Forms;
|
|
#endregion
|
|
namespace DPumpHydr.WinFrmUI.RLT.Controls
|
{
|
#region SpaceSeparatorVertical
|
|
public class SpaceSeparatorVertical : SpaceControl // A Vertical Separator
|
{
|
public SpaceSeparatorVertical()
|
{
|
SetColor("DownGradient1", 42, 42, 42); // Basic Gradients Used to Shade the Button
|
SetColor("DownGradient2", 42, 42, 42); // The Gradients are reversed, depending on if Button is Pressed or not
|
SetColor("Border1", 35, 35, 35); // The Inside Border
|
SetColor("Border2", 42, 42, 42); // The Outside Border
|
Size = new(4, 50);
|
}
|
|
private Color C1; // Set up Simple Colors
|
private Color C2;
|
private Pen P1; // A Pen used to create borders
|
private Pen P2;
|
|
protected override void ColorHook()
|
{ // Assign Variables
|
C1 = GetColor("DownGradient1"); // Get the Colors for the Button Shading
|
C2 = GetColor("DownGradient2");
|
P1 = new(GetColor("Border1")); // Get and create the borders for the Buttons
|
P2 = new(GetColor("Border2"));
|
}
|
|
protected override void PaintHook()
|
{ // Draw Custom Label
|
DrawGradient(C1, C2, ClientRectangle, 90f); // if button is pressed
|
DrawBorders(P1, 1); // Create the Inner Border
|
DrawBorders(P2); // Create the Outer Border
|
DrawCorners(BackColor); // Draw the Corners
|
}
|
|
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
|
{
|
// EDIT: ADD AN EXTRA HEIGHT VALIDATION TO AVOID INITIALIZATION PROBLEMS
|
// BITWISE 'AND' OPERATION: IF ZERO THEN HEIGHT IS NOT INVOLVED IN THIS OPERATION
|
if ((specified & BoundsSpecified.Width) == 0 || width == 4)
|
{
|
base.SetBoundsCore(x, y, 4, height, specified);
|
}
|
else
|
{
|
return; // RETURN WITHOUT DOING ANY RESIZING
|
}
|
}
|
}
|
|
#endregion
|
}
|