space-pew/Neoforce/ClipControl.cs

182 lines
6.2 KiB
C#
Raw Normal View History

2015-12-04 10:23:49 +01:00
////////////////////////////////////////////////////////////////
// //
// Neoforce Controls //
// //
////////////////////////////////////////////////////////////////
// //
// File: Control.cs //
// //
// Version: 0.7 //
// //
// Date: 11/09/2010 //
// //
// Author: Tom Shane //
// //
////////////////////////////////////////////////////////////////
// //
// Copyright (c) by Tom Shane //
// //
////////////////////////////////////////////////////////////////
#region //// Using /////////////
////////////////////////////////////////////////////////////////////////////
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
////////////////////////////////////////////////////////////////////////////
#endregion
namespace TomShane.Neoforce.Controls
{
public class ClipControl: Control
{
#region //// Fields ////////////
////////////////////////////////////////////////////////////////////////////
private ClipBox clientArea;
////////////////////////////////////////////////////////////////////////////
#endregion
#region //// Properties ////////
////////////////////////////////////////////////////////////////////////////
public virtual ClipBox ClientArea
{
get { return clientArea; }
set { clientArea = value; }
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
public override Margins ClientMargins
{
get
{
return base.ClientMargins;
}
set
{
base.ClientMargins = value;
if (clientArea != null)
{
clientArea.Left = ClientLeft;
clientArea.Top = ClientTop;
clientArea.Width = ClientWidth;
clientArea.Height = ClientHeight;
}
}
}
////////////////////////////////////////////////////////////////////////////
#endregion
#region //// Constructors //////
////////////////////////////////////////////////////////////////////////////
public ClipControl(Manager manager): base(manager)
{
clientArea = new ClipBox(manager);
clientArea.Init();
clientArea.MinimumWidth = 0;
clientArea.MinimumHeight = 0;
clientArea.Left = ClientLeft;
clientArea.Top = ClientTop;
clientArea.Width = ClientWidth;
clientArea.Height = ClientHeight;
base.Add(clientArea);
}
////////////////////////////////////////////////////////////////////////////
#endregion
#region //// Methods ///////////
////////////////////////////////////////////////////////////////////////////
public override void Init()
{
base.Init();
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
protected internal override void InitSkin()
{
base.InitSkin();
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
public virtual void Add(Control control, bool client)
{
if (client)
{
clientArea.Add(control);
}
else
{
base.Add(control);
}
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
public override void Add(Control control)
{
Add(control, true);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
public override void Remove(Control control)
{
base.Remove(control);
clientArea.Remove(control);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
protected internal override void Update(GameTime gameTime)
{
base.Update(gameTime);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime)
{
base.DrawControl(renderer, rect, gameTime);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
protected override void OnResize(ResizeEventArgs e)
{
base.OnResize(e);
if (clientArea != null)
{
clientArea.Left = ClientLeft;
clientArea.Top = ClientTop;
clientArea.Width = ClientWidth;
clientArea.Height = ClientHeight;
}
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
protected virtual void AdjustMargins()
{
}
////////////////////////////////////////////////////////////////////////////
#endregion
}
}