Copy disabled (too large)
Download .txt
Showing preview only (10,227K chars total). Download the full file to get everything.
Repository: NickeManarin/ScreenToGif
Branch: master
Commit: db18fb5babb8
Files: 804
Total size: 9.6 MB
Directory structure:
gitextract_e0qxbpyj/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.md
│ │ └── feature-request.md
│ └── workflows/
│ └── discord-releases.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Packages.props
├── GifRecorder.sln
├── LICENSE.txt
├── LOCALIZATION.md
├── Other/
│ └── Translator/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Controls/
│ │ ├── ExtendedTextBox.cs
│ │ ├── ImageButton.cs
│ │ ├── ImageMenuItem.cs
│ │ └── StatusBand.cs
│ ├── Converters/
│ │ ├── MultiLineTitle.cs
│ │ └── NullToInvertedBool.cs
│ ├── Dialog.xaml
│ ├── Dialog.xaml.cs
│ ├── ExceptionDialog.xaml
│ ├── ExceptionDialog.xaml.cs
│ ├── ExceptionViewer.xaml
│ ├── ExceptionViewer.xaml.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Themes/
│ │ ├── Buttons.xaml
│ │ ├── Colors.xaml
│ │ ├── ComboBox.xaml
│ │ ├── DataGridStyle.xaml
│ │ ├── Generic.xaml
│ │ ├── IconSet.xaml
│ │ └── ProgressBar.xaml
│ ├── Translator.csproj
│ ├── TranslatorWindow.xaml
│ ├── TranslatorWindow.xaml.cs
│ └── Util/
│ ├── DataGridHelper.cs
│ ├── LogWriter.cs
│ └── VisualHelper.cs
├── README.md
├── ScreenToGif/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Capture/
│ │ ├── BaseCapture.cs
│ │ ├── CachedCapture.cs
│ │ ├── DirectCachedCapture.cs
│ │ ├── DirectChangedCachedCapture.cs
│ │ ├── DirectChangedImageCapture.cs
│ │ ├── DirectImageCapture.cs
│ │ ├── ICapture.cs
│ │ ├── ImageCapture.cs
│ │ └── RegionSelectHelper.cs
│ ├── Cloud/
│ │ ├── CloudFactory.cs
│ │ ├── Imgur.cs
│ │ └── YandexDisk.cs
│ ├── Controls/
│ │ ├── AdornerControl.cs
│ │ ├── AttachmentListBoxItem.cs
│ │ ├── AwareTabItem.cs
│ │ ├── BaseRecorder.cs
│ │ ├── BaseScreenRecorder.cs
│ │ ├── BaseWindow.cs
│ │ ├── Card.cs
│ │ ├── CircularProgressBar.cs
│ │ ├── ColorBox.cs
│ │ ├── CroppingAdorner.cs
│ │ ├── DataGridHeaderBorder.cs
│ │ ├── DecimalBox.cs
│ │ ├── DecimalUpDown.cs
│ │ ├── DisplayTimer.cs
│ │ ├── DoubleBox.cs
│ │ ├── DoubleUpDown.cs
│ │ ├── DragScrollGrid.cs
│ │ ├── DrawingCanvas.cs
│ │ ├── DropDownButton.cs
│ │ ├── DynamicGrid.cs
│ │ ├── ElementAdorner.cs
│ │ ├── EncoderListViewItem.cs
│ │ ├── ExListViewItem.cs
│ │ ├── ExWindow.cs
│ │ ├── ExtendedButton.cs
│ │ ├── ExtendedCheckBox.cs
│ │ ├── ExtendedComboBox.cs
│ │ ├── ExtendedListBoxItem.cs
│ │ ├── ExtendedMenuItem.cs
│ │ ├── ExtendedProgressBar.cs
│ │ ├── ExtendedRadioButton.cs
│ │ ├── ExtendedRepeatButton.cs
│ │ ├── ExtendedSlider.cs
│ │ ├── ExtendedTextBox.cs
│ │ ├── ExtendedToggleButton.cs
│ │ ├── ExtendedUniformGrid.cs
│ │ ├── FolderSelector.cs
│ │ ├── FrameViewer.cs
│ │ ├── FrameworkElementAdorner.cs
│ │ ├── HeaderedTooltip.cs
│ │ ├── HexadecimalBox.cs
│ │ ├── HideableTabControl.cs
│ │ ├── InkCanvasExtended.cs
│ │ ├── IntegerBox.cs
│ │ ├── IntegerUpDown.cs
│ │ ├── Items/
│ │ │ ├── EncoderItem.cs
│ │ │ ├── ExportItem.cs
│ │ │ ├── GenericItem.cs
│ │ │ └── QuantizationMethodItem.cs
│ │ ├── KeyBox.cs
│ │ ├── LabelSeparator.cs
│ │ ├── LightWindow.cs
│ │ ├── MoveResizeControl.cs
│ │ ├── NotificationBox.cs
│ │ ├── NotifyIcon.cs
│ │ ├── NullableIntegerBox.cs
│ │ ├── NullableIntegerUpDown.cs
│ │ ├── PuncturedRect.cs
│ │ ├── RadialPanel.cs
│ │ ├── RangeSlider.cs
│ │ ├── ResizingAdorner.cs
│ │ ├── SelectControl.cs
│ │ ├── SelectControlOld.cs
│ │ ├── Shapes/
│ │ │ ├── Arrow.cs
│ │ │ └── Triangle.cs
│ │ ├── SpectrumSlider.cs
│ │ ├── SplitButton.cs
│ │ ├── StatusBand.cs
│ │ ├── StatusList.cs
│ │ ├── TextPath.cs
│ │ ├── TimeBox.cs
│ │ ├── WebcamControl.xaml
│ │ ├── WebcamControl.xaml.cs
│ │ └── ZoomBox.cs
│ ├── Docs/
│ │ └── Documentation.md
│ ├── ImageUtil/
│ │ └── ImageMethods.cs
│ ├── Model/
│ │ ├── FrameInfo.cs
│ │ └── ProjectInfo.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── PublishProfiles/
│ │ ├── Publish as ARM64 (light).pubxml
│ │ ├── Publish as ARM64 (self-contained).pubxml
│ │ ├── Publish as ARM64.pubxml
│ │ ├── Publish as x64 (light).pubxml
│ │ ├── Publish as x64 (self-contained).pubxml
│ │ ├── Publish as x64.pubxml
│ │ ├── Publish as x86 (light).pubxml
│ │ ├── Publish as x86 (self-contained).pubxml
│ │ └── Publish as x86.pubxml
│ ├── Readme.md
│ ├── Resources/
│ │ ├── Backgrounds.xaml
│ │ ├── Commands.xaml
│ │ ├── Flags.xaml
│ │ ├── Glyphs.xaml
│ │ ├── Localization/
│ │ │ ├── StringResources.ar.xaml
│ │ │ ├── StringResources.cs.xaml
│ │ │ ├── StringResources.da.xaml
│ │ │ ├── StringResources.de.xaml
│ │ │ ├── StringResources.el.xaml
│ │ │ ├── StringResources.en.xaml
│ │ │ ├── StringResources.es-AR.xaml
│ │ │ ├── StringResources.es.xaml
│ │ │ ├── StringResources.fi.xaml
│ │ │ ├── StringResources.fr.xaml
│ │ │ ├── StringResources.he.xaml
│ │ │ ├── StringResources.hu.xaml
│ │ │ ├── StringResources.it.xaml
│ │ │ ├── StringResources.ja.xaml
│ │ │ ├── StringResources.ko.xaml
│ │ │ ├── StringResources.nl.xaml
│ │ │ ├── StringResources.pl.xaml
│ │ │ ├── StringResources.pt-PT.xaml
│ │ │ ├── StringResources.pt.xaml
│ │ │ ├── StringResources.ru.xaml
│ │ │ ├── StringResources.sv.xaml
│ │ │ ├── StringResources.sw.xaml
│ │ │ ├── StringResources.ta.xaml
│ │ │ ├── StringResources.tr.xaml
│ │ │ ├── StringResources.uk.xaml
│ │ │ ├── StringResources.vi.xaml
│ │ │ ├── StringResources.zh-Hant.xaml
│ │ │ └── StringResources.zh.xaml
│ │ ├── Settings.xaml
│ │ ├── Style.css
│ │ └── Vectors.xaml
│ ├── ScreenToGif.csproj
│ ├── Themes/
│ │ ├── Button.xaml
│ │ ├── Colors/
│ │ │ ├── Dark.xaml
│ │ │ ├── Light.xaml
│ │ │ ├── Medium.xaml
│ │ │ └── VeryDark.xaml
│ │ ├── ComboBox.xaml
│ │ ├── Common.xaml
│ │ ├── Controls/
│ │ │ └── ExtendedComboBox.xaml
│ │ ├── DataGrid.xaml
│ │ ├── EncoderListViewItem.xaml
│ │ ├── Generic.xaml
│ │ └── Old.xaml
│ ├── UserControls/
│ │ ├── BorderPanel.xaml
│ │ ├── BorderPanel.xaml.cs
│ │ ├── DelayPanel.xaml
│ │ ├── DelayPanel.xaml.cs
│ │ ├── ExportPanel.xaml
│ │ ├── ExportPanel.xaml.cs
│ │ ├── ImageViewer.xaml
│ │ ├── ImageViewer.xaml.cs
│ │ ├── ImgurPanel.xaml
│ │ ├── ImgurPanel.xaml.cs
│ │ ├── KGySoftGifOptionsPanel.xaml
│ │ ├── KGySoftGifOptionsPanel.xaml.cs
│ │ ├── KeyStrokesPanel.xaml
│ │ ├── KeyStrokesPanel.xaml.cs
│ │ ├── MouseClicksPanel.xaml
│ │ ├── MouseClicksPanel.xaml.cs
│ │ ├── ProgressPanel.xaml
│ │ ├── ProgressPanel.xaml.cs
│ │ ├── ResizePanel.xaml
│ │ ├── ResizePanel.xaml.cs
│ │ ├── ShadowPanel.xaml
│ │ ├── ShadowPanel.xaml.cs
│ │ ├── YandexPanel.xaml
│ │ └── YandexPanel.xaml.cs
│ ├── Util/
│ │ ├── ActionStack.cs
│ │ ├── BrushAnimation.cs
│ │ ├── ClipBoard.cs
│ │ ├── ColorExtensions.cs
│ │ ├── ComboBoxItemTemplateSelector.cs
│ │ ├── Commands.cs
│ │ ├── Converters/
│ │ │ ├── CommandToKeyGesture.cs
│ │ │ ├── KeyGestureToString.cs
│ │ │ ├── PresetToSubViewModelConverter.cs
│ │ │ ├── RoutedCommandToInputGestureText.cs
│ │ │ └── ShortcutKeys.cs
│ │ ├── EncodingManager.cs
│ │ ├── Extensions/
│ │ │ ├── PresetExtensions.cs
│ │ │ └── SettingsExtension.cs
│ │ ├── FeedbackHelper.cs
│ │ ├── FrameworkHelper.cs
│ │ ├── Global.cs
│ │ ├── NotificationManager.cs
│ │ ├── Other.cs
│ │ ├── ScreenHelper.cs
│ │ ├── ScrollSynchronizer.cs
│ │ ├── StorageUtils.cs
│ │ └── ThemeHelper.cs
│ ├── ViewModel/
│ │ ├── ApplicationBaseViewModel.cs
│ │ ├── ApplicationViewModel.cs
│ │ ├── DithererDescriptor.cs
│ │ ├── KGySoftGifOptionsViewModel.cs
│ │ └── QuantizerDescriptor.cs
│ ├── Views/
│ │ └── Settings/
│ │ ├── AboutSettings.xaml
│ │ ├── AboutSettings.xaml.cs
│ │ ├── ApplicationSettings.xaml
│ │ ├── ApplicationSettings.xaml.cs
│ │ ├── DonateSettings.xaml
│ │ ├── DonateSettings.xaml.cs
│ │ ├── EditorSettings.xaml
│ │ ├── EditorSettings.xaml.cs
│ │ ├── LanguageSettings.xaml
│ │ ├── LanguageSettings.xaml.cs
│ │ ├── PluginSettings.xaml
│ │ ├── PluginSettings.xaml.cs
│ │ ├── RecorderSettings.xaml
│ │ ├── RecorderSettings.xaml.cs
│ │ ├── ShortcutsSettings.xaml
│ │ ├── ShortcutsSettings.xaml.cs
│ │ ├── StorageSettings.xaml
│ │ ├── StorageSettings.xaml.cs
│ │ ├── TasksSettings.xaml
│ │ ├── TasksSettings.xaml.cs
│ │ ├── UploadSettings.xaml
│ │ └── UploadSettings.xaml.cs
│ ├── Webcam/
│ │ ├── DirectShow/
│ │ │ ├── ControlStreaming.cs
│ │ │ ├── CoreStreaming.cs
│ │ │ ├── Devices.cs
│ │ │ ├── EditStreaming.cs
│ │ │ ├── ExtendStreaming.cs
│ │ │ ├── Marshaller.cs
│ │ │ ├── Util.cs
│ │ │ ├── Uuid.cs
│ │ │ └── WorkAround.cs
│ │ └── DirectX/
│ │ ├── CaptureWebcam.cs
│ │ ├── Filter.cs
│ │ ├── FilterCollection.cs
│ │ └── Filters.cs
│ ├── Windows/
│ │ ├── Board.xaml
│ │ ├── Board.xaml.cs
│ │ ├── Editor.xaml
│ │ ├── Editor.xaml.cs
│ │ ├── NewRecorder.xaml
│ │ ├── NewRecorder.xaml.cs
│ │ ├── Options.xaml
│ │ ├── Options.xaml.cs
│ │ ├── Other/
│ │ │ ├── AutomatedTask.xaml
│ │ │ ├── AutomatedTask.xaml.cs
│ │ │ ├── CacheDialog.xaml
│ │ │ ├── CacheDialog.xaml.cs
│ │ │ ├── ColorSelector.xaml
│ │ │ ├── ColorSelector.xaml.cs
│ │ │ ├── CommandPreviewer.xaml
│ │ │ ├── CommandPreviewer.xaml.cs
│ │ │ ├── Dialog.xaml
│ │ │ ├── Dialog.xaml.cs
│ │ │ ├── DownloadDialog.xaml
│ │ │ ├── DownloadDialog.xaml.cs
│ │ │ ├── Downloader.xaml
│ │ │ ├── Downloader.xaml.cs
│ │ │ ├── Encoder.xaml
│ │ │ ├── Encoder.xaml.cs
│ │ │ ├── ErrorDialog.xaml
│ │ │ ├── ErrorDialog.xaml.cs
│ │ │ ├── ExceptionDialog.xaml
│ │ │ ├── ExceptionDialog.xaml.cs
│ │ │ ├── ExceptionViewer.xaml
│ │ │ ├── ExceptionViewer.xaml.cs
│ │ │ ├── Feedback.xaml
│ │ │ ├── Feedback.xaml.cs
│ │ │ ├── FeedbackPreview.xaml
│ │ │ ├── FeedbackPreview.xaml.cs
│ │ │ ├── GoTo.xaml
│ │ │ ├── GoTo.xaml.cs
│ │ │ ├── GraphicsConfigurationDialog.xaml
│ │ │ ├── GraphicsConfigurationDialog.xaml.cs
│ │ │ ├── Insert.xaml
│ │ │ ├── Insert.xaml.cs
│ │ │ ├── KeyStrokes.xaml
│ │ │ ├── KeyStrokes.xaml.cs
│ │ │ ├── Localization.xaml
│ │ │ ├── Localization.xaml.cs
│ │ │ ├── PickAlbumDialog.xaml
│ │ │ ├── PickAlbumDialog.xaml.cs
│ │ │ ├── Preset.xaml
│ │ │ ├── Preset.xaml.cs
│ │ │ ├── RegionMagnifier.xaml
│ │ │ ├── RegionMagnifier.xaml.cs
│ │ │ ├── RegionSelection.xaml
│ │ │ ├── RegionSelection.xaml.cs
│ │ │ ├── RegionSelector.xaml
│ │ │ ├── RegionSelector.xaml.cs
│ │ │ ├── Splash.xaml
│ │ │ ├── Splash.xaml.cs
│ │ │ ├── Startup.xaml
│ │ │ ├── Startup.xaml.cs
│ │ │ ├── TestField.xaml
│ │ │ ├── TestField.xaml.cs
│ │ │ ├── TextDialog.xaml
│ │ │ ├── TextDialog.xaml.cs
│ │ │ ├── Troubleshoot.xaml
│ │ │ ├── Troubleshoot.xaml.cs
│ │ │ ├── Upload.xaml
│ │ │ ├── Upload.xaml.cs
│ │ │ ├── UploadHistory.xaml
│ │ │ ├── UploadHistory.xaml.cs
│ │ │ ├── VideoSource.xaml
│ │ │ └── VideoSource.xaml.cs
│ │ ├── Recorder.xaml
│ │ ├── Recorder.xaml.cs
│ │ ├── Webcam.xaml
│ │ └── Webcam.xaml.cs
│ └── app.manifest
├── ScreenToGif.Model/
│ ├── Enums/
│ │ ├── AdornerPlacement.cs
│ │ ├── AppThemes.cs
│ │ ├── ApplicationTypes.cs
│ │ ├── CaptureFrequencies.cs
│ │ ├── ColorQuantizationType.cs
│ │ ├── CopyModes.cs
│ │ ├── DelayChangeType.cs
│ │ ├── DelayUpdateModes.cs
│ │ ├── DitherMethods.cs
│ │ ├── DrawingModeType.cs
│ │ ├── DuplicatesDelayModes.cs
│ │ ├── DuplicatesRemovalModes.cs
│ │ ├── EncoderTypes.cs
│ │ ├── EncodingStatus.cs
│ │ ├── ExitAction.cs
│ │ ├── ExportFormats.cs
│ │ ├── ExtrasStatus.cs
│ │ ├── FadeModes.cs
│ │ ├── FlipRotateType.cs
│ │ ├── Framerates.cs
│ │ ├── GifskiErrorCodes.cs
│ │ ├── HardwareAcceleration.cs
│ │ ├── Icons.cs
│ │ ├── ModeType.cs
│ │ ├── MouseButtons.cs
│ │ ├── MouseEventType.cs
│ │ ├── Native/
│ │ │ ├── BaloonFlags.cs
│ │ │ ├── BitmapCompressionModes.cs
│ │ │ ├── CopyPixelOperations.cs
│ │ │ ├── CornerPreferences.cs
│ │ │ ├── DeviceCaps.cs
│ │ │ ├── DibColorModes.cs
│ │ │ ├── DisplayDeviceStates.cs
│ │ │ ├── DisplayDevices.cs
│ │ │ ├── DpiTypes.cs
│ │ │ ├── DwmWindowAttributes.cs
│ │ │ ├── GetAncestorFlags.cs
│ │ │ ├── GetWindowTypes.cs
│ │ │ ├── HitTestTargets.cs
│ │ │ ├── IconDataMembers.cs
│ │ │ ├── IconStates.cs
│ │ │ ├── LocalMemoryFlags.cs
│ │ │ ├── MapTypes.cs
│ │ │ ├── MenuFunctions.cs
│ │ │ ├── NativeMouseEvents.cs
│ │ │ ├── NotifyCommands.cs
│ │ │ ├── NotifyIconVersions.cs
│ │ │ ├── ProcessDpiAwareness.cs
│ │ │ ├── SetWindowPosFlags.cs
│ │ │ ├── ShellExecuteMasks.cs
│ │ │ ├── ShowWindowCommands.cs
│ │ │ ├── SpecialWindowHandles.cs
│ │ │ ├── SysCommands.cs
│ │ │ ├── TimeResults.cs
│ │ │ ├── WindowAttributes.cs
│ │ │ ├── WindowStyles.cs
│ │ │ ├── WindowStylesEx.cs
│ │ │ └── WindowsMessages.cs
│ │ ├── ObfuscationModes.cs
│ │ ├── OverwriteModes.cs
│ │ ├── PanelType.cs
│ │ ├── PartialExportModes.cs
│ │ ├── PasteBehaviors.cs
│ │ ├── PredictionMethods.cs
│ │ ├── ProgressTypes.cs
│ │ ├── ProjectByType.cs
│ │ ├── ProxyTypes.cs
│ │ ├── RateUnits.cs
│ │ ├── RecorderStages.cs
│ │ ├── ReduceDelayModes.cs
│ │ ├── ResizeDirection.cs
│ │ ├── ScalingMethod.cs
│ │ ├── SizeUnits.cs
│ │ ├── SlideFromType.cs
│ │ ├── SmoothLoopSelectionModes.cs
│ │ ├── StatusReason.cs
│ │ ├── StatusType.cs
│ │ ├── SupportedFFmpegVersions.cs
│ │ ├── TaskTypes.cs
│ │ ├── UploadDestinations.cs
│ │ ├── UploadService.cs
│ │ ├── VideoCodecPresets.cs
│ │ ├── VideoCodecs.cs
│ │ ├── VideoPixelFormats.cs
│ │ ├── VideoSettingsModes.cs
│ │ └── Vsyncs.cs
│ ├── Events/
│ │ ├── CustomKeyEventArgs.cs
│ │ ├── CustomKeyPressEventArgs.cs
│ │ ├── ManipulatedEventArgs.cs
│ │ ├── SaveEventArgs.cs
│ │ └── ValidatedEventArgs.cs
│ ├── Exceptions/
│ │ ├── GraphicsConfigurationException.cs
│ │ ├── SettingsPersistenceException.cs
│ │ └── UploadException.cs
│ ├── Interfaces/
│ │ ├── IExportPreset.cs
│ │ ├── IFfmpegPreset.cs
│ │ ├── IFrame.cs
│ │ ├── IHistory.cs
│ │ ├── IKeyGesture.cs
│ │ ├── IPanel.cs
│ │ ├── IPersistent.cs
│ │ ├── IPreset.cs
│ │ ├── IUploadPreset.cs
│ │ └── IUploader.cs
│ ├── Models/
│ │ ├── DetectedRegion.cs
│ │ ├── ExportFrame.cs
│ │ ├── ExportProject.cs
│ │ ├── FosshubItem.cs
│ │ ├── FosshubRelease.cs
│ │ ├── FosshubResponse.cs
│ │ ├── Frame.cs
│ │ ├── GitHub/
│ │ │ ├── GitHubAsset.cs
│ │ │ ├── GitHubRelease.cs
│ │ │ └── GitHubUser.cs
│ │ ├── MediaSource.cs
│ │ ├── Native/
│ │ │ ├── Monitor.cs
│ │ │ └── NativeRect.cs
│ │ ├── Project/
│ │ │ ├── Project.cs
│ │ │ ├── Sequence.cs
│ │ │ ├── Sequences/
│ │ │ │ ├── BrushSequence.cs
│ │ │ │ ├── CursorSequence.cs
│ │ │ │ ├── DrawingSequence.cs
│ │ │ │ ├── KeySequence.cs
│ │ │ │ ├── ObfuscationSequence.cs
│ │ │ │ ├── ProgressSequence.cs
│ │ │ │ ├── RasterSequence.cs
│ │ │ │ ├── ShapeSequence.cs
│ │ │ │ ├── SizeableSequence.cs
│ │ │ │ ├── SubSequences/
│ │ │ │ │ ├── CursorEvent.cs
│ │ │ │ │ ├── Frame.cs
│ │ │ │ │ ├── KeyEvent.cs
│ │ │ │ │ └── Shadow.cs
│ │ │ │ └── TextSequence.cs
│ │ │ └── Track.cs
│ │ ├── Property.cs
│ │ ├── SimpleMouseGesture.cs
│ │ ├── Upload/
│ │ │ ├── Imgur/
│ │ │ │ ├── ImgurAlbum.cs
│ │ │ │ ├── ImgurAlbumsResponse.cs
│ │ │ │ ├── ImgurImage.cs
│ │ │ │ └── ImgurUploadResponse.cs
│ │ │ ├── OAuth2Token.cs
│ │ │ └── YandexDisk/
│ │ │ ├── Error.cs
│ │ │ └── Link.cs
│ │ └── VideoSource.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ScreenToGif.Domain.csproj
│ ├── Structs/
│ │ └── GifskiSettings.cs
│ └── ViewModels/
│ ├── BaseViewModel.cs
│ └── BindableBase.cs
├── ScreenToGif.Native/
│ ├── Constants.cs
│ ├── Delegates.cs
│ ├── External/
│ │ ├── DwmApi.cs
│ │ ├── Gdi32.cs
│ │ ├── Kernel32.cs
│ │ ├── MsvCrt.cs
│ │ ├── NtDll.cs
│ │ ├── ShCore.cs
│ │ ├── Shell32.cs
│ │ ├── User32.cs
│ │ └── WinMm.cs
│ ├── Helpers/
│ │ ├── DllSecurity.cs
│ │ ├── FunctionLoader.cs
│ │ ├── HotKey.cs
│ │ ├── Other.cs
│ │ ├── TimerResolution.cs
│ │ └── WindowMessageSink.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ScreenToGif.Native.csproj
│ └── Structs/
│ ├── Bitmap.cs
│ ├── BitmapFileHeader.cs
│ ├── BitmapInfoHeader.cs
│ ├── CursorInfo.cs
│ ├── IconInfo.cs
│ ├── KeyboardHook.cs
│ ├── Margins.cs
│ ├── MemoryStatusEx.cs
│ ├── MinMaxInfo.cs
│ ├── MonitorInfoEx.cs
│ ├── MouseHook.cs
│ ├── NotifyIconData.cs
│ ├── PointW.cs
│ ├── ShellExecuteInfo.cs
│ ├── TimeCaps.cs
│ ├── TitlebarInfo.cs
│ ├── WindowClass.cs
│ ├── WindowInfo.cs
│ └── WindowPlacement.cs
├── ScreenToGif.Test/
│ ├── A11Y/
│ │ └── ThemeContrastTests.cs
│ ├── Data/
│ │ └── Upload/
│ │ └── Test.txt
│ ├── Facts/
│ │ ├── ImageComparison.cs
│ │ └── YandexUpload.cs
│ ├── ScreenToGif.Test.csproj
│ └── Util/
│ └── HttpHelper.cs
├── ScreenToGif.Util/
│ ├── Arguments.cs
│ ├── BitHelper.cs
│ ├── Codification/
│ │ ├── Apng/
│ │ │ ├── Apng.cs
│ │ │ └── Chunks/
│ │ │ ├── ActlChunk.cs
│ │ │ ├── ApngFrame.cs
│ │ │ ├── Chunk.cs
│ │ │ ├── FctlChunk.cs
│ │ │ ├── FdatChunk.cs
│ │ │ ├── IdatChunk.cs
│ │ │ └── IhdrChunk.cs
│ │ ├── Gif/
│ │ │ ├── Decoder/
│ │ │ │ ├── GifApplicationExtension.cs
│ │ │ │ ├── GifBlock.cs
│ │ │ │ ├── GifBlockKind.cs
│ │ │ │ ├── GifColor.cs
│ │ │ │ ├── GifCommentExtension.cs
│ │ │ │ ├── GifDecoderException.cs
│ │ │ │ ├── GifExtension.cs
│ │ │ │ ├── GifFile.cs
│ │ │ │ ├── GifFrame.cs
│ │ │ │ ├── GifGraphicControlExtension.cs
│ │ │ │ ├── GifHeader.cs
│ │ │ │ ├── GifHelpers.cs
│ │ │ │ ├── GifImageData.cs
│ │ │ │ ├── GifImageDescriptor.cs
│ │ │ │ ├── GifLogicalScreenDescriptor.cs
│ │ │ │ ├── GifPlainTextExtension.cs
│ │ │ │ └── GifTrailer.cs
│ │ │ ├── Encoder/
│ │ │ │ ├── BitEncoder.cs
│ │ │ │ ├── GifFile.cs
│ │ │ │ ├── LZWEncoder.cs
│ │ │ │ └── Quantization/
│ │ │ │ ├── GrayscaleQuantizer.cs
│ │ │ │ ├── MedianCutQuantizer.cs
│ │ │ │ ├── MostUsedQuantizer.cs
│ │ │ │ ├── NeuralQuantizer.cs
│ │ │ │ ├── OctreeQuantizer.cs
│ │ │ │ ├── PaletteQuantizer.cs
│ │ │ │ └── Quantizer.cs
│ │ │ └── LegacyEncoder/
│ │ │ ├── GifEncoder.cs
│ │ │ ├── LZWEncoder.cs
│ │ │ └── PixelUtilOld.cs
│ │ ├── PixelUtil.cs
│ │ └── Psd/
│ │ ├── AditionalLayers/
│ │ │ ├── IAditionalLayerInfo.cs
│ │ │ ├── IMetadata.cs
│ │ │ ├── Metadata.cs
│ │ │ └── MetadataContent.cs
│ │ ├── Channel.cs
│ │ ├── IPsdContent.cs
│ │ ├── Image.cs
│ │ ├── ImageChannelData.cs
│ │ ├── ImageData.cs
│ │ ├── ImageResourceBlocks/
│ │ │ ├── AnimationBlock.cs
│ │ │ ├── IImageResource.cs
│ │ │ └── ImageResources.cs
│ │ ├── LayerAndMask.cs
│ │ ├── LayerInfo.cs
│ │ ├── LayerRecord.cs
│ │ └── Psd.cs
│ ├── Constants.cs
│ ├── Converters/
│ │ ├── AlphaToOpacity.cs
│ │ ├── BoolAnd.cs
│ │ ├── BoolAndOrOrToVisibility.cs
│ │ ├── BoolAndToVisibility.cs
│ │ ├── BoolOr.cs
│ │ ├── BoolOrAndToVisibility.cs
│ │ ├── BoolOrToInvertedVisibility.cs
│ │ ├── BoolOrToVisibility.cs
│ │ ├── BoolToOpacity.cs
│ │ ├── BytesToSize.cs
│ │ ├── CenterPopupConverter.cs
│ │ ├── ColorToAlpha.cs
│ │ ├── ColorToBrush.cs
│ │ ├── ContentToVisibility.cs
│ │ ├── CountToBool.cs
│ │ ├── DoubleTimesAHundredToInt.cs
│ │ ├── DoubleToBool.cs
│ │ ├── DoubleToInt.cs
│ │ ├── DoubleToPercentage.cs
│ │ ├── DoubleToPositionSize.cs
│ │ ├── DoubleToRadius.cs
│ │ ├── DoubleToThickness.cs
│ │ ├── EnumToBool.cs
│ │ ├── EnumToInt.cs
│ │ ├── EnumToVisibility.cs
│ │ ├── FontToSupportedGliph.cs
│ │ ├── FormatConverter.cs
│ │ ├── HasEnumToVisibility.cs
│ │ ├── IntToBool.cs
│ │ ├── IntToDecimal.cs
│ │ ├── IntToDelayString.cs
│ │ ├── IntToRect.cs
│ │ ├── IntToString.cs
│ │ ├── IntToVisibility.cs
│ │ ├── InvertedBool.cs
│ │ ├── InvertedBoolToVisibility.cs
│ │ ├── InvertedEnumToBool.cs
│ │ ├── InvertedEnumToVisibility.cs
│ │ ├── InvertedIntToVisibility.cs
│ │ ├── InvertedVisibility.cs
│ │ ├── KeyToResource.cs
│ │ ├── KeysToString.cs
│ │ ├── MaximumValue.cs
│ │ ├── MultiLineTitle.cs
│ │ ├── NullToVisibility.cs
│ │ ├── PathToFilename.cs
│ │ ├── PercentageToOpacity.cs
│ │ ├── ScaleConverter.cs
│ │ ├── SelectionCountToDescription.cs
│ │ ├── SelectionToDrawingAttributes.cs
│ │ ├── SelectionToEditingMode.cs
│ │ ├── SelectionToStylusShape.cs
│ │ ├── ShortcutSelection.cs
│ │ ├── SourceToSize.cs
│ │ ├── StageToButtonString.cs
│ │ ├── StageToCanvas.cs
│ │ ├── StringArrayTypeConverter.cs
│ │ ├── StringToDoubleArray.cs
│ │ ├── StringToInt.cs
│ │ ├── StylusTipToBool.cs
│ │ ├── TagToSelection.cs
│ │ ├── TimeSpanToString.cs
│ │ ├── TimeSpanToTotalMilliseconds.cs
│ │ └── UriToBitmap.cs
│ ├── CrcHelper.cs
│ ├── DataGridHelper.cs
│ ├── DebounceDispatcher.cs
│ ├── DirectoryHelper.cs
│ ├── DynamicResourceBinding.cs
│ ├── ExtendedStack.cs
│ ├── Extensions/
│ │ ├── EnumExtensions.cs
│ │ ├── ImageExtensions.cs
│ │ ├── InlineExtensions.cs
│ │ ├── MathExtensions.cs
│ │ ├── ParseExtensions.cs
│ │ ├── PropertyExtensions.cs
│ │ ├── RectExtensions.cs
│ │ ├── StringExtensions.cs
│ │ └── VersionExtensions.cs
│ ├── FastRandom.cs
│ ├── Framerate.cs
│ ├── GifskiInterop.cs
│ ├── GitHubHelper.cs
│ ├── Helpers/
│ │ ├── CursorHelper.cs
│ │ ├── FfmpegHelper.cs
│ │ └── KeyHelper.cs
│ ├── Humanizer.cs
│ ├── IdentityHelper.cs
│ ├── InterProcessChannel/
│ │ ├── InstanceSwitcherChannel.cs
│ │ ├── PipeServer.cs
│ │ └── SettingsPersistenceChannel.cs
│ ├── LocalizationHelper.cs
│ ├── LogWritter.cs
│ ├── MutexList.cs
│ ├── Native/
│ │ ├── Capture.cs
│ │ ├── HotKeyCollection.cs
│ │ ├── InputHook.cs
│ │ ├── Monitor.cs
│ │ ├── NotifyIconHelper.cs
│ │ └── WindowHelper.cs
│ ├── NetworkHelper.cs
│ ├── OperationalSystemHelper.cs
│ ├── PathHelper.cs
│ ├── ProcessHelper.cs
│ ├── ScreenToGif.Util.csproj
│ ├── Secret.cs
│ ├── Serializer.cs
│ ├── Settings/
│ │ ├── Migrations/
│ │ │ ├── Migration0to2_28_0.cs
│ │ │ ├── Migration2_28_0To2_29_0.cs
│ │ │ ├── Migration2_29_0To2_31_0.cs
│ │ │ ├── Migration2_31_0To2_32_0.cs
│ │ │ ├── Migration2_32_0To2_35_0.cs
│ │ │ ├── Migration2_35_0To2_36_0.cs
│ │ │ ├── Migration2_36_0To2_37_0.cs
│ │ │ └── Migration2_37_0To2_43_0.cs
│ │ ├── Migrations.cs
│ │ └── UserSettings.cs
│ ├── SimpleKeyGesture.cs
│ ├── StreamHelpers.cs
│ ├── UiElementsExtension.cs
│ ├── VisualHelper.cs
│ ├── WebHelper.cs
│ └── WordLevel.cs
└── ScreenToGif.ViewModel/
├── BoardRecorderViewModel.cs
├── EditorViewModel.cs
├── ExportPresets/
│ ├── AnimatedImage/
│ │ ├── AnimatedImagePreset.cs
│ │ ├── Apng/
│ │ │ ├── ApngPreset.cs
│ │ │ ├── EmbeddedApngPreset.cs
│ │ │ └── FfmpegApngPreset.cs
│ │ ├── Avif/
│ │ │ ├── AvifPreset.cs
│ │ │ └── FfmpegAvifPreset.cs
│ │ ├── Bpg/
│ │ │ └── BpgPreset.cs
│ │ ├── Gif/
│ │ │ ├── EmbeddedGifPreset.cs
│ │ │ ├── FfmpegGifPreset.cs
│ │ │ ├── GifPreset.cs
│ │ │ ├── GifskiGifPreset.cs
│ │ │ ├── KGySoftGifPreset.cs
│ │ │ └── SystemGifPreset.cs
│ │ └── Webp/
│ │ ├── FfmpegWebpPreset.cs
│ │ └── WebpPreset.cs
│ ├── ExportPreset.cs
│ ├── Image/
│ │ ├── BmpPreset.cs
│ │ ├── ImagePreset.cs
│ │ ├── JpegPreset.cs
│ │ └── PngPreset.cs
│ ├── Other/
│ │ ├── PsdPreset.cs
│ │ └── StgPreset.cs
│ └── Video/
│ ├── Avi/
│ │ ├── AviPreset.cs
│ │ └── FfmpegAviPreset.cs
│ ├── Codecs/
│ │ ├── H264Amf.cs
│ │ ├── H264Nvenc.cs
│ │ ├── H264Qsv.cs
│ │ ├── HevcAmf.cs
│ │ ├── HevcNvenc.cs
│ │ ├── HevcQsv.cs
│ │ ├── LibAom.cs
│ │ ├── Mpeg2.cs
│ │ ├── Mpeg4.cs
│ │ ├── Rav1E.cs
│ │ ├── SvtAv1.cs
│ │ ├── VideoCodec.cs
│ │ ├── Vp8.cs
│ │ ├── Vp9.cs
│ │ ├── X264.cs
│ │ └── X265.cs
│ ├── Mkv/
│ │ ├── FfmpegMkvPreset.cs
│ │ └── MkvPreset.cs
│ ├── Mov/
│ │ ├── FfmpegMovPreset.cs
│ │ └── MovPreset.cs
│ ├── Mp4/
│ │ ├── FfmpegMp4Preset.cs
│ │ └── Mp4Preset.cs
│ ├── VideoPreset.cs
│ └── Webm/
│ ├── FfmpegWebmPreset.cs
│ └── WebmPreset.cs
├── FrameViewModel.cs
├── RecorderViewModel.cs
├── ScreenRecorderViewModel.cs
├── ScreenToGif.ViewModel.csproj
├── Settings/
│ └── PluginSettingsViewModel.cs
├── Tasks/
│ ├── BaseTaskViewModel.cs
│ ├── BorderViewModel.cs
│ ├── DelayViewModel.cs
│ ├── KeyStrokesViewModel.cs
│ ├── MouseEventsViewModel.cs
│ ├── ProgressViewModel.cs
│ ├── ResizeViewModel.cs
│ └── ShadowViewModel.cs
├── UpdateAvailable.cs
├── UploadPresets/
│ ├── Custom/
│ │ └── CustomPreset.cs
│ ├── History/
│ │ ├── History.cs
│ │ └── ImgurHistory.cs
│ ├── Imgur/
│ │ ├── ImgurAlbum.cs
│ │ └── ImgurPreset.cs
│ ├── UploadPreset.cs
│ └── Yandex/
│ └── YandexPreset.cs
├── VideoSourceViewModel.cs
└── WebcamViewModel.cs
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true
# All files
[*]
charset = utf-8
end_of_line = crlf
insert_final_newline = false
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
# Markdown files
[*.{md}]
indent_size = 2
# Visual Studio Solution Files
[*.sln]
indent_style = tab
# Visual Studio XML Project Files
[*.{csproj,vbproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2
# XML Configuration Files
[*.{xml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct}]
indent_size = 2
# C# files
[*.cs]
#### Core EditorConfig Options ####
# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4
# New line preferences
end_of_line = crlf
insert_final_newline = false
#### .NET Coding Conventions ####
# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = false
file_header_template = unset
# this. and Me. preferences
dotnet_style_qualification_for_event = false:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true
# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members
# Expression-level preferences
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = true
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true
# Field preferences
dotnet_style_readonly_field = true
# Parameter preferences
dotnet_code_quality_unused_parameters = all
# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = 0
# New line preferences
dotnet_style_allow_multiple_blank_lines_experimental = false:suggestion
dotnet_style_allow_statement_immediately_after_block_experimental = false:warning
#### C# Coding Conventions ####
# var preferences
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
# Expression-bodied members
csharp_style_expression_bodied_accessors = when_on_single_line:suggestion
csharp_style_expression_bodied_constructors = true
csharp_style_expression_bodied_indexers = true
csharp_style_expression_bodied_lambdas = when_on_single_line:suggestion
csharp_style_expression_bodied_local_functions = false
csharp_style_expression_bodied_methods = true
csharp_style_expression_bodied_operators = true
csharp_style_expression_bodied_properties = true
# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true:suggestion
csharp_style_prefer_switch_expression = true
# Null-checking preferences
csharp_style_conditional_delegate_call = true
# Modifier preferences
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async
# Code-block preferences
csharp_prefer_braces = false:suggestion
csharp_prefer_simple_using_statement = true
csharp_style_namespace_declarations = file_scoped:suggestion
# Expression-level preferences
csharp_prefer_simple_default_expression = true
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_pattern_local_over_anonymous_function = true
csharp_style_prefer_index_operator = true:silent
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true:silent
csharp_style_throw_expression = true
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable
# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:warning
# New line preferences
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:warning
csharp_style_allow_embedded_statements_on_same_line_experimental = false:warning
#### C# Formatting Rules ####
# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = false
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
#### Naming styles ####
# Naming rules
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
# Symbol specifications
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
# Naming styles
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [NickeManarin]
patreon: nicke
open_collective: # Replace with a single Open Collective username
ko_fi: nickemanarin
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: NickeManarin
otechie: # Replace with a single Otechie username
custom: ["https://www.screentogif.com/donate", "https://flattr.com/@NickeManarin/domain/screentogif.com", "https://www.buymeacoffee.com/NickeManarin"]
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug Report
about: Create a report to help us improve
title: "[Bug] Title"
labels: "\U0001F537 Bug \U0001F41B, ⬜ Pending"
assignees: NickeManarin
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Windows 10]
- Version [e.g. 2.35.2]
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature Request
about: Suggest an idea for this project
title: "[Feature Request] Title"
labels: "\U0001F537Enhancement, ⬜ Pending"
assignees: NickeManarin
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/workflows/discord-releases.yml
================================================
# This is a basic workflow to help you get started with Actions
name: Discord • Releases
# Controls when the action will run.
on:
# Triggers the workflow on new release.
release:
types: [published]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "released"
released:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: Sends release details to Discord/News channel
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Sending release notes
# Checks-out a repository, to send the release notes
uses: nhevia/discord-styled-releases@main
# Gets the ID and Token from the project secrets
with:
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
================================================
FILE: .gitignore
================================================
################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################
/GifRecorder.v12.suo
/.vs
/GifRecorder
/GifRecorder.v12-Notebook-Nicke.suo
/GifRecorder.suo
/GifRecorder.sdf
/GifRecorder.sln.DotSettings
ScreenToGif/Util/Secret.cs
/ScreenToGif/Util/Secret.cs
/ScreenToGif.UWP
/packages
obj
bin
/log.txt
*.user
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language, using english when possible
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at nicke@outlook.com.br. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: CONTRIBUTING.md
================================================
## Rules to follow for this project:
* Every feature should be packed into the main executable, unless it's optional like FFmpeg and Gifski.
* To be accepted, any big feature or change should be discussed first with the maintainer of the project.
* PRs should be directed to the dev branch.
================================================
FILE: Directory.Build.props
================================================
<Project>
<PropertyGroup>
<Version>2.43.0</Version>
<FileVersion>2.43.0</FileVersion>
<AssemblyVersion>2.43.0</AssemblyVersion>
<Company>Nicke Manarin</Company>
<Authors>Nicke Manarin</Authors>
<Copyright>Copyright© Nicke Manarin 2026</Copyright>
<PackageProjectUrl>https://www.screentogif.com</PackageProjectUrl>
<PackageReadmeFile>Readme.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/nickemanarin/screentogif</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>gif; recorder; editor; screen-recorder; gif-editor</PackageTags>
<PackageLicenseExpression>MS-PL</PackageLicenseExpression>
<Description>Screen, webcam and sketchboard recorder, with integrated editor!</Description>
<CETCompat>false</CETCompat>
</PropertyGroup>
</Project>
================================================
FILE: Directory.Packages.props
================================================
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="3.1.2" />
<PackageVersion Include="KGySoft.CoreLibraries" Version="10.5.0" />
<PackageVersion Include="KGySoft.Drawing" Version="10.0.1" />
<PackageVersion Include="KGySoft.Drawing.Core" Version="10.0.1" />
<PackageVersion Include="KGySoft.Drawing.Wpf" Version="10.0.1" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.421302" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.0" />
<PackageVersion Include="SharpCompress" Version="0.40.0" />
<PackageVersion Include="SharpDX.Direct3D11" Version="4.2.0" />
<PackageVersion Include="System.Drawing.Common" Version="8.0.0" />
<PackageVersion Include="System.Management" Version="9.0.5" />
<PackageVersion Include="xunit" Version="2.4.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.4.3" />
</ItemGroup>
</Project>
================================================
FILE: GifRecorder.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
VisualStudioVersion = 18.5.11605.296
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{0039724A-6303-4D73-B5B2-7063DF16C573}"
ProjectSection(SolutionItems) = preProject
CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
CONTRIBUTING.md = CONTRIBUTING.md
Directory.Build.props = Directory.Build.props
Directory.Packages.props = Directory.Packages.props
LICENSE.txt = LICENSE.txt
LOCALIZATION.md = LOCALIZATION.md
README.md = README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif", "ScreenToGif\ScreenToGif.csproj", "{9A332077-74BA-4C6A-8381-6D98C31A490A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Other", "Other", "{13F2A1B9-496A-446E-8B06-776ACAE5CEA4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Translator", "Other\Translator\Translator.csproj", "{8B516DFB-0981-48A2-8A06-35F085C13980}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif.Domain", "ScreenToGif.Model\ScreenToGif.Domain.csproj", "{EEE831AD-1447-474D-9875-94E56A854E71}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif.Native", "ScreenToGif.Native\ScreenToGif.Native.csproj", "{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif.Test", "ScreenToGif.Test\ScreenToGif.Test.csproj", "{9D64714B-20BC-4A18-B89F-FA432E710EB4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif.Util", "ScreenToGif.Util\ScreenToGif.Util.csproj", "{B39A6DFB-F44E-403D-9451-3CEAD3423135}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScreenToGif.ViewModel", "ScreenToGif.ViewModel\ScreenToGif.ViewModel.csproj", "{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug (Store)|Any CPU = Debug (Store)|Any CPU
Debug (Store)|ARM64 = Debug (Store)|ARM64
Debug (Store)|x64 = Debug (Store)|x64
Debug (Store)|x86 = Debug (Store)|x86
Debug|Any CPU = Debug|Any CPU
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|ARM64.ActiveCfg = Debug|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|ARM64.Build.0 = Debug|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|x64.ActiveCfg = Debug|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|x64.Build.0 = Debug|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|x86.ActiveCfg = Debug|x86
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Debug|x86.Build.0 = Debug|x86
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|Any CPU.Build.0 = Release|Any CPU
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|ARM64.ActiveCfg = Release|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|ARM64.Build.0 = Release|ARM64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|x64.ActiveCfg = Release|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|x64.Build.0 = Release|x64
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|x86.ActiveCfg = Release|x86
{9A332077-74BA-4C6A-8381-6D98C31A490A}.Release|x86.Build.0 = Release|x86
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug|ARM64.ActiveCfg = Debug|ARM64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug|x64.ActiveCfg = Debug|x64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Debug|x86.ActiveCfg = Debug|x86
{8B516DFB-0981-48A2-8A06-35F085C13980}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Release|Any CPU.Build.0 = Release|Any CPU
{8B516DFB-0981-48A2-8A06-35F085C13980}.Release|ARM64.ActiveCfg = Release|ARM64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Release|x64.ActiveCfg = Release|x64
{8B516DFB-0981-48A2-8A06-35F085C13980}.Release|x86.ActiveCfg = Release|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|ARM64.ActiveCfg = Debug|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|ARM64.Build.0 = Debug|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|x64.ActiveCfg = Debug|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|x64.Build.0 = Debug|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|x86.ActiveCfg = Debug|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Debug|x86.Build.0 = Debug|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|Any CPU.Build.0 = Release|Any CPU
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|ARM64.ActiveCfg = Release|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|ARM64.Build.0 = Release|ARM64
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|x64.ActiveCfg = Release|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|x64.Build.0 = Release|x64
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|x86.ActiveCfg = Release|x86
{EEE831AD-1447-474D-9875-94E56A854E71}.Release|x86.Build.0 = Release|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|ARM64.ActiveCfg = Debug|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|ARM64.Build.0 = Debug|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|x64.ActiveCfg = Debug|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|x64.Build.0 = Debug|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|x86.ActiveCfg = Debug|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Debug|x86.Build.0 = Debug|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|Any CPU.Build.0 = Release|Any CPU
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|ARM64.ActiveCfg = Release|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|ARM64.Build.0 = Release|ARM64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|x64.ActiveCfg = Release|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|x64.Build.0 = Release|x64
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|x86.ActiveCfg = Release|x86
{66D60F4A-C0B4-4077-8DE6-0431F6AD5E87}.Release|x86.Build.0 = Release|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|ARM64.Build.0 = Debug|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|x64.ActiveCfg = Debug|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|x64.Build.0 = Debug|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|x86.ActiveCfg = Debug|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Debug|x86.Build.0 = Debug|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|Any CPU.Build.0 = Release|Any CPU
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|ARM64.ActiveCfg = Release|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|ARM64.Build.0 = Release|ARM64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|x64.ActiveCfg = Release|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|x64.Build.0 = Release|x64
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|x86.ActiveCfg = Release|x86
{9D64714B-20BC-4A18-B89F-FA432E710EB4}.Release|x86.Build.0 = Release|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|ARM64.Build.0 = Debug|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|x64.ActiveCfg = Debug|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|x64.Build.0 = Debug|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|x86.ActiveCfg = Debug|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Debug|x86.Build.0 = Debug|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|Any CPU.Build.0 = Release|Any CPU
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|ARM64.ActiveCfg = Release|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|ARM64.Build.0 = Release|ARM64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|x64.ActiveCfg = Release|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|x64.Build.0 = Release|x64
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|x86.ActiveCfg = Release|x86
{B39A6DFB-F44E-403D-9451-3CEAD3423135}.Release|x86.Build.0 = Release|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|Any CPU.ActiveCfg = Debug (Store)|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|Any CPU.Build.0 = Debug (Store)|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|ARM64.ActiveCfg = Debug (Store)|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|ARM64.Build.0 = Debug (Store)|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|x64.ActiveCfg = Debug (Store)|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|x64.Build.0 = Debug (Store)|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|x86.ActiveCfg = Debug (Store)|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug (Store)|x86.Build.0 = Debug (Store)|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|ARM64.ActiveCfg = Debug|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|ARM64.Build.0 = Debug|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|x64.ActiveCfg = Debug|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|x64.Build.0 = Debug|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|x86.ActiveCfg = Debug|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Debug|x86.Build.0 = Debug|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|Any CPU.Build.0 = Release|Any CPU
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|ARM64.ActiveCfg = Release|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|ARM64.Build.0 = Release|ARM64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|x64.ActiveCfg = Release|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|x64.Build.0 = Release|x64
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|x86.ActiveCfg = Release|x86
{97AAAA14-2793-49B7-96C5-6C6E83C55EB7}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8B516DFB-0981-48A2-8A06-35F085C13980} = {13F2A1B9-496A-446E-8B06-776ACAE5CEA4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E505E312-14B9-49C0-AC18-B3B2FB6C1661}
EndGlobalSection
EndGlobal
================================================
FILE: LICENSE.txt
================================================
Microsoft Public License (Ms-PL)
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
================================================
FILE: LOCALIZATION.md
================================================
# Localization
ScreenToGif's base language is [English](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.en.xaml).<br/>
The typical workflow for translation work comprises three key stages: translating, testing, and submission. To contribute to the translation of ScreenToGif, it is advisable to first review the guidelines provided in the wiki:
- [Translating the App](https://github.com/NickeManarin/ScreenToGif/wiki/Localization)
- [Translating the Installer](https://github.com/NickeManarin/ScreenToGif/wiki/Localization-%28Installer%29)
- [Translating the Website](https://github.com/NickeManarin/ScreenToGif/wiki/Localization-%28Website%29)
As this project always are moving forward, new strings get added from time to time which means they need to be added to the language files and be translated. Anyone can still contribute to the languages.
---
## Language Status
| Language | Maintainer | Status |
| -------- | ---------- | ----------- |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.ar.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.cs.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.da.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.de.xaml) | [panther2](https://github.com/panther2) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.en.xaml) | [NickeManarin](https://github.com/NickeManarin) | Base language |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.es-AR.xaml) | [NickeManarin](https://github.com/NickeManarin) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.es.xaml) | [NickeManarin](https://github.com/NickeManarin) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.fr.xaml) | [Tr4ncer](https://github.com/Tr4ncer) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.it.xaml) | [mlocati](https://github.com/mlocati) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.ja.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.ko.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.nl.xaml) | [Stephan-P](https://github.com/Stephan-P) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.pl.xaml) | [spietras](https://github.com/spietras) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.pt-PT.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.pt.xaml) | [NickeManarin](https://github.com/NickeManarin) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.ru.xaml) | [om2804](https://github.com/om2804) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.sv.xaml) | [anixsson](https://github.com/anixsson) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.tr.xaml) | [mollamehmetoglu](https://github.com/mollamehmetoglu) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.uk.xaml) | [NickeManarin](https://github.com/NickeManarin) | Need help |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.zh--Hant.xaml) | [spietras](https://github.com/spietras) | Updated |
| [](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Resources/Localization/StringResources.zh.xaml) | [spietras](https://github.com/spietras) | Updated |
================================================
FILE: Other/Translator/App.xaml
================================================
<Application x:Class="Translator.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="TranslatorWindow.xaml" Startup="App_Startup"
DispatcherUnhandledException="App_OnDispatcherUnhandledException">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Themes/IconSet.xaml"/>
<ResourceDictionary Source="/Themes/Colors.xaml"/>
<ResourceDictionary Source="/Themes/Buttons.xaml"/>
<ResourceDictionary Source="/Themes/DataGridStyle.xaml"/>
<ResourceDictionary Source="/Themes/ComboBox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Converter-->
<BooleanToVisibilityConverter x:Key="Bool2VisibilityConverter" />
<Style x:Key="FocusVisualStyle">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="1" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFABAdB3"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="MinHeight" Value="23"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" SnapsToDevicePixels="True" Padding="{TemplateBinding Padding}">
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" TargetName="border" Value="0.56"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsInactiveSelectionHighlightEnabled" Value="true"/>
<Condition Property="IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
<!--TextBox for DataGridCells Style-->
<Style TargetType="{x:Type TextBox}" x:Key="TextBoxCell">
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="BorderBrush" Value="#606060" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Foreground" Value="{Binding Foreground, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Control}, AncestorLevel=2}}" />
<Setter Property="MinWidth" Value="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Border}, AncestorLevel=1}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridCell}, AncestorLevel=1}}" Value="True" />
<Condition Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridCell}, AncestorLevel=1}}" Value="False" />
<Condition Binding="{Binding IsKeyboardFocused, RelativeSource={RelativeSource Mode=Self}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background" Value="White" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridCell}, AncestorLevel=1}}" Value="True" />
<Condition Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridCell}, AncestorLevel=1}}" Value="False" />
<Condition Binding="{Binding IsKeyboardFocused, RelativeSource={RelativeSource Mode=Self}}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelected" Value="True" />
<Condition Property="IsReadOnly" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="#E0E0E0" />
</MultiTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" TargetName="border" Value="0.7" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--CheckBox Style-->
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFABABAB"/>
<Setter Property="Foreground" Value="#FF444444"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<!--Default Values-->
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Grid x:Name="templateRoot" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border x:Name="checkBoxBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" CornerRadius="2">
<Grid x:Name="markGrid">
<!--<Path x:Name="optionMark" Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z " Fill="#FF858585" Margin="1" Opacity="0" Stretch="None"/>-->
<!--<Path x:Name="optionMark" Data="F1 M 0,58 L 2,56 L 6,60 L 13,51 L 15,53 L 6,64 Z" Fill="#FF858585" Margin="1" Opacity="0" Stretch="None"/>-->
<Path x:Name="optionMark" Data="F1 M 9.97498,.8 L 4.6983,9.09834 L 1,5.19331 L 1.27664,3.52165 L 4.255,6.08833 L 9.33331,1.288e-005 Z" Fill="#FF858585" Margin="1" Opacity="0" Stretch="None"/>
<Rectangle x:Name="indeterminateMark" Fill="#FF858585" Margin="2" Opacity="0"/>
</Grid>
</Border>
<ContentPresenter x:Name="contentPresenter" Grid.Column="1" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasContent" Value="true">
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="14,0,0,0" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Padding" Value="4,-1,0,0"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="checkBoxBorder" Value="#FFD5E1F2"/>
<Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FFA3BDE3"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>
<Setter Property="Fill" TargetName="indeterminateMark" Value="#FF212121"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="checkBoxBorder" Value="#FFE6E6E6"/>
<Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FFBCBCBC"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF707070"/>
<Setter Property="Fill" TargetName="indeterminateMark" Value="#FF707070"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="checkBoxBorder" Value="#FFA3BDE3"/>
<Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FFA3BDE3"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>
<Setter Property="Fill" TargetName="indeterminateMark" Value="#FF212121"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Opacity" TargetName="optionMark" Value="1"/>
<Setter Property="Opacity" TargetName="indeterminateMark" Value="0"/>
</Trigger>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Opacity" TargetName="optionMark" Value="0"/>
<Setter Property="Opacity" TargetName="indeterminateMark" Value="1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--RadioButton Style-->
<Style TargetType="{x:Type RadioButton}">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisualStyle}"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFACACAC"/>
<Setter Property="Foreground" Value="#FF444444"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="2,0,0,0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border x:Name="radioButtonBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" CornerRadius="100" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="1,1,2,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<Grid x:Name="markGrid" Margin="2">
<Ellipse x:Name="optionMark" Fill="#FF777777" MinWidth="6" MinHeight="6" Opacity="0"/>
</Grid>
</Border>
<ContentPresenter x:Name="contentPresenter" Grid.Column="1" Focusable="False"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="radioButtonBorder" Value="#FFD5E1F2"/>
<Setter Property="BorderBrush" TargetName="radioButtonBorder" Value="#FFA7C0E4"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF444444"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="radioButtonBorder" Value="#FFA7C0E4"/>
<Setter Property="BorderBrush" TargetName="radioButtonBorder" Value="#FFA7C0E4"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF444444"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Opacity" TargetName="optionMark" Value="1"/>
</Trigger>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Opacity" TargetName="optionMark" Value="0.56"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="radioButtonBorder" Value="#FFE6E6E6"/>
<Setter Property="BorderBrush" TargetName="radioButtonBorder" Value="#FFBCBCBC"/>
<Setter Property="Fill" TargetName="optionMark" Value="#FF707070"/>
<Setter Property="Foreground" Value="#FFB1B1B1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Tooltip Style-->
<Style TargetType="{x:Type ToolTip}">
<Setter Property="Foreground" Value="#FF5D5D5D"/>
<Setter Property="MinWidth" Value="20"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid>
<Rectangle StrokeThickness="2" Margin="15,0,0,0" HorizontalAlignment="Left">
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#00BEBEBE" Offset="0"/>
<GradientStop Color="#00BEBEBE" Offset="1"/>
<GradientStop Color="#FFB1B1B1" Offset="0.2"/>
<GradientStop Color="#FFB1B1B1" Offset="0.8"/>
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<Rectangle StrokeThickness="2" Margin="0,0,15,0" HorizontalAlignment="Right" >
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#00BEBEBE" Offset="0"/>
<GradientStop Color="#00BEBEBE" Offset="1"/>
<GradientStop Color="#FFB1B1B1" Offset="0.2"/>
<GradientStop Color="#FFB1B1B1" Offset="0.8"/>
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<Border BorderBrush="#FFBEBEBE" BorderThickness="1" Effect="{DynamicResource Shadow.Border.Large}" Margin="5" Background="White" Padding="5">
<!--<TextBlock Text="{TemplateBinding Content}" Foreground="#FF5D5D5D" Padding="5" TextWrapping="WrapWithOverflow"
Width="Auto" HorizontalAlignment="Center" MinWidth="40" TextAlignment="Center" />-->
<ContentPresenter Content="{TemplateBinding Content}" Width="Auto" HorizontalAlignment="Center"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Context Menu-->
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Grid.IsSharedSizeScope" Value="true" />
<Setter Property="Placement" Value="Bottom"/>
<Setter Property="HorizontalOffset" Value="-5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Grid>
<Rectangle StrokeThickness="2" Margin="15,0,0,0" HorizontalAlignment="Left">
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#00BEBEBE" Offset="0"/>
<GradientStop Color="#00BEBEBE" Offset="1"/>
<GradientStop Color="#FFB1B1B1" Offset="0.2"/>
<GradientStop Color="#FFB1B1B1" Offset="0.8"/>
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<Rectangle StrokeThickness="2" Margin="0,0,15,0" HorizontalAlignment="Right" >
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#00BEBEBE" Offset="0"/>
<GradientStop Color="#00BEBEBE" Offset="1"/>
<GradientStop Color="#FFB1B1B1" Offset="0.2"/>
<GradientStop Color="#FFB1B1B1" Offset="0.8"/>
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<Border x:Name="Border" BorderBrush="#FFBEBEBE" BorderThickness="1" Effect="{DynamicResource Shadow.Border.Large}" Margin="5,5,5,5" Background="White">
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Separator-->
<Style TargetType="{x:Type Separator}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Rectangle Height="{TemplateBinding Height}" Fill="#FFE0E3E6"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Label Separator-->
<Style x:Key="LabelSeparator" TargetType="{x:Type Label}">
<Setter Property="Height" Value="Auto" />
<Setter Property="Padding" Value="3,1"/>
<Setter Property="Background" Value="#FFE0E3E6"/>
<Setter Property="Foreground" Value="#FF000000"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Padding="{TemplateBinding Padding}" Foreground="{TemplateBinding Foreground}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" Content="{TemplateBinding Content}"/>
<Rectangle Grid.Column="1" Height="1" Fill="{TemplateBinding Background}" VerticalAlignment="Center" Margin="5,0,0,0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--TabItem Style-->
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid Name="Panel" Background="Transparent">
<Border Name="ContentBorder" BorderBrush="#FFD4D4D4" BorderThickness="0">
<ContentPresenter x:Name="ContentSite" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" Content="{TemplateBinding Content}"
VerticalAlignment="Center" Effect="{x:Null}" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Panel" Property="Background" Value="#FFFAFAFA" />
<Setter Property="Foreground" Value="#FF2B579A" />
<Setter TargetName="ContentBorder" Property="BorderThickness" Value="1,1,1,0" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Panel">
<Setter Property="Foreground" Value="#FF2B579A" />
<Setter Property="Background" Value="#FFFAFAFA" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="FontFamily" Value="{DynamicResource FontFamilyLight}"/>
<!--<Setter Property="Background" Value="#7FFFFFFF"/>-->
</Style>
<!--ScrollBar Styles-->
<Style x:Key="ScrollBarButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Grid x:Name="Root" Margin="0">
<Border x:Name="BackgroundBorder" Background="White" BorderBrush="#FFAAAAAA" BorderThickness="1"/>
<Path x:Name="Arrow" Stretch="None" Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" Fill="#FF777777" HorizontalAlignment="Center" VerticalAlignment="Center" SnapsToDevicePixels="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="BackgroundBorder" Property="Background" Value="White"/>
<Setter TargetName="BackgroundBorder" Property="BorderBrush" Value="#FF777777"/>
<Setter TargetName="Arrow" Property="Fill" Value="#FF777777"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="BackgroundBorder" Property="Background" Value="#FFF2F2F2"/>
<Setter TargetName="BackgroundBorder" Property="BorderBrush" Value="#FF777777"/>
<Setter TargetName="Arrow" Property="Fill" Value="#FF777777"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ScrollBarThumbVertical" TargetType="{x:Type Thumb}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFAAAAAA"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Grid Background="Transparent">
<Border Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFF2F2F2"/>
<Setter Property="BorderBrush" Value="#FFAAAAAA"/>
</Trigger>
<Trigger Property="IsDragging" Value="True">
<Setter Property="Background" Value="#FFF2F2F2"/>
<Setter Property="BorderBrush" Value="#FF777777"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="false"/>
<Setter Property="Background" Value="#FFEFEFEF"/>
<Setter Property="BorderBrush" Value="#F0F0F0"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="1,0"/>
<Setter Property="Width" Value="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"/>
<Setter Property="MinWidth" Value="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid x:Name="Bg" SnapsToDevicePixels="true">
<Grid.RowDefinitions>
<RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/>
<RowDefinition Height="0.00001*"/>
<RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/>
</Grid.RowDefinitions>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Row="1"/>
<RepeatButton Grid.Row="0" x:Name="PART_LineUpButton" Command="{x:Static ScrollBar.LineUpCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}" Content="M 0,4 C0,4 0,6 0,6 0,6 3.5,2.5 3.5,2.5 3.5,2.5 7,6 7,6 7,6 7,4 7,4 7,4 3.5,0.5 3.5,0.5 3.5,0.5 0,4 0,4 z" />
<Track x:Name="PART_Track" IsDirectionReversed="true" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="1">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource RepeatButtonTransparent}"/>
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource RepeatButtonTransparent}"/>
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumbVertical}"/>
</Track.Thumb>
</Track>
<RepeatButton x:Name="PART_LineDownButton" Command="{x:Static ScrollBar.LineDownCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="2" Style="{StaticResource ScrollBarButton}" Content="M 0,2.5 C0,2.5 0,0.5 0,0.5 0,0.5 3.5,4 3.5,4 3.5,4 7,0.5 7,0.5 7,0.5 7,2.5 7,2.5 7,2.5 3.5,6 3.5,6 3.5,6 0,2.5 0,2.5 z" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bg" Value="#FFF2F2F2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto"/>
<Setter Property="MinWidth" Value="0"/>
<Setter Property="Height" Value="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarHeightKey}}"/>
<Setter Property="MinHeight" Value="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarHeightKey}}"/>
<Setter Property="BorderThickness" Value="0,1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid x:Name="Bg" SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}"/>
<ColumnDefinition Width="0.00001*"/>
<ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}"/>
</Grid.ColumnDefinitions>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="1"/>
<RepeatButton Grid.Column="0" x:Name="PART_LineLeftButton" Command="{x:Static ScrollBar.LineLeftCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}" Content="M 3.18,7 C3.18,7 5,7 5,7 5,7 1.81,3.5 1.81,3.5 1.81,3.5 5,0 5,0 5,0 3.18,0 3.18,0 3.18,0 0,3.5 0,3.5 0,3.5 3.18,7 3.18,7 z" />
<Track x:Name="PART_Track" Grid.Column="1" IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource RepeatButtonTransparent}"/>
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource RepeatButtonTransparent}"/>
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumbVertical}"/>
</Track.Thumb>
</Track>
<RepeatButton x:Name="PART_LineRightButton" Grid.Column="2" Command="{x:Static ScrollBar.LineRightCommand}" IsEnabled="{TemplateBinding IsMouseOver}" Style="{StaticResource ScrollBarButton}" Content="M 1.81,7 C1.81,7 0,7 0,7 0,7 3.18,3.5 3.18,3.5 3.18,3.5 0,0 0,0 0,0 1.81,0 1.81,0 1.81,0 5,3.5 5,3.5 5,3.5 1.81,7 1.81,7 z" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bg" Value="#FFF2F2F2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
<!--Scroll Viewer Style-->
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="Template" >
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle x:Name="Corner" Grid.Column="1" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Grid.Row="1"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
<ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ViewBoxStyle" TargetType="{x:Type Viewbox}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value=".6"/>
</Trigger>
</Style.Triggers>
</Style>
<!--Expander Style-->
<SolidColorBrush x:Key="Expander.MouseOver.Circle.Fill" Color="#FFF3F9FF"/>
<SolidColorBrush x:Key="Expander.Pressed.Circle.Fill" Color="#FFD9ECFF"/>
<SolidColorBrush x:Key="Expander.Disabled.Arrow.Stroke" Color="#FF707070"/>
<SolidColorBrush x:Key="Expander.Static.Arrow.Stroke" Color="#FF333333"/>
<Style x:Key="ExpanderHeaderFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Margin="0" SnapsToDevicePixels="true" Stroke="Black" StrokeThickness="1" StrokeDashArray="1 2"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Padding" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" >
<Grid SnapsToDevicePixels="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="19"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="{TemplateBinding Content}" Padding="{TemplateBinding Padding}" Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
<Rectangle Grid.Row="1" x:Name="HorizontalRectangle" MinHeight="1" Fill="#FFE0E3E6"
Height="Auto" HorizontalAlignment="Center" Margin="3,0,3,0"/>
<Path Grid.Row="2" x:Name="ArrowPath" Data="M 1,1 L 4.5,4.5 L 1,8" HorizontalAlignment="Center" SnapsToDevicePixels="false"
Stroke="{StaticResource Expander.Static.Arrow.Stroke}" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" TargetName="ArrowPath" Value="M 4.5,1 L 1,4.5 L 4.5,8"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Background" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Stroke" TargetName="ArrowPath" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderLeftHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Padding" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" >
<Grid SnapsToDevicePixels="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="19"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="{TemplateBinding Content}" Padding="{TemplateBinding Padding}" Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
<Rectangle Grid.Row="1" x:Name="HorizontalRectangle" MinHeight="1" Fill="#FFE0E3E6"
Height="Auto" HorizontalAlignment="Center" Margin="3,0,3,0"/>
<Path Grid.Row="2" x:Name="ArrowPath" Data="M 4.5,1 L 1,4.5 L 4.5,8" HorizontalAlignment="Center" SnapsToDevicePixels="false"
Stroke="{StaticResource Expander.Static.Arrow.Stroke}" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" TargetName="ArrowPath" Value="M 1,1 L 4.5,4.5 L 1,8"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Background" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Stroke" TargetName="ArrowPath" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderUpHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Height" Value="27"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" >
<Grid SnapsToDevicePixels="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="19"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{TemplateBinding Content}" Padding="3" Foreground="{TemplateBinding Foreground}"
VerticalContentAlignment="Center"/>
<Rectangle Grid.Column="1" x:Name="HorizontalRectangle" MinHeight="1" Fill="#FFE0E3E6"
Height="Auto" VerticalAlignment="Center" Margin="3,0,3,0"/>
<Path Grid.Column="2" x:Name="ArrowPath" Data="M 1,4.5 L 4.5,1 L 8,4.5" HorizontalAlignment="Center" SnapsToDevicePixels="false"
Stroke="{StaticResource Expander.Static.Arrow.Stroke}" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" TargetName="ArrowPath" Value="M 1,1.5 L 4.5,5 L 8,1.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Background" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Stroke" TargetName="ArrowPath" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Height" Value="27"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" >
<Grid SnapsToDevicePixels="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="19"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{TemplateBinding Content}" Padding="3" Foreground="{TemplateBinding Foreground}"
VerticalContentAlignment="Center"/>
<Rectangle Grid.Column="1" x:Name="HorizontalRectangle" MinHeight="1" Fill="#FFE0E3E6"
Height="Auto" VerticalAlignment="Center" Margin="3,0,3,0"/>
<Path Grid.Column="2" x:Name="ArrowPath" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="False"
Stroke="{StaticResource Expander.Static.Arrow.Stroke}" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" TargetName="ArrowPath" Value="M 1,4.5 L 4.5,1 L 8,4.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Stroke" TargetName="HorizontalRectangle" Value="#FFB3B5B8"/>
<Setter Property="Background" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="ArrowPath" Value="Black"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Stroke" TargetName="ArrowPath" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Expander}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Expander}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<DockPanel>
<ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}"
FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}"
FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="0"
Padding="{TemplateBinding Padding}" Style="{StaticResource ExpanderDownHeaderStyle}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
<ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</DockPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Right">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Up">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Left">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
================================================
FILE: Other/Translator/App.xaml.cs
================================================
using System;
using System.Reflection;
using System.Windows;
using System.Windows.Threading;
using Translator.Util;
namespace Translator;
public partial class App : Application
{
private void App_Startup(object sender, StartupEventArgs e)
{
//Unhandled Exceptions.
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}
private void App_OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
LogWriter.Log(e.Exception, "On Dispatcher Unhandled Exception - Unknown");
try
{
ExceptionDialog.Ok(e.Exception, "ScreenToGif - Translator", "Unhandled exception", e.Exception.Message);
}
catch (Exception ex)
{
LogWriter.Log(ex, "Error while displaying the error.");
//Ignored.
}
e.Handled = true;
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
if (e.ExceptionObject is not Exception exception)
return;
LogWriter.Log(exception, "Current Domain Unhandled Exception - Unknown");
try
{
ExceptionDialog.Ok(exception, "ScreenToGif - Translator", "Unhandled exception", exception.Message);
}
catch (Exception)
{
//Ignored.
}
}
public static string Version => ToStringShort(Assembly.GetEntryAssembly()?.GetName().Version) ?? "0.0";
internal static string ToStringShort(Version version)
{
if (version == null)
return null;
var result = $"{version.Major}.{version.Minor}";
if (version.Build > 0)
result += $".{version.Build}";
if (version.Revision > 0)
result += $".{version.Revision}";
return result;
}
}
================================================
FILE: Other/Translator/Controls/ExtendedTextBox.cs
================================================
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace Translator.Controls;
public class ExtendedTextBox : TextBox
{
static ExtendedTextBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ExtendedTextBox), new FrameworkPropertyMetadata(typeof(ExtendedTextBox)));
}
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (!IsKeyboardFocusWithin)
{
e.Handled = true;
Focus();
}
}
protected override void OnGotFocus(RoutedEventArgs e)
{
base.OnGotFocus(e);
SelectAll();
}
}
================================================
FILE: Other/Translator/Controls/ImageButton.cs
================================================
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace Translator.Controls;
/// <summary>
/// Button with a image inside.
/// </summary>
public class ImageButton : Button
{
#region Variables
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(ImageButton), new FrameworkPropertyMetadata("Button"));
public static readonly DependencyProperty MaxSizeProperty = DependencyProperty.Register("MaxSize", typeof(double), typeof(ImageButton), new FrameworkPropertyMetadata(26.0));
public static readonly DependencyProperty KeyGestureProperty = DependencyProperty.Register("KeyGesture", typeof(string), typeof(ImageButton), new FrameworkPropertyMetadata(""));
/// <summary>
/// DependencyProperty for <see cref="TextWrapping" /> property.
/// </summary>
public static readonly DependencyProperty TextWrappingProperty = DependencyProperty.Register("TextWrapping", typeof(TextWrapping), typeof(ImageButton),
new FrameworkPropertyMetadata(TextWrapping.NoWrap, FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender));
#endregion
#region Properties
/// <summary>
/// The text of the button.
/// </summary>
[Description("The text of the button."), Category("Common")]
public string Text
{
get => (string)GetValue(TextProperty);
set => SetCurrentValue(TextProperty, value);
}
/// <summary>
/// The maximum size of the image.
/// </summary>
[Description("The maximum size of the image."), Category("Common")]
public double MaxSize
{
get => (double)GetValue(MaxSizeProperty);
set => SetCurrentValue(MaxSizeProperty, value);
}
/// <summary>
/// The KeyGesture of the button.
/// </summary>
[Description("The KeyGesture of the button."), Category("Common")]
public string KeyGesture
{
get => (string)GetValue(KeyGestureProperty);
set => SetCurrentValue(KeyGestureProperty, value);
}
/// <summary>
/// The TextWrapping property controls whether or not text wraps
/// when it reaches the flow edge of its containing block box.
/// </summary>
public TextWrapping TextWrapping
{
get => (TextWrapping)GetValue(TextWrappingProperty);
set => SetValue(TextWrappingProperty, value);
}
#endregion
static ImageButton()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageButton), new FrameworkPropertyMetadata(typeof(ImageButton)));
}
}
================================================
FILE: Other/Translator/Controls/ImageMenuItem.cs
================================================
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace Translator.Controls;
/// <summary>
/// MenuItem with an image to the left.
/// </summary>
public class ImageMenuItem : MenuItem
{
#region Variables
public static readonly DependencyProperty ImageProperty = DependencyProperty.Register("Image", typeof(UIElement), typeof(ImageMenuItem), new FrameworkPropertyMetadata());
public static readonly DependencyProperty MaxSizeProperty = DependencyProperty.Register("MaxSize", typeof(double), typeof(ImageMenuItem), new FrameworkPropertyMetadata(15.0));
public static readonly DependencyProperty HasImageProperty = DependencyProperty.Register("HasImage", typeof(bool), typeof(ImageMenuItem), new FrameworkPropertyMetadata(false));
#endregion
#region Properties
/// <summary>
/// The Image of the button.
/// </summary>
[Description("The Image of the button.")]
public UIElement Image
{
get { return (UIElement)GetValue(ImageProperty); }
set
{
SetCurrentValue(ImageProperty, value);
//Has Image.
SetCurrentValue(HasImageProperty, value != null);
}
}
/// <summary>
/// The maximum size of the image.
/// </summary>
[Description("The maximum size of the image.")]
public double MaxSize
{
get { return (double)GetValue(MaxSizeProperty); }
set { SetCurrentValue(MaxSizeProperty, value); }
}
/// <summary>
/// The maximum size of the image.
/// </summary>
[Description("The maximum size of the image.")]
public bool HasImage
{
get { return (bool)GetValue(HasImageProperty); }
set { SetCurrentValue(HasImageProperty, value); }
}
#endregion
static ImageMenuItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageMenuItem), new FrameworkPropertyMetadata(typeof(ImageMenuItem)));
}
}
================================================
FILE: Other/Translator/Controls/StatusBand.cs
================================================
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Animation;
namespace Translator.Controls;
public class StatusBand : Control
{
#region Variables
public enum StatusTypes
{
Info,
Warning,
Error
}
private Grid _warningGrid;
private Button _supressButton;
#endregion
#region Dependency Properties
public static readonly DependencyProperty TypeProperty = DependencyProperty.Register("Type", typeof(StatusTypes), typeof(StatusBand),
new FrameworkPropertyMetadata(StatusTypes.Warning, OnTypePropertyChanged));
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(StatusBand),
new FrameworkPropertyMetadata("", OnTextPropertyChanged));
public static readonly DependencyProperty ImageProperty = DependencyProperty.Register("Image", typeof(UIElement), typeof(StatusBand),
new FrameworkPropertyMetadata(null, OnImagePropertyChanged));
public static readonly DependencyProperty StartingProperty = DependencyProperty.Register("Starting", typeof(bool), typeof(StatusBand),
new PropertyMetadata(default(bool)));
#endregion
#region Properties
[Bindable(true), Category("Common")]
public StatusTypes Type
{
get => (StatusTypes)GetValue(TypeProperty);
set => SetValue(TypeProperty, value);
}
[Bindable(true), Category("Common")]
public string Text
{
get => (string)GetValue(TextProperty);
set => SetValue(TextProperty, value);
}
[Bindable(true), Category("Common")]
public UIElement Image
{
get => (UIElement)GetValue(ImageProperty);
set => SetValue(ImageProperty, value);
}
/// <summary>
/// True if started to display the message.
/// </summary>
[Bindable(true), Category("Common")]
public bool Starting
{
get => (bool)GetValue(StartingProperty);
set => SetValue(StartingProperty, value);
}
#endregion
#region Property Changed
private static void OnTypePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is not StatusBand band)
return;
band.Type = (StatusTypes)e.NewValue;
band.Image = (Canvas)band.FindResource(band.Type == StatusTypes.Info ? "Vector.Info" : band.Type == StatusTypes.Warning ? "Vector.Warning" : "Vector.Error");
}
private static void OnTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is not StatusBand band)
return;
band.Text = (string)e.NewValue;
}
private static void OnImagePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is not StatusBand band)
return;
band.Image = (UIElement)e.NewValue;
}
#endregion
static StatusBand()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(StatusBand), new FrameworkPropertyMetadata(typeof(StatusBand)));
}
public override void OnApplyTemplate()
{
_warningGrid = GetTemplateChild("WarningGrid") as Grid;
_supressButton = GetTemplateChild("SuppressButton") as ImageButton;
if (_supressButton != null)
{
_supressButton.Click += SupressButton_Click;
}
base.OnApplyTemplate();
}
#region Methods
public void Show(StatusTypes type, string text, UIElement image = null)
{
//Collapsed-by-default elements do not apply templates.
//http://stackoverflow.com/a/2115873/1735672
//So it's necessary to do this here.
ApplyTemplate();
Starting = true;
Type = type;
Text = text;
Image = image;
if (_warningGrid?.FindResource("ShowWarningStoryboard") is Storyboard show)
BeginStoryboard(show);
}
public void Info(string text, UIElement image = null)
{
Show(StatusTypes.Info, text, image ?? (Canvas)FindResource("Vector.Info"));
}
public void Warning(string text, UIElement image = null)
{
Show(StatusTypes.Warning, text, image ?? (Canvas)FindResource("Vector.Warning"));
}
public void Error(string text, UIElement image = null)
{
Show(StatusTypes.Error, text, image ?? (Canvas)FindResource("Vector.Error"));
}
public void Hide()
{
Starting = false;
if (_warningGrid?.Visibility == Visibility.Collapsed)
return;
if (_warningGrid?.FindResource("HideWarningStoryboard") is Storyboard show)
BeginStoryboard(show);
}
#endregion
private void SupressButton_Click(object sender, RoutedEventArgs e)
{
Hide();
}
}
================================================
FILE: Other/Translator/Converters/MultiLineTitle.cs
================================================
using System;
using System.Globalization;
using System.Windows.Data;
namespace Translator.Converters;
public class MultiLineTitle : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var text = value as string;
return string.IsNullOrEmpty(text) ? value : text.Replace(@"\n", Environment.NewLine);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
================================================
FILE: Other/Translator/Converters/NullToInvertedBool.cs
================================================
using System;
using System.Globalization;
using System.Windows.Data;
namespace Translator.Converters;
public class NullToInvertedBool : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}
================================================
FILE: Other/Translator/Dialog.xaml
================================================
<Window x:Class="Translator.Dialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:n="clr-namespace:Translator.Controls"
Title="Dialog" Height="230" Width="500" MinHeight="230" MinWidth="400" SizeToContent="Height" Topmost="True" WindowStartupLocation="CenterScreen" Icon="Logo.ico">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="48"/>
<RowDefinition Height="*" MinHeight="100"/>
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="#FFF9F9FF">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Viewbox x:Name="IconViewbox" Margin="5" Child="{StaticResource Vector.Error}"/>
<Label x:Name="InstructionLabel" Content="Instruction" Margin="5" Grid.Column="1" VerticalContentAlignment="Center"
FontFamily="{DynamicResource FontFamilyLight}" FontSize="18" Foreground="#FF003399"/>
</Grid>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<TextBlock x:Name="ObservationTextBlock" Margin="25,5,10,5" Text="Example text." FontSize="14" TextWrapping="WrapWithOverflow"/>
</ScrollViewer>
<StackPanel Grid.Row="2" Background="WhiteSmoke" Height="40" Orientation="Horizontal" FlowDirection="RightToLeft">
<n:ImageButton x:Name="CancelButton" Text="Cancel" Content="{StaticResource Vector.Cancel}" MaxSize="20" MinWidth="90" FlowDirection="LeftToRight" Margin="5" Click="FalseActionButton_Click"/>
<n:ImageButton x:Name="OkButton" Text="Ok" Content="{StaticResource Vector.Ok}" MaxSize="20" MinWidth="90" FlowDirection="LeftToRight" Margin="5" Click="TrueActionButton_Click"/>
<n:ImageButton x:Name="NoButton" Text="No" Content="{StaticResource Vector.No}" MaxSize="20" MinWidth="90" FlowDirection="LeftToRight" Margin="5" Click="FalseActionButton_Click"/>
<n:ImageButton x:Name="YesButton" Text="Yes" Content="{StaticResource Vector.Ok}" MaxSize="20" MinWidth="90" FlowDirection="LeftToRight" Margin="5" Click="TrueActionButton_Click"/>
</StackPanel>
</Grid>
</Window>
================================================
FILE: Other/Translator/Dialog.xaml.cs
================================================
using System;
using System.Windows;
using System.Windows.Controls;
namespace Translator;
/// <summary>
/// Interaction logic for Dialog.xaml
/// </summary>
public partial class Dialog : Window
{
/// <summary>
/// Default constructor.
/// </summary>
public Dialog()
{
InitializeComponent();
}
#region Methods
private Canvas GetIcon(Icons icon)
{
switch (icon)
{
case Icons.Error:
return (Canvas)FindResource("Vector.Error");
case Icons.Info:
return (Canvas)FindResource("Vector.Info");
case Icons.Success:
return (Canvas)FindResource("Vector.Success");
case Icons.Warning:
return (Canvas)FindResource("Vector.Warning");
case Icons.Question:
return (Canvas)FindResource("Vector.Question");
default:
return (Canvas)FindResource("Vector.Info");
}
}
private void PrepareOk(string title, string instruction, string observation, Icons icon)
{
CancelButton.Visibility = Visibility.Collapsed;
YesButton.Visibility = Visibility.Collapsed;
NoButton.Visibility = Visibility.Collapsed;
OkButton.Focus();
IconViewbox.Child = GetIcon(icon);
InstructionLabel.Content = instruction;
ObservationTextBlock.Text = observation;
Title = title;
}
private void PrepareOkCancel(string title, string instruction, string observation, Icons icon)
{
YesButton.Visibility = Visibility.Collapsed;
NoButton.Visibility = Visibility.Collapsed;
CancelButton.Focus();
IconViewbox.Child = GetIcon(icon);
InstructionLabel.Content = instruction;
ObservationTextBlock.Text = observation;
Title = title;
}
private void PrepareAsk(string title, string instruction, string observation, Icons icon)
{
CancelButton.Visibility = Visibility.Collapsed;
OkButton.Visibility = Visibility.Collapsed;
NoButton.Focus();
IconViewbox.Child = GetIcon(icon);
InstructionLabel.Content = instruction;
ObservationTextBlock.Text = observation;
Title = title;
}
/// <summary>
/// Shows a Ok dialog.
/// </summary>
/// <param name="title">The title of the window.</param>
/// <param name="instruction">The main instruction.</param>
/// <param name="observation">A complementar observation.</param>
/// <param name="icon">The image of the dialog.</param>
/// <returns>True if Ok</returns>
public static bool Ok(string title, string instruction, string observation, Icons icon = Icons.Error)
{
var dialog = new Dialog();
dialog.PrepareOk(title, instruction, observation.Replace(@"\n", Environment.NewLine).Replace(@"\r", ""), icon);
var result = dialog.ShowDialog();
return result.HasValue && result.Value;
}
/// <summary>
/// Shows a Ok/Cancel dialog.
/// </summary>
/// <param name="title">The title of the window.</param>
/// <param name="instruction">The main instruction.</param>
/// <param name="observation">A complementar observation.</param>
/// <param name="icon">The image of the dialog.</param>
/// <returns>True if Ok</returns>
public static bool OkCancel(string title, string instruction, string observation, Icons icon = Icons.Error)
{
var dialog = new Dialog();
dialog.PrepareOkCancel(title, instruction, observation.Replace(@"\n", Environment.NewLine).Replace(@"\r", ""), icon);
var result = dialog.ShowDialog();
return result.HasValue && result.Value;
}
/// <summary>
/// Shows a Yes/No dialog.
/// </summary>
/// <param name="title">The title of the window.</param>
/// <param name="instruction">The main instruction.</param>
/// <param name="observation">A complementar observation.</param>
/// <param name="icon">The image of the dialog.</param>
/// <returns>True if Yes</returns>
public static bool Ask(string title, string instruction, string observation, Icons icon = Icons.Question)
{
var dialog = new Dialog();
dialog.PrepareAsk(title, instruction, observation.Replace(@"\n", Environment.NewLine).Replace(@"\r", ""), icon);
var result = dialog.ShowDialog();
return result.HasValue && result.Value;
}
#endregion
#region Events
private void FalseActionButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = false;
}
private void TrueActionButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
#endregion
/// <summary>
/// Dialog Icons.
/// </summary>
public enum Icons
{
/// <summary>
/// Information. Blue.
/// </summary>
Info,
/// <summary>
/// Warning, yellow.
/// </summary>
Warning,
/// <summary>
/// Error, red.
/// </summary>
Error,
/// <summary>
/// Success, green.
/// </summary>
Success,
/// <summary>
/// A question mark, blue.
/// </summary>
Question,
}
}
================================================
FILE: Other/Translator/ExceptionDialog.xaml
================================================
<Window x:Class="Translator.ExceptionDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:Translator.Controls"
Title="ScreenToGif - Error" WindowStartupLocation="CenterScreen" Topmost="True" SnapsToDevicePixels="True"
Height="300" Width="560" MinHeight="250" MinWidth="560" SizeToContent="Height"
Background="{DynamicResource Panel.Background}" Loaded="Window_Loaded">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="*"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="{DynamicResource Panel.Background.Level4}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" MinWidth="110"/>
</Grid.ColumnDefinitions>
<Viewbox x:Name="IconViewbox" Margin="6" Child="{StaticResource Vector.Error.Round}"/>
<TextBlock Grid.Column="1" x:Name="TypeTextBlock" Text="" Margin="5" VerticalAlignment="Center"
FontFamily="{DynamicResource FontFamilyLight}" FontSize="18" Foreground="#FF003399" Padding="0"
ToolTipService.Placement="Top" ToolTipService.HorizontalOffset="-5"/>
<c:ImageButton Grid.Column="2" x:Name="DetailsButton" Text="Show details" Content="{StaticResource Vector.Table}" MaxSize="20"
Margin="3" Padding="2" Style="{StaticResource Style.Button.Horizontal}" TextWrapping="NoWrap"
Click="DetailsButton_Click" FontSize="14" FontFamily="{DynamicResource FontFamilyLight}"/>
</Grid>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" x:Name="HeaderTextBlock" Text="Oh no, the app crashed :(" Foreground="#E0000060" FontSize="22" Margin="10" HorizontalAlignment="Center"/>
<TextBlock Grid.Row="1" x:Name="DetailsTextBlock" FontSize="16" Margin="6,6,6,15" TextWrapping="Wrap" Foreground="#E0000000" ScrollViewer.CanContentScroll="True"/>
</Grid>
<Grid Grid.Row="2" Background="{DynamicResource Panel.Background.Level3}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<c:ImageButton Grid.Column="1" x:Name="OkButton" Text="Ok" Content="{StaticResource Vector.Ok}" MaxSize="18"
Margin="5" Padding="5,0" MinWidth="90" IsDefault="True" Click="OkButton_Click"/>
</Grid>
</Grid>
</Window>
================================================
FILE: Other/Translator/ExceptionDialog.xaml.cs
================================================
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Documents;
using Translator.Util;
namespace Translator;
public partial class ExceptionDialog : Window
{
#region Properties
public bool BugWithHotFix4055002 { get; set; }
public Exception Exception { get; set; }
#endregion
public ExceptionDialog(Exception exception)
{
InitializeComponent();
Exception = exception;
}
#region Eventos
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (Exception == null)
DetailsButton.IsEnabled = false;
}
private void DetailsButton_Click(object sender, RoutedEventArgs e)
{
var errorViewer = new ExceptionViewer(Exception);
errorViewer.ShowDialog();
}
private void OkButton_Click(object sender, RoutedEventArgs e)
{
Close();
}
#endregion
#region Métodos
private void PrepareOk(string title, string instruction, string observation)
{
TypeTextBlock.Text = instruction;
DetailsTextBlock.Inlines.Add(new Run("\t" + observation));
Title = title ?? "ScreenToGif - Error";
if (BugWithHotFix4055002)
{
DetailsTextBlock.Inlines.Add(new LineBreak());
DetailsTextBlock.Inlines.Add(new LineBreak());
DetailsTextBlock.Inlines.Add(new Run("\tThis was likely caused by a bug with an update for .Net Framework 4.7.1 (KB4055002, released in January 2018). This bug happens on machines with Windows 7 SP1 or Windows Server 2008 R2."));
DetailsTextBlock.Inlines.Add(new LineBreak());
DetailsTextBlock.Inlines.Add(new LineBreak());
DetailsTextBlock.Inlines.Add(new Run("\t"));
var hyper = new Hyperlink(new Run("Click here to open a page with some details on how to fix this issue.") {ToolTip = "https://github.com/dotnet/announcements/issues/53" });
hyper.Click += HyperOnClick;
DetailsTextBlock.Inlines.Add(hyper);
}
OkButton.Focus();
}
private void HyperOnClick(object sender, RoutedEventArgs routedEventArgs)
{
try
{
Process.Start("https://github.com/dotnet/announcements/issues/53");
}
catch (Exception e)
{
LogWriter.Log(e, "Impossible to open link");
}
}
#endregion
#region Static Methods
public static bool Ok(Exception exception, string title, string instruction, string observation = "", bool bugWith4055002 = false)
{
var dialog = new ExceptionDialog(exception) { BugWithHotFix4055002 = bugWith4055002 };
dialog.PrepareOk(title, instruction, observation);
var result = dialog.ShowDialog();
return result.HasValue && result.Value;
}
#endregion
}
================================================
FILE: Other/Translator/ExceptionViewer.xaml
================================================
<Window x:Class="Translator.ExceptionViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:n="clr-namespace:Translator.Controls"
Title="Exception Viewer" WindowStartupLocation="CenterScreen"
UseLayoutRounding="True" Topmost="True" SnapsToDevicePixels="True"
MinWidth="640" MinHeight="490" Width="640" Height="490" Background="{DynamicResource Panel.Background}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="{DynamicResource Panel.Background.Level4}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Viewbox Grid.Column="0" Margin="4" Child="{StaticResource Vector.Error}"/>
<Label Grid.Column="1" x:Name="TypeLabel" Content="Exception Type" Margin="5" VerticalContentAlignment="Center"
FontFamily="{DynamicResource FontFamilyLight}" FontSize="16" Foreground="{DynamicResource Element.Foreground.Header}">
<Label.ToolTip>
<ToolTip Content="Exception Type" Placement="Top" HorizontalOffset="-5"/>
</Label.ToolTip>
</Label>
<n:ImageButton Grid.Column="2" x:Name="InnerButton" Text="Open Inner Exception" Content="{StaticResource Vector.Synchronize}" MaxSize="20"
Margin="3" Padding="2" Style="{StaticResource Style.Button.Horizontal}" IsEnabled="False" FontSize="12" FontFamily="{DynamicResource FontFamilyLight}"
Click="InnerButton_Click"/>
</Grid>
<TextBox x:Name="MessageTextBox" Margin="3" Grid.Row="1" TextWrapping="Wrap" MinHeight="50" FontSize="14" ScrollViewer.CanContentScroll="True"
VerticalScrollBarVisibility="Auto" FontFamily="{DynamicResource FontFamilyBold}" IsReadOnly="True" MaxHeight="150">
<TextBox.ToolTip>
<ToolTip Content="Message" Placement="Left" HorizontalOffset="-5" VerticalOffset="-5"/>
</TextBox.ToolTip>
</TextBox>
<TextBox x:Name="StackTextBox" Margin="3" Grid.Row="2" TextWrapping="Wrap" MinHeight="23" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" IsReadOnly="True">
<TextBox.ToolTip>
<ToolTip Content="Stack" Placement="Left" HorizontalOffset="-5" VerticalOffset="-5"/>
</TextBox.ToolTip>
</TextBox>
<TextBox x:Name="SourceTextBox" Margin="3" Grid.Row="3" TextWrapping="Wrap" MinHeight="23" FontSize="12" FontFamily="{DynamicResource FontFamilyBold}" IsReadOnly="True">
<TextBox.ToolTip>
<ToolTip Content="Source" Placement="Left" HorizontalOffset="-5" VerticalOffset="-5"/>
</TextBox.ToolTip>
</TextBox>
<Grid Grid.Row="4" Background="{DynamicResource Panel.Background.Level3}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<n:ImageButton Grid.Column="1" x:Name="OkButton" Text="Ok" Content="{StaticResource Vector.Ok}" MaxSize="20" Padding="4,0" Margin="5" MinWidth="90" IsDefault="True" Click="DoneButton_Click"/>
</Grid>
</Grid>
</Window>
================================================
FILE: Other/Translator/ExceptionViewer.xaml.cs
================================================
using System;
using System.Windows;
namespace Translator;
public partial class ExceptionViewer
{
#region Variables
private readonly Exception _exception;
#endregion
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="ex">The Exception to show.</param>
public ExceptionViewer(Exception ex)
{
InitializeComponent();
_exception = ex;
#region Shows Information
TypeLabel.Content = ex.GetType().Name;
MessageTextBox.Text = ex.Message;
StackTextBox.Text = ex.StackTrace;
SourceTextBox.Text = ex.Source;
if (ex.TargetSite != null)
SourceTextBox.Text += "." + ex.TargetSite.Name;
//If there's additional details.
if (!string.IsNullOrEmpty(ex.HelpLink))
StackTextBox.Text += Environment.NewLine + Environment.NewLine + ex.HelpLink;
if (ex.InnerException != null)
InnerButton.IsEnabled = true;
#endregion
}
private void InnerButton_Click(object sender, RoutedEventArgs e)
{
var errorViewer = new ExceptionViewer(_exception.InnerException);
errorViewer.ShowDialog();
GC.Collect(1);
}
private void DoneButton_Click(object sender, RoutedEventArgs e)
{
Close();
}
}
================================================
FILE: Other/Translator/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
// 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("ScreenToGif Translator")]
[assembly: AssemblyDescription("The translator tool for ScreenToGif")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Nicke Manarin")]
[assembly: AssemblyProduct("ScreenToGif Translator")]
[assembly: AssemblyCopyright("Copyright © Nicke Manarin 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.0.0")]
[assembly: AssemblyFileVersion("1.3.0.0")]
================================================
FILE: Other/Translator/Themes/Buttons.xaml
================================================
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:n="clr-namespace:Translator.Controls">
<!--<c:MultiLineTitle x:Key="MultiLineTitleConverter"/>-->
<!--Image Button Style -->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.Vertical.Border">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" MinHeight="{TemplateBinding MinHeight}"
Background="{TemplateBinding Background}">
<StackPanel Orientation="Vertical" SnapsToDevicePixels="True" HorizontalAlignment="Center" VerticalAlignment="Center">
<Viewbox x:Name="ViewBoxInternal" VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="2,0,2,0" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
<TextBlock x:Name="TextBlockInternal" MaxWidth="{Binding Path=ActualWidth, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Text="{TemplateBinding Text}"
TextWrapping="{TemplateBinding TextWrapping}" Effect="{TemplateBinding Effect}" Padding="2"/>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFABABAB"/>
<Setter Property="TextWrapping" Value="WrapWithOverflow"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2" />
<Setter Property="BorderBrush" Value="#FFA3BDE3" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3" />
<Setter Property="BorderBrush" Value="#FF2A8DD4" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Foreground" Value="#FFB1B1B1" />-->
<Setter Property="Background" Value="#FFFDFDFD" />
<!--<Setter Property="BorderBrush" Value="#FFE1E1E1" />-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--Special Image Button Style -->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.Horizontal.Special">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" MinHeight="{TemplateBinding MinHeight}"
Background="{TemplateBinding Background}">
<StackPanel Orientation="Horizontal" SnapsToDevicePixels="True" HorizontalAlignment="Center" VerticalAlignment="Center">
<Viewbox x:Name="ViewBoxInternal" VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="2,0,2,0" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
<TextBlock x:Name="TextBlockInternal" MaxWidth="{Binding Path=ActualWidth, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Text="{TemplateBinding Text}"
TextWrapping="{TemplateBinding TextWrapping}" Effect="{TemplateBinding Effect}" Padding="2"/>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="#FFFFF8EB"/>
<Setter Property="BorderBrush" Value="#FFFBDBA6"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFF9E7C3" />
<Setter Property="BorderBrush" Value="#FFEEB860" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFEEB860" />
<Setter Property="BorderBrush" Value="#FFFFB437" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Foreground" Value="#FFB1B1B1" />-->
<Setter Property="Background" Value="#FFFDFDFD" />
<!--<Setter Property="BorderBrush" Value="#FFE1E1E1" />-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--Horizontal Button Style-->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.Horizontal">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<StackPanel Orientation="Horizontal" MinHeight="{TemplateBinding MinHeight}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
<Viewbox x:Name="ViewBoxInternal" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="{TemplateBinding IsEnabled}"
Margin="2" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
<Grid Margin="{TemplateBinding Padding}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" x:Name="TextBlockInternal" MaxWidth="{Binding Path=ActualWidth, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="2,0,2,0" Foreground="{TemplateBinding Foreground}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Text="{TemplateBinding Text}"
TextWrapping="{TemplateBinding TextWrapping}" Effect="{TemplateBinding Effect}"/>
<TextBlock Grid.Row="1" x:Name="KeyGestureTextBlock" Text="{TemplateBinding KeyGesture}"
Foreground="#FF5D5D5D" FontSize="10" HorizontalAlignment="Right" Margin="0,-10,2,0" Padding="0" Height="13"/>
</Grid>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="KeyGesture" Value="{x:Static s:String.Empty}">
<Setter TargetName="KeyGestureTextBlock" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="TextBlockInternal" Property="Foreground" Value="Black"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TextWrapping" Value="WrapWithOverflow"/>
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" SnapsToDevicePixels="true" Stroke="DarkSlateGray" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Foreground" Value="Gray"/>-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.Horizontal.Fade">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<StackPanel Orientation="Horizontal" MinHeight="{TemplateBinding MinHeight}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
<Viewbox x:Name="ViewBoxInternal" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="{TemplateBinding IsEnabled}"
Margin="2" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
<Grid Margin="{TemplateBinding Padding}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" x:Name="TextBlockInternal" MaxWidth="{Binding Path=ActualWidth, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="2,0,2,0" Foreground="{TemplateBinding Foreground}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Text="{TemplateBinding Text}"
TextWrapping="{TemplateBinding TextWrapping}" Effect="{TemplateBinding Effect}"/>
<TextBlock Grid.Row="1" x:Name="KeyGestureTextBlock" Text="{TemplateBinding KeyGesture}"
Foreground="#FF5D5D5D" FontSize="10" HorizontalAlignment="Right" Margin="0,-10,2,0" Padding="0" Height="13"/>
</Grid>
</StackPanel>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="Opacity" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
<Setter TargetName="TextBlockInternal" Property="Foreground" Value="Black"/>
<Setter Property="Background" Value="#FFD5E1F2"/>
</DataTrigger>
<Trigger Property="KeyGesture" Value="{x:Static s:String.Empty}">
<Setter TargetName="KeyGestureTextBlock" Property="Visibility" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TextWrapping" Value="WrapWithOverflow"/>
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" SnapsToDevicePixels="true" Stroke="DarkSlateGray" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Foreground" Value="Gray"/>-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--Vertical Button Style -->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.Vertical">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Grid MinHeight="{TemplateBinding MinHeight}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Viewbox x:Name="ViewBoxInternal" Grid.Row="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" IsEnabled="{TemplateBinding IsEnabled}"
Stretch="Uniform" StretchDirection="Both" Margin="5" Effect="{x:Null}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
<TextBlock x:Name="TextBlockInternal" Grid.Row="1" Margin="2,0"
HorizontalAlignment="Stretch" VerticalAlignment="Center" Text="{TemplateBinding Text, Converter={StaticResource MultiLineTitleConverter}}"
TextWrapping="{TemplateBinding TextWrapping}" Effect="{TemplateBinding Effect}" TextAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="Transparent"/>
<Setter Property="MinWidth" Value="50"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Background" Value="Gray"/>-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--NoText + Border Button Style -->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.NoText">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Focusable" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Grid MinHeight="{TemplateBinding MinHeight}" Background="{TemplateBinding Background}" Width="Auto" SnapsToDevicePixels="True">
<Viewbox x:Name="ViewBoxInternal" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="{TemplateBinding IsEnabled}"
Margin="{TemplateBinding Padding}" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="0" SnapsToDevicePixels="True" Stroke="DarkSlateGray" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Background" Value="Gray"/>-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--NoText + Border Image Button Style -->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.NoText.Border">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" MinHeight="{TemplateBinding MinHeight}" Background="{TemplateBinding Background}">
<Viewbox x:Name="ViewBoxInternal" VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="2,0,2,0" Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
Stretch="Uniform" StretchDirection="Both" MaxHeight="{TemplateBinding MaxSize}" Effect="{x:Null}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"/>
</Viewbox>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FFABABAB"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2" />
<Setter Property="BorderBrush" Value="#FFA3BDE3" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3" />
<Setter Property="BorderBrush" Value="#FF2A8DD4" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Foreground" Value="#FFB1B1B1" />-->
<Setter Property="Background" Value="#FFFDFDFD" />
<!--<Setter Property="BorderBrush" Value="#FFE1E1E1" />-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--NoText + Fade-->
<Style TargetType="{x:Type n:ImageButton}" BasedOn="{StaticResource {x:Type Button}}" x:Key="Style.Button.NoText.Fade">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type n:ImageButton}">
<Grid MinHeight="{TemplateBinding MinHeight}" Background="{TemplateBinding Background}" Width="Auto" SnapsToDevicePixels="True">
<Viewbox x:Name="ViewBoxInternal" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="{TemplateBinding IsEnabled}"
Margin="{TemplateBinding Padding}" Stretch="Uniform" StretchDirection="Both" Effect="{x:Null}"
Width="{TemplateBinding MaxSize}" Height="{TemplateBinding MaxSize}"
MaxHeight="{TemplateBinding MaxSize}" MaxWidth="{TemplateBinding MaxSize}">
<ContentPresenter ContentSource="{TemplateBinding Content}" Width="Auto" Height="Auto"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Viewbox>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="Opacity" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--Default Values-->
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Opacity" Value=".3"/>
<Style.Triggers>
<!--<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFD5E1F2" />
</Trigger>-->
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFA3BDE3" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<!--<Setter Property="Background" Value="Gray"/>-->
<Setter Property="Opacity" Value=".6"/>
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
================================================
FILE: Other/Translator/Themes/Colors.xaml
================================================
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="Panel.Background" Color="#FFFFFFFF"/>
<SolidColorBrush x:Key="Panel.Background.Level2" Color="#FFFAFAFA"/>
<SolidColorBrush x:Key="Panel.Background.Level3" Color="WhiteSmoke"/>
<SolidColorBrush x:Key="Panel.Background.Level4" Color="#FFF9F9FF"/>
<SolidColorBrush x:Key="Button.Background" Color="White"/>
<SolidColorBrush x:Key="Button.Background.Hover" Color="#FFD5E1F2"/>
<SolidColorBrush x:Key="Button.Background.Pressed" Color="#FFA3BDE3"/>
<SolidColorBrush x:Key="Element.Foreground.Header" Color="#FF003399"/>
<SolidColorBrush x:Key="Button.Border" Color="#FFABABAB"/>
<SolidColorBrush x:Key="Button.Border.Hover" Color="#FFA3BDE3"/>
<SolidColorBrush x:Key="Button.Border.Pressed" Color="#FF2A8DD4"/>
<SolidColorBrush x:Key="Item.MouseOver.Background" Color="#1F26A0DA"/>
<SolidColorBrush x:Key="Item.MouseOver.Border" Color="#a826A0Da"/>
<SolidColorBrush x:Key="Item.SelectedInactive.Background" Color="#3326A0DA"/>
<SolidColorBrush x:Key="Item.SelectedInactive.Border" Color="#4C26A0DA"/>
<SolidColorBrush x:Key="Item.SelectedActive.Background" Color="#3D26A0DA"/>
<SolidColorBrush x:Key="Item.SelectedActive.Border" Color="#FF26A0DA"/>
</ResourceDictionary>
================================================
FILE: Other/Translator/Themes/ComboBox.xaml
================================================
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--ComboBox Style-->
<Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="ClickMode" Value="Press"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border x:Name="templateRoot" BorderBrush="#FFABADB3" BorderThickness="1" Background="White" SnapsToDevicePixels="true">
<Border x:Name="splitBorder" BorderBrush="Transparent" BorderThickness="1" HorizontalAlignment="Right" Margin="0" SnapsToDevicePixels="true" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}">
<Path x:Name="arrow" Data="F1 M 0,0 L 2.667,2.66665 L 5.3334,0 L 5.3334,-1.78168 L 2.6667,0.88501 L0,-1.78168 L0,0 Z" Fill="#FF606060" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center"/>
</Border>
</Border>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="false"/>
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="false"/>
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="true"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FFABADB3"/>
<Setter Property="Background" TargetName="splitBorder" Value="Transparent"/>
<Setter Property="BorderBrush" TargetName="splitBorder" Value="Transparent"/>
</MultiDataTrigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" TargetName="arrow" Value="#FF000000"/>
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFECF4FC"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF7EB4EA"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF7EB4EA"/>
<Setter Property="Background" TargetName="splitBorder" Value="#FFEBF4FC"/>
<Setter Property="BorderBrush" TargetName="splitBorder" Value="#FF7EB4EA"/>
</MultiDataTrigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Fill" TargetName="arrow" Value="#FF000000"/>
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFDAECFC" Offset="0.0"/>
<GradientStop Color="#FFC4E0FC" Offset="1.0"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF569DE5"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF569DE5"/>
<Setter Property="Background" TargetName="splitBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFDAEBFC" Offset="0.0"/>
<GradientStop Color="#FFC4E0FC" Offset="1.0"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="splitBorder" Value="#FF569DE5"/>
</MultiDataTrigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Fill" TargetName="arrow" Value="#FFBFBFBF"/>
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFF0F0F0"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FFD9D9D9"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
<Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FFBFBFBF"/>
<Setter Property="Background" TargetName="splitBorder" Value="Transparent"/>
<Setter Property="BorderBrush" TargetName="splitBorder" Value="Transparent"/>
</MultiDataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" Width="0"/>
</Grid.ColumnDefinitions>
<Popup Grid.ColumnSpan="2" x:Name="PART_Popup" AllowsTransparency="True" Placement="Bottom"
IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
<Border x:Name="DropDownBorder" BorderBrush="#FFABADB3" BorderThickness="1" Background="White" Effect="{DynamicResource Shadow.Border}"
MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding ActualWidth, ElementName=templateRoot}">
<ScrollViewer x:Name="DropDownScrollViewer">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</Popup>
<ToggleButton Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxToggleButton}"/>
<ContentPresenter Grid.Column="0" IsHitTestVisible="False" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="Height" Value="95"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsGrouping" Value="True"/>
<Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="ScrollViewer.CanContentScroll" Value="False"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ComboBoxEditableTextBox" TargetType="{x:Type TextBox}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="AllowDrop" Value="True"/>
<Setter Property="MinWidth" Value="0"/>
<Setter Property="MinHeight" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<ScrollViewer x:Name="PART_ContentHost" Background="Transparent" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="ComboBoxEditableTemplate" TargetType="{x:Type ComboBox}">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" Width="0"/>
</Grid.ColumnDefinitions>
<Popup Grid.ColumnSpan="2" x:Name="PART_Popup" AllowsTransparency="True" Placement="Bottom"
IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
<Border x:Name="DropDownBorder" BorderBrush="#FFABADB3" BorderThickness="1" Background="White" Effect="{DynamicResource Shadow.Border}"
MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding ActualWidth, ElementName=templateRoot}">
<ScrollViewer x:Name="DropDownScrollViewer">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</Popup>
<ToggleButton Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxToggleButton}"/>
<TextBox Grid.Column="0" x:Name="PART_EditableTextBox" Margin="{TemplateBinding Padding}"
IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxEditableTextBox}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" TargetName="PART_EditableTextBox" Value="0.56"/>
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="Foreground" Value="Black"/>
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="Height" Value="95"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsGrouping" Value="true"/>
<Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="ScrollViewer.CanContentScroll" Value="False"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="FocusVisualStyle" Value="{DynamicResource FocusVisualStyle}"/>
<Setter Property="Height" Value="25"/>
<Setter Property="Background" Value="#FFF0F0F0"/>
<Setter Property="BorderBrush" Value="#FFACACAC"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="Padding" Value="5,3"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Template" Value="{StaticResource ComboBoxTemplate}"/>
<Style.Triggers>
<Trigger Property="IsEditable" Value="True">
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Padding" Value="2"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
<!--ComboBoxButton Style-->
<Style x:Key="DropDownToggleButton" TargetType="{x:Type ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="ClickMode" Value="Press"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid x:Name="templateRoot" MinHeight="{TemplateBinding MinHeight}" SnapsToDevicePixels="True"
Background="{TemplateBinding Background}" />
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="templateRoot" Value="#FFD5E1F2" />
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="templateRoot" Value="#FFA3BDE3" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
================================================
FILE: Other/Translator/Themes/DataGridStyle.xaml
================================================
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:t="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero">
<Color x:Key="BackgroundColor">#FF002FA7</Color>
<Color x:Key="StandardColor">#FF002FA7</Color>
<Color x:Key="HoverColor">#FF007CBC</Color>
<Color x:Key="PressedColor">#FF5700FF</Color>
<Color x:Key="DialogBackgroundColor">#FF002Fa7</Color>
<Color x:Key="ScollBarBackgroundStart">Transparent</Color>
<Color x:Key="ScollBarBackgroundEnd">Transparent</Color>
<SolidColorBrush x:Key="StandardBrush" Color="{StaticResource StandardColor}" />
<SolidColorBrush x:Key="HoverBrush" Color="{StaticResource
gitextract_e0qxbpyj/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.md
│ │ └── feature-request.md
│ └── workflows/
│ └── discord-releases.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Packages.props
├── GifRecorder.sln
├── LICENSE.txt
├── LOCALIZATION.md
├── Other/
│ └── Translator/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Controls/
│ │ ├── ExtendedTextBox.cs
│ │ ├── ImageButton.cs
│ │ ├── ImageMenuItem.cs
│ │ └── StatusBand.cs
│ ├── Converters/
│ │ ├── MultiLineTitle.cs
│ │ └── NullToInvertedBool.cs
│ ├── Dialog.xaml
│ ├── Dialog.xaml.cs
│ ├── ExceptionDialog.xaml
│ ├── ExceptionDialog.xaml.cs
│ ├── ExceptionViewer.xaml
│ ├── ExceptionViewer.xaml.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Themes/
│ │ ├── Buttons.xaml
│ │ ├── Colors.xaml
│ │ ├── ComboBox.xaml
│ │ ├── DataGridStyle.xaml
│ │ ├── Generic.xaml
│ │ ├── IconSet.xaml
│ │ └── ProgressBar.xaml
│ ├── Translator.csproj
│ ├── TranslatorWindow.xaml
│ ├── TranslatorWindow.xaml.cs
│ └── Util/
│ ├── DataGridHelper.cs
│ ├── LogWriter.cs
│ └── VisualHelper.cs
├── README.md
├── ScreenToGif/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Capture/
│ │ ├── BaseCapture.cs
│ │ ├── CachedCapture.cs
│ │ ├── DirectCachedCapture.cs
│ │ ├── DirectChangedCachedCapture.cs
│ │ ├── DirectChangedImageCapture.cs
│ │ ├── DirectImageCapture.cs
│ │ ├── ICapture.cs
│ │ ├── ImageCapture.cs
│ │ └── RegionSelectHelper.cs
│ ├── Cloud/
│ │ ├── CloudFactory.cs
│ │ ├── Imgur.cs
│ │ └── YandexDisk.cs
│ ├── Controls/
│ │ ├── AdornerControl.cs
│ │ ├── AttachmentListBoxItem.cs
│ │ ├── AwareTabItem.cs
│ │ ├── BaseRecorder.cs
│ │ ├── BaseScreenRecorder.cs
│ │ ├── BaseWindow.cs
│ │ ├── Card.cs
│ │ ├── CircularProgressBar.cs
│ │ ├── ColorBox.cs
│ │ ├── CroppingAdorner.cs
│ │ ├── DataGridHeaderBorder.cs
│ │ ├── DecimalBox.cs
│ │ ├── DecimalUpDown.cs
│ │ ├── DisplayTimer.cs
│ │ ├── DoubleBox.cs
│ │ ├── DoubleUpDown.cs
│ │ ├── DragScrollGrid.cs
│ │ ├── DrawingCanvas.cs
│ │ ├── DropDownButton.cs
│ │ ├── DynamicGrid.cs
│ │ ├── ElementAdorner.cs
│ │ ├── EncoderListViewItem.cs
│ │ ├── ExListViewItem.cs
│ │ ├── ExWindow.cs
│ │ ├── ExtendedButton.cs
│ │ ├── ExtendedCheckBox.cs
│ │ ├── ExtendedComboBox.cs
│ │ ├── ExtendedListBoxItem.cs
│ │ ├── ExtendedMenuItem.cs
│ │ ├── ExtendedProgressBar.cs
│ │ ├── ExtendedRadioButton.cs
│ │ ├── ExtendedRepeatButton.cs
│ │ ├── ExtendedSlider.cs
│ │ ├── ExtendedTextBox.cs
│ │ ├── ExtendedToggleButton.cs
│ │ ├── ExtendedUniformGrid.cs
│ │ ├── FolderSelector.cs
│ │ ├── FrameViewer.cs
│ │ ├── FrameworkElementAdorner.cs
│ │ ├── HeaderedTooltip.cs
│ │ ├── HexadecimalBox.cs
│ │ ├── HideableTabControl.cs
│ │ ├── InkCanvasExtended.cs
│ │ ├── IntegerBox.cs
│ │ ├── IntegerUpDown.cs
│ │ ├── Items/
│ │ │ ├── EncoderItem.cs
│ │ │ ├── ExportItem.cs
│ │ │ ├── GenericItem.cs
│ │ │ └── QuantizationMethodItem.cs
│ │ ├── KeyBox.cs
│ │ ├── LabelSeparator.cs
│ │ ├── LightWindow.cs
│ │ ├── MoveResizeControl.cs
│ │ ├── NotificationBox.cs
│ │ ├── NotifyIcon.cs
│ │ ├── NullableIntegerBox.cs
│ │ ├── NullableIntegerUpDown.cs
│ │ ├── PuncturedRect.cs
│ │ ├── RadialPanel.cs
│ │ ├── RangeSlider.cs
│ │ ├── ResizingAdorner.cs
│ │ ├── SelectControl.cs
│ │ ├── SelectControlOld.cs
│ │ ├── Shapes/
│ │ │ ├── Arrow.cs
│ │ │ └── Triangle.cs
│ │ ├── SpectrumSlider.cs
│ │ ├── SplitButton.cs
│ │ ├── StatusBand.cs
│ │ ├── StatusList.cs
│ │ ├── TextPath.cs
│ │ ├── TimeBox.cs
│ │ ├── WebcamControl.xaml
│ │ ├── WebcamControl.xaml.cs
│ │ └── ZoomBox.cs
│ ├── Docs/
│ │ └── Documentation.md
│ ├── ImageUtil/
│ │ └── ImageMethods.cs
│ ├── Model/
│ │ ├── FrameInfo.cs
│ │ └── ProjectInfo.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── PublishProfiles/
│ │ ├── Publish as ARM64 (light).pubxml
│ │ ├── Publish as ARM64 (self-contained).pubxml
│ │ ├── Publish as ARM64.pubxml
│ │ ├── Publish as x64 (light).pubxml
│ │ ├── Publish as x64 (self-contained).pubxml
│ │ ├── Publish as x64.pubxml
│ │ ├── Publish as x86 (light).pubxml
│ │ ├── Publish as x86 (self-contained).pubxml
│ │ └── Publish as x86.pubxml
│ ├── Readme.md
│ ├── Resources/
│ │ ├── Backgrounds.xaml
│ │ ├── Commands.xaml
│ │ ├── Flags.xaml
│ │ ├── Glyphs.xaml
│ │ ├── Localization/
│ │ │ ├── StringResources.ar.xaml
│ │ │ ├── StringResources.cs.xaml
│ │ │ ├── StringResources.da.xaml
│ │ │ ├── StringResources.de.xaml
│ │ │ ├── StringResources.el.xaml
│ │ │ ├── StringResources.en.xaml
│ │ │ ├── StringResources.es-AR.xaml
│ │ │ ├── StringResources.es.xaml
│ │ │ ├── StringResources.fi.xaml
│ │ │ ├── StringResources.fr.xaml
│ │ │ ├── StringResources.he.xaml
│ │ │ ├── StringResources.hu.xaml
│ │ │ ├── StringResources.it.xaml
│ │ │ ├── StringResources.ja.xaml
│ │ │ ├── StringResources.ko.xaml
│ │ │ ├── StringResources.nl.xaml
│ │ │ ├── StringResources.pl.xaml
│ │ │ ├── StringResources.pt-PT.xaml
│ │ │ ├── StringResources.pt.xaml
│ │ │ ├── StringResources.ru.xaml
│ │ │ ├── StringResources.sv.xaml
│ │ │ ├── StringResources.sw.xaml
│ │ │ ├── StringResources.ta.xaml
│ │ │ ├── StringResources.tr.xaml
│ │ │ ├── StringResources.uk.xaml
│ │ │ ├── StringResources.vi.xaml
│ │ │ ├── StringResources.zh-Hant.xaml
│ │ │ └── StringResources.zh.xaml
│ │ ├── Settings.xaml
│ │ ├── Style.css
│ │ └── Vectors.xaml
│ ├── ScreenToGif.csproj
│ ├── Themes/
│ │ ├── Button.xaml
│ │ ├── Colors/
│ │ │ ├── Dark.xaml
│ │ │ ├── Light.xaml
│ │ │ ├── Medium.xaml
│ │ │ └── VeryDark.xaml
│ │ ├── ComboBox.xaml
│ │ ├── Common.xaml
│ │ ├── Controls/
│ │ │ └── ExtendedComboBox.xaml
│ │ ├── DataGrid.xaml
│ │ ├── EncoderListViewItem.xaml
│ │ ├── Generic.xaml
│ │ └── Old.xaml
│ ├── UserControls/
│ │ ├── BorderPanel.xaml
│ │ ├── BorderPanel.xaml.cs
│ │ ├── DelayPanel.xaml
│ │ ├── DelayPanel.xaml.cs
│ │ ├── ExportPanel.xaml
│ │ ├── ExportPanel.xaml.cs
│ │ ├── ImageViewer.xaml
│ │ ├── ImageViewer.xaml.cs
│ │ ├── ImgurPanel.xaml
│ │ ├── ImgurPanel.xaml.cs
│ │ ├── KGySoftGifOptionsPanel.xaml
│ │ ├── KGySoftGifOptionsPanel.xaml.cs
│ │ ├── KeyStrokesPanel.xaml
│ │ ├── KeyStrokesPanel.xaml.cs
│ │ ├── MouseClicksPanel.xaml
│ │ ├── MouseClicksPanel.xaml.cs
│ │ ├── ProgressPanel.xaml
│ │ ├── ProgressPanel.xaml.cs
│ │ ├── ResizePanel.xaml
│ │ ├── ResizePanel.xaml.cs
│ │ ├── ShadowPanel.xaml
│ │ ├── ShadowPanel.xaml.cs
│ │ ├── YandexPanel.xaml
│ │ └── YandexPanel.xaml.cs
│ ├── Util/
│ │ ├── ActionStack.cs
│ │ ├── BrushAnimation.cs
│ │ ├── ClipBoard.cs
│ │ ├── ColorExtensions.cs
│ │ ├── ComboBoxItemTemplateSelector.cs
│ │ ├── Commands.cs
│ │ ├── Converters/
│ │ │ ├── CommandToKeyGesture.cs
│ │ │ ├── KeyGestureToString.cs
│ │ │ ├── PresetToSubViewModelConverter.cs
│ │ │ ├── RoutedCommandToInputGestureText.cs
│ │ │ └── ShortcutKeys.cs
│ │ ├── EncodingManager.cs
│ │ ├── Extensions/
│ │ │ ├── PresetExtensions.cs
│ │ │ └── SettingsExtension.cs
│ │ ├── FeedbackHelper.cs
│ │ ├── FrameworkHelper.cs
│ │ ├── Global.cs
│ │ ├── NotificationManager.cs
│ │ ├── Other.cs
│ │ ├── ScreenHelper.cs
│ │ ├── ScrollSynchronizer.cs
│ │ ├── StorageUtils.cs
│ │ └── ThemeHelper.cs
│ ├── ViewModel/
│ │ ├── ApplicationBaseViewModel.cs
│ │ ├── ApplicationViewModel.cs
│ │ ├── DithererDescriptor.cs
│ │ ├── KGySoftGifOptionsViewModel.cs
│ │ └── QuantizerDescriptor.cs
│ ├── Views/
│ │ └── Settings/
│ │ ├── AboutSettings.xaml
│ │ ├── AboutSettings.xaml.cs
│ │ ├── ApplicationSettings.xaml
│ │ ├── ApplicationSettings.xaml.cs
│ │ ├── DonateSettings.xaml
│ │ ├── DonateSettings.xaml.cs
│ │ ├── EditorSettings.xaml
│ │ ├── EditorSettings.xaml.cs
│ │ ├── LanguageSettings.xaml
│ │ ├── LanguageSettings.xaml.cs
│ │ ├── PluginSettings.xaml
│ │ ├── PluginSettings.xaml.cs
│ │ ├── RecorderSettings.xaml
│ │ ├── RecorderSettings.xaml.cs
│ │ ├── ShortcutsSettings.xaml
│ │ ├── ShortcutsSettings.xaml.cs
│ │ ├── StorageSettings.xaml
│ │ ├── StorageSettings.xaml.cs
│ │ ├── TasksSettings.xaml
│ │ ├── TasksSettings.xaml.cs
│ │ ├── UploadSettings.xaml
│ │ └── UploadSettings.xaml.cs
│ ├── Webcam/
│ │ ├── DirectShow/
│ │ │ ├── ControlStreaming.cs
│ │ │ ├── CoreStreaming.cs
│ │ │ ├── Devices.cs
│ │ │ ├── EditStreaming.cs
│ │ │ ├── ExtendStreaming.cs
│ │ │ ├── Marshaller.cs
│ │ │ ├── Util.cs
│ │ │ ├── Uuid.cs
│ │ │ └── WorkAround.cs
│ │ └── DirectX/
│ │ ├── CaptureWebcam.cs
│ │ ├── Filter.cs
│ │ ├── FilterCollection.cs
│ │ └── Filters.cs
│ ├── Windows/
│ │ ├── Board.xaml
│ │ ├── Board.xaml.cs
│ │ ├── Editor.xaml
│ │ ├── Editor.xaml.cs
│ │ ├── NewRecorder.xaml
│ │ ├── NewRecorder.xaml.cs
│ │ ├── Options.xaml
│ │ ├── Options.xaml.cs
│ │ ├── Other/
│ │ │ ├── AutomatedTask.xaml
│ │ │ ├── AutomatedTask.xaml.cs
│ │ │ ├── CacheDialog.xaml
│ │ │ ├── CacheDialog.xaml.cs
│ │ │ ├── ColorSelector.xaml
│ │ │ ├── ColorSelector.xaml.cs
│ │ │ ├── CommandPreviewer.xaml
│ │ │ ├── CommandPreviewer.xaml.cs
│ │ │ ├── Dialog.xaml
│ │ │ ├── Dialog.xaml.cs
│ │ │ ├── DownloadDialog.xaml
│ │ │ ├── DownloadDialog.xaml.cs
│ │ │ ├── Downloader.xaml
│ │ │ ├── Downloader.xaml.cs
│ │ │ ├── Encoder.xaml
│ │ │ ├── Encoder.xaml.cs
│ │ │ ├── ErrorDialog.xaml
│ │ │ ├── ErrorDialog.xaml.cs
│ │ │ ├── ExceptionDialog.xaml
│ │ │ ├── ExceptionDialog.xaml.cs
│ │ │ ├── ExceptionViewer.xaml
│ │ │ ├── ExceptionViewer.xaml.cs
│ │ │ ├── Feedback.xaml
│ │ │ ├── Feedback.xaml.cs
│ │ │ ├── FeedbackPreview.xaml
│ │ │ ├── FeedbackPreview.xaml.cs
│ │ │ ├── GoTo.xaml
│ │ │ ├── GoTo.xaml.cs
│ │ │ ├── GraphicsConfigurationDialog.xaml
│ │ │ ├── GraphicsConfigurationDialog.xaml.cs
│ │ │ ├── Insert.xaml
│ │ │ ├── Insert.xaml.cs
│ │ │ ├── KeyStrokes.xaml
│ │ │ ├── KeyStrokes.xaml.cs
│ │ │ ├── Localization.xaml
│ │ │ ├── Localization.xaml.cs
│ │ │ ├── PickAlbumDialog.xaml
│ │ │ ├── PickAlbumDialog.xaml.cs
│ │ │ ├── Preset.xaml
│ │ │ ├── Preset.xaml.cs
│ │ │ ├── RegionMagnifier.xaml
│ │ │ ├── RegionMagnifier.xaml.cs
│ │ │ ├── RegionSelection.xaml
│ │ │ ├── RegionSelection.xaml.cs
│ │ │ ├── RegionSelector.xaml
│ │ │ ├── RegionSelector.xaml.cs
│ │ │ ├── Splash.xaml
│ │ │ ├── Splash.xaml.cs
│ │ │ ├── Startup.xaml
│ │ │ ├── Startup.xaml.cs
│ │ │ ├── TestField.xaml
│ │ │ ├── TestField.xaml.cs
│ │ │ ├── TextDialog.xaml
│ │ │ ├── TextDialog.xaml.cs
│ │ │ ├── Troubleshoot.xaml
│ │ │ ├── Troubleshoot.xaml.cs
│ │ │ ├── Upload.xaml
│ │ │ ├── Upload.xaml.cs
│ │ │ ├── UploadHistory.xaml
│ │ │ ├── UploadHistory.xaml.cs
│ │ │ ├── VideoSource.xaml
│ │ │ └── VideoSource.xaml.cs
│ │ ├── Recorder.xaml
│ │ ├── Recorder.xaml.cs
│ │ ├── Webcam.xaml
│ │ └── Webcam.xaml.cs
│ └── app.manifest
├── ScreenToGif.Model/
│ ├── Enums/
│ │ ├── AdornerPlacement.cs
│ │ ├── AppThemes.cs
│ │ ├── ApplicationTypes.cs
│ │ ├── CaptureFrequencies.cs
│ │ ├── ColorQuantizationType.cs
│ │ ├── CopyModes.cs
│ │ ├── DelayChangeType.cs
│ │ ├── DelayUpdateModes.cs
│ │ ├── DitherMethods.cs
│ │ ├── DrawingModeType.cs
│ │ ├── DuplicatesDelayModes.cs
│ │ ├── DuplicatesRemovalModes.cs
│ │ ├── EncoderTypes.cs
│ │ ├── EncodingStatus.cs
│ │ ├── ExitAction.cs
│ │ ├── ExportFormats.cs
│ │ ├── ExtrasStatus.cs
│ │ ├── FadeModes.cs
│ │ ├── FlipRotateType.cs
│ │ ├── Framerates.cs
│ │ ├── GifskiErrorCodes.cs
│ │ ├── HardwareAcceleration.cs
│ │ ├── Icons.cs
│ │ ├── ModeType.cs
│ │ ├── MouseButtons.cs
│ │ ├── MouseEventType.cs
│ │ ├── Native/
│ │ │ ├── BaloonFlags.cs
│ │ │ ├── BitmapCompressionModes.cs
│ │ │ ├── CopyPixelOperations.cs
│ │ │ ├── CornerPreferences.cs
│ │ │ ├── DeviceCaps.cs
│ │ │ ├── DibColorModes.cs
│ │ │ ├── DisplayDeviceStates.cs
│ │ │ ├── DisplayDevices.cs
│ │ │ ├── DpiTypes.cs
│ │ │ ├── DwmWindowAttributes.cs
│ │ │ ├── GetAncestorFlags.cs
│ │ │ ├── GetWindowTypes.cs
│ │ │ ├── HitTestTargets.cs
│ │ │ ├── IconDataMembers.cs
│ │ │ ├── IconStates.cs
│ │ │ ├── LocalMemoryFlags.cs
│ │ │ ├── MapTypes.cs
│ │ │ ├── MenuFunctions.cs
│ │ │ ├── NativeMouseEvents.cs
│ │ │ ├── NotifyCommands.cs
│ │ │ ├── NotifyIconVersions.cs
│ │ │ ├── ProcessDpiAwareness.cs
│ │ │ ├── SetWindowPosFlags.cs
│ │ │ ├── ShellExecuteMasks.cs
│ │ │ ├── ShowWindowCommands.cs
│ │ │ ├── SpecialWindowHandles.cs
│ │ │ ├── SysCommands.cs
│ │ │ ├── TimeResults.cs
│ │ │ ├── WindowAttributes.cs
│ │ │ ├── WindowStyles.cs
│ │ │ ├── WindowStylesEx.cs
│ │ │ └── WindowsMessages.cs
│ │ ├── ObfuscationModes.cs
│ │ ├── OverwriteModes.cs
│ │ ├── PanelType.cs
│ │ ├── PartialExportModes.cs
│ │ ├── PasteBehaviors.cs
│ │ ├── PredictionMethods.cs
│ │ ├── ProgressTypes.cs
│ │ ├── ProjectByType.cs
│ │ ├── ProxyTypes.cs
│ │ ├── RateUnits.cs
│ │ ├── RecorderStages.cs
│ │ ├── ReduceDelayModes.cs
│ │ ├── ResizeDirection.cs
│ │ ├── ScalingMethod.cs
│ │ ├── SizeUnits.cs
│ │ ├── SlideFromType.cs
│ │ ├── SmoothLoopSelectionModes.cs
│ │ ├── StatusReason.cs
│ │ ├── StatusType.cs
│ │ ├── SupportedFFmpegVersions.cs
│ │ ├── TaskTypes.cs
│ │ ├── UploadDestinations.cs
│ │ ├── UploadService.cs
│ │ ├── VideoCodecPresets.cs
│ │ ├── VideoCodecs.cs
│ │ ├── VideoPixelFormats.cs
│ │ ├── VideoSettingsModes.cs
│ │ └── Vsyncs.cs
│ ├── Events/
│ │ ├── CustomKeyEventArgs.cs
│ │ ├── CustomKeyPressEventArgs.cs
│ │ ├── ManipulatedEventArgs.cs
│ │ ├── SaveEventArgs.cs
│ │ └── ValidatedEventArgs.cs
│ ├── Exceptions/
│ │ ├── GraphicsConfigurationException.cs
│ │ ├── SettingsPersistenceException.cs
│ │ └── UploadException.cs
│ ├── Interfaces/
│ │ ├── IExportPreset.cs
│ │ ├── IFfmpegPreset.cs
│ │ ├── IFrame.cs
│ │ ├── IHistory.cs
│ │ ├── IKeyGesture.cs
│ │ ├── IPanel.cs
│ │ ├── IPersistent.cs
│ │ ├── IPreset.cs
│ │ ├── IUploadPreset.cs
│ │ └── IUploader.cs
│ ├── Models/
│ │ ├── DetectedRegion.cs
│ │ ├── ExportFrame.cs
│ │ ├── ExportProject.cs
│ │ ├── FosshubItem.cs
│ │ ├── FosshubRelease.cs
│ │ ├── FosshubResponse.cs
│ │ ├── Frame.cs
│ │ ├── GitHub/
│ │ │ ├── GitHubAsset.cs
│ │ │ ├── GitHubRelease.cs
│ │ │ └── GitHubUser.cs
│ │ ├── MediaSource.cs
│ │ ├── Native/
│ │ │ ├── Monitor.cs
│ │ │ └── NativeRect.cs
│ │ ├── Project/
│ │ │ ├── Project.cs
│ │ │ ├── Sequence.cs
│ │ │ ├── Sequences/
│ │ │ │ ├── BrushSequence.cs
│ │ │ │ ├── CursorSequence.cs
│ │ │ │ ├── DrawingSequence.cs
│ │ │ │ ├── KeySequence.cs
│ │ │ │ ├── ObfuscationSequence.cs
│ │ │ │ ├── ProgressSequence.cs
│ │ │ │ ├── RasterSequence.cs
│ │ │ │ ├── ShapeSequence.cs
│ │ │ │ ├── SizeableSequence.cs
│ │ │ │ ├── SubSequences/
│ │ │ │ │ ├── CursorEvent.cs
│ │ │ │ │ ├── Frame.cs
│ │ │ │ │ ├── KeyEvent.cs
│ │ │ │ │ └── Shadow.cs
│ │ │ │ └── TextSequence.cs
│ │ │ └── Track.cs
│ │ ├── Property.cs
│ │ ├── SimpleMouseGesture.cs
│ │ ├── Upload/
│ │ │ ├── Imgur/
│ │ │ │ ├── ImgurAlbum.cs
│ │ │ │ ├── ImgurAlbumsResponse.cs
│ │ │ │ ├── ImgurImage.cs
│ │ │ │ └── ImgurUploadResponse.cs
│ │ │ ├── OAuth2Token.cs
│ │ │ └── YandexDisk/
│ │ │ ├── Error.cs
│ │ │ └── Link.cs
│ │ └── VideoSource.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ScreenToGif.Domain.csproj
│ ├── Structs/
│ │ └── GifskiSettings.cs
│ └── ViewModels/
│ ├── BaseViewModel.cs
│ └── BindableBase.cs
├── ScreenToGif.Native/
│ ├── Constants.cs
│ ├── Delegates.cs
│ ├── External/
│ │ ├── DwmApi.cs
│ │ ├── Gdi32.cs
│ │ ├── Kernel32.cs
│ │ ├── MsvCrt.cs
│ │ ├── NtDll.cs
│ │ ├── ShCore.cs
│ │ ├── Shell32.cs
│ │ ├── User32.cs
│ │ └── WinMm.cs
│ ├── Helpers/
│ │ ├── DllSecurity.cs
│ │ ├── FunctionLoader.cs
│ │ ├── HotKey.cs
│ │ ├── Other.cs
│ │ ├── TimerResolution.cs
│ │ └── WindowMessageSink.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ScreenToGif.Native.csproj
│ └── Structs/
│ ├── Bitmap.cs
│ ├── BitmapFileHeader.cs
│ ├── BitmapInfoHeader.cs
│ ├── CursorInfo.cs
│ ├── IconInfo.cs
│ ├── KeyboardHook.cs
│ ├── Margins.cs
│ ├── MemoryStatusEx.cs
│ ├── MinMaxInfo.cs
│ ├── MonitorInfoEx.cs
│ ├── MouseHook.cs
│ ├── NotifyIconData.cs
│ ├── PointW.cs
│ ├── ShellExecuteInfo.cs
│ ├── TimeCaps.cs
│ ├── TitlebarInfo.cs
│ ├── WindowClass.cs
│ ├── WindowInfo.cs
│ └── WindowPlacement.cs
├── ScreenToGif.Test/
│ ├── A11Y/
│ │ └── ThemeContrastTests.cs
│ ├── Data/
│ │ └── Upload/
│ │ └── Test.txt
│ ├── Facts/
│ │ ├── ImageComparison.cs
│ │ └── YandexUpload.cs
│ ├── ScreenToGif.Test.csproj
│ └── Util/
│ └── HttpHelper.cs
├── ScreenToGif.Util/
│ ├── Arguments.cs
│ ├── BitHelper.cs
│ ├── Codification/
│ │ ├── Apng/
│ │ │ ├── Apng.cs
│ │ │ └── Chunks/
│ │ │ ├── ActlChunk.cs
│ │ │ ├── ApngFrame.cs
│ │ │ ├── Chunk.cs
│ │ │ ├── FctlChunk.cs
│ │ │ ├── FdatChunk.cs
│ │ │ ├── IdatChunk.cs
│ │ │ └── IhdrChunk.cs
│ │ ├── Gif/
│ │ │ ├── Decoder/
│ │ │ │ ├── GifApplicationExtension.cs
│ │ │ │ ├── GifBlock.cs
│ │ │ │ ├── GifBlockKind.cs
│ │ │ │ ├── GifColor.cs
│ │ │ │ ├── GifCommentExtension.cs
│ │ │ │ ├── GifDecoderException.cs
│ │ │ │ ├── GifExtension.cs
│ │ │ │ ├── GifFile.cs
│ │ │ │ ├── GifFrame.cs
│ │ │ │ ├── GifGraphicControlExtension.cs
│ │ │ │ ├── GifHeader.cs
│ │ │ │ ├── GifHelpers.cs
│ │ │ │ ├── GifImageData.cs
│ │ │ │ ├── GifImageDescriptor.cs
│ │ │ │ ├── GifLogicalScreenDescriptor.cs
│ │ │ │ ├── GifPlainTextExtension.cs
│ │ │ │ └── GifTrailer.cs
│ │ │ ├── Encoder/
│ │ │ │ ├── BitEncoder.cs
│ │ │ │ ├── GifFile.cs
│ │ │ │ ├── LZWEncoder.cs
│ │ │ │ └── Quantization/
│ │ │ │ ├── GrayscaleQuantizer.cs
│ │ │ │ ├── MedianCutQuantizer.cs
│ │ │ │ ├── MostUsedQuantizer.cs
│ │ │ │ ├── NeuralQuantizer.cs
│ │ │ │ ├── OctreeQuantizer.cs
│ │ │ │ ├── PaletteQuantizer.cs
│ │ │ │ └── Quantizer.cs
│ │ │ └── LegacyEncoder/
│ │ │ ├── GifEncoder.cs
│ │ │ ├── LZWEncoder.cs
│ │ │ └── PixelUtilOld.cs
│ │ ├── PixelUtil.cs
│ │ └── Psd/
│ │ ├── AditionalLayers/
│ │ │ ├── IAditionalLayerInfo.cs
│ │ │ ├── IMetadata.cs
│ │ │ ├── Metadata.cs
│ │ │ └── MetadataContent.cs
│ │ ├── Channel.cs
│ │ ├── IPsdContent.cs
│ │ ├── Image.cs
│ │ ├── ImageChannelData.cs
│ │ ├── ImageData.cs
│ │ ├── ImageResourceBlocks/
│ │ │ ├── AnimationBlock.cs
│ │ │ ├── IImageResource.cs
│ │ │ └── ImageResources.cs
│ │ ├── LayerAndMask.cs
│ │ ├── LayerInfo.cs
│ │ ├── LayerRecord.cs
│ │ └── Psd.cs
│ ├── Constants.cs
│ ├── Converters/
│ │ ├── AlphaToOpacity.cs
│ │ ├── BoolAnd.cs
│ │ ├── BoolAndOrOrToVisibility.cs
│ │ ├── BoolAndToVisibility.cs
│ │ ├── BoolOr.cs
│ │ ├── BoolOrAndToVisibility.cs
│ │ ├── BoolOrToInvertedVisibility.cs
│ │ ├── BoolOrToVisibility.cs
│ │ ├── BoolToOpacity.cs
│ │ ├── BytesToSize.cs
│ │ ├── CenterPopupConverter.cs
│ │ ├── ColorToAlpha.cs
│ │ ├── ColorToBrush.cs
│ │ ├── ContentToVisibility.cs
│ │ ├── CountToBool.cs
│ │ ├── DoubleTimesAHundredToInt.cs
│ │ ├── DoubleToBool.cs
│ │ ├── DoubleToInt.cs
│ │ ├── DoubleToPercentage.cs
│ │ ├── DoubleToPositionSize.cs
│ │ ├── DoubleToRadius.cs
│ │ ├── DoubleToThickness.cs
│ │ ├── EnumToBool.cs
│ │ ├── EnumToInt.cs
│ │ ├── EnumToVisibility.cs
│ │ ├── FontToSupportedGliph.cs
│ │ ├── FormatConverter.cs
│ │ ├── HasEnumToVisibility.cs
│ │ ├── IntToBool.cs
│ │ ├── IntToDecimal.cs
│ │ ├── IntToDelayString.cs
│ │ ├── IntToRect.cs
│ │ ├── IntToString.cs
│ │ ├── IntToVisibility.cs
│ │ ├── InvertedBool.cs
│ │ ├── InvertedBoolToVisibility.cs
│ │ ├── InvertedEnumToBool.cs
│ │ ├── InvertedEnumToVisibility.cs
│ │ ├── InvertedIntToVisibility.cs
│ │ ├── InvertedVisibility.cs
│ │ ├── KeyToResource.cs
│ │ ├── KeysToString.cs
│ │ ├── MaximumValue.cs
│ │ ├── MultiLineTitle.cs
│ │ ├── NullToVisibility.cs
│ │ ├── PathToFilename.cs
│ │ ├── PercentageToOpacity.cs
│ │ ├── ScaleConverter.cs
│ │ ├── SelectionCountToDescription.cs
│ │ ├── SelectionToDrawingAttributes.cs
│ │ ├── SelectionToEditingMode.cs
│ │ ├── SelectionToStylusShape.cs
│ │ ├── ShortcutSelection.cs
│ │ ├── SourceToSize.cs
│ │ ├── StageToButtonString.cs
│ │ ├── StageToCanvas.cs
│ │ ├── StringArrayTypeConverter.cs
│ │ ├── StringToDoubleArray.cs
│ │ ├── StringToInt.cs
│ │ ├── StylusTipToBool.cs
│ │ ├── TagToSelection.cs
│ │ ├── TimeSpanToString.cs
│ │ ├── TimeSpanToTotalMilliseconds.cs
│ │ └── UriToBitmap.cs
│ ├── CrcHelper.cs
│ ├── DataGridHelper.cs
│ ├── DebounceDispatcher.cs
│ ├── DirectoryHelper.cs
│ ├── DynamicResourceBinding.cs
│ ├── ExtendedStack.cs
│ ├── Extensions/
│ │ ├── EnumExtensions.cs
│ │ ├── ImageExtensions.cs
│ │ ├── InlineExtensions.cs
│ │ ├── MathExtensions.cs
│ │ ├── ParseExtensions.cs
│ │ ├── PropertyExtensions.cs
│ │ ├── RectExtensions.cs
│ │ ├── StringExtensions.cs
│ │ └── VersionExtensions.cs
│ ├── FastRandom.cs
│ ├── Framerate.cs
│ ├── GifskiInterop.cs
│ ├── GitHubHelper.cs
│ ├── Helpers/
│ │ ├── CursorHelper.cs
│ │ ├── FfmpegHelper.cs
│ │ └── KeyHelper.cs
│ ├── Humanizer.cs
│ ├── IdentityHelper.cs
│ ├── InterProcessChannel/
│ │ ├── InstanceSwitcherChannel.cs
│ │ ├── PipeServer.cs
│ │ └── SettingsPersistenceChannel.cs
│ ├── LocalizationHelper.cs
│ ├── LogWritter.cs
│ ├── MutexList.cs
│ ├── Native/
│ │ ├── Capture.cs
│ │ ├── HotKeyCollection.cs
│ │ ├── InputHook.cs
│ │ ├── Monitor.cs
│ │ ├── NotifyIconHelper.cs
│ │ └── WindowHelper.cs
│ ├── NetworkHelper.cs
│ ├── OperationalSystemHelper.cs
│ ├── PathHelper.cs
│ ├── ProcessHelper.cs
│ ├── ScreenToGif.Util.csproj
│ ├── Secret.cs
│ ├── Serializer.cs
│ ├── Settings/
│ │ ├── Migrations/
│ │ │ ├── Migration0to2_28_0.cs
│ │ │ ├── Migration2_28_0To2_29_0.cs
│ │ │ ├── Migration2_29_0To2_31_0.cs
│ │ │ ├── Migration2_31_0To2_32_0.cs
│ │ │ ├── Migration2_32_0To2_35_0.cs
│ │ │ ├── Migration2_35_0To2_36_0.cs
│ │ │ ├── Migration2_36_0To2_37_0.cs
│ │ │ └── Migration2_37_0To2_43_0.cs
│ │ ├── Migrations.cs
│ │ └── UserSettings.cs
│ ├── SimpleKeyGesture.cs
│ ├── StreamHelpers.cs
│ ├── UiElementsExtension.cs
│ ├── VisualHelper.cs
│ ├── WebHelper.cs
│ └── WordLevel.cs
└── ScreenToGif.ViewModel/
├── BoardRecorderViewModel.cs
├── EditorViewModel.cs
├── ExportPresets/
│ ├── AnimatedImage/
│ │ ├── AnimatedImagePreset.cs
│ │ ├── Apng/
│ │ │ ├── ApngPreset.cs
│ │ │ ├── EmbeddedApngPreset.cs
│ │ │ └── FfmpegApngPreset.cs
│ │ ├── Avif/
│ │ │ ├── AvifPreset.cs
│ │ │ └── FfmpegAvifPreset.cs
│ │ ├── Bpg/
│ │ │ └── BpgPreset.cs
│ │ ├── Gif/
│ │ │ ├── EmbeddedGifPreset.cs
│ │ │ ├── FfmpegGifPreset.cs
│ │ │ ├── GifPreset.cs
│ │ │ ├── GifskiGifPreset.cs
│ │ │ ├── KGySoftGifPreset.cs
│ │ │ └── SystemGifPreset.cs
│ │ └── Webp/
│ │ ├── FfmpegWebpPreset.cs
│ │ └── WebpPreset.cs
│ ├── ExportPreset.cs
│ ├── Image/
│ │ ├── BmpPreset.cs
│ │ ├── ImagePreset.cs
│ │ ├── JpegPreset.cs
│ │ └── PngPreset.cs
│ ├── Other/
│ │ ├── PsdPreset.cs
│ │ └── StgPreset.cs
│ └── Video/
│ ├── Avi/
│ │ ├── AviPreset.cs
│ │ └── FfmpegAviPreset.cs
│ ├── Codecs/
│ │ ├── H264Amf.cs
│ │ ├── H264Nvenc.cs
│ │ ├── H264Qsv.cs
│ │ ├── HevcAmf.cs
│ │ ├── HevcNvenc.cs
│ │ ├── HevcQsv.cs
│ │ ├── LibAom.cs
│ │ ├── Mpeg2.cs
│ │ ├── Mpeg4.cs
│ │ ├── Rav1E.cs
│ │ ├── SvtAv1.cs
│ │ ├── VideoCodec.cs
│ │ ├── Vp8.cs
│ │ ├── Vp9.cs
│ │ ├── X264.cs
│ │ └── X265.cs
│ ├── Mkv/
│ │ ├── FfmpegMkvPreset.cs
│ │ └── MkvPreset.cs
│ ├── Mov/
│ │ ├── FfmpegMovPreset.cs
│ │ └── MovPreset.cs
│ ├── Mp4/
│ │ ├── FfmpegMp4Preset.cs
│ │ └── Mp4Preset.cs
│ ├── VideoPreset.cs
│ └── Webm/
│ ├── FfmpegWebmPreset.cs
│ └── WebmPreset.cs
├── FrameViewModel.cs
├── RecorderViewModel.cs
├── ScreenRecorderViewModel.cs
├── ScreenToGif.ViewModel.csproj
├── Settings/
│ └── PluginSettingsViewModel.cs
├── Tasks/
│ ├── BaseTaskViewModel.cs
│ ├── BorderViewModel.cs
│ ├── DelayViewModel.cs
│ ├── KeyStrokesViewModel.cs
│ ├── MouseEventsViewModel.cs
│ ├── ProgressViewModel.cs
│ ├── ResizeViewModel.cs
│ └── ShadowViewModel.cs
├── UpdateAvailable.cs
├── UploadPresets/
│ ├── Custom/
│ │ └── CustomPreset.cs
│ ├── History/
│ │ ├── History.cs
│ │ └── ImgurHistory.cs
│ ├── Imgur/
│ │ ├── ImgurAlbum.cs
│ │ └── ImgurPreset.cs
│ ├── UploadPreset.cs
│ └── Yandex/
│ └── YandexPreset.cs
├── VideoSourceViewModel.cs
└── WebcamViewModel.cs
Showing preview only (383K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3907 symbols across 644 files)
FILE: Other/Translator/App.xaml.cs
class App (line 9) | public partial class App : Application
method App_Startup (line 11) | private void App_Startup(object sender, StartupEventArgs e)
method App_OnDispatcherUnhandledException (line 17) | private void App_OnDispatcherUnhandledException(object sender, Dispatc...
method CurrentDomain_UnhandledException (line 34) | private void CurrentDomain_UnhandledException(object sender, Unhandled...
method ToStringShort (line 53) | internal static string ToStringShort(Version version)
FILE: Other/Translator/Controls/ExtendedTextBox.cs
class ExtendedTextBox (line 7) | public class ExtendedTextBox : TextBox
method ExtendedTextBox (line 9) | static ExtendedTextBox()
method OnPreviewMouseLeftButtonDown (line 14) | protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventA...
method OnGotFocus (line 23) | protected override void OnGotFocus(RoutedEventArgs e)
FILE: Other/Translator/Controls/ImageButton.cs
class ImageButton (line 10) | public class ImageButton : Button
method ImageButton (line 72) | static ImageButton()
FILE: Other/Translator/Controls/ImageMenuItem.cs
class ImageMenuItem (line 10) | public class ImageMenuItem : MenuItem
method ImageMenuItem (line 62) | static ImageMenuItem()
FILE: Other/Translator/Controls/StatusBand.cs
class StatusBand (line 8) | public class StatusBand : Control
type StatusTypes (line 12) | public enum StatusTypes
method OnTypePropertyChanged (line 77) | private static void OnTypePropertyChanged(DependencyObject d, Dependen...
method OnTextPropertyChanged (line 86) | private static void OnTextPropertyChanged(DependencyObject d, Dependen...
method OnImagePropertyChanged (line 94) | private static void OnImagePropertyChanged(DependencyObject d, Depende...
method StatusBand (line 104) | static StatusBand()
method OnApplyTemplate (line 109) | public override void OnApplyTemplate()
method Show (line 124) | public void Show(StatusTypes type, string text, UIElement image = null)
method Info (line 140) | public void Info(string text, UIElement image = null)
method Warning (line 145) | public void Warning(string text, UIElement image = null)
method Error (line 150) | public void Error(string text, UIElement image = null)
method Hide (line 155) | public void Hide()
method SupressButton_Click (line 168) | private void SupressButton_Click(object sender, RoutedEventArgs e)
FILE: Other/Translator/Converters/MultiLineTitle.cs
class MultiLineTitle (line 7) | public class MultiLineTitle : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 16) | public object ConvertBack(object value, Type targetType, object parame...
FILE: Other/Translator/Converters/NullToInvertedBool.cs
class NullToInvertedBool (line 7) | public class NullToInvertedBool : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 14) | public object ConvertBack(object value, Type targetType, object parame...
FILE: Other/Translator/Dialog.xaml.cs
class Dialog (line 10) | public partial class Dialog : Window
method Dialog (line 15) | public Dialog()
method GetIcon (line 22) | private Canvas GetIcon(Icons icon)
method PrepareOk (line 42) | private void PrepareOk(string title, string instruction, string observ...
method PrepareOkCancel (line 57) | private void PrepareOkCancel(string title, string instruction, string ...
method PrepareAsk (line 71) | private void PrepareAsk(string title, string instruction, string obser...
method Ok (line 93) | public static bool Ok(string title, string instruction, string observa...
method OkCancel (line 110) | public static bool OkCancel(string title, string instruction, string o...
method Ask (line 127) | public static bool Ask(string title, string instruction, string observ...
method FalseActionButton_Click (line 140) | private void FalseActionButton_Click(object sender, RoutedEventArgs e)
method TrueActionButton_Click (line 145) | private void TrueActionButton_Click(object sender, RoutedEventArgs e)
type Icons (line 155) | public enum Icons
FILE: Other/Translator/ExceptionDialog.xaml.cs
class ExceptionDialog (line 9) | public partial class ExceptionDialog : Window
method ExceptionDialog (line 19) | public ExceptionDialog(Exception exception)
method Window_Loaded (line 28) | private void Window_Loaded(object sender, RoutedEventArgs e)
method DetailsButton_Click (line 34) | private void DetailsButton_Click(object sender, RoutedEventArgs e)
method OkButton_Click (line 40) | private void OkButton_Click(object sender, RoutedEventArgs e)
method PrepareOk (line 49) | private void PrepareOk(string title, string instruction, string observ...
method HyperOnClick (line 72) | private void HyperOnClick(object sender, RoutedEventArgs routedEventArgs)
method Ok (line 88) | public static bool Ok(Exception exception, string title, string instru...
FILE: Other/Translator/ExceptionViewer.xaml.cs
class ExceptionViewer (line 6) | public partial class ExceptionViewer
method ExceptionViewer (line 18) | public ExceptionViewer(Exception ex)
method InnerButton_Click (line 44) | private void InnerButton_Click(object sender, RoutedEventArgs e)
method DoneButton_Click (line 52) | private void DoneButton_Click(object sender, RoutedEventArgs e)
FILE: Other/Translator/TranslatorWindow.xaml.cs
class TranslatorWindow (line 27) | public partial class TranslatorWindow : Window
method TranslatorWindow (line 35) | public TranslatorWindow()
method Window_Loaded (line 42) | private async void Window_Loaded(object sender, RoutedEventArgs e)
method TutorialHyperlink_RequestNavigate (line 82) | private void TutorialHyperlink_RequestNavigate(object sender, RequestN...
method NewLineHyperlink_Click (line 94) | private void NewLineHyperlink_Click(object sender, RoutedEventArgs e)
method ComboBox_KeyDown (line 99) | private void ComboBox_KeyDown(object sender, KeyEventArgs e)
method Refresh_Click (line 108) | private async void Refresh_Click(object sender, RoutedEventArgs e)
method Itens_GotFocus (line 129) | private void Itens_GotFocus(object sender, RoutedEventArgs e)
method Item_PreviewKeyDown (line 139) | private void Item_PreviewKeyDown(object sender, KeyEventArgs e)
method Load_CanExecute (line 203) | private void Load_CanExecute(object sender, CanExecuteRoutedEventArgs e)
method Export_CanExecute (line 208) | private void Export_CanExecute(object sender, CanExecuteRoutedEventArg...
method Load_Executed (line 213) | private async void Load_Executed(object sender, ExecutedRoutedEventArg...
method Export_Executed (line 280) | private async void Export_Executed(object sender, ExecutedRoutedEventA...
method CancelButton_Click (line 309) | private void CancelButton_Click(object sender, RoutedEventArgs e)
method Window_Closing (line 314) | private void Window_Closing(object sender, CancelEventArgs e)
method PrepareTempPath (line 324) | private void PrepareTempPath()
method DownloadSingleResourceAsync (line 332) | private async Task DownloadSingleResourceAsync(string culture)
method DownloadResourcesAsync (line 381) | private async Task DownloadResourcesAsync(string baseCulture, string s...
method DownloadFileAsync2 (line 432) | private async Task DownloadFileAsync2(Uri uri, string name)
method DownloadFileAsync (line 471) | private async Task DownloadFileAsync(Uri uri, string name)
method LoadFilesAsync (line 510) | private async Task LoadFilesAsync()
method ShowTranslations (line 537) | private void ShowTranslations(string baseCulture, string specificCulture)
method ExportTranslation (line 591) | private bool ExportTranslation(string path)
method CheckSupportedCulture (line 629) | private string CheckSupportedCulture(string cultureName)
method GetProperCulturesAsync (line 652) | private async Task<IEnumerable<string>> GetProperCulturesAsync()
method GetLanguageCodesOffline (line 673) | private List<string> GetLanguageCodesOffline()
method GetLanguageCodesAsync (line 694) | private async Task<IEnumerable<string>> GetLanguageCodesAsync()
method GetLanguageCodesPathAsync (line 726) | private async Task<string> GetLanguageCodesPathAsync()
class Culture (line 755) | internal class Culture
class Translation (line 762) | internal class Translation
FILE: Other/Translator/Util/DataGridHelper.cs
class DataGridHelper (line 12) | public static class DataGridHelper
method GetCell (line 14) | public static DataGridCell GetCell(DataGrid dg, int row, int column)
method GetRow (line 38) | public static DataGridRow GetRow(DataGrid dg, int index)
method GetRowIndex (line 53) | public static int GetRowIndex(DataGrid dg, DataGridCellInfo dgci)
method GetColIndex (line 63) | public static int GetColIndex(DataGridCellInfo dgci)
method FindParentCell (line 68) | public static DataGridCell FindParentCell(DataGrid grid, DependencyObj...
method GetDataGridCell (line 82) | public static DataGridCell GetDataGridCell(DataGridCellInfo cellInfo)
method GetDataGridCell (line 92) | public static DataGridCell GetDataGridCell(DataGrid dataGrid)
method FocusOnFirstCell (line 107) | public static void FocusOnFirstCell(this DataGrid dataGrid)
method Sort (line 117) | public static bool Sort(this DataGrid grid, ListSortDirection directio...
method ReSort (line 144) | public static void ReSort(this DataGrid grid, Dictionary<string, ListS...
FILE: Other/Translator/Util/LogWriter.cs
class LogWriter (line 9) | public static class LogWriter
method Log (line 18) | public static void Log(Exception ex, string title, object additional =...
FILE: Other/Translator/Util/VisualHelper.cs
class VisualHelper (line 9) | public static class VisualHelper
method GetParent (line 11) | public static TP GetParent<TP>(DependencyObject child, int i) where TP...
method GetParent (line 25) | public static TP GetParent<TP>(DependencyObject child, Type stopWhen) ...
method GetVisualChild (line 42) | public static T GetVisualChild<T>(Visual parent) where T : Visual
method DeepCopy (line 60) | public static T DeepCopy<T>(UIElement source) where T : new()
method FindStoryboard (line 73) | public static Storyboard FindStoryboard(this FrameworkElement visual, ...
FILE: ScreenToGif.Model/Enums/AdornerPlacement.cs
type AdornerPlacement (line 6) | public enum AdornerPlacement
FILE: ScreenToGif.Model/Enums/AppThemes.cs
type AppThemes (line 3) | public enum AppThemes
FILE: ScreenToGif.Model/Enums/ApplicationTypes.cs
type ApplicationTypes (line 3) | public enum ApplicationTypes
FILE: ScreenToGif.Model/Enums/CaptureFrequencies.cs
type CaptureFrequencies (line 6) | public enum CaptureFrequencies
FILE: ScreenToGif.Model/Enums/ColorQuantizationType.cs
type ColorQuantizationTypes (line 6) | public enum ColorQuantizationTypes
FILE: ScreenToGif.Model/Enums/CopyModes.cs
type CopyModes (line 6) | public enum CopyModes
FILE: ScreenToGif.Model/Enums/DelayChangeType.cs
type DelayChangeType (line 6) | public enum DelayChangeType
FILE: ScreenToGif.Model/Enums/DelayUpdateModes.cs
type DelayUpdateModes (line 3) | public enum DelayUpdateModes
FILE: ScreenToGif.Model/Enums/DitherMethods.cs
type DitherMethods (line 8) | public enum DitherMethods
FILE: ScreenToGif.Model/Enums/DrawingModeType.cs
type DrawingModeType (line 6) | public enum DrawingModeType
FILE: ScreenToGif.Model/Enums/DuplicatesDelayModes.cs
type DuplicatesDelayModes (line 6) | public enum DuplicatesDelayModes
FILE: ScreenToGif.Model/Enums/DuplicatesRemovalModes.cs
type DuplicatesRemovalModes (line 6) | public enum DuplicatesRemovalModes
FILE: ScreenToGif.Model/Enums/EncoderTypes.cs
type EncoderTypes (line 3) | public enum EncoderTypes
FILE: ScreenToGif.Model/Enums/EncodingStatus.cs
type EncodingStatus (line 6) | public enum EncodingStatus
FILE: ScreenToGif.Model/Enums/ExitAction.cs
type ExitAction (line 6) | public enum ExitAction
FILE: ScreenToGif.Model/Enums/ExportFormats.cs
type ExportFormats (line 3) | public enum ExportFormats
FILE: ScreenToGif.Model/Enums/ExtrasStatus.cs
type ExtrasStatus (line 6) | public enum ExtrasStatus
FILE: ScreenToGif.Model/Enums/FadeModes.cs
type FadeModes (line 6) | public enum FadeModes
FILE: ScreenToGif.Model/Enums/FlipRotateType.cs
type FlipRotateType (line 6) | public enum FlipRotateType
FILE: ScreenToGif.Model/Enums/Framerates.cs
type Framerates (line 3) | public enum Framerates
FILE: ScreenToGif.Model/Enums/GifskiErrorCodes.cs
type GifskiErrorCodes (line 3) | public enum GifskiErrorCodes
FILE: ScreenToGif.Model/Enums/HardwareAcceleration.cs
type HardwareAccelerationModes (line 3) | public enum HardwareAccelerationModes
FILE: ScreenToGif.Model/Enums/Icons.cs
type Icons (line 6) | public enum Icons
FILE: ScreenToGif.Model/Enums/ModeType.cs
type ModeType (line 6) | public enum ModeType
FILE: ScreenToGif.Model/Enums/MouseButtons.cs
type MouseButtons (line 3) | public enum MouseButtons
FILE: ScreenToGif.Model/Enums/MouseEventType.cs
type MouseEventType (line 6) | public enum MouseEventType
FILE: ScreenToGif.Model/Enums/Native/BaloonFlags.cs
type BalloonFlags (line 7) | public enum BalloonFlags
FILE: ScreenToGif.Model/Enums/Native/BitmapCompressionModes.cs
type BitmapCompressionModes (line 3) | public enum BitmapCompressionModes : uint
FILE: ScreenToGif.Model/Enums/Native/CopyPixelOperations.cs
type CopyPixelOperations (line 8) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/CornerPreferences.cs
type CornerPreferences (line 8) | public enum CornerPreferences
FILE: ScreenToGif.Model/Enums/Native/DeviceCaps.cs
type DeviceCaps (line 3) | public enum DeviceCaps : int
FILE: ScreenToGif.Model/Enums/Native/DibColorModes.cs
type DibColorModes (line 3) | public enum DibColorModes : uint
FILE: ScreenToGif.Model/Enums/Native/DisplayDeviceStates.cs
type DisplayDeviceStates (line 3) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/DisplayDevices.cs
type DisplayDevices (line 5) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
method DisplayDevices (line 8) | public DisplayDevices(bool? filler) : this()
FILE: ScreenToGif.Model/Enums/Native/DpiTypes.cs
type DpiTypes (line 6) | public enum DpiTypes
FILE: ScreenToGif.Model/Enums/Native/DwmWindowAttributes.cs
type DwmWindowAttributes (line 3) | public enum DwmWindowAttributes
FILE: ScreenToGif.Model/Enums/Native/GetAncestorFlags.cs
type GetAncestorFlags (line 3) | public enum GetAncestorFlags
FILE: ScreenToGif.Model/Enums/Native/GetWindowTypes.cs
type GetWindowType (line 3) | public enum GetWindowType : uint
FILE: ScreenToGif.Model/Enums/Native/HitTestTargets.cs
type HitTestTargets (line 3) | public enum HitTestTargets : int
FILE: ScreenToGif.Model/Enums/Native/IconDataMembers.cs
type IconDataMembers (line 8) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/IconStates.cs
type IconStates (line 6) | public enum IconStates
FILE: ScreenToGif.Model/Enums/Native/LocalMemoryFlags.cs
type LocalMemoryFlags (line 3) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/MapTypes.cs
type MapTypes (line 3) | public enum MapTypes : uint
FILE: ScreenToGif.Model/Enums/Native/MenuFunctions.cs
type MenuFunctions (line 3) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/NativeMouseEvents.cs
type NativeMouseEvents (line 3) | public enum NativeMouseEvents
FILE: ScreenToGif.Model/Enums/Native/NotifyCommands.cs
type NotifyCommands (line 6) | public enum NotifyCommands
FILE: ScreenToGif.Model/Enums/Native/NotifyIconVersions.cs
type NotifyIconVersions (line 7) | public enum NotifyIconVersions
FILE: ScreenToGif.Model/Enums/Native/ProcessDpiAwareness.cs
type ProcessDpiAwareness (line 3) | public enum ProcessDpiAwareness
FILE: ScreenToGif.Model/Enums/Native/SetWindowPosFlags.cs
type SetWindowPosFlags (line 3) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/ShellExecuteMasks.cs
type ShellExecuteMasks (line 3) | [Flags]
FILE: ScreenToGif.Model/Enums/Native/ShowWindowCommands.cs
type ShowWindowCommands (line 3) | public enum ShowWindowCommands
FILE: ScreenToGif.Model/Enums/Native/SpecialWindowHandles.cs
type SpecialWindowHandles (line 6) | public enum SpecialWindowHandles
FILE: ScreenToGif.Model/Enums/Native/SysCommands.cs
type SysCommands (line 3) | public enum SysCommands : uint
FILE: ScreenToGif.Model/Enums/Native/TimeResults.cs
type TimerResults (line 3) | public enum TimerResults : uint
FILE: ScreenToGif.Model/Enums/Native/WindowAttributes.cs
type WindowAttributes (line 3) | public enum WindowAttributes
FILE: ScreenToGif.Model/Enums/Native/WindowStyles.cs
type WindowStyles (line 3) | public enum WindowStyles : uint
FILE: ScreenToGif.Model/Enums/Native/WindowStylesEx.cs
type WindowStylesEx (line 6) | public enum WindowStylesEx : uint
FILE: ScreenToGif.Model/Enums/Native/WindowsMessages.cs
type WindowsMessages (line 3) | public enum WindowsMessages
FILE: ScreenToGif.Model/Enums/ObfuscationModes.cs
type ObfuscationModes (line 3) | public enum ObfuscationModes
FILE: ScreenToGif.Model/Enums/OverwriteModes.cs
type OverwriteModes (line 3) | public enum OverwriteModes
FILE: ScreenToGif.Model/Enums/PanelType.cs
type PanelTypes (line 7) | public enum PanelTypes
FILE: ScreenToGif.Model/Enums/PartialExportModes.cs
type PartialExportModes (line 3) | public enum PartialExportModes
FILE: ScreenToGif.Model/Enums/PasteBehaviors.cs
type PasteBehaviors (line 6) | public enum PasteBehaviors
FILE: ScreenToGif.Model/Enums/PredictionMethods.cs
type PredictionMethods (line 6) | public enum PredictionMethods
FILE: ScreenToGif.Model/Enums/ProgressTypes.cs
type ProgressTypes (line 6) | public enum ProgressTypes
FILE: ScreenToGif.Model/Enums/ProjectByType.cs
type ProjectByType (line 6) | public enum ProjectByType
FILE: ScreenToGif.Model/Enums/ProxyTypes.cs
type ProxyTypes (line 6) | public enum ProxyTypes
FILE: ScreenToGif.Model/Enums/RateUnits.cs
type RateUnits (line 5) | public enum RateUnits
FILE: ScreenToGif.Model/Enums/RecorderStages.cs
type RecorderStages (line 6) | [Flags]
FILE: ScreenToGif.Model/Enums/ReduceDelayModes.cs
type ReduceDelayModes (line 6) | public enum ReduceDelayModes
FILE: ScreenToGif.Model/Enums/ResizeDirection.cs
type ResizeDirection (line 6) | public enum ResizeDirection
FILE: ScreenToGif.Model/Enums/ScalingMethod.cs
type ScalingMethod (line 8) | public enum ScalingMethod
FILE: ScreenToGif.Model/Enums/SizeUnits.cs
type SizeUnits (line 3) | public enum SizeUnits
FILE: ScreenToGif.Model/Enums/SlideFromType.cs
type SlideFromType (line 6) | public enum SlideFromType
FILE: ScreenToGif.Model/Enums/SmoothLoopSelectionModes.cs
type SmoothLoopFromModes (line 3) | public enum SmoothLoopFromModes
FILE: ScreenToGif.Model/Enums/StatusReason.cs
type StatusReasons (line 3) | public enum StatusReasons : int
FILE: ScreenToGif.Model/Enums/StatusType.cs
type StatusType (line 3) | public enum StatusType : int
FILE: ScreenToGif.Model/Enums/SupportedFFmpegVersions.cs
type SupportedFFmpegVersions (line 3) | public enum SupportedFFmpegVersions
FILE: ScreenToGif.Model/Enums/TaskTypes.cs
type TaskTypes (line 3) | public enum TaskTypes
FILE: ScreenToGif.Model/Enums/UploadDestinations.cs
type UploadDestinations (line 6) | public enum UploadDestinations
FILE: ScreenToGif.Model/Enums/UploadService.cs
type UploadService (line 6) | public enum UploadService
FILE: ScreenToGif.Model/Enums/VideoCodecPresets.cs
type VideoCodecPresets (line 5) | [SuppressMessage("ReSharper", "InconsistentNaming")]
FILE: ScreenToGif.Model/Enums/VideoCodecs.cs
type VideoCodecs (line 5) | public enum VideoCodecs
FILE: ScreenToGif.Model/Enums/VideoPixelFormats.cs
type VideoPixelFormats (line 10) | [SuppressMessage("ReSharper", "InconsistentNaming")]
FILE: ScreenToGif.Model/Enums/VideoSettingsModes.cs
type VideoSettingsModes (line 3) | public enum VideoSettingsModes
FILE: ScreenToGif.Model/Enums/Vsyncs.cs
type Vsyncs (line 3) | public enum Vsyncs
FILE: ScreenToGif.Model/Events/CustomKeyEventArgs.cs
class CustomKeyEventArgs (line 8) | public class CustomKeyEventArgs : EventArgs
method CustomKeyEventArgs (line 18) | public CustomKeyEventArgs(Key key, bool isUppercase = false, bool isIn...
FILE: ScreenToGif.Model/Events/CustomKeyPressEventArgs.cs
class CustomKeyPressEventArgs (line 6) | public class CustomKeyPressEventArgs : EventArgs
method CustomKeyPressEventArgs (line 19) | public CustomKeyPressEventArgs(char keyChar)
FILE: ScreenToGif.Model/Events/ManipulatedEventArgs.cs
class ManipulatedEventArgs (line 7) | public class ManipulatedEventArgs : RoutedEventArgs
method ManipulatedEventArgs (line 19) | public ManipulatedEventArgs(RoutedEvent routedEvent, double angleDiffe...
method ManipulatedEventArgs (line 28) | public ManipulatedEventArgs(RoutedEvent routedEvent, double angleDiffe...
method ManipulatedEventArgs (line 33) | public ManipulatedEventArgs(RoutedEvent routedEvent, double widthDiffe...
FILE: ScreenToGif.Model/Events/SaveEventArgs.cs
class SaveEventArgs (line 5) | public class SaveEventArgs : RoutedEventArgs
method SaveEventArgs (line 7) | public SaveEventArgs(RoutedEvent routedEvent) : base(routedEvent)
FILE: ScreenToGif.Model/Events/ValidatedEventArgs.cs
class ValidatedEventArgs (line 8) | public class ValidatedEventArgs : RoutedEventArgs
method ValidatedEventArgs (line 17) | public ValidatedEventArgs(string messageKey, StatusReasons reason, Act...
method ValidatedEventArgs (line 24) | public ValidatedEventArgs(RoutedEvent routedEvent, string messageKey, ...
FILE: ScreenToGif.Model/Exceptions/GraphicsConfigurationException.cs
class GraphicsConfigurationException (line 3) | public class GraphicsConfigurationException : Exception
method GraphicsConfigurationException (line 5) | public GraphicsConfigurationException(string message, Exception except...
FILE: ScreenToGif.Model/Exceptions/SettingsPersistenceException.cs
class SettingsPersistenceException (line 5) | public sealed class SettingsPersistenceException : Exception
method SettingsPersistenceException (line 11) | public SettingsPersistenceException()
method SettingsPersistenceException (line 14) | public SettingsPersistenceException(ResourceDictionary resourceDiction...
FILE: ScreenToGif.Model/Exceptions/UploadException.cs
class UploadException (line 5) | public class UploadException : Exception
method UploadException (line 7) | public UploadException() : base("Uploading failed")
method UploadException (line 10) | public UploadException(string message) : base(message)
method UploadException (line 13) | public UploadException(string message, Exception innerException) : bas...
FILE: ScreenToGif.Model/Interfaces/IExportPreset.cs
type IExportPreset (line 5) | public interface IExportPreset : IPreset
FILE: ScreenToGif.Model/Interfaces/IFfmpegPreset.cs
type IFfmpegPreset (line 5) | public interface IFfmpegPreset
FILE: ScreenToGif.Model/Interfaces/IFrame.cs
type IFrame (line 7) | public interface IFrame
FILE: ScreenToGif.Model/Interfaces/IHistory.cs
type IHistory (line 6) | public interface IHistory
method GetLink (line 32) | public string GetLink(IPreset preset);
FILE: ScreenToGif.Model/Interfaces/IKeyGesture.cs
type IKeyGesture (line 5) | public interface IKeyGesture
FILE: ScreenToGif.Model/Interfaces/IPanel.cs
type IPanel (line 3) | public interface IPanel
method IsValid (line 5) | Task<bool> IsValid();
FILE: ScreenToGif.Model/Interfaces/IPersistent.cs
type IPersistent (line 3) | public interface IPersistent
method Persist (line 5) | void Persist();
FILE: ScreenToGif.Model/Interfaces/IPreset.cs
type IPreset (line 5) | public interface IPreset
method IsValid (line 11) | Task<ValidatedEventArgs> IsValid();
FILE: ScreenToGif.Model/Interfaces/IUploadPreset.cs
type IUploadPreset (line 7) | public interface IUploadPreset : IPreset
FILE: ScreenToGif.Model/Interfaces/IUploader.cs
type IUploader (line 3) | public interface IUploader
method UploadFileAsync (line 13) | Task<IHistory> UploadFileAsync(IUploadPreset preset, string path, Canc...
FILE: ScreenToGif.Model/Models/DetectedRegion.cs
class DetectedRegion (line 5) | public class DetectedRegion
method DetectedRegion (line 18) | public DetectedRegion(IntPtr handle, Rect bounds, string name, int ord...
FILE: ScreenToGif.Model/Models/ExportFrame.cs
class ExportFrame (line 5) | public class ExportFrame
FILE: ScreenToGif.Model/Models/ExportProject.cs
class ExportProject (line 5) | public class ExportProject
FILE: ScreenToGif.Model/Models/FosshubItem.cs
class FosshubItem (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/FosshubRelease.cs
class FosshubRelease (line 8) | [DataContract]
FILE: ScreenToGif.Model/Models/FosshubResponse.cs
class FosshubResponse (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Frame.cs
class Frame (line 8) | public class Frame : IFrame
FILE: ScreenToGif.Model/Models/GitHub/GitHubAsset.cs
class GitHubAsset (line 5) | public class GitHubAsset
FILE: ScreenToGif.Model/Models/GitHub/GitHubRelease.cs
class GitHubRelease (line 5) | public class GitHubRelease
FILE: ScreenToGif.Model/Models/GitHub/GitHubUser.cs
class GitHubUser (line 5) | public class GitHubUser
FILE: ScreenToGif.Model/Models/MediaSource.cs
class MediaSource (line 5) | [DebuggerDisplay("Resolution = {Width}x{Height}, Framerate: {Framerate},...
FILE: ScreenToGif.Model/Models/Native/Monitor.cs
class Monitor (line 5) | public class Monitor
FILE: ScreenToGif.Model/Models/Native/NativeRect.cs
type NativeRect (line 6) | [StructLayout(LayoutKind.Sequential)]
method ToRectangle (line 14) | public Int32Rect ToRectangle()
method ToRect (line 19) | public Rect ToRect(double offset = 0, double scale = 1d)
method TryToRect (line 24) | public Rect TryToRect(double offset = 0, double scale = 1d)
method IsValid (line 37) | public bool IsValid()
FILE: ScreenToGif.Model/Models/Project/Project.cs
class Project (line 5) | public class Project
FILE: ScreenToGif.Model/Models/Project/Sequence.cs
class Sequence (line 6) | public class Sequence
type Types (line 8) | public enum Types : int
FILE: ScreenToGif.Model/Models/Project/Sequences/BrushSequence.cs
class BrushSequence (line 5) | public class BrushSequence : SizeableSequence
method BrushSequence (line 10) | public BrushSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/CursorSequence.cs
class CursorSequence (line 5) | public class CursorSequence : SizeableSequence
method CursorSequence (line 10) | public CursorSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/DrawingSequence.cs
class DrawingSequence (line 5) | public class DrawingSequence : Sequence
method DrawingSequence (line 10) | public DrawingSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/KeySequence.cs
class KeySequence (line 8) | public class KeySequence : SizeableSequence
method KeySequence (line 13) | public KeySequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/ObfuscationSequence.cs
class ObfuscationSequence (line 3) | public class ObfuscationSequence : SizeableSequence
type Modes (line 5) | public enum Modes : int
method ObfuscationSequence (line 16) | public ObfuscationSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/ProgressSequence.cs
class ProgressSequence (line 3) | public class ProgressSequence : SizeableSequence
type Modes (line 5) | public enum Modes : int
method ProgressSequence (line 18) | public ProgressSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/RasterSequence.cs
class RasterSequence (line 5) | public class RasterSequence : SizeableSequence
method RasterSequence (line 22) | public RasterSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/ShapeSequence.cs
class ShapeSequence (line 5) | public class ShapeSequence : SizeableSequence
method ShapeSequence (line 10) | public ShapeSequence()
FILE: ScreenToGif.Model/Models/Project/Sequences/SizeableSequence.cs
class SizeableSequence (line 6) | public class SizeableSequence : Sequence
FILE: ScreenToGif.Model/Models/Project/Sequences/SubSequences/CursorEvent.cs
class CursorEvent (line 3) | public class CursorEvent
FILE: ScreenToGif.Model/Models/Project/Sequences/SubSequences/Frame.cs
class Frame (line 3) | public class Frame
FILE: ScreenToGif.Model/Models/Project/Sequences/SubSequences/KeyEvent.cs
class KeyEvent (line 5) | public class KeyEvent
FILE: ScreenToGif.Model/Models/Project/Sequences/SubSequences/Shadow.cs
class Shadow (line 5) | public class Shadow
FILE: ScreenToGif.Model/Models/Project/Sequences/TextSequence.cs
class TextSequence (line 6) | public class TextSequence : SizeableSequence
method TextSequence (line 25) | public TextSequence()
FILE: ScreenToGif.Model/Models/Project/Track.cs
class Track (line 3) | public class Track
FILE: ScreenToGif.Model/Models/Property.cs
class Property (line 3) | public class Property
method ToString (line 18) | public override string ToString()
FILE: ScreenToGif.Model/Models/SimpleMouseGesture.cs
class SimpleMouseGesture (line 10) | [DataContract]
method SimpleMouseGesture (line 110) | public SimpleMouseGesture(NativeMouseEvents eventType, int x, int y, M...
FILE: ScreenToGif.Model/Models/Upload/Imgur/ImgurAlbum.cs
class ImgurAlbumData (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/Imgur/ImgurAlbumsResponse.cs
class ImgurAlbumsResponse (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/Imgur/ImgurImage.cs
class ImgurImageData (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/Imgur/ImgurUploadResponse.cs
class ImgurUploadResponse (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/OAuth2Token.cs
class OAuth2Token (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/YandexDisk/Error.cs
class ErrorDescriptor (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/Upload/YandexDisk/Link.cs
class Link (line 5) | [DataContract]
FILE: ScreenToGif.Model/Models/VideoSource.cs
class VideoSource (line 5) | [DebuggerDisplay("Name = {Name}, MediaSources: {MediaSources.Count}")]
FILE: ScreenToGif.Model/Structs/GifskiSettings.cs
type GifskiSettings (line 5) | [StructLayout(LayoutKind.Sequential)]
method GifskiSettings (line 8) | public GifskiSettings(uint width, uint height, byte quality, bool fast...
FILE: ScreenToGif.Model/ViewModels/BaseViewModel.cs
class BaseViewModel (line 6) | public class BaseViewModel : BindableBase
method FindCommand (line 41) | protected internal RoutedUICommand FindCommand(string key)
FILE: ScreenToGif.Model/ViewModels/BindableBase.cs
class BindableBase (line 10) | public abstract class BindableBase : INotifyPropertyChanged
method SetProperty (line 33) | protected bool SetProperty<T>(ref T storage, T value, [CallerMemberNam...
method OnPropertyChanged (line 51) | protected void OnPropertyChanged([CallerMemberName] string propertyNam...
FILE: ScreenToGif.Native/Constants.cs
class Constants (line 5) | public static class Constants
FILE: ScreenToGif.Native/Delegates.cs
class Delegates (line 3) | public static class Delegates
FILE: ScreenToGif.Native/External/DwmApi.cs
class DwmApi (line 8) | public static class DwmApi
method DwmGetWindowAttribute (line 10) | [DllImport(Constants.DwmApi)]
method DwmGetWindowAttribute (line 13) | [DllImport(Constants.DwmApi)]
method DwmSetWindowAttribute (line 16) | [DllImport(Constants.DwmApi, PreserveSig = true)]
method DwmExtendFrameIntoClientArea (line 19) | [DllImport(Constants.DwmApi, PreserveSig = false)]
method DwmIsCompositionEnabled (line 22) | [DllImport(Constants.DwmApi, PreserveSig = false)]
FILE: ScreenToGif.Native/External/Gdi32.cs
class Gdi32 (line 7) | public static class Gdi32
method CreateCompatibleDC (line 18) | [DllImport(Constants.Gdi32, EntryPoint = "CreateCompatibleDC", SetLast...
method SelectObject (line 36) | [DllImport(Constants.Gdi32, EntryPoint = "SelectObject")]
method BitBlt (line 56) | [DllImport(Constants.Gdi32, EntryPoint = "BitBlt", SetLastError = true)]
method StretchBlt (line 60) | [DllImport(Constants.Gdi32, EntryPoint = "StretchBlt", SetLastError = ...
method CreateDIBSection (line 74) | [DllImport(Constants.Gdi32)]
method GetDIBits (line 91) | [DllImport(Constants.Gdi32, EntryPoint = "GetDIBits")]
method DeleteDC (line 98) | [DllImport(Constants.Gdi32, EntryPoint = "DeleteDC")]
method GetObject (line 101) | [DllImport(Constants.Gdi32)]
method DeleteObject (line 114) | [DllImport(Constants.Gdi32, EntryPoint = "DeleteObject")]
method CreateCompatibleBitmap (line 118) | [DllImport(Constants.Gdi32)]
method GetDeviceCaps (line 121) | [DllImport(Constants.Gdi32)]
method PatBlt (line 124) | [DllImport(Constants.Gdi32)]
method GetCurrentPositionEx (line 127) | [DllImport(Constants.Gdi32)]
method GetWindowOrgEx (line 130) | [DllImport(Constants.Gdi32)]
FILE: ScreenToGif.Native/External/Kernel32.cs
class Kernel32 (line 6) | public static class Kernel32
method GetProcessId (line 8) | [DllImport(Constants.Kernel32)]
method GlobalMemoryStatusEx (line 11) | [DllImport(Constants.Kernel32, CharSet = CharSet.Auto, SetLastError = ...
method LocalAlloc (line 15) | [DllImport(Constants.Kernel32)]
method LocalFree (line 18) | [DllImport(Constants.Kernel32, SetLastError = true)]
method LoadLibrary (line 21) | [DllImport(Constants.Kernel32)]
method FreeLibrary (line 24) | [DllImport(Constants.Kernel32, SetLastError = true)]
method GetProcAddress (line 28) | [DllImport(Constants.Kernel32)]
method SetDefaultDllDirectories (line 34) | [DllImport("kernel32.dll", SetLastError = true)]
method SetDllDirectory (line 37) | [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unic...
method LoadLibraryEx (line 40) | [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unic...
FILE: ScreenToGif.Native/External/MsvCrt.cs
class MsvCrt (line 5) | internal static class MsvCrt
method MemoryCopy (line 7) | [DllImport(Constants.MsvCrt, EntryPoint = "memcpy", CallingConvention ...
FILE: ScreenToGif.Native/External/NtDll.cs
class NtDll (line 5) | public static class NtDll
method QueryTimerResolution (line 7) | [DllImport(Constants.NtDll, EntryPoint = "NtQueryTimerResolution", Set...
FILE: ScreenToGif.Native/External/ShCore.cs
class ShCore (line 6) | public static class ShCore
method GetDpiForMonitor (line 16) | [DllImport("Shcore.dll")]
FILE: ScreenToGif.Native/External/Shell32.cs
class Shell32 (line 7) | public static class Shell32
method ShellExecuteEx (line 27) | [DllImport(Constants.Shell32, CharSet = CharSet.Auto)]
method Shell_NotifyIcon (line 33) | [DllImport(Constants.Shell32, CharSet = CharSet.Unicode)]
FILE: ScreenToGif.Native/External/User32.cs
class User32 (line 11) | public static class User32
method ClientToScreen (line 13) | [DllImport(Constants.User32)]
method GetCursorPos (line 19) | [DllImport(Constants.User32)]
method SetCursorPos (line 23) | [DllImport(Constants.User32)]
method GetPhysicalCursorPos (line 30) | [DllImport(Constants.User32, SetLastError = true)]
method GetCursorInfo (line 33) | [DllImport(Constants.User32, EntryPoint = "GetCursorInfo")]
method CopyIcon (line 36) | [DllImport(Constants.User32, EntryPoint = "CopyIcon")]
method DestroyIcon (line 39) | [DllImport(Constants.User32, SetLastError = true)]
method GetIconInfo (line 42) | [DllImport(Constants.User32, EntryPoint = "GetIconInfo")]
method DrawIconEx (line 45) | [DllImport(Constants.User32, SetLastError = true)]
method GetCursorFrameInfo (line 48) | [DllImport(Constants.User32, SetLastError = true)]
method GetDesktopWindow (line 51) | [DllImport(Constants.User32, SetLastError = false)]
method GetWindowDC (line 54) | [DllImport(Constants.User32)]
method ReleaseDC (line 63) | [DllImport(Constants.User32)]
method WindowFromPoint (line 66) | [DllImport(Constants.User32)]
method GetWindowRect (line 69) | [DllImport(Constants.User32, SetLastError = true)]
method GetClientRect (line 72) | [DllImport(Constants.User32)]
method GetWindowPlacement (line 93) | [DllImport(Constants.User32, SetLastError = true)]
method GetWindowThreadProcessId (line 97) | [DllImport(Constants.User32, SetLastError = true)]
method OffsetRect (line 100) | [DllImport(Constants.User32)]
method MonitorFromWindow (line 103) | [DllImport(Constants.User32)]
method MonitorFromPoint (line 106) | [DllImport(Constants.User32, SetLastError = true)]
method GetMonitorInfo (line 109) | [DllImport(Constants.User32, CharSet = CharSet.Auto)]
method EnumDisplayMonitors (line 113) | [DllImport(Constants.User32, ExactSpelling = true)]
method SendMessage (line 117) | [DllImport(Constants.User32, CharSet = CharSet.Auto)]
method EnumWindows (line 156) | [DllImport(Constants.User32)]
method EnumDesktopWindows (line 160) | [DllImport(Constants.User32)]
method IsWindowVisible (line 183) | [DllImport(Constants.User32)]
method GetShellWindow (line 198) | [DllImport(Constants.User32)]
method ToUnicode (line 201) | [DllImport(Constants.User32)]
method MapVirtualKey (line 204) | [DllImport(Constants.User32)]
method GetWindowText (line 248) | [DllImport(Constants.User32, CharSet = CharSet.Auto, SetLastError = tr...
method GetWindowTextLength (line 281) | [DllImport(Constants.User32, SetLastError = true, CharSet = CharSet.Au...
method IsIconic (line 284) | [DllImport(Constants.User32)]
method GetWindowLongPtr32 (line 288) | [DllImport(Constants.User32, EntryPoint = "GetWindowLong")]
method GetWindowLongPtr64 (line 291) | [DllImport(Constants.User32, EntryPoint = "GetWindowLongPtr")]
method GetWindowLong (line 294) | [DllImport(Constants.User32)]
method SetWindowLong (line 297) | [DllImport(Constants.User32)]
method GetAncestor (line 307) | [DllImport(Constants.User32, ExactSpelling = true)]
method GetLastActivePopup (line 310) | [DllImport(Constants.User32)]
method GetWindowInfo (line 313) | [return: MarshalAs(UnmanagedType.Bool)]
method GetTitleBarInfo (line 317) | [DllImport(Constants.User32, CharSet = CharSet.Unicode, ExactSpelling ...
method GetClassName (line 320) | [DllImport(Constants.User32, SetLastError = true, CharSet = CharSet.Au...
method GetWindow (line 337) | [DllImport(Constants.User32, SetLastError = true)]
method CreateWindowEx (line 341) | [DllImport(Constants.User32, EntryPoint = "CreateWindowExW", SetLastEr...
method DefWindowProc (line 348) | [DllImport(Constants.User32)]
method RegisterClass (line 354) | [DllImport(Constants.User32, EntryPoint = "RegisterClassW", SetLastErr...
method RegisterWindowMessage (line 362) | [DllImport(Constants.User32, EntryPoint = "RegisterWindowMessageW")]
method DestroyWindow (line 365) | [DllImport(Constants.User32, SetLastError = true)]
method SetForegroundWindow (line 373) | [DllImport(Constants.User32)]
method ShowWindow (line 376) | [DllImport(Constants.User32)]
method GetDoubleClickTime (line 388) | [DllImport(Constants.User32, CharSet = CharSet.Auto, ExactSpelling = t...
method EnumDisplayDevices (line 391) | [DllImport(Constants.User32, CharSet = CharSet.Auto)]
method SetWindowPos (line 394) | [DllImport(Constants.User32, SetLastError = true)]
method SetWindowsHookEx (line 427) | [DllImport(Constants.User32, CharSet = CharSet.Auto, CallingConvention...
method UnhookWindowsHookEx (line 443) | [DllImport(Constants.User32, CharSet = CharSet.Auto, CallingConvention...
method CallNextHookEx (line 471) | [DllImport(Constants.User32, CharSet = CharSet.Auto, CallingConvention...
method ToAscii (line 512) | [DllImport(Constants.User32)]
method GetKeyboardState (line 529) | [DllImport(Constants.User32)]
method GetKeyState (line 532) | [DllImport(Constants.User32, CharSet = CharSet.Auto, CallingConvention...
method RegisterHotKey (line 535) | [DllImport(Constants.User32, SetLastError = true)]
method UnregisterHotKey (line 538) | [DllImport(Constants.User32, SetLastError = true)]
method EnableMenuItem (line 541) | [DllImport(Constants.User32, SetLastError = true)]
method GetSystemMenu (line 544) | [DllImport(Constants.User32)]
FILE: ScreenToGif.Native/External/WinMm.cs
class WinMm (line 6) | public static class WinMm
method GetDevCaps (line 8) | [DllImport(Constants.WinMm, EntryPoint = "timeGetDevCaps", SetLastErro...
method BeginPeriod (line 11) | [DllImport(Constants.WinMm, EntryPoint = "timeBeginPeriod")]
method GetTime (line 14) | [DllImport(Constants.WinMm, EntryPoint = "timeGetTime")]
method EndPeriod (line 17) | [DllImport(Constants.WinMm, EntryPoint = "timeEndPeriod")]
FILE: ScreenToGif.Native/Helpers/DllSecurity.cs
class DllSecurity (line 5) | public static class DllSecurity
method HardenDllSearchPath (line 7) | public static void HardenDllSearchPath()
FILE: ScreenToGif.Native/Helpers/FunctionLoader.cs
class FunctionLoader (line 9) | public static class FunctionLoader
method LoadFunction (line 13) | public static T LoadFunction<T>(string dllPath, string functionName) w...
method TryLoadFunction (line 33) | public static T? TryLoadFunction<T>(string dllPath, string functionNam...
method UnloadLibrary (line 53) | public static void UnloadLibrary(string dllPath)
FILE: ScreenToGif.Native/Helpers/HotKey.cs
class HotKey (line 8) | public class HotKey : IDisposable
method HotKey (line 29) | public HotKey(ModifierKeys modifier, Key key, IntPtr windowsHandle, Ac...
method HotKey (line 46) | public HotKey(ModifierKeys modifier, Key key, Action callback, bool un...
method GetHashCode (line 66) | public sealed override int GetHashCode()
method ConvertWinformsToWpfKey (line 74) | private static Keys ConvertWinformsToWpfKey(Key inputKey)
method ThreadPreprocessMessageMethod (line 86) | [DebuggerStepThrough]
method Dispose (line 97) | public void Dispose()
FILE: ScreenToGif.Native/Helpers/Other.cs
class Other (line 9) | public class Other
method DrawFrame (line 16) | public static void DrawFrame(IntPtr hWnd, double scale)
method ShowFileProperties (line 40) | public static bool ShowFileProperties(string filename)
FILE: ScreenToGif.Native/Helpers/TimerResolution.cs
class TimerResolution (line 13) | public class TimerResolution : IDisposable
method TimerResolution (line 46) | public TimerResolution(int targetResolution)
method Dispose (line 68) | public void Dispose()
FILE: ScreenToGif.Native/Helpers/WindowMessageSink.cs
class WindowMessageSink (line 8) | public class WindowMessageSink : IDisposable
method WindowMessageSink (line 73) | public WindowMessageSink()
method DoubleClick_Tick (line 81) | private void DoubleClick_Tick(object sender, EventArgs e)
method CreateMessageWindow (line 105) | private void CreateMessageWindow()
method OnWindowMessageReceived (line 140) | private IntPtr OnWindowMessageReceived(IntPtr hwnd, uint messageId, In...
method ProcessWindowMessage (line 162) | private void ProcessWindowMessage(uint msg, IntPtr wParam, IntPtr lParam)
method Dispose (line 237) | public void Dispose()
method Dispose (line 244) | private void Dispose(bool disposing)
FILE: ScreenToGif.Native/Structs/Bitmap.cs
type Bitmap (line 8) | [Serializable]
FILE: ScreenToGif.Native/Structs/BitmapFileHeader.cs
type BitmapFileHeader (line 5) | [StructLayout(LayoutKind.Sequential, Pack = 2)]
FILE: ScreenToGif.Native/Structs/BitmapInfoHeader.cs
type BitmapInfoHeader (line 6) | [StructLayout(LayoutKind.Sequential)]
method Init (line 21) | public BitmapInfoHeader Init()
FILE: ScreenToGif.Native/Structs/CursorInfo.cs
type CursorInfo (line 5) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/IconInfo.cs
type Iconinfo (line 5) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/KeyboardHook.cs
class KeyboardHook (line 11) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/Margins.cs
type Margins (line 5) | public struct Margins
method Margins (line 7) | public Margins(Thickness t)
FILE: ScreenToGif.Native/Structs/MemoryStatusEx.cs
type MemoryStatusEx (line 5) | public struct MemoryStatusEx
method MemoryStatusEx (line 17) | public MemoryStatusEx(bool? filler) : this()
FILE: ScreenToGif.Native/Structs/MinMaxInfo.cs
type MinMaxInfo (line 9) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/MonitorInfoEx.cs
class MonitorInfoEx (line 6) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)]
FILE: ScreenToGif.Native/Structs/MouseHook.cs
class MouseHook (line 11) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/NotifyIconData.cs
type NotifyIconData (line 12) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
method CreateDefault (line 113) | public static NotifyIconData CreateDefault(IntPtr handle)
FILE: ScreenToGif.Native/Structs/PointW.cs
type PointW (line 5) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/ShellExecuteInfo.cs
type ShellExecuteInfo (line 5) | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
FILE: ScreenToGif.Native/Structs/TimeCaps.cs
type TimeCaps (line 5) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/TitlebarInfo.cs
type TitlebarInfo (line 6) | [StructLayout(LayoutKind.Sequential)]
method TitlebarInfo (line 26) | public TitlebarInfo(bool? filler) : this()
FILE: ScreenToGif.Native/Structs/WindowClass.cs
type WindowClass (line 9) | [StructLayout(LayoutKind.Sequential)]
FILE: ScreenToGif.Native/Structs/WindowInfo.cs
type WindowInfo (line 6) | [StructLayout(LayoutKind.Sequential)]
method WindowInfo (line 63) | public WindowInfo(bool? filler) : this()
FILE: ScreenToGif.Native/Structs/WindowPlacement.cs
type WindowPlacement (line 11) | [Serializable]
FILE: ScreenToGif.Test/A11Y/ThemeContrastTests.cs
class ThemeContrastTests (line 12) | public class ThemeContrastTests
method DynamicColorPairs (line 25) | private static IEnumerable<(string theme, string fg, string bg, double...
method ContrastTestCases (line 50) | public static IEnumerable<object[]> ContrastTestCases()
method ThemeContrastShouldMeetWCAG (line 66) | [Theory]
method LoadTheme (line 79) | private static ResourceDictionary LoadTheme(string fileName)
class WCAGContrast (line 88) | public static class WCAGContrast
method CheckContrast (line 96) | public static double CheckContrast(Color fg, Color bg)
method GetLuminance (line 114) | private static double GetLuminance(Color c)
FILE: ScreenToGif.Test/Facts/ImageComparison.cs
class ImageComparison (line 6) | public class ImageComparison
method CanCalculateDifference (line 8) | [Fact]
FILE: ScreenToGif.Test/Facts/YandexUpload.cs
class YandexUpload (line 13) | public class YandexUpload
method CanUploadFile (line 15) | [Fact]
method ThrowExceptionWhenUploadFileWithInvalidToken (line 38) | [Fact]
FILE: ScreenToGif.Test/Util/HttpHelper.cs
class HttpHelper (line 6) | internal static class HttpHelper
method HttpDownloadFileAsync (line 8) | static public async Task<string> HttpDownloadFileAsync(string url)
FILE: ScreenToGif.Util/Arguments.cs
class Arguments (line 12) | public static class Arguments
method Prepare (line 85) | public static void Prepare(string[] args)
method ClearAutomationArgs (line 305) | public static void ClearAutomationArgs()
method ParseFramerate (line 317) | private static void ParseFramerate(string frequency)
method ParseFramerate (line 347) | private static void ParseFramerate(string frequency, CaptureFrequencie...
FILE: ScreenToGif.Util/BitHelper.cs
class BitHelper (line 3) | public static class BitHelper
method ConvertEndian (line 8) | public static byte[] ConvertEndian(byte[] i)
method ConvertEndian (line 21) | public static int ConvertEndian(int i)
method ConvertEndian (line 29) | public static uint ConvertEndian(uint i)
method ConvertEndian (line 37) | public static short ConvertEndian(short i)
method ConvertEndian (line 45) | public static ushort ConvertEndian(ushort i)
method ConvertEndian (line 53) | public static long ConvertEndian(long i)
method ConvertEndian (line 61) | public static long ConvertEndian(double i)
method IsBytesEqual (line 71) | public static bool IsBytesEqual(byte[] byte1, byte[] byte2)
FILE: ScreenToGif.Util/Codification/Apng/Apng.cs
class Apng (line 17) | public class Apng : IDisposable
type DisposeOps (line 19) | public enum DisposeOps
type BlendOps (line 26) | public enum BlendOps
method Apng (line 82) | public Apng(Stream stream, int frameCount, int repeatCount)
method Apng (line 89) | public Apng(Stream stream)
method AddFrame (line 94) | public void AddFrame(string path, Int32Rect rect, int delay = 66)
method GetData (line 164) | private static IEnumerable<byte[]> GetData(Stream ms)
method ReadFrames (line 188) | public bool ReadFrames()
method GetFrame (line 232) | public ApngFrame GetFrame(int index)
method MakeFrame (line 348) | public static BitmapSource MakeFrame(System.Drawing.Size fullSize, Bit...
method IsFullFrame (line 372) | public static bool IsFullFrame(ApngFrame metadata, System.Drawing.Size...
method ClearArea (line 377) | public static BitmapSource ClearArea(BitmapSource frame, ApngFrame met...
method Dispose (line 399) | public void Dispose()
FILE: ScreenToGif.Util/Codification/Apng/Chunks/ActlChunk.cs
class ActlChunk (line 9) | public class ActlChunk : Chunk
method Read (line 18) | internal static ActlChunk Read(Stream stream)
method Write (line 42) | internal new void Write(Stream stream)
FILE: ScreenToGif.Util/Codification/Apng/Chunks/ApngFrame.cs
class ApngFrame (line 6) | public class ApngFrame
FILE: ScreenToGif.Util/Codification/Apng/Chunks/Chunk.cs
class Chunk (line 9) | public class Chunk
method Read (line 36) | internal static Chunk Read(Stream stream, int sequence)
method Write (line 52) | internal void Write(Stream stream)
FILE: ScreenToGif.Util/Codification/Apng/Chunks/FctlChunk.cs
class FctlChunk (line 8) | internal class FctlChunk : Chunk
method Read (line 59) | internal static FctlChunk Read(uint length, byte[] array)
FILE: ScreenToGif.Util/Codification/Apng/Chunks/FdatChunk.cs
class FdatChunk (line 9) | internal class FdatChunk : Chunk
method Read (line 24) | internal static FdatChunk Read(uint length, byte[] array)
method Write (line 42) | internal void Write(Stream stream, bool writeAsIdat = true)
FILE: ScreenToGif.Util/Codification/Apng/Chunks/IdatChunk.cs
class IdatChunk (line 9) | internal class IdatChunk : Chunk
method Read (line 19) | internal static IdatChunk Read(uint length, byte[] array)
method Write (line 36) | internal new void Write(Stream stream)
FILE: ScreenToGif.Util/Codification/Apng/Chunks/IhdrChunk.cs
class IhdrChunk (line 9) | public class IhdrChunk : Chunk
method Read (line 28) | internal static IhdrChunk Read(Stream stream)
method Write (line 60) | internal void Write(Stream stream, uint? width = null, uint? height = ...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifApplicationExtension.cs
class GifApplicationExtension (line 6) | public class GifApplicationExtension : GifExtension
method GifApplicationExtension (line 18) | private GifApplicationExtension(){ }
method ReadApplication (line 23) | public static GifApplicationExtension ReadApplication(Stream stream)
method Read (line 30) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifBlock.cs
class GifBlock (line 5) | public abstract class GifBlock
method ReadBlock (line 7) | public static GifBlock ReadBlock(Stream stream, IEnumerable<GifExtensi...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifBlockKind.cs
type GifBlockKind (line 3) | public enum GifBlockKind
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifColor.cs
type GifColor (line 3) | public struct GifColor
method GifColor (line 9) | public GifColor(byte r, byte g, byte b)
method ToString (line 20) | public override string ToString()
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifCommentExtension.cs
class GifCommentExtension (line 6) | public class GifCommentExtension : GifExtension
method GifCommentExtension (line 12) | private GifCommentExtension()
method ReadComment (line 17) | public static GifCommentExtension ReadComment(Stream stream)
method Read (line 24) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifDecoderException.cs
class GifDecoderException (line 3) | [Serializable]
method GifDecoderException (line 6) | public GifDecoderException() { }
method GifDecoderException (line 8) | public GifDecoderException(string message) : base(message) { }
method GifDecoderException (line 10) | public GifDecoderException(string message, Exception inner) : base(mes...
method GifDecoderException (line 12) | public GifDecoderException(System.Runtime.Serialization.SerializationI...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifExtension.cs
class GifExtension (line 5) | public abstract class GifExtension : GifBlock
method ReadExtension (line 9) | public static GifExtension ReadExtension(Stream stream, IEnumerable<Gi...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifFile.cs
type FrameDisposalMethod (line 5) | public enum FrameDisposalMethod
class FrameMetadata (line 13) | public class FrameMetadata
class GifFile (line 23) | public class GifFile
method GifFile (line 31) | private GifFile()
method ReadGifFile (line 34) | public static GifFile ReadGifFile(Stream stream, bool metadataOnly)
method Read (line 41) | private void Read(Stream stream, bool metadataOnly)
method ReadFrames (line 55) | private void ReadFrames(Stream stream, bool metadataOnly)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifFrame.cs
class GifFrame (line 5) | public class GifFrame : GifBlock
method GifFrame (line 14) | private GifFrame()
method ReadFrame (line 19) | public static GifFrame ReadFrame(Stream stream, IEnumerable<GifExtensi...
method Read (line 28) | private void Read(Stream stream, IEnumerable<GifExtension> controlExte...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifGraphicControlExtension.cs
class GifGraphicControlExtension (line 6) | public class GifGraphicControlExtension : GifExtension
method GifGraphicControlExtension (line 17) | private GifGraphicControlExtension()
method ReadGraphicsControl (line 22) | public static GifGraphicControlExtension ReadGraphicsControl(Stream st...
method Read (line 29) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifHeader.cs
class GifHeader (line 5) | public class GifHeader : GifBlock
method GifHeader (line 11) | private GifHeader()
method ReadHeader (line 16) | public static GifHeader ReadHeader(Stream stream)
method Read (line 23) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifHelpers.cs
class GifHelpers (line 6) | public static class GifHelpers
method ReadString (line 8) | public static string ReadString(Stream stream, int length)
method ReadDataBlocks (line 15) | public static byte[] ReadDataBlocks(Stream stream, bool discard)
method ReadColorTable (line 35) | public static GifColor[] ReadColorTable(Stream stream, int size)
method IsNetscapeExtension (line 53) | public static bool IsNetscapeExtension(GifApplicationExtension ext)
method GetRepeatCount (line 58) | public static ushort GetRepeatCount(GifApplicationExtension ext)
method UnexpectedEndOfStreamException (line 66) | public static Exception UnexpectedEndOfStreamException()
method UnknownBlockTypeException (line 71) | public static Exception UnknownBlockTypeException(int blockId)
method UnknownExtensionTypeException (line 76) | public static Exception UnknownExtensionTypeException(int extensionLabel)
method InvalidBlockSizeException (line 81) | public static Exception InvalidBlockSizeException(string blockName, in...
method InvalidSignatureException (line 86) | public static Exception InvalidSignatureException(string signature)
method UnsupportedVersionException (line 91) | public static Exception UnsupportedVersionException(string version)
method ReadAll (line 96) | public static void ReadAll(this Stream stream, byte[] buffer, int offs...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifImageData.cs
class GifImageData (line 5) | public class GifImageData
method GifImageData (line 10) | private GifImageData()
method ReadImageData (line 13) | internal static GifImageData ReadImageData(Stream stream, bool metadat...
method Read (line 20) | private void Read(Stream stream, bool metadataOnly)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifImageDescriptor.cs
class GifImageDescriptor (line 5) | public class GifImageDescriptor
method GifImageDescriptor (line 16) | private GifImageDescriptor()
method ReadImageDescriptor (line 19) | public static GifImageDescriptor ReadImageDescriptor(Stream stream)
method Read (line 26) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifLogicalScreenDescriptor.cs
class GifLogicalScreenDescriptor (line 5) | public class GifLogicalScreenDescriptor
method ReadLogicalScreenDescriptor (line 24) | internal static GifLogicalScreenDescriptor ReadLogicalScreenDescriptor...
method Read (line 31) | private void Read(Stream stream)
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifPlainTextExtension.cs
class GifPlainTextExtension (line 7) | public class GifPlainTextExtension : GifExtension
method GifPlainTextExtension (line 24) | private GifPlainTextExtension()
method ReadPlainText (line 29) | public static GifPlainTextExtension ReadPlainText(Stream stream, IEnum...
method Read (line 36) | private void Read(Stream stream, IEnumerable<GifExtension> controlExte...
FILE: ScreenToGif.Util/Codification/Gif/Decoder/GifTrailer.cs
class GifTrailer (line 3) | public class GifTrailer : GifBlock
method GifTrailer (line 7) | private GifTrailer()
method ReadTrailer (line 12) | internal static GifTrailer ReadTrailer()
FILE: ScreenToGif.Util/Codification/Gif/Encoder/BitEncoder.cs
class BitEncoder (line 3) | internal class BitEncoder
method BitEncoder (line 24) | internal BitEncoder(int initBit = 8)
method Add (line 33) | internal void Add(int inByte)
method End (line 56) | internal void End()
FILE: ScreenToGif.Util/Codification/Gif/Encoder/GifFile.cs
class GifFile (line 13) | public class GifFile : IDisposable
method GifFile (line 102) | public GifFile(Stream stream)
method AddFrame (line 110) | public void AddFrame(byte[] pixels, Int32Rect rect, int delay = 66, bo...
method WriteLogicalScreenDescriptor (line 146) | private void WriteLogicalScreenDescriptor(Int32Rect rect)
method WritePalette (line 183) | private void WritePalette()
method WriteApplicationExtension (line 202) | private void WriteApplicationExtension()
method WriteGraphicControlExtension (line 215) | private void WriteGraphicControlExtension(int delay, bool isLastFrame)
method WriteImageDescriptor (line 303) | private void WriteImageDescriptor(Int32Rect rect)
method WriteImage (line 345) | private void WriteImage()
method ReadPixels (line 367) | private void ReadPixels(byte[] pixels)
method WriteByte (line 508) | private void WriteByte(int value)
method WriteShort (line 518) | private void WriteShort(int value)
method WriteString (line 526) | private void WriteString(string value)
method WriteComment (line 535) | private void WriteComment(string comment)
method ConvertToByte (line 552) | private byte ConvertToByte(BitArray bits)
method CalculateColorTableSize (line 563) | private void CalculateColorTableSize()
method GetMaximumColorCount (line 588) | private int GetMaximumColorCount()
method FindTransparentColorIndex (line 594) | private int FindTransparentColorIndex()
method ToBitValues (line 610) | private bool[] ToBitValues(int number)
method Dispose (line 617) | public void Dispose()
FILE: ScreenToGif.Util/Codification/Gif/Encoder/LZWEncoder.cs
class LzwEncoder (line 5) | internal class LzwEncoder
method LzwEncoder (line 19) | public LzwEncoder(byte[] indexedPixel, int colorDepth)
method Encode (line 26) | public void Encode(Stream internalStream)
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/GrayscaleQuantizer.cs
class GrayscaleQuantizer (line 6) | public class GrayscaleQuantizer : PaletteQuantizer
method GrayscaleQuantizer (line 14) | public GrayscaleQuantizer(Color? transparent = null, int maxColors = 2...
method QuantizePixel (line 38) | protected override byte QuantizePixel(Color pixel)
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/MedianCutQuantizer.cs
class MedianCutQuantizer (line 9) | public class MedianCutQuantizer : Quantizer
method MedianCutQuantizer (line 18) | public MedianCutQuantizer() : base(false)
method InitialQuantizePixel (line 25) | protected override void InitialQuantizePixel(Color pixel)
method BuildPalette (line 37) | internal override List<Color> BuildPalette()
method QuantizePixel (line 68) | protected override byte QuantizePixel(Color pixel)
method SplitCubes (line 79) | private void SplitCubes(List<MedianCutCube> cubes, int count)
class MedianCutCube (line 108) | private class MedianCutCube
method MedianCutCube (line 175) | public MedianCutCube(List<Color> colors)
method Shrink (line 183) | private void Shrink()
method SplitAtMedian (line 214) | public void SplitAtMedian(byte componentIndex, out MedianCutCube med...
method SetPaletteIndex (line 237) | public void SetPaletteIndex(int newPaletteIndex)
method IsColorIn (line 242) | public bool IsColorIn(Color color)
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/MostUsedQuantizer.cs
class MostUsedQuantizer (line 5) | public class MostUsedQuantizer : PaletteQuantizer
method FirstPass (line 7) | internal override void FirstPass(byte[] pixels)
method BuildPalette (line 27) | internal override List<Color> BuildPalette()
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/NeuralQuantizer.cs
class NeuralQuantizer (line 28) | public class NeuralQuantizer : Quantizer
method NeuralQuantizer (line 254) | public NeuralQuantizer(int samplingFactor, int maximumColors = 256) : ...
method FirstPass (line 261) | internal override void FirstPass(byte[] pixels)
method BuildPalette (line 292) | internal override List<Color> BuildPalette()
method QuantizePixel (line 330) | protected override byte QuantizePixel(Color pixel)
method Learn (line 336) | private void Learn(byte[] pixels)
method SetNeighbourhoodAlphas (line 449) | private static void SetNeighbourhoodAlphas(int[] neighbourhoodAlphas, ...
method GetPixelIndexIncrement (line 463) | private static int GetPixelIndexIncrement(int pictureByteCount)
method FindClosestAndReturnBestNeuron (line 492) | private int FindClosestAndReturnBestNeuron(int blue, int green, int red)
method MoveNeuron (line 588) | private void MoveNeuron(int alpha, int neuronIndexToMove, int blue, in...
method MoveNeighbouringNeurons (line 599) | private void MoveNeighbouringNeurons(int neighbourhoodSize, int neuron...
method MoveNeighbour (line 635) | private void MoveNeighbour(int neuronIndexToMove, int alpha, int alpha...
method UnbiasNetwork (line 646) | private void UnbiasNetwork()
method BuildIndex (line 662) | private void BuildIndex()
method IndexOfLeastGreenNeuron (line 708) | private int IndexOfLeastGreenNeuron(int startNeuronIndex)
method SwapNeurons (line 735) | private static void SwapNeurons(int[] neuron1, int[] neuron2)
method MapColor (line 755) | internal byte MapColor(int blue, int green, int red)
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/OctreeQuantizer.cs
class OctreeQuantizer (line 7) | public class OctreeQuantizer : Quantizer
method OctreeQuantizer (line 11) | public OctreeQuantizer(int maxColorBits = 8) : base(false)
method InitialQuantizePixel (line 24) | protected override void InitialQuantizePixel(Color pixel)
method QuantizePixel (line 38) | protected override byte QuantizePixel(Color pixel)
method BuildPalette (line 47) | internal override List<Color> BuildPalette()
class Octree (line 67) | private class Octree
method Octree (line 108) | public Octree(int maxColorBits)
method AddColor (line 124) | public void AddColor(Color pixel)
method Reduce (line 150) | private void Reduce()
method TrackPrevious (line 173) | protected void TrackPrevious(OctreeNode node)
method Palletize (line 183) | public ArrayList Palletize(int colorCount)
method GetPaletteIndex (line 203) | public int GetPaletteIndex(Color pixel)
class OctreeNode (line 213) | protected class OctreeNode
method OctreeNode (line 221) | public OctreeNode(int level, int colorBits, Octree octree)
method AddColor (line 252) | public void AddColor(Color pixel, int colorBits, int level, Octree...
method Reduce (line 298) | public int Reduce()
method ConstructPalette (line 330) | public void ConstructPalette(IList palette, ref int paletteIndex)
method GetPaletteIndex (line 354) | public int GetPaletteIndex(Color pixel, int level)
method Increment (line 377) | public void Increment(Color pixel)
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/PaletteQuantizer.cs
class PaletteQuantizer (line 6) | public class PaletteQuantizer : Quantizer
method PaletteQuantizer (line 21) | public PaletteQuantizer(ArrayList palette = null) : base(palette != null)
method QuantizePixel (line 35) | protected override byte QuantizePixel(Color pixel)
method BuildPalette (line 71) | internal override List<Color> BuildPalette()
FILE: ScreenToGif.Util/Codification/Gif/Encoder/Quantization/Quantizer.cs
class Quantizer (line 6) | public abstract class Quantizer
method Quantizer (line 61) | protected Quantizer(bool singlePass)
method Quantize (line 66) | public byte[] Quantize(byte[] pixels, bool secondPassOnly = false)
method FirstPass (line 91) | internal virtual void FirstPass(byte[] pixels)
method GetPalette (line 97) | internal List<Color> GetPalette()
method ParallelSecondPass (line 102) | internal virtual byte[] ParallelSecondPass(byte[] pixels)
method SecondPass (line 180) | internal virtual byte[] SecondPass(byte[] pixels)
method InitialQuantizePixel (line 227) | protected virtual void InitialQuantizePixel(Color pixel) { }
method QuantizePixel (line 234) | protected abstract byte QuantizePixel(Color pixel);
method BuildPalette (line 240) | internal abstract List<Color> BuildPalette();
FILE: ScreenToGif.Util/Codification/Gif/LegacyEncoder/GifEncoder.cs
class GifEncoder (line 13) | public sealed class GifEncoder : IDisposable
method GifEncoder (line 74) | public GifEncoder(Stream stream, int? width = null, int? height = null...
method AddFrame (line 89) | public void AddFrame(Image img, int x = 0, int y = 0, TimeSpan? frameD...
method InitHeader (line 105) | private void InitHeader(Stream sourceGif, int w, int h)
method WriteColorTable (line 132) | private void WriteColorTable(Stream sourceGif)
method WriteGraphicControlBlock (line 141) | private void WriteGraphicControlBlock(Stream sourceGif, TimeSpan frame...
method WriteImageBlock (line 155) | private void WriteImageBlock(Stream sourceGif, bool includeColorTable,...
method WriteByte (line 197) | private void WriteByte(int value)
method WriteShort (line 202) | private void WriteShort(int value)
method WriteString (line 208) | private void WriteString(string value)
method Dispose (line 213) | void IDisposable.Dispose()
FILE: ScreenToGif.Util/Codification/Gif/LegacyEncoder/LZWEncoder.cs
class LzwEncoder (line 33) | public class LzwEncoder
method LzwEncoder (line 167) | public LzwEncoder(int width, int height, byte[] pixels, int colorDepth)
method Add (line 180) | private void Add(byte c, Stream outs)
method ClearTable (line 192) | private void ClearTable(Stream outs)
method ResetCodeTable (line 205) | private void ResetCodeTable(int hsize)
method Compress (line 211) | private void Compress(int initBits, Stream outs)
method Encode (line 298) | public void Encode(Stream os)
method Flush (line 314) | void Flush(Stream outs)
method MaxCode (line 324) | int MaxCode(int numBits)
method NextPixel (line 333) | private int NextPixel()
method Output (line 362) | void Output(int code, Stream outs)
FILE: ScreenToGif.Util/Codification/Gif/LegacyEncoder/PixelUtilOld.cs
class PixelUtilOld (line 13) | public class PixelUtilOld
method PixelUtilOld (line 54) | public PixelUtilOld(Bitmap source)
method LockBits (line 62) | public void LockBits()
method UnlockBits (line 96) | public void UnlockBits()
method GetPixel (line 111) | public Color GetPixel(int x, int y)
method SetPixel (line 156) | public void SetPixel(int x, int y, Color color)
method ReadLine (line 196) | public static void ReadLine(Bitmap source, PixelFormat pixelFormat, in...
FILE: ScreenToGif.Util/Codification/PixelUtil.cs
class PixelUtil (line 12) | public class PixelUtil
method PixelUtil (line 52) | public PixelUtil(BitmapSource source)
method LockBits (line 60) | public void LockBits()
method LockBitsAndUnpad (line 103) | public void LockBitsAndUnpad()
method UnlockBits (line 161) | public WriteableBitmap UnlockBits()
method UnlockBitsWithoutCommit (line 174) | public WriteableBitmap UnlockBitsWithoutCommit()
method UnlockBitsAndCrop (line 184) | public WriteableBitmap UnlockBitsAndCrop(Int32Rect rect)
method GetPixel (line 232) | public Color GetPixel(int x, int y)
method GetMedianColor (line 269) | public Color GetMedianColor(int xx, int yy, int offsetX, int offsetY)
method GetAllPixels (line 292) | public List<Color> GetAllPixels()
method SetPixel (line 328) | public void SetPixel(int x, int y, Color color)
method SetPixel (line 352) | public void SetPixel(int x, int y, byte b, byte g, byte r, byte a = 255)
method SetAndBlendPixel (line 383) | public void SetAndBlendPixel(int x, int y, Color color, double opacity)
method SetAndBlendPixel (line 410) | public void SetAndBlendPixel(int x, int y, byte b, byte g, byte r, byt...
FILE: ScreenToGif.Util/Codification/Psd/AditionalLayers/IAditionalLayerInfo.cs
type IAdditionalLayerInfo (line 3) | interface IAdditionalLayerInfo : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/AditionalLayers/IMetadata.cs
type IMetadata (line 3) | interface IMetadata : IAdditionalLayerInfo
FILE: ScreenToGif.Util/Codification/Psd/AditionalLayers/Metadata.cs
class Metadata (line 6) | internal class Metadata : IAdditionalLayerInfo
FILE: ScreenToGif.Util/Codification/Psd/AditionalLayers/MetadataContent.cs
class MetadataContent (line 6) | internal class MetadataContent : IAdditionalLayerInfo
FILE: ScreenToGif.Util/Codification/Psd/Channel.cs
class Channel (line 5) | internal class Channel : IPsdContent
method Channel (line 35) | public Channel(byte[] raw)
method Channel (line 40) | public Channel(byte[][] content)
FILE: ScreenToGif.Util/Codification/Psd/IPsdContent.cs
type IPsdContent (line 3) | internal interface IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/Image.cs
class Image (line 3) | internal class Image : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/ImageChannelData.cs
class ImageChannelData (line 6) | internal class ImageChannelData : IPsdContent
method ImageChannelData (line 37) | public ImageChannelData(int depth, byte[] pixels, int rows, int column...
method RleCompression (line 83) | internal static byte[][] RleCompression(byte[] pixels, int rows, int c...
method Compress (line 94) | public static byte[] Compress(byte[] buffer)
method Compress2 (line 119) | public static byte[] Compress2(byte[] data)
method Compress3 (line 130) | public static byte[] Compress3(byte[] data)
method Decompress (line 155) | public static byte[] Decompress(byte[] gzBuffer)
method Pack (line 178) | public static byte[] Pack(byte[] source)
method AddLiterals (line 247) | private static void AddLiterals(IList<byte> result, IList<byte> literals)
method SubArray (line 260) | public static T[] SubArray<T>(T[] data, int index, int length)
FILE: ScreenToGif.Util/Codification/Psd/ImageData.cs
class ImageData (line 5) | internal class ImageData : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/ImageResourceBlocks/AnimationBlock.cs
class AnimationBlock (line 6) | internal class AnimationBlock : IImageResource
method AnimationBlock (line 152) | public AnimationBlock()
FILE: ScreenToGif.Util/Codification/Psd/ImageResourceBlocks/IImageResource.cs
type IImageResource (line 3) | internal interface IImageResource
FILE: ScreenToGif.Util/Codification/Psd/ImageResourceBlocks/ImageResources.cs
class ImageResources (line 5) | internal class ImageResources : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/LayerAndMask.cs
class LayerAndMask (line 5) | internal class LayerAndMask : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/LayerInfo.cs
class LayerInfo (line 5) | internal class LayerInfo : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/LayerRecord.cs
class LayerRecord (line 7) | internal class LayerRecord : IPsdContent
FILE: ScreenToGif.Util/Codification/Psd/Psd.cs
class Psd (line 8) | public class Psd : IDisposable
method Psd (line 44) | public Psd(Stream stream, int height, int width, bool compress = true,...
method AddFrame (line 53) | public void AddFrame(int index, string path, int delay = 66)
method Encode (line 81) | internal void Encode()
method Dispose (line 137) | public void Dispose()
FILE: ScreenToGif.Util/Constants.cs
class Constants (line 6) | public static class Constants
FILE: ScreenToGif.Util/Converters/AlphaToOpacity.cs
class AlphaToOpacity (line 11) | public class AlphaToOpacity : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/BoolAnd.cs
class BoolAnd (line 13) | public class BoolAnd : IMultiValueConverter
method Convert (line 15) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 23) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolAndOrOrToVisibility.cs
class BoolAndOrOrToVisibility (line 9) | public class BoolAndOrOrToVisibility : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 28) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolAndToVisibility.cs
class BoolAndToVisibility (line 9) | public class BoolAndToVisibility : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 19) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolOr.cs
class BoolOr (line 13) | public class BoolOr : IMultiValueConverter
method Convert (line 15) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 23) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolOrAndToVisibility.cs
class BoolOrAndToVisibility (line 9) | public class BoolOrAndToVisibility : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 24) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolOrToInvertedVisibility.cs
class BoolOrToInvertedVisibility (line 9) | public class BoolOrToInvertedVisibility : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 19) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolOrToVisibility.cs
class BoolOrToVisibility (line 9) | public class BoolOrToVisibility : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 19) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/BoolToOpacity.cs
class BoolToOpacity (line 11) | public class BoolToOpacity : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/BytesToSize.cs
class BytesToSize (line 8) | public class BytesToSize : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/CenterPopupConverter.cs
class CenterPopupConverter (line 8) | public class CenterPopupConverter : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 21) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/ColorToAlpha.cs
class ColorToAlpha (line 10) | public class ColorToAlpha : IValueConverter
method Convert (line 12) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 28) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/ColorToBrush.cs
class ColorToBrush (line 12) | public class ColorToBrush : IValueConverter
method Convert (line 14) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 22) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/ContentToVisibility.cs
class ContentToVisibility (line 11) | public class ContentToVisibility : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/CountToBool.cs
class CountToBool (line 10) | public class CountToBool : IValueConverter
method Convert (line 12) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 19) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleTimesAHundredToInt.cs
class DoubleTimesAHundredToInt (line 8) | public class DoubleTimesAHundredToInt : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleToBool.cs
class DoubleToBool (line 11) | public class DoubleToBool : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleToInt.cs
class DoubleToInt (line 11) | public class DoubleToInt : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleToPercentage.cs
class DoubleToPercentage (line 11) | public class DoubleToPercentage : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleToPositionSize.cs
class DoubleToPositionSize (line 9) | public class DoubleToPositionSize : IValueConverter
method Convert (line 11) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 90) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/DoubleToRadius.cs
class DoubleToRadius (line 8) | public class DoubleToRadius : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 27) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/DoubleToThickness.cs
class DoubleToThickness (line 8) | public class DoubleToThickness : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 36) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/EnumToBool.cs
class EnumToBool (line 6) | public class EnumToBool: IValueConverter
method Convert (line 8) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 13) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/EnumToInt.cs
class EnumToInt (line 6) | public class EnumToInt: IValueConverter
method Convert (line 8) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/EnumToVisibility.cs
class InvertedEnumToVisibility (line 7) | public class InvertedEnumToVisibility: IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 14) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/FontToSupportedGliph.cs
class FontToSupportedGliph (line 10) | public class FontToSupportedGliph : IValueConverter
method Convert (line 12) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 36) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/FormatConverter.cs
class FormatConverter (line 8) | public class FormatConverter : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 24) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/HasEnumToVisibility.cs
class HasEnumToVisibility (line 7) | public class HasEnumToVisibility: IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 14) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/IntToBool.cs
class IntToBool (line 11) | public class IntToBool : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/IntToDecimal.cs
class IntToDecimal (line 11) | public class IntToDecimal : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/IntToDelayString.cs
class IntToDelayString (line 11) | public class IntToDelayString : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/IntToRect.cs
class IntToRect (line 8) | public class IntToRect : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 30) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/IntToString.cs
class IntToString (line 7) | public class IntToString : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 17) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/IntToVisibility.cs
class IntToVisibility (line 8) | public class IntToVisibility : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 20) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedBool.cs
class InvertedBool (line 8) | public class InvertedBool: IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedBoolToVisibility.cs
class InvertedBoolToVisibility (line 11) | public class InvertedBoolToVisibility : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedEnumToBool.cs
class InvertedEnumToBool (line 6) | public class InvertedEnumToBool : IValueConverter
method Convert (line 8) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 13) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedEnumToVisibility.cs
class EnumToVisibility (line 7) | public class EnumToVisibility: IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 14) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedIntToVisibility.cs
class InvertedIntToVisibility (line 8) | public class InvertedIntToVisibility : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 20) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/InvertedVisibility.cs
class InvertedVisibility (line 8) | public class InvertedVisibility : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/KeyToResource.cs
class KeyToResource (line 7) | public class KeyToResource : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 19) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/KeysToString.cs
class KeysToString (line 7) | public class KeysToString : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 16) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/MaximumValue.cs
class MaximumValue (line 14) | public class MaximumValue : IMultiValueConverter
method Convert (line 16) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 33) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/MultiLineTitle.cs
class MultiLineTitle (line 7) | public class MultiLineTitle : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 19) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/NullToVisibility.cs
class NullToVisibility (line 8) | public class NullToVisibility : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 15) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/PathToFilename.cs
class PathToFilename (line 9) | public class PathToFilename : IValueConverter
method Convert (line 11) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/PercentageToOpacity.cs
class PercentageToOpacity (line 11) | public class PercentageToOpacity : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 21) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/ScaleConverter.cs
class ScaleConverter (line 8) | public class ScaleConverter : IMultiValueConverter
method Convert (line 10) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 21) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/SelectionCountToDescription.cs
class SelectionCountToDescription (line 7) | public class SelectionCountToDescription : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 18) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/SelectionToDrawingAttributes.cs
class SelectionToDrawingAttributes (line 11) | public class SelectionToDrawingAttributes : IMultiValueConverter
method Convert (line 13) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 36) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/SelectionToEditingMode.cs
class SelectionToEditingMode (line 9) | public class SelectionToEditingMode : IMultiValueConverter
method Convert (line 11) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 24) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/SelectionToStylusShape.cs
class SelectionToStylusShape (line 7) | public class SelectionToStylusShape : IMultiValueConverter
method Convert (line 9) | public object Convert(object[] values, Type targetType, object paramet...
method ConvertBack (line 30) | public object[] ConvertBack(object value, Type[] targetTypes, object p...
FILE: ScreenToGif.Util/Converters/ShortcutSelection.cs
class ShortcutSelection (line 11) | public class ShortcutSelection : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 50) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/SourceToSize.cs
class SourceToSize (line 8) | public class SourceToSize : IValueConverter
method Convert (line 10) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 20) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/StageToButtonString.cs
class StageToButtonString (line 7) | public class StageToButtonString : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 29) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/StageToCanvas.cs
class StageToCanvas (line 9) | public class StageToCanvas : IValueConverter
method Convert (line 11) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 31) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/StringArrayTypeConverter.cs
class StringArrayTypeConverter (line 7) | public class StringArrayTypeConverter : TypeConverter
method CanConvertFrom (line 9) | public override bool CanConvertFrom(ITypeDescriptorContext context, Ty...
method CanConvertTo (line 14) | public override bool CanConvertTo(ITypeDescriptorContext context, Type...
method ConvertFrom (line 19) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
method ConvertTo (line 29) | public override object ConvertTo(ITypeDescriptorContext context, Cultu...
FILE: ScreenToGif.Util/Converters/StringToDoubleArray.cs
class StringToDoubleArray (line 9) | public class StringToDoubleArray : IValueConverter
method Convert (line 11) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 28) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/StringToInt.cs
class StringToInt (line 11) | public class StringToInt : IValueConverter
method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 23) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/StylusTipToBool.cs
class StylusTipToBool (line 9) | public class StylusTipToBool : IValueConverter
method Convert (line 11) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 19) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/TagToSelection.cs
class TagToSelection (line 10) | public class TagToSelection : IValueConverter
method Convert (line 12) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 20) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/TimeSpanToString.cs
class TimeSpanToString (line 6) | public class TimeSpanToString : IValueConverter
method Convert (line 8) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 22) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/TimeSpanToTotalMilliseconds.cs
class TimeSpanToTotalMilliseconds (line 7) | public class TimeSpanToTotalMilliseconds : IValueConverter
method Convert (line 9) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 17) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/Converters/UriToBitmap.cs
class UriToBitmap (line 10) | public class UriToBitmap : IValueConverter
method Convert (line 12) | public object Convert(object value, Type targetType, object parameter,...
method ConvertBack (line 34) | public object ConvertBack(object value, Type targetType, object parame...
FILE: ScreenToGif.Util/CrcHelper.cs
class CrcHelper (line 3) | public class CrcHelper
method Calculate (line 77) | public static uint Calculate(byte[] what)
FILE: ScreenToGif.Util/DataGridHelper.cs
class DataGridHelper (line 10) | public static class DataGridHelper
method GetCell (line 12) | public static DataGridCell GetCell(DataGrid dg, int row, int column)
method GetRow (line 34) | public static DataGridRow GetRow(DataGrid dg, int index)
method GetRowIndex (line 49) | public static int GetRowIndex(DataGrid dg, DataGridCellInfo dgci)
method GetColIndex (line 59) | public static int GetColIndex(DataGridCellInfo dgci)
method FindParentCell (line 64) | public static DataGridCell FindParentCell(DataGrid grid, DependencyObj...
method GetDataGridCell (line 78) | public static DataGridCell GetDataGridCell(DataGridCellInfo cellInfo)
method GetDataGridCell (line 88) | public static DataGridCell GetDataGridCell(DataGrid dataGrid)
method FocusOnFirstCell (line 101) | public static void FocusOnFirstCell(this DataGrid dataGrid)
method Sort (line 111) | public static bool Sort(this DataGrid grid, ListSortDirection directio...
method ReSort (line 135) | public static void ReSort(this DataGrid grid, Dictionary<string, ListS...
FILE: ScreenToGif.Util/DebounceDispatcher.cs
class DebounceDispatcher (line 5) | public class DebounceDispatcher
method Debounce (line 30) | public void Debounce(int interval, Action<object> action, object param...
method Debounce (line 54) | public void Debounce(int interval, Task task, CancellationToken token,...
method Throttle (line 91) | public void Throttle(int interval, Action<object> action, object param...
method Cancel (line 119) | public void Cancel()
FILE: ScreenToGif.Util/DirectoryHelper.cs
class DirectoryHelper (line 7) | public static class DirectoryHelper
method HasWriteRights (line 9) | public static bool HasWriteRights(string directory)
method DirectoryHasPermission (line 32) | internal static bool DirectoryHasPermission(string directoryPath, File...
FILE: ScreenToGif.Util/DynamicResourceBinding.cs
class DynamicResourceBinding (line 12) | public class DynamicResourceBinding : DynamicResourceExtension
class DynamicResourceBindingSource (line 16) | private class DynamicResourceBindingSource : Freezable
method CreateInstanceCore (line 27) | protected override Freezable CreateInstanceCore()
method DynamicResourceBinding (line 35) | public DynamicResourceBinding() { }
method DynamicResourceBinding (line 37) | public DynamicResourceBinding(string resourceKey) : base(resourceKey)
method ProvideValue (line 48) | public override object ProvideValue(IServiceProvider serviceProvider)
FILE: ScreenToGif.Util/ExtendedStack.cs
class ExtendedStack (line 5) | public class ExtendedStack<T> : LinkedList<T>
method Pop (line 7) | public T Pop()
method Peek (line 16) | public T Peek()
method Push (line 21) | public void Push(T obj)
method PopBottom (line 27) | public T PopBottom()
method PeekBottom (line 36) | public T PeekBottom()
method PushBottom (line 41) | public void PushBottom(T obj)
FILE: ScreenToGif.Util/Extensions/EnumExtensions.cs
class EnumExtensions (line 10) | public static class EnumExtensions
method GetDescription (line 12) | public static string GetDescription(this Enum value)
method GetLowerDescription (line 17) | public static string GetLowerDescription(this Enum value)
method GetCustomAttribute (line 25) | public static T GetCustomAttribute<T>(this Enum value) where T : Attri...
method GetField (line 33) | public static FieldInfo GetField(this Enum value)
method IsDefined (line 42) | public static bool IsDefined(this Enum value)
method ToUInt64 (line 50) | public static ulong ToUInt64(this Enum value) => ToUInt64((object)value);
method ToUInt64 (line 52) | private static ulong ToUInt64(object value)
FILE: ScreenToGif.Util/Extensions/ImageExtensions.cs
class ImageExtensions (line 7) | public static class ImageExtensions
method SourceFrom (line 15) | public static BitmapSource SourceFrom(this string fileSource, int? siz...
method SourceFrom (line 39) | public static BitmapSource SourceFrom(this byte[] array, int? size = n...
method SourceFrom (line 63) | public static BitmapSource SourceFrom(this Stream stream, int? size = ...
method CropFrom (line 84) | public static BitmapSource CropFrom(this string fileSource, Int32Rect ...
FILE: ScreenToGif.Util/Extensions/InlineExtensions.cs
class InlineExtensions (line 7) | public static class InlineExtensions
method WithResource (line 9) | public static Run WithResource(this Run run, string id)
method WithLink (line 15) | public static Hyperlink WithLink(this Hyperlink hyperlink, string link)
method WithKeyLink (line 37) | public static Paragraph WithKeyLink(this Paragraph paragraph, string i...
method WithLineBreak (line 50) | public static Paragraph WithLineBreak(this Paragraph paragraph)
FILE: ScreenToGif.Util/Extensions/MathExtensions.cs
class MathExtensions (line 3) | public static class MathExtensions
method DivisibleByTwo (line 5) | public static int DivisibleByTwo(this int number) => number % 2 == 0 ?...
method PackLong (line 7) | public static long PackLong(int left, int right) => (long)left << 32 |...
method UnpackLong (line 9) | public static void UnpackLong(long value, out int left, out int right)
method RoundUpValue (line 15) | public static double RoundUpValue(double value, int decimalpoint = 0)
method CrossMultiplication (line 31) | public static double CrossMultiplication(double? total, double? variab...
method CrossMultiplication (line 61) | public static decimal CrossMultiplication(decimal? total, decimal? var...
method Gcd (line 88) | public static double Gcd(double a, double b)
method Gcd (line 96) | public static decimal Gcd(decimal a, decimal b)
method NearlyEquals (line 101) | public static bool NearlyEquals(this float a, float b, float epsilon =...
method NearlyEquals (line 121) | public static bool NearlyEquals(this double a, double b, double epsilo...
method NearlyEquals (line 143) | public static bool NearlyEquals(this double a, int absB, double epsilo...
method NearlyEquals (line 164) | public static bool NearlyEquals(this double? value1, double? value2, d...
method Clamp (line 180) | public static int Clamp(this int value, int min, int max)
method Clamp (line 188) | public static double Clamp(this double value, double min, double max)
FILE: ScreenToGif.Util/Extensions/ParseExtensions.cs
class ParseExtensions (line 3) | internal static class ParseExtensions
method TryParseBoolean (line 5) | internal static bool TryParseBoolean(this string source)
method TryParseDateTimeNullable (line 12) | internal static DateTime? TryParseDateTimeNullable(this string source)
method TryParseInteger (line 20) | internal static int TryParseInteger(this string source)
FILE: ScreenToGif.Util/Extensions/PropertyExtensions.cs
class PropertyExtensions (line 5) | internal static class PropertyExtensions
method AsBoolean (line 7) | internal static bool AsBoolean(this Property prop)
method AsNullableDateTime (line 12) | internal static DateTime? AsNullableDateTime(this Property prop)
method AsInteger (line 17) | internal static int AsInteger(this Property prop)
FILE: ScreenToGif.Util/Extensions/RectExtensions.cs
class RectExtensions (line 5) | public static class RectExtensions
method Contains (line 7) | public static bool Contains(this Int32Rect first, Int32Rect second)
method Offset (line 15) | public static Rect Offset(this Rect rect, double offset)
method Translate (line 23) | public static Rect Translate(this Rect rect, double offsetX, double of...
method Scale (line 31) | public static Rect Scale(this Rect rect, double scale)
method Limit (line 37) | public static Rect Limit(this Rect rect, double width, double height)
FILE: ScreenToGif.Util/Extensions/StringExtensions.cs
class StringExtensions (line 3) | public static class StringExtensions
method Remove (line 5) | public static string Remove(this string text, params string[] keys)
method Truncate (line 16) | public static string Truncate(this string text, int size)
FILE: ScreenToGif.Util/Extensions/VersionExtensions.cs
class VersionExtensions (line 3) | public static class VersionExtensions
method ToStringShort (line 5) | public static string ToStringShort(this Version version)
FILE: ScreenToGif.Util/FastRandom.cs
class FastRandom (line 3) | public class FastRandom
method FastRandom (line 9) | public FastRandom(uint seed)
method Next (line 17) | public int Next(int upperBound)
FILE: ScreenToGif.Util/Framerate.cs
class FrameRate (line 9) | public static class FrameRate
method Start (line 24) | public static void Start(int interval)
method Start (line 37) | public static void Start(bool useFixed, int interval)
method GetMilliseconds (line 49) | public static int GetMilliseconds()
method Stop (line 70) | public static void Stop()
FILE: ScreenToGif.Util/GifskiInterop.cs
class GifskiInterop (line 17) | public class GifskiInterop : IDisposable
method GifskiInterop (line 49) | public GifskiInterop(string path = null)
method Start (line 68) | public IntPtr Start(uint width, uint height, int quality, bool looped ...
method AddFrame (line 75) | public GifskiErrorCodes AddFrame(IntPtr handle, uint index, string pat...
method AddFramePixels (line 118) | internal GifskiErrorCodes AddFramePixels(IntPtr handle, uint frameNumb...
method EndAdding (line 123) | public GifskiErrorCodes EndAdding(IntPtr handle)
method OnGifskiError (line 128) | private static void OnGifskiError(IntPtr messagePtr, IntPtr userData)
method SetOutput (line 135) | public GifskiErrorCodes SetOutput(IntPtr handle, string destination)
method End (line 142) | public GifskiErrorCodes End(IntPtr handle, string destination)
method ReleaseUnmanagedResources (line 158) | private void ReleaseUnmanagedResources()
method Dispose (line 163) | public void Dispose()
FILE: ScreenToGif.Util/GitHubHelper.cs
class GitHubHelper (line 7) | public static class GitHubHelper
method GetLatestRelease (line 9) | public static async Task<GitHubRelease> GetLatestRelease(string reposi...
method GetAsset (line 27) | public static GitHubAsset GetAsset(this GitHubRelease release, string ...
FILE: ScreenToGif.Util/Helpers/CursorHelper.cs
class CursorHelper (line 8) | public static class CursorHelper
method GetMousePosition (line 10) | public static Point GetMousePosition(double scale = 1, double offsetX ...
method SetToPosition (line 17) | public static void SetToPosition(FrameworkElement element, bool center...
FILE: ScreenToGif.Util/Helpers/FfmpegHelper.cs
class FfmpegHelper (line 5) | public static partial class FfmpegHelper
method SemVerRegex (line 7) | [GeneratedRegex(@"\b(\d+\.\d+(\.\d+)?)\b")]
method FfmpegVersionRegex (line 10) | [GeneratedRegex(@"\bffmpeg\s+version\s+([^\s-]+)", RegexOptions.Ignore...
method IdentifyVersion (line 13) | public static string IdentifyVersion(string output)
method IsOlder (line 29) | public static bool IsOlder(string token)
FILE: ScreenToGif.Util/Helpers/KeyHelper.cs
class KeyHelper (line 8) | public static class KeyHelper
method GetCharFromKey (line 10) | public static char? GetCharFromKey(Key key, bool ignoreState = true)
method GetSelectKeyText (line 34) | public static string GetSelectKeyText(Key key, ModifierKeys modifier =...
method GetSelectKeyText (line 187) | public static string GetSelectKeyText(ModifierKeys modifier = Modifier...
FILE: ScreenToGif.Util/Humanizer.cs
class Humanizer (line 8) | public class Humanizer
method BytesToString (line 16) | public static string BytesToString(long byteCount, string format = null)
method BytesToString (line 35) | public static string BytesToString(ulong byteCount)
method Welcome (line 52) | public static string Welcome()
method WelcomeInfo (line 68) | public static string WelcomeInfo()
method WelcomeInfos (line 83) | public static string[] WelcomeInfos()
FILE: ScreenToGif.Util/IdentityHelper.cs
class IdentityHelper (line 5) | public static class IdentityHelper
FILE: ScreenToGif.Util/InterProcessChannel/InstanceSwitcherChannel.cs
type InstanceSwitcherMessage (line 7) | public struct InstanceSwitcherMessage
class InstanceSwitcherChannel (line 15) | public static class InstanceSwitcherChannel
method RegisterServer (line 22) | public static void RegisterServer(Action<object, InstanceSwitcherMessa...
method UnregisterServer (line 41) | public static void UnregisterServer()
method SendMessage (line 55) | public static void SendMessage(int processId, string[] args)
FILE: ScreenToGif.Util/InterProcessChannel/PipeServer.cs
class PipeServer (line 8) | public class PipeServer<TMessage> : IDisposable
method PipeServer (line 17) | public PipeServer(string pipeName)
method Stop (line 28) | public void Stop()
method ServerLoop (line 36) | private async void ServerLoop()
method OnMessageReceived (line 58) | protected virtual void OnMessageReceived(object state)
method OnServerError (line 63) | protected virtual void OnServerError(AggregateException exception)
method Dispose (line 68) | public void Dispose()
FILE: ScreenToGif.Util/InterProcessChannel/SettingsPersistenceChannel.cs
type SettingsPersistenceMessage (line 7) | internal struct SettingsPersistenceMessage
class SettingsPersistenceChannel (line 23) | public static class SettingsPersistenceChannel
method RegisterServer (line 30) | public static void RegisterServer()
method UnregisterServer (line 48) | public static void UnregisterServer()
method SendMessage (line 62) | public static void SendMessage(int processId, string serialized, bool ...
method ServerOnMessageReceived (line 84) | private static void ServerOnMessageReceived(object sender, SettingsPer...
FILE: ScreenToGif.Util/LocalizationHelper.cs
class LocalizationHelper (line 21) | public static class LocalizationHelper
method SelectCulture (line 27) | public static void SelectCulture(string culture)
method SetOrUpdateResource (line 147) | private static void SetOrUpdateResource(string key, string fontName)
method CheckForUpdates (line 173) | internal static async Task CheckForUpdates(string culture)
method GetWhenResourceWasUpdatedAsync (line 239) | private static async Task<DateTime?> GetWhenResourceWasUpdatedAsync(st...
method DownloadLatestAsync (line 281) | private static async Task DownloadLatestAsync(string file, string cult...
method SaveDefaultResource (line 320) | public static void SaveDefaultResource(string path)
method ImportStringResource (line 350) | public static void ImportStringResource(string path)
method GetLocalizations (line 384) | public static List<ResourceDictionary> GetLocalizations()
method Move (line 392) | public static bool Move(int selectedIndex, bool toUp = true)
method SaveSelected (line 448) | public static void SaveSelected(int selectedIndex, string path)
method Remove (line 468) | public static bool Remove(int selectedIndex)
method Get (line 497) | public static string Get(string key, bool removeNewLines = false)
method GetWithFormat (line 511) | public static string GetWithFormat(string key, params object[] values)
method Get (line 523) | public static string Get(string key, string defaultValue, bool removeN...
method GetWithFormat (line 538) | public static string GetWithFormat(string key, string defaultValue, pa...
method GetWithIndex (line 550) | public static string GetWithIndex(int index, string key, params string...
FILE: ScreenToGif.Util/LogWritter.cs
class LogWriter (line 9) | public static class LogWriter
method WriteDetails (line 11) | private static void WriteDetails(TextWriter writer, Exception ex, int ...
method Log (line 47) | public static void Log(Exception ex, string title, object additional =...
method Log (line 120) | public static void Log(string title, object additional = null, object ...
FILE: ScreenToGif.Util/MutexList.cs
class MutexList (line 6) | public static class MutexList
method IsInUse (line 10) | public static bool IsInUse(string key)
method Add (line 17) | public static void Add(string key)
method Exists (line 32) | public static bool Exists(string key) => All.Any(f => f.Key == key);
method Remove (line 34) | public static void Remove(string key)
method RemoveAll (line 50) | public static void RemoveAll()
FILE: ScreenToGif.Util/Native/Capture.cs
class Capture (line 12) | public static class Capture
method CaptureScreenAsBitmapSource (line 22) | public static BitmapSource CaptureScreenAsBitmapSource(int width, int ...
method CaptureScreenAsBitmap (line 60) | public static Image CaptureScreenAsBitmap(int width, int height, int p...
method CaptureWindow (line 89) | public static Image CaptureWindow(IntPtr handle, double scale)
method CaptureImageCursor (line 124) | public static System.Drawing.Bitmap CaptureImageCursor(ref System.Wind...
FILE: ScreenToGif.Util/Native/HotKeyCollection.cs
class HotKeyCollection (line 6) | public class HotKeyCollection : IDisposable
method RegisterHotKey (line 20) | internal void RegisterHotKey(ModifierKeys modifier, Key key, IntPtr wi...
method RegisterHotKey (line 36) | internal void RegisterHotKey(ModifierKeys modifier, Key key, Action ca...
method TryRegisterHotKey (line 52) | public bool TryRegisterHotKey(ModifierKeys modifier, Key key, Action c...
method Remove (line 69) | public void Remove(ModifierKeys modifier, Key key)
method Dispose (line 78) | public void Dispose()
FILE: ScreenToGif.Util/Native/InputHook.cs
class InputHook (line 19) | public class InputHook
method InputHook (line 159) | public InputHook()
method InputHook (line 173) | public InputHook(bool installMouseHook, bool installKeyboardHook)
method Start (line 195) | public void Start()
method Start (line 206) | public void Start(bool installMouseHook, bool installKeyboardHook)
method Stop (line 263) | public void Stop()
method Stop (line 275) | public void Stop(bool uninstallMouseHook, bool uninstallKeyboardHook, ...
method DetectDoubleClick (line 319) | private void DetectDoubleClick(NativeMouseEvents type, PointW point)
method MouseHookProc (line 361) | private IntPtr MouseHookProc(int code, uint type, IntPtr structure)
method KeyboardHookProc (line 578) | private IntPtr KeyboardHookProc(int code, uint wParam, IntPtr lParam)
FILE: ScreenToGif.Util/Native/Monitor.cs
class MonitorHelper (line 12) | public static class MonitorHelper
method ParseMonitor (line 14) | private static Monitor ParseMonitor(IntPtr monitorHandle, IntPtr hdc)
method AllMonitorsScaled (line 108) | public static List<Monitor> AllMonitorsScaled(double scale, bool offse...
method AllMonitorsGranular (line 133) | public static List<Monitor> AllMonitorsGranular(bool offset = false)
method FromPoint (line 158) | public static Monitor FromPoint(int left, int top)
method MostIntersected (line 165) | public static Monitor MostIntersected(List<Monitor> monitors, Rect reg...
class MonitorEnumCallback (line 184) | private class MonitorEnumCallback
method MonitorEnumCallback (line 188) | public MonitorEnumCallback()
method Callback (line 193) | public bool Callback(IntPtr monitor, IntPtr hdc, IntPtr lprcMonitor,...
FILE: ScreenToGif.Util/Native/NotifyIconHelper.cs
class NotifyIconHelper (line 7) | public static class NotifyIconHelper
method WriteIconData (line 17) | public static bool WriteIconData(ref NotifyIconData data, NotifyComman...
FILE: ScreenToGif.Util/Native/WindowHelper.cs
class WindowHelper (line 17) | public static class WindowHelper
method GetWindowPtr (line 22) | public static IntPtr GetWindowPtr(this Window window)
method DisableMaximize (line 27) | public static void DisableMaximize(this Window window)
method DisableMinimize (line 36) | public static void DisableMinimize(this Window window)
method EnableMaximize (line 45) | public static void EnableMaximize(this Window window)
method EnableMinimize (line 54) | public static void EnableMinimize(this Window window)
method SetCornerPreference (line 63) | public static void SetCornerPreference(this Window window, CornerPrefe...
method SetResizeMode (line 72) | public static void SetResizeMode(this Window window)
method UpdateMenuStatus (line 82) | public static void UpdateMenuStatus(this Window window)
method NearestMonitorForWindow (line 90) | public static IntPtr NearestMonitorForWindow(IntPtr window)
method UpdateStyle (line 95) | private static bool UpdateStyle(IntPtr handle, WindowStyles removeStyl...
method UpdateMenuStatus (line 108) | private static void UpdateMenuStatus(IntPtr handle, WindowState state)
method MoveToScreen (line 150) | public static void MoveToScreen(this System.Windows.Window window, Mon...
method GetZOrder (line 163) | public static int GetZOrder(IntPtr hWnd)
method GetZOrder (line 176) | public static int[] GetZOrder(params IntPtr[] hWnds)
method EnumerateWindows (line 209) | public static List<DetectedRegion> EnumerateWindows(double scale = 1)
method EnumerateWindowsByMonitor (line 292) | public static List<DetectedRegion> EnumerateWindowsByMonitor(Monitor m...
method GetWindowHandlesFromProcess (line 388) | public static List<IntPtr> GetWindowHandlesFromProcess(Process process)
method GetWindowHandlesForThread (line 405) | private static IntPtr[] GetWindowHandlesForThread(IntPtr threadHandle)
method ExtendedFrameBounds (line 429) | private static bool ExtendedFrameBounds(IntPtr handle, out Int32Rect r...
method GetWindowRect (line 438) | public static Int32Rect GetWindowRect(IntPtr handle)
method TrueWindowRectangle (line 444) | public static Int32Rect TrueWindowRectangle(IntPtr handle)
method ScreenSizeFromWindow (line 449) | public static Size ScreenSizeFromWindow(System.Windows.Window window)
method ScreenSizeFromWindow (line 454) | public static Size ScreenSizeFromWindow(IntPtr handle)
method ScreenSizeFromPoint (line 468) | internal static Size ScreenSizeFromPoint(int left, int top)
FILE: ScreenToGif.Util/NetworkHelper.cs
class NetworkHelper (line 5) | public static class NetworkHelper
class NetworkListManager (line 7) | [ComImport, Guid("DCB00C01-570F-4A9B-8D69-199FDBA5723B"), ClassInterfa...
type INetworkCostManager (line 10) | [ComImport, Guid("DCB00008-570F-4A9B-8D69-199FDBA5723B"), InterfaceTyp...
method GetCost (line 25) | void GetCost(out ConnectionCost cost, [In, Optional] SocketAddress? ...
type ConnectionCost (line 28) | private enum ConnectionCost : uint
class SocketAddress (line 74) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
method IsNetworkMetered (line 84) | public static bool IsNetworkMetered()
FILE: ScreenToGif.Util/OperationalSystemHelper.cs
class OperationalSystemHelper (line 3) | public static class OperationalSystemHelper
method IsWin8OrHigher (line 5) | public static bool IsWin8OrHigher()
FILE: ScreenToGif.Util/PathHelper.cs
class PathHelper (line 8) | public static class PathHelper
method ReplaceRegexInName (line 18) | public static string ReplaceRegexInName(string name)
method AdjustPath (line 38) | public static string AdjustPath(string path)
method IsFfmpegPresent (line 53) | public static async Task<bool> IsFfmpegPresent(bool ignoreEnvironment ...
method CheckFfmpegVersion (line 120) | private static async Task CheckFfmpegVersion(string realPath)
method IsGifskiPresent (line 134) | public static bool IsGifskiPresent(bool ignoreEnvironment = false, boo...
FILE: ScreenToGif.Util/ProcessHelper.cs
class ProcessHelper (line 7) | public static class ProcessHelper
method GetEntryAssemblyPath (line 9) | public static string GetEntryAssemblyPath()
method Start (line 24) | public static async Task<string> Start(string arguments, bool runWithP...
method StartWithShell (line 55) | public static void StartWithShell(string filename)
method RestartAsAdmin (line 66) | public static async Task<bool> RestartAsAdmin(string arguments = "", b...
method RestartAsAdminAdvanced (line 112) | public static Process RestartAsAdminAdvanced(string arguments = "")
FILE: ScreenToGif.Util/Secret.cs
class Secret (line 3) | public static class Secret
FILE: ScreenToGif.Util/Serializer.cs
class Serializer (line 7) | public static class Serializer
method Serialize (line 9) | public static string Serialize<T>(T data)
method Deserialize (line 22) | public static T Deserialize<T>(string json)
FILE: ScreenToGif.Util/Settings/Migrations.cs
class Migration (line 7) | public static class Migration
method Migrate (line 9) | public static bool Migrate(List<Property> properties, string version)
FILE: ScreenToGif.Util/Settings/Migrations/Migration0to2_28_0.cs
class Migration0To2_28_0 (line 6) | public static class Migration0To2_28_0
method Up (line 8) | public static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_28_0To2_29_0.cs
class Migration2_28_0To2_29_0 (line 5) | internal class Migration2_28_0To2_29_0
method Up (line 7) | internal static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_29_0To2_31_0.cs
class Migration2_29_0To2_31_0 (line 5) | internal class Migration2_29_0To2_31_0
method Up (line 7) | internal static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_31_0To2_32_0.cs
class Migration2_31_0To2_32_0 (line 5) | internal class Migration2_31_0To2_32_0
method Up (line 7) | internal static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_32_0To2_35_0.cs
class Migration2_32_0To2_35_0 (line 5) | internal class Migration2_32_0To2_35_0
method Up (line 7) | internal static bool Up(List<Property> properties)
method UpdateNamespaces (line 22) | private static void UpdateNamespaces(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_35_0To2_36_0.cs
class Migration2_35_0To2_36_0 (line 5) | internal class Migration2_35_0To2_36_0
method Up (line 7) | internal static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_36_0To2_37_0.cs
class Migration2_36_0To2_37_0 (line 5) | internal class Migration2_36_0To2_37_0
method Up (line 7) | internal static bool Up(List<Property> properties)
method UpdateTasks (line 25) | private static void UpdateTasks(List<Property> properties)
FILE: ScreenToGif.Util/Settings/Migrations/Migration2_37_0To2_43_0.cs
class Migration2_37_0To2_43_0 (line 5) | internal class Migration2_37_0To2_43_0
method Up (line 7) | internal static bool Up(List<Property> properties)
FILE: ScreenToGif.Util/Settings/UserSettings.cs
class UserSettings (line 30) | public class UserSettings : INotifyPropertyChanged
method UserSettings (line 50) | static UserSettings()
method LoadSettings (line 63) | private static void LoadSettings()
method Load (line 98) | private static ResourceDictionary Load(string path)
method GetProperty (line 141) | public static Property GetProperty(XElement node)
method ParseProperty (line 196) | private static object ParseProperty(Property property)
method ParseType (line 232) | private static Type ParseType(Property property)
method ParseValue (line 258) | private static object ParseValue(string value, Type type)
method Save (line 275) | public static void Save(bool canForce = false, bool saveToAppData = fa...
method SaveFromAnotherInstance (line 335) | public void SaveFromAnotherInstance(string serialized, bool isLocal)
method CheckIfSavedCorrectly (line 367) | private static void CheckIfSavedCorrectly(string filename, string back...
method RemoveInvalidEntries (line 388) | private static ResourceDictionary RemoveInvalidEntries(ResourceDiction...
method CreateLocalSettings (line 411) | public static void CreateLocalSettings()
method RemoveLocalSettings (line 421) | public static void RemoveLocalSettings()
method RemoveAppDataSettings (line 431) | public static void RemoveAppDataSettings()
method GetValue (line 442) | private static object GetValue([CallerMemberName] string key = "", obj...
method SetValue (line 456) | private static void SetValue(object value, [CallerMemberName] string k...
method OnPropertyChanged (line 506) | private void OnPropertyChanged(string propertyName = null)
FILE: ScreenToGif.Util/SimpleKeyGesture.cs
class SimpleKeyGesture (line 14) | [DataContract]
method SimpleKeyGesture (line 47) | public SimpleKeyGesture()
method SimpleKeyGesture (line 56) | public SimpleKeyGesture(Key key) : this(key, ModifierKeys.None)
method SimpleKeyGesture (line 66) | public SimpleKeyGesture(Key key, ModifierKeys modifiers) : this(key, m...
method SimpleKeyGesture (line 78) | public SimpleKeyGesture(Key key, ModifierKeys modifiers, bool isUpperc...
method SimpleKeyGesture (line 97) | public SimpleKeyGesture(Key key, ModifierKeys modifiers, string displa...
method GetDisplayStringForCulture (line 113) | public string GetDisplayStringForCulture(CultureInfo culture)
method Matches (line 125) | public bool Matches(object targetElement, InputEventArgs inputEventArgs)
method IsDefinedKey (line 133) | internal static bool IsDefinedKey(Key key)
method IsValid (line 141) | internal static bool IsValid(Key key, ModifierKeys modifiers)
method AddGesturesFromResourceStrings (line 166) | internal static void AddGesturesFromResourceStrings(string keyGestures...
method CreateFromResourceStrings (line 204) | internal static KeyGesture CreateFromResourceStrings(string keyGesture...
FILE: ScreenToGif.Util/StreamHelpers.cs
class StreamHelpers (line 6) | public static class StreamHelpers
method PeekBytes (line 10) | public static byte[] PeekBytes(this Stream ms, long position, int count)
method PeekChar (line 21) | public static char PeekChar(this Stream ms)
method PeekChar (line 26) | public static char PeekChar(this Stream ms, int position)
method PeekInt16 (line 31) | public static short PeekInt16(this Stream ms)
method PeekInt16 (line 36) | public static short PeekInt16(this Stream ms, int position)
method PeekInt32 (line 41) | public static int PeekInt32(this Stream ms)
method PeekInt32 (line 46) | public static int PeekInt32(this Stream ms, int position)
method PeekInt64 (line 51) | public static long PeekInt64(this Stream ms)
method PeekInt64 (line 56) | public static long PeekInt64(this Stream ms, int position)
method PeekUInt16 (line 61) | public static ushort PeekUInt16(this Stream ms)
method PeekUInt16 (line 66) | public static ushort PeekUInt16(this Stream ms, int position)
method PeekUInt32 (line 71) | public static uint PeekUInt32(this Stream ms)
method PeekUInt32 (line 76) | public static uint PeekUInt32(this Stream ms, int position)
method PeekUInt64 (line 81) | public static ulong PeekUInt64(this Stream ms)
method PeekUInt64 (line 86) | public static ulong PeekUInt64(this Stream ms, int position)
method ReadBytes (line 95) | public static byte[] ReadBytes(this Stream ms, int count)
method ReadBytesAsync (line 105) | public static async Task<byte[]> ReadBytesAsync(this Stream ms, int co...
method ReadBytes (line 115) | public static byte[] ReadBytes(this Stream ms, uint count)
method ReadBytesUntilFull (line 125) | public static byte[] ReadBytesUntilFull(this Stream stream, int count)
method ReadChar (line 144) | public static char ReadChar(this Stream ms)
method ReadInt16 (line 149) | public static short ReadInt16(this Stream ms)
method ReadInt32 (line 154) | public static int ReadInt32(this Stream ms)
method ReadInt64 (line 159) | public static long ReadInt64(this Stream ms)
method ReadUInt16 (line 164) | public static ushort ReadUInt16(this Stream ms)
method ReadUInt32 (line 169) | public static uint ReadUInt32(this Stream ms)
method ReadUInt64 (line 174) | public static ulong ReadUInt64(this Stream ms)
method WriteByte (line 183) | public static void WriteByte(this Stream ms, int position, byte value)
method WriteBytes (line 192) | public static void WriteBytes(this Stream ms, byte[] value)
method WriteBytes (line 197) | public static void WriteBytes(this Stream ms, int position, byte[] value)
method WritePadding (line 211) | public static void WritePadding(this Stream ms, int padMultiple)
method WriteStream (line 232) | internal static void WriteStream(this Stream ms, Stream stream)
method WriteStringUtf8 (line 239) | public static void WriteStringUtf8(this Stream ms, string value)
method GetPascalStringAsBytes (line 245) | public static byte[] GetPascalStringAsBytes(byte[] bytes, bool padded ...
method WritePascalString (line 262) | public static void WritePascalString(this Stream ms, string value, boo...
method WritePascalString (line 278) | public static void WritePascalString(this Stream ms, byte[] bytes, boo...
method WriteInt16 (line 293) | public static void WriteInt16(this Stream ms, short value)
method WriteInt16 (line 298) | public static void WriteInt16(this Stream ms, int position, short value)
method WriteInt32 (line 303) | public static void WriteInt32(this Stream ms, int value)
method WriteInt32 (line 308) | public static void WriteInt32(this Stream ms, int position, int value)
method WriteInt64 (line 313) | public static void WriteInt64(this Stream ms, long value)
method WriteInt64 (line 318) | public static void WriteInt64(this Stream ms, int position, long value)
method WriteUInt16 (line 323) | public static void WriteUInt16(this Stream ms, ushort value)
method WriteUInt16 (line 328) | public static void WriteUInt16(this Stream ms, int position, ushort va...
method WriteUInt32 (line 333) | public static void WriteUInt32(this Stream ms, uint value)
method WriteUInt32 (line 338) | public static void WriteUInt32(this Stream ms, int position, uint value)
method WriteUInt64 (line 343) | public static void WriteUInt64(this Stream ms, ulong value)
method WriteUInt64 (line 348) | public static void WriteUInt64(this Stream ms, int position, ulong value)
FILE: ScreenToGif.Util/UiElementsExtension.cs
class UiElementExtensions (line 9) | public static class UiElementExtensions
method XamlClone (line 11) | public static T XamlClone<T>(this T original) where T : class
method DeepClone (line 46) | public static T DeepClone<T>(this T source) where T : UIElement
method DeepCopyChildren (line 58) | private static void DeepCopyChildren<T>(T source, T result) where T : ...
method CopyProperties (line 78) | private static void CopyProperties<T>(T source, T result, Type type) w...
FILE: ScreenToGif.Util/VisualHelper.cs
class VisualHelper (line 11) | public static class VisualHelper
method GetHandle (line 15) | public static IntPtr GetHandle(this Window window) => new WindowIntero...
method GetHwndSource (line 17) | public static HwndSource GetHwndSource(this Window window) => HwndSour...
method GetVisualScale (line 24) | public static double GetVisualScale(this Visual window)
method GetParent (line 31) | public static TP GetParent<TP>(DependencyObject child, int i) where TP...
method GetVisualParent (line 45) | public static T GetVisualParent<T>(this DependencyObject child) where ...
method HitTestElement (line 57) | public static bool HitTestElement(this FrameworkElement element, int x...
method GetParent (line 65) | public static TP GetParent<TP>(DependencyObject child, Type stopWhen) ...
method HasParent (line 82) | public static bool HasParent<T>(DependencyObject child, Type stopWhen,...
method GetVisualChild (line 102) | public static T GetVisualChild<T>(Visual parent) where T : Visual
method DeepCopy (line 120) | public static T DeepCopy<T>(UIElement source) where T : new()
method FindStoryboard (line 133) | public static Storyboard FindStoryboard(this FrameworkElement visual, ...
method IsInDesignMode (line 141) | public static bool IsInDesignMode()
method IsDataContextDataBound (line 153) | public static bool IsDataContextDataBound(this FrameworkElement element)
method Refresh (line 163) | public static void Refresh(this UIElement uiElement)
FILE: ScreenToGif.Util/WebHelper.cs
class WebHelper (line 17) | public static class WebHelper
method Protect (line 21) | public static string Protect(string str)
method Unprotect (line 27) | public static string Unprotect(string str)
method AppendQuery (line 36) | public static string AppendQuery(string url, Dictionary<string, string...
method Get (line 47) | public static async Task<string> Get(string url, NameValueCollection h...
method Post (line 62) | public static async Task<string> Post(string url, string content, Name...
method PostMultipart (line 77) | public static async Task<string> PostMultipart(string url, Dictionary<...
method SendFile (line 97) | public static async Task<string> SendFile(string url, Stream data, str...
method SendFile2 (line 115) | public static async Task<string> SendFile2(string url, Stream data, st...
method GetMultipartStream (line 138) | public static Stream GetMultipartStream(string border, Dictionary<stri...
method GetMultipartString (line 160) | public static string GetMultipartString(string border, Dictionary<stri...
method GetResponse (line 167) | public static Task<WebResponse> GetResponse(HttpMethod method, string ...
method GetResponse (line 188) | private static Task<WebResponse> GetResponse(HttpMethod method, string...
method GetResponse (line 215) | private static async Task<WebResponse> GetResponse(HttpMethod method, ...
method GetStream (line 242) | public static async Task<Stream> GetStream(string url, NameValueCollec...
method GetWebRequest (line 254) | private static HttpWebRequest GetWebRequest(HttpMethod method, string ...
method GetHttpClient (line 282) | internal static HttpClient GetHttpClient(NameValueCollection headers =...
method GetProxy (line 294) | public static IWebProxy GetProxy()
method IsProxyBeingUsed (line 306) | internal static bool IsProxyBeingUsed()
FILE: ScreenToGif.Util/WordLevel.cs
class WordLevel (line 9) | public class WordLevel
type WordUnion (line 15) | [StructLayout(LayoutKind.Explicit)]
method GetLower (line 28) | public static short GetLower(uint number)
method GetHigher (line 34) | public static short GetHigher(uint number)
method SetLower (line 40) | public static uint SetLower(uint number, short low)
method SetHigher (line 49) | public static uint SetHigher(uint number, short high)
FILE: ScreenToGif.ViewModel/BoardRecorderViewModel.cs
class BoardRecorderViewModel (line 16) | public class BoardRecorderViewModel : BindableBase
method ConvertToCursor (line 279) | public Cursor ConvertToCursor(RenderTargetBitmap rtb, Point hotSpot)
method ConvertToCursor (line 313) | public Cursor ConvertToCursor(UIElement control, Point hotSpot)
FILE: ScreenToGif.ViewModel/EditorViewModel.cs
class EditorViewModel (line 14) | public class EditorViewModel : BaseViewModel
method ConvertToCursor (line 341) | public Cursor ConvertToCursor(RenderTargetBitmap rtb, Point hotSpot)
method Init (line 377) | internal void Init()
method Render (line 382) | internal void Render()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/AnimatedImagePreset.cs
class AnimatedImagePreset (line 3) | public class AnimatedImagePreset : ExportPreset
method AnimatedImagePreset (line 29) | public AnimatedImagePreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Apng/ApngPreset.cs
class ApngPreset (line 5) | public class ApngPreset : AnimatedImagePreset
method ApngPreset (line 7) | public ApngPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Apng/EmbeddedApngPreset.cs
class EmbeddedApngPreset (line 5) | public class EmbeddedApngPreset : ApngPreset
method EmbeddedApngPreset (line 24) | public EmbeddedApngPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Apng/FfmpegApngPreset.cs
class FfmpegApngPreset (line 12) | public class FfmpegApngPreset : ApngPreset, IFfmpegPreset
method FfmpegApngPreset (line 67) | public FfmpegApngPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Avif/AvifPreset.cs
class AvifPreset (line 6) | public class AvifPreset : AnimatedImagePreset
method AvifPreset (line 8) | public AvifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Avif/FfmpegAvifPreset.cs
class FfmpegAvifPreset (line 8) | public class FfmpegAvifPreset : AvifPreset, IFfmpegPreset
method FfmpegAvifPreset (line 83) | public FfmpegAvifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Bpg/BpgPreset.cs
class BpgPreset (line 5) | public class BpgPreset : AnimatedImagePreset
method BpgPreset (line 7) | public BpgPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/EmbeddedGifPreset.cs
class EmbeddedGifPreset (line 9) | public class EmbeddedGifPreset : GifPreset
method EmbeddedGifPreset (line 77) | public EmbeddedGifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/FfmpegGifPreset.cs
class FfmpegGifPreset (line 12) | public class FfmpegGifPreset : GifPreset, IFfmpegPreset
method FfmpegGifPreset (line 72) | public FfmpegGifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/GifPreset.cs
class GifPreset (line 5) | public class GifPreset : AnimatedImagePreset
method GifPreset (line 17) | public GifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/GifskiGifPreset.cs
class GifskiGifPreset (line 5) | public class GifskiGifPreset : GifPreset
method GifskiGifPreset (line 24) | public GifskiGifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/KGySoftGifPreset.cs
class KGySoftGifPreset (line 18) | public class KGySoftGifPreset : GifPreset
method KGySoftGifPreset (line 262) | public KGySoftGifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Gif/SystemGifPreset.cs
class SystemGifPreset (line 5) | public class SystemGifPreset : GifPreset
method SystemGifPreset (line 7) | public SystemGifPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Webp/FfmpegWebpPreset.cs
class FfmpegWebpPreset (line 12) | public class FfmpegWebpPreset : WebpPreset, IFfmpegPreset
method FfmpegWebpPreset (line 80) | public FfmpegWebpPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/AnimatedImage/Webp/WebpPreset.cs
class WebpPreset (line 5) | public class WebpPreset : AnimatedImagePreset
method WebpPreset (line 7) | public WebpPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/ExportPreset.cs
class ExportPreset (line 11) | public abstract class ExportPreset : BindableBase, IExportPreset
method ExportPreset (line 359) | protected ExportPreset()
method IsValid (line 365) | public virtual Task<ValidatedEventArgs> IsValid()
method ShallowCopy (line 413) | public ExportPreset ShallowCopy()
FILE: ScreenToGif.ViewModel/ExportPresets/Image/BmpPreset.cs
class BmpPreset (line 5) | public class BmpPreset : ImagePreset
method BmpPreset (line 7) | public BmpPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Image/ImagePreset.cs
class ImagePreset (line 7) | public class ImagePreset : ExportPreset
method ImagePreset (line 42) | public ImagePreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Image/JpegPreset.cs
class JpegPreset (line 5) | public class JpegPreset : ImagePreset
method JpegPreset (line 7) | public JpegPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Image/PngPreset.cs
class PngPreset (line 5) | public class PngPreset : ImagePreset
method PngPreset (line 7) | public PngPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Other/PsdPreset.cs
class PsdPreset (line 5) | public class PsdPreset : ExportPreset
method PsdPreset (line 31) | public PsdPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Other/StgPreset.cs
class StgPreset (line 6) | public class StgPreset : ExportPreset
method StgPreset (line 18) | public StgPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Avi/AviPreset.cs
class AviPreset (line 5) | public class AviPreset : VideoPreset
method AviPreset (line 7) | public AviPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Avi/FfmpegAviPreset.cs
class FfmpegAviPreset (line 6) | public class FfmpegAviPreset : AviPreset, IFfmpegPreset
method FfmpegAviPreset (line 8) | public FfmpegAviPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/H264Amf.cs
class H264Amf (line 5) | public class H264Amf : VideoCodec
method H264Amf (line 7) | public H264Amf()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/H264Nvenc.cs
class H264Nvenc (line 8) | public class H264Nvenc : VideoCodec
method H264Nvenc (line 10) | public H264Nvenc()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/H264Qsv.cs
class H264Qsv (line 5) | public class H264Qsv : VideoCodec
method H264Qsv (line 7) | public H264Qsv()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/HevcAmf.cs
class HevcAmf (line 5) | public class HevcAmf : VideoCodec
method HevcAmf (line 7) | public HevcAmf()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/HevcNvenc.cs
class HevcNvenc (line 8) | public class HevcNvenc : VideoCodec
method HevcNvenc (line 10) | public HevcNvenc()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/HevcQsv.cs
class HevcQsv (line 5) | public class HevcQsv : VideoCodec
method HevcQsv (line 7) | public HevcQsv()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/LibAom.cs
class LibAom (line 5) | public class LibAom : VideoCodec
method LibAom (line 11) | public LibAom()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/Mpeg2.cs
class Mpeg2 (line 5) | public class Mpeg2 : VideoCodec
method Mpeg2 (line 7) | public Mpeg2()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/Mpeg4.cs
class Mpeg4 (line 8) | public class Mpeg4 : VideoCodec
method Mpeg4 (line 10) | public Mpeg4()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/Rav1E.cs
class Rav1E (line 5) | public class Rav1E : VideoCodec
method Rav1E (line 11) | public Rav1E()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/SvtAv1.cs
class SvtAv1 (line 5) | public class SvtAv1 : VideoCodec
method SvtAv1 (line 11) | public SvtAv1()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/VideoCodec.cs
class VideoCodec (line 7) | public class VideoCodec : BindableBase
class EnumItem (line 40) | public class EnumItem<T> where T : System.Enum
method EnumItem (line 50) | public EnumItem()
method EnumItem (line 53) | public EnumItem(T type, string nameKey, string name, string parameter)
method EnumItem (line 61) | public EnumItem(T type, string nameKey, string parameter)
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/Vp8.cs
class Vp8 (line 5) | public class Vp8 : VideoCodec
method Vp8 (line 7) | public Vp8()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/Vp9.cs
class Vp9 (line 5) | public class Vp9 : VideoCodec
method Vp9 (line 7) | public Vp9()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/X264.cs
class X264 (line 5) | public class X264 : VideoCodec
method X264 (line 7) | public X264()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Codecs/X265.cs
class X265 (line 5) | public class X265 : VideoCodec
method X265 (line 7) | public X265()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mkv/FfmpegMkvPreset.cs
class FfmpegMkvPreset (line 6) | public class FfmpegMkvPreset : MkvPreset, IFfmpegPreset
method FfmpegMkvPreset (line 8) | public FfmpegMkvPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mkv/MkvPreset.cs
class MkvPreset (line 5) | public class MkvPreset : VideoPreset
method MkvPreset (line 7) | public MkvPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mov/FfmpegMovPreset.cs
class FfmpegMovPreset (line 6) | public class FfmpegMovPreset : MovPreset, IFfmpegPreset
method FfmpegMovPreset (line 8) | public FfmpegMovPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mov/MovPreset.cs
class MovPreset (line 5) | public class MovPreset : VideoPreset
method MovPreset (line 7) | public MovPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mp4/FfmpegMp4Preset.cs
class FfmpegMp4Preset (line 6) | public class FfmpegMp4Preset : Mp4Preset, IFfmpegPreset
method FfmpegMp4Preset (line 8) | public FfmpegMp4Preset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Mp4/Mp4Preset.cs
class Mp4Preset (line 5) | public class Mp4Preset : VideoPreset
method Mp4Preset (line 7) | public Mp4Preset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/VideoPreset.cs
class VideoPreset (line 6) | public class VideoPreset : ExportPreset
method VideoPreset (line 175) | public VideoPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Webm/FfmpegWebmPreset.cs
class FfmpegWebmPreset (line 6) | public class FfmpegWebmPreset : WebmPreset, IFfmpegPreset
method FfmpegWebmPreset (line 8) | public FfmpegWebmPreset()
FILE: ScreenToGif.ViewModel/ExportPresets/Video/Webm/WebmPreset.cs
class WebmPreset (line 5) | public class WebmPreset : VideoPreset
method WebmPreset (line 7) | public WebmPreset()
FILE: ScreenToGif.ViewModel/FrameViewModel.cs
class FrameViewModel (line 5) | public class FrameViewModel : BaseViewModel
FILE: ScreenToGif.ViewModel/RecorderViewModel.cs
class RecorderViewModel (line 9) | public class RecorderViewModel : BindableBase
method RefreshKeyGestures (line 101) | public void RefreshKeyGestures()
FILE: ScreenToGif.ViewModel/ScreenRecorderViewModel.cs
class ScreenRecorderViewModel (line 6) | public class ScreenRecorderViewModel : RecorderViewModel
FILE: ScreenToGif.ViewModel/Settings/PluginSettingsViewModel.cs
class PluginSettingsViewModel (line 16) | public class PluginSettingsViewModel: BaseViewModel
method DownloadFFmpeg (line 190) | public async void DownloadFFmpeg()
method DownloadGifski (line 242) | public async void DownloadGifski()
method UnpackFFmpeg (line 292) | public async Task<string> UnpackFFmpeg(string path)
method UnpackGifski (line 322) | public async Task<string> UnpackGifski(string path)
method VerifyFFmpeg (line 360) | public async Task VerifyFFmpeg(bool bubbleUpError = false)
method VerifyGifski (line 396) | public void VerifyGifski(bool bubbleUpError = false)
method RemoveFFmpeg (line 429) | public void RemoveFFmpeg()
method RemoveGifski (line 440) | public void RemoveGifski()
FILE: ScreenToGif.ViewModel/Tasks/BaseTaskViewModel.cs
class BaseTaskViewModel (line 10) | public class BaseTaskViewModel : BindableBase, IPersistent
method ShallowCopy (line 78) | public BaseTaskViewModel ShallowCopy()
method Persist (line 83) | public virtual void Persist()
FILE: ScreenToGif.ViewModel/Tasks/BorderViewModel.cs
class BorderViewModel (line 8) | public class BorderViewModel : BaseTaskViewModel
method BorderViewModel (line 20) | public BorderViewModel()
method ToString (line 55) | public override string ToString()
method Default (line 61) | public static BorderViewModel Default()
method FromSettings (line 73) | public static BorderViewModel FromSettings(bool isManual = false)
FILE: ScreenToGif.ViewModel/Tasks/DelayViewModel.cs
class DelayViewModel (line 7) | public class DelayViewModel : BaseTaskViewModel
method DelayViewModel (line 14) | public DelayViewModel()
method ToString (line 67) | public override string ToString()
method Default (line 72) | public static DelayViewModel Default()
method FromSettings (line 83) | public static DelayViewModel FromSettings(DelayUpdateModes type = Dela...
FILE: ScreenToGif.ViewModel/Tasks/KeyStrokesViewModel.cs
class KeyStrokesViewModel (line 9) | public class KeyStrokesViewModel : BaseTaskViewModel
method KeyStrokesViewModel (line 37) | public KeyStrokesViewModel()
method ToString (line 184) | public override string ToString()
method Default (line 193) | public static KeyStrokesViewModel Default()
method FromSettings (line 221) | public static KeyStrokesViewModel FromSettings()
FILE: ScreenToGif.ViewModel/Tasks/MouseEventsViewModel.cs
class MouseEventsViewModel (line 8) | public class MouseEventsViewModel : BaseTaskViewModel
method MouseEventsViewModel (line 19) | public MouseEventsViewModel()
method ToString (line 72) | public override string ToString()
method Default (line 83) | public static MouseEventsViewModel Default()
method FromSettings (line 98) | public static MouseEventsViewModel FromSettings()
FILE: ScreenToGif.ViewModel/Tasks/ProgressViewModel.cs
class ProgressViewModel (line 10) | public class ProgressViewModel : BaseTaskViewModel
method ProgressViewModel (line 33) | public ProgressViewModel()
method ToString (line 135) | public override string ToString()
method Default (line 142) | public static ProgressViewModel Default()
method FromSettings (line 165) | public static ProgressViewModel FromSettings()
FILE: ScreenToGif.ViewModel/Tasks/ResizeViewModel.cs
class ResizeViewModel (line 11) | public class ResizeViewModel : BaseTaskViewModel
method ResizeViewModel (line 32) | public ResizeViewModel()
method Default (line 203) | public static ResizeViewModel Default()
method FromSettings (line 213) | public static ResizeViewModel FromSettings(int width = 0, int height =...
method Persist (line 229) | public override void Persist()
FILE: ScreenToGif.ViewModel/Tasks/ShadowViewModel.cs
class ShadowViewModel (line 8) | public class ShadowViewModel : BaseTaskViewModel
method ShadowViewModel (line 21) | public ShadowViewModel()
method ToString (line 62) | public override string ToString()
method Default (line 71) | public static ShadowViewModel Default()
method FromSettings (line 84) | public static ShadowViewModel FromSettings()
FILE: ScreenToGif.ViewModel/UpdateAvailable.cs
class UpdateAvailable (line 5) | public class UpdateAvailable
FILE: ScreenToGif.ViewModel/UploadPresets/Custom/CustomPreset.cs
class CustomPreset (line 3) | public class CustomPreset : UploadPreset
FILE: ScreenToGif.ViewModel/UploadPresets/History/History.cs
class History (line 13) | public class History : BindableBase, IHistory
method GetLink (line 140) | public virtual string GetLink(IPreset preset)
FILE: ScreenToGif.ViewModel/UploadPresets/History/ImgurHistory.cs
class ImgurHistory (line 13) | public class ImgurHistory : History
method ImgurHistory (line 101) | public ImgurHistory()
method GetLink (line 106) | public override string GetLink(IPreset preset)
FILE: ScreenToGif.ViewModel/UploadPresets/Imgur/ImgurAlbum.cs
class ImgurAlbum (line 5) | public class ImgurAlbum
method ImgurAlbum (line 23) | public ImgurAlbum()
method ImgurAlbum (line 26) | public ImgurAlbum(ImgurAlbumData data)
FILE: ScreenToGif.ViewModel/UploadPresets/Imgur/ImgurPreset.cs
class ImgurPreset (line 11) | public class ImgurPreset : UploadPreset
method ImgurPreset (line 94) | public ImgurPreset() : this(10000000L, TimeSpan.FromMinutes(1))
method ImgurPreset (line 97) | public ImgurPreset(long? sizeLimit = null, TimeSpan? durationLimit = n...
FILE: ScreenToGif.ViewModel/UploadPresets/UploadPreset.cs
class UploadPreset (line 13) | public class UploadPreset : BindableBase, IUploadPreset
method UploadPreset (line 28) | public UploadPreset()
method UploadPreset (line 31) | public UploadPreset(long? sizeLimit, TimeSpan? durationLimit = null, S...
method IsValid (line 155) | public virtual Task<ValidatedEventArgs> IsValid()
method ShallowCopy (line 160) | public UploadPreset ShallowCopy()
FILE: ScreenToGif.ViewModel/UploadPresets/Yandex/YandexPreset.cs
class YandexPreset (line 6) | public class YandexPreset : UploadPreset
method YandexPreset (line 17) | public YandexPreset()
FILE: ScreenToGif.ViewModel/VideoSourceViewModel.cs
class VideoSourceViewModel (line 16) | public class VideoSourceViewModel : BindableBase, IDisposable
method LoadSettings (line 259) | public void LoadSettings()
method SaveSettings (line 265) | public void SaveSettings()
method LoadPreview (line 271) | public async Task LoadPreview()
method GetVideoDetails (line 346) | private async Task GetVideoDetails()
method WhenBothLoaded (line 454) | private async Task WhenBothLoaded()
method SuccessLoading (line 490) | private async Task SuccessLoading()
method RenderPreview (line 512) | private async Task RenderPreview(bool lower = true)
method GetScreencap (line 583) | private async Task<BitmapSource> GetScreencap(bool lower = true, int t...
method FaultLoading (line 626) | private void FaultLoading(Exception ex = null)
method Import (line 635) | public async Task Import()
method GetMultipleScreencaps (line 671) | private async Task GetMultipleScreencaps()
method ImportAndSeek (line 765) | private void ImportAndSeek()
method SeekNextFrame (line 804) | private void SeekNextFrame()
method GetFiles (line 825) | private void GetFiles(string folder)
method Cancel (line 852) | public async Task Cancel()
method RemoveImportFiles (line 864) | public void RemoveImportFiles()
method MediaPlayer_MediaOpened (line 880) | private void MediaPlayer_MediaOpened(object sender, EventArgs e)
method MediaPlayer_MediaFailed (line 885) | private void MediaPlayer_MediaFailed(object sender, ExceptionEventArgs e)
method LowerPlayer_Changed (line 890) | private void LowerPlayer_Changed(object sender, EventArgs e)
method UpperPlayer_Changed (line 895) | private void UpperPlayer_Changed(object sender, EventArgs e)
method CapturePlayer_Changed (line 900) | private void CapturePlayer_Changed(object sender, EventArgs e)
method Dispose (line 905) | public void Dispose()
FILE: ScreenToGif.ViewModel/WebcamViewModel.cs
class WebcamViewModel (line 5) | public class WebcamViewModel : RecorderViewModel
FILE: ScreenToGif/App.xaml.cs
class App (line 30) | public partial class App : IDisposable
method App_Startup (line 47) | private void App_Startup(object sender, StartupEventArgs e)
method InstanceSwitch_Received (line 219) | internal static void InstanceSwitch_Received(object _, InstanceSwitche...
method App_DispatcherUnhandledException (line 239) | private void App_DispatcherUnhandledException(object sender, Dispatche...
method CurrentDomain_UnhandledException (line 258) | private void CurrentDomain_UnhandledException(object sender, Unhandled...
method SystemEvents_UserPreferenceChanged (line 275) | private void SystemEvents_UserPreferenceChanged(object sender, UserPre...
method App_Exit (line 290) | private void App_Exit(object sender, ExitEventArgs e)
method SetSecurityProtocol (line 357) | private void SetSecurityProtocol()
method SetWorkaroundForDispatcher (line 370) | private void SetWorkaroundForDispatcher()
method RegisterShortcuts (line 392) | internal static void RegisterShortcuts()
method ShowException (line 424) | private void ShowException(Exception exception)
method Dispose (line 448) | public void Dispose()
FILE: ScreenToGif/Capture/BaseCapture.cs
class BaseCapture (line 9) | public abstract class BaseCapture : ICapture
method Start (line 75) | public virtual void Start(int delay, int left, int top, int width, int...
method ResetConfiguration (line 118) | public virtual void ResetConfiguration()
method Save (line 121) | public virtual void Save(FrameInfo info)
method Capture (line 124) | public virtual int Capture(FrameInfo frame)
method CaptureAsync (line 129) | public virtual Task<int> CaptureAsync(FrameInfo frame)
method CaptureWithCursor (line 134) | public virtual int CaptureWithCursor(FrameInfo frame)
method CaptureWithCursorAsync (line 139) | public virtual Task<int> CaptureWithCursorAsync(FrameInfo frame)
method ManualCapture (line 144) | public virtual int ManualCapture(FrameInfo frame, bool showCursor = fa...
method ManualCaptureAsync (line 149) | public virtual Task<int> ManualCaptureAsync(FrameInfo frame, bool show...
method Stop (line 154) | public virtual async Task Stop()
method DisposeInternal (line 170) | private async Task DisposeInternal()
method DisposeAsync (line 182) | public virtual async ValueTask DisposeAsync()
method Dispose (line 188) | public void Dispose()
FILE: ScreenToGif/Capture/CachedCapture.cs
class CachedCapture (line 16) | internal class CachedCapture : ImageCapture
method Start (line 29) | public override void Start(int delay, int left, int top, int width, in...
method Capture (line 55) | public override int Capture(FrameInfo frame)
method CaptureWithCursor (line 86) | public override int CaptureWithCursor(FrameInfo frame)
method Save (line 174) | public override void Save(FrameInfo info)
method Stop (line 200) | public override async Task Stop()
method Other (line 219) | [Obsolete("Only for test")]
FILE: ScreenToGif/Capture/DirectCachedCapture.cs
class DirectCachedCapture (line 29) | internal class DirectCachedCapture : DirectImageCapture
method Start (line 39) | public override void Start(int delay, int left, int top, int width, in...
method Capture (line 49) | public override int Capture(FrameInfo frame)
method CaptureWithCursor (line 200) | public override int CaptureWithCursor(FrameInfo frame)
method ManualCapture (line 412) | public override int ManualCapture(FrameInfo frame, bool showCursor = f...
method Save (line 539) | public override void Save(FrameInfo info)
method Stop (line 551) | public override async Task Stop()
method Capture2 (line 571) | public int Capture2(FrameInfo frame)
method CaptureWithCursor2 (line 665) | public int CaptureWithCursor2(FrameInfo frame)
FILE: ScreenToGif/Capture/DirectChangedCachedCapture.cs
class DirectChangedCachedCapture (line 14) | internal class DirectChangedCachedCapture : DirectCachedCapture
method Capture (line 16) | public override int Capture(FrameInfo frame)
method CaptureWithCursor (line 169) | public override int CaptureWithCursor(FrameInfo frame)
FILE: ScreenToGif/Capture/DirectChangedImageCapture.cs
class DirectChangedImageCapture (line 14) | internal class DirectChangedImageCapture : DirectImageCapture
method Capture (line 16) | public override int Capture(FrameInfo frame)
method CaptureWithCursor (line 180) | public override int CaptureWithCursor(FrameInfo frame)
FILE: ScreenToGif/Capture/DirectImageCapture.cs
class DirectImageCapture (line 34) | internal class DirectImageCapture : BaseCapture
method Start (line 108) | public override void Start(int delay, int left, int top, int width, in...
method ResetConfiguration (line 120) | public override void ResetConfiguration()
method Initialize (line 126) | internal void Initialize()
method GetOutput (line 211) | private Output1 GetOutput(Factory1 factory)
method Capture (line 267) | public override int Capture(FrameInfo frame)
method CaptureAsync (line 430) | public override async Task<int> CaptureAsync(FrameInfo frame)
method CaptureWithCursor (line 435) | public override int CaptureWithCursor(FrameInfo frame)
method CaptureWithCursorAsync (line 618) | public override async Task<int> CaptureWithCursorAsync(FrameInfo frame)
method ManualCapture (line 623) | public override int ManualCapture(FrameInfo frame, bool showCursor = f...
method ManualCaptureAsync (line 760) | public override async Task<int> ManualCaptureAsync(FrameInfo frame, bo...
method GetCursor (line 766) | protected internal bool GetCursor(Texture2D screenTexture, OutputDupli...
method DrawCursorShape (line 872) | private void DrawCursorShape(Texture2D texture, OutputDuplicatePointer...
method DrawMonochromeCursor (line 902) | private void DrawMonochromeCursor(int offsetX, int offsetY, int width,...
method DrawColorCursor (line 939) | private void DrawColorCursor(int offsetX, int offsetY, int width, int ...
method DrawMaskedColorCursor (line 963) | private void DrawMaskedColorCursor(int offsetX, int offsetY, int width...
method Save (line 992) | public override void Save(FrameInfo frame)
method Stop (line 1001) | public override async Task Stop()
method DisposeInternal (line 1011) | internal void DisposeInternal()
method FallbackCursorCapture (line 1026) | [Obsolete]
FILE: ScreenToGif/Capture/ICapture.cs
type ICapture (line 7) | internal interface ICapture : IAsyncDisposable, IDisposable
method Start (line 21) | void Start(int delay, int left, int top, int width, int height, double...
method ResetConfiguration (line 22) | void ResetConfiguration();
method Capture (line 23) | int Capture(FrameInfo frame);
method CaptureAsync (line 24) | Task<int> CaptureAsync(FrameInfo frame);
method CaptureWithCursor (line 25) | int CaptureWithCursor(FrameInfo frame);
method CaptureWithCursorAsync (line 26) | Task<int> CaptureWithCursorAsync(FrameInfo frame);
method ManualCapture (line 27) | int ManualCapture(FrameInfo frame, bool showCursor = false);
method ManualCaptureAsync (line 28) | Task<int> ManualCaptureAsync(FrameInfo frame, bool showCursor = false);
method Save (line 29) | void Save(FrameInfo info);
method Stop (line 30) | Task Stop();
FILE: ScreenToGif/Capture/ImageCapture.cs
class ImageCapture (line 14) | internal class ImageCapture : BaseCapture
method Start (line 30) | public override void Start(int delay, int left, int top, int width, in...
method Capture (line 55) | public override int Capture(FrameInfo frame)
method CaptureAsync (line 82) | public override async Task<int> CaptureAsync(FrameInfo frame)
method CaptureWithCursor (line 87) | public override int CaptureWithCursor(FrameInfo frame)
method CaptureWithCursorAsync (line 165) | public override async Task<int> CaptureWithCursorAsync(FrameInfo frame)
method Save (line 171) | public override void Save(FrameInfo frame)
method Stop (line 180) | public override async Task Stop()
FILE: ScreenToGif/Capture/RegionSelectHelper.cs
class RegionSelectHelper (line 12) | internal static class RegionSelectHelper
class Selection (line 14) | internal class Selection
method Selection (line 20) | public Selection(Monitor monitor, Rect region)
method Select (line 37) | internal static Task<Selection> Select(ModeType mode, Rect previousReg...
method Abort (line 61) | internal static void Abort()
method RegionSelected (line 67) | private static void RegionSelected(Monitor monitor, Rect region)
method RegionChanged (line 75) | private static void RegionChanged(Monitor monitor)
method RegionGotHover (line 82) | private static void RegionGotHover(Monitor monitor)
method RegionAborted (line 89) | private static void RegionAborted()
FILE: ScreenToGif/Cloud/CloudFactory.cs
class CloudFactory (line 7) | public class CloudFactory
method CreateCloud (line 9) | public static IUploader CreateCloud(UploadDestinations service)
FILE: ScreenToGif/Cloud/Imgur.cs
class Imgur (line 19) | public class Imgur : IUploader
method UploadFileAsync (line 21) | public async Task<IHistory> UploadFileAsync(IUploadPreset preset, stri...
method GetAuthorizationAdress (line 57) | public static string GetAuthorizationAdress()
method GetTokens (line 68) | public static async Task<bool> GetTokens(ImgurPreset preset)
method RefreshToken (line 81) | public static async Task<bool> RefreshToken(ImgurPreset preset)
method IsAuthorizationExpired (line 94) | public static bool IsAuthorizationExpired(ImgurPreset preset)
method IsAuthorized (line 99) | public static async Task<bool> IsAuthorized(ImgurPreset preset)
method GetAlbums (line 110) | public static async Task<List<ImgurAlbum>> GetAlbums(ImgurPreset preset)
method AskForAlbum (line 134) | public static async Task<string> AskForAlbum(ImgurPreset preset)
method GetTokens (line 142) | private static async Task<bool> GetTokens(ImgurPreset preset, Dictiona...
method Upload (line 160) | private async Task<History> Upload(ImgurPreset preset, string path, Di...
FILE: ScreenToGif/Cloud/YandexDisk.cs
class YandexDisk (line 17) | public class YandexDisk : IUploader
method UploadFileAsync (line 19) | public async Task<IHistory> UploadFileAsync(IUploadPreset preset, stri...
method GetAsync (line 50) | private async Task<T> GetAsync<T>(YandexPreset preset, string url, Can...
method PutAsync (line 84) | private async Task PutAsync(YandexPreset preset, string url, HttpConte...
method GetAuthorizationAdress (line 109) | public static string GetAuthorizationAdress()
method IsAuthorized (line 120) | public static bool IsAuthorized(YandexPreset preset)
FILE: ScreenToGif/Controls/AdornerControl.cs
class AdornedControl (line 13) | public class AdornedControl : ContentControl
method AdornedControl (line 92) | static AdornedControl()
method AdornedControl (line 98) | public AdornedControl()
method AdornedControl_DataContextChanged (line 108) | private void AdornedControl_DataContextChanged(object sender, Dependen...
method UpdateAdornerDataContext (line 116) | private void UpdateAdornerDataContext()
method ShowAdorner (line 125) | public void ShowAdorner()
method HideAdorner (line 133) | public void HideAdorner()
method ShowAdornerCommand_Executed (line 173) | private static void ShowAdornerCommand_Executed(object target, Execute...
method HideAdornerCommand_Executed (line 182) | private static void HideAdornerCommand_Executed(object target, Execute...
method IsAdornerVisible_PropertyChanged (line 191) | private static void IsAdornerVisible_PropertyChanged(DependencyObject ...
method AdornerContent_PropertyChanged (line 200) | private static void AdornerContent_PropertyChanged(DependencyObject o,...
method ShowOrHideAdornerInternal (line 209) | private void ShowOrHideAdornerInternal()
method ShowAdornerInternal (line 220) | private void ShowAdornerInternal()
method HideAdornerInternal (line 245) | private void HideAdornerInternal()
FILE: ScreenToGif/Controls/AttachmentListBoxItem.cs
class AttachmentListBoxItem (line 12) | public class AttachmentListBoxItem : ListBoxItem
method AttachmentListBoxItem (line 51) | static AttachmentListBoxItem()
method AttachmentListBoxItem (line 56) | public AttachmentListBoxItem(string attachment)
method AttachmentChangedCallback (line 61) | private static void AttachmentChangedCallback(DependencyObject d, Depe...
FILE: ScreenToGif/Controls/AwareTabItem.cs
class AwareTabItem (line 8) | public class AwareTabItem : TabItem
method AwareTabItem (line 56) | static AwareTabItem()
method OnPropertyChanged (line 66) | private static void OnPropertyChanged(DependencyObject d, DependencyPr...
method ShowBackground_OnPropertyChanged (line 76) | private static void ShowBackground_OnPropertyChanged(DependencyObject ...
FILE: ScreenToGif/Controls/BaseRecorder.cs
class BaseRecorder (line 12) | public class BaseRecorder : Window
FILE: ScreenToGif/Controls/BaseScreenRecorder.cs
class BaseScreenRecorder (line 16) | public class BaseScreenRecorder : BaseRecorder
method BaseScreenRecorder (line 48) | public BaseScreenRecorder()
method GarbageTimer_Tick (line 55) | private void GarbageTimer_Tick(object sender, EventArgs e)
method HasFixedDelay (line 61) | internal bool HasFixedDelay()
method GetFixedDelay (line 66) | internal int GetFixedDelay()
method GetTriggerDelay (line 83) | internal int GetTriggerDelay()
method GetCaptureInterval (line 96) | internal int GetCaptureInterval()
method GetDirectCapture (line 111) | internal ICapture GetDirectCapture()
method StartCapture (line 120) | internal virtual void StartCapture()
method PauseCapture (line 137) | internal virtual void PauseCapture()
method StopCapture (line 144) | internal virtual async Task StopCapture()
method StopInternalCapture (line 156) | private void StopInternalCapture()
method PrepareCaptureLoop (line 166) | private void PrepareCaptureLoop(int interval)
method CaptureWithCursor (line 185) | private void CaptureWithCursor(int interval)
method CaptureWithoutCursor (line 213) | private void CaptureWithoutCursor(int interval)
FILE: ScreenToGif/Controls/BaseWindow.cs
class BaseWindow (line 6) | public class BaseWindow : Window
method BaseWindow (line 12) | public BaseWindow()
method OnStateChanged (line 17) | protected override void OnStateChanged(EventArgs e)
FILE: ScreenToGif/Controls/Card.cs
class Card (line 8) | public class Card : Button
method Card (line 51) | static Card()
FILE: ScreenToGif/Controls/CircularProgressBar.cs
class CircularProgressBar (line 9) | internal class CircularProgressBar : ProgressBar
method CircularProgressBar (line 62) | static CircularProgressBar()
method OnApplyTemplate (line 67) | public override void OnApplyTemplate()
method CircularProgressBar_ValueChanged (line 91) | private void CircularProgressBar_ValueChanged(object sender, RoutedPro...
method OnPercentageChanged (line 102) | private static void OnPercentageChanged(DependencyObject sender, Depen...
method OnPropertyChanged (line 108) | private static void OnPropertyChanged(DependencyObject sender, Depende...
method RenderArc (line 118) | public void RenderArc()
method ComputeCartesianCoordinate (line 150) | private Point ComputeCartesianCoordinate(double angle, double radius)
FILE: ScreenToGif/Controls/ColorBox.cs
class ColorBox (line 8) | public class ColorBox : ButtonBase
method ColorBox (line 43) | static ColorBox()
method OnClick (line 48) | protected override void OnClick()
method SelectColor (line 55) | private void SelectColor()
method SelectedColor_Changed (line 64) | private static void SelectedColor_Changed(DependencyObject d, Dependen...
method RaiseColorChangedEvent (line 83) | public void RaiseColorChangedEvent()
FILE: ScreenToGif/Controls/CroppingAdorner.cs
class CroppingAdorner (line 15) | public class CroppingAdorner : Adorner
method FillPropChanged (line 85) | private static void FillPropChanged(DependencyObject d, DependencyProp...
method ClipRectanglePropertyChanged (line 91) | private static void ClipRectanglePropertyChanged(DependencyObject d, D...
method CroppingAdorner (line 105) | static CroppingAdorner()
method CroppingAdorner (line 114) | public CroppingAdorner(UIElement adornedElement, Rect rcInit)
method CropMask_PreviewKeyDown (line 161) | private void CropMask_PreviewKeyDown(object sender, KeyEventArgs e)
method HandleThumb (line 255) | private void HandleThumb(double drcL, double drcT, double drcW, double...
method HandleBottomLeft (line 296) | private void HandleBottomLeft(object sender, DragDeltaEventArgs args)
method HandleBottomRight (line 303) | private void HandleBottomRight(object sender, DragDeltaEventArgs args)
method HandleTopRight (line 310) | private void HandleTopRight(object sender, DragDeltaEventArgs args)
method HandleTopLeft (line 317) | private void HandleTopLeft(object sender, DragDeltaEventArgs args)
method HandleTop (line 324) | private void HandleTop(object sender, DragDeltaEventArgs args)
method HandleLeft (line 331) | private void HandleLeft(object sender, DragDeltaEventArgs args)
method HandleRight (line 338) | private void HandleRight(object sender, DragDeltaEventArgs args)
method HandleBottom (line 345) | private void HandleBottom(object sender, DragDeltaEventArgs args)
method HandleCenter (line 352) | private void HandleCenter(object sender, DragDeltaEventArgs args)
method AdornedElement_SizeChanged (line 390) | private void AdornedElement_SizeChanged(object sender, SizeChangedEven...
method ArrangeOverride (line 434) | protected override Size ArrangeOverride(Size finalSize)
method CropImage (line 451) | public BitmapSource CropImage()
method SetThumbs (line 481) | private void SetThumbs(Rect rc)
method AdornerMargin (line 498) | private Thickness AdornerMargin()
method BuildCorner (line 508) | private void BuildCorner(ref Thumb thumb, Cursor cursor)
method BuildCenter (line 523) | private void BuildCenter(ref Thumb thumb)
method UnitsToPx (line 535) | private Point UnitsToPx(double x, double y)
method SetPosition (line 540) | private void SetPosition(Thumb thumb, double x, double y)
method GetVisualChild (line 554) | protected override Visual GetVisualChild(int index)
FILE: ScreenToGif/Controls/DataGridHeaderBorder.cs
class DataGridHeaderBorder (line 15) | public sealed class DataGridHeaderBorder : Border
method DataGridHeaderBorder (line 17) | static DataGridHeaderBorder()
method MeasureOverride (line 158) | protected override Size MeasureOverride(Size constraint)
method ArrangeOverride (line 198) | protected override Size ArrangeOverride(Size arrangeSize)
method OnRender (line 269) | protected override void OnRender(DrawingContext dc)
method Max0 (line 282) | private static double Max0(double d)
method EnsureCache (line 294) | private static void EnsureCache(int size)
method ReleaseCache (line 319) | private static void ReleaseCache()
method GetCachedFreezable (line 335) | private static Freezable GetCachedFreezable(int index)
method CacheFreezable (line 348) | private static void CacheFreezable(Freezable freezable, int index)
method RenderTheme (line 380) | private void RenderTheme(DrawingContext dc)
type AeroFreezables (line 752) | private enum AeroFreezables : int
FILE: ScreenToGif/Controls/DecimalBox.cs
class DecimalBox (line 12) | public class DecimalBox : ExtendedTextBox
method OnMaximumPropertyChanged (line 125) | private static void OnMaximumPropertyChanged(DependencyObject d, Depen...
method OnValuePropertyChanged (line 134) | private static void OnValuePropertyChanged(DependencyObject d, Depende...
method OnMinimumPropertyChanged (line 158) | private static void OnMinimumPropertyChanged(DependencyObject d, Depen...
method OnDecimalsPropertyChanged (line 167) | private static void OnDecimalsPropertyChanged(DependencyObject d, Depe...
method OnUpdateOnInputPropertyChanged (line 177) | private static void OnUpdateOnInputPropertyChanged(DependencyObject d,...
method OnScalePropertyChanged (line 182) | private static void OnScalePropertyChanged(DependencyObject d, Depende...
method RaiseValueChangedEvent (line 209) | public void RaiseValueChangedEvent()
method DecimalBox (line 219) | static DecimalBox()
method OnApplyTemplate (line 226) | public override void OnApplyTemplate()
method OnInitialized (line 235) | protected override void OnInitialized(EventArgs e)
method OnPreviewMouseLeftButtonDown (line 242) | protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventA...
method OnGotFocus (line 255) | protected override void OnGotFocus(RoutedEventArgs e)
method OnPreviewTextInput (line 263) | protected override void OnPreviewTextInput(TextCompositionEventArgs e)
method OnTextChanged (line 280) | protected override void OnTextChanged(TextChangedEventArgs e)
method OnLostFocus (line 294) | protected override void OnLostFocus(RoutedEventArgs e)
method OnKeyDown (line 318) | protected override void OnKeyDown(KeyEventArgs e)
method OnMouseWheel (line 329) | protected override void OnMouseWheel(MouseWheelEventArgs e)
method OnPasting (line 353) | private void OnPasting(object sender, DataObjectPastingEventArgs e)
method IsEntryAllowed (line 372) | private bool IsEntryAllowed(TextBox textBox, string text)
method IsEntryAllowedInContext (line 381) | private bool IsEntryAllowedInContext(TextBox textBox, string next)
method IsTextAllowed (line 451) | private bool IsTextAllowed(string text)
FILE: ScreenToGif/Controls/DecimalUpDown.cs
class DecimalUpDown (line 9) | public class DecimalUpDown : DecimalBox
method DecimalUpDown (line 18) | static DecimalUpDown()
method OnApplyTemplate (line 23) | public override void OnApplyTemplate()
method DownButton_Click (line 40) | private void DownButton_Click(object sender, RoutedEventArgs e)
method UpButton_Click (line 46) | private void UpButton_Click(object sender, RoutedEventArgs e)
FILE: ScreenToGif/Controls/DisplayTimer.cs
class DisplayTimer (line 9) | public class DisplayTimer : Control
method DisplayTimer (line 92) | static DisplayTimer()
method SyncElapsed (line 103) | private void SyncElapsed()
method Start (line 108) | public void Start()
method Pause (line 128) | public void Pause()
method Stop (line 139) | public void Stop()
method Reset (line 153) | public void Reset()
method SetElapsed (line 165) | public void SetElapsed(int seconds)
FILE: ScreenToGif/Controls/DoubleBox.cs
class DoubleBox (line 12) | public class DoubleBox : ExtendedTextBox
method OnMaximumPropertyChanged (line 115) | private static void OnMaximumPropertyChanged(DependencyObject d, Depen...
method OnValuePropertyChanged (line 124) | private static void OnValuePropertyChanged(DependencyObject d, Depende...
method OnMinimumPropertyChanged (line 148) | private static void OnMinimumPropertyChanged(DependencyObject d, Depen...
method OnDecimalsPropertyChanged (line 157) | private static void OnDecimalsPropertyChanged(DependencyObject d, Depe...
method OnUpdateOnInputPropertyChanged (line 167) | private static void OnUpdateOnInputPropertyChanged(DependencyObject d,...
method OnScalePropertyChanged (line 172) | private static void OnScalePropertyChanged(DependencyObject d, Depende...
method RaiseValueChangedEvent (line 198) | public void RaiseValueChangedEvent()
method DoubleBox (line 208) | static DoubleBox()
method OnApplyTemplate (line 215) | public override void OnApplyTemplate()
method OnInitialized (line 224) | protected override void OnInitialized(EventArgs e)
method OnPreviewMouseLeftButtonDown (line 231) | protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventA...
method OnGotFocus (line 244) | protected override void OnGotFocus(RoutedEventArgs e)
method OnPreviewTextInput (line 252) | protected override void OnPreviewTextInput(TextCompositionEventArgs e)
method OnTextChanged (line 269) | protected override void OnTextChanged(TextChangedEventArgs e)
method OnLostFocus (line 286) | protected override void OnLostFocus(RoutedEventArgs e)
method OnKeyDown (line 310) | protected override void OnKeyDown(KeyEventArgs e)
method OnMouseWheel (line 321) | protected override void OnMouseWheel(MouseWheelEventArgs e)
method OnPasting (line 345) | private void OnPasting(object sender, DataObjectPastingEventArgs e)
method IsEntryAllowed (line 364) | private bool IsEntryAllowed(TextBox textBox, string text)
method IsEntryAllowedInContext (line 373) | private bool IsEntryAllowedInContext(TextBox textBox, string next)
method IsTextAllowed (line 441) | private bool IsTextAllowed(string text)
FILE: ScreenToGif/Controls/DoubleUpDown.cs
class DoubleUpDown (line 9) | public class DoubleUpDown : DoubleBox
method DoubleUpDown (line 18) | static DoubleUpDown()
method OnApplyTemplate (line 23) | public override void OnApplyTemplate()
method DownButton_Click (line 40) | private void DownButton_Click(object sender, RoutedEventArgs e)
method UpButton_Click (line 46) | private void UpButton_Click(object sender, RoutedEventArgs e)
FILE: ScreenToGif/Controls/DragScrollGrid.cs
class DragScrollGrid (line 11) | public class DragScrollGrid : Grid
method DragScrollGrid (line 34) | static DragScrollGrid()
method OnApplyTemplate (line 41) | public override void OnApplyTemplate()
method DragScrollGrid_MouseDown (line 52) | private void DragScrollGrid_MouseDown(object sender, System.Windows.In...
method DragScrollGrid_MouseMove (line 58) | private void DragScrollGrid_MouseMove(object sender, System.Windows.In...
method DragScrollGrid_MouseUp (line 73) | private void DragScrollGrid_MouseUp(object sender, System.Windows.Inpu...
FILE: ScreenToGif/Controls/DrawingCanvas.cs
class DrawingCanvas (line 17) | internal class DrawingCanvas : Control
type DrawingModes (line 19) | internal enum DrawingModes
type Shapes (line 29) | internal enum Shapes
method DrawingCanvas (line 186) | static DrawingCanvas()
method OnApplyTemplate (line 193) | public override void OnApplyTemplate()
method OnMouseLeftButtonDown (line 209) | protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
method OnMouseMove (line 262) | protected override void OnMouseMove(MouseEventArgs e)
method OnMouseLeftButtonUp (line 286) | protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
method OnPreviewKeyDown (line 325) | protected override void OnPreviewKeyDown(KeyEventArgs e)
method OnMouseWheel (line 344) | protected override void OnMouseWheel(MouseWheelEventArgs e)
method GetBoundedCoordinates (line 372) | private Point GetBoundedCoordinates(MouseEventArgs e)
method RemoveAllAdorners (line 391) | private void RemoveAllAdorners()
method RemoveAllSelectedShapes (line 403) | private void RemoveAllSelectedShapes()
method RotateAllSelectedShapes (line 414) | private void RotateAllSelectedShapes(double angleDifference)
method CalculateOrientation (line 424) | private void CalculateOrientation(Point start, Point current)
method RenderShape (line 432) | private void RenderShape()
method RemoveIfTooSmall (line 528) | private void RemoveIfTooSmall()
method GetSelectedShapes (line 536) | private List<Shape> GetSelectedShapes(Visual element, Geometry geometry)
method SelectShape (line 552) | private void SelectShape(Shape shape)
method DeselectShape (line 570) | private void DeselectShape(Shape shape)
method AdjustDepth (line 584) | private void AdjustDepth()
method DeselectAll (line 608) | public void DeselectAll()
method RemoveAllShapes (line 615) | public void RemoveAllShapes()
method DrawingMode_PropertyChanged (line 626) | private static void DrawingMode_PropertyChanged(DependencyObject d, De...
method Visual_PropertyChanged (line 634) | private static void Visual_PropertyChanged(DependencyObject d, Depende...
method Adorner_Manipulated (line 665) | private void Adorner_Manipulated(object sender, ManipulatedEventArgs a...
method Adorner_RotationResetRequested (line 693) | private void Adorner_RotationResetRequested(object sender, RoutedEvent...
method Adorner_Removed (line 705) | private void Adorner_Removed(object sender, RoutedEventArgs e)
method Adorner_MouseLeftButtonDown (line 711) | private void Adorner_MouseLeftButtonDown(object sender, MouseButtonEve...
method MainInkCanvas_MouseLeftButtonDown (line 723) | private void MainInkCanvas_MouseLeftButtonDown(object sender, MouseBut...
method MainInkCanvas_StrokeCollected (line 729) | private void MainInkCanvas_StrokeCollected(object sender, InkCanvasStr...
FILE: ScreenToGif/Controls/DropDownButton.cs
class DropDownButton (line 11) | public class DropDownButton : ComboBox
method DropDownButton (line 66) | static DropDownButton()
FILE: ScreenToGif/Controls/DynamicGrid.cs
class DynamicGrid (line 7) | public class DynamicGrid : Grid
method ValidateFirstColumn (line 61) | private static bool ValidateFirstColumn(object o)
method ValidateRows (line 66) | private static bool ValidateRows(object o)
method ValidateColumns (line 71) | private static bool ValidateColumns(object o)
method MeasureOverride (line 78) | protected override Size MeasureOverride(Size constraint)
method UpdateComputedValues (line 162) | private void UpdateComputedValues()
FILE: ScreenToGif/Controls/ElementAdorner.cs
class ElementAdorner (line 13) | internal class ElementAdorner : Adorner
method Angle_PropertyChanged (line 19) | private static void Angle_PropertyChanged(DependencyObject d, Dependen...
method ElementAdorner (line 78) | public ElementAdorner(FrameworkElement adornedElement, bool canMove, b...
method ArrangeOverride (line 158) | protected override Size ArrangeOverride(Size finalSize)
method GetVisualChild (line 199) | protected override Visual GetVisualChild(int index)
method OnPreviewKeyDown (line 204) | protected override void OnPreviewKeyDown(KeyEventArgs e)
method OnMouseWheel (line 217) | protected override void OnMouseWheel(MouseWheelEventArgs e)
method RaiseManipulatedEvent (line 266) | void RaiseManipulatedEvent(double angleDiff)
method RaiseManipulatedEvent (line 274) | void RaiseManipulatedEvent(double widthDiff, double heightDiff, double...
method RaiseRotationResetRequestedEvent (line 282) | void RaiseRotationResetRequestedEvent()
method RaiseDuplicatedEvent (line 290) | void RaiseDuplicatedEvent()
method RaiseRemovedEvent (line 298) | void RaiseRemovedEvent()
method BuildAdornerBorder (line 313) | private void BuildAdornerBorder()
method BuildAdornerThumb (line 347) | private void BuildAdornerThumb(ref Thumb thumb, Cursor cursor)
method BuildAdornerRotator (line 365) | private void BuildAdornerRotator()
method AfterManipulation (line 386) | private void AfterManipulation()
method AdornedElement_PreviewMouseLeftButtonDown (line 396) | private void AdornedElement_PreviewMouseLeftButtonDown(object sender, ...
method AdornedElement_MouseMove (line 405) | private void AdornedElement_MouseMove(object sender, MouseEventArgs e)
method AdornedElement_MouseUp (line 442) | private void AdornedElement_MouseUp(object sender, MouseButtonEventArg...
method HandleTopLeft (line 450) | private void HandleTopLeft(object sender, DragDeltaEventArgs e)
method HandleTopRight (line 489) | private void HandleTopRight(object sender, DragDeltaEventArgs e)
method HandleBottomLeft (line 522) | private void HandleBottomLeft(object sender, DragDeltaEventArgs e)
method HandleBottomRight (line 557) | private void HandleBottomRight(object sender, DragDeltaEventArgs e)
method HandleLeft (line 586) | private void HandleLeft(object sender, DragDeltaEventArgs e)
method HandleTop (line 613) | private void HandleTop(object sender, DragDeltaEventArgs e)
method HandleRight (line 640) | private void HandleRight(object sender, DragDeltaEventArgs e)
method HandleBottom (line 662) | private void HandleBottom(object sender, DragDeltaEventArgs e)
method RotationThumb_DragStarted (line 684) | private void RotationThumb_DragStarted(object sender, DragStartedEvent...
method RotationThumb_DragDelta (line 698) | private void RotationThumb_DragDelta(object sender, DragDeltaEventArgs e)
FILE: ScreenToGif/Controls/EncoderListViewItem.cs
class EncoderListViewItem (line 25) | public class EncoderListViewItem : ListViewItem
method RaiseCancelClickedEvent (line 520) | public void RaiseCancelClickedEvent()
method RaiseOpenFileClickedEvent (line 529) | public void RaiseOpenFileClickedEvent()
method RaiseExploreFolderClickedEvent (line 538) | public void RaiseExploreFolderClickedEvent()
method EncoderListViewItem (line 549) | static EncoderListViewItem()
method OnApplyTemplate (line 555) | public override void OnApplyTemplate()
method OutputFilename_PropertyChanged (line 747) | private static void OutputFilename_PropertyChanged(DependencyObject d,...
method TimeSpan_PropertyChanged (line 755) | private static void TimeSpan_PropertyChanged(DependencyObject d, Depen...
method SetClipboard (line 764) | private void SetClipboard(DataObject data)
FILE: ScreenToGif/Controls/ExListViewItem.cs
class ExListViewItem (line 9) | public class ExListViewItem : ListViewItem
method ExListViewItem (line 55) | static ExListViewItem()
method OnMouseLeftButtonDown (line 60) | protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
method OnMouseLeftButtonUp (line 72) | protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
method OnLostMouseCapture (line 82) | protected override void OnLostMouseCapture(MouseEventArgs e)
method OnMouseLeave (line 88) | protected override void OnMouseLeave(MouseEventArgs e)
FILE: ScreenToGif/Controls/ExWindow.cs
class ExWindow (line 15) | [TemplatePart(Name = NonClientAreaElementId, Type = typeof(UIElement))]
method ExWindow (line 70) | static ExWindow()
method ExWindow (line 75) | public ExWindow()
method OnSourceInitialized (line 91) | protected override void OnSourceInitialized(EventArgs e)
method OnApplyTemplate (line 98) | public override void OnApplyTemplate()
method RegisterBaseCommands (line 113) | protected void RegisterBaseCommands()
method Window_Hook (line 121) | private nint Window_Hook(nint hwnd, int msg, nint wparam, nint lparam,...
method ShowCustomCaptionButtons_PropertyChanged (line 242) | private static void ShowCustomCaptionButtons_PropertyChanged(Dependenc...
method ShowMinimizeButton_PropertyChanged (line 253) | private static void ShowMinimizeButton_PropertyChanged(DependencyObjec...
method ShowMaximizeButton_PropertyChanged (line 264) | private static void ShowMaximizeButton_PropertyChanged(DependencyObjec...
FILE: ScreenToGif/Controls/ExtendedButton.cs
class ExtendedButton (line 8) | public class ExtendedButton : Button
method ExtendedButton (line 91) | static ExtendedButton()
FILE: ScreenToGif/Controls/ExtendedCheckBox.cs
class ExtendedCheckBox (line 6) | public class ExtendedCheckBox : CheckBox
method RaiseCheckedChangedEvent (line 72) | public void RaiseCheckedChangedEvent()
method ExtendedCheckBox (line 82) | static ExtendedCheckBox()
method OnApplyTemplate (line 87) | public override void OnApplyTemplate()
FILE: ScreenToGif/Controls/ExtendedComboBox.cs
class ExtendedComboBox (line 6) | public class ExtendedComboBox : ComboBox
method ExtendedComboBox (line 42) | static ExtendedComboBox()
FILE: ScreenToGif/Controls/ExtendedListBoxItem.cs
class ExtendedListBoxItem (line 11) | public class ExtendedListBoxItem : ListBoxItem
method ExtendedListBoxItem (line 117) | static ExtendedListBoxItem()
FILE: ScreenToGif/Controls/ExtendedMenuItem.cs
class ExtendedMenuItem (line 11) | public class ExtendedMenuItem : MenuItem
method Icon_Changed (line 108) | private static void Icon_Changed(DependencyObject d, DependencyPropert...
method ExtendedMenuItem (line 115) | static ExtendedMenuItem()
FILE: ScreenToGif/Controls/ExtendedProgressBar.cs
class ExtendedProgressBar (line 6) | public class ExtendedProgressBar : ProgressBar
type ProgressState (line 8) | public enum ProgressState
method ExtendedProgressBar (line 31) | static ExtendedProgressBar()
FILE: ScreenToGif/Controls/ExtendedRadioButton.cs
class ExtendedRadioButton (line 8) | public class ExtendedRadioButton : RadioButton
method ExtendedRadioButton (line 79) | static ExtendedRadioButton()
FILE: ScreenToGif/Controls/ExtendedRepeatButton.cs
class ExtendedRepeatButton (line 8) | public class ExtendedRepeatButton : RepeatButton
method ExtendedRepeatButton (line 79) | static ExtendedRepeatButton()
FILE: ScreenToGif/Controls/ExtendedSlider.cs
class ExtendedSlider (line 6) | internal class ExtendedSlider : Slider
FILE: ScreenToGif/Controls/ExtendedTextBox.cs
class ExtendedTextBox (line 10) | public class ExtendedTextBox : TextBox
method ExtendedTextBox (line 59) | static ExtendedTextBox()
method OnApplyTemplate (line 64) | public override void OnApplyTemplate()
method OnPreviewKeyDown (line 71) | protected override void OnPreviewKeyDown(KeyEventArgs e)
method OnPreviewTextInput (line 82) | protected override void OnPreviewTextInput(TextCompositionEventArgs e)
method OnPreviewMouseLeftButtonDown (line 93) | protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventA...
method OnGotFocus (line 105) | protected override void OnGotFocus(RoutedEventArgs e)
method OnPasting (line 113) | private void OnPasting(object sender, DataObjectPastingEventArgs e)
method IsEntryAllowed (line 128) | private bool IsEntryAllowed(string text)
method IsTextAllowed (line 137) | private bool IsTextAllowed(string text)
method IsNullOrWhiteSpace (line 142) | public bool IsNullOrWhiteSpace()
method IsNullOrEmpty (line 147) | public bool IsNullOrEmpty()
method Trim (line 152) | public string Trim()
FILE: ScreenToGif/Controls/ExtendedToggleButton.cs
class ExtendedToggleButton (line 11) | public class ExtendedToggleButton : ToggleButton
method ExtendedToggleButton (line 133) | static ExtendedToggleButton()
FILE: ScreenToGif/Controls/ExtendedUniformGrid.cs
class ExtendedUniformGrid (line 7) | public class ExtendedUniformGrid : UniformGrid
method MeasureOverride (line 24) | protected override Size MeasureOverride(Size constraint)
method ArrangeOverride (line 68) | protected override Size ArrangeOverride(Size arrangeSize)
method UpdateComputedValues (line 116) | private void UpdateComputedValues()
FILE: ScreenToGif/Controls/FolderSelector.cs
class FolderSelector (line 18) | internal class FolderSelector
class FileOpenDialogRCW (line 67) | [ComImport, ClassInterface(ClassInterfaceType.None), TypeLibType(TypeL...
type IFileDialog (line 70) | [ComImport, Guid("42F85136-DB7E-439C-85F1-E4075D135FC8"), InterfaceTyp...
method Show (line 73) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFileTypes (line 76) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFileTypeIndex (line 79) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetFileTypeIndex (line 82) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method Advise (line 85) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method Unadvise (line 88) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetOptions (line 91) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetOptions (line 94) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetDefaultFolder (line 97) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFolder (line 100) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetFolder (line 103) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetCurrentSelection (line 106) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFileName (line 109) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetFileName (line 112) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetTitle (line 115) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetOkButtonLabel (line 118) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFileNameLabel (line 121) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetResult (line 124) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method AddPlace (line 127) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetDefaultExtension (line 130) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method Close (line 133) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetClientGuid (line 136) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method ClearClientData (line 139) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SetFilter (line 142) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
type IShellItem (line 146) | [ComImport, Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"), InterfaceTyp...
method BindToHandler (line 149) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetParent (line 152) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetDisplayName (line 155) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method GetAttributes (line 158) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method Compare (line 161) | [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodC...
method SHCreateItemFromParsingName (line 167) | [DllImport("shell32.dll", CharSet = CharSet.Unicode, SetLastError = tr...
method ShowDialog (line 193) | public bool ShowDialog(IWin32Window owner = null)
FILE: ScreenToGif/Controls/FrameViewer.cs
class FrameViewer (line 11) | public class FrameViewer : Control
method FrameViewer (line 52) | static
Copy disabled (too large)
Download .json
Condensed preview — 804 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,513K chars).
[
{
"path": ".editorconfig",
"chars": 9447,
"preview": "# Remove the line below if you want to inherit .editorconfig settings from higher directories\nroot = true\n\n# All files\n["
},
{
"path": ".gitattributes",
"chars": 2518,
"preview": "###############################################################################\n# Set default behavior to automatically "
},
{
"path": ".github/FUNDING.yml",
"chars": 628,
"preview": "# These are supported funding model platforms\n\ngithub: [NickeManarin]\npatreon: nicke\nopen_collective: # Replace with a s"
},
{
"path": ".github/ISSUE_TEMPLATE/bug-report.md",
"chars": 700,
"preview": "---\nname: Bug Report\nabout: Create a report to help us improve\ntitle: \"[Bug] Title\"\nlabels: \"\\U0001F537 Bug \\U0001F41B, "
},
{
"path": ".github/ISSUE_TEMPLATE/feature-request.md",
"chars": 660,
"preview": "---\nname: Feature Request\nabout: Suggest an idea for this project\ntitle: \"[Feature Request] Title\"\nlabels: \"\\U0001F537En"
},
{
"path": ".github/workflows/discord-releases.yml",
"chars": 1055,
"preview": "# This is a basic workflow to help you get started with Actions\nname: Discord • Releases\n\n# Controls when the action wil"
},
{
"path": ".gitignore",
"chars": 488,
"preview": "################################################################################\n# This .gitignore file was automaticall"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3246,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "CONTRIBUTING.md",
"chars": 292,
"preview": "## Rules to follow for this project:\n\n* Every feature should be packed into the main executable, unless it's optional li"
},
{
"path": "Directory.Build.props",
"chars": 821,
"preview": "<Project>\n <PropertyGroup>\n <Version>2.43.0</Version>\n <FileVersion>2.43.0</FileVersion>\n <AssemblyVersion>2.4"
},
{
"path": "Directory.Packages.props",
"chars": 1245,
"preview": "<Project>\n <PropertyGroup>\n <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\n </PropertyGroup>"
},
{
"path": "GifRecorder.sln",
"chars": 16134,
"preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 18\nVisualStudioVersion = 18.5.11605."
},
{
"path": "LICENSE.txt",
"chars": 2630,
"preview": "Microsoft Public License (Ms-PL)\n\nThis license governs use of the accompanying software. If you use the software, you ac"
},
{
"path": "LOCALIZATION.md",
"chars": 6268,
"preview": "# Localization\nScreenToGif's base language is [English](https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenTo"
},
{
"path": "Other/Translator/App.xaml",
"chars": 67387,
"preview": "<Application x:Class=\"Translator.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n "
},
{
"path": "Other/Translator/App.xaml.cs",
"chars": 1856,
"preview": "using System;\nusing System.Reflection;\nusing System.Windows;\nusing System.Windows.Threading;\nusing Translator.Util;\n\nnam"
},
{
"path": "Other/Translator/Controls/ExtendedTextBox.cs",
"chars": 650,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Input;\n\nnamespace Translator.Controls;\n\npublic"
},
{
"path": "Other/Translator/Controls/ImageButton.cs",
"chars": 2618,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\n\nnamespace Translator.Controls;\n\n/// <"
},
{
"path": "Other/Translator/Controls/ImageMenuItem.cs",
"chars": 1959,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\n\nnamespace Translator.Controls;\n\n/// <"
},
{
"path": "Other/Translator/Controls/StatusBand.cs",
"chars": 4821,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media.Animation;\n"
},
{
"path": "Other/Translator/Converters/MultiLineTitle.cs",
"chars": 527,
"preview": "using System;\nusing System.Globalization;\nusing System.Windows.Data;\n\nnamespace Translator.Converters;\n\npublic class Mul"
},
{
"path": "Other/Translator/Converters/NullToInvertedBool.cs",
"chars": 442,
"preview": "using System;\nusing System.Globalization;\nusing System.Windows.Data;\n\nnamespace Translator.Converters;\n\npublic class Nul"
},
{
"path": "Other/Translator/Dialog.xaml",
"chars": 2384,
"preview": "<Window x:Class=\"Translator.Dialog\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n x"
},
{
"path": "Other/Translator/Dialog.xaml.cs",
"chars": 5310,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\n\nnamespace Translator;\n\n/// <summary>\n/// Interaction"
},
{
"path": "Other/Translator/ExceptionDialog.xaml",
"chars": 2904,
"preview": "<Window x:Class=\"Translator.ExceptionDialog\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n"
},
{
"path": "Other/Translator/ExceptionDialog.xaml.cs",
"chars": 2849,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows;\nusing System.Windows.Documents;\nusing Translator.Util;\n\nna"
},
{
"path": "Other/Translator/ExceptionViewer.xaml",
"chars": 3706,
"preview": "<Window x:Class=\"Translator.ExceptionViewer\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n"
},
{
"path": "Other/Translator/ExceptionViewer.xaml.cs",
"chars": 1313,
"preview": "using System;\nusing System.Windows;\n\nnamespace Translator;\n\npublic partial class ExceptionViewer\n{\n #region Variables"
},
{
"path": "Other/Translator/Properties/AssemblyInfo.cs",
"chars": 2398,
"preview": "using System.Reflection;\nusing System.Runtime.InteropServices;\nusing System.Windows;\n\n// General Information about an a"
},
{
"path": "Other/Translator/Themes/Buttons.xaml",
"chars": 27013,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "Other/Translator/Themes/Colors.xaml",
"chars": 1434,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Themes/ComboBox.xaml",
"chars": 18958,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Themes/DataGridStyle.xaml",
"chars": 30331,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Themes/Generic.xaml",
"chars": 26442,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Themes/IconSet.xaml",
"chars": 208445,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Themes/ProgressBar.xaml",
"chars": 4513,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "Other/Translator/Translator.csproj",
"chars": 963,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <TargetFramework>net8.0-windows</TargetFramework>\n <OutputTyp"
},
{
"path": "Other/Translator/TranslatorWindow.xaml",
"chars": 8248,
"preview": "<Window x:Class=\"Translator.TranslatorWindow\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\""
},
{
"path": "Other/Translator/TranslatorWindow.xaml.cs",
"chars": 30152,
"preview": "using Microsoft.Win32;\nusing System;\nusing System.Collections.Generic;\nusing System.Collections.ObjectModel;\nusing Syste"
},
{
"path": "Other/Translator/Util/DataGridHelper.cs",
"chars": 5658,
"preview": "using System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nusing System.Win"
},
{
"path": "Other/Translator/Util/LogWriter.cs",
"chars": 5779,
"preview": "using System;\nusing System.IO;\n\nnamespace Translator.Util;\n\n/// <summary>\n/// Log Writer Class\n/// </summary>\npublic sta"
},
{
"path": "Other/Translator/Util/VisualHelper.cs",
"chars": 2218,
"preview": "using System;\nusing System.IO;\nusing System.Windows;\nusing System.Windows.Media;\nusing System.Windows.Media.Animation;\n\n"
},
{
"path": "README.md",
"chars": 6763,
"preview": "<div align=\"center\" markdown=\"1\">\n <sup>Special thanks to:</sup>\n <br>\n <br>\n <a href=\"https://www.warp.dev/Scre"
},
{
"path": "ScreenToGif/App.xaml",
"chars": 97466,
"preview": "<Application x:Class=\"ScreenToGif.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n "
},
{
"path": "ScreenToGif/App.xaml.cs",
"chars": 17088,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Net;\nusing Sys"
},
{
"path": "ScreenToGif/Capture/BaseCapture.cs",
"chars": 4765,
"preview": "using System;\nusing System.Collections.Concurrent;\nusing System.Threading.Tasks;\nusing System.Windows;\nusing ScreenToGif"
},
{
"path": "ScreenToGif/Capture/CachedCapture.cs",
"chars": 11916,
"preview": "using System;\nusing System.IO;\nusing System.IO.Compression;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusi"
},
{
"path": "ScreenToGif/Capture/DirectCachedCapture.cs",
"chars": 33538,
"preview": "using System;\nusing System.IO;\nusing System.IO.Compression;\nusing System.Runtime.InteropServices;\nusing System.Threading"
},
{
"path": "ScreenToGif/Capture/DirectChangedCachedCapture.cs",
"chars": 15059,
"preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Windows;\nusing ScreenToGif.Model;\nusing ScreenToGif.Uti"
},
{
"path": "ScreenToGif/Capture/DirectChangedImageCapture.cs",
"chars": 15816,
"preview": "using System;\nusing System.Drawing.Imaging;\nusing System.Runtime.InteropServices;\nusing ScreenToGif.Model;\nusing ScreenT"
},
{
"path": "ScreenToGif/Capture/DirectImageCapture.cs",
"chars": 48879,
"preview": "using System;\nusing System.Drawing.Imaging;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusing System.Thread"
},
{
"path": "ScreenToGif/Capture/ICapture.cs",
"chars": 994,
"preview": "using System;\nusing System.Threading.Tasks;\nusing ScreenToGif.Model;\n\nnamespace ScreenToGif.Capture;\n\ninternal interface"
},
{
"path": "ScreenToGif/Capture/ImageCapture.cs",
"chars": 6945,
"preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing ScreenToGif.Domain.Enums.Native;"
},
{
"path": "ScreenToGif/Capture/RegionSelectHelper.cs",
"chars": 2948,
"preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing System.Windows;\nusing ScreenToG"
},
{
"path": "ScreenToGif/Cloud/CloudFactory.cs",
"chars": 478,
"preview": "using System;\nusing ScreenToGif.Domain.Enums;\nusing ScreenToGif.Domain.Interfaces;\n\nnamespace ScreenToGif.Cloud;\n\npublic"
},
{
"path": "ScreenToGif/Cloud/Imgur.cs",
"chars": 7176,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Collections.Specialized;\nusing Sy"
},
{
"path": "ScreenToGif/Cloud/YandexDisk.cs",
"chars": 4254,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Net;\nusing System.Net.Http;\nusing System.T"
},
{
"path": "ScreenToGif/Controls/AdornerControl.cs",
"chars": 8260,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Documents;\nusing System.Windows.Input;\nusing S"
},
{
"path": "ScreenToGif/Controls/AttachmentListBoxItem.cs",
"chars": 2620,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.IO;\nusing System.Windows;\nusing System.Win"
},
{
"path": "ScreenToGif/Controls/AwareTabItem.cs",
"chars": 2710,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/BaseRecorder.cs",
"chars": 2138,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Input;\nusing ScreenToGif.Domain.Enums;\nusing Scr"
},
{
"path": "ScreenToGif/Controls/BaseScreenRecorder.cs",
"chars": 6892,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Threading;\nusing System.Threading"
},
{
"path": "ScreenToGif/Controls/BaseWindow.cs",
"chars": 583,
"preview": "using System;\nusing System.Windows;\n\nnamespace ScreenToGif.Controls;\n\npublic class BaseWindow : Window\n{\n public Date"
},
{
"path": "ScreenToGif/Controls/Card.cs",
"chars": 1595,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\nusing ScreenToGif.Domain.Enums;\n\nnamesp"
},
{
"path": "ScreenToGif/Controls/CircularProgressBar.cs",
"chars": 5467,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\nusing System.Windows.Shap"
},
{
"path": "ScreenToGif/Controls/ColorBox.cs",
"chars": 3066,
"preview": "using System.Windows;\nusing System.Windows.Controls.Primitives;\nusing System.Windows.Media;\nusing ScreenToGif.Windows.Ot"
},
{
"path": "ScreenToGif/Controls/CroppingAdorner.cs",
"chars": 17737,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/DataGridHeaderBorder.cs",
"chars": 29999,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Diagnostics;\nusing System.Wind"
},
{
"path": "ScreenToGif/Controls/DecimalBox.cs",
"chars": 14374,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Globalization;\nusing System.Linq;\nusing System.Text.RegularExpre"
},
{
"path": "ScreenToGif/Controls/DecimalUpDown.cs",
"chars": 1279,
"preview": "using System.Windows;\nusing System.Windows.Controls.Primitives;\n\nnamespace ScreenToGif.Controls;\n\n/// <summary>\n/// Deci"
},
{
"path": "ScreenToGif/Controls/DisplayTimer.cs",
"chars": 5261,
"preview": "using System;\nusing System.Diagnostics;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Thread"
},
{
"path": "ScreenToGif/Controls/DoubleBox.cs",
"chars": 13615,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Globalization;\nusing System.Linq;\nusing System.Text.RegularExpre"
},
{
"path": "ScreenToGif/Controls/DoubleUpDown.cs",
"chars": 1273,
"preview": "using System.Windows;\nusing System.Windows.Controls.Primitives;\n\nnamespace ScreenToGif.Controls;\n\n/// <summary>\n/// Doub"
},
{
"path": "ScreenToGif/Controls/DragScrollGrid.cs",
"chars": 2047,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Input;\n\nnamespace ScreenToGif.Controls;\n\n/// <"
},
{
"path": "ScreenToGif/Controls/DrawingCanvas.cs",
"chars": 25071,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nus"
},
{
"path": "ScreenToGif/Controls/DropDownButton.cs",
"chars": 2358,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/DynamicGrid.cs",
"chars": 6285,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\npublic class Dynami"
},
{
"path": "ScreenToGif/Controls/ElementAdorner.cs",
"chars": 24482,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/EncoderListViewItem.cs",
"chars": 28365,
"preview": "using System;\nusing System.Collections.Specialized;\nusing System.ComponentModel;\nusing System.Diagnostics;\nusing System."
},
{
"path": "ScreenToGif/Controls/ExListViewItem.cs",
"chars": 3047,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Input;\nusing Syst"
},
{
"path": "ScreenToGif/Controls/ExWindow.cs",
"chars": 11902,
"preview": "using ScreenToGif.Domain.Enums.Native;\nusing ScreenToGif.Native.External;\nusing ScreenToGif.Native.Helpers;\nusing Screen"
},
{
"path": "ScreenToGif/Controls/ExtendedButton.cs",
"chars": 3477,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/ExtendedCheckBox.cs",
"chars": 3125,
"preview": "using System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\npublic class ExtendedCheckBox : C"
},
{
"path": "ScreenToGif/Controls/ExtendedComboBox.cs",
"chars": 1833,
"preview": "using System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\npublic class ExtendedComboBox : C"
},
{
"path": "ScreenToGif/Controls/ExtendedListBoxItem.cs",
"chars": 4438,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/ExtendedMenuItem.cs",
"chars": 4381,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/ExtendedProgressBar.cs",
"chars": 1137,
"preview": "using System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\npublic class ExtendedProgressBar "
},
{
"path": "ScreenToGif/Controls/ExtendedRadioButton.cs",
"chars": 3013,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media;\n\nnamespace"
},
{
"path": "ScreenToGif/Controls/ExtendedRepeatButton.cs",
"chars": 3089,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls.Primitives;\nusing System.Windows.Media;"
},
{
"path": "ScreenToGif/Controls/ExtendedSlider.cs",
"chars": 469,
"preview": "using System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\ninternal class ExtendedSlider : S"
},
{
"path": "ScreenToGif/Controls/ExtendedTextBox.cs",
"chars": 4447,
"preview": "using System.ComponentModel;\nusing System.Text.RegularExpressions;\nusing System.Windows;\nusing System.Windows.Controls;\n"
},
{
"path": "ScreenToGif/Controls/ExtendedToggleButton.cs",
"chars": 5420,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls.Primitives;\nusing System.Windows.Media;"
},
{
"path": "ScreenToGif/Controls/ExtendedUniformGrid.cs",
"chars": 4430,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls.Primitives;\n\nnamespace ScreenToGif.Controls;\n\npublic c"
},
{
"path": "ScreenToGif/Controls/FolderSelector.cs",
"chars": 10681,
"preview": "using System;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing System.Windows.Forms;\n\n"
},
{
"path": "ScreenToGif/Controls/FrameViewer.cs",
"chars": 1976,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Media.Imaging;\n\nn"
},
{
"path": "ScreenToGif/Controls/FrameworkElementAdorner.cs",
"chars": 7995,
"preview": "using System.Collections;\nusing System.Windows;\nusing System.Windows.Documents;\nusing System.Windows.Media;\nusing Screen"
},
{
"path": "ScreenToGif/Controls/HeaderedTooltip.cs",
"chars": 3932,
"preview": "using System.Collections.ObjectModel;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nusing System"
},
{
"path": "ScreenToGif/Controls/HexadecimalBox.cs",
"chars": 8001,
"preview": "using System;\nusing System.Linq;\nusing System.Text.RegularExpressions;\nusing System.Windows;\nusing System.Windows.Contro"
},
{
"path": "ScreenToGif/Controls/HideableTabControl.cs",
"chars": 12779,
"preview": "using System;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Prim"
},
{
"path": "ScreenToGif/Controls/InkCanvasExtended.cs",
"chars": 1525,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Ink;\nusing System.Windows.Media;\n\nnamespace Sc"
},
{
"path": "ScreenToGif/Controls/IntegerBox.cs",
"chars": 13376,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Globalization;\nusing System.Text.RegularExpressions;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/IntegerUpDown.cs",
"chars": 1250,
"preview": "using System.Windows;\nusing System.Windows.Controls.Primitives;\n\nnamespace ScreenToGif.Controls;\n\n/// <summary>\n/// Inte"
},
{
"path": "ScreenToGif/Controls/Items/EncoderItem.cs",
"chars": 464,
"preview": "using System;\nusing System.Windows;\n\nnamespace ScreenToGif.Controls.Items;\n\npublic class EncoderItem : GenericItem\n{\n "
},
{
"path": "ScreenToGif/Controls/Items/ExportItem.cs",
"chars": 858,
"preview": "using System.Windows;\nusing ScreenToGif.Domain.Enums;\n\nnamespace ScreenToGif.Controls.Items;\n\npublic class ExportItem : "
},
{
"path": "ScreenToGif/Controls/Items/GenericItem.cs",
"chars": 1416,
"preview": "using System.Windows;\n\nnamespace ScreenToGif.Controls.Items;\n\npublic class GenericItem : FrameworkElement\n{\n public s"
},
{
"path": "ScreenToGif/Controls/Items/QuantizationMethodItem.cs",
"chars": 609,
"preview": "using System.Windows;\nusing ScreenToGif.Domain.Enums;\n\nnamespace ScreenToGif.Controls.Items;\n\npublic class QuantizationM"
},
{
"path": "ScreenToGif/Controls/KeyBox.cs",
"chars": 14240,
"preview": "using ScreenToGif.Util.Helpers;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Win"
},
{
"path": "ScreenToGif/Controls/LabelSeparator.cs",
"chars": 1424,
"preview": "using System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\npublic class LabelSeparator : Con"
},
{
"path": "ScreenToGif/Controls/LightWindow.cs",
"chars": 9430,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\nusing"
},
{
"path": "ScreenToGif/Controls/MoveResizeControl.cs",
"chars": 17555,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/NotificationBox.cs",
"chars": 16854,
"preview": "using System;\nusing System.ComponentModel;\nusing System.IO;\nusing System.Linq;\nusing System.Windows;\nusing System.Window"
},
{
"path": "ScreenToGif/Controls/NotifyIcon.cs",
"chars": 21860,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Linq;\nusing System.Windows;\nusing System.W"
},
{
"path": "ScreenToGif/Controls/NullableIntegerBox.cs",
"chars": 9954,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Text.RegularExpressions;\nusing System.Windows;\nusing System.Wind"
},
{
"path": "ScreenToGif/Controls/NullableIntegerUpDown.cs",
"chars": 1488,
"preview": "using System.Windows;\nusing System.Windows.Controls.Primitives;\n\nnamespace ScreenToGif.Controls;\n\n/// <summary>\n/// Inte"
},
{
"path": "ScreenToGif/Controls/PuncturedRect.cs",
"chars": 3276,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Media;\nusing System.Windows.Shapes;\n\nnamespace ScreenToGif.Cont"
},
{
"path": "ScreenToGif/Controls/RadialPanel.cs",
"chars": 2177,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\n\nnamespace ScreenToGif.Controls;\n\n///<summary>\n///A p"
},
{
"path": "ScreenToGif/Controls/RangeSlider.cs",
"chars": 8084,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/ResizingAdorner.cs",
"chars": 20570,
"preview": "using System;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing Syste"
},
{
"path": "ScreenToGif/Controls/SelectControl.cs",
"chars": 58278,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\n"
},
{
"path": "ScreenToGif/Controls/SelectControlOld.cs",
"chars": 57550,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\n"
},
{
"path": "ScreenToGif/Controls/Shapes/Arrow.cs",
"chars": 4463,
"preview": "using System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Media;\nusing System.Windows.Shapes;\n\nnamespace S"
},
{
"path": "ScreenToGif/Controls/Shapes/Triangle.cs",
"chars": 790,
"preview": "using System.Globalization;\nusing System.Windows.Media;\nusing System.Windows.Shapes;\n\nnamespace ScreenToGif.Controls.Sha"
},
{
"path": "ScreenToGif/Controls/SpectrumSlider.cs",
"chars": 7147,
"preview": "using System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Controls.Primitives;\nusing System.Windows.Inpu"
},
{
"path": "ScreenToGif/Controls/SplitButton.cs",
"chars": 6471,
"preview": "using System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Window"
},
{
"path": "ScreenToGif/Controls/StatusBand.cs",
"chars": 5832,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing System.Windows.Doc"
},
{
"path": "ScreenToGif/Controls/StatusList.cs",
"chars": 2357,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Windows;\nusing System.Windows.Controls;\nusing"
},
{
"path": "ScreenToGif/Controls/TextPath.cs",
"chars": 7811,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Globalization;\nusing System.Windows;\nusing System.Windows.Docume"
},
{
"path": "ScreenToGif/Controls/TimeBox.cs",
"chars": 17186,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Globalization;\nusing System.Windows;\nusing System.Windows.Input;"
},
{
"path": "ScreenToGif/Controls/WebcamControl.xaml",
"chars": 578,
"preview": "<UserControl x:Class=\"ScreenToGif.Controls.WebcamControl\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/x"
},
{
"path": "ScreenToGif/Controls/WebcamControl.xaml.cs",
"chars": 2426,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Windows;\nusing System.Windows.Controls;\nusing ScreenToGif.Util;\n"
},
{
"path": "ScreenToGif/Controls/ZoomBox.cs",
"chars": 14617,
"preview": "using System;\nusing System.ComponentModel;\nusing System.IO;\nusing System.Windows;\nusing System.Windows.Controls;\nusing S"
},
{
"path": "ScreenToGif/Docs/Documentation.md",
"chars": 211,
"preview": "## ScreenToGif Developer Documentation\n\nWould you like to help build this developer documentation? \n\n### Sections\n\nFrom"
},
{
"path": "ScreenToGif/ImageUtil/ImageMethods.cs",
"chars": 86622,
"preview": "using ScreenToGif.Domain.Enums;\nusing ScreenToGif.Domain.Interfaces;\nusing ScreenToGif.Domain.Models;\nusing ScreenToGif."
},
{
"path": "ScreenToGif/Model/FrameInfo.cs",
"chars": 7096,
"preview": "using ScreenToGif.Domain.Enums;\nusing ScreenToGif.Domain.Interfaces;\nusing ScreenToGif.Util;\nusing System.Collections.Ge"
},
{
"path": "ScreenToGif/Model/ProjectInfo.cs",
"chars": 9886,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.Serialization;\n"
},
{
"path": "ScreenToGif/Properties/AssemblyInfo.cs",
"chars": 1575,
"preview": "using System.Runtime.InteropServices;\nusing System.Windows;\n\n// In SDK-style projects such as this one, several assembly"
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as ARM64 (light).pubxml",
"chars": 663,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as ARM64 (self-contained).pubxml",
"chars": 701,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as ARM64.pubxml",
"chars": 707,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x64 (light).pubxml",
"chars": 657,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x64 (self-contained).pubxml",
"chars": 695,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x64.pubxml",
"chars": 701,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x86 (light).pubxml",
"chars": 657,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x86 (self-contained).pubxml",
"chars": 695,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Properties/PublishProfiles/Publish as x86.pubxml",
"chars": 701,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nhttps://go.microsoft.com/fwlink/?LinkID=208121. \n-->\n<Project ToolsVersion="
},
{
"path": "ScreenToGif/Readme.md",
"chars": 103,
"preview": "# ScreenToGif \n\nThis is the current project of ScreenToGif. \n\n_VS 2022 and .NET 9 or newer required._"
},
{
"path": "ScreenToGif/Resources/Backgrounds.xaml",
"chars": 3317,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Commands.xaml",
"chars": 19894,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Flags.xaml",
"chars": 73872,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Glyphs.xaml",
"chars": 3427,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.ar.xaml",
"chars": 163116,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.cs.xaml",
"chars": 167818,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.da.xaml",
"chars": 140499,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.de.xaml",
"chars": 182242,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\r\n xmlns:x=\"http"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.el.xaml",
"chars": 178366,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.en.xaml",
"chars": 172480,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.es-AR.xaml",
"chars": 121064,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.es.xaml",
"chars": 122560,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.fi.xaml",
"chars": 171773,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.fr.xaml",
"chars": 180051,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.he.xaml",
"chars": 141947,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.hu.xaml",
"chars": 177485,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.it.xaml",
"chars": 177277,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.ja.xaml",
"chars": 133486,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.ko.xaml",
"chars": 103382,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.nl.xaml",
"chars": 175824,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.pl.xaml",
"chars": 174511,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.pt-PT.xaml",
"chars": 174803,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.pt.xaml",
"chars": 179035,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.ru.xaml",
"chars": 165478,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.sv.xaml",
"chars": 118030,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.sw.xaml",
"chars": 115137,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.ta.xaml",
"chars": 182175,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.tr.xaml",
"chars": 128150,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.uk.xaml",
"chars": 172717,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.vi.xaml",
"chars": 117860,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.zh-Hant.xaml",
"chars": 132297,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Localization/StringResources.zh.xaml",
"chars": 133591,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Settings.xaml",
"chars": 22009,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Resources/Style.css",
"chars": 1954,
"preview": "body {\n background: #F3F3F4;\n color: #1E1E1F;\n font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;\n "
},
{
"path": "ScreenToGif/Resources/Vectors.xaml",
"chars": 268838,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/ScreenToGif.csproj",
"chars": 7963,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <TargetFramework>net9.0-windows7.0</TargetFramework>\n <RollFo"
},
{
"path": "ScreenToGif/Themes/Button.xaml",
"chars": 94151,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Colors/Dark.xaml",
"chars": 9047,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Colors/Light.xaml",
"chars": 9010,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Colors/Medium.xaml",
"chars": 9011,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Colors/VeryDark.xaml",
"chars": 9036,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/ComboBox.xaml",
"chars": 30577,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Common.xaml",
"chars": 8612,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Controls/ExtendedComboBox.xaml",
"chars": 8990,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "ScreenToGif/Themes/DataGrid.xaml",
"chars": 27833,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/EncoderListViewItem.xaml",
"chars": 33448,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Generic.xaml",
"chars": 230819,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http:"
},
{
"path": "ScreenToGif/Themes/Old.xaml",
"chars": 23013,
"preview": "<ResourceDictionary xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"http"
},
{
"path": "ScreenToGif/UserControls/BorderPanel.xaml",
"chars": 5317,
"preview": "<UserControl x:Class=\"ScreenToGif.UserControls.BorderPanel\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006"
},
{
"path": "ScreenToGif/UserControls/BorderPanel.xaml.cs",
"chars": 187,
"preview": "using System.Windows.Controls;\n\nnamespace ScreenToGif.UserControls;\n\npublic partial class BorderPanel : UserControl\n{\n "
},
{
"path": "ScreenToGif/UserControls/DelayPanel.xaml",
"chars": 6007,
"preview": "<UserControl x:Class=\"ScreenToGif.UserControls.DelayPanel\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/"
},
{
"path": "ScreenToGif/UserControls/DelayPanel.xaml.cs",
"chars": 185,
"preview": "using System.Windows.Controls;\n\nnamespace ScreenToGif.UserControls;\n\npublic partial class DelayPanel : UserControl\n{\n "
},
{
"path": "ScreenToGif/UserControls/ExportPanel.xaml",
"chars": 144262,
"preview": "<UserControl x:Class=\"ScreenToGif.UserControls.ExportPanel\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/"
},
{
"path": "ScreenToGif/UserControls/ExportPanel.xaml.cs",
"chars": 70081,
"preview": "using Microsoft.Win32;\nusing ScreenToGif.Controls;\nusing ScreenToGif.Controls.Items;\nusing ScreenToGif.Domain.Enums;\nusi"
}
]
// ... and 604 more files (download for full content)
About this extraction
This page contains the full source code of the NickeManarin/ScreenToGif GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 804 files (9.6 MB), approximately 2.6M tokens, and a symbol index with 3907 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.