Example #1
0
        private DemoInfoListView CreatePlayerStatsListView()
        {
            var columnKey = new GridViewColumn();
            var headerKey = new GridViewColumnHeader();

            headerKey.Content = "";
            headerKey.Tag     = "Key";
            columnKey.Header  = headerKey;
            columnKey.Width   = KeyColumnWidth;
            columnKey.DisplayMemberBinding = new Binding("Key");

            var gridView = new GridView();

            gridView.AllowsColumnReorder = true;
            gridView.Columns.Add(columnKey);

            var listView = new DemoInfoListView();

            listView.HorizontalAlignment = HorizontalAlignment.Stretch;
            listView.VerticalAlignment   = VerticalAlignment.Stretch;
            listView.Margin        = new Thickness(5);
            listView.View          = gridView;
            listView.SelectionMode = SelectionMode.Extended;

            return(listView);
        }
Example #2
0
        private void CreateTeamScoresListView()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();

            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag     = "GameState";
            columnGS.Header  = headerGS;
            columnGS.Width   = 35;
            columnGS.DisplayMemberBinding = new Binding("GameState");

            var columnStartEndTime = new GridViewColumn();
            var headerStartEndTime = new GridViewColumnHeader();

            headerStartEndTime.Content = "Time";
            headerStartEndTime.Tag     = "Time";
            columnStartEndTime.Header  = headerStartEndTime;
            columnStartEndTime.Width   = 40;
            columnStartEndTime.DisplayMemberBinding = new Binding("Time");

            var columnScore1 = new GridViewColumn();
            var headerScore1 = new GridViewColumnHeader();

            headerScore1.Content = "RED Score";
            headerScore1.Tag     = "Score1";
            columnScore1.Header  = headerScore1;
            columnScore1.Width   = 75;
            columnScore1.DisplayMemberBinding = new Binding("RedScore");

            var columnScore2 = new GridViewColumn();
            var headerScore2 = new GridViewColumnHeader();

            headerScore2.Content = "BLUE Score";
            headerScore2.Tag     = "Score2";
            columnScore2.Header  = headerScore2;
            columnScore2.Width   = 75;
            columnScore2.DisplayMemberBinding = new Binding("BlueScore");

            var scoresGridView = new GridView();

            scoresGridView.AllowsColumnReorder = false;
            scoresGridView.Columns.Add(columnGS);
            scoresGridView.Columns.Add(columnStartEndTime);
            scoresGridView.Columns.Add(columnScore1);
            scoresGridView.Columns.Add(columnScore2);

            var scoresListView = new DemoInfoListView();

            _teamScoresListView = scoresListView;
            scoresListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            scoresListView.VerticalAlignment   = VerticalAlignment.Stretch;
            scoresListView.Margin        = new Thickness(5);
            scoresListView.View          = scoresGridView;
            scoresListView.SelectionMode = SelectionMode.Extended;
        }
Example #3
0
        private DemoInfoListView CreateTeamStatsListView()
        {
            var columnKey = new GridViewColumn();
            var headerKey = new GridViewColumnHeader();

            headerKey.Content = "";
            headerKey.Tag     = "Key";
            columnKey.Header  = headerKey;
            columnKey.Width   = KeyColumnWidth;
            columnKey.DisplayMemberBinding = new Binding("Key");

            var columnRed = new GridViewColumn();
            var headerRed = new GridViewColumnHeader();

            headerRed.Content      = "Red";
            headerRed.Tag          = "Red";
            columnRed.Header       = headerRed;
            columnRed.Width        = 150;
            columnRed.CellTemplate = CreateCellTemplate("Red", "RedFontWeight");

            var columnBlue = new GridViewColumn();
            var headerBlue = new GridViewColumnHeader();

            headerBlue.Content      = "Blue";
            headerBlue.Tag          = "Blue";
            columnBlue.Header       = headerBlue;
            columnBlue.Width        = 150;
            columnBlue.CellTemplate = CreateCellTemplate("Blue", "BlueFontWeight");

            var gridView = new GridView();

            gridView.AllowsColumnReorder = false;
            gridView.Columns.Add(columnKey);
            gridView.Columns.Add(columnRed);
            gridView.Columns.Add(columnBlue);

            var listView = new DemoInfoListView();

            listView.HorizontalAlignment = HorizontalAlignment.Stretch;
            listView.VerticalAlignment   = VerticalAlignment.Stretch;
            listView.Margin        = new Thickness(5);
            listView.View          = gridView;
            listView.SelectionMode = SelectionMode.Extended;

            return(listView);
        }
Example #4
0
        private FrameworkElement CreateTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();

            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag     = "GameState";
            columnGS.Header  = headerGS;
            columnGS.Width   = 35;
            columnGS.DisplayMemberBinding = new Binding("GameState");

            var columnTime = new GridViewColumn();
            var headerTime = new GridViewColumnHeader();

            headerTime.Content = "Time";
            headerTime.Tag     = "Time";
            columnTime.Header  = headerTime;
            columnTime.Width   = 50;
            columnTime.DisplayMemberBinding = new Binding("Time");

            var columnCommand = new GridViewColumn();
            var headerCommand = new GridViewColumnHeader();

            headerCommand.Content = "Command";
            headerCommand.Tag     = "Command";
            columnCommand.Header  = headerCommand;
            columnCommand.Width   = 75;
            columnCommand.DisplayMemberBinding = new Binding("Command");

            var columnValue = new GridViewColumn();
            var headerValue = new GridViewColumnHeader();

            headerValue.Content = "Value";
            headerValue.Tag     = "Value";
            columnValue.Header  = headerValue;
            columnValue.Width   = 400;
            MakeColumnMultiRowEnabled(columnValue, "Value");

            var commandsGridView = new GridView();

            commandsGridView.AllowsColumnReorder = false;
            commandsGridView.Columns.Add(columnGS);
            commandsGridView.Columns.Add(columnTime);
            commandsGridView.Columns.Add(columnCommand);
            commandsGridView.Columns.Add(columnValue);

            var commandsListView = new DemoInfoListView();

            _commandsListView = commandsListView;
            commandsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            commandsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            commandsListView.Margin        = new Thickness(5);
            commandsListView.View          = commandsGridView;
            commandsListView.SelectionMode = SelectionMode.Extended;

            var infoPanelGroupBox = new GroupBox();

            infoPanelGroupBox.Header = "Config Strings and Commands";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin  = new Thickness(5);
            infoPanelGroupBox.Content = commandsListView;

            return(infoPanelGroupBox);
        }
