136 lines
4.6 KiB
C#
136 lines
4.6 KiB
C#
////////////////////////////////////////////////////////////////
|
|
// //
|
|
// Neoforce Controls //
|
|
// //
|
|
////////////////////////////////////////////////////////////////
|
|
// //
|
|
// File: ToolBarPanel.cs //
|
|
// //
|
|
// Version: 0.7 //
|
|
// //
|
|
// Date: 11/09/2010 //
|
|
// //
|
|
// Author: Tom Shane //
|
|
// //
|
|
////////////////////////////////////////////////////////////////
|
|
// //
|
|
// Copyright (c) by Tom Shane //
|
|
// //
|
|
////////////////////////////////////////////////////////////////
|
|
|
|
#region //// Using /////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
using Microsoft.Xna.Framework;
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endregion
|
|
|
|
namespace TomShane.Neoforce.Controls
|
|
{
|
|
|
|
|
|
public class ToolBarPanel: Control
|
|
{
|
|
|
|
#region //// Fields ////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endregion
|
|
|
|
#region //// Properties ////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endregion
|
|
|
|
#region //// Construstors //////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
public ToolBarPanel(Manager manager): base(manager)
|
|
{
|
|
Width = 64;
|
|
Height = 25;
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endregion
|
|
|
|
#region //// Methods ///////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
public override void Init()
|
|
{
|
|
base.Init();
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
protected internal override void InitSkin()
|
|
{
|
|
base.InitSkin();
|
|
Skin = new SkinControl(Manager.Skin.Controls["ToolBarPanel"]);
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime)
|
|
{
|
|
base.DrawControl(renderer, rect, gameTime);
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
protected override void OnResize(ResizeEventArgs e)
|
|
{
|
|
base.OnResize(e);
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
protected internal override void Update(GameTime gameTime)
|
|
{
|
|
base.Update(gameTime);
|
|
AlignBars();
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
private void AlignBars()
|
|
{
|
|
int[] rx = new int[8];
|
|
int h = 0;
|
|
int rm = -1;
|
|
|
|
foreach (Control c in Controls)
|
|
{
|
|
if (c is ToolBar)
|
|
{
|
|
ToolBar t = c as ToolBar;
|
|
if (t.FullRow) t.Width = Width;
|
|
t.Left = rx[t.Row];
|
|
t.Top = (t.Row * t.Height) + (t.Row > 0 ? 1 : 0);
|
|
rx[t.Row] += t.Width + 1;
|
|
|
|
if (t.Row > rm)
|
|
{
|
|
rm = t.Row;
|
|
h = t.Top + t.Height + 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
Height = h;
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|