public override void Initialize() { sm = StatisticsManager.Instance; string strLblEconomy = "ECONOMY"; string strLblAvgEconomy = "Average economy:"; if (ClientConfiguration.Instance.UseBuiltStatistic) { strLblEconomy = "BUILT"; strLblAvgEconomy = "Avg. number of objects built:"; } Name = "StatisticsWindow"; BackgroundTexture = AssetLoader.LoadTexture("scoreviewerbg.png"); ClientRectangle = new Rectangle(0, 0, 700, 521); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = "tabControl"; tabControl.ClientRectangle = new Rectangle(12, 10, 0, 0); tabControl.SoundOnClick = AssetLoader.LoadSound("button.wav"); tabControl.FontIndex = 1; tabControl.AddTab("Game Statistics", 133); tabControl.AddTab("Total Statistics", 133); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; XNALabel lblFilter = new XNALabel(WindowManager); lblFilter.Name = "lblFilter"; lblFilter.FontIndex = 1; lblFilter.Text = "FILTER:"; lblFilter.ClientRectangle = new Rectangle(527, 12, 0, 0); cmbGameClassFilter = new XNAClientDropDown(WindowManager); cmbGameClassFilter.ClientRectangle = new Rectangle(585, 11, 105, 21); cmbGameClassFilter.Name = "cmbGameClassFilter"; cmbGameClassFilter.AddItem("All games"); cmbGameClassFilter.AddItem("Online games"); cmbGameClassFilter.AddItem("Online PvP"); cmbGameClassFilter.AddItem("Online Co-Op"); cmbGameClassFilter.AddItem("Skirmish"); cmbGameClassFilter.SelectedIndex = 0; cmbGameClassFilter.SelectedIndexChanged += CmbGameClassFilter_SelectedIndexChanged; XNALabel lblGameMode = new XNALabel(WindowManager); lblGameMode.Name = "lblGameMode"; lblGameMode.FontIndex = 1; lblGameMode.Text = "GAME MODE:"; lblGameMode.ClientRectangle = new Rectangle(294, 12, 0, 0); cmbGameModeFilter = new XNAClientDropDown(WindowManager); cmbGameModeFilter.Name = "cmbGameModeFilter"; cmbGameModeFilter.ClientRectangle = new Rectangle(381, 11, 114, 21); cmbGameModeFilter.SelectedIndexChanged += CmbGameModeFilter_SelectedIndexChanged; var btnReturnToMenu = new XNAClientButton(WindowManager); btnReturnToMenu.Name = "btnReturnToMenu"; btnReturnToMenu.ClientRectangle = new Rectangle(270, 486, 160, 23); btnReturnToMenu.Text = "Return to Main Menu"; btnReturnToMenu.LeftClick += BtnReturnToMenu_LeftClick; var btnClearStatistics = new XNAClientButton(WindowManager); btnClearStatistics.Name = "btnClearStatistics"; btnClearStatistics.ClientRectangle = new Rectangle(12, 486, 160, 23); btnClearStatistics.Text = "Clear Statistics"; btnClearStatistics.LeftClick += BtnClearStatistics_LeftClick; btnClearStatistics.Visible = false; chkIncludeSpectatedGames = new XNAClientCheckBox(WindowManager); AddChild(chkIncludeSpectatedGames); chkIncludeSpectatedGames.Name = "chkIncludeSpectatedGames"; chkIncludeSpectatedGames.Text = "Include spectated games"; chkIncludeSpectatedGames.Checked = true; chkIncludeSpectatedGames.ClientRectangle = new Rectangle( Width - chkIncludeSpectatedGames.Width - 12, cmbGameModeFilter.Bottom + 3, chkIncludeSpectatedGames.Width, chkIncludeSpectatedGames.Height); chkIncludeSpectatedGames.CheckedChanged += ChkIncludeSpectatedGames_CheckedChanged; #region Match statistics panelGameStatistics = new XNAPanel(WindowManager); panelGameStatistics.Name = "panelGameStatistics"; panelGameStatistics.BackgroundTexture = AssetLoader.LoadTexture("scoreviewerpanelbg.png"); panelGameStatistics.ClientRectangle = new Rectangle(10, 55, 680, 425); AddChild(panelGameStatistics); XNALabel lblMatches = new XNALabel(WindowManager); lblMatches.Text = "GAMES:"; lblMatches.FontIndex = 1; lblMatches.ClientRectangle = new Rectangle(4, 2, 0, 0); lbGameList = new XNAMultiColumnListBox(WindowManager); lbGameList.Name = "lbGameList"; lbGameList.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbGameList.DrawMode = PanelBackgroundImageDrawMode.STRETCHED; lbGameList.AddColumn("DATE / TIME", 130); lbGameList.AddColumn("MAP", 200); lbGameList.AddColumn("GAME MODE", 130); lbGameList.AddColumn("FPS", 50); lbGameList.AddColumn("DURATION", 76); lbGameList.AddColumn("COMPLETED", 90); lbGameList.ClientRectangle = new Rectangle(2, 25, 676, 250); lbGameList.SelectedIndexChanged += LbGameList_SelectedIndexChanged; lbGameList.AllowKeyboardInput = true; lbGameStatistics = new XNAMultiColumnListBox(WindowManager); lbGameStatistics.Name = "lbGameStatistics"; lbGameStatistics.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbGameStatistics.DrawMode = PanelBackgroundImageDrawMode.STRETCHED; lbGameStatistics.AddColumn("NAME", 130); lbGameStatistics.AddColumn("KILLS", 78); lbGameStatistics.AddColumn("LOSSES", 78); lbGameStatistics.AddColumn(strLblEconomy, 80); lbGameStatistics.AddColumn("SCORE", 100); lbGameStatistics.AddColumn("WON", 50); lbGameStatistics.AddColumn("SIDE", 100); lbGameStatistics.AddColumn("TEAM", 60); lbGameStatistics.ClientRectangle = new Rectangle(2, 280, 676, 143); panelGameStatistics.AddChild(lblMatches); panelGameStatistics.AddChild(lbGameList); panelGameStatistics.AddChild(lbGameStatistics); #endregion #region Total statistics panelTotalStatistics = new XNAPanel(WindowManager); panelTotalStatistics.Name = "panelTotalStatistics"; panelTotalStatistics.BackgroundTexture = AssetLoader.LoadTexture("scoreviewerpanelbg.png"); panelTotalStatistics.ClientRectangle = new Rectangle(10, 55, 680, 425); AddChild(panelTotalStatistics); panelTotalStatistics.Visible = false; panelTotalStatistics.Enabled = false; int locationY = TOTAL_STATS_FIRST_ITEM_Y; AddTotalStatisticsLabel("lblGamesStarted", "Games started:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblGamesStartedValue = new XNALabel(WindowManager); lblGamesStartedValue.Name = "lblGamesStartedValue"; lblGamesStartedValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblGamesStartedValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblGamesFinished", "Games finished:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblGamesFinishedValue = new XNALabel(WindowManager); lblGamesFinishedValue.Name = "lblGamesFinishedValue"; lblGamesFinishedValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblGamesFinishedValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblWins", "Wins:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblWinsValue = new XNALabel(WindowManager); lblWinsValue.Name = "lblWinsValue"; lblWinsValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblWinsValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblLosses", "Losses:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblLossesValue = new XNALabel(WindowManager); lblLossesValue.Name = "lblLossesValue"; lblLossesValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblLossesValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblWinLossRatio", "Win / Loss ratio:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblWinLossRatioValue = new XNALabel(WindowManager); lblWinLossRatioValue.Name = "lblWinLossRatioValue"; lblWinLossRatioValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblWinLossRatioValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblAverageGameLength", "Average game length:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblAverageGameLengthValue = new XNALabel(WindowManager); lblAverageGameLengthValue.Name = "lblAverageGameLengthValue"; lblAverageGameLengthValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblAverageGameLengthValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblTotalTimePlayed", "Total time played:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblTotalTimePlayedValue = new XNALabel(WindowManager); lblTotalTimePlayedValue.Name = "lblTotalTimePlayedValue"; lblTotalTimePlayedValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblTotalTimePlayedValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblAverageEnemyCount", "Average number of enemies:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblAverageEnemyCountValue = new XNALabel(WindowManager); lblAverageEnemyCountValue.Name = "lblAverageEnemyCountValue"; lblAverageEnemyCountValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblAverageEnemyCountValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblAverageAllyCount", "Average number of allies:", new Point(TOTAL_STATS_LOCATION_X1, locationY)); lblAverageAllyCountValue = new XNALabel(WindowManager); lblAverageAllyCountValue.Name = "lblAverageAllyCountValue"; lblAverageAllyCountValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X1, locationY, 0, 0); lblAverageAllyCountValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; // SECOND COLUMN locationY = TOTAL_STATS_FIRST_ITEM_Y; AddTotalStatisticsLabel("lblTotalKills", "Total kills:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblTotalKillsValue = new XNALabel(WindowManager); lblTotalKillsValue.Name = "lblTotalKillsValue"; lblTotalKillsValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblTotalKillsValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblKillsPerGame", "Kills / game:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblKillsPerGameValue = new XNALabel(WindowManager); lblKillsPerGameValue.Name = "lblKillsPerGameValue"; lblKillsPerGameValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblKillsPerGameValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblTotalLosses", "Total losses:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblTotalLossesValue = new XNALabel(WindowManager); lblTotalLossesValue.Name = "lblTotalLossesValue"; lblTotalLossesValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblTotalLossesValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblLossesPerGame", "Losses / game:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblLossesPerGameValue = new XNALabel(WindowManager); lblLossesPerGameValue.Name = "lblLossesPerGameValue"; lblLossesPerGameValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblLossesPerGameValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblKillLossRatio", "Kill / loss ratio:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblKillLossRatioValue = new XNALabel(WindowManager); lblKillLossRatioValue.Name = "lblKillLossRatioValue"; lblKillLossRatioValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblKillLossRatioValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblTotalScore", "Total score:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblTotalScoreValue = new XNALabel(WindowManager); lblTotalScoreValue.Name = "lblTotalScoreValue"; lblTotalScoreValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblTotalScoreValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblAverageEconomy", strLblAvgEconomy, new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblAverageEconomyValue = new XNALabel(WindowManager); lblAverageEconomyValue.Name = "lblAverageEconomyValue"; lblAverageEconomyValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblAverageEconomyValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblFavouriteSide", "Favourite side:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblFavouriteSideValue = new XNALabel(WindowManager); lblFavouriteSideValue.Name = "lblFavouriteSideValue"; lblFavouriteSideValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblFavouriteSideValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; AddTotalStatisticsLabel("lblAverageAILevel", "Average AI level:", new Point(TOTAL_STATS_LOCATION_X2, locationY)); lblAverageAILevelValue = new XNALabel(WindowManager); lblAverageAILevelValue.Name = "lblAverageAILevelValue"; lblAverageAILevelValue.ClientRectangle = new Rectangle(TOTAL_STATS_VALUE_LOCATION_X2, locationY, 0, 0); lblAverageAILevelValue.RemapColor = UISettings.AltColor; locationY += TOTAL_STATS_Y_INCREASE; panelTotalStatistics.AddChild(lblGamesStartedValue); panelTotalStatistics.AddChild(lblGamesFinishedValue); panelTotalStatistics.AddChild(lblWinsValue); panelTotalStatistics.AddChild(lblLossesValue); panelTotalStatistics.AddChild(lblWinLossRatioValue); panelTotalStatistics.AddChild(lblAverageGameLengthValue); panelTotalStatistics.AddChild(lblTotalTimePlayedValue); panelTotalStatistics.AddChild(lblAverageEnemyCountValue); panelTotalStatistics.AddChild(lblAverageAllyCountValue); panelTotalStatistics.AddChild(lblTotalKillsValue); panelTotalStatistics.AddChild(lblKillsPerGameValue); panelTotalStatistics.AddChild(lblTotalLossesValue); panelTotalStatistics.AddChild(lblLossesPerGameValue); panelTotalStatistics.AddChild(lblKillLossRatioValue); panelTotalStatistics.AddChild(lblTotalScoreValue); panelTotalStatistics.AddChild(lblAverageEconomyValue); panelTotalStatistics.AddChild(lblFavouriteSideValue); panelTotalStatistics.AddChild(lblAverageAILevelValue); #endregion AddChild(tabControl); AddChild(lblFilter); AddChild(cmbGameClassFilter); AddChild(lblGameMode); AddChild(cmbGameModeFilter); AddChild(btnReturnToMenu); AddChild(btnClearStatistics); base.Initialize(); CenterOnParent(); sides = ClientConfiguration.Instance.GetSides().Split(','); sideTextures = new Texture2D[sides.Length + 1]; for (int i = 0; i < sides.Length; i++) { sideTextures[i] = AssetLoader.LoadTexture(sides[i] + "icon.png"); } sideTextures[sides.Length] = AssetLoader.LoadTexture("spectatoricon.png"); mpColors = MultiplayerColor.LoadColors(); ReadStatistics(); ListGameModes(); ListGames(); StatisticsManager.Instance.GameAdded += Instance_GameAdded; }
public override void Initialize() { Name = "PrivateMessagingWindow"; ClientRectangle = new Rectangle(0, 0, 600, 600); BackgroundTexture = AssetLoader.LoadTextureUncached("privatemessagebg.png"); unknownGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.unknownicon); adminGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.cncneticon); personalMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.SentPMColor); otherUserMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.ReceivedPMColor); lblPrivateMessaging = new XNALabel(WindowManager); lblPrivateMessaging.Name = "lblPrivateMessaging"; lblPrivateMessaging.FontIndex = 1; lblPrivateMessaging.Text = "PRIVATE MESSAGING"; AddChild(lblPrivateMessaging); lblPrivateMessaging.CenterOnParent(); lblPrivateMessaging.ClientRectangle = new Rectangle( lblPrivateMessaging.ClientRectangle.X, 12, lblPrivateMessaging.ClientRectangle.Width, lblPrivateMessaging.ClientRectangle.Height); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = "tabControl"; tabControl.ClientRectangle = new Rectangle(60, 50, 0, 0); tabControl.SoundOnClick = AssetLoader.LoadSound("button.wav"); tabControl.FontIndex = 1; tabControl.AddTab("Messages", 160); tabControl.AddTab("Friend List", 160); tabControl.AddTab("All Players", 160); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; lblPlayers = new XNALabel(WindowManager); lblPlayers.Name = "lblPlayers"; lblPlayers.ClientRectangle = new Rectangle(12, tabControl.ClientRectangle.Bottom + 24, 0, 0); lblPlayers.FontIndex = 1; lblPlayers.Text = "PLAYERS:"; lbUserList = new XNAListBox(WindowManager); lbUserList.Name = "lbUserList"; lbUserList.ClientRectangle = new Rectangle(lblPlayers.ClientRectangle.X, lblPlayers.ClientRectangle.Bottom + 6, 150, ClientRectangle.Height - lblPlayers.ClientRectangle.Bottom - 18); lbUserList.RightClick += LbUserList_RightClick; lbUserList.SelectedIndexChanged += LbUserList_SelectedIndexChanged; lbUserList.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbUserList.DrawMode = PanelBackgroundImageDrawMode.STRETCHED; lblMessages = new XNALabel(WindowManager); lblMessages.Name = "lblMessages"; lblMessages.ClientRectangle = new Rectangle(lbUserList.ClientRectangle.Right + 12, lblPlayers.ClientRectangle.Y, 0, 0); lblMessages.FontIndex = 1; lblMessages.Text = "MESSAGES:"; lbMessages = new ChatListBox(WindowManager); lbMessages.Name = "lbMessages"; lbMessages.ClientRectangle = new Rectangle(lblMessages.ClientRectangle.X, lbUserList.ClientRectangle.Y, ClientRectangle.Width - lblMessages.ClientRectangle.X - 12, lbUserList.ClientRectangle.Height - 25); lbMessages.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbMessages.DrawMode = PanelBackgroundImageDrawMode.STRETCHED; tbMessageInput = new XNATextBox(WindowManager); tbMessageInput.Name = "tbMessageInput"; tbMessageInput.ClientRectangle = new Rectangle(lbMessages.ClientRectangle.X, lbMessages.ClientRectangle.Bottom + 6, lbMessages.ClientRectangle.Width, 19); tbMessageInput.EnterPressed += TbMessageInput_EnterPressed; tbMessageInput.MaximumTextLength = 200; tbMessageInput.Enabled = false; playerContextMenu = new PlayerContextMenu(WindowManager); playerContextMenu.Name = "playerContextMenu"; playerContextMenu.ClientRectangle = new Rectangle(0, 0, 150, 2); playerContextMenu.Enabled = false; playerContextMenu.Visible = false; playerContextMenu.AddItem("Add Friend"); playerContextMenu.OptionSelected += PlayerContextMenu_OptionSelected; notificationBox = new PrivateMessageNotificationBox(WindowManager); notificationBox.Enabled = false; notificationBox.Visible = false; AddChild(tabControl); AddChild(lblPlayers); AddChild(lbUserList); AddChild(lblMessages); AddChild(lbMessages); AddChild(tbMessageInput); AddChild(playerContextMenu); WindowManager.AddAndInitializeControl(notificationBox); base.Initialize(); CenterOnParent(); try { friendList = File.ReadAllLines(ProgramConstants.GamePath + FRIEND_LIST_PATH).ToList(); } catch { Logger.Log("Loading friend list failed!"); friendList = new List <string>(); } tabControl.SelectedTab = 0; connectionManager.PrivateMessageReceived += ConnectionManager_PrivateMessageReceived; sndMessageSound = new EnhancedSoundEffect("message.wav"); sndPrivateMessageSound = new EnhancedSoundEffect("pm.wav"); sndMessageSound.Enabled = UserINISettings.Instance.MessageSound; GameProcessLogic.GameProcessExited += SharedUILogic_GameProcessExited; }
public override void Initialize() { Name = "OptionsWindow"; ClientRectangle = new Rectangle(0, 0, 576, 435); BackgroundTexture = AssetLoader.LoadTextureUncached("optionsbg.png"); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = "tabControl"; tabControl.ClientRectangle = new Rectangle(12, 12, 0, 23); tabControl.FontIndex = 1; tabControl.ClickSound = new EnhancedSoundEffect("button.wav"); tabControl.AddTab("Display", 92); tabControl.AddTab("Audio", 92); tabControl.AddTab("Game", 92); tabControl.AddTab("CnCNet", 92); tabControl.AddTab("Updater", 92); tabControl.AddTab("Components", 92); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; var btnCancel = new XNAClientButton(WindowManager); btnCancel.Name = "btnCancel"; btnCancel.ClientRectangle = new Rectangle(Width - 104, Height - 35, 92, 23); btnCancel.Text = "Cancel"; btnCancel.LeftClick += BtnBack_LeftClick; var btnSave = new XNAClientButton(WindowManager); btnSave.Name = "btnSave"; btnSave.ClientRectangle = new Rectangle(12, btnCancel.Y, 92, 23); btnSave.Text = "Save"; btnSave.LeftClick += BtnSave_LeftClick; displayOptionsPanel = new DisplayOptionsPanel(WindowManager, UserINISettings.Instance); componentsPanel = new ComponentsPanel(WindowManager, UserINISettings.Instance); var updaterOptionsPanel = new UpdaterOptionsPanel(WindowManager, UserINISettings.Instance); updaterOptionsPanel.OnForceUpdate += (s, e) => { Disable(); OnForceUpdate?.Invoke(this, EventArgs.Empty); }; optionsPanels = new XNAOptionsPanel[] { displayOptionsPanel, new AudioOptionsPanel(WindowManager, UserINISettings.Instance), new GameOptionsPanel(WindowManager, UserINISettings.Instance, topBar), new CnCNetOptionsPanel(WindowManager, UserINISettings.Instance, gameCollection), updaterOptionsPanel, componentsPanel }; if (ClientConfiguration.Instance.ModMode || CUpdater.UPDATEMIRRORS == null || CUpdater.UPDATEMIRRORS.Count < 1) { tabControl.MakeUnselectable(4); tabControl.MakeUnselectable(5); } else if (CUpdater.CustomComponents == null || CUpdater.CustomComponents.Length < 1) { tabControl.MakeUnselectable(5); } foreach (var panel in optionsPanels) { AddChild(panel); panel.Load(); panel.Disable(); } optionsPanels[0].Enable(); AddChild(tabControl); AddChild(btnCancel); AddChild(btnSave); base.Initialize(); CenterOnParent(); }
public override void Initialize() { Name = nameof(PrivateMessagingWindow); ClientRectangle = new Rectangle(0, 0, 600, 600); BackgroundTexture = AssetLoader.LoadTextureUncached("privatemessagebg.png"); unknownGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.unknownicon); adminGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.cncneticon); personalMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.SentPMColor); otherUserMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.ReceivedPMColor); lblPrivateMessaging = new XNALabel(WindowManager); lblPrivateMessaging.Name = nameof(lblPrivateMessaging); lblPrivateMessaging.FontIndex = 1; lblPrivateMessaging.Text = "PRIVATE MESSAGING"; AddChild(lblPrivateMessaging); lblPrivateMessaging.CenterOnParent(); lblPrivateMessaging.ClientRectangle = new Rectangle( lblPrivateMessaging.X, 12, lblPrivateMessaging.Width, lblPrivateMessaging.Height); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = nameof(tabControl); tabControl.ClientRectangle = new Rectangle(60, 50, 0, 0); tabControl.ClickSound = new EnhancedSoundEffect("button.wav"); tabControl.FontIndex = 1; tabControl.AddTab("Messages", 160); tabControl.AddTab("Friend List", 160); tabControl.AddTab("All Players", 160); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; lblPlayers = new XNALabel(WindowManager); lblPlayers.Name = nameof(lblPlayers); lblPlayers.ClientRectangle = new Rectangle(12, tabControl.Bottom + 24, 0, 0); lblPlayers.FontIndex = 1; lblPlayers.Text = "PLAYERS:"; lbUserList = new XNAListBox(WindowManager); lbUserList.Name = nameof(lbUserList); lbUserList.ClientRectangle = new Rectangle(lblPlayers.X, lblPlayers.Bottom + 6, 150, Height - lblPlayers.Bottom - 18); lbUserList.RightClick += LbUserList_RightClick; lbUserList.SelectedIndexChanged += LbUserList_SelectedIndexChanged; lbUserList.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbUserList.PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED; lblMessages = new XNALabel(WindowManager); lblMessages.Name = nameof(lblMessages); lblMessages.ClientRectangle = new Rectangle(lbUserList.Right + 12, lblPlayers.Y, 0, 0); lblMessages.FontIndex = 1; lblMessages.Text = "MESSAGES:"; lbMessages = new ChatListBox(WindowManager); lbMessages.Name = nameof(lbMessages); lbMessages.ClientRectangle = new Rectangle(lblMessages.X, lbUserList.Y, Width - lblMessages.X - 12, lbUserList.Height - 25); lbMessages.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbMessages.PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED; tbMessageInput = new XNATextBox(WindowManager); tbMessageInput.Name = nameof(tbMessageInput); tbMessageInput.ClientRectangle = new Rectangle(lbMessages.X, lbMessages.Bottom + 6, lbMessages.Width, 19); tbMessageInput.EnterPressed += TbMessageInput_EnterPressed; tbMessageInput.MaximumTextLength = 200; tbMessageInput.Enabled = false; playerContextMenu = new XNAContextMenu(WindowManager); playerContextMenu.Name = nameof(playerContextMenu); playerContextMenu.ClientRectangle = new Rectangle(0, 0, 150, 2); playerContextMenu.Disable(); playerContextMenu.AddItem("Add Friend", PlayerContextMenu_ToggleFriend); playerContextMenu.AddItem("Toggle Block", PlayerContextMenu_ToggleIgnore, null, () => (bool)lbUserList.SelectedItem.Tag, null); playerContextMenu.AddItem("Invite", PlayerContextMenu_Invite, null, () => !string.IsNullOrEmpty(inviteChannelName)); notificationBox = new PrivateMessageNotificationBox(WindowManager); notificationBox.Enabled = false; notificationBox.Visible = false; notificationBox.LeftClick += NotificationBox_LeftClick; AddChild(tabControl); AddChild(lblPlayers); AddChild(lbUserList); AddChild(lblMessages); AddChild(lbMessages); AddChild(tbMessageInput); AddChild(playerContextMenu); WindowManager.AddAndInitializeControl(notificationBox); base.Initialize(); CenterOnParent(); tabControl.SelectedTab = 0; connectionManager.PrivateMessageReceived += ConnectionManager_PrivateMessageReceived; connectionManager.UserAdded += ConnectionManager_UserAdded; connectionManager.UserRemoved += ConnectionManager_UserRemoved; connectionManager.UserGameIndexUpdated += ConnectionManager_UserGameIndexUpdated; sndMessageSound = new EnhancedSoundEffect("message.wav", 0.0, 0.0, ClientConfiguration.Instance.SoundMessageCooldown); sndPrivateMessageSound = new EnhancedSoundEffect("pm.wav", 0.0, 0.0, ClientConfiguration.Instance.SoundPrivateMessageCooldown); sndMessageSound.Enabled = UserINISettings.Instance.MessageSound; GameProcessLogic.GameProcessExited += SharedUILogic_GameProcessExited; }
public override void Initialize() { Name = nameof(PrivateMessagingWindow); ClientRectangle = new Rectangle(0, 0, 600, 600); BackgroundTexture = AssetLoader.LoadTextureUncached("privatemessagebg.png"); unknownGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.unknownicon); adminGameIcon = AssetLoader.TextureFromImage(ClientCore.Properties.Resources.cncneticon); personalMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.SentPMColor); otherUserMessageColor = AssetLoader.GetColorFromString(ClientConfiguration.Instance.ReceivedPMColor); lblPrivateMessaging = new XNALabel(WindowManager); lblPrivateMessaging.Name = nameof(lblPrivateMessaging); lblPrivateMessaging.FontIndex = 1; lblPrivateMessaging.Text = "PRIVATE MESSAGING"; AddChild(lblPrivateMessaging); lblPrivateMessaging.CenterOnParent(); lblPrivateMessaging.ClientRectangle = new Rectangle( lblPrivateMessaging.X, 12, lblPrivateMessaging.Width, lblPrivateMessaging.Height); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = nameof(tabControl); tabControl.ClientRectangle = new Rectangle(34, 50, 0, 0); tabControl.ClickSound = new EnhancedSoundEffect("button.wav"); tabControl.FontIndex = 1; tabControl.AddTab("Messages", UIDesignConstants.BUTTON_WIDTH_133); tabControl.AddTab("Friend List", UIDesignConstants.BUTTON_WIDTH_133); tabControl.AddTab("All Players", UIDesignConstants.BUTTON_WIDTH_133); tabControl.AddTab("Recent Players", UIDesignConstants.BUTTON_WIDTH_133); tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; lblPlayers = new XNALabel(WindowManager); lblPlayers.Name = nameof(lblPlayers); lblPlayers.ClientRectangle = new Rectangle(12, tabControl.Bottom + 24, 0, 0); lblPlayers.FontIndex = 1; lblPlayers.Text = DEFAULT_PLAYERS_TEXT; lbUserList = new XNAListBox(WindowManager); lbUserList.Name = nameof(lbUserList); lbUserList.ClientRectangle = new Rectangle(lblPlayers.X, lblPlayers.Bottom + 6, LB_USERS_WIDTH, Height - lblPlayers.Bottom - 18); lbUserList.RightClick += LbUserList_RightClick; lbUserList.SelectedIndexChanged += LbUserList_SelectedIndexChanged; lbUserList.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbUserList.PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED; lbUserList.DoubleLeftClick += UserList_LeftDoubleClick; lblMessages = new XNALabel(WindowManager); lblMessages.Name = nameof(lblMessages); lblMessages.ClientRectangle = new Rectangle(lbUserList.Right + 12, lblPlayers.Y, 0, 0); lblMessages.FontIndex = 1; lblMessages.Text = "MESSAGES:"; lbMessages = new ChatListBox(WindowManager); lbMessages.Name = nameof(lbMessages); lbMessages.ClientRectangle = new Rectangle(lblMessages.X, lbUserList.Y, Width - lblMessages.X - 12, lbUserList.Height - 25); lbMessages.BackgroundTexture = AssetLoader.CreateTexture(new Color(0, 0, 0, 128), 1, 1); lbMessages.PanelBackgroundDrawMode = PanelBackgroundImageDrawMode.STRETCHED; lbMessages.RightClick += ChatListBox_RightClick; tbMessageInput = new XNATextBox(WindowManager); tbMessageInput.Name = nameof(tbMessageInput); tbMessageInput.ClientRectangle = new Rectangle(lbMessages.X, lbMessages.Bottom + 6, lbMessages.Width, 19); tbMessageInput.EnterPressed += TbMessageInput_EnterPressed; tbMessageInput.MaximumTextLength = 200; tbMessageInput.Enabled = false; mclbRecentPlayerList = new RecentPlayerTable(WindowManager, connectionManager); mclbRecentPlayerList.ClientRectangle = new Rectangle(lbUserList.X, lbUserList.Y, lbMessages.Right - lbUserList.X, lbUserList.Height); mclbRecentPlayerList.PlayerRightClick += RecentPlayersList_RightClick; mclbRecentPlayerList.Disable(); globalContextMenu = new GlobalContextMenu(WindowManager, connectionManager, cncnetUserData, this); globalContextMenu.JoinEvent += PlayerContextMenu_JoinUser; notificationBox = new PrivateMessageNotificationBox(WindowManager); notificationBox.Enabled = false; notificationBox.Visible = false; notificationBox.LeftClick += NotificationBox_LeftClick; AddChild(tabControl); AddChild(lblPlayers); AddChild(lbUserList); AddChild(lblMessages); AddChild(lbMessages); AddChild(tbMessageInput); AddChild(mclbRecentPlayerList); AddChild(globalContextMenu); WindowManager.AddAndInitializeControl(notificationBox); base.Initialize(); CenterOnParent(); tabControl.SelectedTab = MESSAGES_INDEX; privateMessageHandler.PrivateMessageReceived += PrivateMessageHandler_PrivateMessageReceived; connectionManager.UserAdded += ConnectionManager_UserAdded; connectionManager.UserRemoved += ConnectionManager_UserRemoved; connectionManager.UserGameIndexUpdated += ConnectionManager_UserGameIndexUpdated; sndMessageSound = new EnhancedSoundEffect("message.wav", 0.0, 0.0, ClientConfiguration.Instance.SoundMessageCooldown); sndPrivateMessageSound = new EnhancedSoundEffect("pm.wav", 0.0, 0.0, ClientConfiguration.Instance.SoundPrivateMessageCooldown); sndMessageSound.Enabled = UserINISettings.Instance.MessageSound; GameProcessLogic.GameProcessExited += SharedUILogic_GameProcessExited; }
public override void Initialize() { Name = "OptionsWindow"; ClientRectangle = new Rectangle(0, 0, 576, 435); BackgroundTexture = AssetLoader.LoadTextureUncached("optionsbg.png"); tabControl = new XNAClientTabControl(WindowManager); tabControl.Name = "tabControl"; tabControl.ClientRectangle = new Rectangle(12, 12, 0, 23); tabControl.FontIndex = 1; tabControl.ClickSound = new EnhancedSoundEffect("button.wav"); tabControl.AddTab("Display", 92); tabControl.AddTab("Audio", 92); tabControl.AddTab("Game", 92); tabControl.AddTab("CnCNet", 92); if (!ClientConfiguration.Instance.DisableUpdaterOptions) { tabControl.AddTab("Updater", 92); if (!ClientConfiguration.Instance.DisableComponentOptions) { tabControl.AddTab("Components", 92); } } tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged; var btnCancel = new XNAClientButton(WindowManager); btnCancel.Name = "btnCancel"; btnCancel.ClientRectangle = new Rectangle(Width - 104, Height - 35, 92, 23); btnCancel.Text = "Cancel"; btnCancel.LeftClick += BtnBack_LeftClick; var btnSave = new XNAClientButton(WindowManager); btnSave.Name = "btnSave"; btnSave.ClientRectangle = new Rectangle(12, btnCancel.Y, 92, 23); btnSave.Text = "Save"; btnSave.LeftClick += BtnSave_LeftClick; displayOptionsPanel = new DisplayOptionsPanel(WindowManager, UserINISettings.Instance); componentsPanel = new ComponentsPanel(WindowManager, UserINISettings.Instance); optionsPanels = new XNAOptionsPanel[] { displayOptionsPanel, new AudioOptionsPanel(WindowManager, UserINISettings.Instance), new GameOptionsPanel(WindowManager, UserINISettings.Instance, topBar), new CnCNetOptionsPanel(WindowManager, UserINISettings.Instance, gameCollection), new UpdaterOptionsPanel(WindowManager, UserINISettings.Instance), componentsPanel }; foreach (var panel in optionsPanels) { AddChild(panel); panel.Load(); panel.Disable(); } optionsPanels[0].Enable(); AddChild(tabControl); AddChild(btnCancel); AddChild(btnSave); base.Initialize(); CenterOnParent(); }