Example #5
0
        private FrameworkElement CreateDemoChatTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();
            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag = "GameStateIndex";
            headerGS.Click += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnGS.Header = headerGS;
            columnGS.Width = 25;
            columnGS.DisplayMemberBinding = new Binding("GameStateIndex");

            var columnTime = new GridViewColumn();
            var headerTime = new GridViewColumnHeader();
            headerTime.Content = "Time";
            headerTime.Tag = "Time";
            headerTime.Click += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnTime.Header = headerTime;
            columnTime.Width = 75;
            columnTime.DisplayMemberBinding = new Binding("Time");

            var columnName = new GridViewColumn();
            var headername = new GridViewColumnHeader();
            headername.Content = "Player Name";
            headername.Tag = "Player";
            headername.Click += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnName.Header = headername;
            columnName.Width = 175;
            columnName.DisplayMemberBinding = new Binding("Player");

            var columnMessage = new GridViewColumn();
            var headerMessage = new GridViewColumnHeader();
            headerMessage.Content = "Message";
            headerMessage.Tag = "Message";
            headerMessage.Click += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnMessage.Header = headerMessage;
            columnMessage.Width = 315;
            columnMessage.DisplayMemberBinding = new Binding("Message");

            var demoEventsGridView = new GridView();
            demoEventsGridView.AllowsColumnReorder = false;
            demoEventsGridView.Columns.Add(columnGS);
            demoEventsGridView.Columns.Add(columnTime);
            demoEventsGridView.Columns.Add(columnName);
            demoEventsGridView.Columns.Add(columnMessage);

            var eventsListView = new DemoInfoListView();
            _chatEventsListView = eventsListView;
            eventsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            eventsListView.VerticalAlignment = VerticalAlignment.Stretch;
            eventsListView.Margin = new Thickness(5);
            eventsListView.View = demoEventsGridView;
            eventsListView.SelectionMode = SelectionMode.Extended;
            InitChatEventsListViewCutBinding();

            var infoPanelGroupBox = new GroupBox();
            infoPanelGroupBox.Header = "Chat Events";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin = new Thickness(5);
            infoPanelGroupBox.Content = eventsListView;

            return infoPanelGroupBox;
        }
Example #6
0
        private FrameworkElement CreateTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();

            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag     = "GameState";
            columnGS.Header  = headerGS;
            columnGS.Width   = 35;
            columnGS.DisplayMemberBinding = new Binding("GameState");

            var columnStartEndTime = new GridViewColumn();
            var headerStartEndTime = new GridViewColumnHeader();

            headerStartEndTime.Content = "Times";
            headerStartEndTime.Tag     = "StartAndEnd";
            columnStartEndTime.Header  = headerStartEndTime;
            columnStartEndTime.Width   = 75;
            columnStartEndTime.DisplayMemberBinding = new Binding("StartAndEnd");

            var columnDuration = new GridViewColumn();
            var headerDuration = new GridViewColumnHeader();

            headerDuration.Content = "Duration";
            headerDuration.Tag     = "Duration";
            columnDuration.Header  = headerDuration;
            columnDuration.Width   = 75;
            columnDuration.DisplayMemberBinding = new Binding("Duration");

            var columnBaseToBase = new GridViewColumn();
            var headerBaseToBase = new GridViewColumnHeader();

            headerBaseToBase.ToolTip = "Base Pick-Up";
            headerBaseToBase.Content = "BPU";
            headerBaseToBase.Tag     = "BaseToBase";
            columnBaseToBase.Header  = headerBaseToBase;
            columnBaseToBase.Width   = 50;
            columnBaseToBase.DisplayMemberBinding = new Binding("BaseToBase");

            var columnPlayer = new GridViewColumn();
            var headerPlayer = new GridViewColumnHeader();

            headerPlayer.Content = "Player";
            headerPlayer.Tag     = "Player";
            columnPlayer.Header  = headerPlayer;
            columnPlayer.Width   = 175;
            columnPlayer.DisplayMemberBinding = new Binding("Player");

            var columnMap = new GridViewColumn();
            var headerMap = new GridViewColumnHeader();

            headerMap.Content = "Map";
            headerMap.Tag     = "Map";
            columnMap.Header  = headerMap;
            columnMap.Width   = 175;
            columnMap.DisplayMemberBinding = new Binding("Map");

            var commandsGridView = new GridView();

            commandsGridView.AllowsColumnReorder = false;
            commandsGridView.Columns.Add(columnGS);
            commandsGridView.Columns.Add(columnStartEndTime);
            commandsGridView.Columns.Add(columnDuration);
            commandsGridView.Columns.Add(columnBaseToBase);
            commandsGridView.Columns.Add(columnPlayer);
            commandsGridView.Columns.Add(columnMap);

            var commandsListView = new DemoInfoListView();

            _capturesListView = commandsListView;
            commandsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            commandsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            commandsListView.Margin        = new Thickness(5);
            commandsListView.View          = commandsGridView;
            commandsListView.SelectionMode = SelectionMode.Extended;

            var infoPanelGroupBox = new GroupBox();

            infoPanelGroupBox.Header = "Flag Capture Events";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin  = new Thickness(5);
            infoPanelGroupBox.Content = commandsListView;

            return(infoPanelGroupBox);
        }
