182 lines
6.2 KiB
C#
182 lines
6.2 KiB
C#
|
////////////////////////////////////////////////////////////////
|
||
|
// //
|
||
|
// 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
|
||
|
}
|
||
|
|
||
|
}
|