1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ShiftOS.Engine;
using ShiftOS.Frontend.GUI;
using ShiftOS.Frontend.GraphicsSubsystem;
using Microsoft.Xna.Framework;
namespace ShiftOS.Frontend
{
public class MainMenu : GUI.Control
{
private TextControl _mainTitle = new TextControl();
private TextControl _menuTitle = new TextControl();
private Button _campaign = new Button();
private Button _sandbox = new Button();
public MainMenu()
{
X = 0;
Y = 0;
Width = UIManager.Viewport.Width;
Height = UIManager.Viewport.Height;
AddControl(_mainTitle);
AddControl(_menuTitle);
AddControl(_campaign);
AddControl(_sandbox);
_campaign.Text = "Campaign";
_campaign.Font = new System.Drawing.Font("Lucida Console", 10F);
_campaign.Width = 200;
_campaign.Height = 6 + _campaign.Font.Height;
_campaign.X = 30;
_sandbox.Text = "Sandbox";
_sandbox.Width = 200;
_sandbox.Height = 6 + _campaign.Font.Height;
_sandbox.Font = _campaign.Font;
_sandbox.X = 30;
_mainTitle.X = 30;
_mainTitle.Y = 30;
_mainTitle.Font = new System.Drawing.Font("Lucida Console", 48F);
_mainTitle.AutoSize = true;
_mainTitle.Text = "ShiftOS";
_menuTitle.Text = "Main menu";
_menuTitle.Font = new System.Drawing.Font(_menuTitle.Font.Name, 16F);
_menuTitle.X = 30;
_menuTitle.Y = _mainTitle.Y + _mainTitle.Font.Height + 10;
_campaign.Y = _menuTitle.Y + _menuTitle.Font.Height + 15;
_sandbox.Y = _campaign.Y + _campaign.Font.Height + 15;
_campaign.Click += () =>
{
SaveSystem.IsSandbox = false;
SaveSystem.Begin(false);
Close();
};
_sandbox.Click += () =>
{
SaveSystem.IsSandbox = true;
SaveSystem.Begin(false);
Close();
};
}
public void Close()
{
UIManager.StopHandling(this);
}
private Color _redbg = new Color(127, 0, 0, 255);
private Color _bluebg = new Color(0, 0, 127, 255);
private float _bglerp = 0.0f;
private int _lerpdir = 1;
protected override void OnLayout(GameTime gameTime)
{
if (_lerpdir == 1)
_bglerp += 0.0001f;
else
_bglerp -= 0.001f;
if (_bglerp <= 0.0)
_lerpdir = 1;
else if (_bglerp >= 1)
_lerpdir = -1;
Invalidate();
}
protected override void OnPaint(GraphicsContext gfx)
{
gfx.DrawRectangle(0, 0, Width, Height, Color.Lerp(_redbg, _bluebg, _bglerp));
}
}
}
|