Example #7
0
        private FrameworkElement CreateTab()
        {
            var displayFilesRadioButton = new RadioButton();

            _displayFilesRadioButton = displayFilesRadioButton;
            displayFilesRadioButton.HorizontalAlignment = HorizontalAlignment.Left;
            displayFilesRadioButton.VerticalAlignment   = VerticalAlignment.Top;
            displayFilesRadioButton.Margin    = new Thickness(5);
            displayFilesRadioButton.Content   = " Display results as files";
            displayFilesRadioButton.GroupName = "SearchResultsDisplayMode";
            displayFilesRadioButton.Checked  += (obj, args) => OnFileModeChecked();

            var displayCutsRadioButton = new RadioButton();

            displayCutsRadioButton.HorizontalAlignment = HorizontalAlignment.Left;
            displayCutsRadioButton.VerticalAlignment   = VerticalAlignment.Top;
            displayCutsRadioButton.Margin    = new Thickness(5, 0, 5, 5);
            displayCutsRadioButton.Content   = " Display results as file cuts";
            displayCutsRadioButton.GroupName = "SearchResultsDisplayMode";
            displayCutsRadioButton.Checked  += (obj, args) => OnCutModeChecked();

            var displaySettingsStackPanel = new StackPanel();

            displaySettingsStackPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            displaySettingsStackPanel.VerticalAlignment   = VerticalAlignment.Top;
            displaySettingsStackPanel.Margin      = new Thickness(5);
            displaySettingsStackPanel.Orientation = Orientation.Vertical;
            displaySettingsStackPanel.Children.Add(displayFilesRadioButton);
            displaySettingsStackPanel.Children.Add(displayCutsRadioButton);

            var settingsGroupBox = new GroupBox();

            settingsGroupBox.HorizontalAlignment = HorizontalAlignment.Left;
            settingsGroupBox.VerticalAlignment   = VerticalAlignment.Top;
            settingsGroupBox.Margin  = new Thickness(5);
            settingsGroupBox.Header  = "Settings";
            settingsGroupBox.Content = displaySettingsStackPanel;

            var fileResultsGridView = new GridView();

            fileResultsGridView.AllowsColumnReorder = false;
            fileResultsGridView.Columns.Add(CreateColumn(380, "File Name", "FileName"));
            fileResultsGridView.Columns.Add(CreateColumn(40, "Cuts", "MatchCount"));
            fileResultsGridView.Columns.Add(CreateColumn(130, "Patterns", "Patterns"));

            var fileResultsListView = new DemoInfoListView();

            _fileResultsListView = fileResultsListView;
            fileResultsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            fileResultsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            fileResultsListView.Margin        = new Thickness(5);
            fileResultsListView.View          = fileResultsGridView;
            fileResultsListView.SelectionMode = SelectionMode.Extended;

            var cutResultsGridView = new GridView();

            cutResultsGridView.AllowsColumnReorder = false;
            cutResultsGridView.Columns.Add(CreateColumn(330, "File Name", "FileName"));
            cutResultsGridView.Columns.Add(CreateColumn(40, "GS", "GSIndex", "GameState Index"));
            cutResultsGridView.Columns.Add(CreateColumn(50, "Start", "StartTime"));
            cutResultsGridView.Columns.Add(CreateColumn(50, "End", "EndTime"));
            cutResultsGridView.Columns.Add(CreateColumn(80, "Patterns", "Patterns"));

            var cutResultsListView = new DemoInfoListView();

            _cutResultsListView = cutResultsListView;
            cutResultsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            cutResultsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            cutResultsListView.Margin        = new Thickness(5);
            cutResultsListView.View          = cutResultsGridView;
            cutResultsListView.SelectionMode = SelectionMode.Extended;

            fileResultsListView.SetDemoAnalyzed(true);
            cutResultsListView.SetDemoAnalyzed(true);
            FixListViewMouseWheelHandling(fileResultsListView);
            FixListViewMouseWheelHandling(cutResultsListView);

            var noResultsTextBlock = new TextBlock();

            _noResultsTextBlock = noResultsTextBlock;
            noResultsTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
            noResultsTextBlock.VerticalAlignment   = VerticalAlignment.Center;
            noResultsTextBlock.Margin = new Thickness(5);
            noResultsTextBlock.Text   = "Nothing was found!";

            var resultsTextBlock = new TextBlock();

            _resultsTextBlock = resultsTextBlock;
            resultsTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
            resultsTextBlock.VerticalAlignment   = VerticalAlignment.Center;
            resultsTextBlock.Margin = new Thickness(5);
            resultsTextBlock.Text   = "";

            var resultsStackPanel = new StackPanel();

            resultsStackPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            resultsStackPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            resultsStackPanel.Margin      = new Thickness(5);
            resultsStackPanel.Orientation = Orientation.Vertical;
            resultsStackPanel.Children.Add(noResultsTextBlock);
            resultsStackPanel.Children.Add(resultsTextBlock);
            resultsStackPanel.Children.Add(fileResultsListView);
            resultsStackPanel.Children.Add(cutResultsListView);

            var resultsGroupBox = new GroupBox();

            resultsGroupBox.HorizontalAlignment = HorizontalAlignment.Left;
            resultsGroupBox.VerticalAlignment   = VerticalAlignment.Top;
            resultsGroupBox.Margin  = new Thickness(5);
            resultsGroupBox.Header  = "Search Results";
            resultsGroupBox.Content = resultsStackPanel;

            // Set the default selection and call OnFileModeChecked().
            displayFilesRadioButton.IsChecked = true;

            var rootPanel = new StackPanel();

            rootPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            rootPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            rootPanel.Margin      = new Thickness(5);
            rootPanel.Orientation = Orientation.Vertical;
            rootPanel.Children.Add(settingsGroupBox);
            rootPanel.Children.Add(resultsGroupBox);

            var scrollViewer = new ScrollViewer();

            _scrollViewer = scrollViewer;
            scrollViewer.HorizontalAlignment = HorizontalAlignment.Stretch;
            scrollViewer.VerticalAlignment   = VerticalAlignment.Stretch;
            scrollViewer.Margin = new Thickness(0);
            scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
            scrollViewer.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
            scrollViewer.Content = rootPanel;

            InitListViewBindings();

            return(scrollViewer);
        }
