This commit is contained in:
Paul Chote
2011-05-09 23:29:58 +12:00
parent 6a1f3cfc18
commit 37577afc36
9 changed files with 61 additions and 26 deletions

View File

@@ -46,6 +46,12 @@ namespace OpenRA.Widgets
indeterminateTick = 0; indeterminateTick = 0;
} }
public void SetIndeterminate(bool value)
{
Indeterminate = value;
indeterminateTick = 0;
}
public override Widget Clone() { return new ProgressBarWidget(this); } public override Widget Clone() { return new ProgressBarWidget(this); }
} }
} }

View File

@@ -82,6 +82,7 @@ namespace OpenRA.Mods.Cnc
void TestAndContinue() void TestAndContinue()
{ {
Widget.RootWidget.RemoveChildren();
if (!FileSystem.Exists(Info["TestFile"])) if (!FileSystem.Exists(Info["TestFile"]))
{ {
var args = new Dictionary<string, object>() var args = new Dictionary<string, object>()
@@ -89,7 +90,8 @@ namespace OpenRA.Mods.Cnc
{ "continueLoading", (Action)(() => TestAndContinue()) }, { "continueLoading", (Action)(() => TestAndContinue()) },
{ "installData", Info } { "installData", Info }
}; };
Widget.OpenWindow(Info["InstallerWidget"], args); Widget.LoadWidget(Info["InstallerBackgroundWidget"], args);
Widget.OpenWindow(Info["InstallerMenuWidget"], args);
} }
else else
Game.LoadShellMap(); Game.LoadShellMap();

View File

