Cache rectangles and font in ProductionTabsWidget
This commit is contained in:
@@ -91,6 +91,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
float listOffset = 0;
|
float listOffset = 0;
|
||||||
bool leftPressed = false;
|
bool leftPressed = false;
|
||||||
bool rightPressed = false;
|
bool rightPressed = false;
|
||||||
|
SpriteFont font;
|
||||||
Rectangle leftButtonRect;
|
Rectangle leftButtonRect;
|
||||||
Rectangle rightButtonRect;
|
Rectangle rightButtonRect;
|
||||||
Lazy<ProductionPaletteWidget> paletteWidget;
|
Lazy<ProductionPaletteWidget> paletteWidget;
|
||||||
@@ -110,6 +111,16 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
paletteWidget = Exts.Lazy(() => Ui.Root.Get<ProductionPaletteWidget>(PaletteWidget));
|
paletteWidget = Exts.Lazy(() => Ui.Root.Get<ProductionPaletteWidget>(PaletteWidget));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Initialize(WidgetArgs args)
|
||||||
|
{
|
||||||
|
base.Initialize(args);
|
||||||
|
|
||||||
|
var rb = RenderBounds;
|
||||||
|
leftButtonRect = new Rectangle(rb.X, rb.Y, ArrowWidth, rb.Height);
|
||||||
|
rightButtonRect = new Rectangle(rb.Right - ArrowWidth, rb.Y, ArrowWidth, rb.Height);
|
||||||
|
font = Game.Renderer.Fonts["TinyBold"];
|
||||||
|
}
|
||||||
|
|
||||||
public bool SelectNextTab(bool reverse)
|
public bool SelectNextTab(bool reverse)
|
||||||
{
|
{
|
||||||
if (queueGroup == null)
|
if (queueGroup == null)
|
||||||
@@ -173,8 +184,6 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var rb = RenderBounds;
|
var rb = RenderBounds;
|
||||||
leftButtonRect = new Rectangle(rb.X, rb.Y, ArrowWidth, rb.Height);
|
|
||||||
rightButtonRect = new Rectangle(rb.Right - ArrowWidth, rb.Y, ArrowWidth, rb.Height);
|
|
||||||
|
|
||||||
var leftDisabled = listOffset >= 0;
|
var leftDisabled = listOffset >= 0;
|
||||||
var leftHover = Ui.MouseOverWidget == this && leftButtonRect.Contains(Viewport.LastMousePos);
|
var leftHover = Ui.MouseOverWidget == this && leftButtonRect.Contains(Viewport.LastMousePos);
|
||||||
@@ -198,7 +207,6 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
// Draw tab buttons
|
// Draw tab buttons
|
||||||
Game.Renderer.EnableScissor(new Rectangle(leftButtonRect.Right, rb.Y + 1, rightButtonRect.Left - leftButtonRect.Right - 1, rb.Height));
|
Game.Renderer.EnableScissor(new Rectangle(leftButtonRect.Right, rb.Y + 1, rightButtonRect.Left - leftButtonRect.Right - 1, rb.Height));
|
||||||
var origin = new int2(leftButtonRect.Right - 1 + (int)listOffset, leftButtonRect.Y);
|
var origin = new int2(leftButtonRect.Right - 1 + (int)listOffset, leftButtonRect.Y);
|
||||||
var font = Game.Renderer.Fonts["TinyBold"];
|
|
||||||
contentWidth = 0;
|
contentWidth = 0;
|
||||||
|
|
||||||
foreach (var tab in tabs)
|
foreach (var tab in tabs)
|
||||||
|
|||||||
Reference in New Issue
Block a user