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;
}
public void SetIndeterminate(bool value)
{
Indeterminate = value;
indeterminateTick = 0;
}
public override Widget Clone() { return new ProgressBarWidget(this); }
}
}

View File

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

View File

@@ -57,6 +57,8 @@ namespace OpenRA.Mods.Cnc.Widgets
Game.AddChatLine += AddChatLineStub;
}
ingameRoot.GetWidget<CncMenuButtonWidget>("DIPLOMACY_BUTTON").IsDisabled = () => true;
ingameRoot.GetWidget<CncMenuButtonWidget>("OPTIONS_BUTTON").OnClick = () =>
{
ingameRoot.IsVisible = () => false;
@@ -109,6 +111,9 @@ namespace OpenRA.Mods.Cnc.Widgets
surrenderButton.OnClick = () =>
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 = () =>
{
Widget.RootWidget.RemoveChild(menu);

View File

@@ -25,27 +25,32 @@ namespace OpenRA.Mods.Cnc.Widgets
[ObjectCreator.Param] Dictionary<string,string> installData,
[ObjectCreator.Param] Action continueLoading)
{
var panel = widget.GetWidget("INSTALL_PANEL");
var args = new Dictionary<string, object>()
{
{ "continueLoading", continueLoading },
{ "installData", installData }
};
panel.GetWidget<CncMenuButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
panel.GetWidget<CncMenuButtonWidget>("INSTALL_BUTTON").OnClick = () =>
Widget.OpenWindow("INSTALL_FROMCD_PANEL", args);
//panel.GetWidget<CncMenuButtonWidget>("MODS_BUTTON").OnClick = ShowModDialog;
panel.GetWidget<CncMenuButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
var panel = widget.GetWidget("INSTALL_PANEL");
var args = new Dictionary<string, object>()
{
{ "continueLoading", continueLoading },
{ "installData", installData }
};
panel.GetWidget<CncMenuButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
panel.GetWidget<CncMenuButtonWidget>("INSTALL_BUTTON").OnClick = () =>
Widget.OpenWindow("INSTALL_FROMCD_PANEL", args);
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
{
Widget panel;
ProgressBarWidget progressBar;
LabelWidget statusLabel;
Action continueLoading;
[ObjectCreator.UseCtor]
@@ -54,6 +59,8 @@ namespace OpenRA.Mods.Cnc.Widgets
{
this.continueLoading = continueLoading;
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");
backButton.OnClick = Widget.CloseWindow;
@@ -63,12 +70,13 @@ namespace OpenRA.Mods.Cnc.Widgets
retryButton.OnClick = PromptForCD;
retryButton.IsVisible = () => false;
// TODO: Search obvious places (platform dependant) for CD
// TODO: Search obvious places (platform dependent) for CD
PromptForCD();
}
void PromptForCD()
{
progressBar.SetIndeterminate(true);
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 extractFiles = new string[] { "cclocal.mix", "speech.mix", "tempicnh.mix", "updatec.mix" };
var progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
progressBar.Indeterminate = false;
progressBar.SetIndeterminate(false);
var statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
var installCounter = 0;
var onProgress = (Action<string>)(s =>
{

View File

@@ -97,6 +97,9 @@ namespace OpenRA.Mods.Cnc.Widgets
var settingsMenu = widget.GetWidget("SETTINGS_MENU");
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;
}

View File

@@ -39,8 +39,15 @@ Container@INGAME_MENU:
Width:140
Height:35
Text:Surrender
CncMenuButton@SETTINGS_BUTTON:
Id:SETTINGS_BUTTON
CncMenuButton@MUSIC_BUTTON:
Id:MUSIC_BUTTON
X:300
Y:0
Width:140
Height:35
Text:Music
CncMenuButton@PREFERENCES_BUTTON:
Id:PREFERENCES_BUTTON
X:450
Y:0
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:
Id:INSTALL_PANEL
Delegate:CncInstallLogic
@@ -96,7 +102,6 @@ Container@INSTALL_FROMCD_PANEL:
Y:45
Width:PARENT_RIGHT - 185
Height:35
Indeterminate:true
Label@STATUS_LABEL:
Id:STATUS_LABEL
X:170

View File

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

View File

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