@@ -57,6 +57,8 @@ namespace OpenRA.Mods.Cnc.Widgets
Game.AddChatLine += AddChatLineStub; Game.AddChatLine += AddChatLineStub;
} }
ingameRoot.GetWidget<CncMenuButtonWidget>("DIPLOMACY_BUTTON").IsDisabled = () => true;
ingameRoot.GetWidget<CncMenuButtonWidget>("OPTIONS_BUTTON").OnClick = () => ingameRoot.GetWidget<CncMenuButtonWidget>("OPTIONS_BUTTON").OnClick = () =>
{ {
ingameRoot.IsVisible = () => false; ingameRoot.IsVisible = () => false;
@@ -109,6 +111,9 @@ namespace OpenRA.Mods.Cnc.Widgets
surrenderButton.OnClick = () => surrenderButton.OnClick = () =>
PromptConfirmAction("Surrender", "Are you sure you want to surrender?", onSurrender, doNothing); PromptConfirmAction("Surrender", "Are you sure you want to surrender?", onSurrender, doNothing);
menu.GetWidget<CncMenuButtonWidget>("MUSIC_BUTTON").IsDisabled = () => true;
menu.GetWidget<CncMenuButtonWidget>("PREFERENCES_BUTTON").IsDisabled = () => true;
menu.GetWidget<CncMenuButtonWidget>("RESUME_BUTTON").OnClick = () => menu.GetWidget<CncMenuButtonWidget>("RESUME_BUTTON").OnClick = () =>
{ {
Widget.RootWidget.RemoveChild(menu); Widget.RootWidget.RemoveChild(menu);

View File

@@ -38,14 +38,19 @@ namespace OpenRA.Mods.Cnc.Widgets
panel.GetWidget<CncMenuButtonWidget>("INSTALL_BUTTON").OnClick = () => panel.GetWidget<CncMenuButtonWidget>("INSTALL_BUTTON").OnClick = () =>
Widget.OpenWindow("INSTALL_FROMCD_PANEL", args); Widget.OpenWindow("INSTALL_FROMCD_PANEL", args);
//panel.GetWidget<CncMenuButtonWidget>("MODS_BUTTON").OnClick = ShowModDialog;
panel.GetWidget<CncMenuButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.GetWidget<CncMenuButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
// TODO:
panel.GetWidget<CncMenuButtonWidget>("DOWNLOAD_BUTTON").IsDisabled = () => true;
panel.GetWidget<CncMenuButtonWidget>("MODS_BUTTON").IsDisabled = () => true;
} }
} }
public class CncInstallFromCDLogic : IWidgetDelegate public class CncInstallFromCDLogic : IWidgetDelegate
{ {
Widget panel; Widget panel;
ProgressBarWidget progressBar;
LabelWidget statusLabel;
Action continueLoading; Action continueLoading;
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
@@ -54,6 +59,8 @@ namespace OpenRA.Mods.Cnc.Widgets
{ {
this.continueLoading = continueLoading; this.continueLoading = continueLoading;
panel = widget.GetWidget("INSTALL_FROMCD_PANEL"); panel = widget.GetWidget("INSTALL_FROMCD_PANEL");
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
var backButton = panel.GetWidget<CncMenuButtonWidget>("BACK_BUTTON"); var backButton = panel.GetWidget<CncMenuButtonWidget>("BACK_BUTTON");
backButton.OnClick = Widget.CloseWindow; backButton.OnClick = Widget.CloseWindow;
@@ -63,12 +70,13 @@ namespace OpenRA.Mods.Cnc.Widgets
retryButton.OnClick = PromptForCD; retryButton.OnClick = PromptForCD;
retryButton.IsVisible = () => false; retryButton.IsVisible = () => false;
// TODO: Search obvious places (platform dependant) for CD // TODO: Search obvious places (platform dependent) for CD
PromptForCD(); PromptForCD();
} }
void PromptForCD() void PromptForCD()
{ {
progressBar.SetIndeterminate(true);
Game.Utilities.PromptFilepathAsync("Select CONQUER.MIX on the C&C CD", path => Game.RunAfterTick(() => Install(path))); Game.Utilities.PromptFilepathAsync("Select CONQUER.MIX on the C&C CD", path => Game.RunAfterTick(() => Install(path)));
} }
@@ -81,10 +89,8 @@ namespace OpenRA.Mods.Cnc.Widgets
var extractPackage = "INSTALL/SETUP.Z"; var extractPackage = "INSTALL/SETUP.Z";
var extractFiles = new string[] { "cclocal.mix", "speech.mix", "tempicnh.mix", "updatec.mix" }; var extractFiles = new string[] { "cclocal.mix", "speech.mix", "tempicnh.mix", "updatec.mix" };
var progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR"); progressBar.SetIndeterminate(false);
progressBar.Indeterminate = false;
var statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
var installCounter = 0; var installCounter = 0;
var onProgress = (Action<string>)(s => var onProgress = (Action<string>)(s =>
{ {

View File

@@ -97,6 +97,9 @@ namespace OpenRA.Mods.Cnc.Widgets
var settingsMenu = widget.GetWidget("SETTINGS_MENU"); var settingsMenu = widget.GetWidget("SETTINGS_MENU");
settingsMenu.IsVisible = () => Menu == MenuType.Settings; settingsMenu.IsVisible = () => Menu == MenuType.Settings;
settingsMenu.GetWidget<CncMenuButtonWidget>("MODS_BUTTON").IsDisabled = () => true;
settingsMenu.GetWidget<CncMenuButtonWidget>("MUSIC_BUTTON").IsDisabled = () => true;
settingsMenu.GetWidget<CncMenuButtonWidget>("PREFERENCES_BUTTON").IsDisabled = () => true;
settingsMenu.GetWidget<CncMenuButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; settingsMenu.GetWidget<CncMenuButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
} }

View File

@@ -39,8 +39,15 @@ Container@INGAME_MENU:
Width:140 Width:140
Height:35 Height:35
Text:Surrender Text:Surrender
CncMenuButton@SETTINGS_BUTTON: CncMenuButton@MUSIC_BUTTON:
Id:SETTINGS_BUTTON Id:MUSIC_BUTTON
X:300
Y:0
Width:140
Height:35
Text:Music
CncMenuButton@PREFERENCES_BUTTON:
Id:PREFERENCES_BUTTON
X:450 X:450
Y:0 Y:0
Width:140 Width:140

View File

@@ -1,3 +1,9 @@
Background@INSTALL_BACKGROUND:
Id:INSTALL_BACKGROUND
Width:WINDOW_RIGHT
Height:WINDOW_BOTTOM
Background:shellmapborder
Container@INSTALL_PANEL: Container@INSTALL_PANEL:
Id:INSTALL_PANEL Id:INSTALL_PANEL
Delegate:CncInstallLogic Delegate:CncInstallLogic
@@ -96,7 +102,6 @@ Container@INSTALL_FROMCD_PANEL:
Y:45 Y:45
Width:PARENT_RIGHT - 185 Width:PARENT_RIGHT - 185
Height:35 Height:35
Indeterminate:true
Label@STATUS_LABEL: Label@STATUS_LABEL:
Id:STATUS_LABEL Id:STATUS_LABEL
X:170 X:170

View File

@@ -44,7 +44,7 @@ Container@MENU_BACKGROUND:
Y:0 Y:0
Width:140 Width:140
Height:35 Height:35
Text:Skirmish Text:Singleplayer
CncMenuButton@MULTIPLAYER_BUTTON: CncMenuButton@MULTIPLAYER_BUTTON:
Id:MULTIPLAYER_BUTTON Id:MULTIPLAYER_BUTTON
X:150 X:150

View File

@@ -61,7 +61,7 @@ Assemblies:
mods/cnc/OpenRA.Mods.Cnc.dll mods/cnc/OpenRA.Mods.Cnc.dll
ChromeLayout: ChromeLayout:
mods/cnc/chrome/gameinit.yaml mods/cnc/chrome/install.yaml
mods/cnc/chrome/mainmenu.yaml mods/cnc/chrome/mainmenu.yaml
mods/cnc/chrome/serverbrowser.yaml mods/cnc/chrome/serverbrowser.yaml
mods/cnc/chrome/createserver.yaml mods/cnc/chrome/createserver.yaml
@@ -93,7 +93,8 @@ TileSets:
mods/cnc/tilesets/snow.yaml mods/cnc/tilesets/snow.yaml
LoadScreen: CncLoadScreen LoadScreen: CncLoadScreen
InstallerWidget: INSTALL_PANEL InstallerMenuWidget: INSTALL_PANEL
InstallerBackgroundWidget: INSTALL_BACKGROUND
TestFile: conquer.mix TestFile: conquer.mix
PackageURL: http://open-ra.org/get-dependency.php?file=cnc-packages PackageURL: http://open-ra.org/get-dependency.php?file=cnc-packages