Example #1
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);
        }