git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1244 993157c7-ee19-0410-b2c4-bb4e9862e678
This commit is contained in:
@@ -12,7 +12,47 @@ namespace OpenRa.Game
|
|||||||
Size size;
|
Size size;
|
||||||
MethodInvoker drawFunction;
|
MethodInvoker drawFunction;
|
||||||
|
|
||||||
public Region(Point location, Size size, MethodInvoker drawFunction)
|
static Size MakeSize(Viewport v, DockStyle d, int size)
|
||||||
|
{
|
||||||
|
switch (d)
|
||||||
|
{
|
||||||
|
case DockStyle.Top:
|
||||||
|
case DockStyle.Bottom:
|
||||||
|
return new Size(v.Width, size);
|
||||||
|
|
||||||
|
case DockStyle.Left:
|
||||||
|
case DockStyle.Right:
|
||||||
|
return new Size(size, v.Height);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Region Create(Viewport v, DockStyle d, int size, MethodInvoker f)
|
||||||
|
{
|
||||||
|
Point topLeft = new Point(0, 0);
|
||||||
|
Point bottomRight = new Point(v.ClientSize);
|
||||||
|
|
||||||
|
Size s = MakeSize(v, d, size);
|
||||||
|
|
||||||
|
switch (d)
|
||||||
|
{
|
||||||
|
case DockStyle.Top:
|
||||||
|
case DockStyle.Left:
|
||||||
|
return new Region(topLeft, s, f);
|
||||||
|
|
||||||
|
case DockStyle.Right:
|
||||||
|
case DockStyle.Bottom:
|
||||||
|
Point origin = bottomRight; origin.Offset( -s.Width, -s.Height );
|
||||||
|
return new Region(origin, s, f);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Region(Point location, Size size, MethodInvoker drawFunction)
|
||||||
{
|
{
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.size = size;
|
this.size = size;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace OpenRa.Game
|
|||||||
public Sidebar(Race race, Renderer renderer, Viewport viewport)
|
public Sidebar(Race race, Renderer renderer, Viewport viewport)
|
||||||
{
|
{
|
||||||
this.viewport = viewport;
|
this.viewport = viewport;
|
||||||
viewport.RequestRegion(AnchorStyles.Right, 128, Paint);
|
viewport.AddRegion( Region.Create(viewport, DockStyle.Right, 128, Paint));
|
||||||
techTree.CurrentRace = race;
|
techTree.CurrentRace = race;
|
||||||
techTree.Build("FACT", true);
|
techTree.Build("FACT", true);
|
||||||
spriteRenderer = new SpriteRenderer(renderer, false);
|
spriteRenderer = new SpriteRenderer(renderer, false);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
this.viewport = viewport;
|
this.viewport = viewport;
|
||||||
viewport.RequestRegion(AnchorStyles.Left, viewport.ClientSize.Width - 128, Draw);
|
viewport.AddRegion(Region.Create(viewport, DockStyle.Left, viewport.ClientSize.Width - 128, Draw));
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
|
||||||
tileSet = new TileSet(tilePackage, map.TileSuffix);
|
tileSet = new TileSet(tilePackage, map.TileSuffix);
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ namespace OpenRa.Game
|
|||||||
public float2 Location { get { return scrollPosition; } }
|
public float2 Location { get { return scrollPosition; } }
|
||||||
public float2 Size { get { return new float2(ClientSize); } }
|
public float2 Size { get { return new float2(ClientSize); } }
|
||||||
|
|
||||||
|
public int Width { get { return clientSize.Width; } }
|
||||||
|
public int Height { get { return clientSize.Height; } }
|
||||||
|
|
||||||
public void Scroll(float2 delta)
|
public void Scroll(float2 delta)
|
||||||
{
|
{
|
||||||
scrollPosition = (scrollPosition + delta).Constrain(
|
scrollPosition = (scrollPosition + delta).Constrain(
|
||||||
@@ -33,25 +36,9 @@ namespace OpenRa.Game
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Region> regions = new List<Region>();
|
List<Region> regions = new List<Region>();
|
||||||
public void RequestRegion(AnchorStyles anchor, int distanceFromAnchor, MethodInvoker drawFunction)
|
public void AddRegion(Region r)
|
||||||
{
|
{
|
||||||
switch (anchor)
|
regions.Add(r);
|
||||||
{
|
|
||||||
case AnchorStyles.Top:
|
|
||||||
regions.Add(new Region(new Point(0, 0), new Size(clientSize.Width, distanceFromAnchor), drawFunction));
|
|
||||||
break;
|
|
||||||
case AnchorStyles.Bottom:
|
|
||||||
regions.Add(new Region(new Point(0, clientSize.Height - distanceFromAnchor), new Size(clientSize.Width, distanceFromAnchor), drawFunction));
|
|
||||||
break;
|
|
||||||
case AnchorStyles.Left:
|
|
||||||
regions.Add(new Region(new Point(0, 0), new Size(distanceFromAnchor, clientSize.Height), drawFunction));
|
|
||||||
break;
|
|
||||||
case AnchorStyles.Right:
|
|
||||||
regions.Add(new Region(new Point(clientSize.Width - distanceFromAnchor, 0), new Size(distanceFromAnchor, clientSize.Height), drawFunction));
|
|
||||||
break;
|
|
||||||
case AnchorStyles.None:
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DrawRegions()
|
public void DrawRegions()
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
this.viewport = viewport;
|
this.viewport = viewport;
|
||||||
viewport.RequestRegion(AnchorStyles.Left, viewport.ClientSize.Width - 128, Draw);
|
viewport.AddRegion(Region.Create(viewport, DockStyle.Left, viewport.ClientSize.Width - 128, Draw));
|
||||||
spriteRenderer = new SpriteRenderer(renderer, true);
|
spriteRenderer = new SpriteRenderer(renderer, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user