Example #8
0
        private FrameworkElement CreateCutByChatTab()
        {
            var chatRulesGridView = new GridView();
            chatRulesGridView.AllowsColumnReorder = false;
            chatRulesGridView.Columns.Add(new GridViewColumn { Header = "Operator", Width = 100, DisplayMemberBinding = new Binding("Operator") });
            chatRulesGridView.Columns.Add(new GridViewColumn { Header = "Pattern", Width = 175, DisplayMemberBinding = new Binding("Pattern") });
            chatRulesGridView.Columns.Add(new GridViewColumn { Header = "Case Sensitive", Width = 100, DisplayMemberBinding = new Binding("CaseSensitive") });
            chatRulesGridView.Columns.Add(new GridViewColumn { Header = "Ignore Colors", Width = 100, DisplayMemberBinding = new Binding("IgnoreColors") });

            var chatRulesListView = new DemoInfoListView();
            _chatRulesListView = chatRulesListView;
            chatRulesListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesListView.VerticalAlignment = VerticalAlignment.Stretch;
            chatRulesListView.Margin = new Thickness(5);
            chatRulesListView.View = chatRulesGridView;
            chatRulesListView.SelectionMode = SelectionMode.Single;
            chatRulesListView.Width = 485;
            foreach(var rule in _app.Config.ChatRules)
            {
                chatRulesListView.Items.Add(new ChatRuleDisplayInfo(rule));
            }

            var addButton = new Button();
            addButton.Content = "Add";
            addButton.Width = 75;
            addButton.Height = 25;
            addButton.Margin = new Thickness(0, 0, 0, 5);
            addButton.Click += (obj, args) => OnAddChatRuleClicked();

            var editButton = new Button();
            editButton.Content = "Edit";
            editButton.Width = 75;
            editButton.Height = 25;
            editButton.Margin = new Thickness(0, 0, 0, 5);
            editButton.Click += (obj, args) => OnEditChatRuleClicked();

            var removeButton = new Button();
            removeButton.Content = "Remove";
            removeButton.Width = 75;
            removeButton.Height = 25;
            removeButton.Margin = new Thickness(0, 0, 0, 5);
            removeButton.Click += (obj, args) => OnRemoveChatRuleClicked();

            var chatRulesVerPanel = new StackPanel();
            chatRulesVerPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesVerPanel.VerticalAlignment = VerticalAlignment.Stretch;
            chatRulesVerPanel.Margin = new Thickness(5);
            chatRulesVerPanel.Orientation = Orientation.Vertical;
            chatRulesVerPanel.Children.Add(addButton);
            chatRulesVerPanel.Children.Add(editButton);
            chatRulesVerPanel.Children.Add(removeButton);

            var chatRulesHorPanel = new StackPanel();
            chatRulesHorPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesHorPanel.VerticalAlignment = VerticalAlignment.Stretch;
            chatRulesHorPanel.Margin = new Thickness(5);
            chatRulesHorPanel.Orientation = Orientation.Horizontal;
            chatRulesHorPanel.Children.Add(chatRulesListView);
            chatRulesHorPanel.Children.Add(chatRulesVerPanel);

            var chatRulesGroupBox = new GroupBox();
            chatRulesGroupBox.Header = "Chat Rules";
            chatRulesGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesGroupBox.VerticalAlignment = VerticalAlignment.Stretch;
            chatRulesGroupBox.Margin = new Thickness(5);
            chatRulesGroupBox.Content = chatRulesHorPanel;

            var cutButton = new Button();
            cutButton.HorizontalAlignment = HorizontalAlignment.Left;
            cutButton.VerticalAlignment = VerticalAlignment.Top;
            cutButton.Content = "Cut!";
            cutButton.Width = 75;
            cutButton.Height = 25;
            cutButton.Margin = new Thickness(5);
            cutButton.Click += (obj, args) => OnCutByChatClicked();

            var actionsGroupBox = new GroupBox();
            actionsGroupBox.HorizontalAlignment = HorizontalAlignment.Left;
            actionsGroupBox.VerticalAlignment = VerticalAlignment.Top;
            actionsGroupBox.Margin = new Thickness(5);
            actionsGroupBox.Header = "Actions";
            actionsGroupBox.Content = cutButton;

            var helpTextBlock = new TextBlock();
            helpTextBlock.Margin = new Thickness(5);
            helpTextBlock.TextWrapping = TextWrapping.WrapWithOverflow;
            helpTextBlock.Text =
                "The StartsWith pattern matching operator is currently applied to the start of the original chat command, not the start of the message portion itself." +
                "\nIt is therefore advised to use the Contains or EndsWith modes unless you have something very specific in mind (and know the Quake protocol well).";

            var helpGroupBox = new GroupBox();
            helpGroupBox.Margin = new Thickness(5);
            helpGroupBox.Header = "Help";
            helpGroupBox.Content = helpTextBlock;

            var rootPanel = new WrapPanel();
            rootPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            rootPanel.VerticalAlignment = VerticalAlignment.Stretch;
            rootPanel.Margin = new Thickness(5);
            rootPanel.Orientation = Orientation.Horizontal;
            rootPanel.Children.Add(chatRulesGroupBox);
            rootPanel.Children.Add(actionsGroupBox);
            rootPanel.Children.Add(helpGroupBox);

            var scrollViewer = new ScrollViewer();
            scrollViewer.HorizontalAlignment = HorizontalAlignment.Stretch;
            scrollViewer.VerticalAlignment = VerticalAlignment.Stretch;
            scrollViewer.Margin = new Thickness(5);
            scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
            scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            scrollViewer.Content = rootPanel;

            return scrollViewer;
        }
