Showing preview only (4,736K chars total). Download the full file or copy to clipboard to get everything.
Repository: nstlaurent/DoomLauncher
Branch: development
Commit: 950e7031a434
Files: 563
Total size: 4.4 MB
Directory structure:
gitextract_dzt83he3/
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── BindingListView/
│ ├── AggregateBindingListView.cs
│ ├── BindingListView.cs
│ ├── BindingListView.csproj
│ ├── BindingListView.nuspec
│ ├── CompositeItemFilter.cs
│ ├── IItemFilter.cs
│ ├── INotifyingEditableObject.cs
│ ├── InvalidSourceListException.cs
│ ├── MultiSourceIndexList.cs
│ ├── ObjectView.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ └── ProvidedViewPropertyDescriptor.cs
├── CheckBoxComboBox/
│ ├── CheckBoxComboBox.Designer.cs
│ ├── CheckBoxComboBox.cs
│ ├── CheckBoxComboBox.csproj
│ ├── GripBounds.cs
│ ├── NativeMethods.cs
│ ├── Popup.Designer.cs
│ ├── Popup.cs
│ ├── PopupComboBox.Designer.cs
│ ├── PopupComboBox.cs
│ ├── PopupComboBox.resx
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── Selection Wrappers/
│ ├── ListSelectionWrapper.cs
│ └── ObjectSelectionWrapper.cs
├── DoomLauncher/
│ ├── Adapters/
│ │ ├── DataAccess.cs
│ │ ├── DbDataSourceAdapter.cs
│ │ ├── DirectoryDataSourceAdapter.cs
│ │ ├── GameLauncher.cs
│ │ ├── IdGamesDataAdapater.cs
│ │ ├── Launch/
│ │ │ ├── ExtraParametersLaunchFeature.cs
│ │ │ ├── GameFilesLaunchFeature.cs
│ │ │ ├── ILaunchFeature.cs
│ │ │ ├── IWadLaunchFeature.cs
│ │ │ ├── LaunchParameters.cs
│ │ │ ├── LaunchResult.cs
│ │ │ ├── LoadSaveLaunchFeature.cs
│ │ │ ├── MapSkillLaunchFeature.cs
│ │ │ ├── PlayDemoLaunchFeature.cs
│ │ │ ├── RecordLaunchFeature.cs
│ │ │ ├── SourcePortExtraParametersLaunchFeature.cs
│ │ │ ├── StatisticsReaderLaunchFeature.cs
│ │ │ └── UtilityFilesLaunchFeature.cs
│ │ ├── MSSQLDataAdapter.cs
│ │ ├── PlaySession.cs
│ │ ├── SqliteDatabaseAdapter.cs
│ │ └── WadArchiveDataAdapter.cs
│ ├── App.config
│ ├── Archive/
│ │ ├── ArchiveReader.cs
│ │ ├── Directory/
│ │ │ ├── DirectoryArchiveEntry.cs
│ │ │ └── DirectoryArchiveReader.cs
│ │ ├── EmptyArchiveReader.cs
│ │ ├── FileArchiveReader.cs
│ │ ├── IArchiveEntry.cs
│ │ ├── IArchiveReader.cs
│ │ ├── Rar/
│ │ │ ├── RarArchiveEntry.cs
│ │ │ └── RarArchiveReader.cs
│ │ ├── RecursiveArchiveReader.cs
│ │ ├── SevenZip/
│ │ │ ├── SevenZipArchiveEntry.cs
│ │ │ └── SevenZipArchiveReader.cs
│ │ ├── Wad/
│ │ │ ├── WadArchiveReader.cs
│ │ │ └── WadEntry.cs
│ │ └── Zip/
│ │ ├── ZipArchiveReader.cs
│ │ └── ZipArchiveReaderEntry.cs
│ ├── Config/
│ │ ├── AppConfiguration.cs
│ │ ├── AppVersion.cs
│ │ ├── ColorTheme.cs
│ │ ├── ColorThemeType.cs
│ │ ├── ColumnConfig.cs
│ │ ├── ConfigType.cs
│ │ ├── DataCache.cs
│ │ ├── FileManagement.cs
│ │ ├── GameFileListEventArgs.cs
│ │ ├── IDirectoriesConfiguration.cs
│ │ ├── Icons.cs
│ │ ├── LauncherPath.cs
│ │ ├── ScreenFilter.cs
│ │ └── TagMapLookup.cs
│ ├── Controls/
│ │ ├── BasicFileView.cs
│ │ ├── CCheckBox.cs
│ │ ├── CComboBox.cs
│ │ ├── CDataGridView.cs
│ │ ├── CProgressBar.cs
│ │ ├── CRichTextBox.Designer.cs
│ │ ├── CRichTextBox.cs
│ │ ├── CTabControl.cs
│ │ ├── CheckBoxList.Designer.cs
│ │ ├── CheckBoxList.cs
│ │ ├── CheckBoxList.resx
│ │ ├── ColumnField.cs
│ │ ├── DownloadView.Designer.cs
│ │ ├── DownloadView.cs
│ │ ├── DownloadView.resx
│ │ ├── DownloadViewItem.Designer.cs
│ │ ├── DownloadViewItem.cs
│ │ ├── DownloadViewItem.resx
│ │ ├── FileType.cs
│ │ ├── FilesCtrl.Designer.cs
│ │ ├── FilesCtrl.cs
│ │ ├── FilesCtrl.resx
│ │ ├── FlowLayoutPanelDB.Designer.cs
│ │ ├── FlowLayoutPanelDB.cs
│ │ ├── FormButton.cs
│ │ ├── GameFileAssociationView.Designer.cs
│ │ ├── GameFileAssociationView.cs
│ │ ├── GameFileAssociationView.resx
│ │ ├── GameFileEdit.Designer.cs
│ │ ├── GameFileEdit.cs
│ │ ├── GameFileEdit.resx
│ │ ├── GameFileSummary.Designer.cs
│ │ ├── GameFileSummary.cs
│ │ ├── GameFileSummary.resx
│ │ ├── GameFileTile.Designer.cs
│ │ ├── GameFileTile.cs
│ │ ├── GameFileTile.resx
│ │ ├── GameFileTileBase.cs
│ │ ├── GameFileTileExpanded.Designer.cs
│ │ ├── GameFileTileExpanded.cs
│ │ ├── GameFileTileExpanded.resx
│ │ ├── GameFileTileViewControl.Designer.cs
│ │ ├── GameFileTileViewControl.cs
│ │ ├── GameFileTileViewControl.resx
│ │ ├── GameFileViewControl.Designer.cs
│ │ ├── GameFileViewControl.cs
│ │ ├── GameFileViewControl.resx
│ │ ├── GenericFileView.Designer.cs
│ │ ├── GenericFileView.cs
│ │ ├── GenericFileView.resx
│ │ ├── GlowButton.cs
│ │ ├── GrowLabel.Designer.cs
│ │ ├── GrowLabel.cs
│ │ ├── PagingControl.Designer.cs
│ │ ├── PagingControl.cs
│ │ ├── PagingControl.resx
│ │ ├── RatingControl.Designer.cs
│ │ ├── RatingControl.cs
│ │ ├── RatingControl.resx
│ │ ├── ScreenshotView.Designer.cs
│ │ ├── ScreenshotView.cs
│ │ ├── ScreenshotView.resx
│ │ ├── SearchControl.Designer.cs
│ │ ├── SearchControl.cs
│ │ ├── SearchControl.resx
│ │ ├── SlideShowPictureBox.Designer.cs
│ │ ├── SlideShowPictureBox.cs
│ │ ├── SlideShowPictureBox.resx
│ │ ├── SourcePortEdit.Designer.cs
│ │ ├── SourcePortEdit.cs
│ │ ├── SourcePortEdit.resx
│ │ ├── StatBar.cs
│ │ ├── StatisticsView.Designer.cs
│ │ ├── StatisticsView.cs
│ │ ├── StatisticsView.resx
│ │ ├── StatsControl.Designer.cs
│ │ ├── StatsControl.cs
│ │ ├── StatsControl.resx
│ │ ├── TableLayoutPanelDB.Designer.cs
│ │ ├── TableLayoutPanelDB.cs
│ │ ├── TagControl.Designer.cs
│ │ ├── TagControl.cs
│ │ ├── TagControl.resx
│ │ ├── TagEdit.Designer.cs
│ │ ├── TagEdit.cs
│ │ ├── TagEdit.resx
│ │ ├── TagSelectControl.Designer.cs
│ │ ├── TagSelectControl.cs
│ │ ├── TagSelectControl.resx
│ │ ├── TitleBarControl.Designer.cs
│ │ ├── TitleBarControl.cs
│ │ ├── TitleBarControl.resx
│ │ ├── UpdateControl.Designer.cs
│ │ ├── UpdateControl.cs
│ │ └── UpdateControl.resx
│ ├── DataSources/
│ │ ├── CleanupFile.cs
│ │ ├── ConfigurationData.cs
│ │ ├── CustomParam.cs
│ │ ├── FileData.cs
│ │ ├── GameFile.cs
│ │ ├── GameProfile.cs
│ │ ├── ITagDataSource.cs
│ │ ├── IWadData.cs
│ │ ├── IdGamesGameFile.cs
│ │ ├── NewFileData.cs
│ │ ├── PreviewImage.cs
│ │ ├── SettingsDataSource.cs
│ │ ├── SourcePortData.cs
│ │ ├── SourcePortLaunchType.cs
│ │ ├── StaticTagData.cs
│ │ ├── StatsData.cs
│ │ ├── TagData.cs
│ │ ├── TagMapping.cs
│ │ ├── WadArchiveFile.cs
│ │ └── WadArchiveGameFile.cs
│ ├── Demo/
│ │ ├── CldDemoParser.cs
│ │ ├── DemoUtil.cs
│ │ └── IDemoParser.cs
│ ├── DoomLauncher.VisualElementsManifest.xml
│ ├── DoomLauncher.csproj
│ ├── Dpi/
│ │ └── DpiScale.cs
│ ├── Forms/
│ │ ├── AboutBox.Designer.cs
│ │ ├── AboutBox.cs
│ │ ├── AboutBox.resx
│ │ ├── CumulativeStats.Designer.cs
│ │ ├── CumulativeStats.cs
│ │ ├── CumulativeStats.resx
│ │ ├── DirectoriesForm.Designer.cs
│ │ ├── DirectoriesForm.cs
│ │ ├── DirectoriesForm.resx
│ │ ├── FileDetailsEditForm.Designer.cs
│ │ ├── FileDetailsEditForm.cs
│ │ ├── FileDetailsEditForm.resx
│ │ ├── FileManagementSelect.Designer.cs
│ │ ├── FileManagementSelect.cs
│ │ ├── FileManagementSelect.resx
│ │ ├── FileSelectForm.Designer.cs
│ │ ├── FileSelectForm.cs
│ │ ├── FileSelectForm.resx
│ │ ├── FilterForm.Designer.cs
│ │ ├── FilterForm.cs
│ │ ├── FilterForm.resx
│ │ ├── FilterSettingsForm.Designer.cs
│ │ ├── FilterSettingsForm.cs
│ │ ├── FilterSettingsForm.resx
│ │ ├── GameFileEditForm.Designer.cs
│ │ ├── GameFileEditForm.cs
│ │ ├── GameFileEditForm.resx
│ │ ├── MainForm.Designer.cs
│ │ ├── MainForm.cs
│ │ ├── MainForm.resx
│ │ ├── MainForm_Config.cs
│ │ ├── MainForm_Init.cs
│ │ ├── MainForm_Meta.cs
│ │ ├── MainForm_Play.cs
│ │ ├── MainForm_Sync.cs
│ │ ├── MessageCheckBox.Designer.cs
│ │ ├── MessageCheckBox.cs
│ │ ├── MessageCheckBox.resx
│ │ ├── MetaDataForm.Designer.cs
│ │ ├── MetaDataForm.cs
│ │ ├── MetaDataForm.resx
│ │ ├── PlayForm.Designer.cs
│ │ ├── PlayForm.cs
│ │ ├── PlayForm.resx
│ │ ├── PlayRandomForm.Designer.cs
│ │ ├── PlayRandomForm.cs
│ │ ├── PlayRandomForm.resx
│ │ ├── ProgressBarForm.Designer.cs
│ │ ├── ProgressBarForm.cs
│ │ ├── ProgressBarForm.resx
│ │ ├── SaveInfo.Designer.cs
│ │ ├── SaveInfo.cs
│ │ ├── SaveInfo.resx
│ │ ├── ScreenshotEditForm.Designer.cs
│ │ ├── ScreenshotEditForm.cs
│ │ ├── ScreenshotEditForm.resx
│ │ ├── ScreenshotViewerForm.Designer.cs
│ │ ├── ScreenshotViewerForm.cs
│ │ ├── ScreenshotViewerForm.resx
│ │ ├── SettingsForm.Designer.cs
│ │ ├── SettingsForm.cs
│ │ ├── SettingsForm.resx
│ │ ├── SimpleFileSelectForm.Designer.cs
│ │ ├── SimpleFileSelectForm.cs
│ │ ├── SimpleFileSelectForm.resx
│ │ ├── SourcePortEditForm.Designer.cs
│ │ ├── SourcePortEditForm.cs
│ │ ├── SourcePortEditForm.resx
│ │ ├── SourcePortViewForm.Designer.cs
│ │ ├── SourcePortViewForm.cs
│ │ ├── SourcePortViewForm.resx
│ │ ├── SpecificFilesForm.Designer.cs
│ │ ├── SpecificFilesForm.cs
│ │ ├── SpecificFilesForm.resx
│ │ ├── SplashScreen.Designer.cs
│ │ ├── SplashScreen.cs
│ │ ├── SplashScreen.resx
│ │ ├── StatsInfo.Designer.cs
│ │ ├── StatsInfo.cs
│ │ ├── StatsInfo.resx
│ │ ├── SyncStatusForm.Designer.cs
│ │ ├── SyncStatusForm.cs
│ │ ├── SyncStatusForm.resx
│ │ ├── TagEditForm.Designer.cs
│ │ ├── TagEditForm.cs
│ │ ├── TagEditForm.resx
│ │ ├── TagForm.Designer.cs
│ │ ├── TagForm.cs
│ │ ├── TagForm.resx
│ │ ├── TagSelectForm.Designer.cs
│ │ ├── TagSelectForm.cs
│ │ ├── TagSelectForm.resx
│ │ ├── TextBoxForm.Designer.cs
│ │ ├── TextBoxForm.cs
│ │ ├── TextBoxForm.resx
│ │ ├── TxtGenerator.Designer.cs
│ │ ├── TxtGenerator.cs
│ │ ├── TxtGenerator.resx
│ │ ├── Welcome.Designer.cs
│ │ ├── Welcome.cs
│ │ └── Welcome.resx
│ ├── GameFileView/
│ │ ├── GameFileViewFactory.cs
│ │ └── GameFileViewType.cs
│ ├── GameStores/
│ │ ├── AutomaticGameStoreCheck.cs
│ │ ├── GameStoreFiles.cs
│ │ ├── StoreGame.cs
│ │ └── StoreGameLoader.cs
│ ├── Handlers/
│ │ ├── AddFileType.cs
│ │ ├── ArchiveUtil.cs
│ │ ├── AutoCompleteCombo.cs
│ │ ├── DemoHandler.cs
│ │ ├── DownloadHandler.cs
│ │ ├── FIleAddResults.cs
│ │ ├── FileLoadHandler.cs
│ │ ├── FileLoadHandlerLegacy.cs
│ │ ├── FileMapComparer.cs
│ │ ├── GameFileTileManager.cs
│ │ ├── GameProfileUtil.cs
│ │ ├── ImageExtensions.cs
│ │ ├── InvalidFile.cs
│ │ ├── LaunchData.cs
│ │ ├── MenuConstants.cs
│ │ ├── NativeMethods.cs
│ │ ├── NewFileDetector.cs
│ │ ├── PathExtensions.cs
│ │ ├── SaveGameHandler.cs
│ │ ├── ScreenshotHandler.cs
│ │ ├── Sync/
│ │ │ ├── Doom64SyncAction.cs
│ │ │ ├── Doom64TitlePicSyncAction.cs
│ │ │ ├── GameConfSyncAction.cs
│ │ │ ├── GameInfoSyncAction.cs
│ │ │ ├── ISyncAction.cs
│ │ │ ├── IWadTitlesSyncAction.cs
│ │ │ ├── IdGamesTextFileParser.cs
│ │ │ ├── IdGamesTextInfo.cs
│ │ │ ├── KnownWadsSyncAction.cs
│ │ │ ├── MapInfoUtil.cs
│ │ │ ├── MapStringSyncAction.cs
│ │ │ ├── StartupImageSyncAction.cs
│ │ │ ├── SyncResult.cs
│ │ │ ├── TextFileSyncAction.cs
│ │ │ ├── TitlePicSyncAction.cs
│ │ │ └── TitlePicUtil.cs
│ │ ├── SyncFileData.cs
│ │ ├── SyncFileOption.cs
│ │ ├── SyncLibraryHandler.cs
│ │ ├── TabHandler.cs
│ │ ├── TabKeys.cs
│ │ ├── ThumbnailManager.cs
│ │ ├── ToolTipDisplayHandler.cs
│ │ ├── ToolTipGroup.cs
│ │ ├── ToolTipHandler.cs
│ │ ├── Util.cs
│ │ ├── UtilityHandler.cs
│ │ ├── VersionHandler.cs
│ │ └── VersionUpdateResults.cs
│ ├── Help.docx
│ ├── IWad/
│ │ └── IWadInfo.cs
│ ├── Interfaces/
│ │ ├── IConfigurationData.cs
│ │ ├── IConfigurationDataSourceAdapter.cs
│ │ ├── ICustomParam.cs
│ │ ├── IDataSourceAdapter.cs
│ │ ├── IDatabaseAdapter.cs
│ │ ├── IFileAssociationView.cs
│ │ ├── IFileData.cs
│ │ ├── IGameFile.cs
│ │ ├── IGameFileColumnView.cs
│ │ ├── IGameFileDataSourceAdapter.cs
│ │ ├── IGameFileDownloadable.cs
│ │ ├── IGameFileSortableView.cs
│ │ ├── IGameFileTile.cs
│ │ ├── IGameFileView.cs
│ │ ├── IGameProfile.cs
│ │ ├── IIWadData.cs
│ │ ├── IIWadDataSourceAdapter.cs
│ │ ├── INewFileDetector.cs
│ │ ├── ISettingsDataSource.cs
│ │ ├── ISourcePortData.cs
│ │ ├── IStatsData.cs
│ │ ├── IStatsDataSourceAdapter.cs
│ │ ├── ITabView.cs
│ │ ├── ITagData.cs
│ │ ├── ITagMapLookup.cs
│ │ └── ITagMapping.cs
│ ├── LaunchArgs.cs
│ ├── Program.Init.cs
│ ├── Program.cs
│ ├── ProgressBarType.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── RecentFileType.cs
│ ├── Resources/
│ │ ├── HereticPalette.pal
│ │ ├── HexenPalette.pal
│ │ └── PLAYPAL.LMP
│ ├── SaveGame/
│ │ ├── DsgSaveGameReader.cs
│ │ ├── HelionSaveGameReader.cs
│ │ ├── ISaveGameReader.cs
│ │ └── ZDoomSaveGameReader.cs
│ ├── Search/
│ │ ├── GameFileFieldType.cs
│ │ ├── GameFileGetOptions.cs
│ │ ├── GameFileSearchField.cs
│ │ ├── GameFileSearchOp.cs
│ │ ├── IGameFileGetOptions.cs
│ │ └── OrderType.cs
│ ├── SourcePort/
│ │ ├── DoomsdaySourcePortFlavor.cs
│ │ ├── GenericSourcePortFlavor.cs
│ │ ├── HelionSourcePortFlavor.cs
│ │ ├── ISourcePortFlavor.cs
│ │ ├── LevelstatSourcePortFlavor.cs
│ │ ├── SpData.cs
│ │ ├── StatdumpSourcePortFlavor.cs
│ │ └── ZDoomSourcePortFlavor.cs
│ ├── Statistics/
│ │ ├── IStatisticsReader.cs
│ │ ├── LevelstatReader.cs
│ │ ├── MultiLineStatReader.cs
│ │ ├── NewStatisticsEventArgs.cs
│ │ ├── StatFileScanner.cs
│ │ ├── StatdumpReader.cs
│ │ └── ZDoomStatsReader.cs
│ ├── Stylize/
│ │ ├── CToolStripRenderer.cs
│ │ ├── DarkTheme.cs
│ │ ├── DefaultTheme.cs
│ │ ├── IThemeColors.cs
│ │ ├── ImmersiveDarkMode.cs
│ │ ├── StyledMessageBox.cs
│ │ └── Stylizer.cs
│ ├── TabViews/
│ │ ├── BasicTabViewCtrl.Designer.cs
│ │ ├── BasicTabViewCtrl.cs
│ │ ├── BasicTabViewCtrl.resx
│ │ ├── IWadTabViewCtrl.Designer.cs
│ │ ├── IWadTabViewCtrl.cs
│ │ ├── IdGamesTabViewCtrl.Designer.cs
│ │ ├── IdGamesTabViewCtrl.cs
│ │ ├── LocalTabViewCtrl.cs
│ │ ├── OptionsTabViewCtrl.Designer.cs
│ │ ├── OptionsTabViewCtrl.cs
│ │ ├── TagTabView.Designer.cs
│ │ ├── TagTabView.cs
│ │ └── UntaggedTabView.cs
│ ├── TextFileParsers/
│ │ └── ZdlParser.cs
│ ├── Update/
│ │ ├── ApplicationUpdate.cs
│ │ ├── ApplicationUpdateInfo.cs
│ │ └── ApplicationUpdater.cs
│ ├── WindowsVersion/
│ │ └── WindowsVersion.cs
│ ├── app.manifest
│ └── packages.config
├── DoomLauncher.sln
├── DoomLauncherRelease/
│ ├── App.config
│ ├── DoomLauncherRelease.csproj
│ ├── Program.cs
│ └── Properties/
│ └── AssemblyInfo.cs
├── LICENSE
├── Newtonsoft.Json.xml
├── README.adoc
├── RELEASENOTES.md
├── Setup/
│ ├── EnableLaunchApplication.js
│ └── Setup.vdproj
├── UnitTest/
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── TestSteamInstall/
│ │ │ └── config/
│ │ │ └── libraryfolders.vdf
│ │ ├── TestSteamLibrary1/
│ │ │ └── steamapps/
│ │ │ ├── appmanifest_2280.acf
│ │ │ ├── appmanifest_2390.acf
│ │ │ └── common/
│ │ │ ├── TestDoom/
│ │ │ │ ├── base/
│ │ │ │ │ └── doom.wad
│ │ │ │ └── rerelease/
│ │ │ │ ├── doom2.wad
│ │ │ │ ├── id1.wad
│ │ │ │ ├── masterlevels.wad
│ │ │ │ ├── nerve.wad
│ │ │ │ ├── plutonia.wad
│ │ │ │ ├── sigil.wad
│ │ │ │ └── tnt.wad
│ │ │ └── TestHeretic/
│ │ │ └── base/
│ │ │ └── heretic.wad
│ │ ├── TestSteamLibrary2/
│ │ │ └── steamapps/
│ │ │ ├── appmanifest_2360.acf
│ │ │ ├── appmanifest_2390.acf
│ │ │ └── common/
│ │ │ ├── TestHeretic/
│ │ │ │ └── base/
│ │ │ │ └── heretic.wad
│ │ │ └── TestHexen/
│ │ │ └── base/
│ │ │ └── hexen.wad
│ │ ├── chocosave1.dsg
│ │ ├── invalid1.wad
│ │ ├── invalid2.wad
│ │ ├── prboomsave1.dsg
│ │ ├── simple.wad
│ │ ├── testpk3.pk3
│ │ ├── zandemo.cld
│ │ ├── zdoomsave_v1.zds
│ │ ├── zdoomsave_v2.zds
│ │ ├── zdoomsave_v3.zds
│ │ └── zdoomsave_v4.zds
│ ├── TestInit.cs
│ ├── Tests/
│ │ ├── Helpers/
│ │ │ ├── DirectoriesConfiguration.cs
│ │ │ ├── Tree.cs
│ │ │ ├── TreeEntry.cs
│ │ │ └── TreeReader.cs
│ │ ├── TestArchives.cs
│ │ ├── TestAutomaticSteamCheck.cs
│ │ ├── TestCldDemoParser.cs
│ │ ├── TestCnDoomStats.cs
│ │ ├── TestDirectoryAdapter.cs
│ │ ├── TestDirectoryArchive.cs
│ │ ├── TestDoom64SyncAction.cs
│ │ ├── TestDoom64TitlePicSyncAction.cs
│ │ ├── TestDsgSave.cs
│ │ ├── TestFile.cs
│ │ ├── TestFileDetector.cs
│ │ ├── TestGameConfSyncAction.cs
│ │ ├── TestGameFile.cs
│ │ ├── TestGameFileTags.cs
│ │ ├── TestGameInfoSyncAction.cs
│ │ ├── TestGameLauncher.cs
│ │ ├── TestGameProfile.cs
│ │ ├── TestGameProfileUtil.cs
│ │ ├── TestGameStoreFiles.cs
│ │ ├── TestIWad.cs
│ │ ├── TestIWadTitlesSyncAction.cs
│ │ ├── TestIdGamesFileParser.cs
│ │ ├── TestIdGamesTextInfo.cs
│ │ ├── TestIgnoreRarExploit.cs
│ │ ├── TestKnownWadsSyncAction.cs
│ │ ├── TestLaunchParameters.cs
│ │ ├── TestLauncherPath.cs
│ │ ├── TestLevelstat.cs
│ │ ├── TestLoadFiles.cs
│ │ ├── TestMapLumps.cs
│ │ ├── TestMapStringSyncAction.cs
│ │ ├── TestRecursiveArchiveReader.cs
│ │ ├── TestSourcePort.cs
│ │ ├── TestSpecificFiles.cs
│ │ ├── TestStartupImageSyncAction.cs
│ │ ├── TestStatdump.cs
│ │ ├── TestStats.cs
│ │ ├── TestSteamLoader.cs
│ │ ├── TestSyncLibraryHandler.cs
│ │ ├── TestTextFileSyncAction.cs
│ │ ├── TestUpdateInfo.cs
│ │ ├── TestUtil.cs
│ │ ├── TestWadReader.cs
│ │ ├── TestZdlParser.cs
│ │ ├── TestZdoomSave.cs
│ │ └── TestZdoomStats.cs
│ ├── UnitTest.csproj
│ ├── app.config
│ └── packages.config
├── WadReader/
│ ├── DoomImage/
│ │ ├── DoomImage.cs
│ │ ├── Palette.cs
│ │ └── PaletteReaders.cs
│ ├── FileLump.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Util.cs
│ ├── WadFileReader.cs
│ ├── WadHeader.cs
│ ├── WadReader.csproj
│ ├── WadType.cs
│ └── packages.config
├── WpfControlLibrary/
│ ├── AssemblyInfo.cs
│ ├── WpfComboBox.xaml
│ ├── WpfComboBox.xaml.cs
│ └── WpfControlLibrary.csproj
└── appveyor.yml
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
custom: https://paypal.me/nstlaurent22
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
ReleaseBuild/
================================================
FILE: BindingListView/AggregateBindingListView.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections;
using System.Reflection;
using System.Diagnostics;
namespace Equin.ApplicationFramework
{
public class AggregateBindingListView<T> : Component, IBindingListView, IList, IRaiseItemChangedEvents, ICancelAddNew, ITypedList, IEnumerable<T>
{
#region Constructors
public AggregateBindingListView()
{
_sourceLists = new BindingList<IList>();
(_sourceLists as IBindingList).ListChanged += new ListChangedEventHandler(SourceListsChanged);
_savedSourceLists = new List<IList>();
_sourceIndices = new MultiSourceIndexList<T>();
// Start with a filter that includes all items.
_filter = IncludeAllItemFilter<T>.Instance;
// Start with no sorts applied.
_sorts = new ListSortDescriptionCollection();
_objectViewCache = new Dictionary<T, ObjectView<T>>();
}
public AggregateBindingListView(IContainer container)
: this()
{
container.Add(this);
if (Site is ISynchronizeInvoke)
{
SynchronizingObject = Site as ISynchronizeInvoke;
}
}
#endregion
#region Private Member Fields
/// <summary>
/// The list of underlying list of items on which this view is based.
/// </summary>
private IList _sourceLists;
/// <summary>
/// The sorted, filtered list of item indices in _sourceList.
/// </summary>
private MultiSourceIndexList<T> _sourceIndices;
/// <summary>
/// The current filter applied to the view.
/// </summary>
private IItemFilter<T> _filter;
/// <summary>
/// The current sorts applied to the view.
/// </summary>
private ListSortDescriptionCollection _sorts;
/// <summary>
/// The <see cref="System.Collection.Generic.IComparer">IComparer</see> used to compare items when sorting.
/// </summary>
private IComparer<KeyValuePair<ListItemPair<T>, int>> _comparer;
/// <summary>
/// The item in the process of being added to the view.
/// </summary>
private ObjectView<T> _newItem;
/// <summary>
/// The IList we will add new items to.
/// </summary>
private IList _newItemsList;
/// <summary>
/// The object used to marshal event-handler calls that are invoked on a non-UI thread.
/// </summary>
private ISynchronizeInvoke _synchronizingObject;
/// <summary>
/// A copy of the source lists so when a list is removed from SourceLists
/// we still have a reference to use for unhooking events, etc.
/// </summary>
private List<IList> _savedSourceLists;
/// <summary>
/// The property on a source list item that contains the actual list to view.
/// If null or empty then the source list item is used instead.
/// </summary>
private string _dataMember;
/// <summary>
/// ObjectView cache used to prevent re-creation of existing object wrappers when
/// in FilterAndSort().
/// </summary>
private Dictionary<T, ObjectView<T>> _objectViewCache;
/// <summary>
/// Controls whether or not the view is automatically re-filtered and re-sorted when
/// source lists change.
/// </summary>
private bool _autoFilterAndSortSuspended;
#endregion
/// <summary>
/// Gets or sets the list of source lists used by this view.
/// </summary>
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SourceLists
{
get
{
return _sourceLists;
}
set
{
if (value == null)
{
throw new ArgumentNullException("SourceLists", Properties.Resources.SourceListsNull);
}
// Check that every item in each list is of type T.
foreach (object obj in value)
{
if (obj == null)
{
throw new InvalidSourceListException();
}
IList list = null;
if (!string.IsNullOrEmpty(DataMember))
{
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(obj))
{
if (pd.Name == DataMember)
{
list = pd.GetValue(obj) as IList;
break;
}
}
}
else if (obj is IListSource)
{
IListSource src = obj as IListSource;
if (src.ContainsListCollection)
{
list = src.GetList()[0] as IList;
}
else
{
list = (obj as IListSource).GetList();
}
}
else if (!(obj is ICollection<T>))
{
list = obj as IList;
}
else
{
// We have a typed collection, so can skip the item-by-item check.
continue;
}
if (list == null)
{
throw new InvalidSourceListException();
}
foreach (object item in list)
{
if (!(item is T))
{
throw new InvalidSourceListException(string.Format(Properties.Resources.InvalidListItemType, typeof(T).FullName));
}
}
}
IBindingList bindingList = _sourceLists as IBindingList;
// Un-hook old list changed event.
if (bindingList != null && bindingList.SupportsChangeNotification)
{
bindingList.ListChanged -= new ListChangedEventHandler(SourceListsChanged);
}
foreach (object list in _sourceLists)
{
IBindingList bl = list as IBindingList;
if (bl != null && bl.SupportsChangeNotification)
{
bl.ListChanged -= new ListChangedEventHandler(SourceListChanged);
}
}
_sourceLists = value;
bindingList = _sourceLists as IBindingList;
// Hook new list changed event
if (bindingList != null && bindingList.SupportsChangeNotification)
{
bindingList.ListChanged += new ListChangedEventHandler(SourceListsChanged);
}
foreach (object list in _sourceLists)
{
IBindingList bl = list as IBindingList;
if (bl != null && bl.SupportsChangeNotification)
{
bl.ListChanged += new ListChangedEventHandler(SourceListChanged);
}
}
// save new lists
BuildSavedList();
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
/// <summary>
/// Gets the ObjectView<T> of the item at the given index in the view.
/// </summary>
/// <param name="index">The item index.</param>
/// <returns>The ObjectView<T> of the item.</returns>
public ObjectView<T> this[int index]
{
get
{
return _sourceIndices[index].Key.Item;
}
}
[Browsable(false)]
public string DataMember
{
get
{
return _dataMember;
}
set
{
_dataMember = value;
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
private bool ShouldSerializeListMember()
{
return !string.IsNullOrEmpty(DataMember);
}
#region Adding New Items
/// <summary>
/// Occurs before an item is added to the list.
/// Assign the event argument's NewObject property to provide the object to add.
/// </summary>
public event AddingNewEventHandler AddingNew;
/// <summary>
/// Attempts to get a new <typeparamref name="T"/> object to add to the list, first by raising the
/// AddingNew event and then (if no new object was assigned) by using the
/// default public constructor.
/// </summary>
/// <returns>The new object to add to the list.</returns>
/// <exception cref="System.InvalidOperationException">No new object provided by the AddingNew event handler and <typeparamref name="T"/> has no default public constructor.</exception>
protected virtual T OnAddingNew()
{
// We allow users of this class to provide the object to add
// by raising the AddingNew event.
if (AddingNew != null)
{
AddingNewEventArgs args = new AddingNewEventArgs();
AddingNew(this, args);
// Check if we were given an object (and it's the correct type)
if ((args.NewObject != null) && (args.NewObject is T))
{
return (T)args.NewObject;
}
}
// Otherwise, try the default public constructor instead.
// Use reflection to find it. Note: We're not using the generic new() constraint since
// we do not want to force the need for a public default constructor when the user
// can simply handle the AddingNew event called above.
System.Reflection.ConstructorInfo ci = typeof(T).GetConstructor(System.Type.EmptyTypes);
if (ci != null)
{
// Invoke the constructor to create the object.
return (T)ci.Invoke(null);
}
else
{
throw new InvalidOperationException(Properties.Resources.CannotAddNewItem);
}
}
/// <summary>
/// Adds a new item to the view. Note that EndNew must be called to commit
/// the item to the to the source list.
/// </summary>
/// <returns>The new item, wrapped in an ObjectView<typeparamref name="T"/>.</returns>
public ObjectView<T> AddNew()
{
// Are we currently adding another item?
if (_newItem != null)
{
// Need to commit previous new item before adding another.
EndNew(_sourceIndices.Count - 1);
}
// Get the new item to add.
T item = OnAddingNew();
// Create the ObjectView<T> wrapper for the item.
ObjectView<T> objectView = new ObjectView<T>(item, this);
_objectViewCache[item] = objectView;
HookPropertyChangedEvent(objectView);
// Set the _newItem reference so we know what to use when ending/cancelling this add operation.
_newItem = objectView;
// Add to indicies list, but index of -1 means it's not in the source list yet.
_sourceIndices.Add(_newItemsList, objectView, -1);
// Tell any data binders that we've added an item to the view.
// Put it at the end of the list.
OnListChanged(ListChangedType.ItemAdded, _sourceIndices.Count - 1);
return objectView;
}
/// <summary>
/// Cancels the pending addition of a new item to the source list
/// and remove the item from the view.
/// </summary>
/// <param name="itemIndex">The index of the new item.</param>
public void CancelNew(int itemIndex)
{
// We must take special care that the item index does refer to the new item.
if (itemIndex > -1 && itemIndex < _sourceIndices.Count &&
_newItem != null && _sourceIndices[itemIndex].Key.Item == _newItem)
{
// We no longer need to listen to any events from the object.
UnHookPropertyChangedEvent(_newItem);
// Remove the item from the view.
_sourceIndices.RemoveAt(itemIndex);
// Data binders need to know the item has gone from the view.
OnListChanged(ListChangedType.ItemDeleted, itemIndex);
// Done with this adding operation, so clear the _newItem reference.
_newItem = null;
}
}
/// <summary>
/// Commits the pending addition of a new item to the source list.
/// </summary>
/// <param name="itemIndex">The index of the new item.</param>
public void EndNew(int itemIndex)
{
// The binding infrastructure tends to call the method
// more times than needed and often with itemIndex not even pointing to the
// new object! So we have to take special care to check.
if (itemIndex > -1 && itemIndex < _sourceIndices.Count &&
_newItem != null && _sourceIndices[itemIndex].Key.Item == _newItem)
{
// In order to reuse the SourceListChanged code for adding a new item
// we have to first remove all knowledge of the item, then add it
// to the source list.
// We no longer need to listen to any events from the object.
UnHookPropertyChangedEvent(_newItem);
// Remove the item from the view.
_sourceIndices.RemoveAt(itemIndex);
// Add the actual data object to the source list.
// The SourceListChanged event handler will take care of correctly inserting this
// object into the view (if newItemsList is a IBindingList).
_newItemsList.Add(_newItem.Object);
// If it is not an IBindingList (or not SupportsChangeNotification)
// then we must force the update ourselves.
if (!(_newItemsList is IBindingList) || !(_newItemsList as IBindingList).SupportsChangeNotification)
{
if (!_autoFilterAndSortSuspended)
{
FilterAndSort();
}
OnListChanged(ListChangedType.Reset, -1);
}
// Done with this adding operation, so clear the _newItem reference.
_newItem = null;
}
}
/// <summary>
/// Gets or sets the source list to which new items are added.
/// </summary>
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList NewItemsList
{
get
{
return _newItemsList;
}
set
{
if (value != null && !_sourceLists.Contains(value))
{
throw new ArgumentException(Properties.Resources.SourceListNotFound);
}
_newItemsList = value;
}
}
#endregion
/// <summary>
/// Re-applies any current filter and sorts to refresh the current view.
/// </summary>
public void Refresh()
{
FilterAndSort();
// Get any bound objects to refresh everything as well.
OnListChanged(ListChangedType.Reset, -1);
}
/// <summary>
/// Gets or sets the object used to marshal event-handler calls that are invoked on a non-UI thread.
/// </summary>
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public ISynchronizeInvoke SynchronizingObject
{
get
{
return _synchronizingObject;
}
set
{
_synchronizingObject = value;
}
}
public void SuspendAutoFilterAndSort()
{
_autoFilterAndSortSuspended = true;
}
public void ResumeAutoFilterAndSort()
{
_autoFilterAndSortSuspended = false;
}
/// <summary>
/// Updates the _sourceIndices list to contain the items that are current viewed
/// according to applied filter and sorts.
/// </summary>
protected void FilterAndSort()
{
// The view contains items from the source list
// and possibly a new items that are not yet committed.
// Therefore we can't just clear the list and start over
// as we would lose the new items. So we have to to insert
// filtered source list items into a new list first.
// New items can then be pulled out of the current view
// and appended to the new list.
MultiSourceIndexList<T> newList = new MultiSourceIndexList<T>();
// Get items from the source list that are included by the current filter.
foreach (IList sourceList in GetSourceLists())
{
for (int i = 0; i < sourceList.Count; i++)
{
T item = (T)sourceList[i];
ObjectView<T> editableObject;
if (_filter.Include(item))
{
if (_objectViewCache.ContainsKey(item))
{
editableObject = _objectViewCache[item];
}
else
{
editableObject = new ObjectView<T>(item, this);
_objectViewCache.Add(item, editableObject);
// Listen to the editing notification and property changed events.
HookEditableObjectEvents(editableObject);
HookPropertyChangedEvent(editableObject);
}
// Add the editable object along with the index of the item in the source list.
newList.Add(sourceList, editableObject, i);
}
else
{
if (_objectViewCache.ContainsKey(item))
{
editableObject = _objectViewCache[item];
UnHookEditableObjectEvents(editableObject);
UnHookPropertyChangedEvent(editableObject);
_objectViewCache.Remove(item);
}
}
}
}
// If we have sorts to apply, do them now
if (_comparer != null)
{
newList.Sort(_comparer);
}
// Now we can append any new items to the end of the view.
foreach (KeyValuePair<ListItemPair<T>, int> kvp in _sourceIndices)
{
// New items have a source list index of -1 since they are not
// yet in the source list.
if (kvp.Value == -1)
{
newList.Add(kvp);
}
}
// Set our view now
_sourceIndices = newList;
// Note: We do not raise the ListChanged event with ListChangeType.Reset
// since the view may not have changed that much. It is better to let
// the calling code decide what has happened and raise events accordingly.
}
#region Editing Items Event Handlers
/// <remarks>
/// Currently unused. Here in case we want to perform actions when
/// an item edit begins.
/// </remarks>
protected virtual void BegunItemEdit(object sender, EventArgs e)
{
}
/// <remarks>
/// Currently unused. Here in case we want to perform actions when
/// an item edit is cancelled.
/// </remarks>
protected virtual void CancelledItemEdit(object sender, EventArgs e)
{
}
/// <summary>
/// Handles the <see cref="ObjectView<T>"/> EndedEdit event.
/// </summary>
/// <param name="sender">The <see cref="ObjectView<T>"/> that raised the event.</param>
protected virtual void EndedItemEdit(object sender, EventArgs e)
{
if (_autoFilterAndSortSuspended)
{
return;
}
ObjectView<T> editableObject = (ObjectView<T>)sender;
// Check if filtering removed the item from view
// by getting the index before and after
int oldIndex = _sourceIndices.IndexOfItem(editableObject.Object);
FilterAndSort();
int newIndex = _sourceIndices.IndexOfItem(editableObject.Object);
// if item was filtered out then the newIndex == -1
if (newIndex > -1)
{
if (oldIndex == newIndex)
{
OnListChanged(ListChangedType.ItemChanged, newIndex);
}
else
{
OnListChanged(ListChangedType.ItemMoved, newIndex, oldIndex);
}
}
else
{
OnListChanged(ListChangedType.ItemDeleted, oldIndex);
}
}
#endregion
/// <summary>
/// Event handler for when SourceLists is changed.
/// </summary>
protected virtual void SourceListsChanged(object sender, ListChangedEventArgs e)
{
if (e.ListChangedType == ListChangedType.ItemAdded)
{
IList list = SourceLists[e.NewIndex] as IList;
if (list == null)
{
SourceLists.RemoveAt(e.NewIndex);
throw new InvalidSourceListException();
}
if (list is IBindingList)
{
// We need to know when the source list changes
(list as IBindingList).ListChanged += new ListChangedEventHandler(SourceListChanged);
}
_savedSourceLists.Add(list);
if (!_autoFilterAndSortSuspended)
{
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
else if (e.ListChangedType == ListChangedType.ItemDeleted)
{
IList list = _savedSourceLists[e.NewIndex] as IList;
if (list != null)
{
if (list is IBindingList)
{
(list as IBindingList).ListChanged -= new ListChangedEventHandler(SourceListChanged);
}
_savedSourceLists.RemoveAt(e.NewIndex);
if (!_autoFilterAndSortSuspended)
{
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
}
else if (e.ListChangedType == ListChangedType.Reset)
{
BuildSavedList();
if (!_autoFilterAndSortSuspended)
{
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
}
/// <summary>
/// Event handler for when a source list changes.
/// </summary>
private void SourceListChanged(object sender, ListChangedEventArgs e)
{
if (_autoFilterAndSortSuspended)
{
return;
}
int oldIndex;
int newIndex;
IBindingList sourceList = sender as IBindingList;
switch (e.ListChangedType)
{
case ListChangedType.ItemAdded:
FilterAndSort();
// Get the index of the newly sorted item
newIndex = _sourceIndices.IndexOfSourceIndex(sourceList, e.NewIndex);
if (newIndex > -1)
{
OnListChanged(ListChangedType.ItemAdded, newIndex);
// Other items have moved down the list
for (int i = newIndex + 1; i < Count; i++)
{
OnListChanged(ListChangedType.ItemMoved, i - 1, i);
}
}
else
{
// The item was excluded by the filter,
// so to the viewer the item has been "deleted".
// The new item will have been added at the end of the view
OnListChanged(ListChangedType.ItemDeleted, Math.Max(Count - 1, 0));
}
break;
case ListChangedType.ItemChanged:
// Check if filtering will remove the item from view
// by getting the index before and after
oldIndex = _sourceIndices.IndexOfSourceIndex(sourceList, e.NewIndex);
// Is the object in our view?
if (oldIndex < 0)
{
return;
}
FilterAndSort();
newIndex = _sourceIndices.IndexOfSourceIndex(sourceList, e.NewIndex);
// if item was filtered out then the newIndex == -1
// otherwise we can say that the item was changed.
if (newIndex > -1)
{
if (newIndex == oldIndex)
{
OnListChanged(ListChangedType.ItemChanged, newIndex);
}
else
{
// Two items will have changed places
OnListChanged(ListChangedType.ItemMoved, newIndex, oldIndex);
}
}
else
{
OnListChanged(ListChangedType.ItemDeleted, oldIndex);
}
break;
case ListChangedType.ItemDeleted:
// Find the deleted index
newIndex = _sourceIndices.IndexOfSourceIndex(sourceList, e.NewIndex);
// Did we have the object in our view?
if (newIndex < 0)
{
return;
}
// Stop listening to it's events
UnHookEditableObjectEvents(_sourceIndices[newIndex].Key.Item);
UnHookPropertyChangedEvent(_sourceIndices[newIndex].Key.Item);
// Remove its index
_sourceIndices.RemoveAt(newIndex);
// Move up indices after removed item
for (int i = 0; i < _sourceIndices.Count; i++)
{
if (_sourceIndices[i].Value > e.NewIndex)
{
_sourceIndices[i] = new KeyValuePair<ListItemPair<T>, int>(_sourceIndices[i].Key, _sourceIndices[i].Value - 1);
}
}
// Inform listeners that an item has been deleted from this view
OnListChanged(ListChangedType.ItemDeleted, newIndex);
break;
case ListChangedType.ItemMoved:
if (!IsSorted && (Filter is IncludeAllItemFilter<T>))
{
// We can move the item in the view
// note indicies match those in _sourceList
OnListChanged(ListChangedType.ItemMoved, e.NewIndex, e.OldIndex);
}
// Otherwise it makes no sense to move due to sort and/or filter
break;
case ListChangedType.Reset:
// Most of the source list has changed
// so re-sort and filter
FilterAndSort();
// The view is most likely to have changed lots as well
OnListChanged(ListChangedType.Reset, -1);
break;
}
}
/// <summary>
/// Event handler for when an item in the view changes.
/// </summary>
/// <param name="sender">The item that changed.</param>
private void ItemPropertyChanged(object sender, PropertyChangedEventArgs e)
{
// The changed item may not actually be present in the view
int index = _sourceIndices.IndexOfItem((T)sender);
// Test the returned index, -1 => not in the view.
if (index > -1)
{
// Tell listeners that an item has changed.
// This is inline with the IRaiseItemChangedEvents implementation.
OnListChanged(ListChangedType.ItemChanged, index);
}
}
#region ListChanged Event
/// <summary>
/// Occurs when the list changes or an item in the list changes.
/// </summary>
public event ListChangedEventHandler ListChanged;
/// <summary>
/// Raises the ListChanged event with the given event arguments.
/// </summary>
/// <param name="e">The ListChangedEventArgs to raise the event with.</param>
protected virtual void OnListChanged(ListChangedEventArgs e)
{
if (ListChanged != null)
{
// Check if we need to invoke on the UI thread or not
if (SynchronizingObject != null && SynchronizingObject.InvokeRequired)
{
SynchronizingObject.Invoke(ListChanged, new object[] { this, e });
}
else
{
ListChanged(this, e);
}
}
}
/// <summary>
/// Helper method to build the ListChangedEventArgs needed for the ListChanged event.
/// </summary>
/// <param name="listChangedType">The type of change that occured.</param>
/// <param name="newIndex">The index of the changed item.</param>
private void OnListChanged(ListChangedType listChangedType, int newIndex)
{
OnListChanged(new ListChangedEventArgs(listChangedType, newIndex));
}
/// <summary>
/// Helper method to build the ListChangedEventArgs needed for the ListChanged event.
/// </summary>
/// <param name="listChangedType">The type of change that occured.</param>
/// <param name="newIndex">The index of the item after the change.</param>
/// <param name="oldIndex">The index of the iem before the change.</param>
private void OnListChanged(ListChangedType listChangedType, int newIndex, int oldIndex)
{
OnListChanged(new ListChangedEventArgs(listChangedType, newIndex, oldIndex));
}
#endregion
#region Filtering
public void ApplyFilter(IItemFilter<T> filter)
{
Filter = filter;
}
public void ApplyFilter(Predicate<T> includeItem)
{
if (includeItem == null)
{
throw new ArgumentNullException("includeItem", Properties.Resources.IncludeDelegateCannotBeNull);
}
Filter = AggregateBindingListView<T>.CreateItemFilter(includeItem);
}
/// <summary>
/// Gets if this view supports filtering of items. Always returns true.
/// </summary>
bool IBindingListView.SupportsFiltering
{
get { return true; }
}
/// <remarks>Explicitly implemented to expose the stronger Filter property instead.</remarks>
string IBindingListView.Filter
{
get
{
return Filter.ToString();
}
set
{
throw new NotSupportedException("Cannot set filter from string expression.");
//TODO: Re-instate this line once we have an expression filter
//Filter = new ExpressionItemFilter<T>(value);
}
}
/// <summary>
/// Gets or sets the filter currently applied to the view.
/// </summary>
public IItemFilter<T> Filter
{
get
{
return _filter;
}
set
{
// Do not allow a null filter. Instead, use the "include all items" filter.
if (value == null) value = IncludeAllItemFilter<T>.Instance;
if (_filter != value)
{
_filter = value;
FilterAndSort();
// The list has probably changed a lot, so get bound controls to reset.
OnListChanged(ListChangedType.Reset, -1);
}
}
}
private bool ShouldSerializeFilter()
{
return (Filter != IncludeAllItemFilter<T>.Instance);
}
public static IItemFilter<T> CreateItemFilter(Predicate<T> predicate)
{
if (predicate == null)
{
throw new ArgumentNullException("predicate");
}
return new PredicateItemFilter<T>(predicate);
}
// Function for LINQ style filtering
// e.g. SetFilter(i => i.Items.Count < 42)
/*
public static void ApplyFilter(Func<T, bool> predicate)
{
if (predicate == null)
{
throw new ArgumentNullException("predicate");
}
return new FuncItemFilter<T>(predicate);
}
// Class to wrap a LINQ Func delegate and expose
// it as an IItemFilter.
private class FuncItemFilter<T> : IItemFilter<T>
{
private Func<T, bool> _func;
public FuncItemFilter(Func<T, bool> func)
{
_func = func;
}
public bool Include(T item)
{
return _func(item);
}
}
*/
/// <summary>
/// Removes any currently applied filter so that all items are displayed by the view.
/// </summary>
public void RemoveFilter()
{
// Set filter back to including all items.
Filter = IncludeAllItemFilter<T>.Instance;
}
#endregion
#region Sorting
/// <summary>
/// Used to signal that a sort on a property is to be descending, not ascending.
/// </summary>
public readonly string SortDescendingModifier = "DESC";
/// <summary>
/// The character used to seperate sorts by multiple properties.
/// </summary>
public readonly char SortDelimiter = ',';
/// <summary>
/// Gets if this view supports sorting. Always returns true.
/// </summary>
bool IBindingList.SupportsSorting
{
get { return true; }
}
/// <summary>
/// Gets if this view supports advanced sorting. Always returns true.
/// </summary>
bool IBindingListView.SupportsAdvancedSorting
{
get { return true; }
}
/// <summary>
/// Sorts the view by a single property in a given direction.
/// This will remove any existing sort.
/// </summary>
/// <param name="property">A property of <typeparamref name="T"/> to sort by.</param>
/// <param name="direction">The direction to sort in.</param>
public void ApplySort(PropertyDescriptor property, ListSortDirection direction)
{
// Apply sort by setting the current sort descriptions
// to be a collection containing just one SortDescription.
SortDescriptions = new ListSortDescriptionCollection(
new ListSortDescription[] {
new ListSortDescription(property, direction)});
}
/// <summary>
/// Sorts the view by the given collection of sort descriptions.
/// </summary>
/// <param name="sorts">The sorts to apply.</param>
public void ApplySort(ListSortDescriptionCollection sorts)
{
SortDescriptions = sorts;
}
/// <summary>
/// Sorts the view according to the properties and directions given in the
/// SQL style sort parameter.
/// </summary>
/// <param name="sort">
/// The SQL ORDER BY clause style sort.
/// A comma separated list of properties to sort by.
/// Use "DESC" after a property name to sort descending.
/// The default direction is ascending.
/// </param>
/// <example><code>view.ApplySort("Surname, FirstName, Age DESC");</code></example>
public void ApplySort(string sort)
{
if (string.IsNullOrEmpty(sort))
{
RemoveSort();
return;
}
// Parse string for sort descriptions
string[] sorts = sort.Split(SortDelimiter);
ListSortDescription[] col = new ListSortDescription[sorts.Length];
for (int i = 0; i < sorts.Length; i++)
{
// Get the sort description.
// This will be a name optionally followed by a direction.
sort = sorts[i].Trim();
// A space will separate name from direction.
int pos = sort.IndexOf(' ');
string name;
ListSortDirection direction;
if (pos == -1)
{
// No direction specified, default to ascending.
name = sort;
direction = ListSortDirection.Ascending;
}
else
{
// Name is everything before the space.
name = sort.Substring(0, pos);
// direction is everything after the space.
string dir = sort.Substring(pos + 1).Trim();
// Check what kind of direction is specified.
// (Ignoring case and culture.)
if (string.Compare(dir, SortDescendingModifier, true, System.Globalization.CultureInfo.InvariantCulture) == 0)
{
direction = ListSortDirection.Descending;
}
else
{
// Default to ascending.
direction = ListSortDirection.Ascending;
}
}
// Put the sort description into the collection.
col[i] = CreateListSortDescription(name, direction);
}
ApplySort(new ListSortDescriptionCollection(col));
}
public void ApplySort(IComparer<T> comparer)
{
if (comparer == null)
{
throw new ArgumentNullException("comparer");
}
// Clear any current sorts
_sorts = new ListSortDescriptionCollection();
// Sort with this new comparer
_comparer = new ExternalSortComparer<T>(comparer);
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
public void ApplySort(Comparison<T> comparison)
{
if (comparison == null)
{
throw new ArgumentNullException("comparison");
}
// Clear any current sorts
_sorts = new ListSortDescriptionCollection();
// Sort with this new comparer
_comparer = new ExternalSortComparison<T>(comparison);
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
/// <summary>
/// Removes any sort currently applied to the view, restoring it to the order of the source list.
/// </summary>
public void RemoveSort()
{
// An empty collection of sorts will achieve what we need.
SortDescriptions = new ListSortDescriptionCollection();
}
/// <summary>
/// Gets if the view is currently sorted.
/// </summary>
[Browsable(false)]
public bool IsSorted
{
get
{
// To be sorted there must be some sorts applied.
return (SortDescriptions.Count > 0);
}
}
/// <summary>
/// Gets or sets the string representation of the sort currently applied to the view.
/// </summary>
public string Sort
{
get
{
if (IsSorted)
{
// Build a string of the properties being sorted by
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (ListSortDescription sort in SortDescriptions)
{
sb.Append(sort.PropertyDescriptor.Name);
// Need to signal descending sorts
if (sort.SortDirection == ListSortDirection.Descending)
{
sb.Append(' ').Append(SortDescendingModifier);
}
// Separate by SortDelimiter
sb.Append(SortDelimiter);
}
// Remove trailing SortDelimiter
sb.Remove(sb.Length - 1, 1);
// Return the string
return sb.ToString();
}
return string.Empty;
}
set
{
ApplySort(value);
}
}
private bool ShouldSerializeSort()
{
return !String.IsNullOrEmpty(Sort);
}
/// <summary>
/// Gets the direction in which the view is sorted.
/// If more than one sort is applied, the direction of the first is returned.
/// </summary>
[Browsable(false)]
public ListSortDirection SortDirection
{
get
{
if (IsSorted)
{
return SortDescriptions[0].SortDirection;
}
else
{
// We don't really want to throw exceptions.
// Calling code should have checked IsSorted to know the true situation.
return ListSortDirection.Ascending;
}
}
}
/// <summary>
/// Gets the property the view is currently sorted by.
/// If more than one sort is applied, the property of the first is returned.
/// </summary>
[Browsable(false)]
public PropertyDescriptor SortProperty
{
get
{
if (IsSorted)
{
return SortDescriptions[0].PropertyDescriptor;
}
else
{
// We don't really want to throw exceptions.
// Calling code should have checked IsSorted to know the true situation.
return null;
}
}
}
/// <summary>
/// Gets the sorts currently applied to the view.
/// </summary>
[Browsable(false)]
public ListSortDescriptionCollection SortDescriptions
{
get
{
return _sorts;
}
private set
{
_sorts = value;
_comparer = new SortComparer(value);
FilterAndSort();
// Most of the list will have probably changed, so get bound objects to reset.
OnListChanged(ListChangedType.Reset, -1);
}
}
/// <summary>
/// Used to compare items in the view when sorting the _sourceIndices list.
/// It supports mutliple sorts by different properties and directions.
/// </summary>
private class SortComparer : IComparer<KeyValuePair<ListItemPair<T>, int>>
{
private Dictionary<ListSortDescription, Comparison<T>> _comparisons;
/// <summary>
/// Creates a new SortComparer that will use the given sorts.
/// </summary>
/// <param name="sorts">The sorts to apply to the view.</param>
public SortComparer(ListSortDescriptionCollection sorts)
{
_sorts = sorts;
// Build the delegates used to compare properties of objects
_comparisons = new Dictionary<ListSortDescription, Comparison<T>>();
foreach (ListSortDescription sort in sorts)
{
_comparisons[sort] = BuildComparison(sort.PropertyDescriptor.Name, sort.SortDirection);
}
}
private ListSortDescriptionCollection _sorts;
/// <summary>
/// Compares two items according to the defined sorts.
/// </summary>
/// <remarks>
/// Use of light-weight code generation comparison delegates gives ~10x speed up
/// compared to the pure reflection based implementation.
/// </remarks>
/// <param name="x">The first item to compare.</param>
/// <param name="y">The second item to compare.</param>
/// <returns>-1 if x < y, 0 if x = y and 1 if x > y.</returns>
public int Compare(KeyValuePair<ListItemPair<T>, int> x, KeyValuePair<ListItemPair<T>, int> y)
{
foreach (ListSortDescription sort in _sorts)
{
int result = _comparisons[sort](x.Key.Item.Object, y.Key.Item.Object);
if (result != 0)
{
return result;
}
}
return 0;
}
private static Comparison<T> BuildComparison(string propertyName, ListSortDirection direction)
{
PropertyInfo pi = typeof(T).GetProperty(propertyName);
Debug.Assert(pi != null, string.Format("Property '{0}' is not a member of type '{1}'", propertyName, typeof(T).FullName));
Type pType = pi.PropertyType;
bool isNullable = pi.PropertyType.IsGenericType && pi.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>);
if (isNullable)
pType = pi.PropertyType.GetGenericArguments()[0];
if (typeof(IComparable).IsAssignableFrom(pType))
{
if (pType.IsValueType && !isNullable)
{
return delegate (T x, T y)
{
int result = (pi.GetValue(x, null) as IComparable).CompareTo(pi.GetValue(y, null));
if (direction == ListSortDirection.Descending)
result *= -1;
return result;
};
}
else
{
return delegate (T x, T y)
{
int result;
object value1 = pi.GetValue(x, null);
object value2 = pi.GetValue(y, null);
if (value1 != null && value2 != null)
result = (value1 as IComparable).CompareTo(value2);
else if (value1 == null && value2 != null)
result = -1;
else if (value1 != null && value2 == null)
result = 1;
else
result = 0;
if (direction == ListSortDirection.Descending)
result *= -1;
return result;
};
}
}
else
{
return delegate (T o1, T o2)
{
int result;
if (o1.Equals(o2))
result = 0;
else
result = o1.ToString().CompareTo(o2.ToString());
if (direction == ListSortDirection.Descending)
result *= -1;
return result;
};
}
}
}
private class ExternalSortComparer<U> : IComparer<KeyValuePair<ListItemPair<U>, int>>
{
public ExternalSortComparer(IComparer<U> comparer)
{
_comparer = comparer;
}
private IComparer<U> _comparer;
public int Compare(KeyValuePair<ListItemPair<U>, int> x, KeyValuePair<ListItemPair<U>, int> y)
{
return _comparer.Compare(x.Key.Item.Object, y.Key.Item.Object);
}
}
private class ExternalSortComparison<U> : IComparer<KeyValuePair<ListItemPair<U>, int>>
{
public ExternalSortComparison(Comparison<U> comparison)
{
_comparison = comparison;
}
private Comparison<U> _comparison;
public int Compare(KeyValuePair<ListItemPair<U>, int> x, KeyValuePair<ListItemPair<U>, int> y)
{
return _comparison(x.Key.Item.Object, y.Key.Item.Object);
}
}
#endregion
#region Searching
/// <summary>
/// Gets if this view supports searching using the Find method. Always returns true.
/// </summary>
bool IBindingList.SupportsSearching
{
get { return true; }
}
/// <summary>
/// Returns the index of the first item in the view who's property equals the given value.
/// -1 is returned if no item is found.
/// </summary>
/// <param name="property">The property of each item to check.</param>
/// <param name="key">The value being sought.</param>
/// <returns>The index of the item, or -1 if not found.</returns>
public int Find(PropertyDescriptor property, object key)
{
for (int i = 0; i < _sourceIndices.Count; i++)
{
if (property.GetValue(_sourceIndices[i].Key.Item.Object).Equals(key))
{
return i;
}
}
return -1;
}
/// <summary>
/// Returns the index of the first item in the view who's property equals the given value.
/// -1 is returned if no item is found.
/// </summary>
/// <param name="property">The property name of each item to check.</param>
/// <param name="key">The value being sought.</param>
/// <returns>The index of the item, or -1 if not found.</returns>
/// <remarks>
/// It is easier for users of this class to enter a property name
/// and get the PropertyDescriptor ourselves.
/// </remarks>
public int Find(string propertyName, object key)
{
PropertyDescriptor pd = GetPropertyDescriptor(propertyName);
if (pd != null)
{
return Find(pd, key);
}
else
{
throw new ArgumentException(string.Format(Properties.Resources.PropertyNotFound, propertyName, typeof(T).FullName), "propertyName");
}
}
#endregion
#region IBindingList Members
/// <summary>
/// Gets if this view raises the ListChanged event. Always returns true.
/// </summary>
bool IBindingList.SupportsChangeNotification
{
get { return true; }
}
/// <remarks>Explicitly implemented so the type safe AddNew method is exposed instead.</remarks>
object IBindingList.AddNew()
{
return this.AddNew();
}
/// <summary>
/// Gets if this view allows items to be edited.
/// </summary>
/// <remarks>Delegates to the source list.</remarks>
bool IBindingList.AllowEdit
{
get
{
foreach (object list in SourceLists)
{
if (list is IBindingList)
{
if (!(list as IBindingList).AllowEdit)
{
return false;
}
}
}
return true;
}
}
/// <summary>
/// Gets if this view allows new items to be added using AddNew().
/// </summary>
/// <remarks>Delegates to the source list.</remarks>
bool IBindingList.AllowNew
{
get
{
if (_newItemsList != null)
{
if (_newItemsList is IBindingList)
{
// Respect what the binding list says.
return (_newItemsList as IBindingList).AllowNew;
}
// _newItemsList is a IList, so we can call Add()
// it may fail at runtime - but that is the callee's problem
return true;
}
return false;
}
}
/// <summary>
/// Gets if this view allows items to be removed.
/// </summary>
/// <remarks>Delegates to the source list.</remarks>
bool IBindingList.AllowRemove
{
get
{
foreach (object list in SourceLists)
{
if (list is IBindingList)
{
if (!(list as IBindingList).AllowRemove)
{
return false;
}
}
}
return true;
}
}
/// <summary>
/// Not implemented.
/// </summary>
/// <exception cref="System.NotImplementedException">Method not implemented.</exception>
void IBindingList.AddIndex(PropertyDescriptor property)
{
throw new NotImplementedException();
}
/// <summary>
/// Not implemented.
/// </summary>
/// <exception cref="System.NotImplementedException">Method not implemented.</exception>
void IBindingList.RemoveIndex(PropertyDescriptor property)
{
throw new NotImplementedException();
}
#endregion
#region IRaiseItemChangedEvents Members
/// <summary>
/// Gets if this view raises the ListChanged event when an item changes. Always returns true.
/// </summary>
[Browsable(false)]
public bool RaisesItemChangedEvents
{
get { return true; }
}
#endregion
#region IList Members
/// <exception cref="System.ArgumentException">
/// value is of the wrong type.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <see cref="NewItemsList"/> is null, so an item cannot be added.
/// </exception>
int IList.Add(object value)
{
if (value == null)
{
AddNew();
return Count - 1;
}
throw new NotSupportedException(Properties.Resources.CannotAddItem);
}
/// <summary>
/// Cannot clear this view.
/// </summary>
/// <exception cref="System.ArgumentException">
/// Cannot clear this view.
/// </exception>
void IList.Clear()
{
throw new NotSupportedException(Properties.Resources.CannotClearView);
}
/// <summary>
/// Checks if this view contains the given item.
/// Note that items excluded by current filter are not searched.
/// </summary>
/// <param name="item">The item to search for.</param>
/// <returns>True if the item is in the view, else false.</returns>
bool IList.Contains(object item)
{
// See if the source indices contain the item
if (item is ObjectView<T>)
{
return _sourceIndices.ContainsKey((ObjectView<T>)item);
}
else if (item is T)
{
return _sourceIndices.ContainsItem((T)item);
}
else
{
return false;
}
}
/// <summary>
/// Gets the index in the view of an item.
/// </summary>
/// <param name="item">The item to search for</param>
/// <returns>The index of the item, or -1 if not found.</returns>
int IList.IndexOf(object item)
{
if (item is ObjectView<T>)
{
return _sourceIndices.IndexOfKey(item as ObjectView<T>);
}
else if (item is T)
{
return _sourceIndices.IndexOfItem((T)item);
}
return -1;
}
/// <summary>
/// Cannot insert an external item into this collection.
/// </summary>
/// <exception cref="System.ArgumentException">
/// Cannot insert an external item into this collection.
/// </exception>
void IList.Insert(int index, object value)
{
throw new NotSupportedException(Properties.Resources.CannotInsertItem);
}
/// <summary>
/// Gets a value indicating if this view is read-only.
/// </summary>
/// <remarks>Delegates to the source list.</remarks>
bool IList.IsReadOnly
{
get
{
foreach (object list in SourceLists)
{
if (list is IBindingList)
{
if (!(list as IBindingList).IsReadOnly)
{
return false;
}
}
else
{
return false;
}
}
return true;
}
}
/// <summary>
/// Always returns <code>false</code> because the view can change size when
/// source lists are added.
/// </summary>
bool IList.IsFixedSize
{
get
{
return false;
}
}
/// <summary>
/// Removes the given item from the view and underlying source list.
/// </summary>
/// <param name="value">Either an ObjectView<T> or T to remove.</param>
void IList.Remove(object value)
{
int index = (this as IList).IndexOf(value);
(this as IList).RemoveAt(index);
}
/// <summary>
/// Removes the item from the view at the given index.
/// </summary>
/// <param name="index">The index of the item to remove.</param>
void IList.RemoveAt(int index)
{
// Get the index in the source list.
int sourceIndex = _sourceIndices[index].Value;
IList sourceList = _sourceIndices[index].Key.List;
if (sourceIndex > -1)
{
sourceList.RemoveAt(sourceIndex);
if (!(sourceList is IBindingList) || !(sourceList as IBindingList).SupportsChangeNotification)
{
FilterAndSort();
OnListChanged(ListChangedType.Reset, -1);
}
}
else
{
// The item is not in the source list yet as it is new
// So cancel the new operation instead.
CancelNew(index);
}
}
/// <summary>
/// Gets the <see cref="ObjectView<T>"/> at the given index.
/// </summary>
/// <param name="index">The index of the item to retrieve.</param>
/// <returns>An <see cref="ObjectView<T>"/> object.</returns>
/// <exception cref="System.NotSupportException">
/// Cannot set an item in the view.
/// </exception>
object IList.this[int index]
{
get
{
return this[index];
}
set
{
// The interface requires we supply a setter
// But we don't want external code modifying the view
// in this manner.
throw new NotSupportedException(Properties.Resources.CannotSetItem);
}
}
#endregion
#region ICollection Members
/// <summary>
/// Copies the <see cref="ObjectView<T>"/> objects of the view to an <see cref="System.Array"/>, starting at a particular System.Array index.
/// </summary>
/// <param name="array">The one-dimensional <see cref="System.Array"/> that is the destination of the elements copied from view. The System.Array must have zero-based indexing.</param>
/// <param name="index">The zero-based index in array at which copying begins. </param>
void ICollection.CopyTo(Array array, int index)
{
_sourceIndices.Keys.CopyTo(array, index);
}
/// <summary>
/// Gets a value indicating whether access to the <see cref="System.Collections.ICollection" /> is synchronized (thread safe).
/// </summary>
bool ICollection.IsSynchronized
{
get { return false; }
}
/// <summary>
/// Not supported.
/// </summary>
object ICollection.SyncRoot
{
get { throw new NotSupportedException(Properties.Resources.SyncAccessNotSupported); }
}
/// <summary>
/// Gets the number of items currently in the view. This does not include those items
/// excluded by the current filter.
/// </summary>
[Browsable(false)]
public int Count
{
get { return _sourceIndices.Count; }
}
#endregion
#region IEnumerable<T> Members
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
for (int i = 0; i < _sourceIndices.Count; i++)
yield return _sourceIndices[i].Key.Item.Object;
}
/// <summary>
/// Returns an enumerator that iterates through all the <see cref="ObjectView<T>"/> items in the view.
/// This does not include those items excluded by the current filter.
/// </summary>
/// <returns>An IEnumerator to iterate with.</returns>
IEnumerator IEnumerable.GetEnumerator()
{
return _sourceIndices.GetKeyEnumerator();
}
#endregion
#region ITypedList Members
/// <summary>
/// Returns the <see cref="System.ComponentModel.PropertyDescriptorCollection"/> that represents the properties on each item used to bind data.
/// </summary>
/// <param name="listAccessors">Array of property descriptors to navigate object hirerachy to actual item object. It can be null.</param>
/// <returns>The System.ComponentModel.PropertyDescriptorCollection that represents the properties on each item used to bind data.</returns>
PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors)
{
PropertyDescriptorCollection originalProps;
IEnumerator<IList> lists = GetSourceLists().GetEnumerator();
if (lists.MoveNext() && lists.Current is ITypedList)
{
// Ask the source list for the properties.
originalProps = (lists.Current as ITypedList).GetItemProperties(listAccessors);
}
else
{
// Get the properties ourself.
originalProps = System.Windows.Forms.ListBindingHelper.GetListItemProperties(typeof(T), listAccessors);
}
if (listAccessors != null && listAccessors.Length > 0)
{
Type type = originalProps[0].ComponentType;
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(ObjectView<>))
{
originalProps = originalProps[0].GetChildProperties();
}
}
List<PropertyDescriptor> newProps = new List<PropertyDescriptor>();
foreach (PropertyDescriptor pd in AddProvidedViews(originalProps))
{
newProps.Add(pd);
}
return new PropertyDescriptorCollection(newProps.ToArray());
}
protected internal bool ShouldProvideView(PropertyDescriptor property)
{
return ProvidedViewPropertyDescriptor.CanProvideViewOf(property);
}
protected internal string GetProvidedViewName(PropertyDescriptor sourceListProperty)
{
return sourceListProperty.Name + "View";
}
protected internal object CreateProvidedView(ObjectView<T> @object, PropertyDescriptor sourceListProperty)
{
object list = sourceListProperty.GetValue(@object);
Type viewType = GetProvidedViewType(sourceListProperty);
return Activator.CreateInstance(viewType, list);
}
private static Type GetProvidedViewType(PropertyDescriptor sourceListProperty)
{
// The source list property type implements IList<X>.
// We want to get the type of X.
Type typeParam = null;
foreach (Type interfaceType in sourceListProperty.PropertyType.GetInterfaces())
{
if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition().Equals(typeof(IList<>)))
{
typeParam = interfaceType.GetGenericArguments()[0];
}
}
Debug.Assert(typeParam != null, "Did not get the generic argument for type " + sourceListProperty.PropertyType.FullName);
// Now build the BindingListView<X> type.
Type viewTypeDef = typeof(BindingListView<>);
Type viewType = viewTypeDef.MakeGenericType(typeParam);
return viewType;
}
internal IEnumerable<PropertyDescriptor> AddProvidedViews(PropertyDescriptorCollection properties)
{
if (properties.Count < 0)
{
yield break;
}
foreach (PropertyDescriptor prop in properties)
{
if (ShouldProvideView(prop))
{
string name = GetProvidedViewName(prop);
yield return new ProvidedViewPropertyDescriptor(name, GetProvidedViewType(prop));
}
yield return prop;
}
}
/// <summary>
/// Gets the name of the view.
/// </summary>
/// <param name="listAccessors">Unused. Can be null.</param>
/// <returns>The name of the view.</returns>
string ITypedList.GetListName(PropertyDescriptor[] listAccessors)
{
return GetType().Name;
}
#endregion
#region Helper Methods
/// <summary>
/// Creates a new <see cref="System.ComponentModel.ListSortDescription"/> for given property name and sort direction.
/// </summary>
/// <param name="propertyName">The name of the property to sort by.</param>
/// <param name="direction">The direction in which to sort.</param>
/// <returns>A ListSortDescription.</returns>
/// <remarks>
/// Used by external code to simplify sorting the view.
/// </remarks>
public ListSortDescription CreateListSortDescription(string propertyName, ListSortDirection direction)
{
PropertyDescriptor pd = GetPropertyDescriptor(propertyName);
if (pd == null)
{
throw new ArgumentException(string.Format(Properties.Resources.PropertyNotFound, propertyName, typeof(T).FullName), "propertyName");
}
return new ListSortDescription(pd, direction);
}
/// <summary>
/// Gets the property descriptor for a given property name.
/// </summary>
/// <param name="propertyName">The name of a property of <typeparamref name="T"/>.</param>
/// <returns>The <see cref="System.ComponentModel.PropertyDescriptor"/>.</returns>
private PropertyDescriptor GetPropertyDescriptor(string propertyName)
{
return TypeDescriptor.GetProperties(typeof(T)).Find(propertyName, false);
}
/// <summary>
/// Attaches event handlers to the given <see cref="ObjectView<T>"/>'s
/// edit life cycle notification events.
/// </summary>
/// <param name="objectView">The <see cref="ObjectView<T>"/> to listen to.</param>
private void HookEditableObjectEvents(ObjectView<T> editableObject)
{
editableObject.EditBegun += new EventHandler(BegunItemEdit);
editableObject.EditCancelled += new EventHandler(CancelledItemEdit);
editableObject.EditEnded += new EventHandler(EndedItemEdit);
}
/// <summary>
/// Detaches event handlers from the given <see cref="ObjectView<T>"/>'s
/// edit life cycle notification events.
/// </summary>
/// <param name="objectView">The <see cref="ObjectView<T>"/> to stop listening to.</param>
private void UnHookEditableObjectEvents(ObjectView<T> editableObject)
{
editableObject.EditBegun -= new EventHandler(BegunItemEdit);
editableObject.EditCancelled -= new EventHandler(CancelledItemEdit);
editableObject.EditEnded -= new EventHandler(EndedItemEdit);
}
/// <summary>
/// Attaches an event handler to the <see cref="ObjectView<T>"/>'s PropertyChanged event.
/// </summary>
/// <param name="objectView">The <see cref="ObjectView<T>"/> to listen to.</param>
private void HookPropertyChangedEvent(ObjectView<T> editableObject)
{
editableObject.PropertyChanged += new PropertyChangedEventHandler(ItemPropertyChanged);
}
/// <summary>
/// Detaches the event handler from the <see cref="ObjectView<T>"/>'s PropertyChanged event.
/// </summary>
/// <param name="objectView">The <see cref="ObjectView<T>"/> to stop listening to.</param>
private void UnHookPropertyChangedEvent(ObjectView<T> editableObject)
{
editableObject.PropertyChanged -= new PropertyChangedEventHandler(ItemPropertyChanged);
}
private void BuildSavedList()
{
_savedSourceLists.Clear();
foreach (object list in GetSourceLists())
{
_savedSourceLists.Add(list as IList);
}
}
protected IEnumerable<IList> GetSourceLists()
{
foreach (object obj in _sourceLists)
{
if (!string.IsNullOrEmpty(DataMember))
{
bool found = false;
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(obj))
{
if (pd.Name == DataMember)
{
found = true;
yield return pd.GetValue(obj) as IList;
break;
}
}
if (!found)
{
yield return null;
}
}
else if (obj is IListSource)
{
IListSource src = obj as IListSource;
if (src.ContainsListCollection)
{
IList list = src.GetList() as IList;
if (list != null && list.Count > 0)
{
list = list[0] as IList;
yield return list;
}
else
{
yield return null;
}
}
else
{
yield return src.GetList();
}
}
else
{
yield return obj as IList;
}
}
}
#endregion
}
}
================================================
FILE: BindingListView/BindingListView.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
namespace Equin.ApplicationFramework
{
/// <summary>
/// A searchable, sortable, filterable, data bindable view of a list of objects.
/// </summary>
/// <typeparam name="T">The type of object in the list.</typeparam>
public class BindingListView<T> : AggregateBindingListView<T>
{
/// <summary>
/// Creates a new <see cref="BindingListView<T>"/> of a given IBindingList.
/// All items in the list must be of type <typeparamref name="T"/>.
/// </summary>
/// <param name="list">The list of objects to base the view on.</param>
public BindingListView(IList list)
: base()
{
DataSource = list;
}
public BindingListView(IContainer container)
: base(container)
{
DataSource = null;
}
[DefaultValue(null)]
[AttributeProvider(typeof(IListSource))]
public IList DataSource
{
get
{
IEnumerator<IList> e = GetSourceLists().GetEnumerator();
e.MoveNext();
return e.Current;
}
set
{
if (value == null)
{
// Clear all current data
SourceLists = new BindingList<IList<T>>();
NewItemsList = null;
FilterAndSort();
OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
return;
}
if (!(value is ICollection<T>))
{
// list is not a strongy-type collection.
// Check that items in list are all of type T
foreach (object item in value)
{
if (!(item is T))
{
throw new ArgumentException(string.Format(Properties.Resources.InvalidListItemType, typeof(T).FullName), "DataSource");
}
}
}
SourceLists = new object[] { value };
NewItemsList = value;
}
}
private bool ShouldSerializeDataSource()
{
return (SourceLists.Count > 0);
}
protected override void SourceListsChanged(object sender, ListChangedEventArgs e)
{
if ((SourceLists.Count > 1 && e.ListChangedType == ListChangedType.ItemAdded) || e.ListChangedType == ListChangedType.ItemDeleted)
{
throw new Exception("BindingListView allows strictly one source list.");
}
else
{
base.SourceListsChanged(sender, e);
}
}
}
}
================================================
FILE: BindingListView/BindingListView.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{75AF36A8-7797-4023-B183-5B63D448420A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Equin.ApplicationFramework</RootNamespace>
<AssemblyName>Equin.ApplicationFramework.BindingListView</AssemblyName>
<StartupObject>
</StartupObject>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AggregateBindingListView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BindingListView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CompositeItemFilter.cs" />
<Compile Include="ObjectView.cs" />
<Compile Include="IItemFilter.cs" />
<Compile Include="INotifyingEditableObject.cs" />
<Compile Include="InvalidSourceListException.cs" />
<Compile Include="MultiSourceIndexList.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="ProvidedViewPropertyDescriptor.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
================================================
FILE: BindingListView/BindingListView.nuspec
================================================
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<licenseUrl>https://github.com/waynebloss/BindingListView/blob/master/license.txt</licenseUrl>
<projectUrl>https://github.com/waynebloss/BindingListView</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>$description$</summary>
<description>The BindingListView .NET library provides a type-safe, sortable, filterable, data-bindable view of one or more lists of objects. It is the business objects equivalent of using a DataView on a DataTable in ADO.NET. If you have a list of objects to display on a Windows Forms UI (e.g. in a DataGridView) and want to allow your user to sort and filter, then this is the library to use!</description>
<releaseNotes>Initial</releaseNotes>
<copyright>Copyright 2014</copyright>
<tags>.net IBindingListView winforms</tags>
</metadata>
</package>
================================================
FILE: BindingListView/CompositeItemFilter.cs
================================================
using System;
using System.Collections.Generic;
namespace Equin.ApplicationFramework
{
public class CompositeItemFilter<T> : IItemFilter<T>
{
private List<IItemFilter<T>> _filters;
public CompositeItemFilter()
{
_filters = new List<IItemFilter<T>>();
}
public void AddFilter(IItemFilter<T> filter)
{
_filters.Add(filter);
}
public void RemoveFilter(IItemFilter<T> filter)
{
_filters.Remove(filter);
}
public bool Include(T item)
{
foreach (IItemFilter<T> filter in _filters)
{
if (!filter.Include(item))
{
return false;
}
}
return true;
}
}
}
================================================
FILE: BindingListView/IItemFilter.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Equin.ApplicationFramework
{
/// <summary>
/// Defines a general method to test it an item should be included in a <see cref="BindingListView<T>"/>.
/// </summary>
/// <typeparam name="T">The type of item to be filtered.</typeparam>
public interface IItemFilter<T>
{
/// <summary>
/// Tests if the item should be included.
/// </summary>
/// <param name="item">The item to test.</param>
/// <returns>True if the item should be included, otherwise false.</returns>
bool Include(T item);
}
/// <summary>
/// A dummy filter that is used when no filter is needed.
/// It simply includes any and all items tested.
/// </summary>
public class IncludeAllItemFilter<T> : IItemFilter<T>
{
public bool Include(T item)
{
// All items are to be included.
// So always return true.
return true;
}
public override string ToString()
{
return Properties.Resources.NoFilter;
}
#region Singleton Accessor
private static IncludeAllItemFilter<T> _instance;
/// <summary>
/// Gets the singleton instance of <see cref="IncludeAllItemFilter<T>"/>.
/// </summary>
public static IncludeAllItemFilter<T> Instance
{
get
{
if (_instance == null)
{
_instance = new IncludeAllItemFilter<T>();
}
return _instance;
}
}
#endregion
}
/// <summary>
/// A filter that uses a user-defined <see cref="Predicate<T>"/> to test items for inclusion in <see cref="BindingListView<T>"/>.
/// </summary>
public class PredicateItemFilter<T> : IItemFilter<T>
{
/// <summary>
/// Creates a new <see cref="PredicateItemFilter<T>"/> that uses the specified <see cref="Predicate<T>"/> and default name.
/// </summary>
/// <param name="includeDelegate">The <see cref="Predicate<T>"/> used to test items.</param>
public PredicateItemFilter(Predicate<T> includeDelegate)
: this(includeDelegate, null)
{
// The other constructor is called to do the work.
}
/// <summary>
/// Creates a new <see cref="PredicateItemFilter<T>"/> that uses the specified <see cref="Predicate<T>"/>.
/// </summary>
/// <param name="includeDelegate">The <see cref="PredicateItemFilter<T>"/> used to test items.</param>
/// <param name="name">The name used for the ToString() return value.</param>
public PredicateItemFilter(Predicate<T> includeDelegate, string name)
{
// We don't allow a null string. Use the default instead.
_name = name ?? defaultName;
if (includeDelegate != null)
{
_includeDelegate = includeDelegate;
}
else
{
throw new ArgumentNullException("includeDelegate", Properties.Resources.IncludeDelegateCannotBeNull);
}
}
private Predicate<T> _includeDelegate;
private string _name;
private readonly string defaultName = Properties.Resources.PredicateFilter;
public bool Include(T item)
{
return _includeDelegate(item);
}
public override string ToString()
{
return _name;
}
}
// TODO: Implement this class
/*
public class ExpressionItemFilter<T> : IItemFilter<T>
{
public ExpressionItemFilter(string expression)
{
// TODO: Parse expression into predicate
}
public bool Include(T item)
{
// TODO: use expression...
return true;
}
}
*/
// TODO: Implement this class
/*
public class CSharpItemFilter<T> : IItemFilter<T>
{
public CSharpItemFilter(string filterSourceCode)
{
}
public bool Include(T item)
{
// TODO: implement this method...
return true;
}
}
*/
}
================================================
FILE: BindingListView/INotifyingEditableObject.cs
================================================
using System;
using System.ComponentModel;
namespace Equin.ApplicationFramework
{
/// <summary>
/// Extends <see cref="System.ComponentModel.IEditableObject"/> by providing events to raise during edit state changes.
/// </summary>
internal interface INotifyingEditableObject : IEditableObject
{
/// <summary>
/// An edit has started on the object.
/// </summary>
/// <remarks>
/// This event should be raised from BeginEdit().
/// </remarks>
event EventHandler EditBegun;
/// <summary>
/// The editing of the object was cancelled.
/// </summary>
/// <remarks>
/// This event should be raised from CancelEdit().
/// </remarks>
event EventHandler EditCancelled;
/// <summary>
/// The editing of the object was ended.
/// </summary>
/// <remarks>
/// This event should be raised from EndEdit().
/// </remarks>
event EventHandler EditEnded;
}
}
================================================
FILE: BindingListView/InvalidSourceListException.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Equin.ApplicationFramework
{
[Serializable]
public class InvalidSourceListException : Exception
{
public InvalidSourceListException()
: base(Properties.Resources.InvalidSourceList)
{
}
public InvalidSourceListException(string message)
: base(message)
{
}
public InvalidSourceListException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
}
}
}
================================================
FILE: BindingListView/MultiSourceIndexList.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections;
namespace Equin.ApplicationFramework
{
internal class MultiSourceIndexList<T> : List<KeyValuePair<ListItemPair<T>, int>>
{
public void Add(IList sourceList, ObjectView<T> item, int index)
{
Add(new KeyValuePair<ListItemPair<T>, int>(new ListItemPair<T>(sourceList, item), index));
}
/// <summary>
/// Searches for a given source index value, returning the list index of the value.
/// </summary>
/// <param name="sourceIndex">The source index to find.</param>
/// <returns>Returns the index in this list of the source index, or -1 if not found.</returns>
public int IndexOfSourceIndex(IList sourceList, int sourceIndex)
{
for (int i = 0; i < Count; i++)
{
if (this[i].Key.List == sourceList && this[i].Value == sourceIndex)
{
return i;
}
}
return -1;
}
/// <summary>
/// Searches for a given item, returning the index of the value in this list.
/// </summary>
/// <param name="item">The <typeparamref name="T"/> item to search for.</param>
/// <returns>Returns the index in this list of the item, or -1 if not found.</returns>
public int IndexOfItem(T item)
{
for (int i = 0; i < Count; i++)
{
if (this[i].Key.Item.Object.Equals(item) && this[i].Value > -1)
{
return i;
}
}
return -1;
}
/// <summary>
/// Searches for a given item's <see cref="ObjectView<T>"/> wrapper, returning the index of the value in this list.
/// </summary>
/// <param name="item">The <see cref="ObjectView<T>"/> to search for.</param>
/// <returns>Returns the index in this list of the item, or -1 if not found.</returns>
public int IndexOfKey(ObjectView<T> item)
{
for (int i = 0; i < Count; i++)
{
if (this[i].Key.Item.Equals(item) && this[i].Value > -1)
{
return i;
}
}
return -1;
}
/// <summary>
/// Checks if the list contains a given item.
/// </summary>
/// <param name="item">The <typeparamref name="T"/> item to check for.</param>
/// <returns>True if the item is contained in the list, otherwise false.</returns>
public bool ContainsItem(T item)
{
return (IndexOfItem(item) != -1);
}
/// <summary>
/// Checks if the list contains a given <see cref="ObjectView<T>"/> key.
/// </summary>
/// <param name="item">The key to search for.</param>
/// <returns>True if the key is contained in the list, otherwise false.</returns>
public bool ContainsKey(ObjectView<T> key)
{
return (IndexOfKey(key) != -1);
}
/// <summary>
/// Returns an array of all the <see cref="ObjectView<T>"/> keys in the list.
/// </summary>
public ObjectView<T>[] Keys
{
get
{
return ConvertAll<ObjectView<T>>(new Converter<KeyValuePair<ListItemPair<T>, int>, ObjectView<T>>(
delegate(KeyValuePair<ListItemPair<T>, int> kvp)
{ return kvp.Key.Item; }
)).ToArray();
}
}
/// <summary>
/// Returns an <see cref="IEnumerator<T>"/> to iterate over all the keys in this list.
/// </summary>
/// <returns>The <see cref="IEnumerator<T>"/> to use.</returns>
public IEnumerator<ObjectView<T>> GetKeyEnumerator()
{
foreach (KeyValuePair<ListItemPair<T>, int> kvp in this)
{
yield return kvp.Key.Item;
}
}
}
internal class ListItemPair<T>
{
private IList _list;
private ObjectView<T> _item;
public ListItemPair(IList list, ObjectView<T> item)
{
_list = list;
_item = item;
}
public IList List
{
get
{
return _list;
}
}
public ObjectView<T> Item
{
get
{
return _item;
}
}
}
}
================================================
FILE: BindingListView/ObjectView.cs
================================================
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
namespace Equin.ApplicationFramework
{
/// <summary>
/// Serves a wrapper for items being viewed in a <see cref="BindingListView<T>"/>.
/// This class implements <see cref="INotifyEditableObject"/> so will raise the necessary events during
/// the item edit life-cycle.
/// </summary>
/// <remarks>
/// If <typeparamref name="T"/> implements <see cref="System.ComponentModel.IEditableObject"/> this class will call BeginEdit/CancelEdit/EndEdit on the <typeparamref name="T"/> object as well.
/// If <typeparamref name="T"/> implements <see cref="System.ComponentModel.IDataErrorInfo"/> this class will use that implementation as its own.
/// </remarks>
/// <typeparam name="T">The type of object being viewed.</typeparam>
[Serializable]
public class ObjectView<T> : INotifyingEditableObject, IDataErrorInfo, INotifyPropertyChanged, ICustomTypeDescriptor, IProvideViews
{
/// <summary>
/// Creates a new <see cref="ObjectView<T>"/> wrapper for a <typeparamref name="T"/> object.
/// </summary>
/// <param name="object">The <typeparamref name="T"/> object being wrapped.</param>
public ObjectView(T @object, AggregateBindingListView<T> parent)
{
_parent = parent;
Object = @object;
if (Object is INotifyPropertyChanged)
{
((INotifyPropertyChanged)Object).PropertyChanged += new PropertyChangedEventHandler(ObjectPropertyChanged);
}
if (typeof(ICustomTypeDescriptor).IsAssignableFrom(typeof(T)))
{
_isCustomTypeDescriptor = true;
_customTypeDescriptor = Object as ICustomTypeDescriptor;
Debug.Assert(_customTypeDescriptor != null);
}
_providedViews = new Dictionary<string, object>();
CreateProvidedViews();
}
/// <summary>
/// The view containing this ObjectView.
/// </summary>
private AggregateBindingListView<T> _parent;
/// <summary>
/// Flag that signals if we are currently editing the object.
/// </summary>
private bool _editing;
/// <summary>
/// The actual object being edited.
/// </summary>
private T _object;
/// <summary>
/// Flag set to true if type of T implements ICustomTypeDescriptor
/// </summary>
private bool _isCustomTypeDescriptor;
/// <summary>
/// Holds the Object pre-casted ICustomTypeDescriptor (if supported).
/// </summary>
private ICustomTypeDescriptor _customTypeDescriptor;
/// <summary>
/// A collection of BindingListView objects, indexed by name, for views auto-provided for any generic IList members.
/// </summary>
private Dictionary<string, object> _providedViews;
/// <summary>
/// Gets the object being edited.
/// </summary>
public T Object
{
get { return _object; }
private set
{
if (value == null)
{
throw new ArgumentNullException("Object", Properties.Resources.ObjectCannotBeNull);
}
_object = value;
}
}
public object GetProvidedView(string name)
{
return _providedViews[name];
}
/// <summary>
/// Casts an ObjectView<T> to a T by getting the wrapped T object.
/// </summary>
/// <param name="eo">The ObjectView<T> to cast to a T</param>
/// <returns>The object that is wrapped.</returns>
public static explicit operator T(ObjectView<T> eo)
{
return eo.Object;
}
public override bool Equals(object obj)
{
if (obj == null)
{
return false;
}
if (obj is T)
{
return Object.Equals(obj);
}
else if (obj is ObjectView<T>)
{
return Object.Equals((obj as ObjectView<T>).Object);
}
else
{
return Equals(obj);
}
}
public override int GetHashCode()
{
return Object.GetHashCode();
}
public override string ToString()
{
return Object.ToString();
}
private void ObjectPropertyChanged(object sender, PropertyChangedEventArgs e)
{
// Raise our own event
OnPropertyChanged(sender, new PropertyChangedEventArgs(e.PropertyName));
}
private bool ShouldProvideViewOf(PropertyDescriptor listProp)
{
return _parent.ShouldProvideView(listProp);
}
private string GetProvidedViewName(PropertyDescriptor listProp)
{
return _parent.GetProvidedViewName(listProp);
}
private void CreateProvidedViews()
{
foreach (PropertyDescriptor prop in (this as ICustomTypeDescriptor).GetProperties())
{
if (ShouldProvideViewOf(prop))
{
object view = _parent.CreateProvidedView(this, prop);
string viewName = GetProvidedViewName(prop);
_providedViews.Add(viewName, view);
}
}
}
#region INotifyEditableObject Members
/// <summary>
/// Indicates an edit has just begun.
/// </summary>
[field: NonSerialized]
public event EventHandler EditBegun;
/// <summary>
/// Indicates the edit was cancelled.
/// </summary>
[field: NonSerialized]
public event EventHandler EditCancelled;
/// <summary>
/// Indicated the edit was ended.
/// </summary>
[field: NonSerialized]
public event EventHandler EditEnded;
protected virtual void OnEditBegun()
{
if (EditBegun != null)
{
EditBegun(this, EventArgs.Empty);
}
}
protected virtual void OnEditCancelled()
{
if (EditCancelled != null)
{
EditCancelled(this, EventArgs.Empty);
}
}
protected virtual void OnEditEnded()
{
if (EditEnded != null)
{
EditEnded(this, EventArgs.Empty);
}
}
#endregion
#region IEditableObject Members
public void BeginEdit()
{
// As per documentation, this method may get called multiple times for a single edit.
// So we set a flag to only honor the first call.
if (!_editing)
{
_editing = true;
// If possible call the object's BeginEdit() method
// to let it do what ever it needs e.g. save state
if (Object is IEditableObject)
{
((IEditableObject)Object).BeginEdit();
}
// Raise the EditBegun event.
OnEditBegun();
}
}
public void CancelEdit()
{
// We can only cancel if currently editing
if (_editing)
{
// If possible call the object's CancelEdit() method
// to let it do what ever it needs e.g. rollback state
if (Object is IEditableObject)
{
((IEditableObject)Object).CancelEdit();
}
// Raise the EditCancelled event.
OnEditCancelled();
// No longer editing now.
_editing = false;
}
}
public void EndEdit()
{
// We can only end if currently editing
if (_editing)
{
// If possible call the object's EndEdit() method
// to let it do what ever it needs e.g. commit state
if (Object is IEditableObject)
{
((IEditableObject)Object).EndEdit();
}
// Raise the EditEnded event.
OnEditEnded();
// No longer editing now.
_editing = false;
}
}
#endregion
#region IDataErrorInfo Members
// If the wrapped Object support IDataErrorInfo we forward calls to it.
// Otherwise, we just return empty strings that signal "no error".
string IDataErrorInfo.Error
{
get
{
if (Object is IDataErrorInfo)
{
return ((IDataErrorInfo)Object).Error;
}
return string.Empty;
}
}
string IDataErrorInfo.this[string columnName]
{
get
{
if (Object is IDataErrorInfo)
{
return ((IDataErrorInfo)Object)[columnName];
}
return string.Empty;
}
}
#endregion
#region INotifyPropertyChanged Members
[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(object sender, PropertyChangedEventArgs args)
{
if (PropertyChanged != null)
{
PropertyChanged(sender, args);
}
}
#endregion
#region ICustomTypeDescriptor Members
AttributeCollection ICustomTypeDescriptor.GetAttributes()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetAttributes();
}
else
{
return TypeDescriptor.GetAttributes(Object);
}
}
string ICustomTypeDescriptor.GetClassName()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetClassName();
}
else
{
return typeof(T).FullName;
}
}
string ICustomTypeDescriptor.GetComponentName()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetComponentName();
}
else
{
return TypeDescriptor.GetFullComponentName(Object);
}
}
TypeConverter ICustomTypeDescriptor.GetConverter()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetConverter();
}
else
{
return TypeDescriptor.GetConverter(Object);
}
}
EventDescriptor ICustomTypeDescriptor.GetDefaultEvent()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetDefaultEvent();
}
else
{
return TypeDescriptor.GetDefaultEvent(Object);
}
}
PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty()
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetDefaultProperty();
}
else
{
return TypeDescriptor.GetDefaultProperty(Object);
}
}
object ICustomTypeDescriptor.GetEditor(Type editorBaseType)
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetEditor(editorBaseType);
}
else
{
return null;
}
}
EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes)
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetEvents();
}
else
{
return TypeDescriptor.GetEvents(Object, attributes);
}
}
EventDescriptorCollection ICustomTypeDescriptor.GetEvents()
{
return (this as ICustomTypeDescriptor).GetEvents(null);
}
PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes)
{
List<PropertyDescriptor> props;
if (_isCustomTypeDescriptor)
{
props = new List<PropertyDescriptor>(_parent.AddProvidedViews(_customTypeDescriptor.GetProperties(attributes)));
}
else
{
props = new List<PropertyDescriptor>(_parent.AddProvidedViews(TypeDescriptor.GetProperties(Object, attributes)));
}
return new PropertyDescriptorCollection(props.ToArray());
}
PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties()
{
return (this as ICustomTypeDescriptor).GetProperties(null);
}
object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd)
{
if (_isCustomTypeDescriptor)
{
return _customTypeDescriptor.GetPropertyOwner(pd);
}
else
{
return Object;
}
}
#endregion
}
public interface IProvideViews
{
object GetProvidedView(string name);
}
}
================================================
FILE: BindingListView/Properties/AssemblyInfo.cs
================================================
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("BindingListView")]
[assembly: AssemblyDescription("Advanced, data bindable, object list view.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Equin")]
[assembly: AssemblyProduct("BindingListView")]
[assembly: AssemblyCopyright("Copyright Andrew Davey 2005")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM componenets. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("709a6d28-582d-423b-ae59-83e0945c4227")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.4.*")]
[assembly: AssemblyFileVersion("1.4.1.0")]
[assembly: CLSCompliant(true)]
================================================
FILE: BindingListView/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Equin.ApplicationFramework.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Equin.ApplicationFramework.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Cannot add an external item to the view. Use AddNew() or add to source list instead..
/// </summary>
internal static string CannotAddItem {
get {
return ResourceManager.GetString("CannotAddItem", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot add a new item due to no object being provided in the AddingNew event and a lack of default public constructor..
/// </summary>
internal static string CannotAddNewItem {
get {
return ResourceManager.GetString("CannotAddNewItem", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot add a new item when NewItemsList is null..
/// </summary>
internal static string CannotAddWhenNewItemsListNull {
get {
return ResourceManager.GetString("CannotAddWhenNewItemsListNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot clear this view..
/// </summary>
internal static string CannotClearView {
get {
return ResourceManager.GetString("CannotClearView", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot insert an external item into this collection..
/// </summary>
internal static string CannotInsertItem {
get {
return ResourceManager.GetString("CannotInsertItem", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cannot set an item in the view..
/// </summary>
internal static string CannotSetItem {
get {
return ResourceManager.GetString("CannotSetItem", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to includeDelegate cannot be null..
/// </summary>
internal static string IncludeDelegateCannotBeNull {
get {
return ResourceManager.GetString("IncludeDelegateCannotBeNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Item in list is not of type {0}..
/// </summary>
internal static string InvalidListItemType {
get {
return ResourceManager.GetString("InvalidListItemType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source list does not implement IList..
/// </summary>
internal static string InvalidSourceList {
get {
return ResourceManager.GetString("InvalidSourceList", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Item was not of type {0}..
/// </summary>
internal static string ItemTypeIncorrect {
get {
return ResourceManager.GetString("ItemTypeIncorrect", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to (no filter).
/// </summary>
internal static string NoFilter {
get {
return ResourceManager.GetString("NoFilter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Object cannot be null..
/// </summary>
internal static string ObjectCannotBeNull {
get {
return ResourceManager.GetString("ObjectCannotBeNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to (predicate filter).
/// </summary>
internal static string PredicateFilter {
get {
return ResourceManager.GetString("PredicateFilter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Property {0} does not exist in type {1}..
/// </summary>
internal static string PropertyNotFound {
get {
return ResourceManager.GetString("PropertyNotFound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source list already added to the view..
/// </summary>
internal static string SourceListAlreadyAdded {
get {
return ResourceManager.GetString("SourceListAlreadyAdded", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Source list is not in the view..
/// </summary>
internal static string SourceListNotFound {
get {
return ResourceManager.GetString("SourceListNotFound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to SourceLists cannot be null..
/// </summary>
internal static string SourceListsNull {
get {
return ResourceManager.GetString("SourceListsNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Synchronized access to the view is not supported..
/// </summary>
internal static string SyncAccessNotSupported {
get {
return ResourceManager.GetString("SyncAccessNotSupported", resourceCulture);
}
}
}
}
================================================
FILE: BindingListView/Properties/Resources.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="CannotAddItem" xml:space="preserve">
<value>Cannot add an external item to the view. Use AddNew() or add to source list instead.</value>
</data>
<data name="CannotAddNewItem" xml:space="preserve">
<value>Cannot add a new item due to no object being provided in the AddingNew event and a lack of default public constructor.</value>
</data>
<data name="CannotAddWhenNewItemsListNull" xml:space="preserve">
<value>Cannot add a new item when NewItemsList is null.</value>
</data>
<data name="CannotClearView" xml:space="preserve">
<value>Cannot clear this view.</value>
</data>
<data name="CannotInsertItem" xml:space="preserve">
<value>Cannot insert an external item into this collection.</value>
</data>
<data name="CannotSetItem" xml:space="preserve">
<value>Cannot set an item in the view.</value>
</data>
<data name="IncludeDelegateCannotBeNull" xml:space="preserve">
<value>includeDelegate cannot be null.</value>
</data>
<data name="InvalidListItemType" xml:space="preserve">
<value>Item in list is not of type {0}.</value>
</data>
<data name="InvalidSourceList" xml:space="preserve">
<value>Source list does not implement IList.</value>
</data>
<data name="ItemTypeIncorrect" xml:space="preserve">
<value>Item was not of type {0}.</value>
</data>
<data name="NoFilter" xml:space="preserve">
<value>(no filter)</value>
</data>
<data name="ObjectCannotBeNull" xml:space="preserve">
<value>Object cannot be null.</value>
</data>
<data name="PredicateFilter" xml:space="preserve">
<value>(predicate filter)</value>
</data>
<data name="PropertyNotFound" xml:space="preserve">
<value>Property {0} does not exist in type {1}.</value>
</data>
<data name="SourceListAlreadyAdded" xml:space="preserve">
<value>Source list already added to the view.</value>
</data>
<data name="SourceListNotFound" xml:space="preserve">
<value>Source list is not in the view.</value>
</data>
<data name="SourceListsNull" xml:space="preserve">
<value>SourceLists cannot be null.</value>
</data>
<data name="SyncAccessNotSupported" xml:space="preserve">
<value>Synchronized access to the view is not supported.</value>
</data>
</root>
================================================
FILE: BindingListView/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Equin.ApplicationFramework.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: BindingListView/Properties/Settings.settings
================================================
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
================================================
FILE: BindingListView/ProvidedViewPropertyDescriptor.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace Equin.ApplicationFramework
{
class ProvidedViewPropertyDescriptor : PropertyDescriptor
{
public ProvidedViewPropertyDescriptor(string name, Type propertyType)
: base(name, null)
{
_propertyType = propertyType;
}
private Type _propertyType;
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get { return typeof(IProvideViews); }
}
public override object GetValue(object component)
{
if (component is IProvideViews)
{
return (component as IProvideViews).GetProvidedView(Name);
}
throw new ArgumentException("Type of component is not valid.", "component");
}
public override bool IsReadOnly
{
get { return true; }
}
public override Type PropertyType
{
get { return _propertyType; }
}
public override void ResetValue(object component)
{
throw new NotSupportedException();
}
public override void SetValue(object component, object value)
{
throw new NotSupportedException();
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
/// <summary>
/// Gets if a BindingListView can be provided for given property.
/// The property type must implement IList<> i.e. some generic IList.
/// </summary>
public static bool CanProvideViewOf(PropertyDescriptor prop)
{
Type propType = prop.PropertyType;
foreach (Type interfaceType in propType.GetInterfaces())
{
if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition().Equals(typeof(IList<>)))
{
return true;
}
}
return false;
}
}
}
================================================
FILE: CheckBoxComboBox/CheckBoxComboBox.Designer.cs
================================================
namespace PresentationControls
{
partial class CheckBoxComboBox
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
================================================
FILE: CheckBoxComboBox/CheckBoxComboBox.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
namespace PresentationControls
{
/// <summary>
/// Martin Lottering : 2007-10-27
/// --------------------------------
/// This is a usefull control in Filters. Allows you to save space and can replace a Grouped Box of CheckBoxes.
/// Currently used on the TasksFilter for TaskStatusses, which means the user can select which Statusses to include
/// in the "Search".
/// This control does not implement a CheckBoxListBox, instead it adds a wrapper for the normal ComboBox and Items.
/// See the CheckBoxItems property.
/// ----------------
/// ALSO IMPORTANT: In Data Binding when setting the DataSource. The ValueMember must be a bool type property, because it will
/// be binded to the Checked property of the displayed CheckBox. Also see the DisplayMemberSingleItem for more information.
/// ----------------
/// Extends the CodeProject PopupComboBox "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp"
/// by Lukasz Swiatkowski.
/// </summary>
public partial class CheckBoxComboBox : PopupComboBox
{
#region CONSTRUCTOR
public CheckBoxComboBox()
: base()
{
InitializeComponent();
_CheckBoxProperties = new CheckBoxProperties();
_CheckBoxProperties.PropertyChanged += new EventHandler(_CheckBoxProperties_PropertyChanged);
// Dumps the ListControl in a(nother) Container to ensure the ScrollBar on the ListControl does not
// Paint over the Size grip. Setting the Padding or Margin on the Popup or host control does
// not work as I expected. I don't think it can work that way.
CheckBoxComboBoxListControlContainer ContainerControl = new CheckBoxComboBoxListControlContainer();
_CheckBoxComboBoxListControl = new CheckBoxComboBoxListControl(this);
_CheckBoxComboBoxListControl.Items.CheckBoxCheckedChanged += new EventHandler(Items_CheckBoxCheckedChanged);
ContainerControl.Controls.Add(_CheckBoxComboBoxListControl);
// This padding spaces neatly on the left-hand side and allows space for the size grip at the bottom.
ContainerControl.Padding = new Padding(4, 0, 0, 14);
// The ListControl FILLS the ListContainer.
_CheckBoxComboBoxListControl.Dock = DockStyle.Fill;
// The DropDownControl used by the base class. Will be wrapped in a popup by the base class.
DropDownControl = ContainerControl;
// Must be set after the DropDownControl is set, since the popup is recreated.
// NOTE: I made the dropDown protected so that it can be accessible here. It was private.
dropDown.Resizable = true;
}
#endregion
#region PRIVATE FIELDS
/// <summary>
/// The checkbox list control. The public CheckBoxItems property provides a direct reference to its Items.
/// </summary>
internal CheckBoxComboBoxListControl _CheckBoxComboBoxListControl;
/// <summary>
/// In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox.
/// The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display
/// a concatenated Text of the items selected. This concatenation and its formatting however is controlled
/// by the Binded object, since it owns that property.
/// </summary>
private string _DisplayMemberSingleItem = null;
internal bool _MustAddHiddenItem = false;
#endregion
#region PRIVATE OPERATIONS
/// <summary>
/// Builds a CSV string of the items selected.
/// </summary>
internal string GetCSVText(bool skipFirstItem)
{
var itemText = _CheckBoxComboBoxListControl.Items.Where(x => x.Checked).Select(x => x.Text);
if (DropDownStyle == ComboBoxStyle.DropDownList && DataSource == null && skipFirstItem)
return string.Join(", ", itemText.Skip(1).ToArray());
else
return string.Join(", ", itemText.ToArray());
}
#endregion
#region PUBLIC PROPERTIES
/// <summary>
/// A direct reference to the Items of CheckBoxComboBoxListControl.
/// You can use it to Get or Set the Checked status of items manually if you want.
/// But do not manipulate the List itself directly, e.g. Adding and Removing,
/// since the list is synchronised when shown with the ComboBox.Items. So for changing
/// the list contents, use Items instead.
/// </summary>
[Browsable(false)]
public CheckBoxComboBoxItemList CheckBoxItems
{
get
{
// Added to ensure the CheckBoxItems are ALWAYS
// available for modification via code.
if (_CheckBoxComboBoxListControl.Items.Count != Items.Count)
_CheckBoxComboBoxListControl.SynchroniseControlsWithComboBoxItems();
return _CheckBoxComboBoxListControl.Items;
}
}
/// <summary>
/// The DataSource of the combobox. Refreshes the CheckBox wrappers when this is set.
/// </summary>
public new object DataSource
{
get { return base.DataSource; }
set
{
base.DataSource = value;
if (!string.IsNullOrEmpty(ValueMember))
// This ensures that at least the checkboxitems are available to be initialised.
_CheckBoxComboBoxListControl.SynchroniseControlsWithComboBoxItems();
}
}
/// <summary>
/// The ValueMember of the combobox. Refreshes the CheckBox wrappers when this is set.
/// </summary>
public new string ValueMember
{
get { return base.ValueMember; }
set
{
base.ValueMember = value;
if (!string.IsNullOrEmpty(ValueMember))
// This ensures that at least the checkboxitems are available to be initialised.
_CheckBoxComboBoxListControl.SynchroniseControlsWithComboBoxItems();
}
}
/// <summary>
/// In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox.
/// The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display
/// a concatenated Text of the items selected. This concatenation however is controlled by the Binded
/// object, since it owns that property.
/// </summary>
public string DisplayMemberSingleItem
{
get { if (string.IsNullOrEmpty(_DisplayMemberSingleItem)) return DisplayMember; else return _DisplayMemberSingleItem; }
set { _DisplayMemberSingleItem = value; }
}
/// <summary>
/// Made this property Browsable again, since the Base Popup hides it. This class uses it again.
/// Gets an object representing the collection of the items contained in this
/// System.Windows.Forms.ComboBox.
/// </summary>
/// <returns>A System.Windows.Forms.ComboBox.ObjectCollection representing the items in
/// the System.Windows.Forms.ComboBox.
/// </returns>
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new ObjectCollection Items
{
get { return base.Items; }
}
#endregion
#region EVENTS & EVENT HANDLERS
public event EventHandler CheckBoxCheckedChanged;
private void Items_CheckBoxCheckedChanged(object sender, EventArgs e)
{
OnCheckBoxCheckedChanged(sender, e);
}
#endregion
#region EVENT CALLERS and OVERRIDES e.g. OnResize()
protected void OnCheckBoxCheckedChanged(object sender, EventArgs e)
{
string ListText = GetCSVText(true);
// The DropDownList style seems to require that the text
// part of the "textbox" should match a single item.
if (DropDownStyle != ComboBoxStyle.DropDownList)
Text = ListText;
// This refreshes the Text of the first item (which is not visible)
else if (DataSource == null)
{
Items[0] = ListText;
// Keep the hidden item and first checkbox item in
// sync in order to ensure the Synchronise process
// can match the items.
CheckBoxItems[0].ComboBoxItem = ListText;
}
EventHandler handler = CheckBoxCheckedChanged;
if (handler != null)
handler(sender, e);
}
/// <summary>
/// Will add an invisible item when the style is DropDownList,
/// to help maintain the correct text in main TextBox.
/// </summary>
/// <param name="e"></param>
protected override void OnDropDownStyleChanged(EventArgs e)
{
base.OnDropDownStyleChanged(e);
if (DropDownStyle == ComboBoxStyle.DropDownList
&& DataSource == null
&& !DesignMode)
_MustAddHiddenItem = true;
}
protected override void OnResize(EventArgs e)
{
// When the ComboBox is resized, the width of the dropdown
// is also resized to match the width of the ComboBox. I think it looks better.
Size Size = new Size(Width, DropDownControl.Height);
dropDown.Size = Size;
base.OnResize(e);
}
#endregion
#region PUBLIC OPERATIONS
/// <summary>
/// A function to clear/reset the list.
/// (Ubiklou : http://www.codeproject.com/KB/combobox/extending_combobox.aspx?msg=2526813#xx2526813xx)
/// </summary>
public void Clear()
{
this.Items.Clear();
if (DropDownStyle == ComboBoxStyle.DropDownList && DataSource == null)
_MustAddHiddenItem = true;
} /// <summary>
/// Uncheck all items.
/// </summary>
public void ClearSelection()
{
foreach (CheckBoxComboBoxItem Item in CheckBoxItems)
if (Item.Checked)
Item.Checked = false;
}
#endregion
#region CHECKBOX PROPERTIES (DEFAULTS)
private CheckBoxProperties _CheckBoxProperties;
/// <summary>
/// The properties that will be assigned to the checkboxes as default values.
/// </summary>
[Description("The properties that will be assigned to the checkboxes as default values.")]
[Browsable(true)]
public CheckBoxProperties CheckBoxProperties
{
get { return _CheckBoxProperties; }
set { _CheckBoxProperties = value; _CheckBoxProperties_PropertyChanged(this, EventArgs.Empty); }
}
private void _CheckBoxProperties_PropertyChanged(object sender, EventArgs e)
{
foreach (CheckBoxComboBoxItem Item in CheckBoxItems)
Item.ApplyProperties(CheckBoxProperties);
}
#endregion
protected override void WndProc(ref Message m)
{
// 323 : Item Added
// 331 : Clearing
if (m.Msg == 331
&& DropDownStyle == ComboBoxStyle.DropDownList
&& DataSource == null)
{
_MustAddHiddenItem = true;
}
base.WndProc(ref m);
}
}
/// <summary>
/// A container control for the ListControl to ensure the ScrollBar on the ListControl does not
/// Paint over the Size grip. Setting the Padding or Margin on the Popup or host control does
/// not work as I expected.
/// </summary>
[ToolboxItem(false)]
public class CheckBoxComboBoxListControlContainer : UserControl
{
#region CONSTRUCTOR
public CheckBoxComboBoxListControlContainer()
: base()
{
BackColor = SystemColors.Window;
BorderStyle = BorderStyle.FixedSingle;
AutoScaleMode = AutoScaleMode.Inherit;
ResizeRedraw = true;
// If you don't set this, then resize operations cause an error in the base class.
MinimumSize = new Size(1, 1);
MaximumSize = new Size(500, 500);
}
#endregion
#region RESIZE OVERRIDE REQUIRED BY THE POPUP CONTROL
/// <summary>
/// Prescribed by the Popup class to ensure Resize operations work correctly.
/// </summary>
/// <param name="m"></param>
protected override void WndProc(ref Message m)
{
if ((Parent as Popup).ProcessResizing(ref m))
{
return;
}
base.WndProc(ref m);
}
#endregion
}
/// <summary>
/// This ListControl that pops up to the User. It contains the CheckBoxComboBoxItems.
/// The items are docked DockStyle.Top in this control.
/// </summary>
[ToolboxItem(false)]
public class CheckBoxComboBoxListControl : ScrollableControl
{
#region CONSTRUCTOR
public CheckBoxComboBoxListControl(CheckBoxComboBox owner)
: base()
{
DoubleBuffered = true;
_CheckBoxComboBox = owner;
_Items = new CheckBoxComboBoxItemList(_CheckBoxComboBox);
BackColor = SystemColors.Window;
AutoScroll = true;
ResizeRedraw = true;
// if you don't set this, a Resize operation causes an error in the base class.
MinimumSize = new Size(1, 1);
MaximumSize = new Size(500, 500);
}
#endregion
#region PRIVATE PROPERTIES
/// <summary>
/// Simply a reference to the CheckBoxComboBox.
/// </summary>
private CheckBoxComboBox _CheckBoxComboBox;
/// <summary>
/// A Typed list of ComboBoxCheckBoxItems.
/// </summary>
private CheckBoxComboBoxItemList _Items;
#endregion
public CheckBoxComboBoxItemList Items { get { return _Items; } }
#region RESIZE OVERRIDE REQUIRED BY THE POPUP CONTROL
/// <summary>
/// Prescribed by the Popup control to enable Resize operations.
/// </summary>
/// <param name="m"></param>
protected override void WndProc(ref Message m)
{
if ((Parent.Parent as Popup).ProcessResizing(ref m))
{
return;
}
base.WndProc(ref m);
}
#endregion
#region PROTECTED MEMBERS
protected override void OnVisibleChanged(EventArgs e)
{
// Synchronises the CheckBox list with the items in the ComboBox.
SynchroniseControlsWithComboBoxItems();
base.OnVisibleChanged(e);
}
/// <summary>
/// Maintains the controls displayed in the list by keeping them in sync with the actual
/// items in the combobox. (e.g. removing and adding as well as ordering)
/// </summary>
public void SynchroniseControlsWithComboBoxItems()
{
SuspendLayout();
if (_CheckBoxComboBox._MustAddHiddenItem)
{
_CheckBoxComboBox.Items.Insert(
0, _CheckBoxComboBox.GetCSVText(false)); // INVISIBLE ITEM
_CheckBoxComboBox.SelectedIndex = 0;
_CheckBoxComboBox._MustAddHiddenItem = false;
}
Controls.Clear();
#region Disposes all items that are no longer in the combo box list
for (int Index = _Items.Count - 1; Index >= 0; Index--)
{
CheckBoxComboBoxItem Item = _Items[Index];
if (!_CheckBoxComboBox.Items.Contains(Item.ComboBoxItem))
{
_Items.Remove(Item);
Item.Dispose();
}
}
#endregion
#region Recreate the list in the same order of the combo box items
bool HasHiddenItem =
_CheckBoxComboBox.DropDownStyle == ComboBoxStyle.DropDownList
&& _CheckBoxComboBox.DataSource == null
&& !DesignMode;
CheckBoxComboBoxItemList NewList = new CheckBoxComboBoxItemList(_CheckBoxComboBox);
for(int Index0 = 0; Index0 <= _CheckBoxComboBox.Items.Count - 1; Index0 ++)
{
object Object = _CheckBoxComboBox.Items[Index0];
CheckBoxComboBoxItem Item = null;
// The hidden item could match any other item when only
// one other item was selected.
if (Index0 == 0 && HasHiddenItem && _Items.Count > 0)
Item = _Items[0];
else
{
int StartIndex = HasHiddenItem
? 1 // Skip the hidden item, it could match
: 0;
for (int Index1 = StartIndex; Index1 <= _Items.Count - 1; Index1++)
{
if (_Items[Index1].ComboBoxItem == Object)
{
Item = _Items[Index1];
break;
}
}
}
if (Item == null)
{
Item = new CheckBoxComboBoxItem(_CheckBoxComboBox, Object);
Item.ApplyProperties(_CheckBoxComboBox.CheckBoxProperties);
}
NewList.Add(Item);
Item.Dock = DockStyle.Top;
}
_Items.Clear();
_Items.AddRange(NewList);
#endregion
#region Add the items to the controls in reversed order to maintain correct docking order
if (NewList.Count > 0)
{
// This reverse helps to maintain correct docking order.
NewList.Reverse();
// If you get an error here that "Cannot convert to the desired
// type, it probably means the controls are not binding correctly.
// The Checked property is binded to the ValueMember property.
// It must be a bool for example.
Controls.AddRange(NewList.ToArray());
}
#endregion
// Keep the first item invisible
if (_CheckBoxComboBox.DropDownStyle == ComboBoxStyle.DropDownList
&& _CheckBoxComboBox.DataSource == null
&& !DesignMode)
_CheckBoxComboBox.CheckBoxItems[0].Visible = false;
ResumeLayout();
}
#endregion
}
/// <summary>
/// The CheckBox items displayed in the Popup of the ComboBox.
/// </summary>
[ToolboxItem(false)]
public class CheckBoxComboBoxItem : CheckBox
{
#region CONSTRUCTOR
/// <summary>
///
/// </summary>
/// <param name="owner">A reference to the CheckBoxComboBox.</param>
/// <param name="comboBoxItem">A reference to the item in the ComboBox.Items that this object is extending.</param>
public CheckBoxComboBoxItem(CheckBoxComboBox owner, object comboBoxItem)
: base()
{
DoubleBuffered = true;
_CheckBoxComboBox = owner;
_ComboBoxItem = comboBoxItem;
if (_CheckBoxComboBox.DataSource != null)
AddBindings();
else
Text = comboBoxItem.ToString();
}
#endregion
#region PRIVATE PROPERTIES
/// <summary>
/// A reference to the CheckBoxComboBox.
/// </summary>
private CheckBoxComboBox _CheckBoxComboBox;
/// <summary>
/// A reference to the Item in ComboBox.Items that this object is extending.
/// </summary>
private object _ComboBoxItem;
#endregion
#region PUBLIC PROPERTIES
/// <summary>
/// A reference to the Item in ComboBox.Items that this object is extending.
/// </summary>
public object ComboBoxItem
{
get { return _ComboBoxItem; }
internal set { _ComboBoxItem = value; }
}
#endregion
#region BINDING HELPER
/// <summary>
/// When using Data Binding operations via the DataSource property of the ComboBox. This
/// adds the required Bindings for the CheckBoxes.
/// </summary>
public void AddBindings()
{
// Note, the text uses "DisplayMemberSingleItem", not "DisplayMember" (unless its not assigned)
DataBindings.Add(
"Text",
_ComboBoxItem,
_CheckBoxComboBox.DisplayMemberSingleItem
);
// The ValueMember must be a bool type property usable by the CheckBox.Checked.
DataBindings.Add(
"Checked",
_ComboBoxItem,
_CheckBoxComboBox.ValueMember,
false,
// This helps to maintain proper selection state in the Binded object,
// even when the controls are added and removed.
DataSourceUpdateMode.OnPropertyChanged,
false, null, null);
// Helps to maintain the Checked status of this
// checkbox before the control is visible
if (_ComboBoxItem is INotifyPropertyChanged)
((INotifyPropertyChanged)_ComboBoxItem).PropertyChanged +=
new PropertyChangedEventHandler(
CheckBoxComboBoxItem_PropertyChanged);
}
#endregion
#region PROTECTED MEMBERS
protected override void OnCheckedChanged(EventArgs e)
{
// Found that when this event is raised, the bool value of the binded item is not yet updated.
if (_CheckBoxComboBox.DataSource != null)
{
PropertyInfo PI = ComboBoxItem.GetType().GetProperty(_CheckBoxComboBox.ValueMember);
PI.SetValue(ComboBoxItem, Checked, null);
}
base.OnCheckedChanged(e);
// Forces a refresh of the Text displayed in the main TextBox of the ComboBox,
// since that Text will most probably represent a concatenation of selected values.
// Also see DisplayMemberSingleItem on the CheckBoxComboBox for more information.
if (_CheckBoxComboBox.DataSource != null)
{
string OldDisplayMember = _CheckBoxComboBox.DisplayMember;
_CheckBoxComboBox.DisplayMember = null;
_CheckBoxComboBox.DisplayMember = OldDisplayMember;
}
}
#endregion
#region HELPER MEMBERS
internal void ApplyProperties(CheckBoxProperties properties)
{
this.Appearance = properties.Appearance;
this.AutoCheck = properties.AutoCheck;
this.AutoEllipsis = properties.AutoEllipsis;
this.AutoSize = properties.AutoSize;
this.CheckAlign = properties.CheckAlign;
this.FlatAppearance.BorderColor = properties.FlatAppearanceBorderColor;
this.FlatAppearance.BorderSize = properties.FlatAppearanceBorderSize;
this.FlatAppearance.CheckedBackColor = properties.FlatAppearanceCheckedBackColor;
this.FlatAppearance.MouseDownBackColor = properties.FlatAppearanceMouseDownBackColor;
this.FlatAppearance.MouseOverBackColor = properties.FlatAppearanceMouseOverBackColor;
this.FlatStyle = properties.FlatStyle;
this.ForeColor = properties.ForeColor;
this.RightToLeft = properties.RightToLeft;
this.TextAlign = properties.TextAlign;
this.ThreeState = properties.ThreeState;
}
#endregion
#region EVENT HANDLERS - ComboBoxItem (DataSource)
/// <summary>
/// Added this handler because the control doesn't seem
/// to initialize correctly until shown for the first
/// time, which also means the summary text value
/// of the combo is out of sync initially.
/// </summary>
private void CheckBoxComboBoxItem_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == _CheckBoxComboBox.ValueMember)
Checked =
(bool)_ComboBoxItem
.GetType()
.GetProperty(_CheckBoxComboBox.ValueMember)
.GetValue(_ComboBoxItem, null);
}
#endregion
}
/// <summary>
/// A Typed List of the CheckBox items.
/// Simply a wrapper for the CheckBoxComboBox.Items. A list of CheckBoxComboBoxItem objects.
/// This List is automatically synchronised with the Items of the ComboBox and extended to
/// handle the additional boolean value. That said, do not Add or Remove using this List,
/// it will be lost or regenerated from the ComboBox.Items.
/// </summary>
[ToolboxItem(false)]
public class CheckBoxComboBoxItemList : List<CheckBoxComboBoxItem>
{
#region CONSTRUCTORS
public CheckBoxComboBoxItemList(CheckBoxComboBox checkBoxComboBox)
{
_CheckBoxComboBox = checkBoxComboBox;
}
#endregion
#region PRIVATE FIELDS
private CheckBoxComboBox _CheckBoxComboBox;
#endregion
#region EVENTS, This could be moved to the list control if needed
public event EventHandler CheckBoxCheckedChanged;
protected void OnCheckBoxCheckedChanged(object sender, EventArgs e)
{
EventHandler handler = CheckBoxCheckedChanged;
if (handler != null)
handler(sender, e);
}
private void item_CheckedChanged(object sender, EventArgs e)
{
OnCheckBoxCheckedChanged(sender, e);
}
#endregion
#region LIST MEMBERS & OBSOLETE INDICATORS
[Obsolete("Do not add items to this list directly. Use the ComboBox items instead.", false)]
public new void Add(CheckBoxComboBoxItem item)
{
item.CheckedChanged += new EventHandler(item_CheckedChanged);
base.Add(item);
}
public new void AddRange(IEnumerable<CheckBoxComboBoxItem> collection)
{
foreach (CheckBoxComboBoxItem Item in collection)
Item.CheckedChanged += new EventHandler(item_CheckedChanged);
base.AddRange(collection);
}
public new void Clear()
{
foreach (CheckBoxComboBoxItem Item in this)
Item.CheckedChanged -= item_CheckedChanged;
base.Clear();
}
[Obsolete("Do not remove items from this list directly. Use the ComboBox items instead.", false)]
public new bool Remove(CheckBoxComboBoxItem item)
{
item.CheckedChanged -= item_CheckedChanged;
return base.Remove(item);
}
#endregion
#region DEFAULT PROPERTIES
/// <summary>
/// Returns the item with the specified displayName or Text.
/// </summary>
public CheckBoxComboBoxItem this[string displayName]
{
get
{
int StartIndex =
// An invisible item exists in this scenario to help
// with the Text displayed in the TextBox of the Combo
_CheckBoxComboBox.DropDownStyle == ComboBoxStyle.DropDownList
&& _CheckBoxComboBox.DataSource == null
? 1 // Ubiklou : 2008-04-28 : Ignore first item. (http://www.codeproject.com/KB/combobox/extending_combobox.aspx?fid=476622&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2526813&fr=1#xx2526813xx)
: 0;
for(int Index = StartIndex; Index <= Count - 1; Index ++)
{
CheckBoxComboBoxItem Item = this[Index];
string Text;
// The binding might not be active yet
if (string.IsNullOrEmpty(Item.Text)
// Ubiklou : 2008-04-28 : No databinding
&& Item.DataBindings != null
&& Item.DataBindings["Text"] != null
)
{
PropertyInfo PropertyInfo
= Item.ComboBoxItem.GetType().GetProperty(
Item.DataBindings["Text"].BindingMemberInfo.BindingMember);
Text = (string)PropertyInfo.GetValue(Item.ComboBoxItem, null);
}
else
Text = Item.Text;
if (Text.CompareTo(displayName) == 0)
return Item;
}
throw new ArgumentOutOfRangeException(String.Format("\"{0}\" does not exist in this combo box.", displayName));
}
}
#endregion
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public class CheckBoxProperties
{
public CheckBoxProperties() { }
#region PRIVATE PROPERTIES
private Appearance _Appearance = Appearance.Normal;
private bool _AutoSize = false;
private bool _AutoCheck = true;
private bool _AutoEllipsis = false;
private ContentAlignment _CheckAlign = ContentAlignment.MiddleLeft;
private Color _FlatAppearanceBorderColor = Color.Empty;
private int _FlatAppearanceBorderSize = 1;
private Color _FlatAppearanceCheckedBackColor = Color.Empty;
private Color _FlatAppearanceMouseDownBackColor = Color.Empty;
private Color _FlatAppearanceMouseOverBackColor = Color.Empty;
private FlatStyle _FlatStyle = FlatStyle.Standard;
private Color _ForeColor = SystemColors.ControlText;
private RightToLeft _RightToLeft = RightToLeft.No;
private ContentAlignment _TextAlign = ContentAlignment.MiddleLeft;
private bool _ThreeState = false;
#endregion
#region PUBLIC PROPERTIES
[DefaultValue(Appearance.Normal)]
public Appearance Appearance
{
get { return _Appearance; }
set { _Appearance = value; OnPropertyChanged(); }
}
[DefaultValue(true)]
public bool AutoCheck
{
get { return _AutoCheck; }
set { _AutoCheck = value; OnPropertyChanged(); }
}
[DefaultValue(false)]
public bool AutoEllipsis
{
get { return _AutoEllipsis; }
set { _AutoEllipsis = value; OnPropertyChanged(); }
}
[DefaultValue(false)]
public bool AutoSize
{
get { return _AutoSize; }
set { _AutoSize = true; OnPropertyChanged(); }
}
[DefaultValue(ContentAlignment.MiddleLeft)]
public ContentAlignment CheckAlign
{
get { return _CheckAlign; }
set { _CheckAlign = value; OnPropertyChanged(); }
}
[DefaultValue(typeof(Color), "")]
public Color FlatAppearanceBorderColor
{
get { return _FlatAppearanceBorderColor; }
set { _FlatAppearanceBorderColor = value; OnPropertyChanged(); }
}
[DefaultValue(1)]
public int FlatAppearanceBorderSize
{
get { return _FlatAppearanceBorderSize; }
set { _FlatAppearanceBorderSize = value; OnPropertyChanged(); }
}
[DefaultValue(typeof(Color), "")]
public Color FlatAppearanceCheckedBackColor
{
get { return _FlatAppearanceCheckedBackColor; }
set { _FlatAppearanceCheckedBackColor = value; OnPropertyChanged(); }
}
[DefaultValue(typeof(Color), "")]
public Color FlatAppearanceMouseDownBackColor
{
get { return _FlatAppearanceMouseDownBackColor; }
set { _FlatAppearanceMouseDownBackColor = value; OnPropertyChanged(); }
}
[DefaultValue(typeof(Color), "")]
public Color FlatAppearanceMouseOverBackColor
{
get { return _FlatAppearanceMouseOverBackColor; }
set { _FlatAppearanceMouseOverBackColor = value; OnPropertyChanged(); }
}
[DefaultValue(FlatStyle.Standard)]
public FlatStyle FlatStyle
{
get { return _FlatStyle; }
set { _FlatStyle = value; OnPropertyChanged(); }
}
[DefaultValue(typeof(SystemColors), "ControlText")]
public Color ForeColor
{
get { return _ForeColor; }
set { _ForeColor = value; OnPropertyChanged(); }
}
[DefaultValue(RightToLeft.No)]
public RightToLeft RightToLeft
{
get { return _RightToLeft; }
set { _RightToLeft = value; OnPropertyChanged(); }
}
[DefaultValue(ContentAlignment.MiddleLeft)]
public ContentAlignment TextAlign
{
get { return _TextAlign; }
set { _TextAlign = value; OnPropertyChanged(); }
}
[DefaultValue(false)]
public bool ThreeState
{
get { return _ThreeState; }
set { _ThreeState = value; OnPropertyChanged(); }
}
#endregion
#region EVENTS AND EVENT CALLERS
/// <summary>
/// Called when any property changes.
/// </summary>
public event EventHandler PropertyChanged;
protected void OnPropertyChanged()
{
EventHandler handler = PropertyChanged;
if (handler != null)
handler(this, EventArgs.Empty);
}
#endregion
}
}
================================================
FILE: CheckBoxComboBox/CheckBoxComboBox.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.20404</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{70A25201-8EA4-48F8-A4A6-ED13ADF8823C}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CheckBoxComboBox</RootNamespace>
<AssemblyName>CheckBoxComboBox</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CheckBoxComboBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CheckBoxComboBox.Designer.cs">
<DependentUpon>CheckBoxComboBox.cs</DependentUpon>
</Compile>
<Compile Include="GripBounds.cs" />
<Compile Include="NativeMethods.cs" />
<Compile Include="Selection Wrappers\ListSelectionWrapper.cs" />
<Compile Include="Selection Wrappers\ObjectSelectionWrapper.cs" />
<Compile Include="Popup.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Popup.Designer.cs">
<DependentUpon>Popup.cs</DependentUpon>
</Compile>
<Compile Include="PopupComboBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="PopupComboBox.Designer.cs">
<DependentUpon>PopupComboBox.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="PopupComboBox.resx">
<DependentUpon>PopupComboBox.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
================================================
FILE: CheckBoxComboBox/GripBounds.cs
================================================
using System.Drawing;
namespace PresentationControls
{
/// <summary>
/// CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp".
/// </summary>
internal struct GripBounds
{
private const int GripSize = 6;
private const int CornerGripSize = GripSize << 1;
public GripBounds(Rectangle clientRectangle)
{
this.clientRectangle = clientRectangle;
}
private Rectangle clientRectangle;
public Rectangle ClientRectangle
{
get { return clientRectangle; }
//set { clientRectangle = value; }
}
public Rectangle Bottom
{
get
{
Rectangle rect = ClientRectangle;
rect.Y = rect.Bottom - GripSize + 1;
rect.Height = GripSize;
return rect;
}
}
public Rectangle BottomRight
{
get
{
Rectangle rect = ClientRectangle;
rect.Y = rect.Bottom - CornerGripSize + 1;
rect.Height = CornerGripSize;
rect.X = rect.Width - CornerGripSize + 1;
rect.Width = CornerGripSize;
return rect;
}
}
public Rectangle Top
{
get
{
Rectangle rect = ClientRectangle;
rect.Height = GripSize;
return rect;
}
}
public Rectangle TopRight
{
get
{
Rectangle rect = ClientRectangle;
rect.Height = CornerGripSize;
rect.X = rect.Width - CornerGripSize + 1;
rect.Width = CornerGripSize;
return rect;
}
}
public Rectangle Left
{
get
{
Rectangle rect = ClientRectangle;
rect.Width = GripSize;
return rect;
}
}
public Rectangle BottomLeft
{
get
{
Rectangle rect = ClientRectangle;
rect.Width = CornerGripSize;
rect.Y = rect.Height - CornerGripSize + 1;
rect.Height = CornerGripSize;
return rect;
}
}
public Rectangle Right
{
get
{
Rectangle rect = ClientRectangle;
rect.X = rect.Right - GripSize + 1;
rect.Width = GripSize;
return rect;
}
}
public Rectangle TopLeft
{
get
{
Rectangle rect = ClientRectangle;
rect.Width = CornerGripSize;
rect.Height = CornerGripSize;
return rect;
}
}
}
}
================================================
FILE: CheckBoxComboBox/NativeMethods.cs
================================================
using System;
using System.Drawing;
using System.Runtime.InteropServices;
namespace PresentationControls
{
/// <summary>
/// CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp".
/// </summary>
internal static class NativeMethods
{
internal const int WM_NCHITTEST = 0x0084,
WM_NCACTIVATE = 0x0086,
WS_EX_NOACTIVATE = 0x08000000,
HTTRANSPARENT = -1,
HTLEFT = 10,
HTRIGHT = 11,
HTTOP = 12,
HTTOPLEFT = 13,
HTTOPRIGHT = 14,
HTBOTTOM = 15,
HTBOTTOMLEFT = 16,
HTBOTTOMRIGHT = 17,
WM_USER = 0x0400,
WM_REFLECT = WM_USER + 0x1C00,
WM_COMMAND = 0x0111,
CBN_DROPDOWN = 7,
WM_GETMINMAXINFO = 0x0024;
internal static int HIWORD(int n)
{
return (n >> 16) & 0xffff;
}
internal static int HIWORD(IntPtr n)
{
return HIWORD(unchecked((int)(long)n));
}
internal static int LOWORD(int n)
{
return n & 0xffff;
}
internal static int LOWORD(IntPtr n)
{
return LOWORD(unchecked((int)(long)n));
}
[StructLayout(LayoutKind.Sequential)]
internal struct MINMAXINFO
{
public Point reserved;
public Size maxSize;
public Point maxPosition;
public Size minTrackSize;
public Size maxTrackSize;
}
}
}
================================================
FILE: CheckBoxComboBox/Popup.Designer.cs
================================================
namespace PresentationControls
{
partial class Popup
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
if (content != null)
{
System.Windows.Forms.Control _content = content;
content = null;
_content.Dispose();
}
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
================================================
FILE: CheckBoxComboBox/Popup.cs
================================================
using System;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Windows.Forms;
using VS = System.Windows.Forms.VisualStyles;
/*
<li>Base class for custom tooltips.</li>
<li>Office-2007-like tooltip class.</li>
*/
namespace PresentationControls
{
/// <summary>
/// CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp".
/// Represents a pop-up window.
/// </summary>
[CLSCompliant(true), ToolboxItem(false)]
public partial class Popup : ToolStripDropDown
{
#region " Fields & Properties "
private Control content;
/// <summary>
/// Gets the content of the pop-up.
/// </summary>
public Control Content
{
get { return content; }
}
private bool fade;
/// <summary>
/// Gets a value indicating whether the <see cref="PopupControl.Popup"/> uses the fade effect.
/// </summary>
/// <value><c>true</c> if pop-up uses the fade effect; otherwise, <c>false</c>.</value>
/// <remarks>To use the fade effect, the FocusOnOpen property also has to be set to <c>true</c>.</remarks>
public bool UseFadeEffect
{
get { return fade; }
set
{
if (fade == value) return;
fade = value;
}
}
private bool focusOnOpen = true;
/// <summary>
/// Gets or sets a value indicating whether to focus the content after the pop-up has been opened.
/// </summary>
/// <value><c>true</c> if the content should be focused after the pop-up has been opened; otherwise, <c>false</c>.</value>
/// <remarks>If the FocusOnOpen property is set to <c>false</c>, then pop-up cannot use the fade effect.</remarks>
public bool FocusOnOpen
{
get { return focusOnOpen; }
set { focusOnOpen = value; }
}
private bool acceptAlt = true;
/// <summary>
/// Gets or sets a value indicating whether presing the alt key should close the pop-up.
/// </summary>
/// <value><c>true</c> if presing the alt key does not close the pop-up; otherwise, <c>false</c>.</value>
public bool AcceptAlt
{
get { return acceptAlt; }
set { acceptAlt = value; }
}
private Popup ownerPopup;
private Popup childPopup;
private bool _resizable;
private bool resizable;
/// <summary>
/// Gets or sets a value indicating whether this <see cref="PopupControl.Popup" /> is resizable.
/// </summary>
/// <value><c>true</c> if resizable; otherwise, <c>false</c>.</value>
public bool Resizable
{
get { return resizable && _resizable; }
set { resizable = value; }
}
private ToolStripControlHost host;
private Size minSize;
/// <summary>
/// Gets or sets the size that is the lower limit that <see cref="M:System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)" /> can specify.
/// </summary>
/// <returns>An ordered pair of type <see cref="T:System.Drawing.Size" /> representing the width and height of a rectangle.</returns>
public new Size MinimumSize
{
get { return minSize; }
set { minSize = value; }
}
private Size maxSize;
/// <summary>
/// Gets or sets the size that is the upper limit that <see cref="M:System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)" /> can specify.
/// </summary>
/// <returns>An ordered pair of type <see cref="T:System.Drawing.Size" /> representing the width and height of a rectangle.</returns>
public new Size MaximumSize
{
get { return maxSize; }
set { maxSize = value; }
}
/// <summary>
/// Gets parameters of a new window.
/// </summary>
/// <returns>An object of type <see cref="T:System.Windows.Forms.CreateParams" /> used when creating a new window.</returns>
protected override CreateParams CreateParams
{
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= NativeMethods.WS_EX_NOACTIVATE;
return cp;
}
}
#endregion
#region " Constructors "
/// <summary>
/// Initializes a new instance of the <see cref="PopupControl.Popup"/> class.
/// </summary>
/// <param name="content">The content of the pop-up.</param>
/// <remarks>
/// Pop-up will be disposed immediately after disposion of the content control.
/// </remarks>
/// <exception cref="T:System.ArgumentNullException"><paramref name="content" /> is <code>null</code>.</exception>
public Popup(Control content)
{
if (content == null)
{
throw new ArgumentNullException("content");
}
this.content = content;
this.fade = SystemInformation.IsMenuAnimationEnabled && SystemInformation.IsMenuFadeEnabled;
this._resizable = true;
InitializeComponent();
AutoSize = false;
DoubleBuffered = true;
ResizeRedraw = true;
host = new ToolStripControlHost(content);
Padding = Margin = host.Padding = host.Margin = Padding.Empty;
MinimumSize = content.MinimumSize;
content.MinimumSize = content.Size;
MaximumSize = content.MaximumSize;
content.MaximumSize = content.Size;
Size = content.Size;
content.Location = Point.Empty;
Items.Add(host);
content.Disposed += delegate(object sender, EventArgs e)
{
content = null;
Dispose(true);
};
content.RegionChanged += delegate(object sender, EventArgs e)
{
UpdateRegion();
};
content.Paint += delegate(object sender, PaintEventArgs e)
{
PaintSizeGrip(e);
};
UpdateRegion();
}
#endregion
#region " Methods "
/// <summary>
/// Processes a dialog box key.
/// </summary>
/// <param name="keyData">One of the <see cref="T:System.Windows.Forms.Keys" /> values that represents the key to process.</param>
/// <returns>
/// true if the key was processed by the control; otherwise, false.
/// </returns>
protected override bool ProcessDialogKey(Keys keyData)
{
if (acceptAlt && ((keyData & Keys.Alt) == Keys.Alt)) return false;
return base.ProcessDialogKey(keyData);
}
/// <summary>
/// Updates the pop-up region.
/// </summary>
protected void UpdateRegion()
{
if (this.Region != null)
{
this.Region.Dispose();
this.Region = null;
}
if (content.Region != null)
{
this.Region = content.Region.Clone();
}
}
/// <summary>
/// Shows pop-up window below the specified control.
/// </summary>
/// <param name="control">The control below which the pop-up will be shown.</param>
/// <remarks>
/// When there is no space below the specified control, the pop-up control is shown above it.
/// </remarks>
/// <exception cref="T:System.ArgumentNullException"><paramref name="control"/> is <code>null</code>.</exception>
public void Show(Control control)
{
if (control == null)
{
throw new ArgumentNullException("control");
}
SetOwnerItem(control);
Show(control, control.ClientRectangle);
}
/// <summary>
/// Shows pop-up window below the specified area of specified control.
/// </summary>
/// <param name="control">The control used to compute screen location of specified area.</param>
/// <param name="area">The area of control below which the pop-up will be shown.</param>
/// <remarks>
/// When there is no space below specified area, the pop-up control is shown above it.
/// </remarks>
/// <exception cref="T:System.ArgumentNullException"><paramref name="control"/> is <code>null</code>.</exception>
public void Show(Control control, Rectangle area)
{
if (control == null)
{
throw new ArgumentNullException("control");
}
SetOwnerItem(control);
resizableTop = resizableRight = false;
Point location = control.PointToScreen(new Point(area.Left, area.Top + area.Height));
Rectangle screen = Screen.FromControl(control).WorkingArea;
if (location.X + Size.Width > (screen.Left + screen.Width))
{
resizableRight = true;
location.X = (screen.Left + screen.Width) - Size.Width;
}
if (location.Y + Size.Height > (screen.Top + screen.Height))
{
resizableTop = true;
location.Y -= Size.Height + area.Height;
}
location = control.PointToClient(location);
Show(control, location, ToolStripDropDownDirection.BelowRight);
}
private const int frames = 1;
private const int totalduration = 0; // ML : 2007-11-05 : was 100 but caused a flicker.
private const int frameduration = totalduration / frames;
/// <summary>
/// Adjusts the size of the owner <see cref="T:System.Windows.Forms.ToolStrip" /> to accommodate the <see cref="T:System.Windows.Forms.ToolStripDropDown" /> if the owner <see cref="T:System.Windows.Forms.ToolStrip" /> is currently displayed, or clears and resets active <see cref="T:System.Windows.Forms.ToolStripDropDown" /> child controls of the <see cref="T:System.Windows.Forms.ToolStrip" /> if the <see cref="T:System.Windows.Forms.ToolStrip" /> is not currently displayed.
/// </summary>
/// <param name="visible">true if the owner <see cref="T:System.Windows.Forms.ToolStrip" /> is currently displayed; otherwise, false.</param>
protected override void SetVisibleCore(bool visible)
{
double opacity = Opacity;
if (visible && fade && focusOnOpen) Opacity = 0;
base.SetVisibleCore(visible);
if (!visible || !fade || !focusOnOpen) return;
for (int i = 1; i <= frames; i++)
{
if (i > 1)
{
System.Threading.Thread.Sleep(frameduration);
}
Opacity = opacity * (double)i / (double)frames;
}
Opacity = opacity;
}
private bool resizableTop;
private bool resizableRight;
private void SetOwnerItem(Control control)
{
if (control == null)
{
return;
}
if (control is Popup)
{
Popup popupControl = control as Popup;
ownerPopup = popupControl;
ownerPopup.childPopup = this;
OwnerItem = popupControl.Items[0];
return;
}
if (control.Parent != null)
{
SetOwnerItem(control.Parent);
}
}
/// <summary>
/// Raises the <see cref="E:System.Windows.Forms.Control.SizeChanged" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> that contains the event data.</param>
protected override void OnSizeChanged(EventArgs e)
{
content.MinimumSize = Size;
content.MaximumSize = Size;
content.Size = Size;
content.Location = Point.Empty;
base.OnSizeChanged(e);
}
/// <summary>
/// Raises the <see cref="E:System.Windows.Forms.ToolStripDropDown.Opening" /> event.
/// </summary>
/// <param name="e">A <see cref="T:System.ComponentModel.CancelEventArgs" /> that contains the event data.</param>
protected override void OnOpening(CancelEventArgs e)
{
if (content.IsDisposed || content.Disposing)
{
e.Cancel = true;
return;
}
UpdateRegion();
base.OnOpening(e);
}
/// <summary>
/// Raises the <see cref="E:System.Windows.Forms.ToolStripDropDown.Opened" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> that contains the event data.</param>
protected override void OnOpened(EventArgs e)
{
if (ownerPopup != null)
{
ownerPopup._resizable = false;
}
if (focusOnOpen)
{
content.Focus();
}
base.OnOpened(e);
}
protected override void OnClosed(ToolStripDropDownClosedEventArgs e)
{
if (ownerPopup != null)
{
ownerPopup._resizable = true;
}
base.OnClosed(e);
}
public DateTime LastClosedTimeStamp = DateTime.Now;
protected override void OnVisibleChanged(EventArgs e)
{
if (Visible == false)
LastClosedTimeStamp = DateTime.Now;
base.OnVisibleChanged(e);
}
#endregion
#region " Resizing Support "
/// <summary>
/// Processes Windows messages.
/// </summary>
/// <param name="m">The Windows <see cref="T:System.Windows.Forms.Message" /> to process.</param>
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected override void WndProc(ref Message m)
{
if (InternalProcessResizing(ref m, false))
{
return;
}
base.WndProc(ref m);
}
/// <summary>
/// Processes the resizing messages.
/// </summary>
/// <param name="m">The message.</param>
/// <returns>true, if the WndProc method from the base class shouldn't be invoked.</returns>
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public bool ProcessResizing(ref Message m)
{
return InternalProcessResizing(ref m, true);
}
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPe
gitextract_dzt83he3/ ├── .github/ │ └── FUNDING.yml ├── .gitignore ├── BindingListView/ │ ├── AggregateBindingListView.cs │ ├── BindingListView.cs │ ├── BindingListView.csproj │ ├── BindingListView.nuspec │ ├── CompositeItemFilter.cs │ ├── IItemFilter.cs │ ├── INotifyingEditableObject.cs │ ├── InvalidSourceListException.cs │ ├── MultiSourceIndexList.cs │ ├── ObjectView.cs │ ├── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ └── ProvidedViewPropertyDescriptor.cs ├── CheckBoxComboBox/ │ ├── CheckBoxComboBox.Designer.cs │ ├── CheckBoxComboBox.cs │ ├── CheckBoxComboBox.csproj │ ├── GripBounds.cs │ ├── NativeMethods.cs │ ├── Popup.Designer.cs │ ├── Popup.cs │ ├── PopupComboBox.Designer.cs │ ├── PopupComboBox.cs │ ├── PopupComboBox.resx │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── Selection Wrappers/ │ ├── ListSelectionWrapper.cs │ └── ObjectSelectionWrapper.cs ├── DoomLauncher/ │ ├── Adapters/ │ │ ├── DataAccess.cs │ │ ├── DbDataSourceAdapter.cs │ │ ├── DirectoryDataSourceAdapter.cs │ │ ├── GameLauncher.cs │ │ ├── IdGamesDataAdapater.cs │ │ ├── Launch/ │ │ │ ├── ExtraParametersLaunchFeature.cs │ │ │ ├── GameFilesLaunchFeature.cs │ │ │ ├── ILaunchFeature.cs │ │ │ ├── IWadLaunchFeature.cs │ │ │ ├── LaunchParameters.cs │ │ │ ├── LaunchResult.cs │ │ │ ├── LoadSaveLaunchFeature.cs │ │ │ ├── MapSkillLaunchFeature.cs │ │ │ ├── PlayDemoLaunchFeature.cs │ │ │ ├── RecordLaunchFeature.cs │ │ │ ├── SourcePortExtraParametersLaunchFeature.cs │ │ │ ├── StatisticsReaderLaunchFeature.cs │ │ │ └── UtilityFilesLaunchFeature.cs │ │ ├── MSSQLDataAdapter.cs │ │ ├── PlaySession.cs │ │ ├── SqliteDatabaseAdapter.cs │ │ └── WadArchiveDataAdapter.cs │ ├── App.config │ ├── Archive/ │ │ ├── ArchiveReader.cs │ │ ├── Directory/ │ │ │ ├── DirectoryArchiveEntry.cs │ │ │ └── DirectoryArchiveReader.cs │ │ ├── EmptyArchiveReader.cs │ │ ├── FileArchiveReader.cs │ │ ├── IArchiveEntry.cs │ │ ├── IArchiveReader.cs │ │ ├── Rar/ │ │ │ ├── RarArchiveEntry.cs │ │ │ └── RarArchiveReader.cs │ │ ├── RecursiveArchiveReader.cs │ │ ├── SevenZip/ │ │ │ ├── SevenZipArchiveEntry.cs │ │ │ └── SevenZipArchiveReader.cs │ │ ├── Wad/ │ │ │ ├── WadArchiveReader.cs │ │ │ └── WadEntry.cs │ │ └── Zip/ │ │ ├── ZipArchiveReader.cs │ │ └── ZipArchiveReaderEntry.cs │ ├── Config/ │ │ ├── AppConfiguration.cs │ │ ├── AppVersion.cs │ │ ├── ColorTheme.cs │ │ ├── ColorThemeType.cs │ │ ├── ColumnConfig.cs │ │ ├── ConfigType.cs │ │ ├── DataCache.cs │ │ ├── FileManagement.cs │ │ ├── GameFileListEventArgs.cs │ │ ├── IDirectoriesConfiguration.cs │ │ ├── Icons.cs │ │ ├── LauncherPath.cs │ │ ├── ScreenFilter.cs │ │ └── TagMapLookup.cs │ ├── Controls/ │ │ ├── BasicFileView.cs │ │ ├── CCheckBox.cs │ │ ├── CComboBox.cs │ │ ├── CDataGridView.cs │ │ ├── CProgressBar.cs │ │ ├── CRichTextBox.Designer.cs │ │ ├── CRichTextBox.cs │ │ ├── CTabControl.cs │ │ ├── CheckBoxList.Designer.cs │ │ ├── CheckBoxList.cs │ │ ├── CheckBoxList.resx │ │ ├── ColumnField.cs │ │ ├── DownloadView.Designer.cs │ │ ├── DownloadView.cs │ │ ├── DownloadView.resx │ │ ├── DownloadViewItem.Designer.cs │ │ ├── DownloadViewItem.cs │ │ ├── DownloadViewItem.resx │ │ ├── FileType.cs │ │ ├── FilesCtrl.Designer.cs │ │ ├── FilesCtrl.cs │ │ ├── FilesCtrl.resx │ │ ├── FlowLayoutPanelDB.Designer.cs │ │ ├── FlowLayoutPanelDB.cs │ │ ├── FormButton.cs │ │ ├── GameFileAssociationView.Designer.cs │ │ ├── GameFileAssociationView.cs │ │ ├── GameFileAssociationView.resx │ │ ├── GameFileEdit.Designer.cs │ │ ├── GameFileEdit.cs │ │ ├── GameFileEdit.resx │ │ ├── GameFileSummary.Designer.cs │ │ ├── GameFileSummary.cs │ │ ├── GameFileSummary.resx │ │ ├── GameFileTile.Designer.cs │ │ ├── GameFileTile.cs │ │ ├── GameFileTile.resx │ │ ├── GameFileTileBase.cs │ │ ├── GameFileTileExpanded.Designer.cs │ │ ├── GameFileTileExpanded.cs │ │ ├── GameFileTileExpanded.resx │ │ ├── GameFileTileViewControl.Designer.cs │ │ ├── GameFileTileViewControl.cs │ │ ├── GameFileTileViewControl.resx │ │ ├── GameFileViewControl.Designer.cs │ │ ├── GameFileViewControl.cs │ │ ├── GameFileViewControl.resx │ │ ├── GenericFileView.Designer.cs │ │ ├── GenericFileView.cs │ │ ├── GenericFileView.resx │ │ ├── GlowButton.cs │ │ ├── GrowLabel.Designer.cs │ │ ├── GrowLabel.cs │ │ ├── PagingControl.Designer.cs │ │ ├── PagingControl.cs │ │ ├── PagingControl.resx │ │ ├── RatingControl.Designer.cs │ │ ├── RatingControl.cs │ │ ├── RatingControl.resx │ │ ├── ScreenshotView.Designer.cs │ │ ├── ScreenshotView.cs │ │ ├── ScreenshotView.resx │ │ ├── SearchControl.Designer.cs │ │ ├── SearchControl.cs │ │ ├── SearchControl.resx │ │ ├── SlideShowPictureBox.Designer.cs │ │ ├── SlideShowPictureBox.cs │ │ ├── SlideShowPictureBox.resx │ │ ├── SourcePortEdit.Designer.cs │ │ ├── SourcePortEdit.cs │ │ ├── SourcePortEdit.resx │ │ ├── StatBar.cs │ │ ├── StatisticsView.Designer.cs │ │ ├── StatisticsView.cs │ │ ├── StatisticsView.resx │ │ ├── StatsControl.Designer.cs │ │ ├── StatsControl.cs │ │ ├── StatsControl.resx │ │ ├── TableLayoutPanelDB.Designer.cs │ │ ├── TableLayoutPanelDB.cs │ │ ├── TagControl.Designer.cs │ │ ├── TagControl.cs │ │ ├── TagControl.resx │ │ ├── TagEdit.Designer.cs │ │ ├── TagEdit.cs │ │ ├── TagEdit.resx │ │ ├── TagSelectControl.Designer.cs │ │ ├── TagSelectControl.cs │ │ ├── TagSelectControl.resx │ │ ├── TitleBarControl.Designer.cs │ │ ├── TitleBarControl.cs │ │ ├── TitleBarControl.resx │ │ ├── UpdateControl.Designer.cs │ │ ├── UpdateControl.cs │ │ └── UpdateControl.resx │ ├── DataSources/ │ │ ├── CleanupFile.cs │ │ ├── ConfigurationData.cs │ │ ├── CustomParam.cs │ │ ├── FileData.cs │ │ ├── GameFile.cs │ │ ├── GameProfile.cs │ │ ├── ITagDataSource.cs │ │ ├── IWadData.cs │ │ ├── IdGamesGameFile.cs │ │ ├── NewFileData.cs │ │ ├── PreviewImage.cs │ │ ├── SettingsDataSource.cs │ │ ├── SourcePortData.cs │ │ ├── SourcePortLaunchType.cs │ │ ├── StaticTagData.cs │ │ ├── StatsData.cs │ │ ├── TagData.cs │ │ ├── TagMapping.cs │ │ ├── WadArchiveFile.cs │ │ └── WadArchiveGameFile.cs │ ├── Demo/ │ │ ├── CldDemoParser.cs │ │ ├── DemoUtil.cs │ │ └── IDemoParser.cs │ ├── DoomLauncher.VisualElementsManifest.xml │ ├── DoomLauncher.csproj │ ├── Dpi/ │ │ └── DpiScale.cs │ ├── Forms/ │ │ ├── AboutBox.Designer.cs │ │ ├── AboutBox.cs │ │ ├── AboutBox.resx │ │ ├── CumulativeStats.Designer.cs │ │ ├── CumulativeStats.cs │ │ ├── CumulativeStats.resx │ │ ├── DirectoriesForm.Designer.cs │ │ ├── DirectoriesForm.cs │ │ ├── DirectoriesForm.resx │ │ ├── FileDetailsEditForm.Designer.cs │ │ ├── FileDetailsEditForm.cs │ │ ├── FileDetailsEditForm.resx │ │ ├── FileManagementSelect.Designer.cs │ │ ├── FileManagementSelect.cs │ │ ├── FileManagementSelect.resx │ │ ├── FileSelectForm.Designer.cs │ │ ├── FileSelectForm.cs │ │ ├── FileSelectForm.resx │ │ ├── FilterForm.Designer.cs │ │ ├── FilterForm.cs │ │ ├── FilterForm.resx │ │ ├── FilterSettingsForm.Designer.cs │ │ ├── FilterSettingsForm.cs │ │ ├── FilterSettingsForm.resx │ │ ├── GameFileEditForm.Designer.cs │ │ ├── GameFileEditForm.cs │ │ ├── GameFileEditForm.resx │ │ ├── MainForm.Designer.cs │ │ ├── MainForm.cs │ │ ├── MainForm.resx │ │ ├── MainForm_Config.cs │ │ ├── MainForm_Init.cs │ │ ├── MainForm_Meta.cs │ │ ├── MainForm_Play.cs │ │ ├── MainForm_Sync.cs │ │ ├── MessageCheckBox.Designer.cs │ │ ├── MessageCheckBox.cs │ │ ├── MessageCheckBox.resx │ │ ├── MetaDataForm.Designer.cs │ │ ├── MetaDataForm.cs │ │ ├── MetaDataForm.resx │ │ ├── PlayForm.Designer.cs │ │ ├── PlayForm.cs │ │ ├── PlayForm.resx │ │ ├── PlayRandomForm.Designer.cs │ │ ├── PlayRandomForm.cs │ │ ├── PlayRandomForm.resx │ │ ├── ProgressBarForm.Designer.cs │ │ ├── ProgressBarForm.cs │ │ ├── ProgressBarForm.resx │ │ ├── SaveInfo.Designer.cs │ │ ├── SaveInfo.cs │ │ ├── SaveInfo.resx │ │ ├── ScreenshotEditForm.Designer.cs │ │ ├── ScreenshotEditForm.cs │ │ ├── ScreenshotEditForm.resx │ │ ├── ScreenshotViewerForm.Designer.cs │ │ ├── ScreenshotViewerForm.cs │ │ ├── ScreenshotViewerForm.resx │ │ ├── SettingsForm.Designer.cs │ │ ├── SettingsForm.cs │ │ ├── SettingsForm.resx │ │ ├── SimpleFileSelectForm.Designer.cs │ │ ├── SimpleFileSelectForm.cs │ │ ├── SimpleFileSelectForm.resx │ │ ├── SourcePortEditForm.Designer.cs │ │ ├── SourcePortEditForm.cs │ │ ├── SourcePortEditForm.resx │ │ ├── SourcePortViewForm.Designer.cs │ │ ├── SourcePortViewForm.cs │ │ ├── SourcePortViewForm.resx │ │ ├── SpecificFilesForm.Designer.cs │ │ ├── SpecificFilesForm.cs │ │ ├── SpecificFilesForm.resx │ │ ├── SplashScreen.Designer.cs │ │ ├── SplashScreen.cs │ │ ├── SplashScreen.resx │ │ ├── StatsInfo.Designer.cs │ │ ├── StatsInfo.cs │ │ ├── StatsInfo.resx │ │ ├── SyncStatusForm.Designer.cs │ │ ├── SyncStatusForm.cs │ │ ├── SyncStatusForm.resx │ │ ├── TagEditForm.Designer.cs │ │ ├── TagEditForm.cs │ │ ├── TagEditForm.resx │ │ ├── TagForm.Designer.cs │ │ ├── TagForm.cs │ │ ├── TagForm.resx │ │ ├── TagSelectForm.Designer.cs │ │ ├── TagSelectForm.cs │ │ ├── TagSelectForm.resx │ │ ├── TextBoxForm.Designer.cs │ │ ├── TextBoxForm.cs │ │ ├── TextBoxForm.resx │ │ ├── TxtGenerator.Designer.cs │ │ ├── TxtGenerator.cs │ │ ├── TxtGenerator.resx │ │ ├── Welcome.Designer.cs │ │ ├── Welcome.cs │ │ └── Welcome.resx │ ├── GameFileView/ │ │ ├── GameFileViewFactory.cs │ │ └── GameFileViewType.cs │ ├── GameStores/ │ │ ├── AutomaticGameStoreCheck.cs │ │ ├── GameStoreFiles.cs │ │ ├── StoreGame.cs │ │ └── StoreGameLoader.cs │ ├── Handlers/ │ │ ├── AddFileType.cs │ │ ├── ArchiveUtil.cs │ │ ├── AutoCompleteCombo.cs │ │ ├── DemoHandler.cs │ │ ├── DownloadHandler.cs │ │ ├── FIleAddResults.cs │ │ ├── FileLoadHandler.cs │ │ ├── FileLoadHandlerLegacy.cs │ │ ├── FileMapComparer.cs │ │ ├── GameFileTileManager.cs │ │ ├── GameProfileUtil.cs │ │ ├── ImageExtensions.cs │ │ ├── InvalidFile.cs │ │ ├── LaunchData.cs │ │ ├── MenuConstants.cs │ │ ├── NativeMethods.cs │ │ ├── NewFileDetector.cs │ │ ├── PathExtensions.cs │ │ ├── SaveGameHandler.cs │ │ ├── ScreenshotHandler.cs │ │ ├── Sync/ │ │ │ ├── Doom64SyncAction.cs │ │ │ ├── Doom64TitlePicSyncAction.cs │ │ │ ├── GameConfSyncAction.cs │ │ │ ├── GameInfoSyncAction.cs │ │ │ ├── ISyncAction.cs │ │ │ ├── IWadTitlesSyncAction.cs │ │ │ ├── IdGamesTextFileParser.cs │ │ │ ├── IdGamesTextInfo.cs │ │ │ ├── KnownWadsSyncAction.cs │ │ │ ├── MapInfoUtil.cs │ │ │ ├── MapStringSyncAction.cs │ │ │ ├── StartupImageSyncAction.cs │ │ │ ├── SyncResult.cs │ │ │ ├── TextFileSyncAction.cs │ │ │ ├── TitlePicSyncAction.cs │ │ │ └── TitlePicUtil.cs │ │ ├── SyncFileData.cs │ │ ├── SyncFileOption.cs │ │ ├── SyncLibraryHandler.cs │ │ ├── TabHandler.cs │ │ ├── TabKeys.cs │ │ ├── ThumbnailManager.cs │ │ ├── ToolTipDisplayHandler.cs │ │ ├── ToolTipGroup.cs │ │ ├── ToolTipHandler.cs │ │ ├── Util.cs │ │ ├── UtilityHandler.cs │ │ ├── VersionHandler.cs │ │ └── VersionUpdateResults.cs │ ├── Help.docx │ ├── IWad/ │ │ └── IWadInfo.cs │ ├── Interfaces/ │ │ ├── IConfigurationData.cs │ │ ├── IConfigurationDataSourceAdapter.cs │ │ ├── ICustomParam.cs │ │ ├── IDataSourceAdapter.cs │ │ ├── IDatabaseAdapter.cs │ │ ├── IFileAssociationView.cs │ │ ├── IFileData.cs │ │ ├── IGameFile.cs │ │ ├── IGameFileColumnView.cs │ │ ├── IGameFileDataSourceAdapter.cs │ │ ├── IGameFileDownloadable.cs │ │ ├── IGameFileSortableView.cs │ │ ├── IGameFileTile.cs │ │ ├── IGameFileView.cs │ │ ├── IGameProfile.cs │ │ ├── IIWadData.cs │ │ ├── IIWadDataSourceAdapter.cs │ │ ├── INewFileDetector.cs │ │ ├── ISettingsDataSource.cs │ │ ├── ISourcePortData.cs │ │ ├── IStatsData.cs │ │ ├── IStatsDataSourceAdapter.cs │ │ ├── ITabView.cs │ │ ├── ITagData.cs │ │ ├── ITagMapLookup.cs │ │ └── ITagMapping.cs │ ├── LaunchArgs.cs │ ├── Program.Init.cs │ ├── Program.cs │ ├── ProgressBarType.cs │ ├── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── RecentFileType.cs │ ├── Resources/ │ │ ├── HereticPalette.pal │ │ ├── HexenPalette.pal │ │ └── PLAYPAL.LMP │ ├── SaveGame/ │ │ ├── DsgSaveGameReader.cs │ │ ├── HelionSaveGameReader.cs │ │ ├── ISaveGameReader.cs │ │ └── ZDoomSaveGameReader.cs │ ├── Search/ │ │ ├── GameFileFieldType.cs │ │ ├── GameFileGetOptions.cs │ │ ├── GameFileSearchField.cs │ │ ├── GameFileSearchOp.cs │ │ ├── IGameFileGetOptions.cs │ │ └── OrderType.cs │ ├── SourcePort/ │ │ ├── DoomsdaySourcePortFlavor.cs │ │ ├── GenericSourcePortFlavor.cs │ │ ├── HelionSourcePortFlavor.cs │ │ ├── ISourcePortFlavor.cs │ │ ├── LevelstatSourcePortFlavor.cs │ │ ├── SpData.cs │ │ ├── StatdumpSourcePortFlavor.cs │ │ └── ZDoomSourcePortFlavor.cs │ ├── Statistics/ │ │ ├── IStatisticsReader.cs │ │ ├── LevelstatReader.cs │ │ ├── MultiLineStatReader.cs │ │ ├── NewStatisticsEventArgs.cs │ │ ├── StatFileScanner.cs │ │ ├── StatdumpReader.cs │ │ └── ZDoomStatsReader.cs │ ├── Stylize/ │ │ ├── CToolStripRenderer.cs │ │ ├── DarkTheme.cs │ │ ├── DefaultTheme.cs │ │ ├── IThemeColors.cs │ │ ├── ImmersiveDarkMode.cs │ │ ├── StyledMessageBox.cs │ │ └── Stylizer.cs │ ├── TabViews/ │ │ ├── BasicTabViewCtrl.Designer.cs │ │ ├── BasicTabViewCtrl.cs │ │ ├── BasicTabViewCtrl.resx │ │ ├── IWadTabViewCtrl.Designer.cs │ │ ├── IWadTabViewCtrl.cs │ │ ├── IdGamesTabViewCtrl.Designer.cs │ │ ├── IdGamesTabViewCtrl.cs │ │ ├── LocalTabViewCtrl.cs │ │ ├── OptionsTabViewCtrl.Designer.cs │ │ ├── OptionsTabViewCtrl.cs │ │ ├── TagTabView.Designer.cs │ │ ├── TagTabView.cs │ │ └── UntaggedTabView.cs │ ├── TextFileParsers/ │ │ └── ZdlParser.cs │ ├── Update/ │ │ ├── ApplicationUpdate.cs │ │ ├── ApplicationUpdateInfo.cs │ │ └── ApplicationUpdater.cs │ ├── WindowsVersion/ │ │ └── WindowsVersion.cs │ ├── app.manifest │ └── packages.config ├── DoomLauncher.sln ├── DoomLauncherRelease/ │ ├── App.config │ ├── DoomLauncherRelease.csproj │ ├── Program.cs │ └── Properties/ │ └── AssemblyInfo.cs ├── LICENSE ├── Newtonsoft.Json.xml ├── README.adoc ├── RELEASENOTES.md ├── Setup/ │ ├── EnableLaunchApplication.js │ └── Setup.vdproj ├── UnitTest/ │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Resources/ │ │ ├── TestSteamInstall/ │ │ │ └── config/ │ │ │ └── libraryfolders.vdf │ │ ├── TestSteamLibrary1/ │ │ │ └── steamapps/ │ │ │ ├── appmanifest_2280.acf │ │ │ ├── appmanifest_2390.acf │ │ │ └── common/ │ │ │ ├── TestDoom/ │ │ │ │ ├── base/ │ │ │ │ │ └── doom.wad │ │ │ │ └── rerelease/ │ │ │ │ ├── doom2.wad │ │ │ │ ├── id1.wad │ │ │ │ ├── masterlevels.wad │ │ │ │ ├── nerve.wad │ │ │ │ ├── plutonia.wad │ │ │ │ ├── sigil.wad │ │ │ │ └── tnt.wad │ │ │ └── TestHeretic/ │ │ │ └── base/ │ │ │ └── heretic.wad │ │ ├── TestSteamLibrary2/ │ │ │ └── steamapps/ │ │ │ ├── appmanifest_2360.acf │ │ │ ├── appmanifest_2390.acf │ │ │ └── common/ │ │ │ ├── TestHeretic/ │ │ │ │ └── base/ │ │ │ │ └── heretic.wad │ │ │ └── TestHexen/ │ │ │ └── base/ │ │ │ └── hexen.wad │ │ ├── chocosave1.dsg │ │ ├── invalid1.wad │ │ ├── invalid2.wad │ │ ├── prboomsave1.dsg │ │ ├── simple.wad │ │ ├── testpk3.pk3 │ │ ├── zandemo.cld │ │ ├── zdoomsave_v1.zds │ │ ├── zdoomsave_v2.zds │ │ ├── zdoomsave_v3.zds │ │ └── zdoomsave_v4.zds │ ├── TestInit.cs │ ├── Tests/ │ │ ├── Helpers/ │ │ │ ├── DirectoriesConfiguration.cs │ │ │ ├── Tree.cs │ │ │ ├── TreeEntry.cs │ │ │ └── TreeReader.cs │ │ ├── TestArchives.cs │ │ ├── TestAutomaticSteamCheck.cs │ │ ├── TestCldDemoParser.cs │ │ ├── TestCnDoomStats.cs │ │ ├── TestDirectoryAdapter.cs │ │ ├── TestDirectoryArchive.cs │ │ ├── TestDoom64SyncAction.cs │ │ ├── TestDoom64TitlePicSyncAction.cs │ │ ├── TestDsgSave.cs │ │ ├── TestFile.cs │ │ ├── TestFileDetector.cs │ │ ├── TestGameConfSyncAction.cs │ │ ├── TestGameFile.cs │ │ ├── TestGameFileTags.cs │ │ ├── TestGameInfoSyncAction.cs │ │ ├── TestGameLauncher.cs │ │ ├── TestGameProfile.cs │ │ ├── TestGameProfileUtil.cs │ │ ├── TestGameStoreFiles.cs │ │ ├── TestIWad.cs │ │ ├── TestIWadTitlesSyncAction.cs │ │ ├── TestIdGamesFileParser.cs │ │ ├── TestIdGamesTextInfo.cs │ │ ├── TestIgnoreRarExploit.cs │ │ ├── TestKnownWadsSyncAction.cs │ │ ├── TestLaunchParameters.cs │ │ ├── TestLauncherPath.cs │ │ ├── TestLevelstat.cs │ │ ├── TestLoadFiles.cs │ │ ├── TestMapLumps.cs │ │ ├── TestMapStringSyncAction.cs │ │ ├── TestRecursiveArchiveReader.cs │ │ ├── TestSourcePort.cs │ │ ├── TestSpecificFiles.cs │ │ ├── TestStartupImageSyncAction.cs │ │ ├── TestStatdump.cs │ │ ├── TestStats.cs │ │ ├── TestSteamLoader.cs │ │ ├── TestSyncLibraryHandler.cs │ │ ├── TestTextFileSyncAction.cs │ │ ├── TestUpdateInfo.cs │ │ ├── TestUtil.cs │ │ ├── TestWadReader.cs │ │ ├── TestZdlParser.cs │ │ ├── TestZdoomSave.cs │ │ └── TestZdoomStats.cs │ ├── UnitTest.csproj │ ├── app.config │ └── packages.config ├── WadReader/ │ ├── DoomImage/ │ │ ├── DoomImage.cs │ │ ├── Palette.cs │ │ └── PaletteReaders.cs │ ├── FileLump.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Util.cs │ ├── WadFileReader.cs │ ├── WadHeader.cs │ ├── WadReader.csproj │ ├── WadType.cs │ └── packages.config ├── WpfControlLibrary/ │ ├── AssemblyInfo.cs │ ├── WpfComboBox.xaml │ ├── WpfComboBox.xaml.cs │ └── WpfControlLibrary.csproj └── appveyor.yml
Showing preview only (315K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3343 symbols across 436 files)
FILE: BindingListView/AggregateBindingListView.cs
class AggregateBindingListView (line 10) | public class AggregateBindingListView<T> : Component, IBindingListView, ...
method AggregateBindingListView (line 14) | public AggregateBindingListView()
method AggregateBindingListView (line 27) | public AggregateBindingListView(IContainer container)
method ShouldSerializeListMember (line 241) | private bool ShouldSerializeListMember()
method OnAddingNew (line 261) | protected virtual T OnAddingNew()
method AddNew (line 296) | public ObjectView<T> AddNew()
method CancelNew (line 332) | public void CancelNew(int itemIndex)
method EndNew (line 353) | public void EndNew(int itemIndex)
method Refresh (line 417) | public void Refresh()
method SuspendAutoFilterAndSort (line 441) | public void SuspendAutoFilterAndSort()
method ResumeAutoFilterAndSort (line 446) | public void ResumeAutoFilterAndSort()
method FilterAndSort (line 455) | protected void FilterAndSort()
method BegunItemEdit (line 535) | protected virtual void BegunItemEdit(object sender, EventArgs e)
method CancelledItemEdit (line 544) | protected virtual void CancelledItemEdit(object sender, EventArgs e)
method EndedItemEdit (line 553) | protected virtual void EndedItemEdit(object sender, EventArgs e)
method SourceListsChanged (line 590) | protected virtual void SourceListsChanged(object sender, ListChangedEv...
method SourceListChanged (line 644) | private void SourceListChanged(object sender, ListChangedEventArgs e)
method ItemPropertyChanged (line 762) | private void ItemPropertyChanged(object sender, PropertyChangedEventAr...
method OnListChanged (line 786) | protected virtual void OnListChanged(ListChangedEventArgs e)
method OnListChanged (line 807) | private void OnListChanged(ListChangedType listChangedType, int newIndex)
method OnListChanged (line 818) | private void OnListChanged(ListChangedType listChangedType, int newInd...
method ApplyFilter (line 827) | public void ApplyFilter(IItemFilter<T> filter)
method ApplyFilter (line 832) | public void ApplyFilter(Predicate<T> includeItem)
method ShouldSerializeFilter (line 888) | private bool ShouldSerializeFilter()
method CreateItemFilter (line 893) | public static IItemFilter<T> CreateItemFilter(Predicate<T> predicate)
method RemoveFilter (line 936) | public void RemoveFilter()
method ApplySort (line 977) | public void ApplySort(PropertyDescriptor property, ListSortDirection d...
method ApplySort (line 990) | public void ApplySort(ListSortDescriptionCollection sorts)
method ApplySort (line 1006) | public void ApplySort(string sort)
method ApplySort (line 1058) | public void ApplySort(IComparer<T> comparer)
method ApplySort (line 1073) | public void ApplySort(Comparison<T> comparison)
method RemoveSort (line 1091) | public void RemoveSort()
method ShouldSerializeSort (line 1145) | private bool ShouldSerializeSort()
class SortComparer (line 1218) | private class SortComparer : IComparer<KeyValuePair<ListItemPair<T>, i...
method SortComparer (line 1226) | public SortComparer(ListSortDescriptionCollection sorts)
method Compare (line 1250) | public int Compare(KeyValuePair<ListItemPair<T>, int> x, KeyValuePai...
method BuildComparison (line 1263) | private static Comparison<T> BuildComparison(string propertyName, Li...
class ExternalSortComparer (line 1326) | private class ExternalSortComparer<U> : IComparer<KeyValuePair<ListIte...
method ExternalSortComparer (line 1328) | public ExternalSortComparer(IComparer<U> comparer)
method Compare (line 1335) | public int Compare(KeyValuePair<ListItemPair<U>, int> x, KeyValuePai...
class ExternalSortComparison (line 1341) | private class ExternalSortComparison<U> : IComparer<KeyValuePair<ListI...
method ExternalSortComparison (line 1343) | public ExternalSortComparison(Comparison<U> comparison)
method Compare (line 1350) | public int Compare(KeyValuePair<ListItemPair<U>, int> x, KeyValuePai...
method Find (line 1375) | public int Find(PropertyDescriptor property, object key)
method Find (line 1398) | public int Find(string propertyName, object key)
method AddNew (line 1424) | object IBindingList.AddNew()
method AddIndex (line 1500) | void IBindingList.AddIndex(PropertyDescriptor property)
method RemoveIndex (line 1509) | void IBindingList.RemoveIndex(PropertyDescriptor property)
method Add (line 1537) | int IList.Add(object value)
method Clear (line 1554) | void IList.Clear()
method Contains (line 1565) | bool IList.Contains(object item)
method IndexOf (line 1587) | int IList.IndexOf(object item)
method Insert (line 1606) | void IList.Insert(int index, object value)
method Remove (line 1653) | void IList.Remove(object value)
method RemoveAt (line 1663) | void IList.RemoveAt(int index)
method CopyTo (line 1717) | void ICollection.CopyTo(Array array, int index)
method GetEnumerator (line 1752) | IEnumerator<T> IEnumerable<T>.GetEnumerator()
method GetEnumerator (line 1764) | IEnumerator IEnumerable.GetEnumerator()
method GetItemProperties (line 1778) | PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDesc...
method ShouldProvideView (line 1813) | protected internal bool ShouldProvideView(PropertyDescriptor property)
method GetProvidedViewName (line 1818) | protected internal string GetProvidedViewName(PropertyDescriptor sourc...
method CreateProvidedView (line 1823) | protected internal object CreateProvidedView(ObjectView<T> @object, Pr...
method GetProvidedViewType (line 1830) | private static Type GetProvidedViewType(PropertyDescriptor sourceListP...
method AddProvidedViews (line 1850) | internal IEnumerable<PropertyDescriptor> AddProvidedViews(PropertyDesc...
method GetListName (line 1872) | string ITypedList.GetListName(PropertyDescriptor[] listAccessors)
method CreateListSortDescription (line 1890) | public ListSortDescription CreateListSortDescription(string propertyNa...
method GetPropertyDescriptor (line 1905) | private PropertyDescriptor GetPropertyDescriptor(string propertyName)
method HookEditableObjectEvents (line 1915) | private void HookEditableObjectEvents(ObjectView<T> editableObject)
method UnHookEditableObjectEvents (line 1927) | private void UnHookEditableObjectEvents(ObjectView<T> editableObject)
method HookPropertyChangedEvent (line 1938) | private void HookPropertyChangedEvent(ObjectView<T> editableObject)
method UnHookPropertyChangedEvent (line 1947) | private void UnHookPropertyChangedEvent(ObjectView<T> editableObject)
method BuildSavedList (line 1952) | private void BuildSavedList()
method GetSourceLists (line 1961) | protected IEnumerable<IList> GetSourceLists()
FILE: BindingListView/BindingListView.cs
class BindingListView (line 12) | public class BindingListView<T> : AggregateBindingListView<T>
method BindingListView (line 19) | public BindingListView(IList list)
method BindingListView (line 25) | public BindingListView(IContainer container)
method ShouldSerializeDataSource (line 71) | private bool ShouldSerializeDataSource()
method SourceListsChanged (line 76) | protected override void SourceListsChanged(object sender, ListChangedE...
FILE: BindingListView/CompositeItemFilter.cs
class CompositeItemFilter (line 6) | public class CompositeItemFilter<T> : IItemFilter<T>
method CompositeItemFilter (line 10) | public CompositeItemFilter()
method AddFilter (line 15) | public void AddFilter(IItemFilter<T> filter)
method RemoveFilter (line 20) | public void RemoveFilter(IItemFilter<T> filter)
method Include (line 25) | public bool Include(T item)
FILE: BindingListView/IItemFilter.cs
type IItemFilter (line 11) | public interface IItemFilter<T>
method Include (line 18) | bool Include(T item);
class IncludeAllItemFilter (line 25) | public class IncludeAllItemFilter<T> : IItemFilter<T>
method Include (line 27) | public bool Include(T item)
method ToString (line 34) | public override string ToString()
class PredicateItemFilter (line 64) | public class PredicateItemFilter<T> : IItemFilter<T>
method PredicateItemFilter (line 70) | public PredicateItemFilter(Predicate<T> includeDelegate)
method PredicateItemFilter (line 81) | public PredicateItemFilter(Predicate<T> includeDelegate, string name)
method Include (line 99) | public bool Include(T item)
method ToString (line 104) | public override string ToString()
FILE: BindingListView/INotifyingEditableObject.cs
type INotifyingEditableObject (line 9) | internal interface INotifyingEditableObject : IEditableObject
FILE: BindingListView/InvalidSourceListException.cs
class InvalidSourceListException (line 7) | [Serializable]
method InvalidSourceListException (line 10) | public InvalidSourceListException()
method InvalidSourceListException (line 16) | public InvalidSourceListException(string message)
method InvalidSourceListException (line 22) | public InvalidSourceListException(System.Runtime.Serialization.Seriali...
FILE: BindingListView/MultiSourceIndexList.cs
class MultiSourceIndexList (line 8) | internal class MultiSourceIndexList<T> : List<KeyValuePair<ListItemPair<...
method Add (line 10) | public void Add(IList sourceList, ObjectView<T> item, int index)
method IndexOfSourceIndex (line 20) | public int IndexOfSourceIndex(IList sourceList, int sourceIndex)
method IndexOfItem (line 37) | public int IndexOfItem(T item)
method IndexOfKey (line 54) | public int IndexOfKey(ObjectView<T> item)
method ContainsItem (line 71) | public bool ContainsItem(T item)
method ContainsKey (line 81) | public bool ContainsKey(ObjectView<T> key)
method GetKeyEnumerator (line 104) | public IEnumerator<ObjectView<T>> GetKeyEnumerator()
class ListItemPair (line 113) | internal class ListItemPair<T>
method ListItemPair (line 118) | public ListItemPair(IList list, ObjectView<T> item)
FILE: BindingListView/ObjectView.cs
class ObjectView (line 19) | [Serializable]
method ObjectView (line 26) | public ObjectView(T @object, AggregateBindingListView<T> parent)
method GetProvidedView (line 88) | public object GetProvidedView(string name)
method Equals (line 103) | public override bool Equals(object obj)
method GetHashCode (line 124) | public override int GetHashCode()
method ToString (line 129) | public override string ToString()
method ObjectPropertyChanged (line 134) | private void ObjectPropertyChanged(object sender, PropertyChangedEvent...
method ShouldProvideViewOf (line 140) | private bool ShouldProvideViewOf(PropertyDescriptor listProp)
method GetProvidedViewName (line 145) | private string GetProvidedViewName(PropertyDescriptor listProp)
method CreateProvidedViews (line 150) | private void CreateProvidedViews()
method OnEditBegun (line 183) | protected virtual void OnEditBegun()
method OnEditCancelled (line 191) | protected virtual void OnEditCancelled()
method OnEditEnded (line 199) | protected virtual void OnEditEnded()
method BeginEdit (line 211) | public void BeginEdit()
method CancelEdit (line 230) | public void CancelEdit()
method EndEdit (line 248) | public void EndEdit()
method OnPropertyChanged (line 304) | protected virtual void OnPropertyChanged(object sender, PropertyChange...
method GetAttributes (line 316) | AttributeCollection ICustomTypeDescriptor.GetAttributes()
method GetClassName (line 328) | string ICustomTypeDescriptor.GetClassName()
method GetComponentName (line 340) | string ICustomTypeDescriptor.GetComponentName()
method GetConverter (line 352) | TypeConverter ICustomTypeDescriptor.GetConverter()
method GetDefaultEvent (line 364) | EventDescriptor ICustomTypeDescriptor.GetDefaultEvent()
method GetDefaultProperty (line 376) | PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty()
method GetEditor (line 388) | object ICustomTypeDescriptor.GetEditor(Type editorBaseType)
method GetEvents (line 400) | EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] ...
method GetEvents (line 412) | EventDescriptorCollection ICustomTypeDescriptor.GetEvents()
method GetProperties (line 417) | PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attri...
method GetProperties (line 431) | PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties()
method GetPropertyOwner (line 436) | object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd)
type IProvideViews (line 451) | public interface IProvideViews
method GetProvidedView (line 453) | object GetProvidedView(string name);
FILE: BindingListView/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: BindingListView/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: BindingListView/ProvidedViewPropertyDescriptor.cs
class ProvidedViewPropertyDescriptor (line 7) | class ProvidedViewPropertyDescriptor : PropertyDescriptor
method ProvidedViewPropertyDescriptor (line 9) | public ProvidedViewPropertyDescriptor(string name, Type propertyType)
method CanResetValue (line 17) | public override bool CanResetValue(object component)
method GetValue (line 27) | public override object GetValue(object component)
method ResetValue (line 47) | public override void ResetValue(object component)
method SetValue (line 52) | public override void SetValue(object component, object value)
method ShouldSerializeValue (line 57) | public override bool ShouldSerializeValue(object component)
method CanProvideViewOf (line 66) | public static bool CanProvideViewOf(PropertyDescriptor prop)
FILE: CheckBoxComboBox/CheckBoxComboBox.Designer.cs
class CheckBoxComboBox (line 3) | partial class CheckBoxComboBox
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: CheckBoxComboBox/CheckBoxComboBox.cs
class CheckBoxComboBox (line 26) | public partial class CheckBoxComboBox : PopupComboBox
method CheckBoxComboBox (line 30) | public CheckBoxComboBox()
method GetCSVText (line 78) | internal string GetCSVText(bool skipFirstItem)
method Items_CheckBoxCheckedChanged (line 171) | private void Items_CheckBoxCheckedChanged(object sender, EventArgs e)
method OnCheckBoxCheckedChanged (line 180) | protected void OnCheckBoxCheckedChanged(object sender, EventArgs e)
method OnDropDownStyleChanged (line 207) | protected override void OnDropDownStyleChanged(EventArgs e)
method OnResize (line 217) | protected override void OnResize(EventArgs e)
method Clear (line 234) | public void Clear()
method ClearSelection (line 242) | public void ClearSelection()
method _CheckBoxProperties_PropertyChanged (line 266) | private void _CheckBoxProperties_PropertyChanged(object sender, EventA...
method WndProc (line 274) | protected override void WndProc(ref Message m)
class CheckBoxComboBoxListControlContainer (line 294) | [ToolboxItem(false)]
method CheckBoxComboBoxListControlContainer (line 299) | public CheckBoxComboBoxListControlContainer()
method WndProc (line 318) | protected override void WndProc(ref Message m)
class CheckBoxComboBoxListControl (line 333) | [ToolboxItem(false)]
method CheckBoxComboBoxListControl (line 338) | public CheckBoxComboBoxListControl(CheckBoxComboBox owner)
method WndProc (line 375) | protected override void WndProc(ref Message m)
method OnVisibleChanged (line 388) | protected override void OnVisibleChanged(EventArgs e)
method SynchroniseControlsWithComboBoxItems (line 398) | public void SynchroniseControlsWithComboBoxItems()
class CheckBoxComboBoxItem (line 494) | [ToolboxItem(false)]
method CheckBoxComboBoxItem (line 504) | public CheckBoxComboBoxItem(CheckBoxComboBox owner, object comboBoxItem)
method AddBindings (line 549) | public void AddBindings()
method OnCheckedChanged (line 579) | protected override void OnCheckedChanged(EventArgs e)
method ApplyProperties (line 603) | internal void ApplyProperties(CheckBoxProperties properties)
method CheckBoxComboBoxItem_PropertyChanged (line 632) | private void CheckBoxComboBoxItem_PropertyChanged(object sender, Prope...
class CheckBoxComboBoxItemList (line 652) | [ToolboxItem(false)]
method CheckBoxComboBoxItemList (line 657) | public CheckBoxComboBoxItemList(CheckBoxComboBox checkBoxComboBox)
method OnCheckBoxCheckedChanged (line 674) | protected void OnCheckBoxCheckedChanged(object sender, EventArgs e)
method item_CheckedChanged (line 680) | private void item_CheckedChanged(object sender, EventArgs e)
method Add (line 689) | [Obsolete("Do not add items to this list directly. Use the ComboBox it...
method AddRange (line 696) | public new void AddRange(IEnumerable<CheckBoxComboBoxItem> collection)
method Clear (line 703) | public new void Clear()
method Remove (line 710) | [Obsolete("Do not remove items from this list directly. Use the ComboB...
class CheckBoxProperties (line 764) | [TypeConverter(typeof(ExpandableObjectConverter))]
method CheckBoxProperties (line 767) | public CheckBoxProperties() { }
method OnPropertyChanged (line 891) | protected void OnPropertyChanged()
FILE: CheckBoxComboBox/GripBounds.cs
type GripBounds (line 8) | internal struct GripBounds
method GripBounds (line 13) | public GripBounds(Rectangle clientRectangle)
FILE: CheckBoxComboBox/NativeMethods.cs
class NativeMethods (line 10) | internal static class NativeMethods
method HIWORD (line 30) | internal static int HIWORD(int n)
method HIWORD (line 35) | internal static int HIWORD(IntPtr n)
method LOWORD (line 40) | internal static int LOWORD(int n)
method LOWORD (line 45) | internal static int LOWORD(IntPtr n)
type MINMAXINFO (line 50) | [StructLayout(LayoutKind.Sequential)]
FILE: CheckBoxComboBox/Popup.Designer.cs
class Popup (line 3) | partial class Popup
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 38) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: CheckBoxComboBox/Popup.cs
class Popup (line 19) | [CLSCompliant(true), ToolboxItem(false)]
method Popup (line 138) | public Popup(Control content)
method ProcessDialogKey (line 187) | protected override bool ProcessDialogKey(Keys keyData)
method UpdateRegion (line 196) | protected void UpdateRegion()
method Show (line 217) | public void Show(Control control)
method Show (line 236) | public void Show(Control control, Rectangle area)
method SetVisibleCore (line 267) | protected override void SetVisibleCore(bool visible)
method SetOwnerItem (line 287) | private void SetOwnerItem(Control control)
method OnSizeChanged (line 311) | protected override void OnSizeChanged(EventArgs e)
method OnOpening (line 324) | protected override void OnOpening(CancelEventArgs e)
method OnOpened (line 339) | protected override void OnOpened(EventArgs e)
method OnClosed (line 352) | protected override void OnClosed(ToolStripDropDownClosedEventArgs e)
method OnVisibleChanged (line 363) | protected override void OnVisibleChanged(EventArgs e)
method WndProc (line 378) | [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermiss...
method ProcessResizing (line 393) | [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermiss...
method InternalProcessResizing (line 399) | [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermiss...
method OnGetMinMaxInfo (line 421) | [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermiss...
method OnNcHitTest (line 431) | private bool OnNcHitTest(ref Message m, bool contentControl)
method PaintSizeGrip (line 494) | public void PaintSizeGrip(PaintEventArgs e)
FILE: CheckBoxComboBox/PopupComboBox.Designer.cs
class PopupComboBox (line 3) | partial class PopupComboBox
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 36) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: CheckBoxComboBox/PopupComboBox.cs
class PopupComboBox (line 13) | [ToolboxBitmap(typeof(System.Windows.Forms.ComboBox)), ToolboxItem(true)...
method PopupComboBox (line 19) | public PopupComboBox()
method ShowDropDown (line 57) | public void ShowDropDown()
method HideDropDown (line 68) | public void HideDropDown()
method WndProc (line 80) | [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermiss...
FILE: CheckBoxComboBox/Selection Wrappers/ListSelectionWrapper.cs
class ListSelectionWrapper (line 16) | public class ListSelectionWrapper<T> : List<ObjectSelectionWrapper<T>>
method ListSelectionWrapper (line 24) | public ListSelectionWrapper(IEnumerable source) : this(source, false) { }
method ListSelectionWrapper (line 29) | public ListSelectionWrapper(IEnumerable source, bool showCounts)
method ListSelectionWrapper (line 43) | public ListSelectionWrapper(IEnumerable source, string usePropertyAsDi...
method ListSelectionWrapper (line 49) | public ListSelectionWrapper(IEnumerable source, bool showCounts, strin...
method ClearCounts (line 119) | public void ClearCounts()
method CreateSelectionWrapper (line 130) | private ObjectSelectionWrapper<T> CreateSelectionWrapper(IEnumerator O...
method FindObjectWithItem (line 145) | public ObjectSelectionWrapper<T> FindObjectWithItem(T Object)
method Populate (line 201) | private void Populate()
method ListSelectionWrapper_ListChanged (line 218) | private void ListSelectionWrapper_ListChanged(object sender, ListChang...
FILE: CheckBoxComboBox/Selection Wrappers/ObjectSelectionWrapper.cs
class ObjectSelectionWrapper (line 12) | public class ObjectSelectionWrapper<T> : INotifyPropertyChanged
method ObjectSelectionWrapper (line 14) | public ObjectSelectionWrapper(T item, ListSelectionWrapper<T> container)
method OnPropertyChanged (line 128) | protected virtual void OnPropertyChanged(string propertyName)
FILE: DoomLauncher/Adapters/DataAccess.cs
class DataAccess (line 10) | public class DataAccess
method DataAccess (line 12) | public DataAccess(IDatabaseAdapter dbAdapter, string connectionString)
method ExecuteSelect (line 18) | public DataSet ExecuteSelect(string sql)
method ExecuteSelect (line 36) | public DataSet ExecuteSelect(string sql, IEnumerable<DbParameter> para...
method ExecuteNonQuery (line 59) | public void ExecuteNonQuery(string sql)
method ExecuteNonQuery (line 72) | public void ExecuteNonQuery(string sql, IEnumerable<DbParameter> param...
FILE: DoomLauncher/Adapters/DbDataSourceAdapter.cs
class DbDataSourceAdapter (line 15) | public class DbDataSourceAdapter : IDataSourceAdapter
method DbDataSourceAdapter (line 22) | public DbDataSourceAdapter(IDatabaseAdapter dbAdapter, string connecti...
method DbDataSourceAdapter (line 28) | public DbDataSourceAdapter(IDatabaseAdapter dbAdapter, string connecti...
method CreateAdapter (line 34) | public static IDataSourceAdapter CreateAdapter() => CreateAdapter(false);
method CreateAdapter (line 36) | public static IDataSourceAdapter CreateAdapter(bool outOfDateDatabase)
method CreateConnectionString (line 42) | public static string CreateConnectionString(string dataSource)
method GetGameFilesCount (line 47) | public int GetGameFilesCount()
method GetGameFiles (line 53) | public IEnumerable<IGameFile> GetGameFiles()
method GetGameFiles (line 59) | public IEnumerable<IGameFile> GetGameFiles(ITagData tag)
method GetGameFiles (line 66) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options)
method GetGameFiles (line 71) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options...
method GetUntaggedGameFiles (line 121) | public IEnumerable<IGameFile> GetUntaggedGameFiles()
method GetLimitOrderString (line 127) | private static string GetLimitOrderString(IGameFileGetOptions options)
method GetSelectFieldString (line 141) | private string GetSelectFieldString(GameFileFieldType[] selectFields)
method GetGameFileNames (line 156) | public IEnumerable<string> GetGameFileNames()
method GetGameFile (line 167) | public IGameFile GetGameFile(string fileName)
method GetGameFileIWads (line 183) | public IEnumerable<IGameFile> GetGameFileIWads()
method InsertGameFile (line 189) | public void InsertGameFile(IGameFile gameFile)
method UpdateGameFile (line 195) | public void UpdateGameFile(IGameFile gameFile)
method UpdateGameFile (line 200) | public void UpdateGameFile(IGameFile gameFile, GameFileFieldType[] upd...
method UpdateGameFiles (line 281) | public void UpdateGameFiles(GameFileFieldType ftWhere, GameFileFieldTy...
method DeleteGameFile (line 292) | public void DeleteGameFile(IGameFile gameFile)
method GetSourcePorts (line 300) | public IEnumerable<ISourcePortData> GetSourcePorts(bool loadArchived =...
method GetUtilities (line 303) | public IEnumerable<ISourcePortData> GetUtilities(bool loadArchived = f...
method GetDoom64 (line 306) | public IEnumerable<ISourcePortData> GetDoom64(bool loadArchived = fals...
method GetSourcePorts (line 309) | private IEnumerable<ISourcePortData> GetSourcePorts(SourcePortLaunchTy...
method CreateSourcePortDataSource (line 332) | private static ISourcePortData CreateSourcePortDataSource(DataTable dt...
method CheckDBNull (line 355) | private static object CheckDBNull(object obj, object defaultValue)
method GetSourcePort (line 363) | public ISourcePortData GetSourcePort(int sourcePortID)
method InsertSourcePort (line 373) | public void InsertSourcePort(ISourcePortData sourcePort)
method UpdateSourcePort (line 381) | public void UpdateSourcePort(ISourcePortData sourcePort)
method GetSourcePortParams (line 392) | private List<DbParameter> GetSourcePortParams(ISourcePortData sourcePort)
method DeleteSourcePort (line 412) | public void DeleteSourcePort(ISourcePortData sourcePort)
method GetIWads (line 417) | public IEnumerable<IIWadData> GetIWads()
method GetIWad (line 423) | public IIWadData GetIWad(int gameFileID)
method InsertIWad (line 429) | public void InsertIWad(IIWadData iwad)
method UpdateIWad (line 435) | public void UpdateIWad(IIWadData iwad)
method DeleteIWad (line 449) | public void DeleteIWad(IIWadData iwad)
method GetFiles (line 454) | public IEnumerable<IFileData> GetFiles()
method GetFiles (line 460) | public IEnumerable<IFileData> GetFiles(IGameFile gameFile)
method GetFiles (line 466) | public IEnumerable<IFileData> GetFiles(IGameFile gameFile, FileType fi...
method GetFiles (line 472) | public IEnumerable<IFileData> GetFiles(FileType fileTypeID)
method UpdateFile (line 478) | public void UpdateFile(IFileData file)
method UpdateFiles (line 500) | public void UpdateFiles(int sourcePortID_Where, int? sourcePortID_Set)
method InsertFile (line 506) | public void InsertFile(IFileData file)
method DeleteFile (line 513) | public void DeleteFile(IFileData file)
method DeleteFile (line 518) | public void DeleteFile(IGameFile file)
method DeleteFiles (line 523) | public void DeleteFiles(ISourcePortData sourcePort, FileType fileTypeID)
method GetConfiguration (line 528) | public IEnumerable<IConfigurationData> GetConfiguration()
method InsertConfiguration (line 534) | public void InsertConfiguration(IConfigurationData config)
method UpdateConfiguration (line 541) | public void UpdateConfiguration(IConfigurationData config)
method GetTags (line 558) | public IEnumerable<ITagData> GetTags()
method InsertTag (line 564) | public void InsertTag(ITagData tag)
method UpdateTag (line 571) | public void UpdateTag(ITagData tag)
method DeleteTag (line 591) | public void DeleteTag(ITagData tag)
method GetTagMappings (line 596) | public IEnumerable<ITagMapping> GetTagMappings()
method GetTagMappings (line 602) | public IEnumerable<ITagMapping> GetTagMappings(int gameFileID)
method InsertTagMapping (line 608) | public void InsertTagMapping(ITagMapping tag)
method DeleteTagMapping (line 614) | public void DeleteTagMapping(ITagMapping tag)
method DeleteTagMapping (line 619) | public void DeleteTagMapping(int tagID)
method GetStats (line 624) | public IEnumerable<IStatsData> GetStats()
method GetStats (line 630) | public IEnumerable<IStatsData> GetStats(int gameFileID)
method GetStats (line 636) | public IEnumerable<IStatsData> GetStats(IEnumerable<IGameFile> gameFiles)
method InsertStats (line 646) | public void InsertStats(IStatsData stats)
method UpdateStats (line 652) | public void UpdateStats(IStatsData stats)
method DeleteStatsByFile (line 665) | public void DeleteStatsByFile(int gameFileID)
method DeleteStats (line 670) | public void DeleteStats(int statID)
method DeleteStats (line 675) | public void DeleteStats(ISourcePortData sourcePort)
method GetGameProfiles (line 680) | public IEnumerable<IGameProfile> GetGameProfiles(int gameFileID)
method GetGlobalGameProfiles (line 686) | public IEnumerable<IGameProfile> GetGlobalGameProfiles()
method InsertGameProfile (line 692) | public void InsertGameProfile(IGameProfile gameProfile)
method UpdateGameProfile (line 698) | public void UpdateGameProfile(IGameProfile gameProfile)
method DeleteGameProfile (line 729) | public void DeleteGameProfile(int gameProfileID)
method GetCleanupFiles (line 734) | public IEnumerable<CleanupFile> GetCleanupFiles()
method InsertCleanupFile (line 739) | public void InsertCleanupFile(CleanupFile file)
method DeleteCleanupFile (line 745) | public void DeleteCleanupFile(CleanupFile file)
method InsertStatement (line 750) | private string InsertStatement(string tableName, object obj, out List<...
method InsertStatement (line 755) | private string InsertStatement(string tableName, object obj, string[] ...
method RemoveUnknownColumnsFromParameters (line 794) | private static List<DbParameter> RemoveUnknownColumnsFromParameters(Da...
method RemoveUnknownColumnsFromQuery (line 807) | private static StringBuilder RemoveUnknownColumnsFromQuery(DataTable d...
method ColumnExists (line 832) | private static bool ColumnExists(DataTable dt, string columnName)
method GetTableColumns (line 837) | private DataTable GetTableColumns(string tableName)
FILE: DoomLauncher/Adapters/DirectoryDataSourceAdapter.cs
class DirectoryDataSourceAdapter (line 10) | public class DirectoryDataSourceAdapter : IGameFileDataSourceAdapter, II...
method DirectoryDataSourceAdapter (line 12) | public DirectoryDataSourceAdapter(LauncherPath gameFileDirectory)
method GetGameFilesCount (line 17) | public int GetGameFilesCount()
method GetGameFileNames (line 23) | public IEnumerable<string> GetGameFileNames()
method GetGameFile (line 28) | public IGameFile GetGameFile(string fileName)
method GetGameFiles (line 40) | public IEnumerable<IGameFile> GetGameFiles()
method GetUntaggedGameFiles (line 45) | public IEnumerable<IGameFile> GetUntaggedGameFiles()
method GetGameFiles (line 50) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options)
method GetGameFileIWads (line 73) | public IEnumerable<IGameFile> GetGameFileIWads()
method DeleteGameFile (line 78) | public void DeleteGameFile(IGameFile gameFile)
method HandleDelete (line 83) | private static void HandleDelete(string directory, string filename)
method GetIWads (line 96) | public IEnumerable<IIWadData> GetIWads()
method GetIWad (line 101) | public IIWadData GetIWad(int gameFileID)
method InsertIWad (line 106) | public void InsertIWad(IIWadData iwad)
method UpdateIWad (line 111) | public void UpdateIWad(IIWadData iwad)
method DeleteIWad (line 116) | public void DeleteIWad(IIWadData iwad)
method InsertGameFile (line 121) | public void InsertGameFile(IGameFile gameFile)
method UpdateGameFile (line 126) | public void UpdateGameFile(IGameFile gameFile)
method UpdateGameFile (line 131) | public void UpdateGameFile(IGameFile gameFile, GameFileFieldType[] upd...
method CreateGameFile (line 148) | private IGameFile CreateGameFile(FileInfo fi)
method CreateGameFileFromDirectory (line 156) | private IGameFile CreateGameFileFromDirectory(string dir)
FILE: DoomLauncher/Adapters/GameLauncher.cs
class GameLauncher (line 12) | public class GameLauncher
method GameLauncher (line 22) | public GameLauncher(IDirectoriesConfiguration directories, List<ILaunc...
method GameLauncher (line 28) | public GameLauncher(IDirectoriesConfiguration directories) : this(dire...
method AddGameFileFeatureIfMissing (line 33) | private static List<ILaunchFeature> AddGameFileFeatureIfMissing(List<I...
method Launch (line 45) | public LaunchResult Launch(IGameFile gameFile, IEnumerable<IGameFile> ...
method GetLaunchParameters (line 77) | public LaunchParameters GetLaunchParameters(IGameFile gameFile, IEnume...
class GameLaunchInfo (line 84) | public class GameLaunchInfo
method GameLaunchInfo (line 92) | public GameLaunchInfo(GameLauncher adapter, IGameFile gameFile, ISou...
method proc_Exited (line 100) | public void proc_Exited(object sender, EventArgs e)
FILE: DoomLauncher/Adapters/IdGamesDataAdapater.cs
class IdGamesBadResponseException (line 12) | public class IdGamesBadResponseException : Exception
method IdGamesBadResponseException (line 14) | public IdGamesBadResponseException() : base("Bad response from idgames...
class IdGamesDataAdapater (line 17) | class IdGamesDataAdapater : IGameFileDataSourceAdapter
method IdGamesDataAdapater (line 27) | public IdGamesDataAdapater(string url, string apiPage, string mirrorUrl)
method GetGameFilesCount (line 34) | public int GetGameFilesCount()
method GetGameFiles (line 39) | public IEnumerable<IGameFile> GetGameFiles()
method GetUntaggedGameFiles (line 44) | public IEnumerable<IGameFile> GetUntaggedGameFiles()
method GetGameFiles (line 49) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options)
method GetGameFileIWads (line 81) | public IEnumerable<IGameFile> GetGameFileIWads()
method GetGameFileNames (line 86) | public IEnumerable<string> GetGameFileNames()
method GetGameFile (line 91) | public IGameFile GetGameFile(string fileName)
method GetGameFilesByName (line 97) | public IEnumerable<IGameFile> GetGameFilesByName(string fileName)
method InsertGameFile (line 103) | public void InsertGameFile(IGameFile gameFile)
method UpdateGameFile (line 108) | public void UpdateGameFile(IGameFile gameFile)
method UpdateGameFile (line 113) | public void UpdateGameFile(IGameFile gameFile, GameFileFieldType[] upd...
method DeleteGameFile (line 118) | public void DeleteGameFile(IGameFile gameFile)
method GetFiles (line 127) | private IEnumerable<IGameFile> GetFiles(string query, string itemName)
FILE: DoomLauncher/Adapters/Launch/ExtraParametersLaunchFeature.cs
class ExtraParametersLaunchFeature (line 7) | public class ExtraParametersLaunchFeature : ILaunchFeature
method ExtraParametersLaunchFeature (line 12) | public ExtraParametersLaunchFeature(string extraParameters, bool extra...
method CreateParameter (line 18) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/GameFilesLaunchFeature.cs
class GameFilesLaunchFeature (line 12) | public class GameFilesLaunchFeature : ILaunchFeature
method GameFilesLaunchFeature (line 18) | public GameFilesLaunchFeature(List<IGameFile> gameFiles, List<string> ...
method CreateParameter (line 25) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
method BuildLaunchString (line 51) | private string BuildLaunchString(ISourcePortFlavor sourcePort, List<st...
method GetExtractedFileNames (line 81) | public List<string> GetExtractedFileNames(ISourcePortData sourcePortDa...
method GetRelevantEntries (line 125) | public static IEnumerable<IArchiveEntry> GetRelevantEntries(IArchiveRe...
method EntryMatchesSourcePortExtensions (line 145) | private static bool EntryMatchesSourcePortExtensions(IArchiveEntry ent...
FILE: DoomLauncher/Adapters/Launch/ILaunchFeature.cs
type ILaunchFeature (line 7) | public interface ILaunchFeature
method CreateParameter (line 9) | LaunchParameters CreateParameter(IGameFile gameFile, IEnumerable<IGame...
FILE: DoomLauncher/Adapters/Launch/IWadLaunchFeature.cs
class IWadLaunchFeature (line 11) | public class IWadLaunchFeature : ILaunchFeature
method IWadLaunchFeature (line 16) | public IWadLaunchFeature(IGameFile iwad, bool extractFiles = true)
method CreateParameter (line 22) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
method GetExtractedFileName (line 59) | private string GetExtractedFileName(ISourcePortData sourcePortData, ID...
method GetFirstIWadEntry (line 83) | private IArchiveEntry GetFirstIWadEntry(IArchiveReader reader, ISource...
FILE: DoomLauncher/Adapters/Launch/LaunchParameters.cs
class LaunchParameters (line 7) | public class LaunchParameters
method LaunchParameters (line 25) | private LaunchParameters(string launchString, string recordedFileName,...
method Combine (line 35) | public LaunchParameters Combine(LaunchParameters other)
method WithRecordedFileName (line 56) | public LaunchParameters WithRecordedFileName(string recordedFileName)
method WithVariableReplacement (line 61) | public LaunchParameters WithVariableReplacement(string variable, strin...
method CombineDictionaries (line 70) | private IDictionary<A, A> CombineDictionaries<A>(IDictionary<A, A> our...
method ReplaceVariables (line 81) | private string ReplaceVariables(string paramString)
method ExclusiveParam (line 91) | public static LaunchParameters ExclusiveParam(string paramString)
method Param (line 96) | public static LaunchParameters Param(string paramString)
method Failure (line 101) | public static LaunchParameters Failure(string errorMessage)
FILE: DoomLauncher/Adapters/Launch/LaunchResult.cs
class LaunchResult (line 6) | public class LaunchResult
method LaunchResult (line 17) | private LaunchResult(GameLaunchInfo gameLaunchInfo, string errorMessage)
method Success (line 23) | public static LaunchResult Success(GameLaunchInfo gameLaunchInfo) =>
method Failure (line 26) | public static LaunchResult Failure(string errorMessage) =>
FILE: DoomLauncher/Adapters/Launch/LoadSaveLaunchFeature.cs
class LoadSaveLaunchFeature (line 8) | public class LoadSaveLaunchFeature : ILaunchFeature
method LoadSaveLaunchFeature (line 12) | public LoadSaveLaunchFeature(string loadSaveFile)
method CreateParameter (line 17) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/MapSkillLaunchFeature.cs
class MapSkillLaunchFeature (line 9) | public class MapSkillLaunchFeature : ILaunchFeature
method MapSkillLaunchFeature (line 15) | public MapSkillLaunchFeature(string map, string skill)
method CreateParameter (line 21) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/PlayDemoLaunchFeature.cs
class PlayDemoLaunchFeature (line 10) | public class PlayDemoLaunchFeature : ILaunchFeature
method PlayDemoLaunchFeature (line 14) | public PlayDemoLaunchFeature(string playDemoFile)
method CreateParameter (line 19) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/RecordLaunchFeature.cs
class RecordLaunchFeature (line 10) | public class RecordLaunchFeature : ILaunchFeature
method CreateParameter (line 12) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/SourcePortExtraParametersLaunchFeature.cs
class SourcePortExtraParametersLaunchFeature (line 7) | public class SourcePortExtraParametersLaunchFeature : ILaunchFeature
method CreateParameter (line 9) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/StatisticsReaderLaunchFeature.cs
class StatisticsReaderLaunchFeature (line 8) | public class StatisticsReaderLaunchFeature : ILaunchFeature
method CreateParameter (line 10) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
FILE: DoomLauncher/Adapters/Launch/UtilityFilesLaunchFeature.cs
class UtilityFilesLaunchFeature (line 12) | public class UtilityFilesLaunchFeature : ILaunchFeature
method UtilityFilesLaunchFeature (line 16) | public UtilityFilesLaunchFeature(List<SpecificFilesForm.SpecificFilePa...
method CreateParameter (line 21) | public LaunchParameters CreateParameter(IGameFile gameFile, IEnumerabl...
method BuildLaunchString (line 63) | private string BuildLaunchString(ISourcePortFlavor sourcePort, List<st...
FILE: DoomLauncher/Adapters/MSSQLDataAdapter.cs
class MSSQLDataAdapter (line 7) | class MSSQLDataAdapter : IDatabaseAdapter
method CreateConnection (line 9) | public DbConnection CreateConnection(string connectionString)
method CreateAdapter (line 14) | public DbDataAdapter CreateAdapter()
method CreateParameter (line 19) | public DbParameter CreateParameter(string name, object value)
FILE: DoomLauncher/Adapters/PlaySession.cs
class PlaySession (line 6) | public class PlaySession
method PlaySession (line 8) | public PlaySession(GameLaunchInfo launchInfo, IStatisticsReader statis...
FILE: DoomLauncher/Adapters/SqliteDatabaseAdapter.cs
class SqliteDatabaseAdapter (line 7) | public class SqliteDatabaseAdapter : IDatabaseAdapter
method CreateConnection (line 9) | public DbConnection CreateConnection(string connectionString)
method CreateAdapter (line 14) | public DbDataAdapter CreateAdapter()
method CreateParameter (line 19) | public DbParameter CreateParameter(string name, object value)
FILE: DoomLauncher/Adapters/WadArchiveDataAdapter.cs
class WadArchiveDataAdapter (line 12) | class WadArchiveDataAdapter : IGameFileDataSourceAdapter
method Test (line 17) | public WadArchiveGameFile Test(string file)
method GetGameFileFromMD5 (line 22) | private WadArchiveGameFile GetGameFileFromMD5(string filePath)
method GetGameFileByName (line 38) | private WadArchiveGameFile GetGameFileByName(string name)
method GetGameFileRequest (line 43) | private WadArchiveGameFile GetGameFileRequest(string url)
method GetGameFilesCount (line 67) | public int GetGameFilesCount()
method GetGameFiles (line 72) | public IEnumerable<IGameFile> GetGameFiles()
method GetUntaggedGameFiles (line 77) | public IEnumerable<IGameFile> GetUntaggedGameFiles()
method GetGameFiles (line 82) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options)
method GetGameFileIWads (line 94) | public IEnumerable<IGameFile> GetGameFileIWads()
method GetGameFileNames (line 99) | public IEnumerable<string> GetGameFileNames()
method GetGameFile (line 104) | public IGameFile GetGameFile(string fileName)
method InsertGameFile (line 109) | public void InsertGameFile(IGameFile gameFile)
method UpdateGameFile (line 114) | public void UpdateGameFile(IGameFile gameFile)
method UpdateGameFile (line 119) | public void UpdateGameFile(IGameFile gameFile, GameFileFieldType[] upd...
method DeleteGameFile (line 124) | public void DeleteGameFile(IGameFile gameFile)
method UpdateGameFiles (line 129) | public void UpdateGameFiles(GameFileFieldType ftWhere, GameFileFieldTy...
method GetSourcePorts (line 134) | public IEnumerable<ISourcePortData> GetSourcePorts()
method GetUtilities (line 139) | public IEnumerable<ISourcePortData> GetUtilities()
method GetSourcePort (line 145) | public ISourcePortData GetSourcePort(int sourcePortID)
method InsertSourcePort (line 150) | public void InsertSourcePort(ISourcePortData sourcePort)
method UpdateSourcePort (line 155) | public void UpdateSourcePort(ISourcePortData sourcePort)
method DeleteSourcePort (line 160) | public void DeleteSourcePort(ISourcePortData sourcePort)
method GetFiles (line 165) | public IEnumerable<IFileData> GetFiles()
method GetFiles (line 170) | public IEnumerable<IFileData> GetFiles(IGameFile gameFile)
method GetFiles (line 175) | public IEnumerable<IFileData> GetFiles(IGameFile gameFile, FileType fi...
method UpdateFiles (line 201) | public void UpdateFiles(int sourcePortID_Where, int? sourcePortID_Set)
method InsertFile (line 206) | public void InsertFile(IFileData file)
method UpdateFile (line 211) | public void UpdateFile(IFileData file)
method DeleteFile (line 216) | public void DeleteFile(IFileData file)
method DeleteFile (line 221) | public void DeleteFile(IGameFile file)
method DeleteFiles (line 226) | public void DeleteFiles(ISourcePortData sourcePort, FileType fileTypeID)
method GetGameFiles (line 231) | public IEnumerable<IGameFile> GetGameFiles(ITagData tag)
method GetGameFiles (line 236) | public IEnumerable<IGameFile> GetGameFiles(IGameFileGetOptions options...
method GetIWads (line 241) | public IEnumerable<IIWadData> GetIWads()
method GetIWad (line 246) | public IIWadData GetIWad(int gameFileID)
method InsertIWad (line 251) | public void InsertIWad(IIWadData iwad)
method DeleteIWad (line 256) | public void DeleteIWad(IIWadData iwad)
method UpdateIWad (line 261) | public void UpdateIWad(IIWadData iwad)
method GetConfiguration (line 266) | public IEnumerable<IConfigurationData> GetConfiguration()
method InsertConfiguration (line 271) | public void InsertConfiguration(IConfigurationData config)
method UpdateConfiguration (line 276) | public void UpdateConfiguration(IConfigurationData config)
method GetTags (line 281) | public IEnumerable<ITagData> GetTags()
method InsertTag (line 286) | public void InsertTag(ITagData tag)
method UpdateTag (line 291) | public void UpdateTag(ITagData tag)
method DeleteTag (line 296) | public void DeleteTag(ITagData tag)
method GetTagMappings (line 301) | public IEnumerable<ITagMapping> GetTagMappings()
method GetTagMappings (line 306) | public IEnumerable<ITagMapping> GetTagMappings(int gameFileID)
method InsertTagMapping (line 311) | public void InsertTagMapping(ITagMapping tag)
method DeleteTagMapping (line 316) | public void DeleteTagMapping(ITagMapping tag)
method DeleteTagMapping (line 321) | public void DeleteTagMapping(int tagID)
method GetStats (line 326) | public IEnumerable<IStatsData> GetStats()
method GetStats (line 331) | public IEnumerable<IStatsData> GetStats(int gameFileID)
method InsertStats (line 336) | public void InsertStats(IStatsData stats)
method UpdateStats (line 341) | public void UpdateStats(IStatsData stats)
method DeleteStatsByFile (line 346) | public void DeleteStatsByFile(int gameFileID)
method DeleteStats (line 351) | public void DeleteStats(int statID)
method DeleteStats (line 356) | public void DeleteStats(ISourcePortData sourcePort)
FILE: DoomLauncher/Archive/ArchiveReader.cs
class ArchiveReader (line 8) | public static class ArchiveReader
method SetSevenZipInteropLibrary (line 14) | public static void SetSevenZipInteropLibrary(string file) =>
method Create (line 17) | public static IArchiveReader Create(string path)
method IsRar (line 38) | private static bool IsRar(string ext) =>
method IsSevenZip (line 41) | private static bool IsSevenZip(string ext) =>
method IsWad (line 44) | public static bool IsWad(string ext) =>
method IsPk (line 47) | public static bool IsPk(string fileExtension)
FILE: DoomLauncher/Archive/Directory/DirectoryArchiveEntry.cs
class DirectoryArchiveEntry (line 5) | internal class DirectoryArchiveEntry : AbstractArchiveEntry
method DirectoryArchiveEntry (line 9) | public DirectoryArchiveEntry(string file)
method ExtractToFile (line 24) | public override void ExtractToFile(string file, bool overwrite = false)
method Read (line 29) | public override void Read(byte[] buffer, int offset, int length)
method GetNameWithoutExtension (line 35) | public override string GetNameWithoutExtension() => Name;
FILE: DoomLauncher/Archive/Directory/DirectoryArchiveReader.cs
class DirectoryArchiveReader (line 6) | public class DirectoryArchiveReader : IArchiveReader
method DirectoryArchiveReader (line 14) | public DirectoryArchiveReader(string directory)
method RecursivelyIterateDirectory (line 20) | void RecursivelyIterateDirectory(string directory)
method Dispose (line 36) | public void Dispose()
FILE: DoomLauncher/Archive/EmptyArchiveReader.cs
class EmptyArchiveReader (line 6) | public class EmptyArchiveReader : IArchiveReader
method Dispose (line 12) | public void Dispose()
FILE: DoomLauncher/Archive/FileArchiveReader.cs
class FileArchiveReader (line 7) | class FileArchiveReader : AbstractArchiveEntry, IArchiveReader
method FileArchiveReader (line 14) | public FileArchiveReader(string file)
method Read (line 22) | public override void Read(byte[] buffer, int offset, int length)
method ExtractToFile (line 38) | public override void ExtractToFile(string file, bool overwrite = false)
method Dispose (line 43) | public void Dispose()
method Dispose (line 49) | protected virtual void Dispose(bool disposing)
method Equals (line 54) | public override bool Equals(object obj)
method GetHashCode (line 63) | public override int GetHashCode()
method GetNameWithoutExtension (line 68) | public override string GetNameWithoutExtension() => Path.GetFileNameWi...
FILE: DoomLauncher/Archive/IArchiveEntry.cs
type IArchiveEntry (line 7) | public interface IArchiveEntry
method Read (line 10) | void Read(byte[] buffer, int offset, int length);
method ExtractToFile (line 13) | void ExtractToFile(string file, bool overwrite = false);
method ExtractToFileForceOverwrite (line 15) | void ExtractToFileForceOverwrite(string file);
method GetNameWithoutExtension (line 19) | string GetNameWithoutExtension();
class AbstractArchiveEntry (line 22) | public abstract class AbstractArchiveEntry : IArchiveEntry
method ExtractToFile (line 30) | public abstract void ExtractToFile(string file, bool overwrite = false);
method ExtractToFileForceOverwrite (line 32) | public void ExtractToFileForceOverwrite(string file)
method GetNameWithoutExtension (line 56) | public abstract string GetNameWithoutExtension();
method Read (line 57) | public abstract void Read(byte[] buffer, int offset, int length);
FILE: DoomLauncher/Archive/IArchiveReader.cs
type IArchiveReader (line 6) | public interface IArchiveReader : IDisposable
FILE: DoomLauncher/Archive/Rar/RarArchiveEntry.cs
class RarArchiveEntry (line 6) | public class RarArchiveEntry : AbstractArchiveEntry
method RarArchiveEntry (line 10) | public RarArchiveEntry(SharpCompress.Archives.Rar.RarArchiveEntry entry)
method ExtractToFile (line 25) | public override void ExtractToFile(string file, bool overwrite = false)
method Read (line 36) | public override void Read(byte[] buffer, int offset, int length)
method Equals (line 42) | public override bool Equals(object obj)
method GetHashCode (line 50) | public override int GetHashCode()
method GetNameWithoutExtension (line 55) | public override string GetNameWithoutExtension() => Path.GetFileNameWi...
method IsValid (line 57) | public static bool IsValid(SharpCompress.Archives.Rar.RarArchiveEntry ...
FILE: DoomLauncher/Archive/Rar/RarArchiveReader.cs
class RarArchiveReader (line 7) | public class RarArchiveReader : IArchiveReader
method RarArchiveReader (line 12) | public RarArchiveReader(string file)
method Dispose (line 22) | public void Dispose()
FILE: DoomLauncher/Archive/RecursiveArchiveReader.cs
class RecursiveArchiveReader (line 6) | public class RecursiveArchiveReader : IArchiveReader
method RecursiveArchiveReader (line 14) | public RecursiveArchiveReader(IArchiveReader root, Func<IArchiveEntry,...
method RecursiveSelect (line 23) | private IEnumerable<IArchiveEntry> RecursiveSelect()
method Dispose (line 74) | public void Dispose()
FILE: DoomLauncher/Archive/SevenZip/SevenZipArchiveEntry.cs
class SevenZipArchiveEntry (line 6) | public class SevenZipArchiveEntry : AbstractArchiveEntry
method SevenZipArchiveEntry (line 13) | public SevenZipArchiveEntry(SevenZipExtractor extractor, ArchiveFileIn...
method ExtractToFile (line 30) | public override void ExtractToFile(string file, bool overwrite = false)
method Read (line 39) | public override void Read(byte[] buffer, int offset, int length)
method Equals (line 52) | public override bool Equals(object obj)
method GetHashCode (line 60) | public override int GetHashCode()
method GetNameWithoutExtension (line 65) | public override string GetNameWithoutExtension() => Path.GetFileNameWi...
FILE: DoomLauncher/Archive/SevenZip/SevenZipArchiveReader.cs
class SevenZipArchiveReader (line 7) | public class SevenZipArchiveReader : IArchiveReader
method SevenZipArchiveReader (line 12) | public SevenZipArchiveReader(string file, string sevenZipInteropLibrary)
method Dispose (line 29) | public void Dispose()
class MemoryStreamManager (line 37) | public class MemoryStreamManager
FILE: DoomLauncher/Archive/Wad/WadArchiveReader.cs
class WadArchiveReader (line 7) | internal class WadArchiveReader : IArchiveReader
method WadArchiveReader (line 17) | public WadArchiveReader(string file)
method Dispose (line 28) | public void Dispose()
FILE: DoomLauncher/Archive/Wad/WadEntry.cs
class WadEntry (line 6) | public class WadEntry : AbstractArchiveEntry
method WadEntry (line 21) | public WadEntry(FileStream fs, FileLump lump)
method ExtractToFile (line 28) | public override void ExtractToFile(string file, bool overwrite = false)
method Read (line 33) | public override void Read(byte[] buffer, int offset, int length)
method GetNameWithoutExtension (line 38) | public override string GetNameWithoutExtension() => Name;
FILE: DoomLauncher/Archive/Zip/ZipArchiveReader.cs
class ZipArchiveReader (line 8) | public class ZipArchiveReader : IArchiveReader
method ZipArchiveReader (line 14) | public ZipArchiveReader(string file)
method Dispose (line 37) | public void Dispose()
method Dispose (line 43) | protected virtual void Dispose(bool disposing)
FILE: DoomLauncher/Archive/Zip/ZipArchiveReaderEntry.cs
class ZipArchiveReaderEntry (line 6) | class ZipArchiveReaderEntry : AbstractArchiveEntry
method ZipArchiveReaderEntry (line 10) | public ZipArchiveReaderEntry(ZipArchiveEntry zipArchiveEntry)
method Read (line 17) | public override void Read(byte[] buffer, int offset, int length)
method ExtractToFile (line 29) | public override void ExtractToFile(string file, bool overwrite = false)
method Equals (line 34) | public override bool Equals(object obj)
method GetHashCode (line 42) | public override int GetHashCode()
method GetNameWithoutExtension (line 47) | public override string GetNameWithoutExtension() => Path.GetFileNameWi...
FILE: DoomLauncher/Config/AppConfiguration.cs
class AppConfiguration (line 12) | public class AppConfiguration : IDirectoriesConfiguration
method AppConfiguration (line 43) | public AppConfiguration(IDataSourceAdapter adapter)
method Refresh (line 49) | public void Refresh()
method GetConfigValue (line 54) | public string GetConfigValue(ConfigType ct)
method GetTypedConfigValue (line 64) | public object GetTypedConfigValue(ConfigType ct, Type type)
method PathForFileType (line 69) | public LauncherPath PathForFileType(FileType type)
method GetValueFromConfig (line 86) | private static object GetValueFromConfig(string value, Type type)
method Refresh (line 110) | private void Refresh(bool throwErrors)
method TryGetDouble (line 187) | private static double TryGetDouble(IEnumerable<IConfigurationData> con...
method AddEvent (line 196) | private static void AddEvent(List<EventHandler> events, EventHandler e...
method GetValue (line 202) | private static string GetValue(IEnumerable<IConfigurationData> config,...
method SetChildDirectories (line 210) | private void SetChildDirectories(IEnumerable<IConfigurationData> config)
method GetGameFileDir (line 223) | private static LauncherPath GetGameFileDir(string gameFileDir)
method SetChildDirectory (line 240) | private LauncherPath SetChildDirectory(string gameFileDirectory, strin...
method RefreshColumnConfig (line 248) | public void RefreshColumnConfig()
method EnableCopySaveFiles (line 254) | public void EnableCopySaveFiles()
method VerifyPaths (line 265) | private void VerifyPaths(bool throwErrors)
method VerifyPath (line 275) | private void VerifyPath(LauncherPath path, bool throwErrors)
FILE: DoomLauncher/Config/AppVersion.cs
type AppVersion (line 3) | public enum AppVersion
FILE: DoomLauncher/Config/ColorTheme.cs
class ColorTheme (line 3) | public static class ColorTheme
FILE: DoomLauncher/Config/ColorThemeType.cs
type ColorThemeType (line 3) | public enum ColorThemeType
FILE: DoomLauncher/Config/ColumnConfig.cs
class ColumnConfig (line 6) | public class ColumnConfig
method ColumnConfig (line 8) | public ColumnConfig() { }
method ColumnConfig (line 9) | public ColumnConfig(string parent, string column, int width, SortOrder...
FILE: DoomLauncher/Config/ConfigType.cs
type ConfigType (line 3) | public enum ConfigType
FILE: DoomLauncher/Config/DataCache.cs
class DataCache (line 14) | public class DataCache
method Init (line 30) | public void Init(IDataSourceAdapter adapter)
method UpdateTags (line 54) | public void UpdateTags()
method SortTags (line 67) | public IEnumerable<ITagData> SortTags(IEnumerable<ITagData> tags) => t...
method UpdateGameFileTags (line 69) | public void UpdateGameFileTags(IEnumerable<IGameFile> gameFiles, IEnum...
method AddGameFileTag (line 93) | public void AddGameFileTag(IEnumerable<IGameFile> gameFiles, ITagData ...
method RemoveGameFileTag (line 112) | public void RemoveGameFileTag(IEnumerable<IGameFile> gameFiles, ITagDa...
method GetColumnConfig (line 123) | public ColumnConfig[] GetColumnConfig()
method InsertIdGamesReleaseDate (line 148) | private static ColumnConfig[] InsertIdGamesReleaseDate(ColumnConfig[] ...
method SerializeColumnConfig (line 165) | public static string SerializeColumnConfig(List<ColumnConfig> config)
method UpdateConfig (line 173) | public void UpdateConfig(IEnumerable<IConfigurationData> config, strin...
FILE: DoomLauncher/Config/FileManagement.cs
type FileManagement (line 3) | public enum FileManagement
FILE: DoomLauncher/Config/GameFileListEventArgs.cs
class GameFileListEventArgs (line 6) | public class GameFileListEventArgs
method GameFileListEventArgs (line 10) | public GameFileListEventArgs(IEnumerable<IGameFile> gameFiles)
FILE: DoomLauncher/Config/IDirectoriesConfiguration.cs
type IDirectoriesConfiguration (line 4) | public interface IDirectoriesConfiguration
FILE: DoomLauncher/Config/Icons.cs
type IconImage (line 8) | public enum IconImage
class Icons (line 29) | public static class Icons
method GetIcon (line 52) | public static Image GetIcon(IconImage iconImage, Color color) => Color...
method GetBitmap (line 54) | private static Bitmap GetBitmap(IconImage iconImage)
method GetIcon (line 97) | private static Image GetIcon(IconImage iconImage) =>
method ColorizeIcon (line 100) | private static Bitmap ColorizeIcon(IconImage iconImage, Color color)
method ResizeBitmap (line 126) | public static Bitmap ResizeBitmap(Bitmap bitmap, int width, int height)
FILE: DoomLauncher/Config/LauncherPath.cs
class LauncherPath (line 8) | public class LauncherPath
method LauncherPath (line 16) | public LauncherPath(string path)
method GetRelativePath (line 34) | public static string GetRelativePath(string path)
method GetDataDirectory (line 56) | public static string GetDataDirectory()
method IsInstalled (line 64) | public static bool IsInstalled() => !File.Exists(Path.Combine(Director...
method GetFullPath (line 66) | public string GetFullPath()
method GetPossiblyRelativePath (line 71) | public string GetPossiblyRelativePath()
method Equals (line 82) | public override bool Equals(object obj)
method GetHashCode (line 90) | public override int GetHashCode()
FILE: DoomLauncher/Config/ScreenFilter.cs
type ScreenFilterType (line 3) | public enum ScreenFilterType
class ScreenFilter (line 9) | public class ScreenFilter
FILE: DoomLauncher/Config/TagMapLookup.cs
class TagMapLookup (line 8) | public class TagMapLookup : ITagMapLookup
method TagMapLookup (line 17) | public TagMapLookup(IDataSourceAdapter adapter)
method BuildTagMappingDictionary (line 24) | private Dictionary<int, ITagMapping[]> BuildTagMappingDictionary(IEnum...
method Refresh (line 34) | public void Refresh(ITagData[] tags)
method RemoveGameFile (line 44) | public void RemoveGameFile(IGameFile gameFile)
method GetTags (line 50) | public ITagData[] GetTags(IGameFile gameFile)
method GetEnumerableTags (line 61) | public IEnumerable<ITagData> GetEnumerableTags(IGameFile gameFile)
FILE: DoomLauncher/Controls/BasicFileView.cs
class BasicFileView (line 13) | public abstract class BasicFileView : UserControl, IFileAssociationView
method SetData (line 18) | public abstract void SetData(IGameFile gameFile);
method SetData (line 20) | protected void SetData(DataGridView dgvMain, IGameFile gameFile)
method ClearData (line 43) | public abstract void ClearData();
method Delete (line 45) | public virtual bool Delete()
method New (line 79) | public virtual bool New()
method ShowCreateNew (line 85) | public virtual bool ShowCreateNew(IWin32Window parent, IDataSourceAdap...
method CreateFileAssociation (line 113) | public List<IFileData> CreateFileAssociation(IWin32Window parent, IDat...
method CreateNewFileDataSource (line 147) | private static FileData CreateNewFileDataSource(NewFileData newFileDat...
method Edit (line 163) | public virtual bool Edit()
method CopyToClipboard (line 190) | public void CopyToClipboard()
method CopyAllToClipboard (line 195) | public void CopyAllToClipboard()
method CopyFilesToClipboard (line 200) | private void CopyFilesToClipboard(IEnumerable<IFileData> files)
method Export (line 212) | public bool Export()
method ExportAll (line 231) | public bool ExportAll()
method ExportFilesTo (line 247) | private List<string> ExportFilesTo(IEnumerable<IFileData> files, strin...
method CopyFile (line 272) | private void CopyFile(IFileData file, string to)
method GetNiceFileName (line 279) | private string GetNiceFileName(IFileData file, List<ISourcePortData> s...
method View (line 300) | public virtual void View()
method MoveFileOrderUp (line 328) | public virtual bool MoveFileOrderUp()
method MoveFileOrderDown (line 333) | public virtual bool MoveFileOrderDown()
method SetFileOrderFirst (line 338) | public virtual bool SetFileOrderFirst()
method SetFilePriority (line 362) | private bool SetFilePriority(bool up) //todo fix for new file
method SetFilePriorities (line 396) | private void SetFilePriorities(List<IFileData> files)
method SetContextMenu (line 414) | public void SetContextMenu(ContextMenuStrip menu)
method GetSelectedFiles (line 420) | protected abstract List<IFileData> GetSelectedFiles();
FILE: DoomLauncher/Controls/CCheckBox.cs
type DarkControlState (line 8) | public enum DarkControlState
class CCheckBox (line 15) | public class CCheckBox : CheckBox
method CCheckBox (line 132) | public CCheckBox()
method SetControlState (line 140) | private void SetControlState(DarkControlState controlState)
method OnMouseMove (line 149) | protected override void OnMouseMove(MouseEventArgs e)
method OnMouseDown (line 169) | protected override void OnMouseDown(MouseEventArgs e)
method OnMouseUp (line 179) | protected override void OnMouseUp(MouseEventArgs e)
method OnMouseLeave (line 189) | protected override void OnMouseLeave(EventArgs e)
method OnMouseCaptureChanged (line 199) | protected override void OnMouseCaptureChanged(EventArgs e)
method OnGotFocus (line 212) | protected override void OnGotFocus(EventArgs e)
method OnLostFocus (line 219) | protected override void OnLostFocus(EventArgs e)
method OnKeyDown (line 233) | protected override void OnKeyDown(KeyEventArgs e)
method OnKeyUp (line 244) | protected override void OnKeyUp(KeyEventArgs e)
method OnPaint (line 261) | protected override void OnPaint(PaintEventArgs e)
FILE: DoomLauncher/Controls/CComboBox.cs
class ComboBoxItemStyle (line 7) | public class ComboBoxItemStyle
class CComboBox (line 16) | public class CComboBox : ComboBox
method CComboBox (line 22) | public CComboBox()
method ComboBoxDrawItem (line 28) | public static void ComboBoxDrawItem(object sender, DrawItemEventArgs e)
method ComboBoxDrawItemInternal (line 33) | private void ComboBoxDrawItemInternal(object sender, DrawItemEventArgs e)
method ComboBoxDrawItem (line 38) | private static void ComboBoxDrawItem(object sender, DrawItemEventArgs ...
method GetPropertyString (line 86) | private static string GetPropertyString(object item, string propertyName)
FILE: DoomLauncher/Controls/CDataGridView.cs
class CDataGridView (line 5) | class CDataGridView : DataGridView
method CDataGridView (line 7) | public CDataGridView()
FILE: DoomLauncher/Controls/CProgressBar.cs
class CProgressBar (line 6) | public class CProgressBar : ProgressBar
method CProgressBar (line 12) | public CProgressBar()
method CProgressBar_VisibleChanged (line 21) | private void CProgressBar_VisibleChanged(object sender, System.EventAr...
method Timer_Tick (line 30) | private void Timer_Tick(object sender, System.EventArgs e)
method OnPaint (line 59) | protected override void OnPaint(PaintEventArgs e)
FILE: DoomLauncher/Controls/CRichTextBox.Designer.cs
class CRichTextBox (line 3) | partial class CRichTextBox
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/CRichTextBox.cs
class CRichTextBox (line 7) | public partial class CRichTextBox : RichTextBox
method CRichTextBox (line 9) | public CRichTextBox()
method CRichTextBox_LinkClicked (line 18) | private void CRichTextBox_LinkClicked(object sender, LinkClickedEventA...
method ShouldNavigate (line 24) | private bool ShouldNavigate(LinkClickedEventArgs e)
FILE: DoomLauncher/Controls/CTabControl.cs
class CTabControl (line 9) | public class CTabControl : TabControl
method CTabControl (line 21) | public CTabControl()
method SetShowHeaders (line 31) | public void SetShowHeaders(bool set)
method OnCreateControl (line 48) | protected override void OnCreateControl()
method OnPaint (line 59) | protected override void OnPaint(PaintEventArgs e)
method GetTabPageRenderOrder (line 110) | private List<int> GetTabPageRenderOrder()
method DrawTab (line 135) | private void DrawTab(int index, PaintEventArgs e, bool selectedRow)
FILE: DoomLauncher/Controls/CheckBoxList.Designer.cs
class CheckBoxList (line 3) | partial class CheckBoxList
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/CheckBoxList.cs
class CheckListBoxEventArgs (line 8) | public class CheckListBoxEventArgs
method CheckListBoxEventArgs (line 13) | public CheckListBoxEventArgs(bool check, string text)
class CheckBoxList (line 20) | public partial class CheckBoxList : UserControl
method CheckBoxList (line 27) | public CheckBoxList()
method SetItems (line 32) | public void SetItems(IEnumerable<string> items)
method CheckBox_CheckedChanged (line 59) | private void CheckBox_CheckedChanged(object sender, EventArgs e)
method GetCheckedItems (line 65) | public string[] GetCheckedItems()
method IsChecked (line 76) | public bool IsChecked(string text)
method SetChecked (line 86) | public void SetChecked(string text, bool check)
FILE: DoomLauncher/Controls/ColumnField.cs
class ColumnField (line 3) | public class ColumnField
method ColumnField (line 5) | public ColumnField(string datakey, string title)
FILE: DoomLauncher/Controls/DownloadView.Designer.cs
class DownloadView (line 3) | partial class DownloadView
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/DownloadView.cs
class DownloadView (line 8) | public partial class DownloadView : UserControl
method DownloadView (line 18) | public DownloadView()
method AddDownload (line 32) | public void AddDownload(object key, string text)
method CreateDownloadViewItem (line 65) | private DownloadViewItem CreateDownloadViewItem(string text)
method UpdateSize (line 78) | private void UpdateSize()
method item_Cancelled (line 84) | void item_Cancelled(object sender, EventArgs e)
method HandleItemCancel (line 91) | private void HandleItemCancel(DownloadViewItem item)
method GetKey (line 108) | private object GetKey(DownloadViewItem item)
method RemoveDownloadRow (line 119) | private void RemoveDownloadRow(DownloadViewItem item)
method RemoveDownload (line 140) | public void RemoveDownload(object key)
method UpdateDownload (line 152) | public void UpdateDownload(object key, int percent)
method UpdateDownload (line 164) | public void UpdateDownload(object key, string text)
method GetCancelledDownloads (line 173) | public object[] GetCancelledDownloads()
method GetItem (line 184) | private DownloadViewItem GetItem(int row)
method removeFromHistoryToolStripMenuItem_Click (line 189) | private void removeFromHistoryToolStripMenuItem_Click(object sender, E...
method cancelToolStripMenuItem_Click (line 202) | private void cancelToolStripMenuItem_Click(object sender, EventArgs e)
method playToolStripMenuItem_Click (line 211) | private void playToolStripMenuItem_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/DownloadViewItem.Designer.cs
class DownloadViewItem (line 3) | partial class DownloadViewItem
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/DownloadViewItem.cs
class DownloadViewItem (line 6) | public partial class DownloadViewItem : UserControl
method DownloadViewItem (line 10) | public DownloadViewItem()
method btnCancel_Click (line 41) | private void btnCancel_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/FileType.cs
type FileType (line 3) | public enum FileType
FILE: DoomLauncher/Controls/FilesCtrl.Designer.cs
class FilesCtrl (line 3) | partial class FilesCtrl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/FilesCtrl.cs
class FilesCtrl (line 12) | public partial class FilesCtrl : UserControl
method FilesCtrl (line 26) | public FilesCtrl()
method Initialize (line 49) | public void Initialize(string keyProperty, string dataProperty)
method GetFiles (line 58) | public List<object> GetFiles()
method SetDataSource (line 63) | public void SetDataSource(object dataSource)
method GetAdditionalFilesString (line 73) | public string GetAdditionalFilesString()
method dgvAdditionalFiles_CellFormatting (line 87) | private void dgvAdditionalFiles_CellFormatting(object sender, DataGrid...
method btnAddFile_Click (line 109) | private void btnAddFile_Click(object sender, EventArgs e)
method btnDelete_Click (line 125) | private void btnDelete_Click(object sender, EventArgs e)
method dgvAdditionalFiles_KeyDown (line 130) | private void dgvAdditionalFiles_KeyDown(object sender, KeyEventArgs e)
method btnMoveUp_Click (line 136) | private void btnMoveUp_Click(object sender, EventArgs e)
method btnMoveDown_Click (line 144) | private void btnMoveDown_Click(object sender, EventArgs e)
method MoveFile (line 152) | private void MoveFile(bool up)
method Rebind (line 175) | private void Rebind()
method GetFilePriority (line 181) | private int GetFilePriority(object file)
method HandleDelete (line 197) | private void HandleDelete()
class AdditionalFilesEventArgs (line 225) | public class AdditionalFilesEventArgs : EventArgs
method AdditionalFilesEventArgs (line 227) | public AdditionalFilesEventArgs(object item)
method AdditionalFilesEventArgs (line 233) | public AdditionalFilesEventArgs(object item, string displayText)
FILE: DoomLauncher/Controls/FlowLayoutPanelDB.Designer.cs
class FlowLayoutPanelDB (line 3) | partial class FlowLayoutPanelDB
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/FlowLayoutPanelDB.cs
class FlowLayoutPanelDB (line 5) | public partial class FlowLayoutPanelDB : FlowLayoutPanel
method FlowLayoutPanelDB (line 9) | public FlowLayoutPanelDB()
method IsInputKey (line 14) | protected override bool IsInputKey(Keys keyData)
FILE: DoomLauncher/Controls/FormButton.cs
class FormButton (line 5) | public class FormButton : Button
FILE: DoomLauncher/Controls/GameFileAssociationView.Designer.cs
class GameFileAssociationView (line 3) | partial class GameFileAssociationView
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GameFileAssociationView.cs
class GameFileAssociationView (line 9) | public partial class GameFileAssociationView : UserControl
method GameFileAssociationView (line 20) | public GameFileAssociationView()
method CtrlScreenshotView_RequestScreenshots (line 58) | private void CtrlScreenshotView_RequestScreenshots(object sender, Requ...
method SetScreenshots (line 63) | public void SetScreenshots(List<IFileData> screenshots)
method Initialize (line 68) | public void Initialize(IDataSourceAdapter adapter, AppConfiguration co...
method GetViews (line 96) | private IFileAssociationView[] GetViews()
method SetData (line 101) | public void SetData(IGameFile gameFile)
method SetViewData (line 108) | private void SetViewData(IFileAssociationView view, IGameFile gameFile)
method ClearData (line 114) | public void ClearData()
method tabControl_SelectedIndexChanged (line 125) | private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
method SetButtonsEnabled (line 131) | private void SetButtonsEnabled(IFileAssociationView view)
method SetButtonsAllButtonsEnabled (line 144) | public void SetButtonsAllButtonsEnabled(bool enabled)
method SetIconButtonEnabled (line 157) | private void SetIconButtonEnabled(FormButton button, IconImage iconIma...
method copyFileToolStripMenuItem_Click (line 166) | private void copyFileToolStripMenuItem_Click(object sender, EventArgs e)
method HandleCopy (line 171) | private void HandleCopy()
method copyAllFilesToolStripMenuItem_Click (line 177) | private void copyAllFilesToolStripMenuItem_Click(object sender, EventA...
method HandleCopyAll (line 182) | private void HandleCopyAll()
method deleteToolStripMenuItem_Click (line 188) | private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
method HandleDelete (line 193) | private void HandleDelete()
method addFileToolStripMenuItem_Click (line 199) | private void addFileToolStripMenuItem_Click(object sender, EventArgs e)
method HandleAdd (line 204) | private void HandleAdd()
method exportToolStripMenuItem_Click (line 213) | private void exportToolStripMenuItem_Click(object sender, EventArgs e)
method exportAllToolStripMenuItem_Click (line 218) | private void exportAllToolStripMenuItem_Click(object sender, EventArgs e)
method HandleExport (line 223) | private void HandleExport()
method HandleExportAll (line 229) | private void HandleExportAll()
method editDetailsToolStripMenuItem_Click (line 235) | private void editDetailsToolStripMenuItem_Click(object sender, EventAr...
method HandleEdit (line 240) | private void HandleEdit()
method moveUpToolStripMenuItem_Click (line 249) | private void moveUpToolStripMenuItem_Click(object sender, EventArgs e)
method moveDownToolStripMenuItem_Click (line 254) | private void moveDownToolStripMenuItem_Click(object sender, EventArgs e)
method setFirstToolStripMenuItem_Click (line 259) | private void setFirstToolStripMenuItem_Click(object sender, EventArgs e)
method HandleSetFirst (line 264) | private void HandleSetFirst()
method SetFilePriority (line 274) | private void SetFilePriority(bool up)
method btnCopy_Click (line 293) | private void btnCopy_Click(object sender, EventArgs e)
method btnCopyAll_Click (line 298) | private void btnCopyAll_Click(object sender, EventArgs e)
method btnDelete_Click (line 303) | private void btnDelete_Click(object sender, EventArgs e)
method btnAddFile_Click (line 308) | private void btnAddFile_Click(object sender, EventArgs e)
method btnEdit_Click (line 313) | private void btnEdit_Click(object sender, EventArgs e)
method btnMoveUp_Click (line 318) | private void btnMoveUp_Click(object sender, EventArgs e)
method btnMoveDown_Click (line 323) | private void btnMoveDown_Click(object sender, EventArgs e)
method btnSetFirst_Click (line 328) | private void btnSetFirst_Click(object sender, EventArgs e)
method btnOpenFile_Click (line 333) | private void btnOpenFile_Click(object sender, EventArgs e)
method HandleView (line 338) | private void HandleView()
method openFileToolStripMenuItem_Click (line 346) | private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
method BuildContextMenuStrip (line 351) | private ContextMenuStrip BuildContextMenuStrip(IFileAssociationView view)
method FinalizeMenu (line 410) | private void FinalizeMenu(System.Windows.Forms.ContextMenuStrip menu)
method AddSeperator (line 416) | private static void AddSeperator(ContextMenuStrip menu)
method CreateMenuItem (line 422) | private static void CreateMenuItem(ContextMenuStrip menu, string text,...
FILE: DoomLauncher/Controls/GameFileEdit.Designer.cs
class GameFileEdit (line 3) | partial class GameFileEdit
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GameFileEdit.cs
class GameFileEdit (line 10) | public partial class GameFileEdit : UserControl
method GameFileEdit (line 20) | public GameFileEdit()
method SetShowCheckBoxes (line 30) | public void SetShowCheckBoxes(bool set)
method SetShowTagCheckBox (line 38) | public void SetShowTagCheckBox(bool set)
method SetShowMaps (line 43) | public void SetShowMaps(bool set)
method SetCheckBoxesChecked (line 49) | public void SetCheckBoxesChecked(bool set)
method SetDataSource (line 104) | public void SetDataSource(IGameFile gameFile, IEnumerable<ITagData> tags)
method SetTagsLabel (line 129) | private void SetTagsLabel()
method UpdateDataSource (line 137) | public List<GameFileFieldType> UpdateDataSource(IGameFile gameFile)
method AssertSet (line 167) | private bool AssertSet(CheckBox chk, List<GameFileFieldType> fields, G...
method lnkMapsEdit_LinkClicked (line 178) | private void lnkMapsEdit_LinkClicked(object sender, LinkLabelLinkClick...
method lblTags_LinkClicked (line 195) | private void lblTags_LinkClicked(object sender, LinkLabelLinkClickedEv...
method lnkClearRating_LinkClicked (line 210) | private void lnkClearRating_LinkClicked(object sender, LinkLabelLinkCl...
FILE: DoomLauncher/Controls/GameFileSummary.Designer.cs
class GameFileSummary (line 3) | partial class GameFileSummary
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GameFileSummary.cs
class GameFileSummary (line 10) | public partial class GameFileSummary : UserControl
method GameFileSummary (line 17) | public GameFileSummary()
method TblMain_CellPaint (line 46) | private void TblMain_CellPaint(object sender, TableLayoutCellPaintEven...
method PbImage_Paint (line 68) | private void PbImage_Paint(object sender, PaintEventArgs e)
method SetTitle (line 80) | public void SetTitle(string text)
method SetDescription (line 95) | public void SetDescription(string text)
method PauseSlideshow (line 105) | public void PauseSlideshow()
method ResumeSlideshow (line 110) | public void ResumeSlideshow()
method SetPreviewImages (line 115) | public bool SetPreviewImages(List<PreviewImage> imagePaths)
method SetPreviewImage (line 123) | public void SetPreviewImage(Image image)
method SetComments (line 130) | public void SetComments(string comments)
method ClearPreviewImage (line 136) | public void ClearPreviewImage()
method ClearComments (line 142) | public void ClearComments()
method GetRowStyle (line 148) | private RowStyle GetRowStyle(Control ctrl)
method ShowImageSection (line 153) | private void ShowImageSection(bool bShow)
method ShowCommentsSection (line 161) | private void ShowCommentsSection(bool bShow)
method SetTimePlayed (line 183) | public void SetTimePlayed(int minutes)
method SetStatistics (line 188) | public void SetStatistics(IGameFile gameFile, IEnumerable<IStatsData> ...
method GameFileSummary_ClientSizeChanged (line 212) | private void GameFileSummary_ClientSizeChanged(object sender, EventArg...
FILE: DoomLauncher/Controls/GameFileTile.Designer.cs
class GameFileTile (line 3) | partial class GameFileTile
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/GameFileTile.cs
class GameFileTile (line 10) | public partial class GameFileTile : GameFileTileBase
method GameFileTile (line 33) | public GameFileTile()
method GetImageHeight (line 63) | public static int GetImageHeight(int imageWidth) => (int)(imageWidth /...
method GetStandardHeight (line 65) | public int GetStandardHeight(DpiScale dpiScale)
method Pb_LoadCompleted (line 70) | private void Pb_LoadCompleted(object sender, System.ComponentModel.Asy...
method GameFileTile_Paint (line 80) | private void GameFileTile_Paint(object sender, PaintEventArgs e)
method Screenshot_Paint (line 109) | private void Screenshot_Paint(object sender, PaintEventArgs e)
method SetSelected (line 126) | public override void SetSelected(bool set)
method SetData (line 142) | public override void SetData(IGameFile gameFile, IEnumerable<ITagData>...
method ClearData (line 156) | public override void ClearData()
method ClearImage (line 162) | private void ClearImage()
method SetImageLocation (line 175) | public override void SetImageLocation(string file)
method SetImage (line 189) | public override void SetImage(Image image)
method CtrlDoubleClick (line 201) | private void CtrlDoubleClick(object sender, EventArgs e)
method CtrlMouseClick (line 206) | private void CtrlMouseClick(object sender, MouseEventArgs e)
FILE: DoomLauncher/Controls/GameFileTileBase.cs
class GameFileTileBase (line 9) | public abstract class GameFileTileBase : UserControl, IGameFileTile
method ClearData (line 18) | public abstract void ClearData();
method SetData (line 19) | public abstract void SetData(IGameFile gameFile, IEnumerable<ITagData>...
method SetImageLocation (line 20) | public abstract void SetImageLocation(string file);
method SetImage (line 21) | public abstract void SetImage(Image image);
method SetSelected (line 22) | public abstract void SetSelected(bool set);
FILE: DoomLauncher/Controls/GameFileTileExpanded.Designer.cs
class GameFileTileExpanded (line 3) | partial class GameFileTileExpanded
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/GameFileTileExpanded.cs
class GameFileTileExpanded (line 11) | public partial class GameFileTileExpanded : GameFileTileBase
method GameFileTileExpanded (line 31) | public GameFileTileExpanded()
method FlpMain_DoubleClick (line 56) | private void FlpMain_DoubleClick(object sender, EventArgs e)
method FlpMain_MouseClick (line 61) | private void FlpMain_MouseClick(object sender, MouseEventArgs e)
method PnlData_DoubleClick (line 66) | private void PnlData_DoubleClick(object sender, EventArgs e)
method PnlData_Click (line 71) | private void PnlData_Click(object sender, MouseEventArgs e)
method FlpMain_Paint (line 76) | private void FlpMain_Paint(object sender, PaintEventArgs e)
method PnlData_Paint (line 86) | private void PnlData_Paint(object sender, PaintEventArgs e)
method SafeDrawString (line 134) | private void SafeDrawString(Graphics g, string s, Font font, Brush bru...
method GameTile_TileDoubleClick (line 141) | private void GameTile_TileDoubleClick(object sender, EventArgs e)
method GameTile_TileClick (line 146) | private void GameTile_TileClick(object sender, MouseEventArgs e)
method ClearData (line 151) | public override void ClearData()
method SetData (line 156) | public override void SetData(IGameFile gameFile, IEnumerable<ITagData>...
method SetImageLocation (line 179) | public override void SetImageLocation(string file)
method SetImage (line 184) | public override void SetImage(Image image)
method SetSelected (line 189) | public override void SetSelected(bool set)
FILE: DoomLauncher/Controls/GameFileTileViewControl.Designer.cs
class GameFileTileViewControl (line 3) | partial class GameFileTileViewControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/GameFileTileViewControl.cs
class GameFileTileViewControl (line 11) | public partial class GameFileTileViewControl : UserControl, IGameFileVie...
method GameFileTileViewControl (line 41) | public GameFileTileViewControl()
method SetItemsPerPage (line 65) | private void SetItemsPerPage(int maxItems)
method SetVisible (line 99) | public void SetVisible(bool set)
method SetSavedScrollValue (line 142) | private void SetSavedScrollValue()
method GetSortedColumnKey (line 152) | public string GetSortedColumnKey()
method GetColumnSort (line 157) | public SortOrder GetColumnSort(string key)
method SetSortedColumn (line 165) | public void SetSortedColumn(string key, SortOrder sort)
method SetDefaultSelection (line 171) | private void SetDefaultSelection()
method InitTiles (line 186) | private void InitTiles()
method CmbMaxItemsPerPage_KeyDown (line 203) | private void CmbMaxItemsPerPage_KeyDown(object sender, KeyEventArgs e)
method Instance_TilesRecreated (line 208) | private void Instance_TilesRecreated(object sender, EventArgs e)
method M_pagingControl_PageIndexChanged (line 220) | private void M_pagingControl_PageIndexChanged(object sender, EventArgs e)
method MouseTimer_Elapsed (line 226) | private void MouseTimer_Elapsed(object sender, System.Timers.ElapsedEv...
method MouseMoveTimer (line 239) | private void MouseMoveTimer()
method GameFileTileViewControl_KeyDown (line 272) | private void GameFileTileViewControl_KeyDown(object sender, KeyEventAr...
method GetNextGameFileIndex (line 292) | private int GetNextGameFileIndex(int gameFileIndex, Keys keycode)
method GameFileTileViewControl_KeyPress (line 352) | private void GameFileTileViewControl_KeyPress(object sender, KeyPressE...
method GameFileForIndex (line 357) | public IGameFile GameFileForIndex(int index)
method UpdateGameFile (line 365) | public void UpdateGameFile(IGameFile gameFile)
method RefreshData (line 381) | public void RefreshData()
method ShouldSkipTile (line 405) | private static bool ShouldSkipTile(GameFileTileBase tile) => !tile.Vis...
method SetContextMenuStrip (line 407) | public void SetContextMenuStrip(ContextMenuStrip menu)
method SetDisplayText (line 414) | public void SetDisplayText(string text)
method SetData (line 422) | private void SetData(IEnumerable<IGameFile> gameFiles)
method ClearDisplayLabel (line 447) | private void ClearDisplayLabel()
method ClearHover (line 457) | private void ClearHover()
method SetPageData (line 465) | private void SetPageData(int pageIndex, bool dataChange)
method SetLayout (line 487) | private void SetLayout(List<IGameFile> gameFiles, IEnumerable<IFileDat...
method SetTileData (line 508) | private static void SetTileData(GameFileTileBase tile, IGameFile gameF...
method M_menu_Opened (line 534) | private void M_menu_Opened(object sender, EventArgs e)
method M_menu_Closed (line 539) | private void M_menu_Closed(object sender, ToolStripDropDownClosedEvent...
method CmbMaxItemsPerPage_SelectedIndexChanged (line 544) | private void CmbMaxItemsPerPage_SelectedIndexChanged(object sender, Ev...
method Tile_TileDoubleClick (line 549) | private void Tile_TileDoubleClick(object sender, EventArgs e)
method Tile_TileClick (line 557) | private void Tile_TileClick(object sender, MouseEventArgs e)
method SelectRange (line 582) | private void SelectRange(GameFileTileBase tile)
method GameFileTileIndex (line 617) | private int GameFileTileIndex(GameFileTileBase tile)
method ToggleSelection (line 628) | private void ToggleSelection(GameFileTileBase tile)
method SelectGameFile (line 641) | private void SelectGameFile(IGameFile gameFile)
method ClearSelection (line 668) | private void ClearSelection(bool fireEvent = true)
FILE: DoomLauncher/Controls/GameFileViewControl.Designer.cs
class GameFileViewControl (line 3) | partial class GameFileViewControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GameFileViewControl.cs
class GameFileViewControl (line 14) | public partial class GameFileViewControl : UserControl, IGameFileColumnView
method GameFileViewControl (line 30) | public GameFileViewControl()
method StyleDisplayLabel (line 43) | public static void StyleDisplayLabel(Label label)
method SetVisible (line 52) | public void SetVisible(bool set)
method SetDisplayText (line 63) | public void SetDisplayText(string text)
method SetContextMenuStrip (line 72) | public void SetContextMenuStrip(ContextMenuStrip menu)
method SetColumnFields (line 77) | public void SetColumnFields(IEnumerable<ColumnField> columnFields)
method SetColumnFormat (line 108) | public void SetColumnFormat(string colName, string format)
method GetColumnFormats (line 114) | public List<Tuple<string, string>> GetColumnFormats()
method SetDataSource (line 145) | private void SetDataSource(object datasource)
method UpdateGameFile (line 175) | public void UpdateGameFile(IGameFile gameFile)
method GameFileForIndex (line 233) | public IGameFile GameFileForIndex(int index)
method RefreshData (line 241) | public void RefreshData()
method SetupGridView (line 246) | private void SetupGridView()
method dgvMain_ColumnHeaderMouseClick (line 261) | private void dgvMain_ColumnHeaderMouseClick(object sender, DataGridVie...
method HandleSort (line 266) | private void HandleSort(int columnIndex, bool flip)
method dgvMain_CellValueNeeded (line 297) | void dgvMain_CellValueNeeded(object sender, DataGridViewCellValueEvent...
method dgvMain_ColumnDisplayIndexChanged (line 310) | void dgvMain_ColumnDisplayIndexChanged(object sender, DataGridViewColu...
method dgvMain_CellClick (line 315) | void dgvMain_CellClick(object sender, DataGridViewCellEventArgs e)
method dgvMain_SelectionChanged (line 321) | void dgvMain_SelectionChanged(object sender, EventArgs e)
method HandleSelection (line 326) | private void HandleSelection()
method dgvMain_CellMouseDown (line 334) | private void dgvMain_CellMouseDown(object sender, DataGridViewCellMous...
method dgvMain_CellMouseEnter (line 350) | private void dgvMain_CellMouseEnter(object sender, DataGridViewCellEve...
method dgvMain_CellMouseLeave (line 363) | private void dgvMain_CellMouseLeave(object sender, DataGridViewCellEve...
method dgvMain_CellDoubleClick (line 369) | private void dgvMain_CellDoubleClick(object sender, DataGridViewCellEv...
method SetColumnWidth (line 374) | public void SetColumnWidth(string key, int width)
method GetColumnWidth (line 385) | public int GetColumnWidth(string key)
method GetColumnSort (line 393) | public SortOrder GetColumnSort(string key)
method GetSortedColumnKey (line 403) | public string GetSortedColumnKey()
method GetColumnKeyOrder (line 414) | public string[] GetColumnKeyOrder()
method SetSortedColumn (line 428) | public void SetSortedColumn(string column, SortOrder sort)
method dgvMain_RowPostPaint (line 441) | private void dgvMain_RowPostPaint(object sender, DataGridViewRowPostPa...
method dgvMain_KeyPress (line 467) | private void dgvMain_KeyPress(object sender, KeyPressEventArgs e)
method dgvMain_KeyDown (line 472) | private void dgvMain_KeyDown(object sender, KeyEventArgs e)
FILE: DoomLauncher/Controls/GenericFileView.Designer.cs
class GenericFileView (line 3) | partial class GenericFileView
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GenericFileView.cs
class GenericFileView (line 11) | public partial class GenericFileView : BasicFileView
method GenericFileView (line 15) | public GenericFileView()
method SetData (line 28) | public override void SetData(IGameFile gameFile)
method ClearData (line 33) | public override void ClearData()
method SetColumnFields (line 38) | private void SetColumnFields(IEnumerable<Tuple<string, string>> column...
method dgvMain_CellMouseDown (line 57) | private void dgvMain_CellMouseDown(object sender, DataGridViewCellMous...
method GetSelectedFiles (line 67) | protected override List<IFileData> GetSelectedFiles()
FILE: DoomLauncher/Controls/GlowButton.cs
class GlowButton (line 7) | public class GlowButton : Button
method GlowButton (line 18) | public GlowButton()
method GlowOnce (line 30) | public void GlowOnce()
method timer_Tick (line 36) | void timer_Tick(object sender, EventArgs e)
method Dispose (line 58) | protected override void Dispose(bool disposing)
method CreateBlendColor (line 65) | private Color CreateBlendColor(int alpha, Color baseColor, Color glowC...
method AlphaBlend (line 70) | public Color AlphaBlend(Color A, Color B)
FILE: DoomLauncher/Controls/GrowLabel.Designer.cs
class GrowLabel (line 3) | partial class GrowLabel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/GrowLabel.cs
class GrowLabel (line 8) | public partial class GrowLabel : Label
method GrowLabel (line 12) | public GrowLabel()
method ResizeLabel (line 20) | private void ResizeLabel()
method OnTextChanged (line 43) | protected override void OnTextChanged(EventArgs e)
method OnFontChanged (line 49) | protected override void OnFontChanged(EventArgs e)
method OnSizeChanged (line 55) | protected override void OnSizeChanged(EventArgs e)
FILE: DoomLauncher/Controls/PagingControl.Designer.cs
class PagingControl (line 3) | partial class PagingControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/PagingControl.cs
class PagingControl (line 6) | public partial class PagingControl : UserControl
method PagingControl (line 12) | public PagingControl()
method Init (line 19) | public void Init(int records, int recordsPerPage, int initialPage)
method SetPageIndex (line 37) | private void SetPageIndex(int index, bool publishEvent)
method BtnNext_Click (line 55) | private void BtnNext_Click(object sender, EventArgs e)
method BtnPrev_Click (line 60) | private void BtnPrev_Click(object sender, EventArgs e)
method BtnFirst_Click (line 65) | private void BtnFirst_Click(object sender, EventArgs e)
method BtnLast_Click (line 70) | private void BtnLast_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/RatingControl.Designer.cs
class RatingControl (line 3) | partial class RatingControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/RatingControl.cs
class RatingControl (line 7) | public partial class RatingControl : UserControl
method RatingControl (line 14) | public RatingControl()
method InitPictures (line 20) | private void InitPictures()
method CreatePictureBox (line 45) | private PictureBox CreatePictureBox(Image img)
method pb_MouseDown (line 58) | void pb_MouseDown(object sender, MouseEventArgs e)
FILE: DoomLauncher/Controls/ScreenshotView.Designer.cs
class ScreenshotView (line 3) | partial class ScreenshotView
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/ScreenshotView.cs
class RequestScreenshotsEventArgs (line 16) | public class RequestScreenshotsEventArgs : EventArgs
method RequestScreenshotsEventArgs (line 18) | public RequestScreenshotsEventArgs(IGameFile gameFile) { GameFile = ga...
class PictureItem (line 22) | class PictureItem
method PictureItem (line 24) | public PictureItem(PictureBox pb)
class ScreenshotView (line 34) | public partial class ScreenshotView : BasicFileView
method ScreenshotView (line 49) | public ScreenshotView()
method SetPictureWidth (line 55) | public void SetPictureWidth(int pictureWidth)
method FlpScreenshots_Click (line 61) | private void FlpScreenshots_Click(object sender, EventArgs e)
method SetData (line 68) | public override void SetData(IGameFile gameFile)
method ClearData (line 87) | public override void ClearData()
method ShowCreateNew (line 96) | public override bool ShowCreateNew(IWin32Window parent, IDataSourceAda...
method New (line 117) | public override bool New()
method Edit (line 128) | public override bool Edit()
method Delete (line 137) | public override bool Delete()
method MoveFileOrderUp (line 148) | public override bool MoveFileOrderUp()
method MoveFileOrderDown (line 159) | public override bool MoveFileOrderDown()
method SetFileOrderFirst (line 170) | public override bool SetFileOrderFirst()
method InitPictureBoxes (line 181) | private void InitPictureBoxes()
method ExpandPictureBoxes (line 199) | private void ExpandPictureBoxes(int count)
method SetScreenshots (line 208) | public void SetScreenshots(List<IFileData> screenshots)
method SetImages (line 272) | private void SetImages()
method CreatePictureBox (line 313) | private PictureBox CreatePictureBox()
method PbScreen_Paint (line 331) | private void PbScreen_Paint(object sender, PaintEventArgs e)
method PbScreen_DoubleClick (line 344) | private void PbScreen_DoubleClick(object sender, EventArgs e)
method pbScreen_MouseDown (line 349) | void pbScreen_MouseDown(object sender, MouseEventArgs e)
method HandleDoubleClick (line 354) | private void HandleDoubleClick(object sender)
method View (line 363) | public override void View()
method ScreenshotForm_Shown (line 378) | private void ScreenshotForm_Shown(object sender, EventArgs e)
method HandleClick (line 387) | private void HandleClick(object sender, MouseEventArgs e)
method SetSelectedStyle (line 412) | private void SetSelectedStyle(PictureBox pb, bool selected)
method GetSelectedFiles (line 436) | protected override List<IFileData> GetSelectedFiles()
method SortByMap (line 464) | private bool SortByMap()
FILE: DoomLauncher/Controls/SearchControl.Designer.cs
class SearchControl (line 3) | partial class SearchControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/SearchControl.cs
class SearchControl (line 8) | public partial class SearchControl : UserControl
method SearchControl (line 18) | public SearchControl()
method SetSearchText (line 30) | public void SetSearchText(string text, bool fireEvent = false)
method SetShowDropDown (line 37) | public void SetShowDropDown(bool set)
method TextTimer_Elapsed (line 43) | private void TextTimer_Elapsed(object sender, System.Timers.ElapsedEve...
method InvokeSearchTextChanged (line 51) | private void InvokeSearchTextChanged()
method TxtSearch_PreviewKeyDown (line 56) | private void TxtSearch_PreviewKeyDown(object sender, PreviewKeyDownEve...
method txtSearch_TextChanged (line 61) | void txtSearch_TextChanged(object sender, EventArgs e)
method SetSearchFilter (line 72) | public void SetSearchFilter(string item, bool check)
method GetSearchFilter (line 77) | public bool GetSearchFilter(string item)
method GetSearchFilters (line 82) | public string[] GetSearchFilters()
method GetSelectedSearchFilters (line 87) | public string[] GetSelectedSearchFilters()
method SetSearchFilters (line 92) | public void SetSearchFilters(IEnumerable<string> items)
method btnFilters_Click (line 103) | private void btnFilters_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/SlideShowPictureBox.Designer.cs
class SlideShowPictureBox (line 3) | partial class SlideShowPictureBox
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/SlideShowPictureBox.cs
class SlideShowPictureBox (line 12) | public partial class SlideShowPictureBox : UserControl
type SlideshowState (line 35) | private enum SlideshowState
method SlideShowPictureBox (line 48) | public SlideShowPictureBox()
method PbImage_Paint (line 59) | private void PbImage_Paint(object sender, PaintEventArgs e)
method Stop (line 65) | public void Stop()
method Resume (line 74) | public void Resume()
method SetImage (line 80) | public void SetImage(Image image)
method GetImage (line 87) | public Image GetImage() => pbImage.Image;
method SetImages (line 89) | public bool SetImages(List<string> imagePaths, int startIndex = 0)
method ClearImage (line 126) | public void ClearImage()
method SlideShowPictureBox_Resize (line 134) | private void SlideShowPictureBox_Resize(object sender, EventArgs e)
method HandleState (line 139) | private void HandleState()
method M_timer_Tick (line 178) | private void M_timer_Tick(object sender, EventArgs e)
method Fade (line 183) | private void Fade(float step)
method SetImage (line 216) | private void SetImage()
method InitBlendCache (line 237) | private void InitBlendCache()
method SetTransparency (line 249) | private void SetTransparency()
FILE: DoomLauncher/Controls/SourcePortEdit.Designer.cs
class SourcePortEdit (line 3) | partial class SourcePortEdit
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/SourcePortEdit.cs
class SourcePortEdit (line 9) | public partial class SourcePortEdit : UserControl
method SourcePortEdit (line 14) | public SourcePortEdit()
method SetSupportedExtensions (line 23) | public void SetSupportedExtensions(string text)
method ShowOptions (line 28) | public void ShowOptions(bool set)
method SetDataSource (line 38) | public void SetDataSource(ISourcePortData sourcePort)
method UpdateDataSource (line 62) | public void UpdateDataSource(ISourcePortData sourcePort)
method GetSourcePortDirectory (line 76) | public LauncherPath GetSourcePortDirectory() => new LauncherPath(m_dir...
method GetFilter (line 78) | private string GetFilter()
method btnBrowse_Click (line 86) | private void btnBrowse_Click(object sender, EventArgs e)
method btnAltSaveBrowse_Click (line 115) | private void btnAltSaveBrowse_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/StatBar.cs
class StatBar (line 8) | class StatBar : UserControl
method StatBar (line 18) | public StatBar()
method SetMaxHeight (line 24) | public void SetMaxHeight(int maxHeight) => m_maxHeight = maxHeight;
method StatBar_SizeChanged (line 27) | private void StatBar_SizeChanged(object sender, EventArgs e)
method SetStats (line 35) | public void SetStats(int count, int total, string text)
method StatBar_Paint (line 42) | private void StatBar_Paint(object sender, PaintEventArgs e)
method DrawProgress (line 48) | private void DrawProgress(Point pt, int count, int total, string text)
method GetPercentBrush (line 95) | private static Brush GetPercentBrush(Rectangle rect, double percent, i...
method GetUncompleteBrush (line 103) | private static Brush GetUncompleteBrush(Rectangle rect)
method GetCompleteBrush (line 111) | private static Brush GetCompleteBrush(Rectangle rect)
method GetPrecentPen (line 119) | private static Pen GetPrecentPen(double percent, int total)
FILE: DoomLauncher/Controls/StatisticsView.Designer.cs
class StatisticsView (line 3) | partial class StatisticsView
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/StatisticsView.cs
class StatisticsView (line 13) | public partial class StatisticsView : UserControl, IFileAssociationView
method StatisticsView (line 28) | public StatisticsView()
method SetContextMenu (line 46) | public void SetContextMenu(ContextMenuStrip menu)
method SetData (line 52) | public void SetData(IGameFile gameFile)
method SetDataByMap (line 57) | public IEnumerable<IStatsData> SetDataByMap(IGameFile gameFile, string...
method ClearData (line 75) | public void ClearData()
method SetMapsVisible (line 80) | public void SetMapsVisible(bool visible)
method GetStatsBind (line 93) | private List<StatsBind> GetStatsBind(IEnumerable<IStatsData> stats)
method Delete (line 104) | public bool Delete()
method CopyToClipboard (line 121) | public void CopyToClipboard()
method CopyAllToClipboard (line 126) | public void CopyAllToClipboard()
method Export (line 132) | public bool Export() => false;
method ExportAll (line 134) | public bool ExportAll() => false;
method GetStatsFromGridRow (line 136) | private IStatsData GetStatsFromGridRow(DataGridViewRow row)
method New (line 142) | public bool New() { throw new NotSupportedException(); }
method Edit (line 143) | public bool Edit() { throw new NotSupportedException(); }
method View (line 144) | public void View() { throw new NotSupportedException(); }
method MoveFileOrderUp (line 145) | public bool MoveFileOrderUp() { throw new NotSupportedException(); }
method MoveFileOrderDown (line 146) | public bool MoveFileOrderDown() { throw new NotSupportedException(); }
method SetFileOrderFirst (line 147) | public bool SetFileOrderFirst() { throw new NotSupportedException(); }
method SetColumnFields (line 151) | private void SetColumnFields(IEnumerable<Tuple<string, string>> column...
class StatsBind (line 181) | private class StatsBind
method StatsBind (line 183) | public StatsBind(string map, string kills, string secrets, string it...
FILE: DoomLauncher/Controls/StatsControl.Designer.cs
class StatsControl (line 3) | partial class StatsControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/StatsControl.cs
class StatsControl (line 11) | public partial class StatsControl : UserControl
method StatsControl (line 13) | public StatsControl()
method SetStatBarDpi (line 29) | private void SetStatBarDpi(StatBar statBar, DpiScale dpiScale)
method SetImage (line 36) | private void SetImage(PictureBox pb, Bitmap bmp, float scale)
method SetStatistics (line 43) | public void SetStatistics(IGameFile gameFile, IEnumerable<IStatsData> ...
method SetStatistics (line 48) | public void SetStatistics(IEnumerable<IGameFile> gameFiles, IEnumerabl...
method SetMapsVisible (line 90) | public void SetMapsVisible(bool visible)
FILE: DoomLauncher/Controls/TableLayoutPanelDB.Designer.cs
class TableLayoutPanelDB (line 3) | partial class TableLayoutPanelDB
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/TableLayoutPanelDB.cs
class TableLayoutPanelDB (line 5) | public partial class TableLayoutPanelDB : TableLayoutPanel
method TableLayoutPanelDB (line 7) | public TableLayoutPanelDB()
FILE: DoomLauncher/Controls/TagControl.Designer.cs
class TagControl (line 3) | partial class TagControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/TagControl.cs
class TagControl (line 12) | public partial class TagControl : UserControl
method TagControl (line 19) | public TagControl()
method Init (line 25) | public void Init(IDataSourceAdapter adapter)
method SetTagData (line 32) | private void SetTagData()
method btnAdd_Click (line 52) | private void btnAdd_Click(object sender, EventArgs e)
method btnEdit_Click (line 85) | private void btnEdit_Click(object sender, EventArgs e)
method IsTagNameUnique (line 119) | private bool IsTagNameUnique(ITagData tag)
method btnDelete_Click (line 125) | private void btnDelete_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/TagEdit.Designer.cs
class TagEdit (line 3) | partial class TagEdit
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Controls/TagEdit.cs
class TagEdit (line 9) | public partial class TagEdit : UserControl
method TagEdit (line 13) | public TagEdit()
method TagEdit_Load (line 30) | private void TagEdit_Load(object sender, EventArgs e)
method SetDataSource (line 35) | public void SetDataSource(ITagData tag)
method GetDataSource (line 47) | public void GetDataSource(ITagData tag)
method btnSelect_Click (line 61) | private void btnSelect_Click(object sender, EventArgs e)
method cmbColor_SelectedIndexChanged (line 72) | private void cmbColor_SelectedIndexChanged(object sender, EventArgs e)
FILE: DoomLauncher/Controls/TagSelectControl.Designer.cs
class TagSelectControl (line 3) | partial class TagSelectControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/TagSelectControl.cs
class TagSelectControl (line 10) | public partial class TagSelectControl : UserControl
method TagSelectControl (line 24) | public TagSelectControl()
method TagSelectControl_Resize (line 38) | private void TagSelectControl_Resize(object sender, EventArgs e)
method Init (line 56) | public void Init(TagSelectOptions options)
method SetCheckedTags (line 73) | public void SetCheckedTags(IEnumerable<ITagData> tags)
method SetCheckedTags (line 79) | public void SetCheckedTags()
method GetCheckBoxCellIndex (line 96) | private int GetCheckBoxCellIndex()
method GetCheckedTags (line 110) | public List<ITagData> GetCheckedTags() => m_checkedTags;
method SetSelectedItem (line 114) | public void SetSelectedItem(ITagData tag)
method SetDataSource (line 129) | public void SetDataSource(IEnumerable<ITagData> tags)
method SetTags (line 138) | private void SetTags()
method GetStaticTags (line 181) | private List<ITagData> GetStaticTags()
method DataCache_TagsChanged (line 197) | private void DataCache_TagsChanged(object sender, EventArgs e)
method InitGrid (line 202) | private void InitGrid(DataGridView view)
method View_SelectionChanged (line 258) | private void View_SelectionChanged(object sender, EventArgs e)
method txtSearch_TextChanged (line 287) | private void txtSearch_TextChanged(object sender, EventArgs e)
method ClearSelections (line 292) | public void ClearSelections() => dgvTags.ClearSelection();
method DisableSelection (line 293) | private void DisableSelection() => dgvTags.SelectionChanged -= View_Se...
method EnableSelection (line 295) | private void EnableSelection()
method btnPin_Click (line 301) | private void btnPin_Click(object sender, EventArgs e)
method SetPinned (line 307) | public void SetPinned(bool pinned)
method manageTagsToolStripMenuItem_Click (line 322) | private void manageTagsToolStripMenuItem_Click(object sender, EventArg...
class TagSelectOptions (line 328) | public class TagSelectOptions
FILE: DoomLauncher/Controls/TitleBarControl.Designer.cs
class TitleBarControl (line 3) | partial class TitleBarControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/TitleBarControl.cs
class TitleBarControl (line 8) | public partial class TitleBarControl : UserControl
method SendMessage (line 13) | [DllImport("user32.dll")]
method ReleaseCapture (line 16) | [DllImport("user32.dll")]
type DragState (line 26) | private enum DragState
method TitleBarControl (line 47) | public TitleBarControl()
method TitleBarControl_Resize (line 67) | private void TitleBarControl_Resize(object sender, EventArgs e)
method BtnClose_MouseEnter (line 72) | private void BtnClose_MouseEnter(object sender, EventArgs e)
method BtnClose_MouseLeave (line 78) | private void BtnClose_MouseLeave(object sender, EventArgs e)
method HandleWindowStateChange (line 84) | public void HandleWindowStateChange(FormWindowState state)
method SetNormal (line 90) | public void SetNormal() => SetNormal(true);
method TitleBarControl_Load (line 92) | private void TitleBarControl_Load(object sender, EventArgs e)
method TitleBarControl_LocationChanged (line 110) | private void TitleBarControl_LocationChanged(object sender, EventArgs e)
method SetBackgroundColor (line 127) | private void SetBackgroundColor()
method SetNormal (line 138) | private void SetNormal(bool centerY, bool setLocation = true)
method SetMaximized (line 162) | private void SetMaximized()
method SetControlBox (line 177) | public void SetControlBox(bool set)
method FlpButtons_DoubleClick (line 182) | private void FlpButtons_DoubleClick(object sender, EventArgs e)
method tblMain_MouseDoubleClick (line 187) | private void tblMain_MouseDoubleClick(object sender, MouseEventArgs e)
method lblTitle_MouseDoubleClick (line 192) | private void lblTitle_MouseDoubleClick(object sender, MouseEventArgs e)
method FlpButtons_MouseDown (line 197) | private void FlpButtons_MouseDown(object sender, MouseEventArgs e)
method tblMain_MouseDown (line 202) | private void tblMain_MouseDown(object sender, MouseEventArgs e)
method LblTitle_MouseDown (line 207) | private void LblTitle_MouseDown(object sender, MouseEventArgs e)
method HandleMousePress (line 212) | private void HandleMousePress(MouseEventArgs e)
method btnClose_Click (line 227) | private void btnClose_Click(object sender, EventArgs e)
method btnMaximize_Click (line 233) | private void btnMaximize_Click(object sender, EventArgs e)
method SetMinMax (line 238) | private void SetMinMax()
method btnMinimize_Click (line 248) | private void btnMinimize_Click(object sender, EventArgs e)
FILE: DoomLauncher/Controls/UpdateControl.Designer.cs
class UpdateControl (line 3) | partial class UpdateControl
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Controls/UpdateControl.cs
class UpdateControl (line 10) | public partial class UpdateControl : UserControl
method UpdateControl (line 19) | public UpdateControl()
method Initialize (line 26) | public void Initialize(AppConfiguration appConfig, ApplicationUpdateIn...
method lnkPage_LinkClicked (line 34) | private void lnkPage_LinkClicked(object sender, LinkLabelLinkClickedEv...
method btnInstall_Click (line 39) | private void btnInstall_Click(object sender, EventArgs e)
method StartUpdateDownload (line 54) | private void StartUpdateDownload(ApplicationUpdateInfo info)
method GetUpdateArchive (line 69) | private string GetUpdateArchive()
method ShowUpdateDownloadProgress (line 74) | private void ShowUpdateDownloadProgress()
method CloseUpdateDownloadProgress (line 82) | private void CloseUpdateDownloadProgress()
method CreateUpdateFailureForm (line 100) | public static TextBoxForm CreateUpdateFailureForm(ApplicationUpdater a...
method UpdateDownloadProgress (line 111) | private void UpdateDownloadProgress(int value)
method WebClient_DownloadFileCompleted (line 119) | private void WebClient_DownloadFileCompleted(object sender, AsyncCompl...
method WebClient_DownloadProgressChanged (line 124) | private void WebClient_DownloadProgressChanged(object sender, Download...
FILE: DoomLauncher/DataSources/CleanupFile.cs
class CleanupFile (line 3) | public class CleanupFile
FILE: DoomLauncher/DataSources/ConfigurationData.cs
class ConfigurationData (line 5) | class ConfigurationData : IConfigurationData
method ConfigurationData (line 7) | public ConfigurationData()
FILE: DoomLauncher/DataSources/CustomParam.cs
class CustomParamDataSource (line 3) | public class CustomParamDataSource : ICustomParam
FILE: DoomLauncher/DataSources/FileData.cs
class FileData (line 6) | public class FileData : IFileData
method FileData (line 8) | public FileData()
method GetTitle (line 30) | public static string GetTitle(IFileData fileData)
method Equals (line 47) | public override bool Equals(object obj)
method GetHashCode (line 60) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/GameFile.cs
class GameFile (line 8) | public class GameFile : IGameFile, IGameProfile, ICloneable
method GetMaps (line 11) | public static string[] GetMaps(IGameFile gameFile) => gameFile.Map.Spl...
method GameFile (line 15) | public GameFile()
method IsUnmanaged (line 66) | public bool IsUnmanaged() => IsUnmanaged(FileName);
method IsUnmanaged (line 68) | public static bool IsUnmanaged(string filename) =>
method HasPathSeparator (line 71) | private static bool HasPathSeparator(string filename)
method IsDirectory (line 82) | public bool IsDirectory()
method OpenGameFile (line 90) | public IArchiveReader OpenGameFile(LauncherPath gameFileDirectory)
method ArchiveExists (line 108) | public bool ArchiveExists(LauncherPath gameFileDirectory)
method Clone (line 127) | public object Clone()
method Equals (line 140) | public override bool Equals(object obj)
method GetHashCode (line 148) | public override int GetHashCode()
method ToString (line 156) | public override string ToString()
method GetLastDirectory (line 163) | private string GetLastDirectory(string path)
FILE: DoomLauncher/DataSources/GameProfile.cs
class GameProfile (line 5) | public class GameProfile : IGameProfile
method GameProfile (line 7) | public GameProfile()
method GameProfile (line 14) | public GameProfile(int gameFileID, string name)
method CreateGlobalProfile (line 21) | public static GameProfile CreateGlobalProfile(string name)
method ApplyDefaultsToProfile (line 30) | public static void ApplyDefaultsToProfile(IGameProfile gameProfile, Ap...
FILE: DoomLauncher/DataSources/ITagDataSource.cs
type ITagDataSource (line 9) | public interface ITagDataSource
FILE: DoomLauncher/DataSources/IWadData.cs
class IWadData (line 6) | public class IWadData : IIWadData
method Equals (line 16) | public override bool Equals(object obj)
method GetHashCode (line 28) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/IdGamesGameFile.cs
class IdGamesGameFile (line 8) | class IdGamesGameFile : GameFile, IGameFileDownloadable, IDisposable
method Dispose (line 53) | public void Dispose()
method Dispose (line 59) | protected virtual void Dispose(bool disposing)
method Download (line 75) | public void Download(IGameFileDataSourceAdapter adapter, string dlFile...
method Cancel (line 88) | public void Cancel()
method client_DownloadFileCompleted (line 94) | void client_DownloadFileCompleted(object sender, AsyncCompletedEventAr...
method client_DownloadProgressChanged (line 102) | void client_DownloadProgressChanged(object sender, DownloadProgressCha...
method Equals (line 107) | public override bool Equals(object obj)
method GetHashCode (line 115) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/NewFileData.cs
class NewFileData (line 3) | public class NewFileData
FILE: DoomLauncher/DataSources/PreviewImage.cs
class PreviewImage (line 3) | public class PreviewImage
method PreviewImage (line 5) | public PreviewImage(string path, string title)
FILE: DoomLauncher/DataSources/SettingsDataSource.cs
class SettingsDataSource (line 10) | class SettingsDataSource : ISettingsDataSource
FILE: DoomLauncher/DataSources/SourcePortData.cs
class SourcePortData (line 9) | public class SourcePortData : ISourcePortData
method GetFlavor (line 23) | public ISourcePortFlavor GetFlavor()
method GetFullExecutablePath (line 38) | public string GetFullExecutablePath()
method GetReadSavePath (line 43) | public LauncherPath GetReadSavePath()
method GetLoadSavePath (line 51) | public LauncherPath GetLoadSavePath()
method Equals (line 59) | public override bool Equals(object obj)
method GetHashCode (line 71) | public override int GetHashCode()
method GetSupportedExtensions (line 76) | public static string[] GetSupportedExtensions(ISourcePortData sourcePort)
FILE: DoomLauncher/DataSources/SourcePortLaunchType.cs
type SourcePortLaunchType (line 3) | public enum SourcePortLaunchType
FILE: DoomLauncher/DataSources/StaticTagData.cs
class StaticTagData (line 5) | class StaticTagData : TagData
method GetFavoriteName (line 7) | public static string GetFavoriteName(string name) => string.Concat("● ...
FILE: DoomLauncher/DataSources/StatsData.cs
class StatsData (line 6) | public class StatsData : IStatsData
method Equals (line 41) | public override bool Equals(object obj)
method GetHashCode (line 55) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/TagData.cs
class TagData (line 5) | public class TagData : ITagData
method Equals (line 19) | public override bool Equals(object obj)
method GetHashCode (line 27) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/TagMapping.cs
class TagMapping (line 5) | public class TagMapping : ITagMapping
method Equals (line 10) | public override bool Equals(object obj)
method GetHashCode (line 22) | public override int GetHashCode()
FILE: DoomLauncher/DataSources/WadArchiveFile.cs
class WadArchiveFile (line 3) | class WadArchiveFile : FileData
FILE: DoomLauncher/DataSources/WadArchiveGameFile.cs
class WadArchiveGameFile (line 6) | class WadArchiveGameFile : GameFile
class ScreenshotItem (line 40) | class ScreenshotItem
FILE: DoomLauncher/Demo/CldDemoParser.cs
class CldDemoParser (line 7) | public class CldDemoParser : IDemoParser
type DemoCmds (line 9) | private enum DemoCmds
method CldDemoParser (line 26) | public CldDemoParser(string demofile)
method CanParse (line 31) | public bool CanParse()
method GetRequiredFiles (line 44) | public string[] GetRequiredFiles()
method ReadVersion (line 86) | private void ReadVersion(BinaryReader br)
method ReadDemoWads (line 94) | private string[] ReadDemoWads(BinaryReader br)
method ReadString (line 103) | private string ReadString(BinaryReader br)
FILE: DoomLauncher/Demo/DemoUtil.cs
class DemoUtil (line 5) | public static class DemoUtil
method GetDemoParser (line 7) | public static IDemoParser GetDemoParser(string demoFile)
FILE: DoomLauncher/Demo/IDemoParser.cs
type IDemoParser (line 3) | public interface IDemoParser
method CanParse (line 5) | bool CanParse();
method GetRequiredFiles (line 6) | string[] GetRequiredFiles();
FILE: DoomLauncher/Dpi/DpiScale.cs
class DpiScale (line 6) | public class DpiScale
method DpiScale (line 8) | public DpiScale(Graphics g)
method DpiScale (line 14) | public DpiScale(float scaleX, float scaleY)
method ScaleIntY (line 20) | public int ScaleIntY(int height) => (int)(height * DpiScaleY);
method ScaleIntX (line 21) | public int ScaleIntX(int width) => (int)(width * DpiScaleY);
method ScaleFloatY (line 23) | public float ScaleFloatY(float height) => height * DpiScaleY;
method ScaleFloatX (line 24) | public float ScaleFloatX(float width) => width * DpiScaleX;
method ScaleControl (line 29) | public void ScaleControl(Control control)
FILE: DoomLauncher/Forms/AboutBox.Designer.cs
class AboutBox (line 3) | partial class AboutBox
method Dispose (line 13) | protected override void Dispose(bool disposing)
method InitializeComponent (line 28) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/AboutBox.cs
class AboutBox (line 8) | partial class AboutBox : Form
method AboutBox (line 10) | public AboutBox()
method lnkRepository_LinkClicked (line 104) | private void lnkRepository_LinkClicked(object sender, LinkLabelLinkCli...
method lnkThread_LinkClicked (line 109) | private void lnkThread_LinkClicked(object sender, LinkLabelLinkClicked...
method lnkThread2_LinkClicked (line 114) | private void lnkThread2_LinkClicked(object sender, LinkLabelLinkClicke...
FILE: DoomLauncher/Forms/CumulativeStats.Designer.cs
class CumulativeStats (line 3) | partial class CumulativeStats
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/CumulativeStats.cs
class CumulativeStats (line 9) | public partial class CumulativeStats : Form
method CumulativeStats (line 11) | public CumulativeStats()
method SetStatistics (line 24) | public void SetStatistics(IEnumerable<IGameFile> gameFiles, IEnumerabl...
method TblMain_CellPaint (line 41) | private void TblMain_CellPaint(object sender, TableLayoutCellPaintEven...
FILE: DoomLauncher/Forms/DirectoriesForm.Designer.cs
class DirectoriesForm (line 3) | partial class DirectoriesForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/DirectoriesForm.cs
class DirectoriesForm (line 7) | public partial class DirectoriesForm : Form
method DirectoriesForm (line 9) | public DirectoriesForm()
method SetDirectories (line 21) | public void SetDirectories(string[] directories)
method GetDirectories (line 26) | public List<string> GetDirectories()
method btnAdd_Click (line 36) | private void btnAdd_Click(object sender, EventArgs e)
method btnDelete_Click (line 46) | private void btnDelete_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/FileDetailsEditForm.Designer.cs
class FileDetailsEditForm (line 3) | partial class FileDetailsEditForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/FileDetailsEditForm.cs
class FileDetailsEditForm (line 7) | public partial class FileDetailsEditForm : Form
method FileDetailsEditForm (line 9) | public FileDetailsEditForm()
method Initialize (line 15) | public void Initialize(IDataSourceAdapter adapter)
method Initialize (line 20) | public void Initialize(IDataSourceAdapter adapter, IFileData file)
method ShowDescription (line 35) | public void ShowDescription(bool set)
FILE: DoomLauncher/Forms/FileManagementSelect.Designer.cs
class FileManagementSelect (line 3) | partial class FileManagementSelect
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/FileManagementSelect.cs
class FileManagementSelect (line 5) | public partial class FileManagementSelect : Form
method FileManagementSelect (line 7) | public FileManagementSelect()
method GetSelectedFileManagement (line 15) | public FileManagement GetSelectedFileManagement()
method BtnOK_Click (line 23) | private void BtnOK_Click(object sender, System.EventArgs e)
FILE: DoomLauncher/Forms/FileSelectForm.Designer.cs
class FileSelectForm (line 3) | partial class FileSelectForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/FileSelectForm.cs
class FileSelectForm (line 8) | public partial class FileSelectForm : Form
method FileSelectForm (line 14) | public FileSelectForm()
method CtrlSearch_SearchTextChanged (line 25) | private void CtrlSearch_SearchTextChanged(object sender, EventArgs e)
method Initialize (line 32) | public void Initialize(IDataSourceAdapter adapter, ITabView tabView, I...
method Initialize (line 39) | public void Initialize(IDataSourceAdapter adapter, IEnumerable<ITabVie...
method GameFileViewControl_RowDoubleClicked (line 53) | private void GameFileViewControl_RowDoubleClicked(object sender, Event...
method SetShowCancel (line 80) | public void SetShowCancel(bool set)
method SetDisplayText (line 85) | public void SetDisplayText(string text)
method ShowSearchControl (line 90) | public void ShowSearchControl(bool set)
method OnShown (line 95) | protected override void OnShown(EventArgs e)
method SetupSearchFilters (line 103) | private void SetupSearchFilters()
method btnSearch_Click (line 112) | private void btnSearch_Click(object sender, EventArgs e)
method HandleSearch (line 120) | private void HandleSearch(IGameFileView ctrl)
method TabControl_SelectedIndexChanged (line 136) | private void TabControl_SelectedIndexChanged(object sender, EventArgs e)
FILE: DoomLauncher/Forms/FilterForm.Designer.cs
class FilterForm (line 3) | partial class FilterForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 30) | private void InitializeComponent()
FILE: DoomLauncher/Forms/FilterForm.cs
class FilterForm (line 9) | public partial class FilterForm : Form
method FilterForm (line 16) | public FilterForm(Screen screen, ScreenFilter filter)
method InitScanline (line 32) | private void InitScanline(ScreenFilter filter, Rectangle rect)
method InitEllipse (line 47) | private void InitEllipse(ScreenFilter filter, Rectangle rect)
method Init (line 64) | private void Init(Screen screen)
method OnShown (line 80) | protected override void OnShown(EventArgs e)
method CrtFilterForm_Load (line 88) | private void CrtFilterForm_Load(object sender, EventArgs e)
method TopMostFunc (line 93) | private void TopMostFunc()
method SetTopMost (line 109) | private void SetTopMost()
method OnPaint (line 115) | protected override void OnPaint(PaintEventArgs e)
FILE: DoomLauncher/Forms/FilterSettingsForm.Designer.cs
class FilterSettingsForm (line 3) | partial class FilterSettingsForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/FilterSettingsForm.cs
class FilterSettingsForm (line 7) | public partial class FilterSettingsForm : Form
method FilterSettingsForm (line 11) | public FilterSettingsForm(ScreenFilter settings)
method GetFilterSettings (line 32) | public ScreenFilter GetFilterSettings()
method btnPreview_Click (line 49) | private void btnPreview_Click(object sender, EventArgs e)
method CloseFilterFormTask (line 59) | private void CloseFilterFormTask()
method CloseFilterForm (line 64) | private void CloseFilterForm()
method cmbMode_SelectedIndexChanged (line 70) | private void cmbMode_SelectedIndexChanged(object sender, EventArgs e)
FILE: DoomLauncher/Forms/GameFileEditForm.Designer.cs
class GameFileEditForm (line 3) | partial class GameFileEditForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/GameFileEditForm.cs
class GameFileEditForm (line 10) | public partial class GameFileEditForm : Form
method GameFileEditForm (line 15) | public GameFileEditForm()
method SetCopyFromFileAllowed (line 22) | public void SetCopyFromFileAllowed(IDataSourceAdapter adapter, ITabVie...
method SetSelectDataMode (line 31) | public void SetSelectDataMode()
method btnCopyFrom_Click (line 49) | private void btnCopyFrom_Click(object sender, EventArgs e)
method CreateFileSelectForm (line 84) | private FileSelectForm CreateFileSelectForm()
method CreateDataSelectForm (line 93) | private GameFileEditForm CreateDataSelectForm(FileSelectForm fileSelect)
FILE: DoomLauncher/Forms/MainForm.Designer.cs
class MainForm (line 3) | partial class MainForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/MainForm.cs
class MainForm (line 24) | public partial class MainForm : Form
method MainForm (line 56) | public MainForm(LaunchArgs launchArgs, SplashScreen splashScreen)
method InitProgressBars (line 73) | private void InitProgressBars()
method OnClientSizeChanged (line 86) | protected override void OnClientSizeChanged(EventArgs e)
method InitIcons (line 102) | private void InitIcons()
method Init (line 115) | public async Task Init()
method InvokeHideSplashScreen (line 132) | private void InvokeHideSplashScreen()
method HideSplashScreen (line 140) | private void HideSplashScreen()
method InitWindow (line 145) | private void InitWindow()
method SetSplitters (line 175) | private void SetSplitters()
method GetSplitterDistancePixels (line 182) | private static int GetSplitterDistancePixels(double configValue, int w...
method GetCurrentViewControl (line 199) | public IGameFileView GetCurrentViewControl()
method ctrlAssociationView_FileAdded (line 205) | private void ctrlAssociationView_FileAdded(object sender, EventArgs e)
method ctrlAssociationView_FileDeleted (line 210) | void ctrlAssociationView_FileDeleted(object sender, EventArgs e)
method ctrlAssociationView_FileOrderChanged (line 215) | void ctrlAssociationView_FileOrderChanged(object sender, EventArgs e)
method CtrlAssociationView_FileDetailsChanged (line 220) | void CtrlAssociationView_FileDetailsChanged(object sender, EventArgs e)
method UpdateCurrentView (line 225) | private void UpdateCurrentView()
method chkIncludeAll_CheckedChanged (line 232) | private void chkIncludeAll_CheckedChanged(object sender, EventArgs e)
method DownloadView_UserPlay (line 237) | void DownloadView_UserPlay(object sender, EventArgs e)
method ctrlView_SelectionChange (line 247) | void ctrlView_SelectionChange(object sender, EventArgs e)
method ctrlView_RowDoubleClicked (line 252) | void ctrlView_RowDoubleClicked(object sender, EventArgs e)
method ctrlView_GridKeyPress (line 257) | void ctrlView_GridKeyPress(object sender, KeyPressEventArgs e)
method HandleRowDoubleClicked (line 262) | private void HandleRowDoubleClicked(IGameFileView ctrl)
method HandleSearch (line 275) | private void HandleSearch()
method UpdateSavedTabSearch (line 303) | private void UpdateSavedTabSearch(ITabView tabView, GameFileSearchFiel...
method CleanTempDirectory (line 311) | private void CleanTempDirectory()
method viewTextFileToolStripMenuItem_Click (line 331) | private void viewTextFileToolStripMenuItem_Click(object sender, EventA...
method openZipFileToolStripMenuItem_Click (line 336) | private void openZipFileToolStripMenuItem_Click(object sender, EventAr...
method playToolStripMenuItem_Click (line 341) | private void playToolStripMenuItem_Click(object sender, EventArgs e)
method btnPlay_Click (line 346) | private void btnPlay_Click(object sender, EventArgs e)
method playNowToolStripMenuItem_Click (line 351) | private void playNowToolStripMenuItem_Click(object sender, EventArgs e)
method deleteToolStripMenuItem_Click (line 356) | private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
method ToolStripDropDownButton1_DropDownOpened (line 361) | private void ToolStripDropDownButton1_DropDownOpened(object sender, Ev...
method ToolStripDropDownButton1_DropDownClosed (line 366) | private void ToolStripDropDownButton1_DropDownClosed(object sender, Ev...
method HandleRename (line 371) | private void HandleRename()
method RenameGameFile (line 398) | private bool RenameGameFile(IGameFile gameFile, string fileName)
method HandleRenameFile (line 434) | private string HandleRenameFile(IGameFile gameFile, string fileName)
method GetRenameFileInfo (line 455) | private FileInfo GetRenameFileInfo(IGameFile gameFile, string fileName...
method UpdateAdditinalFileReferences (line 473) | private void UpdateAdditinalFileReferences(string oldFileName, string ...
method GetRenamedAdditionalFileSetting (line 502) | private static string GetRenamedAdditionalFileSetting(string[] files, ...
method VerifyFileName (line 516) | private static bool VerifyFileName(string fileName)
method HandleViewTextFile (line 522) | private void HandleViewTextFile()
method GetSortedTextFiles (line 566) | private IEnumerable<string> GetSortedTextFiles(IGameFile item, IEnumer...
method HandleOpenArchiveFile (line 585) | private void HandleOpenArchiveFile()
method HandleDelete (line 626) | private void HandleDelete()
method DeleteGameFileAndAssociations (line 682) | private void DeleteGameFileAndAssociations(IGameFile gameFile)
method DeleteLocalFileAssociations (line 712) | private void DeleteLocalFileAssociations(IGameFile gameFIle)
method DirectoryForFileType (line 728) | private LauncherPath DirectoryForFileType(FileType fileTypeID)
method HandleSelectionChange (line 745) | private void HandleSelectionChange(object sender, bool forceChange)
method AssertCurrentViewItem (line 791) | private bool AssertCurrentViewItem(IGameFile item)
method SetSummary (line 802) | private void SetSummary(IGameFile item)
method SetGameFileImages (line 840) | private void SetGameFileImages(IGameFile item, List<PreviewImage> imag...
method ClearSummary (line 849) | private void ClearSummary()
method SetPreviewImages (line 859) | private void SetPreviewImages(List<PreviewImage> imagePaths)
method BuildTagText (line 875) | private string BuildTagText(IGameFile gameFile)
method GetTagsFromFile (line 888) | private IEnumerable<ITagData> GetTagsFromFile(IGameFile gameFile)
method SelectedItems (line 893) | private IGameFile[] SelectedItems(IGameFileView ctrl)
method SetSelectedItem (line 898) | private void SetSelectedItem(IGameFileView ctrl, IGameFile gameFile)
method UpdateDataSourceViews (line 906) | private void UpdateDataSourceViews(IGameFile gameFile)
method btnSearch_Click (line 912) | private void btnSearch_Click(object sender, EventArgs e)
method HandleDownload (line 919) | private void HandleDownload(LauncherPath directory)
method ShowBadConnectionError (line 978) | private void ShowBadConnectionError()
method PromptUserDownload (line 983) | private bool PromptUserDownload(IGameFile[] dsItems, ref bool showAlre...
method ShowAlreadyExists (line 1008) | private MessageCheckBox ShowAlreadyExists(IGameFile[] dsItems, IGameFi...
method ShowAlreadyDownloading (line 1017) | private MessageCheckBox ShowAlreadyDownloading(IGameFileDownloadable d...
method HandleEdit (line 1026) | private void HandleEdit()
method CheckEdit (line 1074) | private static bool CheckEdit(ITabView tabView, IGameFile[] gameFiles)
method HandleViewWebPage (line 1079) | private void HandleViewWebPage()
method dlItem_DownloadCompleted (line 1106) | private void dlItem_DownloadCompleted(object sender, AsyncCompletedEve...
method HandleDownloadComplete (line 1111) | private async void HandleDownloadComplete(object sender, AsyncComplete...
method WriteDownloadFile (line 1140) | private async Task WriteDownloadFile(IGameFileDownloadable dlFile)
method downloadToolStripMenuItem_Click (line 1161) | private void downloadToolStripMenuItem_Click(object sender, EventArgs e)
method editToolStripMenuItem_Click (line 1166) | private void editToolStripMenuItem_Click(object sender, EventArgs e)
method tabControl_SelectedIndexChanged (line 1171) | private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
method HandleTabSelectionChange (line 1176) | private void HandleTabSelectionChange()
method SetSelectedTabText (line 1208) | private void SetSelectedTabText(ITabView tabView)
method GetCurrentTabView (line 1214) | private ITabView GetCurrentTabView()
method sourcePortsToolStripMenuItem_Click (line 1219) | private void sourcePortsToolStripMenuItem_Click(object sender, EventAr...
method viewWebPageToolStripMenuItem_Click (line 1224) | private void viewWebPageToolStripMenuItem_Click(object sender, EventAr...
method btnDownloads_Click (line 1229) | private void btnDownloads_Click(object sender, EventArgs e)
method btnTags_Click (line 1234) | private void btnTags_Click(object sender, EventArgs e)
method btnUpdate_Click (line 1239) | private void btnUpdate_Click(object sender, EventArgs e)
method HandleEditSourcePorts (line 1244) | private void HandleEditSourcePorts(bool initSetup)
method HandleEditDoom64 (line 1257) | private void HandleEditDoom64()
method HandleEditUtilities (line 1289) | private void HandleEditUtilities()
method form_SourcePortLaunched (line 1299) | void form_SourcePortLaunched(object sender, EventArgs e)
method DisplayDownloads (line 1307) | private void DisplayDownloads()
method DisplayUpdate (line 1318) | private void DisplayUpdate()
method DisplayTags (line 1329) | private void DisplayTags()
method settingsToolStripMenuItem_Click (line 1344) | private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
method ShowSettings (line 1358) | private bool ShowSettings(bool allowCancel, out DialogResult result)
method RefreshConfigItems (line 1392) | private void RefreshConfigItems()
method CtrlAssociationView_RequestScreenshots (line 1407) | private void CtrlAssociationView_RequestScreenshots(object sender, Req...
method addFilesToolStripMenuItem_Click (line 1413) | private void addFilesToolStripMenuItem_Click(object sender, EventArgs e)
method addDirectoryToolStripMenuItem_Click (line 1418) | private void addDirectoryToolStripMenuItem_Click(object sender, EventA...
method HandleAddDirectory (line 1423) | private async void HandleAddDirectory()
method HandleAddFiles (line 1428) | private async void HandleAddFiles()
method addIWADsToolStripMenuItem_Click (line 1433) | private async void addIWADsToolStripMenuItem_Click(object sender, Even...
method HandleAddIWads (line 1438) | private async Task HandleAddIWads()
method addDoom64ToolStripMenuItem_Click (line 1443) | private void addDoom64ToolStripMenuItem_Click(object sender, EventArgs e)
method UpdateLocal (line 1448) | private void UpdateLocal()
method UpdateLocalTabData (line 1454) | private void UpdateLocalTabData(ITabView tab)
method HandleAddGameFiles (line 1469) | private async Task HandleAddGameFiles(AddFileType type, string[] files,
method VerifyAddFiles (line 1522) | private bool VerifyAddFiles(AddFileType type, string[] files)
method HandleAddFiles (line 1555) | private async Task HandleAddFiles(AddFileType type, string[] extension...
method HandleCopyFiles (line 1574) | private async Task HandleCopyFiles(AddFileType type, string[] fileName...
method CopyFiles (line 1605) | private async Task<FileAddResults> CopyFiles(string[] fileNames, FileM...
method UnmanagedAddCheck (line 1615) | private FileAddResults UnmanagedAddCheck(string[] fileNames, string di...
method GetUserSelectedFileManagement (line 1647) | private FileManagement GetUserSelectedFileManagement()
method HandleZdlFiles (line 1663) | private string[] HandleZdlFiles(string[] files)
method GetZdlFiles (line 1700) | private IEnumerable<string> GetZdlFiles(string[] files)
method GetDialogFilter (line 1705) | private string GetDialogFilter(string name, string[] extensions)
method CopyFiles (line 1719) | private FileAddResults CopyFiles(string[] files, string directory, Pro...
method AddZipEntry (line 1826) | private static void AddZipEntry(string file, string name, string newZi...
method HandleNonZipReplacement (line 1839) | private void HandleNonZipReplacement(FileInfo fi, string zipName)
method AddEntryToExistingFile (line 1866) | private static void AddEntryToExistingFile(string directory, string fi...
method PromptCopyFileOverwrite (line 1880) | private Tuple<bool, bool> PromptCopyFileOverwrite(string file)
method IsZipFile (line 1898) | private static bool IsZipFile(FileInfo fi)
method m_progressBarFormCopy_Cancelled (line 1903) | void m_progressBarFormCopy_Cancelled(object sender, EventArgs e)
method UpdateProgressBar (line 1910) | private void UpdateProgressBar(ProgressBarForm form, string text, int ...
method ctrlView_DragDrop (line 1923) | private async void ctrlView_DragDrop(object sender, DragEventArgs e)
method ctrlView_DragEnter (line 1937) | private void ctrlView_DragEnter(object sender, DragEventArgs e)
method aboutToolStripMenuItem_Click (line 1943) | private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
method MainForm_FormClosing (line 1949) | private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
method MnuLocal_Opening (line 1954) | private void MnuLocal_Opening(object sender, CancelEventArgs e)
method SetVisibleLocalMenuItems (line 1986) | private void SetVisibleLocalMenuItems(IGameFileView view)
method GetNonDirectoryMenuItems (line 1997) | private ToolStripMenuItem[] GetNonDirectoryMenuItems()
method GetToolStripItem (line 2007) | ToolStripMenuItem GetToolStripItem(ContextMenuStrip strip, string text...
method newTagToolStripMenuItem_Click (line 2010) | private void newTagToolStripMenuItem_Click(object sender, EventArgs e)
method manageTagsToolStripMenuItem_Click (line 2015) | private void manageTagsToolStripMenuItem_Click(object sender, EventArg...
method sortToolStripItem_Click (line 2020) | private void sortToolStripItem_Click(object sender, EventArgs e)
method TabView_DataSourceChanging (line 2051) | private void TabView_DataSourceChanging(object sender, GameFileListEve...
method TabView_DataSourceChanged (line 2061) | private void TabView_DataSourceChanged(object sender, GameFileListEven...
method RemoveExcludeTags (line 2067) | private IEnumerable<IGameFile> RemoveExcludeTags(ITabView tabView, IEn...
method GetViewSort (line 2096) | private IEnumerable<IGameFile> GetViewSort(IGameFileView view, IEnumer...
method HandleManageTags (line 2117) | private void HandleManageTags()
method UpdateTabOrder (line 2173) | private void UpdateTabOrder()
method UpdateTagColumnConfig (line 2200) | private void UpdateTagColumnConfig(ITagData[] editedTags)
method OrderedTagTabInsert (line 2220) | private void OrderedTagTabInsert(ITagData tag)
method utilityToolStripItem_Click (line 2236) | private void utilityToolStripItem_Click(object sender, EventArgs e)
method doom64ToolStripItem_Click (line 2260) | private void doom64ToolStripItem_Click(object sender, EventArgs e)
method tagToolStripItem_Click (line 2284) | private void tagToolStripItem_Click(object sender, EventArgs e)
method playRandomToolStripMenuItem1_Click (line 2312) | private void playRandomToolStripMenuItem1_Click(object sender, EventAr...
method CheckLastPlayRandom (line 2348) | private void CheckLastPlayRandom()
method UpdateTagTabData (line 2367) | private void UpdateTagTabData(int tagID)
method UpdateTagTabData (line 2372) | private void UpdateTagTabData(IEnumerable<int> tagIDs)
method showToolStripMenuItem_Click (line 2388) | private void showToolStripMenuItem_Click(object sender, EventArgs e)
method ShowTextBoxForm (line 2393) | private void ShowTextBoxForm(string title, string header, string text,...
method generateTextFileToolStripMenuItem_Click (line 2407) | private void generateTextFileToolStripMenuItem_Click(object sender, Ev...
method generateTextFileToolStripMenuItem1_Click (line 2415) | private void generateTextFileToolStripMenuItem1_Click(object sender, E...
method ShowTextFileGenerator (line 2420) | private void ShowTextFileGenerator(IGameFile file)
method renameToolStripMenuItem_Click (line 2428) | private void renameToolStripMenuItem_Click(object sender, EventArgs e)
method HandleKeyPress (line 2436) | private void HandleKeyPress(KeyPressEventArgs e)
method SelectItem (line 2455) | private bool SelectItem(IGameFileView ctrl, string search)
method cumulativeStatisticsToolStripMenuItem_Click (line 2480) | private void cumulativeStatisticsToolStripMenuItem_Click(object sender...
method cumulativeStatisticsToolStripMenuItem1_Click (line 2485) | private void cumulativeStatisticsToolStripMenuItem1_Click(object sende...
method globalCumulativeStatisticsToolStripMenuItem_Click (line 2490) | private void globalCumulativeStatisticsToolStripMenuItem_Click(object ...
method HandleCumulativeStatistics (line 2495) | private void HandleCumulativeStatistics(bool global = false)
method GetTabSearchText (line 2529) | private string GetTabSearchText(string tabKey)
method CreateProgressBar (line 2536) | private ProgressBarForm CreateProgressBar(string text, ProgressBarStyl...
method ProgressBarStart (line 2556) | private ProgressBarForm ProgressBarStart(ProgressBarType type)
method ProgressBarEnd (line 2576) | private void ProgressBarEnd(ProgressBarType type)
method utilitiesToolStripMenuItem_Click (line 2592) | private void utilitiesToolStripMenuItem_Click(object sender, EventArgs e)
method manageUtilitiesToolStripMenuItem_Click (line 2597) | private void manageUtilitiesToolStripMenuItem_Click(object sender, Eve...
method createAutoPlayShortcutToolStripMenuItem_Click (line 2602) | private void createAutoPlayShortcutToolStripMenuItem_Click(object send...
method createShortcutToolStripMenuItem_Click (line 2607) | private void createShortcutToolStripMenuItem_Click(object sender, Even...
method CreateShortcut (line 2612) | private void CreateShortcut(bool autoPlay)
method helpToolStripMenuItem_Click (line 2651) | private void helpToolStripMenuItem_Click(object sender, EventArgs e)
method createZipToolStripMenuItem_Click (line 2663) | private void createZipToolStripMenuItem_Click(object sender, EventArgs e)
method HandleCreateZip (line 2668) | private async void HandleCreateZip()
method CreateZipFromDirectory (line 2689) | private static bool CreateZipFromDirectory(string folderPath, string z...
method addFIlesRecursivelyToolStripMenuItem1_Click (line 2705) | private async void addFIlesRecursivelyToolStripMenuItem1_Click(object ...
method loadWadsFromSteamMenuItem_Click (line 2725) | private async void loadWadsFromSteamMenuItem_Click(object sender, Even...
method resyncToolStripMenuItem_Click (line 2730) | private async void resyncToolStripMenuItem_Click(object sender, EventA...
method resyncIgnoreTitlepicToolStripMenuItem_Click (line 2733) | private async void resyncIgnoreTitlepicToolStripMenuItem_Click(object ...
method manualUpdateToolStripMenuItem_Click (line 2736) | private void manualUpdateToolStripMenuItem_Click(object sender, EventA...
method btnMainMenu_Click (line 2750) | private void btnMainMenu_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/MainForm_Config.cs
class MainForm (line 9) | public partial class MainForm
method HandleFormClosing (line 11) | private void HandleFormClosing()
method GetSplitterPercent (line 40) | private static double GetSplitterPercent(SplitContainer splitter, int ...
method UpdateColumnConfig (line 48) | private void UpdateColumnConfig()
method BuildColumnConfig (line 54) | private string BuildColumnConfig()
method SerializeColumnConfig (line 92) | private string SerializeColumnConfig(List<ColumnConfig> config)
FILE: DoomLauncher/Forms/MainForm_Init.cs
class MainForm (line 19) | public partial class MainForm
method SetupTabBase (line 21) | private void SetupTabBase(ITabView tabView, ColumnField[] columnTextFi...
method SetupTabs (line 31) | private void SetupTabs()
method SetShowTabHeaders (line 59) | private void SetShowTabHeaders()
method CreateTabViewIdGames (line 64) | private IdGamesTabViewCtrl CreateTabViewIdGames(ColumnConfig[] colConfig)
method CreateTabViewIwad (line 82) | private IWadTabViewCtrl CreateTabViewIwad(ColumnConfig[] colConfig)
method CreateTabViewUntagged (line 97) | private LocalTabViewCtrl CreateTabViewUntagged(ColumnConfig[] colConfig)
method CreateTabViewLocal (line 104) | private LocalTabViewCtrl CreateTabViewLocal(ColumnConfig[] colConfig)
method CreateTabViewRecent (line 111) | private OptionsTabViewCtrl CreateTabViewRecent(ColumnConfig[] colConfig)
method CreateTagTabs (line 122) | private List<ITabView> CreateTagTabs(ColumnField[] columnTextFields, C...
method CreateTagTab (line 134) | private TagTabView CreateTagTab(ColumnField[] columnTextFields, Column...
method RebuildUtilityToolStrip (line 156) | private void RebuildUtilityToolStrip()
method RebuildTagToolStrip (line 168) | private void RebuildTagToolStrip()
method BuildTagToolStrip (line 187) | private void BuildTagToolStrip(ToolStripMenuItem tagToolStrip, IEnumer...
method SetGameFileViewEvents (line 207) | private void SetGameFileViewEvents(IGameFileView ctrl, bool dragDrop)
method ctrlView_GridKeyDown (line 221) | private void ctrlView_GridKeyDown(object sender, KeyEventArgs e)
method Initialize (line 227) | private async Task Initialize()
method AutoLoadSteamWads (line 273) | private async Task AutoLoadSteamWads()
method HandleAddDoom64 (line 282) | private async Task HandleAddDoom64(string doom64Exe)
method CleanUpFiles (line 307) | private void CleanUpFiles()
method InitDownloadView (line 324) | private void InitDownloadView()
method InitTagSelectControl (line 331) | private void InitTagSelectControl()
method TagSelectControl_ManageTags (line 346) | private void TagSelectControl_ManageTags(object sender, EventArgs e)
method TagSelectControl_PinChanged (line 351) | private void TagSelectControl_PinChanged(object sender, EventArgs e)
method SetTagControlPinned (line 373) | private void SetTagControlPinned()
method TagMapLookup_TagMappingChanged (line 380) | private void TagMapLookup_TagMappingChanged(object sender, ITagData[] ...
method HandleTagMappingChanged (line 388) | private void HandleTagMappingChanged(ITagData[] tags)
method DataCache_TagsChanged (line 395) | private void DataCache_TagsChanged(object sender, EventArgs e)
method TagSelectCtrl_StaticSelectionChanged (line 411) | private void TagSelectCtrl_StaticSelectionChanged(object sender, strin...
method TagSelectCtrl_TagSelectionChanged (line 416) | private void TagSelectCtrl_TagSelectionChanged(object sender, ITagData...
method AppConfiguration_GameFileViewTypeChanged (line 423) | private void AppConfiguration_GameFileViewTypeChanged(object sender, E...
method AppConfiguration_VisibleViewsChanged (line 435) | private void AppConfiguration_VisibleViewsChanged(object sender, Event...
method AppConfiguration_ColorThemeChanged (line 440) | private void AppConfiguration_ColorThemeChanged(object sender, EventAr...
method Restart (line 445) | private void Restart(bool writeConfigChanges = true)
method BuildUtilityToolStrip (line 454) | private void BuildUtilityToolStrip()
method GetSortByToolStrip (line 462) | private ToolStripMenuItem GetSortByToolStrip()
method CheckForAppUpdate (line 467) | private async Task CheckForAppUpdate()
method SetUpdateAvailable (line 485) | private void SetUpdateAvailable(ApplicationUpdateInfo info)
method CheckFirstInit (line 499) | private async Task CheckFirstInit()
method DisplayInitSettings (line 526) | private void DisplayInitSettings()
method DisplayWelcome (line 536) | private void DisplayWelcome()
method MainForm_Shown (line 543) | private async void MainForm_Shown(object sender, EventArgs e)
method ValidatePosition (line 575) | private static bool ValidatePosition(AppConfiguration config)
method ExecuteVersionUpdate (line 594) | private void ExecuteVersionUpdate()
method handler_UpdateProgress (line 613) | void handler_UpdateProgress(object sender, EventArgs e)
method UpdateVersionProgress (line 621) | void UpdateVersionProgress()
method SetupSearchFilters (line 627) | private void SetupSearchFilters()
method CtrlSearch_SearchTextChangedNoDebounce (line 634) | private void CtrlSearch_SearchTextChangedNoDebounce(object sender, Eve...
method CtrlSearch_SearchTextChanged (line 647) | void CtrlSearch_SearchTextChanged(object sender, EventArgs e)
FILE: DoomLauncher/Forms/MainForm_Meta.cs
class MainForm (line 13) | public partial class MainForm
method updateMetadataToolStripMenuItem_Click (line 17) | private async void updateMetadataToolStripMenuItem_Click(object sender...
method GetMetaFiles (line 106) | private IEnumerable<IGameFile> GetMetaFiles(IdGamesDataAdapater adapte...
method InitMetaProgressBar (line 111) | private ProgressBarForm InitMetaProgressBar()
method HandleMultipleMetaFilesFound (line 123) | private IGameFile HandleMultipleMetaFilesFound(IGameFile localFile, IE...
method FillFileSize (line 155) | private void FillFileSize(IGameFile localFile)
method CreateMetaForm (line 163) | private MetaDataForm CreateMetaForm()
method HandleUpdateMetaFields (line 173) | private bool HandleUpdateMetaFields(IGameFile localFile, List<GameFile...
method HandleMetaError (line 180) | private bool HandleMetaError(IGameFile localFile)
FILE: DoomLauncher/Forms/MainForm_Play.cs
class MainForm (line 18) | public partial class MainForm
method HandlePlay (line 24) | private void HandlePlay(PlayOptions playOptions = PlayOptions.None)
method AssertFile (line 30) | private bool AssertFile(string file)
type PlayOptions (line 44) | [Flags]
method HandlePlay (line 52) | private void HandlePlay(IEnumerable<IGameFile> gameFiles, ISourcePortD...
method GetLaunchFiles (line 112) | private LaunchData GetLaunchFiles(IEnumerable<IGameFile> gameFiles, bo...
method PromptUserMainFile (line 156) | private IGameFile PromptUserMainFile(IEnumerable<IGameFile> gameFiles,...
method HandleMultiSelectPlay (line 177) | private void HandleMultiSelectPlay(IGameFile firstGameFile, IEnumerabl...
method HandlePlaySettings (line 193) | private void HandlePlaySettings(PlayForm form, IGameProfile gameProfile)
method SetupPlayForm (line 214) | private void SetupPlayForm(IGameFile gameFile)
method GetGameProfile (line 225) | private IGameProfile GetGameProfile(IGameFile gameFile)
method m_currentPlayForm_OnPreviewLaunchParameters (line 242) | private void m_currentPlayForm_OnPreviewLaunchParameters(object sender...
method m_currentPlayForm_SaveSettings (line 251) | void m_currentPlayForm_SaveSettings(object sender, EventArgs e)
method GetAdditionalTabViews (line 261) | private List<ITabView> GetAdditionalTabViews()
method StartPlay (line 269) | private bool StartPlay(IGameFile gameFile, IEnumerable<IGameFile> addF...
method CopySaveGames (line 315) | private void CopySaveGames(IGameFile gameFile, ISourcePortData sourceP...
method HandleCopySaveGames (line 328) | private void HandleCopySaveGames(IGameFile gameFile, ISourcePortData s...
method ShowLaunchParameters (line 335) | private void ShowLaunchParameters(GameLauncher launcher, IGameFile gam...
method SetupStatsReader (line 377) | private IStatisticsReader SetupStatsReader(ISourcePortData sourcePort,...
method CreateFileDetectors (line 390) | private void CreateFileDetectors(ISourcePortData sourcePortData)
method CreateSaveGameDetectors (line 397) | private void CreateSaveGameDetectors(ISourcePortData sourcePortData, I...
method CreateScreenshotDetectors (line 411) | private void CreateScreenshotDetectors(ISourcePortData sourcePortData,...
method CreateGameLauncher (line 431) | private GameLauncher CreateGameLauncher(PlayForm form, GameLaunchExitH...
method GetLoadLatestSave (line 465) | private string GetLoadLatestSave(IGameFile gameFile, ISourcePortData s...
method CreateStatisticsReader (line 475) | private IStatisticsReader CreateStatisticsReader(ISourcePortData sourc...
method m_statsReader_NewStastics (line 484) | void m_statsReader_NewStastics(object sender, NewStatisticsEventArgs e)
method IsGameFileIwad (line 507) | private bool IsGameFileIwad(IGameFile gameFile)
method playAdapter_ProcessExited (line 512) | void playAdapter_ProcessExited(GameLaunchInfo launchInfo)
method HandleProcessExited (line 524) | private void HandleProcessExited(GameLaunchInfo gameLaunchInfo)
method GetGameFileForIWad (line 577) | private IGameFile GetGameFileForIWad(IGameFile gameFile)
method SetMinutesPlayed (line 582) | private void SetMinutesPlayed(PlaySession session, DateTime dtExit)
method HandleStatReaderErrors (line 590) | private void HandleStatReaderErrors(IStatisticsReader m_statsReader)
method HandleDetectorFiles (line 609) | private void HandleDetectorFiles(ISourcePortData sourcePort, IGameFile...
method HandleRecordedDemo (line 619) | private void HandleRecordedDemo(GameLaunchInfo gameLaunchInfo, IGameFi...
method CreateDefaultScreenshotDetectors (line 637) | private List<INewFileDetector> CreateDefaultScreenshotDetectors()
method CreateDefaultSaveGameDetectors (line 650) | private List<INewFileDetector> CreateDefaultSaveGameDetectors()
method CreateScreenshotDetector (line 655) | private INewFileDetector CreateScreenshotDetector(string dir)
method CreateSaveGameDetector (line 660) | private INewFileDetector CreateSaveGameDetector(string dir)
method GetNewScreenshots (line 665) | private string[] GetNewScreenshots()
method GetNewSaveGames (line 672) | private static string[] GetNewSaveGames(List<INewFileDetector> saveFil...
method GetDeletedSaveGames (line 694) | private static string[] GetDeletedSaveGames(List<INewFileDetector> sav...
FILE: DoomLauncher/Forms/MainForm_Sync.cs
class MainForm (line 14) | public partial class MainForm
method SyncLocalDatabase (line 16) | private async Task<SyncResult> SyncLocalDatabase(string[] fileNames, F...
method SyncLocalDatabaseComplete (line 26) | void SyncLocalDatabaseComplete(SyncResult syncResult, bool updateViews)
method DisplayInvalidFilesError (line 67) | private void DisplayInvalidFilesError(IEnumerable<InvalidFile> invalid...
method ExecuteSyncHandler (line 84) | private SyncResult ExecuteSyncHandler(string[] files, FileManagement f...
method SyncTitlePics (line 135) | private void SyncTitlePics(SyncResult syncResult)
method TagSyncFiles (line 156) | private void TagSyncFiles(SyncResult syncResult, ITagData tag)
method SyncPendingZdlFiles (line 163) | private void SyncPendingZdlFiles()
method syncHandler_SyncFileChanged (line 187) | void syncHandler_SyncFileChanged(SyncLibraryHandler.SyncProgressEvent e)
method syncHandler_GameFileDataNeeded (line 195) | void syncHandler_GameFileDataNeeded(SyncLibraryHandler.GameFileDataNee...
method HandleGameFileDataNeeded (line 203) | void HandleGameFileDataNeeded(SyncLibraryHandler.GameFileDataNeededEve...
method ProgressBarUpdate (line 213) | void ProgressBarUpdate(SyncLibraryHandler.SyncProgressEvent e)
method ProgressBarForm_Cancelled (line 223) | void ProgressBarForm_Cancelled(object sender, EventArgs e)
method SyncIWads (line 229) | private void SyncIWads(IEnumerable<IGameFile> gameFiles)
method HandleSyncStatus (line 254) | private async void HandleSyncStatus()
method HandleSyncStatusGameFilesOption (line 273) | private async Task HandleSyncStatusGameFilesOption(SyncFileOption opti...
method DeleteLocalGameFiles (line 299) | private void DeleteLocalGameFiles(IEnumerable<string> files)
method HandleSyncStatusLibraryOptions (line 314) | private async Task HandleSyncStatusLibraryOptions(SyncFileOption optio...
method DisplayFilesNotFound (line 358) | private void DisplayFilesNotFound(IEnumerable<string> files, List<IGam...
method FindIdGamesFiles (line 379) | private List<IGameFile> FindIdGamesFiles(IEnumerable<string> files)
method DeleteLibraryGameFiles (line 400) | private void DeleteLibraryGameFiles(IEnumerable<string> files)
method ShowSyncStatusForm (line 410) | private SyncStatusForm ShowSyncStatusForm(string title, string header,...
method HandleResync (line 421) | private async Task HandleResync(bool pullTitlepic)
FILE: DoomLauncher/Forms/MessageCheckBox.Designer.cs
class MessageCheckBox (line 3) | partial class MessageCheckBox
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/MessageCheckBox.cs
class MessageCheckBox (line 6) | public partial class MessageCheckBox : Form
method MessageCheckBox (line 11) | public MessageCheckBox(string title, string text, string checkBoxText,...
method MessageCheckBox (line 17) | public MessageCheckBox(string title, string text, string checkBoxText,...
method SetShowCheckBox (line 76) | public void SetShowCheckBox(bool set)
method tblMessage_Paint (line 90) | void tblMessage_Paint(object sender, PaintEventArgs e)
FILE: DoomLauncher/Forms/MetaDataForm.Designer.cs
class MetaDataForm (line 3) | partial class MetaDataForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/MetaDataForm.cs
class MetaDataForm (line 5) | public partial class MetaDataForm : Form
method MetaDataForm (line 7) | public MetaDataForm()
FILE: DoomLauncher/Forms/PlayForm.Designer.cs
class PlayForm (line 5) | partial class PlayForm
method Dispose (line 16) | protected override void Dispose(bool disposing)
method InitializeComponent (line 31) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/PlayForm.cs
class PlayForm (line 18) | public partial class PlayForm : Form
method PlayForm (line 40) | public PlayForm(AppConfiguration appConfig, IDataSourceAdapter adapter)
method CmbProfiles_StyleItem (line 103) | private void CmbProfiles_StyleItem(object sender, Controls.ComboBoxIte...
method InitTabIndicies (line 121) | private void InitTabIndicies()
method PlayForm_Load (line 138) | private void PlayForm_Load(object sender, EventArgs e)
method Initialize (line 147) | public void Initialize(IEnumerable<ITabView> additionalFileViews, IGam...
method GetSourcePortsForComboBox (line 170) | private IEnumerable<ISourcePortData> GetSourcePortsForComboBox(IGameFi...
method GetIWadsForComboBox (line 175) | private IEnumerable<IIWadData> GetIWadsForComboBox(IGameFile gameFile,...
method SetGameProfile (line 181) | public void SetGameProfile(IGameProfile gameProfile)
method GetSpecificFilesFromProfile (line 254) | private string[] GetSpecificFilesFromProfile(IGameProfile gameProfile)
method SetIwadInfoLabel (line 263) | private void SetIwadInfoLabel()
method SetDefaultSelections (line 292) | private void SetDefaultSelections()
method RegisterEvents (line 307) | private void RegisterEvents()
method UnregisterEvents (line 318) | private void UnregisterEvents()
method LoadProfiles (line 329) | private IList<IGameProfile> LoadProfiles()
method MapSplit (line 336) | private static string[] MapSplit(IGameFile gameFile) => DataSources.Ga...
method IsIwad (line 338) | private bool IsIwad(IGameFile gameFile)
method GetAdditionalFiles (line 379) | public List<IGameFile> GetAdditionalFiles()
method GetIWadAdditionalFiles (line 385) | public List<IGameFile> GetIWadAdditionalFiles()
method GetSourcePortAdditionalFiles (line 390) | public List<IGameFile> GetSourcePortAdditionalFiles()
method ShouldSaveAdditionalFiles (line 436) | public bool ShouldSaveAdditionalFiles()
method chkRecord_CheckedChanged (line 441) | private void chkRecord_CheckedChanged(object sender, EventArgs e)
method chkDemo_CheckedChanged (line 450) | private void chkDemo_CheckedChanged(object sender, EventArgs e)
method cmbSourcePorts_SelectedIndexChanged (line 460) | private void cmbSourcePorts_SelectedIndexChanged(object sender, EventA...
method HandleSourcePortSelectionChange (line 465) | private void HandleSourcePortSelectionChange(bool resetAdditionalFiles...
method PopulateDemos (line 479) | private void PopulateDemos()
method SaveStatisticsSupported (line 492) | private bool SaveStatisticsSupported(ISourcePortData sourcePort)
method LoadLatestSaveSupported (line 497) | private bool LoadLatestSaveSupported(ISourcePortData sourcePort)
method chkMap_CheckedChanged (line 502) | private void chkMap_CheckedChanged(object sender, EventArgs e)
method ctrlFiles_NewItemNeeded (line 507) | private void ctrlFiles_NewItemNeeded(object sender, AdditionalFilesEve...
method SetColumnConfigToMain (line 542) | private void SetColumnConfigToMain(ITabView[] tabViews)
method CtrlFiles_ItemRemoving (line 553) | private void CtrlFiles_ItemRemoving(object sender, AdditionalFilesEven...
method CtrlFiles_ItemAdded (line 568) | private void CtrlFiles_ItemAdded(object sender, AdditionalFilesEventAr...
method CtrlFiles_ItemRemoved (line 572) | private void CtrlFiles_ItemRemoved(object sender, AdditionalFilesEvent...
method ResetSpecificFilesSelections (line 576) | private void ResetSpecificFilesSelections(IGameFile[] selectedFiles)
method GetSupportedFiles (line 587) | private string[] GetSupportedFiles(IGameFile gameFile)
method cmbIwad_SelectedIndexChanged (line 592) | private void cmbIwad_SelectedIndexChanged(object sender, EventArgs e)
method HandleIwadSelectionChanged (line 597) | private void HandleIwadSelectionChanged(bool resetAdditionalFiles = true)
method SetMapsFromIwad (line 607) | private void SetMapsFromIwad()
method SetAdditionalFiles (line 617) | private void SetAdditionalFiles(bool reset)
method ShouldRecalculateAdditionalFiles (line 633) | private bool ShouldRecalculateAdditionalFiles()
method lnkSpecific_LinkClicked (line 640) | private void lnkSpecific_LinkClicked(object sender, LinkLabelLinkClick...
method lnkMore_LinkClicked (line 656) | private void lnkMore_LinkClicked(object sender, LinkLabelLinkClickedEv...
method lnkLoadSaveMore_LinkClicked (line 663) | private void lnkLoadSaveMore_LinkClicked(object sender, LinkLabelLinkC...
method SettingsValid (line 670) | public bool SettingsValid(out string error)
method btnOK_Click (line 690) | private void btnOK_Click(object sender, EventArgs e)
method Accept (line 695) | public void Accept()
method ctrlFiles_CellFormatting (line 708) | private void ctrlFiles_CellFormatting(object sender, AdditionalFilesEv...
method btnSaveSettings_Click (line 719) | private void btnSaveSettings_Click(object sender, EventArgs e)
method lnkOpenDemo_LinkClicked (line 727) | private void lnkOpenDemo_LinkClicked(object sender, LinkLabelLinkClick...
method cmbDemo_SelectedIndexChanged (line 742) | private void cmbDemo_SelectedIndexChanged(object sender, EventArgs e)
method HandleDemoChange (line 747) | private void HandleDemoChange()
method lnkPreviewLaunchParameters_LinkClicked (line 789) | private void lnkPreviewLaunchParameters_LinkClicked(object sender, Lin...
method lnkCustomParameters_LinkClicked (line 794) | private void lnkCustomParameters_LinkClicked(object sender, LinkLabelL...
method lnkFilterSettings_LinkClicked (line 799) | private void lnkFilterSettings_LinkClicked(object sender, LinkLabelLin...
method GetFilterFile (line 825) | private static string GetFilterFile()
method WriteFilterSettings (line 830) | private void WriteFilterSettings(ScreenFilter settings)
method GetFilterSettings (line 844) | public ScreenFilter GetFilterSettings()
method CreateDefaultFilterSettings (line 861) | private ScreenFilter CreateDefaultFilterSettings()
method chkScreenFilter_CheckedChanged (line 879) | private void chkScreenFilter_CheckedChanged(object sender, EventArgs e)
method RenameGameProfile (line 886) | private bool RenameGameProfile(int gameProfileID, string name)
method CreateProfileTextBoxForm (line 904) | private static TextBoxForm CreateProfileTextBoxForm(string displayText...
method UpdateGameProfile (line 917) | public void UpdateGameProfile(IGameProfile gameProfile)
method CmbProfiles_SelectedIndexChanged (line 952) | private void CmbProfiles_SelectedIndexChanged(object sender, EventArgs e)
method newGlobalProfileToolStripMenuItem_Click (line 957) | private void newGlobalProfileToolStripMenuItem_Click(object sender, Ev...
method newProfileToolStripMenuItem_Click (line 962) | private void newProfileToolStripMenuItem_Click(object sender, EventArg...
method CreateNewProfile (line 967) | private void CreateNewProfile(bool global)
method editProfileToolStripMenuItem_Click (line 1006) | private void editProfileToolStripMenuItem_Click(object sender, EventAr...
method deleteProfileToolStripMenuItem_Click (line 1024) | private void deleteProfileToolStripMenuItem_Click(object sender, Event...
method GetGameFiles (line 1047) | private List<IGameFile> GetGameFiles(string[] fileNames, List<string> ...
method TxtParameters_Click (line 1071) | private void TxtParameters_Click(object sender, EventArgs e)
method btnProfileMenu_Click (line 1086) | private void btnProfileMenu_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/PlayRandomForm.Designer.cs
class PlayRandomForm (line 3) | partial class PlayRandomForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/PlayRandomForm.cs
type PlayRandomType (line 12) | public enum PlayRandomType
class PlayRandomForm (line 24) | public partial class PlayRandomForm : Form
method PlayRandomForm (line 33) | public PlayRandomForm()
method Initialize (line 48) | public void Initialize(ITabView tabView, AppConfiguration config, IGam...
method btnGenerate_Click (line 61) | private void btnGenerate_Click(object sender, EventArgs e)
method btnOK_Click (line 66) | private void btnOK_Click(object sender, EventArgs e)
method GeneratedRandom (line 74) | private void GeneratedRandom()
method SetData (line 98) | private void SetData()
method GetGameFilesBySelectedType (line 115) | private IEnumerable<IGameFile> GetGameFilesBySelectedType()
method GetGameFiles (line 138) | private IEnumerable<IGameFile> GetGameFiles(GameFileFieldType? field)
method GetRandomMap (line 155) | private bool GetRandomMap(Random rand, IGameFile gameFile, out string ...
FILE: DoomLauncher/Forms/ProgressBarForm.Designer.cs
class ProgressBarForm (line 3) | partial class ProgressBarForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/ProgressBarForm.cs
class ProgressBarForm (line 7) | public partial class ProgressBarForm : Form
method ProgressBarForm (line 11) | public ProgressBarForm()
method ProgressBarForm_Load (line 19) | void ProgressBarForm_Load(object sender, EventArgs e)
method SetCancelAllowed (line 28) | public void SetCancelAllowed(bool set)
method btnCancel_Click (line 70) | private void btnCancel_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/SaveInfo.Designer.cs
class SaveInfo (line 4) | partial class SaveInfo
method Dispose (line 15) | protected override void Dispose(bool disposing)
method InitializeComponent (line 30) | private void InitializeComponent()
FILE: DoomLauncher/Forms/SaveInfo.cs
class SaveInfo (line 5) | public partial class SaveInfo : Form
method SaveInfo (line 7) | public SaveInfo()
FILE: DoomLauncher/Forms/ScreenshotEditForm.Designer.cs
class ScreenshotEditForm (line 3) | partial class ScreenshotEditForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/ScreenshotEditForm.cs
class ScreenshotEditForm (line 8) | public partial class ScreenshotEditForm : Form
method ScreenshotEditForm (line 10) | public ScreenshotEditForm()
method ShowDialogAndUpdate (line 16) | public static bool ShowDialogAndUpdate(IWin32Window owner, IDataSource...
method SetData (line 37) | public void SetData(IGameFile gameFile, IFileData fileData)
method SetMaps (line 53) | private void SetMaps(IGameFile gameFile)
method TrySetMapData (line 74) | private void TrySetMapData(IFileData fileData)
method chkMap_CheckedChanged (line 114) | private void chkMap_CheckedChanged(object sender, System.EventArgs e)
FILE: DoomLauncher/Forms/ScreenshotViewerForm.Designer.cs
class ScreenshotViewerForm (line 3) | partial class ScreenshotViewerForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/ScreenshotViewerForm.cs
class ScreenshotViewerForm (line 11) | public partial class ScreenshotViewerForm : Form
method ScreenshotViewerForm (line 22) | public ScreenshotViewerForm()
method ScreenshotViewerForm_MouseWheel (line 44) | private void ScreenshotViewerForm_MouseWheel(object sender, MouseEvent...
method ProcessCmdKey (line 52) | protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
method ScreenshotViewerForm_KeyUp (line 68) | private void ScreenshotViewerForm_KeyUp(object sender, KeyEventArgs e)
method SetEnd (line 89) | private void SetEnd()
method SetFirst (line 96) | private void SetFirst()
method SetImageFileData (line 102) | public void SetImageFileData(IDataSourceAdapter adapter, IGameFile gam...
method SetImage (line 112) | public void SetImage(string filename)
method SetImage (line 125) | private void SetImage()
method SetUserDescription (line 140) | private void SetUserDescription(IFileData fileData)
method GetTitle (line 168) | private string GetTitle(IFileData fileData)
method UpdateStatsHeights (line 174) | private void UpdateStatsHeights()
method ShowImageUserData (line 187) | private void ShowImageUserData(bool set)
method GetImageFilename (line 195) | private string GetImageFilename()
method GetFileData (line 200) | private IFileData GetFileData()
method btnPrev_Click (line 205) | private void btnPrev_Click(object sender, EventArgs e)
method SetPreviousImage (line 210) | private void SetPreviousImage()
method btnNext_Click (line 216) | private void btnNext_Click(object sender, EventArgs e)
method SetNextImage (line 221) | private void SetNextImage()
method btnSave_Click (line 227) | private void btnSave_Click(object sender, EventArgs e)
method btnSlideshow_Click (line 247) | private void btnSlideshow_Click(object sender, EventArgs e)
method btnEdit_Click (line 262) | private void btnEdit_Click(object sender, EventArgs e)
method SetSlideshow (line 270) | private void SetSlideshow(bool set)
FILE: DoomLauncher/Forms/SettingsForm.Designer.cs
class SettingsForm (line 3) | partial class SettingsForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SettingsForm.cs
class SettingsForm (line 14) | public partial class SettingsForm : Form
method SettingsForm (line 29) | public SettingsForm(IDataSourceAdapter adapter, AppConfiguration appCo...
method PopulateViews (line 49) | private void PopulateViews()
method PnlViewRestart_Paint (line 58) | private void PnlViewRestart_Paint(object sender, PaintEventArgs e)
method SetToLaunchSettingsTab (line 63) | public void SetToLaunchSettingsTab()
method SetCancelAllowed (line 68) | public void SetCancelAllowed(bool set)
method GetDefaultControlWidth (line 74) | private int GetDefaultControlWidth()
method PopulateConfiguration (line 80) | private void PopulateConfiguration()
method HandleTextBox (line 131) | private void HandleTextBox(TableLayoutPanel tblMain, IConfigurationDat...
method HandleComboBox (line 150) | private void HandleComboBox(TableLayoutPanel tblMain, IConfigurationDa...
method AddTrackBar (line 174) | private void AddTrackBar(TableLayoutPanel tblMain, IConfigurationData ...
method Trk_ValueChanged (line 211) | private void Trk_ValueChanged(object sender, EventArgs e)
method UpdateTrackBar (line 216) | private void UpdateTrackBar(TrackBar trackBar)
method HandleScreenshotCaptureDirectories (line 230) | private void HandleScreenshotCaptureDirectories(TableLayoutPanel tblMa...
method HandleGameFileDirectory (line 255) | private void HandleGameFileDirectory(TableLayoutPanel tblMain, TextBox...
method browseButton_Click (line 279) | void browseButton_Click(object sender, EventArgs e)
method ChangeButton_Click (line 294) | private void ChangeButton_Click(object sender, EventArgs e)
method PopulateDefaultSettings (line 304) | private void PopulateDefaultSettings(IDataSourceAdapter adapter)
method btnSave_Click (line 321) | private void btnSave_Click(object sender, EventArgs e)
method HandleLaunchSettings (line 333) | private void HandleLaunchSettings()
method CreateConfig (line 380) | private static IConfigurationData CreateConfig(string configName, stri...
method GetValue (line 391) | private string GetValue(IConfigurationData config, object value)
method CmbViewType_SelectedIndexChanged (line 410) | private void CmbViewType_SelectedIndexChanged(object sender, EventArgs e)
method cmbTheme_SelectedIndexChanged (line 415) | private void cmbTheme_SelectedIndexChanged(object sender, EventArgs e)
method chkListViews_ItemCheck (line 420) | private void chkListViews_ItemCheck(object sender, CheckListBoxEventAr...
method AddSpaceBetweenWords (line 425) | private static string AddSpaceBetweenWords(string item)
FILE: DoomLauncher/Forms/SimpleFileSelectForm.Designer.cs
class SimpleFileSelectForm (line 3) | partial class SimpleFileSelectForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SimpleFileSelectForm.cs
class SimpleFileSelectForm (line 7) | public partial class SimpleFileSelectForm : Form
method SimpleFileSelectForm (line 9) | public SimpleFileSelectForm()
method Initialize (line 15) | public void Initialize(IEnumerable<string> files)
FILE: DoomLauncher/Forms/SourcePortEditForm.Designer.cs
class SourcePortEditForm (line 3) | partial class SourcePortEditForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SourcePortEditForm.cs
class SourcePortEditForm (line 9) | public partial class SourcePortEditForm : Form
method SourcePortEditForm (line 17) | public SourcePortEditForm(IDataSourceAdapter adapter, ITabView[] addit...
method GetSourcePortExtensions (line 52) | private static IEnumerable<string> GetSourcePortExtensions(SourcePortL...
method ctrlFiles_NewItemNeeded (line 70) | private void ctrlFiles_NewItemNeeded(object sender, AdditionalFilesEve...
method SetDataSource (line 90) | public void SetDataSource(ISourcePortData sourcePort)
method UpdateDataSource (line 97) | public void UpdateDataSource(ISourcePortData sourcePort)
method btnSave_Click (line 104) | private void btnSave_Click(object sender, EventArgs e)
method PromptUserSourcePortDuplicate (line 141) | private bool PromptUserSourcePortDuplicate()
method GetTypeString (line 147) | private string GetTypeString()
FILE: DoomLauncher/Forms/SourcePortViewForm.Designer.cs
class SourcePortViewForm (line 3) | partial class SourcePortViewForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SourcePortViewForm.cs
class SourcePortViewForm (line 15) | public partial class SourcePortViewForm : Form
method SourcePortViewForm (line 26) | public SourcePortViewForm(IDataSourceAdapter adapter, AppConfiguration...
method CtrlSearch_SearchTextChanged (line 46) | private void CtrlSearch_SearchTextChanged(object sender, EventArgs e)
method DisplayInitSetupButton (line 52) | public void DisplayInitSetupButton()
method ShowPlayButton (line 61) | public void ShowPlayButton(bool set)
method ResetData (line 66) | private void ResetData()
method SetDataSource (line 84) | private void SetDataSource(IEnumerable<ISourcePortData> sourcePorts)
method SetSourcePortsData (line 90) | private void SetSourcePortsData()
method GetSourcePortFromRow (line 112) | private ISourcePortData GetSourcePortFromRow(DataGridViewRow row)
method dgvSourcePorts_CellDoubleClick (line 119) | private void dgvSourcePorts_CellDoubleClick(object sender, DataGridVie...
method btnEdit_Click (line 124) | private void btnEdit_Click(object sender, EventArgs e)
method HandleEdit (line 129) | private void HandleEdit()
method btnNew_Click (line 148) | private void btnNew_Click(object sender, EventArgs e)
method SelectSourcePort (line 167) | private void SelectSourcePort(ISourcePortData sourcePort)
method btnDelete_Click (line 189) | private void btnDelete_Click(object sender, EventArgs e)
method GetDeleteFileTypes (line 233) | private static FileType[] GetDeleteFileTypes()
method DeleteSourcePortFiles (line 238) | private void DeleteSourcePortFiles()
method UnlinkFilesFromSourcePort (line 264) | private void UnlinkFilesFromSourcePort()
method GetDeleteConfirm (line 276) | private string GetDeleteConfirm()
method btnLaunch_Click (line 284) | private void btnLaunch_Click(object sender, EventArgs e)
method GetSelectedSourcePort (line 292) | public ISourcePortData GetSelectedSourcePort()
method chkShowArchived_CheckedChanged (line 297) | private void chkShowArchived_CheckedChanged(object sender, EventArgs e)
FILE: DoomLauncher/Forms/SpecificFilesForm.Designer.cs
class SpecificFilesForm (line 3) | partial class SpecificFilesForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SpecificFilesForm.cs
class SpecificFilesForm (line 12) | public partial class SpecificFilesForm : Form
class SpecificFilePath (line 14) | public class SpecificFilePath
method SpecificFilesForm (line 30) | public SpecificFilesForm()
method TxtSearch_PreviewKeyDown (line 42) | private void TxtSearch_PreviewKeyDown(object sender, PreviewKeyDownEve...
method AutoCheckSupportedExtensions (line 48) | public void AutoCheckSupportedExtensions(bool set)
method ShowPkContentsCheckBox (line 53) | public void ShowPkContentsCheckBox(bool set)
method Initialize (line 60) | public void Initialize(LauncherPath gameFileDirectory, IEnumerable<IGa...
method Initialize (line 65) | public void Initialize(LauncherPath gameFileDirectory, IEnumerable<IGa...
method SetGrid (line 84) | private async void SetGrid()
method SetGridTask (line 110) | private void SetGridTask()
method CreateArchiveReader (line 149) | private static IArchiveReader CreateArchiveReader(IGameFile gameFile, ...
method HandleDefaultSelection (line 169) | private void HandleDefaultSelection(string file, IArchiveReader reader)
method HandleAddItem (line 204) | private void HandleAddItem(string file, string fullname, string name, ...
method GetSupportedFiles (line 234) | public static string[] GetSupportedFiles(string gameFileDirectory, IGa...
method GetSpecificFiles (line 264) | public string[] GetSpecificFiles()
method GetPathedSpecificFiles (line 269) | public List<SpecificFilePath> GetPathedSpecificFiles()
method btnSearch_Click (line 281) | private void btnSearch_Click(object sender, EventArgs e)
method HandleSearch (line 286) | private void HandleSearch()
method btnOK_Click (line 300) | private void btnOK_Click(object sender, EventArgs e)
method SpecificFilesForm_FormClosing (line 313) | private void SpecificFilesForm_FormClosing(object sender, FormClosingE...
method chkPkContents_CheckedChanged (line 322) | private void chkPkContents_CheckedChanged(object sender, EventArgs e)
method lnkSelect_LinkClicked (line 327) | private void lnkSelect_LinkClicked(object sender, LinkLabelLinkClicked...
method chkSupported_CheckedChanged (line 335) | private void chkSupported_CheckedChanged(object sender, EventArgs e)
FILE: DoomLauncher/Forms/SplashScreen.Designer.cs
class SplashScreen (line 3) | partial class SplashScreen
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SplashScreen.cs
class SplashScreen (line 6) | public partial class SplashScreen : Form
method SplashScreen (line 8) | public SplashScreen()
FILE: DoomLauncher/Forms/StatsInfo.Designer.cs
class StatsInfo (line 3) | partial class StatsInfo
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/StatsInfo.cs
class StatsInfo (line 6) | public partial class StatsInfo : Form
method StatsInfo (line 8) | public StatsInfo()
method btnOK_Click (line 22) | private void btnOK_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/SyncStatusForm.Designer.cs
class SyncStatusForm (line 3) | partial class SyncStatusForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/SyncStatusForm.cs
class SyncStatusForm (line 8) | public partial class SyncStatusForm : Form
method SyncStatusForm (line 10) | public SyncStatusForm()
method SetHeaderText (line 18) | public void SetHeaderText(string text)
method SetData (line 23) | public void SetData(IEnumerable<string> files, IEnumerable<string> dro...
method GetSelectedFiles (line 31) | public List<string> GetSelectedFiles()
method btnSelectAll_Click (line 42) | private void btnSelectAll_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/TagEditForm.Designer.cs
class TagEditForm (line 3) | partial class TagEditForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/TagEditForm.cs
class TagEditForm (line 5) | public partial class TagEditForm : Form
method TagEditForm (line 9) | public TagEditForm()
FILE: DoomLauncher/Forms/TagForm.Designer.cs
class TagForm (line 3) | partial class TagForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/TagForm.cs
class TagForm (line 6) | public partial class TagForm : Form
method TagForm (line 10) | public TagForm()
method Init (line 21) | public void Init(IDataSourceAdapter adapter)
FILE: DoomLauncher/Forms/TagSelectForm.Designer.cs
class TagSelectForm (line 3) | partial class TagSelectForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/TagSelectForm.cs
class TagSelectForm (line 7) | public partial class TagSelectForm : Form
method TagSelectForm (line 9) | public TagSelectForm()
method OnShown (line 17) | protected override void OnShown(EventArgs e)
FILE: DoomLauncher/Forms/TextBoxForm.Designer.cs
class TextBoxForm (line 3) | partial class TextBoxForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: DoomLauncher/Forms/TextBoxForm.cs
class TextBoxForm (line 7) | public partial class TextBoxForm : Form
method TextBoxForm (line 16) | public TextBoxForm()
method TextBoxForm (line 22) | public TextBoxForm(bool multiline, MessageBoxButtons buttons)
method SetCheckBox (line 62) | public void SetCheckBox(string text)
method SetLink (line 71) | public void SetLink(string text, string url)
method SetMaxLength (line 81) | public void SetMaxLength(int length)
method SelectDisplayText (line 86) | public void SelectDisplayText(int start, int length)
method AppendText (line 103) | public void AppendText(string text)
method lnk_LinkClicked (line 118) | private void lnk_LinkClicked(object sender, LinkLabelLinkClickedEventA...
method btnOK_Click_1 (line 123) | private void btnOK_Click_1(object sender, EventArgs e)
method btnCancel_Click (line 129) | private void btnCancel_Click(object sender, EventArgs e)
FILE: DoomLauncher/Forms/TxtGenerator.Designer.cs
class TxtGenerator (line 3) | partial class TxtGenerator
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | [System.CodeDom.Compiler.GeneratedCode("Winform Designer", "VS2015 SP1")]
FILE: DoomLauncher/Forms/TxtGenerator.cs
class TxtGenerator (line 14) | public partial class TxtGenerator : Form
method TxtGenerator (line 18) | public TxtGenerator()
method SetData (line 34) | public void SetData(IDataSourceAdapter adapter)
method SetData (line 39) | public void SetData(IDataSourceAdapter adapter, IGameFile gameFile)
method GetIwads (line 71) | private static IEnumerable<IIWadData> GetIwads(IDataSourceAdapter adap...
method CreateTextFile (line 84) | private string CreateTextFile()
method GetGameName (line
Condensed preview — 563 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,799K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 750,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".gitignore",
"chars": 5610,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## G"
},
{
"path": "BindingListView/AggregateBindingListView.cs",
"chars": 75000,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Collections;\nusing System.Refl"
},
{
"path": "BindingListView/BindingListView.cs",
"chars": 2913,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.ComponentModel;\n\nnamespace Equin."
},
{
"path": "BindingListView/BindingListView.csproj",
"chars": 3630,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "BindingListView/BindingListView.nuspec",
"chars": 999,
"preview": "<?xml version=\"1.0\"?>\n<package >\n <metadata>\n <id>$id$</id>\n <version>$version$</version>\n <title>$title$</tit"
},
{
"path": "BindingListView/CompositeItemFilter.cs",
"chars": 817,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Equin.ApplicationFramework\n{\n public class CompositeItemFi"
},
{
"path": "BindingListView/IItemFilter.cs",
"chars": 4350,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Equin.ApplicationFramework\n{\n /// <summ"
},
{
"path": "BindingListView/INotifyingEditableObject.cs",
"chars": 1034,
"preview": "using System;\nusing System.ComponentModel;\n\nnamespace Equin.ApplicationFramework\n{\n /// <summary>\n /// Extends <se"
},
{
"path": "BindingListView/InvalidSourceListException.cs",
"chars": 646,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Equin.ApplicationFramework\n{\n [Serializ"
},
{
"path": "BindingListView/MultiSourceIndexList.cs",
"chars": 4597,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Collections;\n\nnamespace Equin."
},
{
"path": "BindingListView/ObjectView.cs",
"chars": 13849,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Refl"
},
{
"path": "BindingListView/Properties/AssemblyInfo.cs",
"chars": 1343,
"preview": "using System;\nusing System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// "
},
{
"path": "BindingListView/Properties/Resources.Designer.cs",
"chars": 8773,
"preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n// This code w"
},
{
"path": "BindingListView/Properties/Resources.resx",
"chars": 7953,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "BindingListView/Properties/Settings.Designer.cs",
"chars": 1081,
"preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n// This code w"
},
{
"path": "BindingListView/Properties/Settings.settings",
"chars": 240,
"preview": "<?xml version='1.0' encoding='utf-8'?>\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings\""
},
{
"path": "BindingListView/ProvidedViewPropertyDescriptor.cs",
"chars": 2167,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\n\nnamespace Equin.ApplicationFramework\n{\n "
},
{
"path": "CheckBoxComboBox/CheckBoxComboBox.Designer.cs",
"chars": 1124,
"preview": "namespace PresentationControls\n{\n partial class CheckBoxComboBox\n {\n /// <summary> \n /// Required d"
},
{
"path": "CheckBoxComboBox/CheckBoxComboBox.cs",
"chars": 34604,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Linq;\nu"
},
{
"path": "CheckBoxComboBox/CheckBoxComboBox.csproj",
"chars": 3652,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "CheckBoxComboBox/GripBounds.cs",
"chars": 2940,
"preview": "using System.Drawing;\n\nnamespace PresentationControls\n{\n /// <summary>\n /// CodeProject.com \"Simple pop-up contro"
},
{
"path": "CheckBoxComboBox/NativeMethods.cs",
"chars": 1818,
"preview": "using System;\nusing System.Drawing;\nusing System.Runtime.InteropServices;\n\nnamespace PresentationControls\n{\n /// <sum"
},
{
"path": "CheckBoxComboBox/Popup.Designer.cs",
"chars": 1384,
"preview": "namespace PresentationControls\n{\n partial class Popup\n {\n /// <summary>\n /// Required designer vari"
},
{
"path": "CheckBoxComboBox/Popup.cs",
"chars": 19952,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Runtime.InteropServices;\nusing System.Sec"
},
{
"path": "CheckBoxComboBox/PopupComboBox.Designer.cs",
"chars": 1358,
"preview": "namespace PresentationControls\n{\n partial class PopupComboBox\n {\n /// <summary>\n /// Required desig"
},
{
"path": "CheckBoxComboBox/PopupComboBox.cs",
"chars": 5730,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Security.Permissions;\nusing System.Window"
},
{
"path": "CheckBoxComboBox/PopupComboBox.resx",
"chars": 5873,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prima"
},
{
"path": "CheckBoxComboBox/Properties/AssemblyInfo.cs",
"chars": 1370,
"preview": "using System.Reflection;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled "
},
{
"path": "CheckBoxComboBox/Selection Wrappers/ListSelectionWrapper.cs",
"chars": 9315,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Ref"
},
{
"path": "CheckBoxComboBox/Selection Wrappers/ObjectSelectionWrapper.cs",
"chars": 4683,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Data;\nusing System.Reflection;\n\nnamespace PresentationControls\n"
},
{
"path": "DoomLauncher/Adapters/DataAccess.cs",
"chars": 2537,
"preview": "using DoomLauncher.Interfaces;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Data.Common;\n\n#pragma "
},
{
"path": "DoomLauncher/Adapters/DbDataSourceAdapter.cs",
"chars": 40727,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing Sy"
},
{
"path": "DoomLauncher/Adapters/DirectoryDataSourceAdapter.cs",
"chars": 4243,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing Sy"
},
{
"path": "DoomLauncher/Adapters/GameLauncher.cs",
"chars": 4254,
"preview": "using DoomLauncher.Adapters.Launch;\nusing DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System;\nusing Syste"
},
{
"path": "DoomLauncher/Adapters/IdGamesDataAdapater.cs",
"chars": 5489,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing Sy"
},
{
"path": "DoomLauncher/Adapters/Launch/ExtraParametersLaunchFeature.cs",
"chars": 957,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher.Ada"
},
{
"path": "DoomLauncher/Adapters/Launch/GameFilesLaunchFeature.cs",
"chars": 6333,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System;\nusing System.Col"
},
{
"path": "DoomLauncher/Adapters/Launch/ILaunchFeature.cs",
"chars": 370,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher.Ada"
},
{
"path": "DoomLauncher/Adapters/Launch/IWadLaunchFeature.cs",
"chars": 3577,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System;\nusing System.Col"
},
{
"path": "DoomLauncher/Adapters/Launch/LaunchParameters.cs",
"chars": 3688,
"preview": "\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace DoomLauncher.Adapters.Launch\n{\n public class Launch"
},
{
"path": "DoomLauncher/Adapters/Launch/LaunchResult.cs",
"chars": 767,
"preview": "\nusing static DoomLauncher.GameLauncher;\n\nnamespace DoomLauncher.Adapters.Launch\n{\n public class LaunchResult\n {\n"
},
{
"path": "DoomLauncher/Adapters/Launch/LoadSaveLaunchFeature.cs",
"chars": 993,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System.Collections.Gener"
},
{
"path": "DoomLauncher/Adapters/Launch/MapSkillLaunchFeature.cs",
"chars": 1270,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System.Collections.Gener"
},
{
"path": "DoomLauncher/Adapters/Launch/PlayDemoLaunchFeature.cs",
"chars": 1079,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System;\nusing System.Col"
},
{
"path": "DoomLauncher/Adapters/Launch/RecordLaunchFeature.cs",
"chars": 807,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System;\nusing System.Col"
},
{
"path": "DoomLauncher/Adapters/Launch/SourcePortExtraParametersLaunchFeature.cs",
"chars": 502,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher.Ada"
},
{
"path": "DoomLauncher/Adapters/Launch/StatisticsReaderLaunchFeature.cs",
"chars": 637,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\n\nnamespace Do"
},
{
"path": "DoomLauncher/Adapters/Launch/UtilityFilesLaunchFeature.cs",
"chars": 3478,
"preview": "using DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System.Collections.Generic;\nusing System.IO;\nusing "
},
{
"path": "DoomLauncher/Adapters/MSSQLDataAdapter.cs",
"chars": 567,
"preview": "using DoomLauncher.Interfaces;\nusing System.Data.Common;\nusing System.Data.SqlClient;\n\nnamespace DoomLauncher\n{\n cla"
},
{
"path": "DoomLauncher/Adapters/PlaySession.cs",
"chars": 534,
"preview": "using System;\nusing static DoomLauncher.GameLauncher;\n\nnamespace DoomLauncher.Adapters\n{\n public class PlaySession\n "
},
{
"path": "DoomLauncher/Adapters/SqliteDatabaseAdapter.cs",
"chars": 585,
"preview": "using DoomLauncher.Interfaces;\nusing System.Data.Common;\nusing System.Data.SQLite;\n\nnamespace DoomLauncher\n{\n public"
},
{
"path": "DoomLauncher/Adapters/WadArchiveDataAdapter.cs",
"chars": 9995,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing Newtonsoft.Json;\nusing System;\nusing System.Collec"
},
{
"path": "DoomLauncher/App.config",
"chars": 2736,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <configSections>\n <!-- For more information on Entity Frame"
},
{
"path": "DoomLauncher/Archive/ArchiveReader.cs",
"chars": 1959,
"preview": "using DoomLauncher.Archive.Rar;\nusing DoomLauncher.Archive.SevenZip;\nusing System;\nusing System.IO;\n\nnamespace DoomLaun"
},
{
"path": "DoomLauncher/Archive/Directory/DirectoryArchiveEntry.cs",
"chars": 955,
"preview": "using System.IO;\n\nnamespace DoomLauncher\n{\n internal class DirectoryArchiveEntry : AbstractArchiveEntry\n {\n "
},
{
"path": "DoomLauncher/Archive/Directory/DirectoryArchiveReader.cs",
"chars": 1119,
"preview": "using System.Collections.Generic;\nusing System.IO;\n\nnamespace DoomLauncher\n{\n public class DirectoryArchiveReader : "
},
{
"path": "DoomLauncher/Archive/EmptyArchiveReader.cs",
"chars": 329,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher\n{\n public class EmptyArchiveReader : IArchiv"
},
{
"path": "DoomLauncher/Archive/FileArchiveReader.cs",
"chars": 1852,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\n\nnamespace DoomLauncher\n{\n class FileArchiveReader "
},
{
"path": "DoomLauncher/Archive/IArchiveEntry.cs",
"chars": 1821,
"preview": "using SharpCompress.Common;\nusing System;\nusing System.IO;\n\nnamespace DoomLauncher\n{\n public interface IArchiveEntry"
},
{
"path": "DoomLauncher/Archive/IArchiveReader.cs",
"chars": 235,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher\n{\n public interface IArchiveReader : IDispos"
},
{
"path": "DoomLauncher/Archive/Rar/RarArchiveEntry.cs",
"chars": 1829,
"preview": "using SharpCompress.Archives;\nusing System.IO;\n\nnamespace DoomLauncher.Archive.Rar\n{\n public class RarArchiveEntry :"
},
{
"path": "DoomLauncher/Archive/Rar/RarArchiveReader.cs",
"chars": 734,
"preview": "using SharpCompress.Archives.Rar;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace DoomLauncher.Archive."
},
{
"path": "DoomLauncher/Archive/RecursiveArchiveReader.cs",
"chars": 2584,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher.Archive\n{\n public class RecursiveArchiveRead"
},
{
"path": "DoomLauncher/Archive/SevenZip/SevenZipArchiveEntry.cs",
"chars": 2106,
"preview": "using SevenZip;\nusing System.IO;\n\nnamespace DoomLauncher.Archive.SevenZip\n{\n public class SevenZipArchiveEntry : Abs"
},
{
"path": "DoomLauncher/Archive/SevenZip/SevenZipArchiveReader.cs",
"chars": 1179,
"preview": "using SevenZip;\nusing System.Collections.Generic;\nusing System.IO;\n\nnamespace DoomLauncher.Archive.SevenZip\n{\n publi"
},
{
"path": "DoomLauncher/Archive/Wad/WadArchiveReader.cs",
"chars": 985,
"preview": "using System.Collections.Generic;\nusing System.IO;\nusing WadReader;\n\nnamespace DoomLauncher\n{\n internal class WadArc"
},
{
"path": "DoomLauncher/Archive/Wad/WadEntry.cs",
"chars": 1004,
"preview": "using System.IO;\nusing WadReader;\n\nnamespace DoomLauncher\n{\n public class WadEntry : AbstractArchiveEntry\n {\n "
},
{
"path": "DoomLauncher/Archive/Zip/ZipArchiveReader.cs",
"chars": 1144,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.IO.Compression;\n\nnamespace DoomLauncher\n{"
},
{
"path": "DoomLauncher/Archive/Zip/ZipArchiveReaderEntry.cs",
"chars": 1330,
"preview": "using System.IO;\nusing System.IO.Compression;\n\nnamespace DoomLauncher\n{\n class ZipArchiveReaderEntry : AbstractArchi"
},
{
"path": "DoomLauncher/Config/AppConfiguration.cs",
"chars": 15287,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System."
},
{
"path": "DoomLauncher/Config/AppVersion.cs",
"chars": 1062,
"preview": "namespace DoomLauncher\n{\n public enum AppVersion\n {\n Unknown,\n Version_1_0_0,\n Version_1_1_0"
},
{
"path": "DoomLauncher/Config/ColorTheme.cs",
"chars": 154,
"preview": "namespace DoomLauncher\n{\n public static class ColorTheme\n {\n public static IThemeColors Current { get; set"
},
{
"path": "DoomLauncher/Config/ColorThemeType.cs",
"chars": 124,
"preview": "namespace DoomLauncher.Config\n{\n public enum ColorThemeType\n {\n Default,\n Dark,\n System\n "
},
{
"path": "DoomLauncher/Config/ColumnConfig.cs",
"chars": 519,
"preview": "using System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n\n public class ColumnConfig\n {\n public ColumnConfig("
},
{
"path": "DoomLauncher/Config/ConfigType.cs",
"chars": 252,
"preview": "namespace DoomLauncher\n{\n public enum ConfigType\n {\n DefaultSourcePort,\n DefaultIWad,\n Defau"
},
{
"path": "DoomLauncher/Config/DataCache.cs",
"chars": 7243,
"preview": "using DoomLauncher.Config;\nusing DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Co"
},
{
"path": "DoomLauncher/Config/FileManagement.cs",
"chars": 123,
"preview": "namespace DoomLauncher\n{\n public enum FileManagement\n {\n Managed,\n Unmanaged,\n Prompt,\n }"
},
{
"path": "DoomLauncher/Config/GameFileListEventArgs.cs",
"chars": 334,
"preview": "using DoomLauncher.Interfaces;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher\n{\n public class GameFileLis"
},
{
"path": "DoomLauncher/Config/IDirectoriesConfiguration.cs",
"chars": 378,
"preview": "\nnamespace DoomLauncher.Config\n{\n public interface IDirectoriesConfiguration\n {\n LauncherPath GameFileDire"
},
{
"path": "DoomLauncher/Config/Icons.cs",
"chars": 5942,
"preview": "using System.Collections.Generic;\nusing System.Drawing;\nusing System.Drawing.Drawing2D;\nusing System.Drawing.Imaging;\n\n"
},
{
"path": "DoomLauncher/Config/LauncherPath.cs",
"chars": 2930,
"preview": "using DoomLauncher.Handlers;\nusing System;\nusing System.IO;\nusing System.Text;\n\nnamespace DoomLauncher\n{\n public cla"
},
{
"path": "DoomLauncher/Config/ScreenFilter.cs",
"chars": 661,
"preview": "namespace DoomLauncher\n{\n public enum ScreenFilterType\n {\n Ellipse,\n Scanline\n }\n\n public cla"
},
{
"path": "DoomLauncher/Config/TagMapLookup.cs",
"chars": 2521,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace DoomLaunch"
},
{
"path": "DoomLauncher/Controls/BasicFileView.cs",
"chars": 15459,
"preview": "using DoomLauncher.Interfaces;\nusing DoomLauncher.Stylize;\nusing System;\nusing System.Collections.Generic;\nusing System"
},
{
"path": "DoomLauncher/Controls/CCheckBox.cs",
"chars": 9883,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n"
},
{
"path": "DoomLauncher/Controls/CComboBox.cs",
"chars": 3163,
"preview": "using System;\nusing System.Drawing;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher.Controls\n{\n public class Com"
},
{
"path": "DoomLauncher/Controls/CDataGridView.cs",
"chars": 194,
"preview": "using System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n class CDataGridView : DataGridView\n {\n public CData"
},
{
"path": "DoomLauncher/Controls/CProgressBar.cs",
"chars": 2421,
"preview": "using System.Drawing;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public class CProgressBar : ProgressBar"
},
{
"path": "DoomLauncher/Controls/CRichTextBox.Designer.cs",
"chars": 1036,
"preview": "namespace DoomLauncher.Controls\n{\n partial class CRichTextBox\n {\n /// <summary>\n /// Required desig"
},
{
"path": "DoomLauncher/Controls/CRichTextBox.cs",
"chars": 993,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher.Controls\n{\n public parti"
},
{
"path": "DoomLauncher/Controls/CTabControl.cs",
"chars": 6540,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Linq;\nusing System.Windows.Forms;\n\nn"
},
{
"path": "DoomLauncher/Controls/CheckBoxList.Designer.cs",
"chars": 2326,
"preview": "namespace DoomLauncher.Controls\n{\n partial class CheckBoxList\n {\n /// <summary> \n /// Required desi"
},
{
"path": "DoomLauncher/Controls/CheckBoxList.cs",
"chars": 2834,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher."
},
{
"path": "DoomLauncher/Controls/CheckBoxList.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/ColumnField.cs",
"chars": 291,
"preview": "namespace DoomLauncher\n{\n public class ColumnField\n {\n public ColumnField(string datakey, string title)\n "
},
{
"path": "DoomLauncher/Controls/DownloadView.Designer.cs",
"chars": 4985,
"preview": "namespace DoomLauncher\n{\n partial class DownloadView\n {\n /// <summary> \n /// Required designer vari"
},
{
"path": "DoomLauncher/Controls/DownloadView.cs",
"chars": 6920,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n"
},
{
"path": "DoomLauncher/Controls/DownloadView.resx",
"chars": 5892,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/DownloadViewItem.Designer.cs",
"chars": 4946,
"preview": "namespace DoomLauncher\n{\n partial class DownloadViewItem\n {\n /// <summary> \n /// Required designer "
},
{
"path": "DoomLauncher/Controls/DownloadViewItem.cs",
"chars": 984,
"preview": "using System;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public partial class DownloadViewItem : UserCon"
},
{
"path": "DoomLauncher/Controls/DownloadViewItem.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/FileType.cs",
"chars": 196,
"preview": "namespace DoomLauncher\n{\n public enum FileType\n {\n Unknown = 0,\n Screenshot = 1,\n Demo = 2,\n"
},
{
"path": "DoomLauncher/Controls/FilesCtrl.Designer.cs",
"chars": 8675,
"preview": "namespace DoomLauncher\n{\n partial class FilesCtrl\n {\n /// <summary> \n /// Required designer variabl"
},
{
"path": "DoomLauncher/Controls/FilesCtrl.cs",
"chars": 7971,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Linq;\nusing System.Reflection;\nusing"
},
{
"path": "DoomLauncher/Controls/FilesCtrl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/FlowLayoutPanelDB.Designer.cs",
"chars": 1111,
"preview": "namespace DoomLauncher\n{\n partial class FlowLayoutPanelDB\n {\n /// <summary> \n /// Required designer"
},
{
"path": "DoomLauncher/Controls/FlowLayoutPanelDB.cs",
"chars": 1301,
"preview": "using System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public partial class FlowLayoutPanelDB : FlowLayoutPanel\n "
},
{
"path": "DoomLauncher/Controls/FormButton.cs",
"chars": 106,
"preview": "using System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public class FormButton : Button\n {\n }\n}\n"
},
{
"path": "DoomLauncher/Controls/GameFileAssociationView.Designer.cs",
"chars": 25894,
"preview": "namespace DoomLauncher\n{\n partial class GameFileAssociationView\n {\n /// <summary> \n /// Required de"
},
{
"path": "DoomLauncher/Controls/GameFileAssociationView.cs",
"chars": 15055,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\nusing DoomLa"
},
{
"path": "DoomLauncher/Controls/GameFileAssociationView.resx",
"chars": 6083,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileEdit.Designer.cs",
"chars": 23791,
"preview": "namespace DoomLauncher\n{\n partial class GameFileEdit\n {\n /// <summary> \n /// Required designer vari"
},
{
"path": "DoomLauncher/Controls/GameFileEdit.cs",
"chars": 7537,
"preview": "using DoomLauncher.Controls;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing Syste"
},
{
"path": "DoomLauncher/Controls/GameFileEdit.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileSummary.Designer.cs",
"chars": 15517,
"preview": "namespace DoomLauncher\n{\n partial class GameFileSummary\n {\n /// <summary> \n /// Required designer v"
},
{
"path": "DoomLauncher/Controls/GameFileSummary.cs",
"chars": 7245,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Linq;"
},
{
"path": "DoomLauncher/Controls/GameFileSummary.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileTile.Designer.cs",
"chars": 1874,
"preview": "namespace DoomLauncher\n{\n partial class GameFileTile\n {\n /// <summary> \n /// Required designer vari"
},
{
"path": "DoomLauncher/Controls/GameFileTile.cs",
"chars": 7317,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Linq;"
},
{
"path": "DoomLauncher/Controls/GameFileTile.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileTileBase.cs",
"chars": 847,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Windo"
},
{
"path": "DoomLauncher/Controls/GameFileTileExpanded.Designer.cs",
"chars": 3093,
"preview": "namespace DoomLauncher\n{\n partial class GameFileTileExpanded\n {\n /// <summary> \n /// Required desig"
},
{
"path": "DoomLauncher/Controls/GameFileTileExpanded.cs",
"chars": 7725,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Globa"
},
{
"path": "DoomLauncher/Controls/GameFileTileExpanded.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileTileViewControl.Designer.cs",
"chars": 6251,
"preview": "namespace DoomLauncher\n{\n partial class GameFileTileViewControl\n {\n /// <summary> \n /// Required de"
},
{
"path": "DoomLauncher/Controls/GameFileTileViewControl.cs",
"chars": 22940,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.IO;\nu"
},
{
"path": "DoomLauncher/Controls/GameFileTileViewControl.resx",
"chars": 5889,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GameFileViewControl.Designer.cs",
"chars": 4135,
"preview": "namespace DoomLauncher\n{\n partial class GameFileViewControl\n {\n /// <summary> \n /// Required design"
},
{
"path": "DoomLauncher/Controls/GameFileViewControl.cs",
"chars": 15423,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing Equin.ApplicationFramework;\nusing System;\nusing Sy"
},
{
"path": "DoomLauncher/Controls/GameFileViewControl.resx",
"chars": 5889,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GenericFileView.Designer.cs",
"chars": 3284,
"preview": "namespace DoomLauncher\n{\n partial class GenericFileView\n {\n /// <summary> \n /// Required designer v"
},
{
"path": "DoomLauncher/Controls/GenericFileView.cs",
"chars": 2834,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System"
},
{
"path": "DoomLauncher/Controls/GenericFileView.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/GlowButton.cs",
"chars": 2435,
"preview": "using System;\nusing System.Drawing;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public class GlowButton :"
},
{
"path": "DoomLauncher/Controls/GrowLabel.Designer.cs",
"chars": 1109,
"preview": "namespace DoomLauncher\n{\n partial class GrowLabel\n {\n /// <summary> \n /// Required designer variabl"
},
{
"path": "DoomLauncher/Controls/GrowLabel.cs",
"chars": 1405,
"preview": "using System;\nusing System.Drawing;\nusing System.IO;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public p"
},
{
"path": "DoomLauncher/Controls/PagingControl.Designer.cs",
"chars": 8503,
"preview": "namespace DoomLauncher\n{\n partial class PagingControl\n {\n /// <summary> \n /// Required designer var"
},
{
"path": "DoomLauncher/Controls/PagingControl.cs",
"chars": 2010,
"preview": "using System;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public partial class PagingControl : UserContro"
},
{
"path": "DoomLauncher/Controls/PagingControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/RatingControl.Designer.cs",
"chars": 2752,
"preview": "namespace DoomLauncher\n{\n partial class RatingControl\n {\n /// <summary> \n /// Required designer var"
},
{
"path": "DoomLauncher/Controls/RatingControl.cs",
"chars": 2165,
"preview": "using System.Collections.Generic;\nusing System.Drawing;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n publi"
},
{
"path": "DoomLauncher/Controls/RatingControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/ScreenshotView.Designer.cs",
"chars": 2004,
"preview": "namespace DoomLauncher\n{\n partial class ScreenshotView\n {\n /// <summary> \n /// Required designer va"
},
{
"path": "DoomLauncher/Controls/ScreenshotView.cs",
"chars": 15738,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Forms;\nusing DoomLauncher.Handlers;\nusing DoomLauncher.Interfaces;\nu"
},
{
"path": "DoomLauncher/Controls/ScreenshotView.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/SearchControl.Designer.cs",
"chars": 5084,
"preview": "namespace DoomLauncher\n{\n partial class SearchControl\n {\n /// <summary> \n /// Required designer var"
},
{
"path": "DoomLauncher/Controls/SearchControl.cs",
"chars": 3389,
"preview": "using PresentationControls;\nusing System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\n\nnamespace Doom"
},
{
"path": "DoomLauncher/Controls/SearchControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/SlideShowPictureBox.Designer.cs",
"chars": 2108,
"preview": "namespace DoomLauncher\n{\n partial class SlideShowPictureBox\n {\n /// <summary> \n /// Required design"
},
{
"path": "DoomLauncher/Controls/SlideShowPictureBox.cs",
"chars": 8692,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Drawing;\nusing System.Windows.Forms;\nusing System.Drawing."
},
{
"path": "DoomLauncher/Controls/SlideShowPictureBox.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/SourcePortEdit.Designer.cs",
"chars": 16993,
"preview": "namespace DoomLauncher\n{\n partial class SourcePortEdit\n {\n /// <summary> \n /// Required designer va"
},
{
"path": "DoomLauncher/Controls/SourcePortEdit.cs",
"chars": 4734,
"preview": "using DoomLauncher.Interfaces;\nusing DoomLauncher.Stylize;\nusing System;\nusing System.IO;\nusing System.Windows.Forms;\n\n"
},
{
"path": "DoomLauncher/Controls/SourcePortEdit.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/StatBar.cs",
"chars": 4707,
"preview": "using System;\nusing System.Drawing;\nusing System.Drawing.Drawing2D;\nusing System.Windows.Forms;\n\nnamespace DoomLauncher"
},
{
"path": "DoomLauncher/Controls/StatisticsView.Designer.cs",
"chars": 3165,
"preview": "namespace DoomLauncher\n{\n partial class StatisticsView\n {\n /// <summary> \n /// Required designer va"
},
{
"path": "DoomLauncher/Controls/StatisticsView.cs",
"chars": 7852,
"preview": "using DoomLauncher.Interfaces;\nusing DoomLauncher.Stylize;\nusing Equin.ApplicationFramework;\nusing System;\nusing System"
},
{
"path": "DoomLauncher/Controls/StatisticsView.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/StatsControl.Designer.cs",
"chars": 12999,
"preview": "namespace DoomLauncher\n{\n partial class StatsControl\n {\n /// <summary> \n /// Required designer vari"
},
{
"path": "DoomLauncher/Controls/StatsControl.cs",
"chars": 3997,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Drawing;"
},
{
"path": "DoomLauncher/Controls/StatsControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/TableLayoutPanelDB.Designer.cs",
"chars": 1118,
"preview": "namespace DoomLauncher\n{\n partial class TableLayoutPanelDB\n {\n /// <summary> \n /// Required designe"
},
{
"path": "DoomLauncher/Controls/TableLayoutPanelDB.cs",
"chars": 575,
"preview": "using System.Windows.Forms;\n\nnamespace DoomLauncher\n{\n public partial class TableLayoutPanelDB : TableLayoutPanel\n "
},
{
"path": "DoomLauncher/Controls/TagControl.Designer.cs",
"chars": 5759,
"preview": "namespace DoomLauncher\n{\n partial class TagControl\n {\n /// <summary> \n /// Required designer variab"
},
{
"path": "DoomLauncher/Controls/TagControl.cs",
"chars": 4911,
"preview": "using DoomLauncher.Controls;\nusing DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing DoomLauncher.Stylize;"
},
{
"path": "DoomLauncher/Controls/TagControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/TagEdit.Designer.cs",
"chars": 12228,
"preview": "namespace DoomLauncher\n{\n partial class TagEdit\n {\n /// <summary> \n /// Required designer variable."
},
{
"path": "DoomLauncher/Controls/TagEdit.cs",
"chars": 2304,
"preview": "using DoomLauncher.DataSources;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.Drawing;\nusing System.Windows"
},
{
"path": "DoomLauncher/Controls/TagEdit.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/TagSelectControl.Designer.cs",
"chars": 9594,
"preview": "namespace DoomLauncher.Controls\n{\n partial class TagSelectControl\n {\n /// <summary> \n /// Required "
},
{
"path": "DoomLauncher/Controls/TagSelectControl.cs",
"chars": 10901,
"preview": "using System;\nusing System.Windows.Forms;\nusing DoomLauncher.Interfaces;\nusing System.Linq;\nusing System.Collections.Ge"
},
{
"path": "DoomLauncher/Controls/TagSelectControl.resx",
"chars": 5885,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/TitleBarControl.Designer.cs",
"chars": 6702,
"preview": "namespace DoomLauncher.Controls\n{\n partial class TitleBarControl\n {\n /// <summary> \n /// Required d"
},
{
"path": "DoomLauncher/Controls/TitleBarControl.cs",
"chars": 7725,
"preview": "using System;\nusing System.Drawing;\nusing System.Runtime.InteropServices;\nusing System.Windows.Forms;\n\nnamespace DoomLa"
},
{
"path": "DoomLauncher/Controls/TitleBarControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/Controls/UpdateControl.Designer.cs",
"chars": 4025,
"preview": "namespace DoomLauncher\n{\n partial class UpdateControl\n {\n /// <summary> \n /// Required designer var"
},
{
"path": "DoomLauncher/Controls/UpdateControl.cs",
"chars": 4353,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Net;\nusing System.Wi"
},
{
"path": "DoomLauncher/Controls/UpdateControl.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "DoomLauncher/DataSources/CleanupFile.cs",
"chars": 173,
"preview": "namespace DoomLauncher.DataSources\n{\n public class CleanupFile\n {\n public int CleanupFileID { get; set; }\n"
},
{
"path": "DoomLauncher/DataSources/ConfigurationData.cs",
"chars": 492,
"preview": "using DoomLauncher.Interfaces;\n\nnamespace DoomLauncher.DataSources\n{\n class ConfigurationData : IConfigurationData\n "
},
{
"path": "DoomLauncher/DataSources/CustomParam.cs",
"chars": 276,
"preview": "namespace DoomLauncher\n{\n public class CustomParamDataSource : ICustomParam\n {\n public int CustomParamID {"
},
{
"path": "DoomLauncher/DataSources/FileData.cs",
"chars": 1951,
"preview": "using DoomLauncher.Interfaces;\nusing System;\n\nnamespace DoomLauncher\n{\n public class FileData : IFileData\n {\n "
},
{
"path": "DoomLauncher/DataSources/GameFile.cs",
"chars": 6416,
"preview": "using DoomLauncher.Handlers;\nusing DoomLauncher.Interfaces;\nusing System;\nusing System.IO;\n\nnamespace DoomLauncher.Data"
},
{
"path": "DoomLauncher/DataSources/GameProfile.cs",
"chars": 2237,
"preview": "using DoomLauncher.Interfaces;\n\nnamespace DoomLauncher.DataSources\n{\n public class GameProfile : IGameProfile\n {\n"
},
{
"path": "DoomLauncher/DataSources/ITagDataSource.cs",
"chars": 373,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "DoomLauncher/DataSources/IWadData.cs",
"chars": 740,
"preview": "using DoomLauncher.Interfaces;\nusing System.IO;\n\nnamespace DoomLauncher\n{\n public class IWadData : IIWadData\n {\n "
},
{
"path": "DoomLauncher/DataSources/IdGamesGameFile.cs",
"chars": 3340,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.ComponentModel;\nusing System.Net;\n\nnamespace DoomLauncher.Dat"
},
{
"path": "DoomLauncher/DataSources/NewFileData.cs",
"chars": 301,
"preview": "namespace DoomLauncher\n{\n public class NewFileData\n {\n public int SourcePortID { get; set; }\n publi"
},
{
"path": "DoomLauncher/DataSources/PreviewImage.cs",
"chars": 281,
"preview": "namespace DoomLauncher\n{\n public class PreviewImage\n {\n public PreviewImage(string path, string title)\n "
},
{
"path": "DoomLauncher/DataSources/SettingsDataSource.cs",
"chars": 650,
"preview": "using DoomLauncher.Interfaces;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nus"
},
{
"path": "DoomLauncher/DataSources/SourcePortData.cs",
"chars": 2649,
"preview": "using DoomLauncher.Interfaces;\nusing DoomLauncher.SourcePort;\nusing System;\nusing System.IO;\nusing System.Linq;\n\nnamesp"
},
{
"path": "DoomLauncher/DataSources/SourcePortLaunchType.cs",
"chars": 129,
"preview": "namespace DoomLauncher\n{\n public enum SourcePortLaunchType\n {\n SourcePort,\n Utility,\n Doom64"
},
{
"path": "DoomLauncher/DataSources/StaticTagData.cs",
"chars": 266,
"preview": "using DoomLauncher.DataSources;\n\nnamespace DoomLauncher\n{\n class StaticTagData : TagData\n {\n public static"
},
{
"path": "DoomLauncher/DataSources/StatsData.cs",
"chars": 2693,
"preview": "using System;\nusing System.Globalization;\n\nnamespace DoomLauncher\n{\n public class StatsData : IStatsData\n {\n "
},
{
"path": "DoomLauncher/DataSources/TagData.cs",
"chars": 851,
"preview": "using DoomLauncher.Interfaces;\n\nnamespace DoomLauncher.DataSources\n{\n public class TagData : ITagData\n {\n "
},
{
"path": "DoomLauncher/DataSources/TagMapping.cs",
"chars": 639,
"preview": "using DoomLauncher.Interfaces;\n\nnamespace DoomLauncher.DataSources\n{\n public class TagMapping : ITagMapping\n {\n "
},
{
"path": "DoomLauncher/DataSources/WadArchiveFile.cs",
"chars": 148,
"preview": "namespace DoomLauncher.DataSources\n{\n class WadArchiveFile : FileData\n {\n public override bool IsUrl { get"
},
{
"path": "DoomLauncher/DataSources/WadArchiveGameFile.cs",
"chars": 1381,
"preview": "using Newtonsoft.Json;\nusing System.Collections.Generic;\n\nnamespace DoomLauncher.DataSources\n{\n class WadArchiveGame"
},
{
"path": "DoomLauncher/Demo/CldDemoParser.cs",
"chars": 3280,
"preview": "using System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\n\nnamespace DoomLauncher.Demo\n{\n public class C"
}
]
// ... and 363 more files (download for full content)
About this extraction
This page contains the full source code of the nstlaurent/DoomLauncher GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 563 files (4.4 MB), approximately 1.2M tokens, and a symbol index with 3343 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.