Example #9
0
        public SteamDialog(Window parent)
        {
            var steam = Steam.GetSteamInfo();

            if (steam == null)
            {
                MessageBox.Show("Failed to find a Steam installation", "Steam not found", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            var installPathsPanel = CreateVerticalPanel();

            for (var i = 0; i < steam.InstallPaths.Count; ++i)
            {
                var installPath = steam.InstallPaths[i];
                var title       = i == 0 ? "Main" : "Extra #" + i.ToString();
                var pathTextBox = new TextBox();
                pathTextBox.Text       = installPath;
                pathTextBox.IsReadOnly = true;
                var row = CreateRow(50, title, pathTextBox);
                installPathsPanel.Children.Add(row);
            }
            var installPathsGroupBox = CreateGroupBox("Steam Folders", installPathsPanel);

            if (installPathsPanel.Children.Count == 0)
            {
                installPathsGroupBox.Visibility = Visibility.Collapsed;
            }

            var usersGridView = new GridView();

            usersGridView.AllowsColumnReorder = false;
            usersGridView.Columns.Add(new GridViewColumn {
                Header = "Account Name", Width = 125, DisplayMemberBinding = new Binding("AccountName")
            });
            usersGridView.Columns.Add(new GridViewColumn {
                Header = "Current Name", Width = 125, DisplayMemberBinding = new Binding("CurrentName")
            });
            usersGridView.Columns.Add(new GridViewColumn {
                Header = "Steam ID", Width = 200, DisplayMemberBinding = new Binding("SteamID")
            });
            usersGridView.Columns.Add(new GridViewColumn {
                Header = "Auto Log-In", Width = 100, DisplayMemberBinding = new Binding("AutoLogIn")
            });

            var usersListView = new DemoInfoListView();

            usersListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            usersListView.VerticalAlignment   = VerticalAlignment.Stretch;
            usersListView.Margin        = new Thickness(5);
            usersListView.View          = usersGridView;
            usersListView.SelectionMode = SelectionMode.Single;
            foreach (var user in steam.Users)
            {
                usersListView.Items.Add(user);
            }

            var copySteamIdButton = CreateButton("Copy ID to Clipboard", (obj, args) => CopySteamIdToClipboard(usersListView));

            copySteamIdButton.HorizontalAlignment = HorizontalAlignment.Left;
            copySteamIdButton.Margin = new Thickness(5);
            var usersPanel = CreateVerticalPanel();

            usersPanel.Margin = new Thickness(0);
            usersPanel.Children.Add(usersListView);
            usersPanel.Children.Add(copySteamIdButton);

            var usersGroupBox = CreateGroupBox("Steam Users", usersPanel);

            if (usersListView.Items.Count == 0)
            {
                usersGroupBox.Visibility = Visibility.Collapsed;
            }

            var gamePathsPanel = CreateVerticalPanel();

            foreach (var game in steam.Games)
            {
                var pathTextBox = new TextBox();
                pathTextBox.Text       = game.Path;
                pathTextBox.IsReadOnly = true;
                var row = CreateRow(100, game.Name, pathTextBox);
                gamePathsPanel.Children.Add(row);
            }
            var gamePathsGroupBox = CreateGroupBox("Game Folders", gamePathsPanel);

            if (gamePathsPanel.Children.Count == 0)
            {
                gamePathsGroupBox.Visibility = Visibility.Collapsed;
            }

            var demoPathsGridView = new GridView();

            demoPathsGridView.AllowsColumnReorder = false;
            demoPathsGridView.Columns.Add(new GridViewColumn {
                Header = "Game", Width = 50, DisplayMemberBinding = new Binding("Game")
            });
            demoPathsGridView.Columns.Add(new GridViewColumn {
                Header = "Path", Width = 425, DisplayMemberBinding = new Binding("Path")
            });
            demoPathsGridView.Columns.Add(new GridViewColumn {
                Header = "Account", Width = 125, DisplayMemberBinding = new Binding("Account")
            });

            var demoPathsListView = new DemoInfoListView();

            demoPathsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            demoPathsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            demoPathsListView.Margin        = new Thickness(5);
            demoPathsListView.View          = demoPathsGridView;
            demoPathsListView.SelectionMode = SelectionMode.Single;
            foreach (var game in steam.Games)
            {
                foreach (var demoPath in game.DemoPaths)
                {
                    var item = new DemoFolder();
                    item.Game    = game.ShortName;
                    item.Path    = demoPath.Path;
                    item.Account = "";
                    if (demoPath.AccountSpecific)
                    {
                        var user = steam.Users.Find(u => u.SteamID == demoPath.SteamID);
                        if (user != null)
                        {
                            item.Account = user.AccountName;
                        }
                    }
                    demoPathsListView.Items.Add(item);
                }
            }

            var copyButton        = CreateButton("Copy Path to Clipboard", (obj, args) => CopyPathToClipboard(demoPathsListView));
            var setAsInputButton  = CreateButton("Set as UDT Input Path", (obj, args) => SetAsInputFolder(demoPathsListView));
            var setAsOutputButton = CreateButton("Set as UDT Output Path", (obj, args) => SetAsOutputFolder(demoPathsListView));
            var openButton        = CreateButton("Open in File Explorer", (obj, args) => OpenDemoPath(demoPathsListView));

            var demoPathsButtonRow = CreateHorizontalPanel();

            demoPathsButtonRow.Children.Add(copyButton);
            demoPathsButtonRow.Children.Add(setAsInputButton);
            demoPathsButtonRow.Children.Add(setAsOutputButton);
            demoPathsButtonRow.Children.Add(openButton);

            var demoPathsPanel = CreateVerticalPanel();

            demoPathsPanel.Margin = new Thickness(0);
            demoPathsPanel.Children.Add(demoPathsListView);
            demoPathsPanel.Children.Add(demoPathsButtonRow);

            var demoPathsGroupBox = CreateGroupBox("Demo Folders", demoPathsPanel);

            if (demoPathsListView.Items.Count == 0)
            {
                demoPathsGroupBox.Visibility = Visibility.Collapsed;
            }

            var rootPanel = CreateVerticalPanel();

            rootPanel.Children.Add(installPathsGroupBox);
            rootPanel.Children.Add(usersGroupBox);
            rootPanel.Children.Add(gamePathsGroupBox);
            rootPanel.Children.Add(demoPathsGroupBox);

            var window = new Window();

            window.Owner              = parent;
            window.WindowStyle        = WindowStyle.ToolWindow;
            window.AllowsTransparency = false;
            window.Background         = new SolidColorBrush(System.Windows.SystemColors.ControlColor);
            window.ShowInTaskbar      = false;
            window.SizeToContent      = SizeToContent.WidthAndHeight;
            window.MinWidth           = 400;
            window.MinHeight          = 300;
            window.MaxWidth           = 1024;
            window.MaxHeight          = 768;
            window.ResizeMode         = ResizeMode.NoResize;
            window.Icon    = UDT.Properties.Resources.UDTIcon.ToImageSource();
            window.Title   = "Steam Info";
            window.Content = rootPanel;
            window.Loaded += (obj, args) =>
            {
                window.Left = parent.Left + (parent.Width - window.Width) / 2;
                window.Top  = parent.Top + (parent.Height - window.Height) / 2;
            };
            window.ShowDialog();
        }
Example #10
0
        private FrameworkElement CreateDemoFragTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();

            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag     = "GameStateIndex";
            columnGS.Header  = headerGS;
            columnGS.Width   = 35;
            columnGS.DisplayMemberBinding = new Binding("GameStateIndex");

            var columnTime = new GridViewColumn();
            var headerTime = new GridViewColumnHeader();

            headerTime.Content = "Time";
            headerTime.Tag     = "Time";
            columnTime.Header  = headerTime;
            columnTime.Width   = 75;
            columnTime.DisplayMemberBinding = new Binding("Time");

            var columnAtt = new GridViewColumn();
            var headerAtt = new GridViewColumnHeader();

            headerAtt.Content = "Attacker";
            headerAtt.Tag     = "Attacker";
            columnAtt.Header  = headerAtt;
            columnAtt.Width   = 155;
            columnAtt.DisplayMemberBinding = new Binding("Attacker");

            var columnTarget = new GridViewColumn();
            var headerTarget = new GridViewColumnHeader();

            headerTarget.Content = "Target";
            headerTarget.Tag     = "Target";
            columnTarget.Header  = headerTarget;
            columnTarget.Width   = 155;
            columnTarget.DisplayMemberBinding = new Binding("Target");

            var columnMOD = new GridViewColumn();
            var headerMOD = new GridViewColumnHeader();

            headerMOD.Content = "Cause of Death"; // Mean of death in id terminology.
            headerMOD.Tag     = "Mod";
            columnMOD.Header  = headerMOD;
            columnMOD.Width   = 155;
            columnMOD.DisplayMemberBinding = new Binding("Mod");

            var demoEventsGridView = new GridView();

            demoEventsGridView.AllowsColumnReorder = false;
            demoEventsGridView.Columns.Add(columnGS);
            demoEventsGridView.Columns.Add(columnTime);
            demoEventsGridView.Columns.Add(columnAtt);
            demoEventsGridView.Columns.Add(columnTarget);
            demoEventsGridView.Columns.Add(columnMOD);

            var eventsListView = new DemoInfoListView();

            _fragEventsListView = eventsListView;
            eventsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            eventsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            eventsListView.Margin        = new Thickness(5);
            eventsListView.View          = demoEventsGridView;
            eventsListView.SelectionMode = SelectionMode.Extended;
            InitFragEventsListViewCutBinding();

            var infoPanelGroupBox = new GroupBox();

            infoPanelGroupBox.Header = "Obituary Events";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin  = new Thickness(5);
            infoPanelGroupBox.Content = eventsListView;

            return(infoPanelGroupBox);
        }
Example #11
0
        private FrameworkElement CreateCutByChatTab()
        {
            var chatRulesGridView = new GridView();

            chatRulesGridView.AllowsColumnReorder = false;
            chatRulesGridView.Columns.Add(new GridViewColumn {
                Header = "Operator", Width = 90, DisplayMemberBinding = new Binding("Operator")
            });
            chatRulesGridView.Columns.Add(new GridViewColumn {
                Header = "Pattern", Width = 155, DisplayMemberBinding = new Binding("Pattern")
            });
            chatRulesGridView.Columns.Add(new GridViewColumn {
                Header = "Case Sens.", Width = 80, DisplayMemberBinding = new Binding("CaseSensitive")
            });
            chatRulesGridView.Columns.Add(new GridViewColumn {
                Header = "No Colors", Width = 80, DisplayMemberBinding = new Binding("IgnoreColors")
            });
            chatRulesGridView.Columns.Add(new GridViewColumn {
                Header = "Team", Width = 70, DisplayMemberBinding = new Binding("SearchTeam")
            });

            var chatRulesListView = new DemoInfoListView();

            _chatRulesListView = chatRulesListView;
            chatRulesListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesListView.VerticalAlignment   = VerticalAlignment.Stretch;
            chatRulesListView.Margin        = new Thickness(5);
            chatRulesListView.View          = chatRulesGridView;
            chatRulesListView.SelectionMode = SelectionMode.Single;
            chatRulesListView.Width         = 485;
            foreach (var rule in _app.Config.ChatRules)
            {
                chatRulesListView.Items.Add(new ChatRuleDisplayInfo(rule));
            }

            var addButton = new Button();

            addButton.Content = "Add";
            addButton.Width   = 75;
            addButton.Height  = 25;
            addButton.Margin  = new Thickness(0, 0, 0, 5);
            addButton.Click  += (obj, args) => OnAddChatRuleClicked();

            var editButton = new Button();

            editButton.Content = "Edit";
            editButton.Width   = 75;
            editButton.Height  = 25;
            editButton.Margin  = new Thickness(0, 0, 0, 5);
            editButton.Click  += (obj, args) => OnEditChatRuleClicked();

            var removeButton = new Button();

            removeButton.Content = "Remove";
            removeButton.Width   = 75;
            removeButton.Height  = 25;
            removeButton.Margin  = new Thickness(0, 0, 0, 5);
            removeButton.Click  += (obj, args) => OnRemoveChatRuleClicked();

            var chatRulesVerPanel = new StackPanel();

            chatRulesVerPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesVerPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            chatRulesVerPanel.Margin      = new Thickness(5);
            chatRulesVerPanel.Orientation = Orientation.Vertical;
            chatRulesVerPanel.Children.Add(addButton);
            chatRulesVerPanel.Children.Add(editButton);
            chatRulesVerPanel.Children.Add(removeButton);

            var chatRulesHorPanel = new StackPanel();

            chatRulesHorPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesHorPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            chatRulesHorPanel.Margin      = new Thickness(5);
            chatRulesHorPanel.Orientation = Orientation.Horizontal;
            chatRulesHorPanel.Children.Add(chatRulesListView);
            chatRulesHorPanel.Children.Add(chatRulesVerPanel);

            var chatRulesGroupBox = new GroupBox();

            chatRulesGroupBox.Header = "Chat Rules";
            chatRulesGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            chatRulesGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            chatRulesGroupBox.Margin  = new Thickness(5);
            chatRulesGroupBox.Content = chatRulesHorPanel;

            var actionsGroupBox = CutByPatternComponent.CreateActionsGroupBox(UDT_DLL.udtPatternType.Chat);

            var helpTextBlock = new TextBlock();

            helpTextBlock.Margin       = new Thickness(5);
            helpTextBlock.TextWrapping = TextWrapping.WrapWithOverflow;
            helpTextBlock.Text         =
                "A cut section is created if the chat message matches any of the rules." +
                "\nIn other words, rules are logically ORed, not ANDed:" +
                "\ncreate_cut = match(message, rule_1) OR match(message, rule_2) OR ... OR match(message, rule_N)";

            var helpGroupBox = new GroupBox();

            helpGroupBox.HorizontalAlignment = HorizontalAlignment.Left;
            helpGroupBox.VerticalAlignment   = VerticalAlignment.Top;
            helpGroupBox.Margin  = new Thickness(5);
            helpGroupBox.Header  = "Help";
            helpGroupBox.Content = helpTextBlock;

            var rootPanel = new WrapPanel();

            rootPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            rootPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            rootPanel.Margin      = new Thickness(5);
            rootPanel.Orientation = Orientation.Horizontal;
            rootPanel.Children.Add(chatRulesGroupBox);
            rootPanel.Children.Add(actionsGroupBox);
            rootPanel.Children.Add(helpGroupBox);

            var scrollViewer = new ScrollViewer();

            scrollViewer.HorizontalAlignment = HorizontalAlignment.Stretch;
            scrollViewer.VerticalAlignment   = VerticalAlignment.Stretch;
            scrollViewer.Margin = new Thickness(5);
            scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
            scrollViewer.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
            scrollViewer.Content = rootPanel;

            return(scrollViewer);
        }
Example #12
0
        private FrameworkElement CreateTab()
        {
            var noDataTextBlock = new TextBlock();

            _noStatsPanel = noDataTextBlock;
            noDataTextBlock.HorizontalAlignment = HorizontalAlignment.Center;
            noDataTextBlock.VerticalAlignment   = VerticalAlignment.Center;
            noDataTextBlock.Text       = "This demo was not analyzed.";
            noDataTextBlock.Visibility = Visibility.Collapsed;

            var matchInfoListView   = CreateMatchInfoListView();
            var teamStatsListView   = CreateTeamStatsListView();
            var playerStatsListView = CreatePlayerStatsListView();

            FixListViewMouseWheelHandling(matchInfoListView);
            FixListViewMouseWheelHandling(teamStatsListView);
            FixListViewMouseWheelHandling(playerStatsListView);
            _matchInfoListView   = matchInfoListView;
            _teamStatsListView   = teamStatsListView;
            _playerStatsListView = playerStatsListView;

            var matchInfoGroupBox = new GroupBox();

            _matchInfoPanel = matchInfoGroupBox;
            matchInfoGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            matchInfoGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            matchInfoGroupBox.Margin  = new Thickness(5);
            matchInfoGroupBox.Header  = "Match Info";
            matchInfoGroupBox.Content = matchInfoListView;

            var teamStatsGroupBox = new GroupBox();

            _teamStatsPanel = teamStatsGroupBox;
            teamStatsGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            teamStatsGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            teamStatsGroupBox.Margin  = new Thickness(5);
            teamStatsGroupBox.Header  = "Team Scores and Stats";
            teamStatsGroupBox.Content = teamStatsListView;

            var playerStatsGroupBox = new GroupBox();

            _playerStatsPanel = playerStatsGroupBox;
            playerStatsGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            playerStatsGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            playerStatsGroupBox.Margin  = new Thickness(5);
            playerStatsGroupBox.Header  = "Player Scores and Stats";
            playerStatsGroupBox.Content = playerStatsListView;

            var matchSelectionTextBlock = new TextBlock();

            matchSelectionTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
            matchSelectionTextBlock.VerticalAlignment   = VerticalAlignment.Center;
            matchSelectionTextBlock.Text = "Selected Match:  ";

            var matchSelectionComboBox = new ComboBox();

            _matchSelectionComboBox = matchSelectionComboBox;
            matchSelectionComboBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            matchSelectionComboBox.VerticalAlignment   = VerticalAlignment.Center;
            matchSelectionComboBox.SelectionChanged   += (obj, args) => OnMatchSelectionChanged();

            var matchSelectionPanel = new StackPanel();

            _matchSelectionPanel = matchSelectionPanel;
            matchSelectionPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            matchSelectionPanel.VerticalAlignment   = VerticalAlignment.Top;
            matchSelectionPanel.Margin      = new Thickness(5, 2, 5, 2);
            matchSelectionPanel.Orientation = Orientation.Horizontal;
            matchSelectionPanel.Children.Add(matchSelectionTextBlock);
            matchSelectionPanel.Children.Add(matchSelectionComboBox);

            var statsPanel = new StackPanel();

            statsPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            statsPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            statsPanel.Margin      = new Thickness(5);
            statsPanel.Orientation = Orientation.Vertical;
            statsPanel.Children.Add(matchSelectionPanel);
            statsPanel.Children.Add(matchInfoGroupBox);
            statsPanel.Children.Add(teamStatsGroupBox);
            statsPanel.Children.Add(playerStatsGroupBox);

            var rootPanel = new StackPanel();

            _statsPanel = statsPanel;
            rootPanel.HorizontalAlignment = HorizontalAlignment.Stretch;
            rootPanel.VerticalAlignment   = VerticalAlignment.Stretch;
            rootPanel.Margin      = new Thickness(5);
            rootPanel.Orientation = Orientation.Vertical;
            rootPanel.Children.Add(_noStatsPanel);
            rootPanel.Children.Add(_statsPanel);

            var scrollViewer = new ScrollViewer();

            _scrollViewer = scrollViewer;
            scrollViewer.HorizontalAlignment           = HorizontalAlignment.Stretch;
            scrollViewer.VerticalAlignment             = VerticalAlignment.Stretch;
            scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
            scrollViewer.VerticalScrollBarVisibility   = ScrollBarVisibility.Auto;
            scrollViewer.Content = rootPanel;

            ShowMatchInfo(false);
            ShowTeamStats(false);
            ShowPlayerStats(false);
            ShowMatchSelector(false);

            return(scrollViewer);
        }
Example #13
0
        private FrameworkElement CreateDemoFragTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();
            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag = "GameStateIndex";
            columnGS.Header = headerGS;
            columnGS.Width = 25;
            columnGS.DisplayMemberBinding = new Binding("GameStateIndex");

            var columnTime = new GridViewColumn();
            var headerTime = new GridViewColumnHeader();
            headerTime.Content = "Time";
            headerTime.Tag = "Time";
            columnTime.Header = headerTime;
            columnTime.Width = 75;
            columnTime.DisplayMemberBinding = new Binding("Time");

            var columnAtt = new GridViewColumn();
            var headerAtt = new GridViewColumnHeader();
            headerAtt.Content = "Attacker";
            headerAtt.Tag = "Attacker";
            columnAtt.Header = headerAtt;
            columnAtt.Width = 165;
            columnAtt.DisplayMemberBinding = new Binding("Attacker");

            var columnTarget = new GridViewColumn();
            var headerTarget = new GridViewColumnHeader();
            headerTarget.Content = "Target";
            headerTarget.Tag = "Target";
            columnTarget.Header = headerTarget;
            columnTarget.Width = 165;
            columnTarget.DisplayMemberBinding = new Binding("Target");

            var columnMOD = new GridViewColumn();
            var headerMOD = new GridViewColumnHeader();
            headerMOD.Content = "Cause of Death"; // Mean of death in id terminology.
            headerMOD.Tag = "Mod";
            columnMOD.Header = headerMOD;
            columnMOD.Width = 165;
            columnMOD.DisplayMemberBinding = new Binding("Mod");

            var demoEventsGridView = new GridView();
            demoEventsGridView.AllowsColumnReorder = false;
            demoEventsGridView.Columns.Add(columnGS);
            demoEventsGridView.Columns.Add(columnTime);
            demoEventsGridView.Columns.Add(columnAtt);
            demoEventsGridView.Columns.Add(columnTarget);
            demoEventsGridView.Columns.Add(columnMOD);

            var eventsListView = new DemoInfoListView();
            _fragEventsListView = eventsListView;
            eventsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            eventsListView.VerticalAlignment = VerticalAlignment.Stretch;
            eventsListView.Margin = new Thickness(5);
            eventsListView.View = demoEventsGridView;
            eventsListView.SelectionMode = SelectionMode.Extended;
            InitFragEventsListViewCutBinding();

            var infoPanelGroupBox = new GroupBox();
            infoPanelGroupBox.Header = "Obituary Events";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin = new Thickness(5);
            infoPanelGroupBox.Content = eventsListView;

            return infoPanelGroupBox;
        }
Example #14
0
        private FrameworkElement CreateDemoChatTab()
        {
            var columnGS = new GridViewColumn();
            var headerGS = new GridViewColumnHeader();

            headerGS.ToolTip = "GameState Index";
            headerGS.Content = "GS";
            headerGS.Tag     = "GameStateIndex";
            headerGS.Click  += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnGS.Header  = headerGS;
            columnGS.Width   = 35;
            columnGS.DisplayMemberBinding = new Binding("GameStateIndex");

            var columnTime = new GridViewColumn();
            var headerTime = new GridViewColumnHeader();

            headerTime.Content = "Time";
            headerTime.Tag     = "Time";
            headerTime.Click  += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnTime.Header  = headerTime;
            columnTime.Width   = 75;
            columnTime.DisplayMemberBinding = new Binding("Time");

            var columnType = new GridViewColumn();
            var headerType = new GridViewColumnHeader();

            headerType.Content = "Scope";
            headerType.Tag     = "TeamMessage";
            headerType.Click  += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnType.Header  = headerType;
            columnType.Width   = 50;
            columnType.DisplayMemberBinding = new Binding("TeamMessage");

            var columnName = new GridViewColumn();
            var headerName = new GridViewColumnHeader();

            headerName.Content = "Player Name";
            headerName.Tag     = "Player";
            headerName.Click  += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnName.Header  = headerName;
            columnName.Width   = 120;
            columnName.DisplayMemberBinding = new Binding("Player");

            var columnMessage = new GridViewColumn();
            var headerMessage = new GridViewColumnHeader();

            headerMessage.Content = "Message";
            headerMessage.Tag     = "Message";
            headerMessage.Click  += (obj, args) => OnChatEventColumnClicked(obj as GridViewColumnHeader);
            columnMessage.Header  = headerMessage;
            columnMessage.Width   = 300;
            columnMessage.DisplayMemberBinding = new Binding("Message");

            var demoEventsGridView = new GridView();

            demoEventsGridView.AllowsColumnReorder = false;
            demoEventsGridView.Columns.Add(columnGS);
            demoEventsGridView.Columns.Add(columnTime);
            demoEventsGridView.Columns.Add(columnType);
            demoEventsGridView.Columns.Add(columnName);
            demoEventsGridView.Columns.Add(columnMessage);

            var eventsListView = new DemoInfoListView();

            _chatEventsListView = eventsListView;
            eventsListView.HorizontalAlignment = HorizontalAlignment.Stretch;
            eventsListView.VerticalAlignment   = VerticalAlignment.Stretch;
            eventsListView.Margin        = new Thickness(5);
            eventsListView.View          = demoEventsGridView;
            eventsListView.SelectionMode = SelectionMode.Extended;
            InitChatEventsListViewCutBinding();

            var infoPanelGroupBox = new GroupBox();

            infoPanelGroupBox.Header = "Chat Messages";
            infoPanelGroupBox.HorizontalAlignment = HorizontalAlignment.Stretch;
            infoPanelGroupBox.VerticalAlignment   = VerticalAlignment.Stretch;
            infoPanelGroupBox.Margin  = new Thickness(5);
            infoPanelGroupBox.Content = eventsListView;

            return(infoPanelGroupBox);
        }