diff --git a/.github/workflows/integration-build.yml b/.github/workflows/integration-build.yml index df98b25..1c8e535 100644 --- a/.github/workflows/integration-build.yml +++ b/.github/workflows/integration-build.yml @@ -18,13 +18,13 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WINFORMS_V23_1_LICENSEKEY }} + LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WINFORMS_V24_1_LICENSEKEY }} steps: - name: Cancel duplicate runs uses: fkirc/skip-duplicate-actions@v5 - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Run build project diff --git a/Build/Build.csproj b/Build/Build.csproj index a6882d2..28bf2d6 100644 --- a/Build/Build.csproj +++ b/Build/Build.csproj @@ -16,7 +16,7 @@ ActiproSoftware.Tools.Builds Actipro Software LLC Actipro Software LLC - Copyright (c) 2020-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2020-2024 Actipro Software LLC. All rights reserved. false diff --git a/Documentation/api-filter.yml b/Documentation/api-filter.yml index 0ea18a5..f1f4751 100644 --- a/Documentation/api-filter.yml +++ b/Documentation/api-filter.yml @@ -1,5 +1,19 @@ apiRules: +# Exclude Obsolete in Actipro namespaces +- exclude: + uidRegex: ^ActiproSoftware\. + hasAttribute: + uid: System.ObsoleteAttribute + +# Include EditorBrowsableState.Never in Actipro namespaces (excluded by default) +- include: + uidRegex: ^ActiproSoftware\. + hasAttribute: + uid: System.ComponentModel.EditorBrowsableAttribute + ctorArguments: + - System.ComponentModel.EditorBrowsableState.Never + # Exclude compatibility and core product code - exclude: uidRegex: ^ActiproSoftware\.Compatibility$ diff --git a/Documentation/docfx.json b/Documentation/docfx.json index 97a85f0..1630e5b 100644 --- a/Documentation/docfx.json +++ b/Documentation/docfx.json @@ -5,24 +5,8 @@ { "src": "../../Deploy/Build/AssembliesDocFX", "files": [ - "ActiproSoftware.Shared.WinForms.dll", - "ActiproSoftware.Bars.WinForms.dll", - "ActiproSoftware.Docking.WinForms.dll", - "ActiproSoftware.Navigation.WinForms.dll", - "ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll", - "ActiproSoftware.SyntaxEditor.Addons.JavaScript.WinForms.dll", - "ActiproSoftware.SyntaxEditor.Addons.Python.WinForms.dll", - "ActiproSoftware.SyntaxEditor.Addons.Xml.WinForms.dll", - "ActiproSoftware.SyntaxEditor.WinForms.dll", - "ActiproSoftware.Text.Addons.DotNet.WinForms.dll", - "ActiproSoftware.Text.Addons.DotNet.Roslyn.WinForms.dll", - "ActiproSoftware.Text.Addons.JavaScript.WinForms.dll", - "ActiproSoftware.Text.Addons.Python.WinForms.dll", - "ActiproSoftware.Text.Addons.Xml.WinForms.dll", - "ActiproSoftware.Text.LLParser.WinForms.dll", - "ActiproSoftware.Text.WinForms.dll", - "ActiproSoftware.Wizard.WinForms.dll" - // "**.csproj" + // Actipro assemblies + "ActiproSoftware.*.dll" ] } ], @@ -36,6 +20,7 @@ "src": "topics", "files": [ "**.md", + "api/ActiproSoftware.yml", "api/ActiproSoftware.*.yml", "api/toc.yml", "toc.yml" @@ -68,10 +53,10 @@ "_appTitle": "Actipro WinForms Controls Docs", "_docsCompanyHref": "https://www.actiprosoftware.com/products/controls/windowsforms", "_docsCompanyName": "Actipro Software LLC", - "_docsCopyrightYears": "1999-2023", + "_docsCopyrightYears": "1999-2024", "_docsProductHref": "https://www.actiprosoftware.com/products/controls/windowsforms", "_docsProductName": "WinForms Controls", - "_docsProductVersion": "23.1", + "_docsProductVersion": "24.1", "_disableContribution": true, "_enableNewTab": true, "_gitContribute": { diff --git a/Documentation/topics/bars/extensible-rendering.md b/Documentation/topics/bars/extensible-rendering.md index b514f34..e846921 100644 --- a/Documentation/topics/bars/extensible-rendering.md +++ b/Documentation/topics/bars/extensible-rendering.md @@ -9,39 +9,40 @@ All the bar controls use an extensible rendering model that is based on our comm This object model allows for three levels of rendering customization. Choose which level of customization you wish to use: -- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include all Visual Studio and Office styles. +- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include several Metro, Visual Studio, and Office styles. - Modify Properties on Built-In Renderers - Use the built-in renderers but modify the various properties on the renderers to easily create a customized appearance. - Create Custom Renderers - Implement the [IBarRenderer](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer) or [IStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.IStatusBarRenderer) interfaces or inherit our [BarRenderer](xref:@ActiproUIRoot.Controls.Bars.BarRenderer) or [StatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.StatusBarRenderer) classes to do all the measuring and drawing of the controls and their elements yourself. These are some sample rendering styles that come with [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager) and [StatusBar](xref:@ActiproUIRoot.Controls.Bars.StatusBar): -![Screenshot](images/bar-controls-metro-light.png)![Screenshot](images/bar-controls-office-2007-blue.png)![Screenshot](images/bar-controls-office-2007-silver.png)![Screenshot](images/bar-controls-office-2007-black.png)![Screenshot](images/bar-controls-office-2003-blue.png)![Screenshot](images/bar-controls-office-2003-olive-green.png)![Screenshot](images/bar-controls-office-2003-silver.png)![Screenshot](images/bar-controls-office-2003-royale.png)![Screenshot](images/bar-controls-windows-classic.png)![Screenshot](images/bar-controls-visual-studio-2002.png)![Screenshot](images/bar-controls-visual-studio-2005.png) +![Screenshot](images/bar-controls-metro-light.png)![Screenshot](images/bar-controls-office-2007-blue.png)![Screenshot](images/bar-controls-office-2007-silver.png)![Screenshot](images/bar-controls-office-2007-black.png)![Screenshot](images/bar-controls-office-2003-blue.png)![Screenshot](images/bar-controls-office-2003-olive-green.png)![Screenshot](images/bar-controls-office-2003-silver.png)![Screenshot](images/bar-controls-windows-classic.png)![Screenshot](images/bar-controls-visual-studio-2002.png)![Screenshot](images/bar-controls-visual-studio-2005.png) ## Use Built-In Renderers As-Is -Bars includes these built-in renderers, which support Metro Light, Metro Dark, Office, and Visual Studio styles: +Bars includes these built-in renderers, which support Metro, Visual Studio, Office, and other classic styles: | Renderer | Description | |-----|-----| | [MetroBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroBarRenderer) | Capable of drawing Metro styles (Light and Dark) for bar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.MetroBarRenderer.BaseColorSchemeType). | | [MetroStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroStatusBarRenderer) | Capable of drawing Metro styles (Light and Dark) for statusbar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.MetroStatusBarRenderer.BaseColorSchemeType). | -| [Office2003BarRenderer](xref:@ActiproUIRoot.Controls.Bars.Office2003BarRenderer) | Capable of drawing all Office 2007 styles (Blue, Silver, Black), Office 2003 styles (Blue, Olive, Silver, Royale, and Windows Classic), as well as the Visual Studio 2005 style for bar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.Office2003BarRenderer.BaseColorSchemeType). | -| [Office2003StatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.Office2003StatusBarRenderer) | Capable of drawing all Office styles for statusbar controls. | -| [VisualStudio2002BarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudio2002BarRenderer) | Capable of drawing Visual Studio 2002 bar controls. | -| [VisualStudio2002StatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudio2002StatusBarRenderer) | Capable of drawing Visual Studio 2002 statusbar controls. | -| [VisualStudio2005StatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudio2005StatusBarRenderer) | Capable of drawing Visual Studio 2005 statusbar controls. | +| [OfficeClassicBarRenderer](xref:@ActiproUIRoot.Controls.Bars.OfficeClassicBarRenderer) | Capable of drawing all Office classic styles (Blue, Silver, Black), Luna styles (Blue, Olive Green, Silver), and Windows Classic, as well as the Visual Studio classic style for bar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.OfficeClassicBarRenderer.BaseColorSchemeType). | +| [OfficeClassicStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.OfficeClassicStatusBarRenderer) | Capable of drawing all Office styles for statusbar controls. | +| [VisualStudioBarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudioBarRenderer) | Capable of drawing Visual Studio bar controls. | +| [VisualStudioClassicStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudioClassicStatusBarRenderer) | Capable of drawing Visual Studio classic statusbar controls. | +| [WindowsClassicBarRenderer](xref:@ActiproUIRoot.Controls.Bars.WindowsClassicBarRenderer) | Capable of drawing Windows classic bar controls. | +| [WindowsClassicStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.WindowsClassicStatusBarRenderer) | Capable of drawing Windows classic statusbar controls. | ## Color Tinting Color Schemes -With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a tan or red color scheme and then use those color schemes with the [Office2003BarRenderer](xref:@ActiproUIRoot.Controls.Bars.Office2003BarRenderer) class like this: +With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a tan or red color scheme and then use those color schemes with the [OfficeClassicBarRenderer](xref:@ActiproUIRoot.Controls.Bars.OfficeClassicBarRenderer) class like this: ![Screenshot](images/bar-controls-custom-tan.png)![Screenshot](images/bar-controls-custom-red.png) -This code shows how to load a custom tan-tinted color scheme (displayed in the screenshot above) that is based on the built-in Windows XP blue theme: +This code shows how to load a custom tan-tinted color scheme (displayed in the screenshot above) that is based on the built-in Luna blue theme: ```csharp -WindowsColorScheme scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.WindowsXPBlue, Color.Tan); -barManager.Renderer = new Office2003BarRenderer(scheme); +var scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.LunaBlue, Color.Tan); +barManager.Renderer = new OfficeClassicBarRenderer(scheme); ``` ## Customizing Specific Colors in a Color Scheme diff --git a/Documentation/topics/bars/images/bar-controls-custom-red.gif b/Documentation/topics/bars/images/bar-controls-custom-red.gif deleted file mode 100644 index 227b893..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-custom-red.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-custom-tan.gif b/Documentation/topics/bars/images/bar-controls-custom-tan.gif deleted file mode 100644 index 2d1f7ad..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-custom-tan.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-office-2003-blue.gif b/Documentation/topics/bars/images/bar-controls-office-2003-blue.gif deleted file mode 100644 index e6f29fd..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-office-2003-blue.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-office-2003-olive-green.gif b/Documentation/topics/bars/images/bar-controls-office-2003-olive-green.gif deleted file mode 100644 index c862109..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-office-2003-olive-green.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-office-2003-royale.gif b/Documentation/topics/bars/images/bar-controls-office-2003-royale.gif deleted file mode 100644 index 0d05acf..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-office-2003-royale.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-office-2003-royale.png b/Documentation/topics/bars/images/bar-controls-office-2003-royale.png deleted file mode 100644 index 3cc6778..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-office-2003-royale.png and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-office-2003-silver.gif b/Documentation/topics/bars/images/bar-controls-office-2003-silver.gif deleted file mode 100644 index fe628f1..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-office-2003-silver.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-visual-studio-2002.gif b/Documentation/topics/bars/images/bar-controls-visual-studio-2002.gif deleted file mode 100644 index 5fb3a65..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-visual-studio-2002.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-visual-studio-2005.gif b/Documentation/topics/bars/images/bar-controls-visual-studio-2005.gif deleted file mode 100644 index b127fc7..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-visual-studio-2005.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-controls-windows-classic.gif b/Documentation/topics/bars/images/bar-controls-windows-classic.gif deleted file mode 100644 index fe8ecb8..0000000 Binary files a/Documentation/topics/bars/images/bar-controls-windows-classic.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-design-time-customize-form-commands-tab.gif b/Documentation/topics/bars/images/bar-design-time-customize-form-commands-tab.gif deleted file mode 100644 index 8648264..0000000 Binary files a/Documentation/topics/bars/images/bar-design-time-customize-form-commands-tab.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-design-time-customize-form-selected-command-link-tab.gif b/Documentation/topics/bars/images/bar-design-time-customize-form-selected-command-link-tab.gif deleted file mode 100644 index 355437c..0000000 Binary files a/Documentation/topics/bars/images/bar-design-time-customize-form-selected-command-link-tab.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-design-time-customize-form-toolbars-tab.gif b/Documentation/topics/bars/images/bar-design-time-customize-form-toolbars-tab.gif deleted file mode 100644 index 4111bc5..0000000 Binary files a/Documentation/topics/bars/images/bar-design-time-customize-form-toolbars-tab.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-design-time-new-command-form.gif b/Documentation/topics/bars/images/bar-design-time-new-command-form.gif deleted file mode 100644 index 0f502b8..0000000 Binary files a/Documentation/topics/bars/images/bar-design-time-new-command-form.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-keyboard-shortcuts.gif b/Documentation/topics/bars/images/bar-keyboard-shortcuts.gif deleted file mode 100644 index 46f15fc..0000000 Binary files a/Documentation/topics/bars/images/bar-keyboard-shortcuts.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-run-time-customize-form.gif b/Documentation/topics/bars/images/bar-run-time-customize-form.gif deleted file mode 100644 index 2040771..0000000 Binary files a/Documentation/topics/bars/images/bar-run-time-customize-form.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-test-app.gif b/Documentation/topics/bars/images/bar-test-app.gif deleted file mode 100644 index 2998895..0000000 Binary files a/Documentation/topics/bars/images/bar-test-app.gif and /dev/null differ diff --git a/Documentation/topics/bars/images/bar-test-app2.gif b/Documentation/topics/bars/images/bar-test-app2.gif deleted file mode 100644 index c2bf321..0000000 Binary files a/Documentation/topics/bars/images/bar-test-app2.gif and /dev/null differ diff --git a/Documentation/topics/bars/index.md b/Documentation/topics/bars/index.md index 271856b..e40e251 100644 --- a/Documentation/topics/bars/index.md +++ b/Documentation/topics/bars/index.md @@ -23,7 +23,7 @@ Out of the box, the bar controls have [rendering capabilities](extensible-render ## Feature List -- Built-in [rendering styles](extensible-rendering.md) include Metro Light, Metro Dark, Visual Studio, and Office styles. +- Built-in [rendering styles](extensible-rendering.md) include Metro, Visual Studio, Office, and Windows Classic styles. - Robust rendering interface allows for totally customized rendering. diff --git a/Documentation/topics/conversion/converting-to-v23-1.md b/Documentation/topics/conversion/converting-to-v23-1.md index 6867834..fcfe4f4 100644 --- a/Documentation/topics/conversion/converting-to-v23-1.md +++ b/Documentation/topics/conversion/converting-to-v23-1.md @@ -49,7 +49,7 @@ The [TabbedMdiWindowContextMenuEventArgs](xref:@ActiproUIRoot.Controls.Docking.T ## Modern DockGuides -Docking support for [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Sunken](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Sunken) (previous default) and [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Raised](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Raised) (old Windows XP-era style) has been removed and replaced by [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Modern](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Modern) (new default). The old values are still defined but have been marked as obsolete and will use the `Modern` style when used. No changes are necessary at this time, but any references to the old values should be replaced with `Modern` to avoid IDE warnings and eventual breaking changes when the obsolete values are removed in a future release. +Docking support for [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).`Sunken` (previous default) and [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).`Raised` (old Windows XP-era style) has been removed and replaced by [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Modern](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Modern) (new default). The old values are still defined but have been marked as obsolete and will use the `Modern` style when used. No changes are necessary at this time, but any references to the old values should be replaced with `Modern` to avoid IDE warnings and eventual breaking changes when the obsolete values are removed in a future release. The `Sunken` and `Raised` styles were based on image resources that could be customized using `ActiproSoftware.Products.Docking.AssemblyInfo.Instance.ImageProviderFunc`. Since the `Modern` guides are built dynamically at run-time, there are no images to customize and the `ImageProviderFunc` property has been removed. The colors used for `Modern` guides can be customized using various properties on [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme) (e.g., [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme).[DockGuideArrowBack](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme.DockGuideArrowBack) changes the background color of the arrow). See the [Extensible Rendering](../docking/extensible-rendering.md) topic for more details on customizing a color scheme. diff --git a/Documentation/topics/conversion/converting-to-v24-1.md b/Documentation/topics/conversion/converting-to-v24-1.md new file mode 100644 index 0000000..3bee32c --- /dev/null +++ b/Documentation/topics/conversion/converting-to-v24-1.md @@ -0,0 +1,165 @@ +--- +title: "Converting to v24.1" +page-title: "Converting to v24.1 - Conversion Notes" +order: 6 +--- +# Converting to v24.1 + +All of the breaking changes are detailed or linked below. + +## SyntaxEditor Native Dark Theme Support + +Support for dark themes is now integrated directly into [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor). Refer to the [Dark Themes](../syntaxeditor/user-interface/styles/dark-themes.md) topic for details on concepts like [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) or [IHighlightingStyleColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette). + +### Switching Themes + +Previously, switching between light and dark themes would require multiple steps like: +1. Unregistering all classification types in a registry. +1. Re-registering all the classification types from multiple providers. +1. Re-loading language definition *.langdef* files. +1. For dark theme, importing a *.vssettings* file with colors configured for a dark theme. +1. Changing the [CommonImageSourceProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider).[DefaultImageSet](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider.DefaultImageSet) between light and dark color sets. + +A new [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) class now takes care of all of those settings by default, and most developers will not have to do anything to support changing themes. Check for any custom code that handles theme changes and remove any SyntaxEditor logic related to the previous technique of switching themes. + +If custom registries are used instead of [AmbientHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.AmbientHighlightingStyleRegistry), those registries can be configured to automatically switch themes by calling [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager).[Manage](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager.Manage*) and passing the custom registry. + +If any developer does not want the default functionality provided by [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager), the following code will disable the default features: + +```csharp +// Disable automatically switching between light/dark color palettes +SyntaxEditorThemeManager.Unmanage(AmbientHighlightingStyleRegistry.Instance); + +// Ensure the light color palette is the default (in case a dark theme was active before being unmanaged) +AmbientHighlightingStyleRegistry.Instance.CurrentColorPalette = AmbientHighlightingStyleRegistry.Instance.LightColorPalette; + +// Disable changing image sets +SyntaxEditorThemeManager.IsCommonImageSetSynchronizationEnabled = false; +``` + +### Dark Colors + +If a custom *.vssettings* file was used with preferred dark colors, those colors may not match the new defaults. A special dark color palette can be initialized with preferred colors to use in dark themes on a per-registry basis. The following example code demonstrates how to configure the default dark colors for the ambient registry: + +```csharp +IHighlightingStyleRegistry registry = AmbientHighlightingStyleRegistry.Instance; +registry.DarkColorPalette.SetForeground("String", Color.FromArgb(255, 214, 157, 133)); +registry.DarkColorPalette.SetForeground("PlainText", Color.FromArgb(255, 220, 220, 220)); +registry.DarkColorPalette.SetBackground("PlainText", Color.FromArgb(255, 30, 30, 30)); +``` + +> [!NOTE] +> Configuring the dark color palette is only necessary if languages are not updated with explicit dark styles. + +### Language Updates + +The [Language Designer Tool](../syntaxeditor/language-designer-tool/index.md) has been updated to support the configuration and preview of dark styles for classification types. Developers are encouraged to use the tool to configure appropriate dark colors instead of explicitly populating the dark color palette, and many dark colors will be automatically configured based on built-in classification types and a pre-defined mapping of common light colors to dark colors. + +All Actipro-provided languages have been updated with the new dark style configuration. + +### New IHighlightingStyleRegistry Interface Properties + +The [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry) interface added the [CurrentColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.CurrentColorPalette), [DarkColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.DarkColorPalette), and [LightColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.LightColorPalette) properties. Any custom classes that implement this interface without deriving from [HighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.Implementation.HighlightingStyleRegistry) will need to implement the new properties. + +## SyntaxEditor Enhancements + +The following changes were made to enhance the capabilities of SyntaxEditor and might impact some applications. +- The default colors for several [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) instances on [DisplayItemClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider) have been changed to be more consistent with modern code editor expectations. Some classification types were updated to remove opacity from the default color and, instead, always apply an opacity when the color is rendered. + - [SelectedText](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.SelectedText) background from #99CCFF to #0078D7. + - [InactiveSelectedText](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.InactiveSelectedText) background from #CCDDEE to #BFCDDB. + - [LineNumbers](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.LineNumbers) foreground from #2B91AF to #7A7A7A. + - [BreakpointEnabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.BreakpointEnabled) background from #AB616B to #963A46. + - [BreakpointDisabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.BreakpointDisabled) border from #AB616B to #000000. + - [IndicatorMargin](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.IndicatorMargin) background from #F0F0F0 to #E6E7E8. + - [CurrentLine](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.CurrentLine) border from #30A0A0A0 to #EAEAF2; 30% opacity automatically applied when rendered. + - [DelimiterMatching](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeKeys.DelimiterMatching) background from #30A0A0A0 to #DBE0CC with 75% opacity automatically applied when rendered. + - [FindMatchHighlight](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.FindMatchHighlight) background from #C8F4A721 to #F4A721 with 75% opacity automatically applied when rendered. + - [CollapsibleRegion](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.CollapsibleRegion) foreground from #80D7DDE8 to #D7DDE8 with 50% opacity automatically applied when rendered. Background from #80EDEFF5 to #F6F7FA. + - [ColumnGuides](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.ColumnGuides) background from #F0F0F0 to #D0D0D0. + - [IndentationGuides](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.IndentationGuides) background from #F0F0F0 to #D0D0D0. +- The [Punctuation](xref:ActiproSoftware.Text.ClassificationTypes.Punctuation) classification type was added to all appropriate Actipro languages. + - Implement the [IDotNetClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.DotNet.IDotNetClassificationTypeProvider).[Punctuation](xref:ActiproSoftware.Text.Languages.DotNet.IDotNetClassificationTypeProvider.Punctuation) property for classes that implement the interface without deriving from the [DotNetClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.DotNet.Implementation.DotNetClassificationTypeProvider) class. + - Implement the [IJavaScriptClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.JavaScript.IJavaScriptClassificationTypeProvider).[Punctuation](xref:ActiproSoftware.Text.Languages.JavaScript.IJavaScriptClassificationTypeProvider.Punctuation) property for classes that implement the interface without deriving from the [JavaScriptClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.JavaScript.Implementation.JavaScriptClassificationTypeProvider) class. + - Implement the [IPythonClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.Python.IPythonClassificationTypeProvider).[Punctuation](xref:ActiproSoftware.Text.Languages.Python.IPythonClassificationTypeProvider.Punctuation) property for classes that implement the interface without deriving from the [PythonClassificationTypeProvider](xref:ActiproSoftware.Text.Languages.Python.Implementation.PythonClassificationTypeProvider) class. +- The [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor) `ForeColor` and `BackColor` properties are no longer used as the default foreground and background colors for a printer view. If non-default colors are desired, register a style with the [PlainText](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.PlainText) classification type on the editor's highlighting style registry. + +## Theme Updates + +Several changes were made to theme-related classes. Generally speaking, the following changes were made: +- A new "Visual Studio Blue" theme is available based on Visual Studio 2022's Blue theme. +- "Visual Studio 2005" is now referred to as "Visual Studio Classic". +- "Office 2007" and "Office 2003" are now referred to as "Office Classic". +- "Windows XP" is now referred to as "Luna". +- The "Visual Studio 2005 Beta 2" renderers have been deprecated and will be removed in a future release. +- The `WindowsXPRoyale` color scheme has been deprecated since it duplicates other classic color schemes and will be removed in a future release. +- Several previously deprecated renderers were removed. + +> [!IMPORTANT] +> Every effort was made to ensure a seamless upgrade by maintaining binary compatibility with the previous release. After upgrading to this release, your IDE should display warnings for the use of any deprecated values. This should allow developers to slowly migrate to the new values, but do not ignore the warnings as the values will be removed in a future release. + +See below for the specific details on theme-related changes. + +### Color Scheme Changes + +The following changes were made to color schemes: +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`VisualStudio2005` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`VisualStudio2005` will be referred to as `VisualStudioClassic` going forward. The original `VisualStudio2005` values have been deprecated and will be removed in a future release. Use `VisualStudioClassic` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`Office2007Blue` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`Office2007Blue` will be referred to as `OfficeClassicBlue` going forward. The original `Office2007Blue` values have been deprecated and will be removed in a future release. Use `OfficeClassicBlue` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`Office2007Black` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`Office2007Black` will be referred to as `OfficeClassicBlack` going forward. The original `Office2007Black` values have been deprecated and will be removed in a future release. Use `OfficeClassicBlack` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`Office2007Silver` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`Office2007Silver` will be referred to as `OfficeClassicSilver` going forward. The original `Office2007Silver` values have been deprecated and will be removed in a future release. Use `OfficeClassicSilver` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`WindowsXPBlue` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`WindowsXPBlue` will be referred to as `LunaBlue` going forward. The original `WindowsXPBlue` values have been deprecated and will be removed in a future release. Use `LunaBlue` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`WindowsXPOliveGreen` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`WindowsXPOliveGreen` will be referred to as `LunaOliveGreen` going forward. The original `WindowsXPOliveGreen` values have been deprecated and will be removed in a future release. Use `LunaOliveGreen` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`WindowsXPSilver` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`WindowsSilver` will be referred to as `LunaSilver` going forward. The original `WindowsXPSilver` values have been deprecated and will be removed in a future release. Use `LunaSilver` instead. +- [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).`WindowsXPRoyale` and [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme).`WindowsXPRoyale` have been deprecated since they duplicate other classic color schemes and will be removed in a future release. Use one of the other classic color schemes instead, like `VisualStudioClassic`. + +### UIRenderer Changes + +The following renderers are being renamed. In each scenario, the original renderer was recreated to derive from the class of the new name and has been marked as deprecated for removal in a future release. Migrate to the new renderer names to avoid future breaking changes. + +- `WindowsXPScrollBarRenderer` will be referred to as `WindowsScrollBarRender` going forward. +- `Office2003NavigationBarRenderer` will be referred to as `OfficeLunaNavigationBarRenderer` going forward. +- `Office2007NavigationBarRenderer` will be referred to as `OfficeClassicNavigationBarRenderer` going forward. +- `VisualStudio2002BarRenderer` will be referred to as `WindowsClassicBarRenderer` going forward. +- `Office2003BarRenderer` will be referred to as `OfficeClassicBarRenderer` going forward. +- `VisualStudio2002StatusBarRenderer` will be referred to as `WindowsClassicStatusBarRenderer` going forward. +- `VisualStudio2005StatusBarRenderer` will be referred to as `VisualStudioClassicStatusBarRenderer` going forward. +- `Office2003StatusBarRenderer` will be referred to as `OfficeClassicStatusBarRenderer` going forward. +- `VisualStudio2002DockRenderer` will be referred to as `WindowsClassicDockRenderer` going forward. +- `VisualStudio2002DocumentWindowTabStripRenderer` will be referred to as `WindowsClassicDocumentWindowTabStripRenderer` going forward. +- `VisualStudio2002ToolWindowTabStripRenderer` will be referred to as `WindowsClassicToolWindowTabStripRenderer` going forward. +- `VisualStudio2005DockRenderer` will be referred to as `VisualStudioClassicDockRenderer` going forward. +- `VisualStudio2005DocumentWindowTabStripRenderer` will be referred to as `VisualStudioClassicDocumentWindowTabStripRenderer` going forward. +- `VisualStudio2005ToolWindowTabStripRenderer` will be referred to as `VisualStudioClassicToolWindowTabStripRenderer` going forward. +- `Office2003DockRenderer` will be referred to as `OfficeClassicDockRenderer` going forward. +- `Office2003DocumentWindowTabStripRenderer` will be referred to as `OfficeClassicDocumentWindowTabStripRenderer` going forward. +- `Office2003ToolWindowTabStripRenderer` will be referred to as `OfficeClassicToolWindowTabStripRenderer` going forward. + +The following renders have been deprecated and will be removed in a future release. Migrate to different renderers to avoid future breaking changes. +- `Office2003VisualStudio2005Beta2DockRenderer` +- `Office2003VisualStudio2005Beta2ToolWindowTabStripRenderer` +- `VisualStudio2005Beta2DockRenderer` +- `VisualStudio2005Beta2ToolWindowTabStripRenderer` + +The following renderers were previously deprecated and removed in this release: +- Removed `MetroLightBarRenderer`. Use [MetroBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroBarRenderer) instead. +- Removed `MetroLightDockRenderer`. Use [MetroDockRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDockRenderer) instead. +- Removed `MetroLightDocumentWindowTabStripRenderer`. Use [MetroDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDocumentWindowTabStripRenderer) instead. +- Removed `MetroLightToolWindowTabStripRenderer`. Use [MetroToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroToolWindowTabStripRenderer) instead. +- Removed `MetroLightNavigationBarRenderer`. Use [MetroNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.MetroNavigationBarRenderer) instead. + +## UIColor Updates + +The [UIColor](xref:@ActiproUIRoot.Drawing.UIColor) class has been updated with additional support, and some existing properties/methods are being deprecated to keep the public consistent and avoid ambiguity. The original properties/methods will be removed in a future release. +- `Hue` property replaced by [HlsHue](xref:@ActiproUIRoot.Drawing.UIColor.HlsHue). + - Note that the original `Hue` property is based on values from `0` to `1`, and the new [HlsHue](xref:@ActiproUIRoot.Drawing.UIColor.HlsHue) property is based on values from `0` to `360`, so conversion will be necessary. +- `Saturation` property replaced by [HlsSaturation](xref:@ActiproUIRoot.Drawing.UIColor.HlsSaturation). +- `Brightness` property replaced by [HlsLightness](xref:@ActiproUIRoot.Drawing.UIColor.HlsLightness). +- [FromArgb](xref:@ActiproUIRoot.Drawing.UIColor.FromArgb*) method overload with `System.Drawing.Color` argument replaced by [FromColor](xref:@ActiproUIRoot.Drawing.UIColor.FromColor*). +- [FromArgb](xref:@ActiproUIRoot.Drawing.UIColor.FromArgb*) method overload without alpha argument replaced by [FromRgb](xref:@ActiproUIRoot.Drawing.UIColor.FromRgb*). +- [FromAhsb](xref:@ActiproUIRoot.Drawing.UIColor.FromAhsb*) method overload without alpha argument replaced by [FromHsb](xref:@ActiproUIRoot.Drawing.UIColor.FromHsb*). + +## Previously Deprecated Items Removed + +The following members were deprecated in previous releases have been removed in this release. + +- (Docking) [AssemblyInfo](xref:ActiproSoftware.Products.Docking.AssemblyInfo).`GetImage` method that did not accept a scale factor was removed. Use the [GetImage](xref:ActiproSoftware.Products.Docking.AssemblyInfo.GetImage*) method that accepts a scale factor. +- (SyntaxEditor) [IntelliPromptSessionTypes](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.IntelliPromptSessionTypes).`CodeSnippet` was removed. Use the [CodeSnippetTemplate](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.IntelliPromptSessionTypes.CodeSnippetTemplate) property instead. \ No newline at end of file diff --git a/Documentation/topics/conversion/index.md b/Documentation/topics/conversion/index.md index d43ed64..a3797d9 100644 --- a/Documentation/topics/conversion/index.md +++ b/Documentation/topics/conversion/index.md @@ -9,6 +9,8 @@ Occasionally during large updates to a product, some breaking changes are necess Read the following topics that are appropriate for your scenario if you are converting from an older version to the latest version. +- [Converting to v24.1](converting-to-v24-1.md) + - [Converting to v23.1](converting-to-v23-1.md) - [Converting to v22.1](converting-to-v22-1.md) diff --git a/Documentation/topics/docking/extensible-rendering.md b/Documentation/topics/docking/extensible-rendering.md index d7a89f3..d509d2d 100644 --- a/Documentation/topics/docking/extensible-rendering.md +++ b/Documentation/topics/docking/extensible-rendering.md @@ -9,7 +9,7 @@ The Dock controls use an extensible rendering model that is based on our common This object model allows for three levels of rendering customization. Choose which level of customization you wish to use: -- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include all Visual Studio and Office styles. +- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include many Metro, Visual Studio, and Office styles. - Modify Properties on Built-In Renderers - Use the built-in renderers but modify the various properties on the renderers to easily create a customized appearance. @@ -23,23 +23,23 @@ These are some sample rendering styles that come with [DockManager](xref:@Actipr ![Screenshot](images/dock-controls-visual-studio-2005.png) -*Visual Studio 2005-themed Dock controls* +*Visual Studio Classic-themed Dock controls* ![Screenshot](images/dock-controls-office-2003-blue.png) -*Office 2003 blue-themed Dock controls* +*Office Classic blue-themed Dock controls* ![Screenshot](images/dock-controls-office-2003-olive-green.png) -*Office 2003 olive green-themed Dock controls* +*Office Classic olive green-themed Dock controls* ![Screenshot](images/dock-controls-office-2003-silver.png) -*Office 2003 blue-themed Dock controls* +*Office Classic blue-themed Dock controls* ![Screenshot](images/dock-controls-office-2003-black.png) -*Office 2003 black-themed Dock controls* +*Office Classic black-themed Dock controls* ## DockManager Renderers @@ -53,27 +53,27 @@ The [DockManager](xref:@ActiproUIRoot.Controls.Docking.DockManager) component us ## Use Built-In Renderers As-Is -Dock includes these built-in renderers, which support Metro Light, Metro Dark, Office, and Visual Studio styles: +Dock includes these built-in renderers, which support Metro, Visual Studio, Office, and other classic styles: | Renderer | Description | |-----|-----| | [MetroDockRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDockRenderer) | Capable of drawing Metro styles (Light and Dark) for dock controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroDockRenderer.BaseColorSchemeType). | -| [Office2003DockRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DockRenderer) | Capable of drawing all Office 2007 styles (Blue, Silver, Black) and Office 2003 styles (Blue, Olive, Silver, Royale, and Windows Classic). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer.BaseColorSchemeType). | -| [VisualStudio2002DockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002DockRenderer) | Capable of drawing Visual Studio 2002 dock controls. | -| [VisualStudio2005DockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005DockRenderer) | Capable of drawing Visual Studio 2005 dock controls. | -| [VisualStudio2005Beta2DockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005Beta2DockRenderer) | Capable of drawing Visual Studio 2005 Beta 2 dock controls. | +| [OfficeClassicDockRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDockRenderer) | Capable of drawing all Office classic styles (Blue, Silver, Black), Luna styles (Blue, Olive Green, Silver), and Windows Classic). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDockRenderer.BaseColorSchemeType). | +| [VisualStudioDockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioDockRenderer) | Capable of drawing Visual Studio classic dock controls. | +| [VisualStudioClassicDockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioClassicDockRenderer) | Capable of drawing Visual Studio classic dock controls. | +| [WindowsClassicDockRenderer](xref:@ActiproUIRoot.Controls.Docking.WindowsClassicDockRenderer) | Capable of drawing Windows classic dock controls. | ## Color Tinting Color Schemes -With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a tan or red color scheme and then use those color schemes with the [Office2003DockRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DockRenderer), [Office2003DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DocumentWindowTabStripRenderer), and [Office2003ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003ToolWindowTabStripRenderer) classes like this: +With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a tan or red color scheme and then use those color schemes with the [OfficeClassicDockRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDockRenderer), [OfficeClassicDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer), and [OfficeClassicToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicToolWindowTabStripRenderer) classes like this: -This code shows how to load a custom tan-tinted color scheme (displayed in the screenshot above) that is based on the built-in Windows XP blue theme: +This code shows how to load a custom tan-tinted color scheme (displayed in the screenshot above) that is based on the built-in Luna blue theme: ```csharp -WindowsColorScheme scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.WindowsXPBlue, Color.Tan); -dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(scheme); -dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(scheme); -dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(scheme); +var scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.LunaBlue, Color.Tan); +dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(scheme); +dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(scheme); +dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(scheme); ``` ## Customizing Specific Colors in a Color Scheme diff --git a/Documentation/topics/docking/index.md b/Documentation/topics/docking/index.md index 1e8f74a..3a1aa07 100644 --- a/Documentation/topics/docking/index.md +++ b/Documentation/topics/docking/index.md @@ -21,7 +21,7 @@ Out of the box, the dock controls have [rendering capabilities](extensible-rende ## Feature List -- Built-in rendering styles include Metro Light, Metro Dark, Visual Studio, and Office styles. +- Built-in rendering styles include Metro, Visual Studio, Office, and Windows Classic styles. - Robust rendering interface allows for totally [customized rendering](extensible-rendering.md). - Dock [tool windows](tool-windows.md) on all sides of a central client area. - Multiple styles of docking guides which easily control drop locations. diff --git a/Documentation/topics/docking/tabstrip/extensible-rendering.md b/Documentation/topics/docking/tabstrip/extensible-rendering.md index dce9603..ad5b4af 100644 --- a/Documentation/topics/docking/tabstrip/extensible-rendering.md +++ b/Documentation/topics/docking/tabstrip/extensible-rendering.md @@ -9,7 +9,7 @@ order: 9 This object model allows for three levels of rendering customization. Choose which level of customization you wish to use: -- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include Metro Light, Metro Dark, Visual Studio, and Office for tool/document windows. +- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include several Metro, Visual Studio, and Office styles for tool/document windows. - Modify Properties on Built-In Renderers - Use the built-in renderers but modify the various properties on the renderers to easily create a customized appearance. - Create Custom Renderers - Implement the [ITabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.ITabStripRenderer) interface or inherit our [TabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.TabStripRenderer) class to do all the measuring and drawing of the controls and their elements yourself. @@ -35,24 +35,25 @@ Dock includes these built-in renderers: |-----|-----| | [MetroToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroToolWindowTabStripRenderer) | Capable of drawing a Metro styles (Light and Dark) for a tool window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroToolWindowTabStripRenderer.BaseColorSchemeType). | | [MetroDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDocumentWindowTabStripRenderer) | Capable of drawing a Metro styles (Light and Dark) for document window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroDocumentWindowTabStripRenderer.BaseColorSchemeType). | -| [VisualStudio2005ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 tool window. | -| [VisualStudio2005DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005DocumentWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 document window. | -| [VisualStudio2005Beta2ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005Beta2ToolWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 Beta 2 tool window. | -| [VisualStudio2002ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002ToolWindowTabStripRenderer) | Capable of drawing a Visual Studio 2002 tool window. | -| [VisualStudio2002DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002DocumentWindowTabStripRenderer) | Capable of drawing a Visual Studio 2002 document window. | -| [Office2003ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003ToolWindowTabStripRenderer) | Capable of drawing all Office styles (Blue, Olive, Silver, and Windows Classic) for a tool window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.Office2003ToolWindowTabStripRenderer.BaseColorSchemeType). | -| [Office2003DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DocumentWindowTabStripRenderer) | Capable of drawing all Office styles (Blue, Olive, Silver, and Windows Classic) for a document window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.Office2003DocumentWindowTabStripRenderer.BaseColorSchemeType). | -| [Office2003VisualStudio2005Beta2ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003VisualStudio2005Beta2ToolWindowTabStripRenderer) | Capable of drawing all Office styles (Blue, Olive, Silver, and Windows Classic) for a tool window, using a style similar to the Visual Studio 2005 Beta 2 style. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.Office2003ToolWindowTabStripRenderer.BaseColorSchemeType). | +| [OfficeClassicToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicToolWindowTabStripRenderer) | Capable of drawing all Office classic styles (Blue, Black, Silver), Luna styles (Blue, Olive Green, Silver), and Windows Classic for a tool window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicToolWindowTabStripRenderer.BaseColorSchemeType). | +| [OfficeClassicDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer) | Capable of drawing all Office classic styles (Blue, Black, Silver), Luna styles (Blue, Olive Green, Silver), and Windows Classic for a document window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer.BaseColorSchemeType). | +| [VisualStudioToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioToolWindowTabStripRenderer) | Capable of drawing a Visual Studio tool window. | +| [VisualStudioDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioDocumentWindowTabStripRenderer) | Capable of drawing a Visual Studio document window. | +| [VisualStudioClassicToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer) | Capable of drawing a Visual Studio classic tool window. | +| [VisualStudioClassicDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioClassicDocumentWindowTabStripRenderer) | Capable of drawing a Visual Studio classic document window. | +| [WindowsClassicToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.WindowsClassicToolWindowTabStripRenderer) | Capable of drawing a Windows classic tool window. | +| [WindowsClassicDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.WindowsClassicDocumentWindowTabStripRenderer) | Capable of drawing a Windows classic document window. | + ## Color Tinting Color Schemes -With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a custom color scheme and then use those color schemes with the [Office2003DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DocumentWindowTabStripRenderer) and [Office2003ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003ToolWindowTabStripRenderer) classes. +With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a custom color scheme and then use those color schemes with the [OfficeClassicDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer) and [OfficeClassicToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.OfficeClassicToolWindowTabStripRenderer) classes. -This code shows how to load a custom purple-tinted color scheme that is based on the built-in Windows XP blue theme: +This code shows how to load a custom purple-tinted color scheme that is based on the built-in Luna blue theme: ```csharp -WindowsColorScheme scheme = new WindowsColorScheme("Purple", WindowsColorSchemeType.WindowsXPBlue, Color.Purple); -tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(scheme); +var scheme = new WindowsColorScheme("Purple", WindowsColorSchemeType.LunaBlue, Color.Purple); +tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(scheme); ``` ## Customizing Specific Colors in a Color Scheme diff --git a/Documentation/topics/licensing.md b/Documentation/topics/licensing.md index 0dc54ca..0f8bc08 100644 --- a/Documentation/topics/licensing.md +++ b/Documentation/topics/licensing.md @@ -33,7 +33,7 @@ Blueprint licenses enable access to product source code. The term of Blueprint ## Free Subscriptions and Free New Products -All of the non-evaluation licenses described above for our WinForms products include **one full year** of free upgrades to any new versions that are released within that timeframe. +All the non-evaluation licenses described above for our @@PlatformName control products include **one full year** of free upgrades to any new versions that are released within that timeframe. In addition, customers with active WinForms Studio subscriptions will receive any new products added to the suite for free while the subscription is active. @@ -54,15 +54,18 @@ There are two ways to apply licensing once you have purchased licenses for Actip > [!NOTE] > Each `major.minor` version has its own distinct license information that can be obtained for licensed versions on [your Actipro account](https://www.actiprosoftware.com/support/account)'s page for your organization. -The first licensing option is to make a method call at app startup before any UI is referenced to register your license information. This option is quick and easy, and works best for scenarios where Actipro [NuGet packages](nuget.md) or build servers are used. See the "Licensing Via a RegisterLicense Call" section below for detailed information on this option. +1. **RegisterLicense Call** - Make a method call at app startup before any UI is referenced to register your license information. This option is quick and easy, and works best for scenarios where Actipro [NuGet packages](nuget.md) or build servers are used. See the "Licensing Via a RegisterLicense Call" section below for detailed information on this option. -The second licensing option is to provide licensing via a *licenses.licx* file. This option is only available for classic .NET Framework applications that have direct assembly references and is what Actipro exclusively used prior to v21.1. See the "Licensing Via a Licenses.licx File" section below for detailed information on this option. +1. **Licenses.licx File** - Provide licensing via a *licenses.licx* file. This option is only available for classic .NET Framework applications that have direct assembly references and is what Actipro exclusively used prior to v21.1. See the "Licensing Via a Licenses.licx File" section below for detailed information on this option. ## Licensing Via a RegisterLicense Call -This licensing option is required when Actipro [NuGet packages](nuget.md) are used. It is also ideal when build servers are used for classic .NET Framework applications with direct assembly references. +This licensing option is the easiest to apply and has the most predictable results, so it is the recommended for most users. -In this licensing option, we make a single code-based call to the `ActiproLicenseManager.RegisterLicense` method at application startup, before any UI is referenced. This static call registers your license information globally throughout your application. +- This method is required when using Actipro [NuGet packages](nuget.md). +- This method does not rely on a build machine configuration, so it is ideal when build servers are used for applications with direct Actipro assembly references. + +In this licensing option, you make a single code-based call to the `ActiproLicenseManager.RegisterLicense` method at application startup *before any UI is referenced*. This static call registers your license information globally throughout your application. Since the license is embedded in the application code, there are no other dependencies to apply the license. The following code calls the `ActiproLicenseManager.RegisterLicense` method using `licensee` and `licenseKey` variables containing string values that must exactly match the license information in your license e-mail: @@ -76,20 +79,25 @@ public static void Main() { } ``` -When using this licensing option, do NOT include any Actipro entries in your application's *licenses.licx* file. - -> [!NOTE] +> [!IMPORTANT] > It is important to protect your licensee and license key combination from decompilers. We highly recommend using some form of string encryption on the `licensee` and `licenseKey` values passed into the `ActiproLicenseManager.RegisterLicense` method. Many obfuscators include string encryption as an option, or you can use other custom logic to scramble/descramble the strings. +> [!WARNING] +> When using this licensing option, *do not* include any Actipro entries in your application's *licenses.licx* file. + ## Licensing Via a Licenses.licx File -This licensing option is only available for classic .NET Framework applications and is what Actipro exclusively used prior to v21.1. Note that .NET Framework applications with direct assembly references can either use this licensing option or the `RegisterLicense` call licensing option described above. +This legacy licensing option is only available for applications that target the classic .NET Framework and is what Actipro exclusively used prior to v21.1. + +> [!TIP] +> Applications that target .NET Framework and use direct assembly references can still use the `RegisterLicense` call described above, which is easier to apply. ### Summary of Licenses.licx File Licensing Steps -- Enter your *Licensee* and *License Key* during install. -- Compile our sample project to see if you entered them correctly. -- Update your project's *licenses.licx* file and you should be done. +- Download and run the installer. +- When prompted by the installer, enter your *Licensee* and *License Key*. +- Compile and run the Sample Browser application included with the installer to see if the license was applied correctly. +- Update your own project's *licenses.licx* file and you should be done. ### Detailed Licenses.licx File Licensing Steps @@ -113,11 +121,11 @@ The following detailed steps indicate how to install and license Actipro product - Review the configuration options that you'd like to install. For build servers, the documentation, samples, tools, and designer integration install options may be turned off. - - Complete the install. + - Complete the installation. -1. After completing the installation, we highly recommend that you open one of our sample projects for the product and try to rebuild its solution and run it. If it runs without any license popup window displaying, then you installed the control correctly. If it displays a license popup window, then you most likely did not enter the Licensee or License Key correctly in the previous step and need to reinstall. Again, ensure both of them match exactly with what is in our license e-mail. +1. After completing the installation, we highly recommend that you open our Sample Browser application and try to rebuild its solution and run it. If it runs without any license popup window displaying, then you installed the license correctly. If it displays a license popup window, then you most likely did not enter the *Licensee* or *License Key* correctly in the previous step and need to reinstall. Again, ensure both values match exactly with what is in our license e-mail. Copying and pasting from the email is recommended. -1. When adding products to your application the first time... +1. When adding products to your application for the first time... - Add references to the Actipro product assemblies that are being used. Default assembly install paths are indicated in the Readme file. Please note that the *ActiproSoftware.Shared.WinForms.dll* assembly is always required since all products depend on it. @@ -133,42 +141,50 @@ The following detailed steps indicate how to install and license Actipro product 1. In Visual Studio, execute **Clean Solution** and then **Rebuild Solution**. -After following these steps, licensing will be properly applied to your application. +After following these steps, licensing should be properly applied to your application. ### Licenses.licx Files and Valid Entries A *licenses.licx* file is a file that Visual Studio maintains to know what third-party licensed components and controls are included in a project. Visual Studio then uses that information to know what license data it needs to include in the output assembly for your project. Therefore, if you use a third-party component and don't have the proper entries in your project's *licenses.licx* file, no licensing information will be included in your project's output assembly and licensing popup windows will display when your application is run on end user computers. -The contents of a *licenses.licx* file are pretty simple. It needs a single line that supplies license information to all Actipro @@PlatformName control products for which you are licensed. Make sure that the version numbers, including build, match exactly with the version number of the control that is installed. +The contents of a *licenses.licx* file are pretty simple. It needs a single line that supplies license information to all Actipro @@PlatformName control products for which you are licensed. This single line (update the version to match the one you use) should be added to the *licenses.licx* file in any project that uses Actipro @@PlatformName control or SyntaxEditor add-on products: ``` -ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.WinForms, Version=23.1.3.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763 +ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.WinForms, Version=24.1.0.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763 ``` +> [!IMPORTANT] +> Make sure that the version numbers, including build, match exactly with the version number of the control that is installed. + ### Notes on Build Machines When Using Licenses.licx Files -Just like when compiling on developer machines, build machines need to be able to locate license information, so that Visual Studio and/or MSBuild can embed it in your application. Therefore, after licensing the product, it must be installed using the already-licensed option at least once on any build machine that will be compiling your application. This process installs the license information into the machine's registry. The install can be done with minimal options and can be uninstalled immediately after. The license information will remain in the machine's registry. +Just like when compiling on developer machines, build machines need to be able to locate license information, so that Visual Studio and/or MSBuild can embed it in your application. Therefore, after licensing the product, it must be installed using the already-licensed option at least once on any build machine that will be compiling your application. This process installs the license information into the machine's registry. The installation can be done with minimal options and can be uninstalled immediately after. The license information will remain in the machine's registry. + +This process is only necessary once per major/minor version (e.g., 23.1). It doesn't need to be repeated for maintenance releases, and it doesn't need to be done at all if you use the `RegisterLicense` call licensing option. -This process is only necessary once per major/minor version (e.g., 2021.1). It doesn't need to be repeated for maintenance releases. And it doesn't need to be done at all if you use the `RegisterLicense` call licensing option. +> [!TIP] +> You can use the `RegisterLicense` licensing method (instead of the *licenses.licx* file method) to avoid the need to perform any licensing configuration on build machines. -We do not charge additional licensing fees for build machines. +Actipro does not charge additional licensing fees for build machines. ### Troubleshooting -#### I've purchased licenses and followed the steps above but a license popup window says 'Error: The licensee or license key that was entered is invalid'. +The legacy *licenses.licx* licensing method can be problematic and easily misconfigured, which is why we strongly recommend using the `RegisterLicense` licensing method instead. For those who need or prefer the *licenses.licx* method, the following can help troubleshooting any licensing issues. -This means that you didn't enter the Licensee and License Key exactly as specified in our license e-mail. Reinstall the product and be sure that both of those items match exactly with what is in our license e-mail. The most common licensing mistake is when the Licensee (organization name) doesn't match what is in the license e-mail. +#### I've purchased licenses and followed the steps above, but a license popup window says 'Error: The licensee or license key that was entered is invalid'. + +This typically indicates that the *Licensee* and *License Key* do not exactly match the values specified in the license e-mail. Reinstall the product and be sure that both of those items match exactly with what is in our license e-mail. The most common licensing mistake is when the *Licensee* (organization name) doesn't match what is in the license e-mail. Copying and pasting values from the e-mail is recommended. #### No licenses.licx file exists in my project. -If you don't see a *licenses.licx* file in your Visual Studio project (generally in the "Properties" folder), first ensure that the "Show All Files" option is set. The "Show All Files" command is in the Visual Studio Solution Explorer tool window's toolbar. If you still don't see one, follow these steps: +If you don't see a *licenses.licx* file in your Visual Studio project (generally in the **Properties** folder), first ensure that the **Show All Files** option is set. The **Show All Files** command is in the Visual Studio **Solution Explorer** tool window's toolbar. If you still don't see one, follow these steps: - Right click on your project and select **Add > Add New Item**. - Select a **Text File** template and name it *licenses.licx*. - Ensure its **Build Action** is set to *Embedded Resource*. This can be done in the Visual Studio **Properties** tool window when the *licenses.licx* file is selected. -- Copy the line from the sample *licenses.licx* file above into it. +- Copy the line from the sample *licenses.licx* file above into the new file and save it. #### A licenses.licx file exists but there is no entry for the Actipro Software product I purchased. @@ -180,17 +196,19 @@ Make sure the *licenses.licx* file is included as an "Embedded Resource" in your #### A licenses.licx file exists and there is an entry for the Actipro Software products, however the version number is wrong. -This situation could occur if you upgraded to a new version. Be sure that you update the version number in the *licenses.licx* in every project that uses the product. The version number should be the same as the version number of the product that is used. Also ensure that the "PublicKeyToken" entry matches with the entry in the sample *licenses.licx* file above. +This situation can occur if you upgraded to a new version. Be sure that you update the version number in the *licenses.licx* in every project that uses the product. The version number should be the same as the version number of the product that is used. Also ensure that the "PublicKeyToken" entry matches with the entry in the sample *licenses.licx* file above. + +Entries in the *licenses.licx* file must be updated with every maintenance release since the build number portion of the version changes with each release. -#### I've purchased licenses, installed using the already licensed option, and followed the steps above but a license popup window says 'Evaluation Release'. +#### I've purchased licenses, installed using the "already licensed" option, and followed the steps above, but a license popup window says 'Evaluation Release'. Windows has a feature where it may virtualize registry entries that are made by the evaluation release of our products post-installation. This is called the "VirtualStore". What happens is that an evaluation registry gets cached in the virtual store and Visual Studio may choose to use that instead of a full release license key that you installed in the setup program. To clear this up, use "regedit", go to this key and remove it: ``` -HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\\Actipro Software\WinForms Controls\ +HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\WOW6432Node\Actipro Software\WinForms Controls\ ``` -The "Wow6432Node" part of the path above is only used on 64-bit machines, leave it out on 32-bit machines. Then rebuild your project and it should pull in the correct license key you entered during installation. +The `WOW6432Node` part of the path above is only used on 64-bit machines, leave it out on 32-bit machines. Then rebuild your project and it should pull in the correct license key you entered during installation. ## Licensing Questions? diff --git a/Documentation/topics/navigation/extensible-rendering.md b/Documentation/topics/navigation/extensible-rendering.md index 2f4fedd..5a154c4 100644 --- a/Documentation/topics/navigation/extensible-rendering.md +++ b/Documentation/topics/navigation/extensible-rendering.md @@ -9,7 +9,7 @@ Both [NavigationBar](xref:@ActiproUIRoot.Controls.Navigation.NavigationBar) and This object model allows for three levels of rendering customization. Choose which level of customization you wish to use: -- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include Metro Light, Metro Dark, Office 2007 styles (Blue, Silver, Black) and 2003 styles (Blue, Olive, Silver, and Windows Classic). +- Use Built-In Renderers As-Is - Use the built-in rendering styles without any changes, which include several Metro, Visual Studio, and Office styles. - Modify Properties on Built-In Renderers - Use the built-in renderers but modify the various properties on the renderers to easily create a customized appearance. @@ -17,7 +17,7 @@ This object model allows for three levels of rendering customization. Choose wh These are some sample rendering styles that come with [NavigationBar](xref:@ActiproUIRoot.Controls.Navigation.NavigationBar): -![Screenshot](images/navigationbar-metro-light.png)![Screenshot](images/navigationbar-metro-dark.png)![Screenshot](images/navigationbar-office-2007-blue.png)![Screenshot](images/navigationbar-office-2007-silver.png)![Screenshot](images/navigationbar-xp-blue.png)![Screenshot](images/navigationbar-xp-olive-green.png)![Screenshot](images/navigationbar-xp-silver.png)![Screenshot](images/navigationbar-xp-royale.png) +![Screenshot](images/navigationbar-metro-light.png)![Screenshot](images/navigationbar-metro-dark.png)![Screenshot](images/navigationbar-office-2007-blue.png)![Screenshot](images/navigationbar-office-2007-silver.png)![Screenshot](images/navigationbar-xp-blue.png)![Screenshot](images/navigationbar-xp-olive-green.png)![Screenshot](images/navigationbar-xp-silver.png) ## Use Built-In Renderers As-Is @@ -25,21 +25,21 @@ Navigation includes the following built-in renderers: | Renderer | Description | |-----|-----| -| [MetroNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.MetroNavigationBarRenderer) | Capable of drawing in a Metro style (Light and Dark). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer.BaseColorSchemeType). | -| [Office2007NavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.Office2007NavigationBarRenderer) | Capable of drawing all Office 2007 styles (Blue, Silver, and Black). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer.BaseColorSchemeType). | -| [Office2003NavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer) | Capable of drawing all Office 2003 styles (Blue, Olive, Silver, and Windows Classic). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer.BaseColorSchemeType). | +| [MetroNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.MetroNavigationBarRenderer) | Capable of drawing in a Metro style (Light and Dark). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.OfficeLunaNavigationBarRenderer.BaseColorSchemeType). | +| [OfficeClassicNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.OfficeClassicNavigationBarRenderer) | Capable of drawing all Office classic styles (Blue, Silver, and Black). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.OfficeLunaNavigationBarRenderer.BaseColorSchemeType). | +| [OfficeLunaNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.OfficeLunaNavigationBarRenderer) | Capable of drawing all Office Luna styles (Blue, Olive Green, Silver), and Windows Classic. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.OfficeLunaNavigationBarRenderer.BaseColorSchemeType). | ## Color Tinting Color Schemes -With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a purple color scheme and then use those color schemes with the [Office2007NavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.Office2007NavigationBarRenderer) or [Office2003NavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer) classes like this: +With one line of code, any `WindowsColorScheme` can be tinted so that all of the colors are altered. For instance, you can easily create a purple color scheme and then use those color schemes with the [OfficeClassicNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.OfficeClassicNavigationBarRenderer) or [OfficeLunaNavigationBarRenderer](xref:@ActiproUIRoot.Controls.Navigation.OfficeLunaNavigationBarRenderer) classes like this: ![Screenshot](images/navigationbar-custom-purple.gif) -This code shows how to load a custom purple-tinted color scheme (displayed in the screenshot above) that is based on the built-in Office 2007 blue theme: +This code shows how to load a custom purple-tinted color scheme (displayed in the screenshot above) that is based on the built-in Office classic blue theme: ```csharp -WindowsColorScheme scheme = new WindowsColorScheme("Purple", WindowsColorSchemeType.WindowsXPBlue, Color.Purple); -navigationBar.Renderer = new Office2007NavigationBarRenderer(scheme); +var scheme = new WindowsColorScheme("Purple", WindowsColorSchemeType.OfficeClassicBlue, Color.Purple); +navigationBar.Renderer = new OfficeClassicNavigationBarRenderer(scheme); ``` ## Customizing Specific Colors in a Color Scheme diff --git a/Documentation/topics/navigation/images/navigationbar-xp-royale.png b/Documentation/topics/navigation/images/navigationbar-xp-royale.png deleted file mode 100644 index 5901e1f..0000000 Binary files a/Documentation/topics/navigation/images/navigationbar-xp-royale.png and /dev/null differ diff --git a/Documentation/topics/navigation/index.md b/Documentation/topics/navigation/index.md index 691ed29..0e4df3f 100644 --- a/Documentation/topics/navigation/index.md +++ b/Documentation/topics/navigation/index.md @@ -26,7 +26,7 @@ The [NavigationBar](xref:@ActiproUIRoot.Controls.Navigation.NavigationBar) contr ## Feature List - Complete implementation of Navigation Bar functionality found in Outlook. -- Built-in [rendering styles](extensible-rendering.md). include Metro Light, Metro Dark, Office (Black, Blue, Olive, Silver), and Windows Classic. +- Built-in [rendering styles](extensible-rendering.md). include Metro, Office (Black, Blue, Olive Green, Silver), and Windows Classic. - Robust rendering interface allows for totally [customized rendering](extensible-rendering.md). - [Buttons](run-time-usage.md) provide single-click access to each pane. - Buttons can be collapsed to an overflow area, allowing for more client area real estate. diff --git a/Documentation/topics/quick-starts.md b/Documentation/topics/quick-starts.md index f2b7b2e..ff375cd 100644 --- a/Documentation/topics/quick-starts.md +++ b/Documentation/topics/quick-starts.md @@ -5,19 +5,50 @@ order: 22 --- # Sample Code and QuickStarts -Actipro WinForms Studio includes many demos and QuickStarts in the sample project. +The **Sample Browser** is the main sample project for evaluating Actipro WinForms Studio, and the [full source is available on GitHub](open-source.md). It is designed to provide information, comprehensive demos, and detailed samples for all the Actipro @@PlatformName products. -## What is a Demo? +This source code is invaluable for learning how to use the various control products. -A demo is a large sample that shows the combination of many product features together to create a finished product. +> [!TIP] +> The offline product installer can also be used to install a pre-compiled **Sample Browser** application and the full source code. -Demos are intended to show some ideas of what you can do with our products when you use them in your own applications. +## Downloading the Sample Browser -## What is a QuickStart? +Visit [https://github.com/Actipro/WinForms-Controls](https://github.com/Actipro/WinForms-Controls) and download our repository's source code. The repository contains the full source for the **Sample Browser** project. -A QuickStart is a small sample that is focused on a particular feature area or how to perform a certain task. +GitHub offers several download options including: +- [Cloning the repo with Git](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) using this URL: + - `git clone https://github.com/Actipro/WinForms-Controls.git` +- Downloading a ZIP of the source code's current state. -QuickStarts are the place to go to quickly learn how to get a specific feature working without having to navigate around unrelated code needed to support other features. +> [!TIP] +> It is recommended to clone the repository with the URL so that you can easily pull in future updates. + +## Running the Sample Browser + +Once the repository's source code has been downloaded to a folder, open the `Samples/SampleBrowser/SampleBrowser.sln` file in Visual Studio. + +The projects in that sample are preconfigured to reference our product [NuGet packages](nuget.md). Run the solution to open the **Sample Browser** application. + +> [!IMPORTANT] +> Our **Sample Browser** project requires the .NET SDK (even for .NET Framework targets), and this component may not be installed by default. +> +>If the .NET SDK is not installed, a warning similar to "One or more projects in the solution were not loaded correctly." may be displayed with an error message similar to "The project file cannot be opened. Unable to locate the .NET SDK." displayed in the Visual Studio **Output Window**. +> +> Use the **Visual Studio Installer** to add the .NET SDK component and reload the solution. + +### Changing the Actipro Product Version + +The `Samples/SampleBrowser/ActiproSoftware.References.props` file contains an `ActiproVersion` property that defines the version of the Actipro product NuGet packages to reference. Update that value if you wish to use an alternate version. + +> [!NOTE] +> The samples always are intended to work with the current Actipro product version, and may not compile if used with other versions. However, adjustments to the Actipro product version can be useful when testing prerelease builds. + +## Types of Samples + +Most samples involve one or more simple examples that are focused on a particular feature area or show how to perform a certain task. These kinds of samples, called QuickStarts, are the place to quickly learn how to get a specific feature working without having to navigate around the unrelated code needed to support other features. + +On the other hand, a demo is a large sample that shows the combination of many product features together to create a finished product. Demos are intended to show some ideas of what you can do with our products when you use them in your own applications. ## Reusing Sample Source Code diff --git a/Documentation/topics/recent-updates.md b/Documentation/topics/recent-updates.md index b17d7f3..45214b0 100644 --- a/Documentation/topics/recent-updates.md +++ b/Documentation/topics/recent-updates.md @@ -9,6 +9,12 @@ WinForms Studio's documentation has frequent updates, so this topic is the best If you are looking for a list of recently-added major new features to WinForms Studio products, please see the **Sample Browser**'s Release History pages instead. +## Updates for v24.1.0 + +- **All:** Added [Troubleshooting (General)](troubleshooting.md) topic. + +- **All:** Updated [Sample Code and QuickStarts](quick-starts.md) topic. + ## Updates for v23.1.3 - **SyntaxEditor:** Added the [Overlay Panes](syntaxeditor/user-interface/editor-view/overlay-panes.md) topic for developing custom overlay panes. diff --git a/Documentation/topics/shared/global-renderers.md b/Documentation/topics/shared/global-renderers.md index ce2696d..44c5759 100644 --- a/Documentation/topics/shared/global-renderers.md +++ b/Documentation/topics/shared/global-renderers.md @@ -20,10 +20,10 @@ The [UIRendererManager](xref:@ActiproUIRoot.Controls.UIRendererManager) tracks a Once you have determined which color scheme you'd like to use, set it to the static [UIRendererManager](xref:@ActiproUIRoot.Controls.UIRendererManager).[ColorScheme](xref:@ActiproUIRoot.Controls.UIRendererManager.ColorScheme) property, and all the global renderers will attempt update to use that color scheme. -This code demonstrates how to set the color scheme to a built-in Visual Studio 2005 theme: +This code demonstrates how to set the color scheme to a built-in Metro Light theme: ```csharp -UIRendererManager.ColorScheme = WindowsColorScheme.VisualStudio2005; +UIRendererManager.ColorScheme = WindowsColorScheme.MetroLight; ``` ## Using the UIRendererManager Component @@ -37,16 +37,16 @@ This means that you can drop an instance of [UIRendererManager](xref:@ActiproUIR ## Setting a Custom Global Renderer Factory -There may be certain cases where you'd like to use a global renderer that isn't available by default. For instance, say you'd like to use the [VisualStudio2002ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002ToolWindowTabStripRenderer) by default for all standalone [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) controls in your application. There is no color scheme that will use that renderer since the color schemes default to using the newer Visual Studio renderers instead. Therefore, you have to create a class which implements [IUIRendererFactory](xref:@ActiproUIRoot.Controls.IUIRendererFactory). +There may be certain cases where you'd like to use a global renderer that is different than the default. For instance, say you'd like to use the [VisualStudioToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioToolWindowTabStripRenderer) by default for all standalone [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) controls in your application. You can create a class which implements [IUIRendererFactory](xref:@ActiproUIRoot.Controls.IUIRendererFactory). The [IUIRendererFactory](xref:@ActiproUIRoot.Controls.IUIRendererFactory).[CreateRenderer](xref:@ActiproUIRoot.Controls.IUIRendererFactory.CreateRenderer*) method implemented on the custom factory class is responsible for returning an instance if [IUIRenderer](xref:@ActiproUIRoot.Controls.IUIRenderer), which is the interface that all renderers implement. -This code demonstrates how to implement a renderer factory for our Visual Studio 2002 [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) renderer: +This code demonstrates how to implement a renderer factory for our Visual Studio [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) renderer: ```csharp public class CustomTabStripRendererFactory : IUIRendererFactory { IUIRenderer IUIRendererFactory.CreateRenderer() { - return new VisualStudio2002ToolWindowTabStripRenderer(); + return new VisualStudioToolWindowTabStripRenderer(); } } ``` @@ -60,7 +60,7 @@ UIRendererManager.RegisterRendererFactory(typeof(ITabStripRenderer), new CustomTabStripRendererFactory(), overwrite: true); ``` -At this point any standalone [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) control that doesn't have a control-specific renderer assigned to it will use the global [VisualStudio2002ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002ToolWindowTabStripRenderer) instance created by the factory. +At this point any standalone [TabStrip](xref:@ActiproUIRoot.Controls.Docking.TabStrip) control that doesn't have a control-specific renderer assigned to it will use the global [VisualStudioToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudioToolWindowTabStripRenderer) instance created by the factory. ## Renderer vs. RendererResolved Properties diff --git a/Documentation/topics/supported-technologies.md b/Documentation/topics/supported-technologies.md index 41a837f..ab58c72 100644 --- a/Documentation/topics/supported-technologies.md +++ b/Documentation/topics/supported-technologies.md @@ -33,4 +33,9 @@ The products work best at design-time with the following IDEs: - Visual Studio 2022 - Visual Studio 2019 -- Visual Studio 2017 + +> [!NOTE] +> Older versions of Visual Studio should also work when building applications that use Actipro @@PlatformName controls but may not fully support all designer features and are not actively tested with new releases. Please understand that Actipro Support may not be able assist with issues arising from the use of unsupported IDEs. + +> [!IMPORTANT] +> Our [Sample Browser](quick-starts.md) application requires the .NET SDK. \ No newline at end of file diff --git a/Documentation/topics/syntaxeditor/dotnet-languages-addon/csharp/index.md b/Documentation/topics/syntaxeditor/dotnet-languages-addon/csharp/index.md index 5b041c0..3dc9ce1 100644 --- a/Documentation/topics/syntaxeditor/dotnet-languages-addon/csharp/index.md +++ b/Documentation/topics/syntaxeditor/dotnet-languages-addon/csharp/index.md @@ -10,7 +10,7 @@ The advanced C# syntax language implementation in the SyntaxEditor .NET Language ![Screenshot](../../images/dotnet-addon-csharp.png) > [!IMPORTANT] -> The syntax language and its parser supports C# 8.0 syntax. +> The syntax language and its parser supports C# 9.0 syntax. ## Features diff --git a/Documentation/topics/syntaxeditor/free-languages.md b/Documentation/topics/syntaxeditor/free-languages.md index 9727620..871dddb 100644 --- a/Documentation/topics/syntaxeditor/free-languages.md +++ b/Documentation/topics/syntaxeditor/free-languages.md @@ -22,7 +22,7 @@ The languages each have a language project that can be opened and edited using t `\ProductSamples\SyntaxEditorSamples\Languages\Projects` > [!IMPORTANT] -> The language projects all specify a code generation output path that is valid on our development machines. The Language Designer will warn you with an error when building the language projects if the path does not exist on your machine. In that case, simply change to the code generation output path to another location that is valid for your machine. +> The language projects all specify a relative code generation output path that may not be present on other machines. The Language Designer will warn you with an error when building the language projects if the path does not exist on your machine. In that case, simply change to the code generation output path to another location that is valid for your machine. Each of the languages that have language projects in the folder above have had a language definition file code-generated by the [Language Designer](language-designer-tool/index.md) tool. The language definition files can be distributed with your applications and [loaded at run-time](language-creation/loading-lang-def.md). Language definition files are located in this folder relative to the Sample Browser project's root: diff --git a/Documentation/topics/syntaxeditor/images/language-designer-classification-types.png b/Documentation/topics/syntaxeditor/images/language-designer-classification-types.png index 1e7385e..47ae7c8 100644 Binary files a/Documentation/topics/syntaxeditor/images/language-designer-classification-types.png and b/Documentation/topics/syntaxeditor/images/language-designer-classification-types.png differ diff --git a/Documentation/topics/syntaxeditor/language-creation/loading-lang-def.md b/Documentation/topics/syntaxeditor/language-creation/loading-lang-def.md index 4bc6c0e..235ab3f 100644 --- a/Documentation/topics/syntaxeditor/language-creation/loading-lang-def.md +++ b/Documentation/topics/syntaxeditor/language-creation/loading-lang-def.md @@ -18,7 +18,7 @@ The benefit of distributing the language definition as a file with your applicat This code creates a syntax language object based on an *ECMAScript.langdef* file: ```csharp -SyntaxLanguageDefinitionSerializer serializer = new SyntaxLanguageDefinitionSerializer(); +var serializer = new SyntaxLanguageDefinitionSerializer(); string path = @"C:\ECMAScript.langdef"; ISyntaxLanguage language = serializer.LoadFromFile(path); ``` @@ -32,7 +32,7 @@ A language definition can also be distributed in any other form, such as an embe This code creates a syntax language object based on a `Stream` in the variable `stream`: ```csharp -SyntaxLanguageDefinitionSerializer serializer = new SyntaxLanguageDefinitionSerializer(); +var serializer = new SyntaxLanguageDefinitionSerializer(); ISyntaxLanguage language = serializer.LoadFromStream(stream); ``` @@ -60,7 +60,7 @@ public class EcmaScriptSyntaxLanguage : SyntaxLanguage { The language can then be instantiated like this: ```csharp -EcmaScriptSyntaxLanguage language = new EcmaScriptSyntaxLanguage(); +var language = new EcmaScriptSyntaxLanguage(); ``` The [SyntaxLanguageDefinitionSerializer](xref:ActiproSoftware.Text.Implementation.SyntaxLanguageDefinitionSerializer) class has: @@ -70,3 +70,23 @@ The [SyntaxLanguageDefinitionSerializer](xref:ActiproSoftware.Text.Implementatio } - An [InitializeFromStream](xref:ActiproSoftware.Text.Implementation.SyntaxLanguageDefinitionSerializer.InitializeFromStream*) method for initializing an existing syntax language from a `Stream` + +## Using Built-in Classification Types + +When a language definition is loaded, the classification types in the *.langdef* are registered with their associated [highlighting styles](../user-interface/styles/highlighting-styles.md). If a classification type with the same key has not already been registered, the styles defined in the *.langdef* will be used. If a classification type was already defined, the previously registered styles will be used instead. + +There are several built-in classification types (e.g., [Comment](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider.Comment) or [String](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider.String)) available from the [BuiltInClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider) class that are pre-defined with common styles supporting light and [dark themes](../user-interface/styles/dark-themes.md), but these classification types are only used, by default, if they were previously registered. When loading a *.langdef*, you can instruct the serializer to use built-in classification types, if available, for any of the classification types defined by the language even if that classification type was not previously registered. Simply set the [UseBuiltInClassificiationTypes](xref:ActiproSoftware.Text.Implementation.SyntaxLanguageDefinitionSerializer.UseBuiltInClassificiationTypes) property to `true` and the built-in classification types and their styles will be preferred over those defined in the *.langdef* file. + +> [!TIP] +> Language definition files created before version 24.1 will not have the `DarkStyle` data used to define foreground and background colors for use with a dark theme, so using built-in classification types will allow older files to use pre-defined dark colors for certain classification types and improve their appearance in a dark theme. + +The following code demonstrates loading a language from a file using built-in classification types, when available: + +```csharp +var serializer = new SyntaxLanguageDefinitionSerializer(); +serializer.UseBuiltInClassificiationTypes = true; +ISyntaxLanguage language = serializer.LoadFromFile(@"C:\MyFile.langdef"); +``` + +> [!IMPORTANT] +> To use built-in classification types, make sure the keys used in the *.langdef* file match those defined by [ClassificationTypeKeys](xref:ActiproSoftware.Text.ClassificationTypeKeys). \ No newline at end of file diff --git a/Documentation/topics/syntaxeditor/language-designer-tool/live-test.md b/Documentation/topics/syntaxeditor/language-designer-tool/live-test.md index a6ec9ff..6eb2ebc 100644 --- a/Documentation/topics/syntaxeditor/language-designer-tool/live-test.md +++ b/Documentation/topics/syntaxeditor/language-designer-tool/live-test.md @@ -11,7 +11,7 @@ Click the **Live Test** button in the ribbon to open the **Live Test** pane. ## Features and Limitations -The **Live Test** can show syntax highlighting for a language that has a dynamic lexer and classification types defined. It does not yet work with other lexer types. There are a number of enhancements planned for this pane in the future. +The **Live Test** can show syntax highlighting for a language that has a dynamic lexer and classification types defined. It does not yet work with other lexer types. ## Status Bar Information @@ -21,4 +21,7 @@ The right side of the status bar indicates the current line, column, and charact ## Updating the Live Test -You can [build the language project](building-a-project.md) to update the language used in the **Live Test** pane. Changes made to the other configuration panes will not be picked up in **Live Test** until a project build occurs. +You can [build the language project](building-a-project.md) to update the language used in the **Live Test** pane. Most changes made to the other configuration panes will not be picked up in **Live Test** until a project build occurs. + +> [!TIP] +> If the **DefaultStyle** or **DarkStyle** of a classification type is modified after the live test is loaded, those changes should be applied in real time. Dock the **Live Test** and **Classification Types** tool windows side-by-side to easily preview how different styles affect the sample text. diff --git a/Documentation/topics/syntaxeditor/language-designer-tool/other-config-panes.md b/Documentation/topics/syntaxeditor/language-designer-tool/other-config-panes.md index 2e03417..d9a7436 100644 --- a/Documentation/topics/syntaxeditor/language-designer-tool/other-config-panes.md +++ b/Documentation/topics/syntaxeditor/language-designer-tool/other-config-panes.md @@ -25,19 +25,25 @@ Classifications provide the foundation for syntax highlighting. Ranges in text Classification types are used in conjunction with a lexer. Be sure to [define a Lexer](../language-creation/feature-services/lexer.md) as well since classifications are assigned to the various tokens generated by the lexer. -Common classification types are: +Examples of common classification types are: - Comment -- Delimiter - Identifier - Keyword - Number - Operator +- Punctuation - String ### Adding Classification Types -To add classification types, click the **Add** button in the ribbon. A dialog will appear asking you for the keys of the new classification types. Enter one key per line, where each key conforms to standard identifier syntax since they will be used in code generation. A new classification type is created for each key that you enter. +To add classification types, click the **Add** button in the ribbon. A dialog will appear asking you for the keys of the new classification types. Enter one key per line, where each key conforms to standard identifier syntax since they will be used in code generation. + +> [!TIP] +> Use the **Insert** button to select the key of a common classification type. + +A new classification type is created for each key that you enter. Any key that is recognized as common classification type will be prepopulated with a description and predefined colors, when available. + ### Updating Classification Types @@ -47,15 +53,17 @@ A **Description** is a verbose way of describing the classification type that is The **DefaultStyle** indicates the default highlighting style that should be used for syntax highlighting any text in SyntaxEditor that is classified with the classification type. Any `null` values for the style attributes will inherit whatever the default editor text style is. These style attributes can be edited: -- `Foreground` - The foreground brush of the highlighting style. -- `Background` - The background brush of the highlighting style. +- `Foreground` - The foreground brush of the highlighting style (typically for a light theme). +- `Background` - The background brush of the highlighting style (typically for a light theme). - `Bold` - Whether the highlighting style uses boldface. - `Italic` - Whether the highlighting style uses italics. - `BackgroundSpansVirtualSpace` - Whether the background should span virtual space when the styled range includes a line terminator. +The **DarkStyle** indicates just the `Foreground` and `Background` colors that should be used for a dark theme. Other properties (e.g., `Bold`) are unchanged from the **DefaultStyle**. + ### Previewing Classification Types -The **Preview** box below the list shows a preview of the classification type and its default style. +The **Light preview** and **Dark preview** boxes below the list show a preview of the classification type and its style when used with a light or dark theme. ### Removing Classification Types diff --git a/Documentation/topics/syntaxeditor/user-interface/editor-view/current-line-highlighting.md b/Documentation/topics/syntaxeditor/user-interface/editor-view/current-line-highlighting.md index ed6d272..03c6a2f 100644 --- a/Documentation/topics/syntaxeditor/user-interface/editor-view/current-line-highlighting.md +++ b/Documentation/topics/syntaxeditor/user-interface/editor-view/current-line-highlighting.md @@ -5,14 +5,30 @@ order: 11 --- # Current Line Highlighting -SyntaxEditor supports highlighting of the current editor view line, meaning the view line that currently contains the caret. +SyntaxEditor supports two methods of highlighting the current editor view line, meaning the view that currently contains the caret: +- Current line highlighting +- Current line number highlighting -## Activating Current Line Highlighting +## Current Line Highlighting The [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor).[IsCurrentLineHighlightingEnabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.IsCurrentLineHighlightingEnabled) property can be set to `true` to activate current line highlighting. It is off by default. -## Changing the Highlight Brush +When active, a border can be rendered above and below the entire line with an optional background brush. -The brush used to render the highlight can be adjusted by the end user since it is exposed via a special classification type's style in the highlighting style registry. +### Changing the Highlight Brush + +The brushes used to render the highlight can be adjusted by the end user since it is exposed via a special classification type's style in the highlighting style registry. See the "Special Classification Types" section in the [Highlighting Style Registries](../styles/highlighting-style-registries.md) topic for more information on how to modify the style. + +## Current Line Number Highlighting + +The [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor).[IsCurrentLineNumberHighlightingEnabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.IsCurrentLineHighlightingEnabled) property can be set to `true` to activate current line number highlighting. It is on by default. + +When active and the line number margin is displayed, the current line number will be rendered in a different style than the other line numbers. + +### Changing the Current Line Number Style + +The brushes used to render the line number can be adjusted by the end user since it is exposed via a special classification type's style in the highlighting style registry. + +See the "Special Classification Types" section in the [Highlighting Style Registries](../styles/highlighting-style-registries.md) topic for more information on how to modify the style. \ No newline at end of file diff --git a/Documentation/topics/syntaxeditor/user-interface/editor-view/index.md b/Documentation/topics/syntaxeditor/user-interface/editor-view/index.md index 4a53d77..32e1600 100644 --- a/Documentation/topics/syntaxeditor/user-interface/editor-view/index.md +++ b/Documentation/topics/syntaxeditor/user-interface/editor-view/index.md @@ -81,7 +81,7 @@ See the [Zooming](zooming.md) topic for more information. ## Current Line Highlighting -SyntaxEditor supports highlighting of the current editor view line, meaning the view line that currently contains the caret. +SyntaxEditor supports highlighting of the current editor view line or line number, meaning the view line that currently contains the caret. See the [Current Line Highlighting](current-line-highlighting.md) topic for more information. diff --git a/Documentation/topics/syntaxeditor/user-interface/intelliprompt/image-source-providers.md b/Documentation/topics/syntaxeditor/user-interface/intelliprompt/image-source-providers.md index fd8d338..5bfedb4 100644 --- a/Documentation/topics/syntaxeditor/user-interface/intelliprompt/image-source-providers.md +++ b/Documentation/topics/syntaxeditor/user-interface/intelliprompt/image-source-providers.md @@ -61,6 +61,11 @@ There are several image sets that are included with SyntaxEditor: To change the image set that is currently in effect, set the [CommonImageSourceProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider).[DefaultImageSet](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider.DefaultImageSet) property to a [CommonImageSet](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSet) value. Note that some UI, such as for the [NavigableSymbolSelector](navigable-symbol-selector.md), may need to be reloaded following a change to this property. +```csharp +// Configure image set for dark theme +CommonImageSourceProvider.DefaultImageSet = CommonImageSet.MetroDark; +``` + ## Custom Image Source Providers It's easy to write your own custom image source provider if none of the implementations above work for your scenario. Simply create a class that implements [IImageSourceProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.IImageSourceProvider). diff --git a/Documentation/topics/syntaxeditor/user-interface/styles/dark-themes.md b/Documentation/topics/syntaxeditor/user-interface/styles/dark-themes.md new file mode 100644 index 0000000..410ea33 --- /dev/null +++ b/Documentation/topics/syntaxeditor/user-interface/styles/dark-themes.md @@ -0,0 +1,453 @@ +--- +title: "Dark Themes" +page-title: "Dark Theme - SyntaxEditor Theme and Highlighting Style Features" +order: 5 +--- +# Dark Themes + +[SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor) supports the ability to easily switch between light and dark themes. + +All of the default styles registered by [DisplayItemClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider) and [BuiltInClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider) as well as the built-in language implementations are designed to support either light or dark themes. However, any custom language implementations may require additional configuration to support a dark theme since most styles intended for use on a light background are not very appealing on a dark background. + +## Understanding Dark Themes + +There are several aspects that must be considered to fully support dark themes with [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor). + +@if (winforms) { +> [!TIP] +> The [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) can manage many of these settings for you, but the concepts are still important to understand. +} +@if (wpf) { +> [!TIP] +> The [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) can manage most of these settings for you, but the concepts are still important to understand. In most cases, the only step necessary to support dark themes is to ensure highlighting styles are using appropriate colors. +} + +@if (winforms) { +### UI Renderer + +The [ISyntaxEditorRenderer](xref:@ActiproUIRoot.Controls.SyntaxEditor.ISyntaxEditorRenderer) affects the appearance of UI elements like scrollbars that are used by the editor. For the best experience using the editor with a dark theme, ensure the editor is configured with a renderer that supports dark themes. + +The following code shows how to use the Metro Dark renderer with an individual instance of SyntaxEditor and synchronize the `ForeColor` and `BackColor` properties with the color scheme: + +```csharp +// Set the renderer +editor.Renderer = new MetroSyntaxEditorRenderer(WindowsColorSchemeType.MetroDark); + +// Configure default colors to match the color scheme +editor.ForeColor = editor.Renderer.ColorScheme.GetKnownColor(KnownColor.WindowText); +editor.BackColor = editor.Renderer.ColorScheme.GetKnownColor(KnownColor.Window); +``` + +The following code shows how to change the global color scheme to Metro Dark and sychronize the `ForeColor` and `BackColor` properties with the color scheme: + +```csharp +// Set the global color scheme +UIRendererManager.ColorScheme = WindowsColorSchemeType.MetroDark; + +// Configure default colors to match the color scheme +editor.ForeColor = UIRendererManager.ColorScheme.GetKnownColor(KnownColor.WindowText); +editor.BackColor = UIRendererManager.ColorScheme.GetKnownColor(KnownColor.Window); +``` + + +> [!IMPORTANT] +> By default, the special Plain Text classification type is registered with a style that does not explicitly define foreground and background colors for the style, so the editor's `ForeColor` and `BackColor` properties will be used for Plain Text unless the style is updated with explicit colors. + +See the [Global Renderers](../../../shared/global-renderers.md) topic for more details on working with renderers. + +} +@if (wpf) { +### Application Theme + +The overall application theme affects default foreground and background colors and the appearance of UI elements like scrollbars that are used by the editor. For the best experience using the editor with a dark theme, ensure the application theme is also configured with a dark theme. [Actipro Themes](../../../themes/index.md) can be used to set a dark theme like Metro Dark. + +```csharp +// Switch to the MetroDark application theme +ThemeManager.CurrentTheme = ThemeNames.MetroDark; +``` + +> [!IMPORTANT] +> By default, the special Plain Text classification type is registered with a style that does not explicitly define foreground and background colors for the style, so the editor's `Foreground` and `Background` properties will be used for Plain Text unless the style is updated with explicit colors. +} + +### Common Image Source Provider + +The static [CommonImageSourceProvider.DefaultImageSet](../intelliprompt/image-source-providers.md) property indicates which set of images will be used in [IntelliPrompt](../intelliprompt/index.md). For dark themes, the [MetroDark](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSet.MetroDark) images are designed with colors that are appropriate for dark themes. + +```csharp +// Switch to the MetroDark image set +CommonImageSourceProvider.DefaultImageSet = CommonImageSet.MetroDark; +``` + +### Highlighting Styles + +[Highlighting Styles](highlighting-styles.md) are used to define colors that are associated with certain classifications of text (e.g., comment or keyword) or UI elements like [squiggle lines](../adornment/squiggle-lines.md) and [word wrap glyphs](../editor-view/word-wrap.md). By default, these styles assume the colors are intended for a light background and, without additional configuration, may not be very appealing on a dark background. + +The [Highlighting Style Registry](highlighting-style-registries.md) associated with the editor can be configured with either a light (default) or dark color palette, and switching the [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry).[CurrentColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.CurrentColorPalette) will update all of the styles to use colors from the selected color palette. + +```csharp +// Switch to the dark color palette +AmbientHighlightingStyleRegistry.Instance.CurrentColorPalette = AmbientHighlightingStyleRegistry.Instance.DarkColorPalette; +``` + +All of the default styles registered by [DisplayItemClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider) and [BuiltInClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider) are designed with colors for either light or dark themes. Additionally, the built-in language implementations and all of the [free languages](../../free-languages.md) are similarly designed to support both themes. + +Any custom styles to be used in a dark theme may need to define additional colors if the default colors are not appealing on a dark background. + +## SyntaxEditor Theme Manager + +The [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) class makes it easy to automatically manage the different aspects discussed in the "Understanding Dark Themes" topic above. + +@if (winforms) { +By default, [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) watches the [UIRendererManager](xref:@ActiproUIRoot.Controls.UIRendererManager).[ColorSchemeChanged](xref:@ActiproUIRoot.Controls.UIRendererManager.ColorSchemeChanged) event to detect if the global renderer color scheme is changed between a light and dark color scheme. When a change is detected, the following changes are made:} +@if (wpf) { +By default, [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) watches the [ThemeManager](xref:@ActiproUIRoot.Themes.ThemeManager).[CurrentThemeChanged](xref:@ActiproUIRoot.Themes.ThemeManager.CurrentThemeChanged) event to detect if the application theme is changed between a light and dark theme. When a change is detected, the following changes are made: +} +1. The [CommonImageSourceProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider).[DefaultImageSet](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider.DefaultImageSet) is set to either [MetroLight](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSet.MetroLight) or [MetroDark](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSet.MetroDark). +1. The [CurrentColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.CurrentColorPalette) of any managed [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry) is changed to either it's [LightColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.LightColorPalette) or [DarkColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.DarkColorPalette). This, in turn, will update the style colors. See the "Color Palettes" topic below for more detail. + + By default, the [AmbientHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.AmbientHighlightingStyleRegistry) is automatically managed by [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager). Use the [Manage](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager.Manage*) method manage additional repositories. If automatic management of the [AmbientHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.AmbientHighlightingStyleRegistry) is not desired, use the [Unmanage](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager.Unmanage*) method to remove it. + +The following sample code shows how to stop managing the [AmbientHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.AmbientHighlightingStyleRegistry): + +```csharp +// Disable automatically switching between light/dark color palettes +SyntaxEditorThemeManager.Unmanage(AmbientHighlightingStyleRegistry.Instance); + +// Ensure the light color palette is the default (in case a dark theme was active before being unmanaged) +AmbientHighlightingStyleRegistry.Instance.CurrentColorPalette = AmbientHighlightingStyleRegistry.Instance.LightColorPalette; +``` + +If automatic changes to [CommonImageSourceProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider).[DefaultImageSet](xref:@ActiproUIRoot.Controls.SyntaxEditor.IntelliPrompt.Implementation.CommonImageSourceProvider.DefaultImageSet) are not desired (like in the case of a custom image provider), set the [IsCommonImageSetSynchronizationEnabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager.IsCommonImageSetSynchronizationEnabled) property to `false`, as shown in the following sample: + +```csharp +// Disable changing image sets +SyntaxEditorThemeManager.IsCommonImageSetSynchronizationEnabled = false; +``` + +@if (winforms) { +> [!WARNING] +> [SyntaxEditorThemeManager](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditorThemeManager) cannot set the `ForeColor` and `BackColor` properties of each [SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor) control instance in response to theme changes. See the "Setting Explicit Plain Text Colors" section below for details on how to set light and dark colors for Plain Text instead of relying on the `ForeColor` and `BackColor` properties. +} + +## Color Palettes + +A [IHighlightingStyleColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette) is a repository of colors intended for use with the color properties of a [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) (e.g., [Foreground](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.Foreground) and [Background](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.Background)). Each [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry) has a [LightColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.LightColorPalette) and [DarkColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.DarkColorPalette). The [CurrentColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.CurrentColorPalette) property indicates which color palette is active. + +The colors in each color palette are associated with a unique key, which is typically the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType).`Key` associated with a style. The following colors are available for a given key and are accessed through corresponding methods to get or set the color (e.g., [GetForeground](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette.GetForeground*) and [SetForeground](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette.SetForeground*)): +- Foreground +- Background +- Border +- Strikethrough +- Underline + +When the current color palette of a registry is changed, the colors of all styles in the registry are updated to the colors defined by the new color palette using the rules outlined in the "Applying a Color Palette to a Highlighting Style" section below. + +### Applying a Color Palette to a Highlighting Style + +In a [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry), each registered [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) is associated with a [IClassificationType](xref:ActiproSoftware.Text.IClassificationType). The [IClassificationType](xref:ActiproSoftware.Text.IClassificationType).`Key` is used to lookup colors in the color palette. + +- The [Foreground](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.Foreground) is only updated if [IsForegroundEditable](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.IsForegroundEditable) is `true`. +- The [Background](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.Background) is only updated if [IsBackgroundEditable](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.IsBackgroundEditable) is `true`. +- The [BorderColor](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.BorderKind) is only updated if [BorderKind](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.BorderKind) is not [None](xref:@ActiproUIRoot.Controls.Rendering.LineKind.None). +- The [StrikethroughColor](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.StrikethroughColor) is only updated if [StrikethroughKind](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.StrikethroughKind) is not [None](xref:@ActiproUIRoot.Controls.Rendering.LineKind.None). +- The [UnderlineColor](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.UnderlineColor) is only updated if [UnderlineKind](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle.UnderlineKind) is not [None](xref:@ActiproUIRoot.Controls.Rendering.LineKind.None). + +> [!TIP] +> The [ApplyColorPaletteToStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.HighlightingStyleRegistryExtensions.ApplyColorPaletteToStyle*) extension method on [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry) can be used to apply the current color palette to a specific style. + +### Registering Styles Auto-Populate the Color Palettes + +When a [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) is registered in a [HighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.Implementation.HighlightingStyleRegistry) instance, the color properties of that style will be used to initialize the light and dark color palettes using similar logic as outlined in the "Apply a Color Palette to a Highlighting Style" topic above. For example, if a style has an editable foreground, then the current foreground color will be used to initialize the color palettes; otherwise, the color is ignored. + +> [!IMPORTANT] +> If the same [IClassificationType](xref:ActiproSoftware.Text.IClassificationType).`Key` has already been registered to a style and the `overwriteExisting` flag was *not* set to `true` then no changes will be made to the color palettes. Additionally, if any color value (e.g. foreground or background) is already assigned for the same `Key`, none of the colors in that color palette will be updated. +> +> To force the light color palette to be updated, set the `overwriteExisting` flag to `true` when registering the style. To force the dark color palette to also be updated, call the [IHighlightingStyleColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette).[ClearKey](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette.ClearKey*) method on the dark color palette before registering the style with the `overwriteExisting` flag set to `true`. +> +> Alternatively, calling [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry).[Unregister](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.Unregister*) for the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) (with the `keepColorPalettes` flag to set `false`) will fully reset the configuration and allow the style to be re-registered with new colors. + +Any colors currently assigned to the style are always assumed to be appropriate for the light color palette even if the dark color palette is currently active, so those color values will be set on the light color palette. + +For the dark color palette, the style's color value will be adapted for use in a dark theme. See the "Adapting Light Color to Dark Color Palette" topic below for details. + +After the style is registered, the [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry).[CurrentColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry.CurrentColorPalette) is applied to the style. This accomplishes two goals: +1. If a dark theme is currently active, then the colors from the dark color palette will be applied to the style even though it was registered with light colors assigned to the style. +2. If a color was already defined on a color palette before the style was registered, then the style will be updated to reflect the color defined by the color palette. + +> [!TIP] +> To ensure a specific dark color is used for a style, make sure the color is set in the dark color palette before the style is registered since registering a style will not replace any colors already defined in the color palettes. + +The following sample code demonstrates registering a highlighting style and allowing the default mapping of colors to the light and dark color palette: + +```csharp +// Create a classification type for a custom error +var classificationType = new ClassificationType("CustomError", "Custom Error"); + +// Create a style designed for light colors +var style = new HighlightingStyle() { + Foreground = Color.FromArgb(255, 255, 0, 0) // Red +}; + +// Register the style, allowing the Red color to be used on the light color palette +// and an adapted color to be used on the dark color palette +AmbientHighlightingStyleRegistry.Instance.Register(classificationType, style); +``` + +The following sample code demonstrates explicitly configuring the dark color palette before registration so that a specific color is used in dark themes instead of the default mapped color. This approach would also be used if the light color did not support an automatic mapping to a dark color. + +```csharp +// Create a classification type for a custom error +var classificationType = new ClassificationType("CustomError", "Custom Error"); + +var lightForeground = Color.FromArgb(255, 255, 0, 0); // Red +var darkForeground = Color.FromArgb(255, 197, 83, 143); // Pink + +// Create a style designed for light colors +var style = new HighlightingStyle() { + Foreground = lightForeground +}; + +// Preconfigure the dark color palette with the desired code for dark themes +AmbientHighlightingStyleRegistry.Instance.DarkColorPalette.SetForeground(classificationType.Key, darkForeground); + +// Register the style, allowing the Red color to be used on the light color palette +// and the pre-defined Pink color to be used on the dark color palette +AmbientHighlightingStyleRegistry.Instance.Register(classificationType, style); +``` + +### Setting Explicit Plain Text Colors + +@if (winforms) { +By default, the special [Plain Text](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.PlainText) classification type is registered with a style that does not explicitly define foreground and background colors for the style, so the editor's `ForeColor` and `BackColor` properties will be used for Plain Text instead. It can be problematic to synchronize these colors when switching between light and dark themes, so explicitly setting the foreground and background colors for Plain Text will result in the `ForeColor` and `BackColor` properties being ignored. +} +@if (wpf) { +By default, the special Plain Text classification type is registered with a style that does not explicitly define foreground and background colors for the style, so the editor's `Foreground` and `Background` properties will be used for Plain Text instead. If preferred, Plain Text can be configured to always use explicit colors for light and dark themes, thus ignoring the `Foreground` and `Backgroup` properties. +} + +The following code demonstrates setting explicit light and dark colors for Plain Text on the ambient registry: + +```csharp +IHighlightingStyleRegistry registry = AmbientHighlightingStyleRegistry.Instance; +string colorKey = DisplayItemClassificationTypeKeys.PlainText; + +// Light colors +registry.LightColorPalette.SetForeground(colorKey, Color.FromArgb(255, 255, 255, 255)); // Black +registry.LightColorPalette.SetBackground(colorKey, Color.FromArgb(255, 0, 0, 0)); // White + +// Dark colors +registry.DarkColorPalette.SetForeground(colorKey, Color.FromArgb(255, 220, 220, 220)); // Light Gray +registry.DarkColorPalette.SetBackground(colorKey, Color.FromArgb(255, 30, 30, 30)); // Dark Gray +``` + +### Modifying a Style Color + +During a style's registration, the colors of the current color palette are applied to the style's color property. After registration, any changes to the style's color properties will also update the corresponding color in the current color palette. This is common if an application allows the end-user to customize styles and will ensure the user can switch between the light and dark color palettes without losing their changes. + +> [!WARNING] +> Changing the color in a color palette will not have any effect on a style until the next time that color palette is applied. + +### Save and Restore Colors + +If an end-user is allowed to customize the colors of a highlighting style, they will typically expect those customizations to persist between application sessions. This can be accomplished by serializing the color data during application shutdown and restoring the color data during application startup. + +The [HighlightingStyleColorPaletteSerializer](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.Implementation.HighlightingStyleColorPaletteSerializer) class is used to serialize and deserialize color data. + +Use the [Serialize](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.Implementation.HighlightingStyleColorPaletteSerializer.Serialize*) method to generate an XML-formatted string of all the color data for a given color palette. During application shutdown, this string can be generated and stored with other application settings to be restored later. + +Use the [Deserialize](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.Implementation.HighlightingStyleColorPaletteSerializer.Deserialize*) method to populate a color palette with the colors defined by a previously serialized XML-formatted string of color data. Existing colors are not cleared before deserialization, but any deserialized colors will replace any colors that were already defined. This ensures colors that were not part of the serialized data are persisted. Call the [IHighlightingStyleColorPalette](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette).[ClearAll](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleColorPalette.ClearAll*) method before deserialization if only the deserialized colors should be present after deserialization. + +> [!IMPORTANT] +> If your application supports both light and dark themes, you must serialize both the light and dark color palettes. + +The following code demonstrates saving color data during application shutdown: + +```csharp +// Save ambient registry colors during application shutdown and +// store this data with other persisted application settings +string lightColorData = HighlightingStyleColorPaletteSerializer.Serialize(AmbientHighlightingStyleRegistry.Instance.LightColorPalette); +string darkColorData = HighlightingStyleColorPaletteSerializer.Serialize(AmbientHighlightingStyleRegistry.Instance.DarkColorPalette); +``` + +The following code demonstrates restoring color data during application startup: + +```csharp +// Read previously serialized color data +string lightColorData = GetApplicationSetting("LightColors"); +string darkColorData = GetApplicationSetting("DarkColors"); + +// Restore the ambient registry colors during application startup +// before any styles are registered +if (lightColorData != null) + HighlightingStyleColorPaletteSerializer.Deserialize(AmbientHighlightingStyleRegistry.Instance.LightColorPalette, lightColorData); +if (darkColorData != null) + HighlightingStyleColorPaletteSerializer.Deserialize(AmbientHighlightingStyleRegistry.Instance.DarkColorPalette, darkColorData); + +// Register common classification types +new DisplayItemClassificationTypeProvider().RegisterAll(); +new BuiltInClassificationTypeProvider().RegisterAll(); +``` + +> [!WARNING] +> Color palette colors should be deserialized before styles are registered to ensure the colors are available to be applied to styles when they are registered. Otherwise, the colors may not be reflected until the next time the color palette is changed. + +## Language Definition Files (.langdef) + +When loading a language definition file, it is recommended to enable the use of built-in classification types if any *.langdef* file created prior to version 24.1 will be used. Older files will not have the `DarkStyle` color data, so using built-in classification types will improve the default dark theme experience with those files. + +See the [Loading a Language Definition File](../../language-creation/loading-lang-def.md) topic for more details and sample code. + +## Adapting Light Color for Dark Color Palette + +Most colors designed for use on a light background are not very appealing when used on a dark background. + +When a highlighting style is registered, any colors defined on the style are assumed to be appropriate for a light theme and will be adapted for use on a dark theme if the dark color palette does not already define a corresponding color. This helps improve the default experience on a dark theme for many commonly used colors. + +### Light to Dark Color Map + +The following table shows supported light colors and the corresponding dark color to which they will be mapped: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLight ColorDark Color
White#FFFFFF#000000
Black#000000#FFFFFF
Red#FF0000#FC3E36
Orange#FF8500#773800
Orange (Alt)#F4A721#773800
Maroon#800000#D69D85
Maroon (Alt)#A31515#D69D85
Tan#D2B48C#DCDCAA
Tan (Alt)#74531F#DCDCAA
Yellow#FFFF00#EFF284
Yellow (Alt)#FFEE62#EFF284
Green#008000#57A64A
Dark Green#006400#608B4E
Teal#008080#4EC9B0
Teal (Alt)#2B91AF#4EC9B0
Blue#0000FF#569CD6
Navy#000080#55AAFF
Magenta#FF00FF#FFAAF9
Purple#800080#D8A0DF
Purple (Alt 1)#8F08C4#CA79EC
Purple (Alt 2)#951795#CA79EC
Gray#808080#9B9B9B
Gray (Alt 1)#C0C0C0#717171
Gray (Alt 2)#7A7A7A#8A8A8A
Gray (Alt 3)#555555#C8C8C8
+ +> [!NOTE] +> Only the red, green, and blue color components are considered when mapping a color from light to dark, and the mapped dark color will maintain the same transparency (alpha component) as the original color. For instance, the semi-transparent white color `#80FFFFFF` will be mapped as the semi-transparent black color `#80000000`. + +## Importing Visual Studio Settings + +Prior to version 24.1, the most common method of supporting dark themes was to import a Visual Studio Settings file (*.vssettings*) pre-configured with colors suitable for use with a dark theme. While importing a VS Settings file is still supported, it is no longer recommended since dark themes are natively supported. + +> [!WARNING] +> When a *.vssettings* file is imported, the color properties of the registered highlighting styles are replaced with the color values defined in the file, and any changes to a highlighting style's color will update the current color map. When importing settings intended for use with a dark theme, it is recommended to have a dark theme active before importing so the correct color map is updated. + +See the "Importing Visual Studio Settings" section of the [Highlighting Style Registries](highlighting-style-registries.md) topic for more information on importing a Visual Studio settings file. \ No newline at end of file diff --git a/Documentation/topics/syntaxeditor/user-interface/styles/highlighting-style-registries.md b/Documentation/topics/syntaxeditor/user-interface/styles/highlighting-style-registries.md index 181f346..bb99f9c 100644 --- a/Documentation/topics/syntaxeditor/user-interface/styles/highlighting-style-registries.md +++ b/Documentation/topics/syntaxeditor/user-interface/styles/highlighting-style-registries.md @@ -109,6 +109,36 @@ Only the foreground and background are editable in the default [IHighlightingSty +[CaretPrimary](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.CaretPrimary) Property + + + + +Gets the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) to use for the primary caret when multiple carets are active. + +Only the foreground is editable in the default [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) that is registered for this classification type. + + + + + + + +[CaretSecondary](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.CaretSecondary) Property + + + + +Gets the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) to use for the secondary caret when multiple carets are active. + +Only the foreground is editable in the default [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) that is registered for this classification type. + + + + + + + [CodeSnippetDependentField](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.CodeSnippetDependentField) Property @@ -304,6 +334,19 @@ Only the background is editable in the default [IHighlightingStyle](xref:@Actipr +[LineNumberCurrent](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.LineNumberCurrent) Property + + + + +Gets the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) to use for the current line in the line number margin when [IsCurrentLineNumberHighlightingEnabled](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.IsCurrentLineNumberHighlightingEnabled) is active. + + + + + + + [LineNumbers](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.LineNumbers) Property @@ -311,8 +354,6 @@ Only the background is editable in the default [IHighlightingStyle](xref:@Actipr Gets the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) to use for the line number margin. -Only the foreground and background are editable in the default [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) that is registered for this classification type. - @@ -436,6 +477,21 @@ Only the foreground is editable in the default [IHighlightingStyle](xref:@Actipr + + + +[WordWrapGlyph](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider.WordWrapGlyph) Property + + + + +Gets the [IClassificationType](xref:ActiproSoftware.Text.IClassificationType) to use for word wrap glyphs. + +Only the foreground is editable in the default [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) that is registered for this classification type. + + + + @@ -470,9 +526,15 @@ Back to the example scenario, for any [SyntaxEditor](xref:@ActiproUIRoot.Control This code creates a custom registry and assigns it to a console window SyntaxEditor: ```csharp -SyntaxEditor console = new SyntaxEditor(); +// Create a custom registry IHighlightingStyleRegistry consoleWindowRegistry = new HighlightingStyleRegistry(); consoleWindowRegistry.Description = "Console Window"; + +// Optionally manage the registry for automatic changes in light/dark themes +SyntaxEditorThemeManager.Manage(consoleWindowRegistry); + +// Configure the editor to use the custom registry +SyntaxEditor console = new SyntaxEditor(); console.DefaultHighlightingStyleRegistry = consoleWindowRegistry; ``` @@ -490,37 +552,6 @@ One possible scenario is if you wish to have some classification types that shou In these scenarios, it's possible to have an [IClassificationTag](xref:ActiproSoftware.Text.Tagging.IClassificationTag) specify an alternate [IHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistry) to use. This is done by having the [IClassificationTag](xref:ActiproSoftware.Text.Tagging.IClassificationTag) implement the [IHighlightingStyleRegistryProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistryProvider) interface. The classification tag returns the custom registry via the [HighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyleRegistryProvider.HighlightingStyleRegistry) property. Classification taggers can use the [StyleRegistryClassificationTag](xref:ActiproSoftware.Text.Tagging.Implementation.StyleRegistryClassificationTag) class for this purpose. When the normal highlighting style registry is fine for use, use the smaller [ClassificationTag](xref:ActiproSoftware.Text.Tagging.Implementation.ClassificationTag) class instead. -@if (wpf) { - ## Switching to a Dark Theme -All of the default styles registered by [DisplayItemClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider) and the built-in language implementations are intended to be used on an editor with a light background. However, in cases where a dark application theme has been applied, these default styles will not be very appealing. - -The [Actipro Themes](../../../themes/index.md) system supports dark themes, such as Metro Dark. You can attach to the [ThemeManager](xref:@ActiproUIRoot.Themes.ThemeManager).[CurrentThemeChanged](xref:@ActiproUIRoot.Themes.ThemeManager.CurrentThemeChanged) event to know when the current theme is changed by the end user. In this case, add some detection for whether the current theme has changed from a light to dark, or dark to light one. If a theme is changing but both the old and new themes were light background themes, nothing needs to be done. - -Let's see an example of how to reset the [AmbientHighlightingStyleRegistry](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.AmbientHighlightingStyleRegistry) instance. In cases where the end user is changing to a light theme from a dark theme, or vice versa, add this in the [CurrentThemeChanged](xref:@ActiproUIRoot.Themes.ThemeManager.CurrentThemeChanged) event handler: - -```csharp -// Unregister all classification types -var classificationTypes = AmbientHighlightingStyleRegistry.Instance.ClassificationTypes.ToArray(); -foreach (var classificationType in classificationTypes) - AmbientHighlightingStyleRegistry.Instance.Unregister(classificationType); - -// Re-register common classification types -new DisplayItemClassificationTypeProvider().RegisterAll(); - -// NOTE: Possibly load up syntax language instances you use so their various customized styles get registered -``` - -The above code unregisters all the registered classification types from the ambient registry. Then it re-registers the display item classification types and optionally loads up syntax languages that are used by the app so their customized classification types and styles get re-registered. At this point, the registry is ready to go for light themes. - -If a dark theme is becoming active, there is some additional work to do. Each of the styles that have been registered into the registry needs to be altered to look good on a dark background. - -One way to do this is to enumerate through the registered styles and update the foreground and background colors as appropriate. You could have stored some pre-defined colors in a custom data structure and used that to know how to update the styles. - -Alternatively, you could use the feature described in the "Importing Visual Studio Settings" section above. The Sample Browser shows an example of this. It has a pre-defined *Dark.vssettings* file that includes a number of style definitions that render well on dark editor backgrounds. After the code above is executed, this *Dark.vssettings* file is loaded and it will update the styles of any styles that have already been registered on the registry. - -> [!IMPORTANT] -> Don't forget to also update the static [CommonImageSourceProvider.DefaultImageSet](../intelliprompt/image-source-providers.md) property appropriately after a theme change to ensure the proper image theme is loaded for IntelliPrompt. - -} +See the [Dark Themes](dark-themes.md) topic for details on how to support switching to a dark theme. \ No newline at end of file diff --git a/Documentation/topics/syntaxeditor/user-interface/styles/index.md b/Documentation/topics/syntaxeditor/user-interface/styles/index.md index 9113313..1d68738 100644 --- a/Documentation/topics/syntaxeditor/user-interface/styles/index.md +++ b/Documentation/topics/syntaxeditor/user-interface/styles/index.md @@ -24,3 +24,11 @@ See the [Highlighting Style Registries](highlighting-style-registries.md) topic The `TextStylePreview` control is a small control that is used on options dialogs to show the end user a preview of how an [IHighlightingStyle](xref:@ActiproUIRoot.Controls.SyntaxEditor.Highlighting.IHighlightingStyle) will render. See the [TextStylePreview Control](text-style-preview.md) topic for more information. + +## Dark Themes + +[SyntaxEditor](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor) supports the ability to easily switch between light and dark themes. + +All of the default styles registered by [DisplayItemClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.DisplayItemClassificationTypeProvider) and [BuiltInClassificationTypeProvider](xref:@ActiproUIRoot.Controls.SyntaxEditor.BuiltInClassificationTypeProvider) as well as the built-in language implementations are designed to support either light or dark themes. However, any custom language implementations may require additional configuration to support a dark theme since most styles intended for use on a light background are not very appealing on a dark background. + +See the [Dark Themes](dark-themes.md) topic for more information. diff --git a/Documentation/topics/toc.yml b/Documentation/topics/toc.yml index 180e24e..3469597 100644 --- a/Documentation/topics/toc.yml +++ b/Documentation/topics/toc.yml @@ -394,6 +394,8 @@ items: href: syntaxeditor/user-interface/styles/highlighting-style-registries.md - name: "TextStylePreview Control" href: syntaxeditor/user-interface/styles/text-style-preview.md + - name: "Dark Themes" + href: syntaxeditor/user-interface/styles/dark-themes.md - name: "Adornment Features" href: syntaxeditor/user-interface/adornment/index.md items: @@ -745,6 +747,8 @@ items: items: - name: "Overview" href: conversion/index.md + - name: "Converting to v24.1" + href: conversion/converting-to-v24-1.md - name: "Converting to v23.1" href: conversion/converting-to-v23-1.md - name: "Converting to v22.1" @@ -755,6 +759,8 @@ items: href: conversion/converting-to-v20-1.md - name: "Converting to v12.1" href: conversion/converting-to-v12-1.md +- name: "Troubleshooting (General)" + href: troubleshooting.md - name: "Supported Technologies" href: supported-technologies.md - name: "GitHub Open-Source" diff --git a/Documentation/topics/troubleshooting.md b/Documentation/topics/troubleshooting.md new file mode 100644 index 0000000..bd36532 --- /dev/null +++ b/Documentation/topics/troubleshooting.md @@ -0,0 +1,25 @@ +--- +title: "Troubleshooting (General)" +page-title: "Troubleshooting (General)" +order: 40 +--- +# Troubleshooting (General) + +This topic provides several tips on common questions or issues that you may encounter on the products included in WinForms Studio. + +There also are some product-specific troubleshooting topics that provide information related to individual products: + +- [Bars Troubleshooting](bars/troubleshooting.md) +- [Wizard Troubleshooting](wizard/troubleshooting.md) + +## Licensing Issues + +Please refer to the "Troubleshooting" section of the [Licensing](licensing.md) topic. + +## Error: The SDK 'Microsoft.NET.Sdk.WindowsDesktop' specified could not be found. + +This message is typically displayed when attempting to open an SDK-style project in an older version of Visual Studio that does not support these projects. Make sure you are using Visual Studio 2019 or later when opening SDK-style projects and that the .NET SDK component is installed. + +## Error: The project file cannot be opened. Unabled to locate the .NET SDK. + +This message is typically displayed when attempting to open an SDK-style project in Visual Studio and the .NET SDK is not installed. Some older versions of Visual Studio may not install the .NET SDK by default. Use the Visual Studio Installer to add the .NET SDK component and reload the solution. \ No newline at end of file diff --git a/Documentation/topics/visual-studio-designer.md b/Documentation/topics/visual-studio-designer.md index 4460f2d..bc61576 100644 --- a/Documentation/topics/visual-studio-designer.md +++ b/Documentation/topics/visual-studio-designer.md @@ -86,6 +86,8 @@ The following outlines the compatibility of Actipro WinForms Controls with versi +*The above table if for .NET Core / .NET5+ only and does not apply to any version of .NET Framework.* + ### .NET Framework Designer Workaround If you are unable to use a WinForms Controls version that is compatible with the version of Visual Studio you are using, you may be able to use the .NET Framework designer support instead. @@ -107,7 +109,7 @@ In the following example, the .NET Framework designer capabilities will be used net462;net471;netcoreapp3.1;net60-windows ``` > [!WARNING] -> Starting with Visual Studio 2002 v17.6, mixing .NET Framework-based targets (e.g., `net48`) with .NET Core-based targets (e.g., `net6.0-windows`) is only supported if the .NET Framework-based target is listed first. This will force the .NET Framework designer functionality and requires the installer option mentioned in the ".NET Framework Support" section above. To continue using the .NET Core-based designer functionality in Visual Studio 17.6, all .NET Framework-based targets must be removed. +> Starting with Visual Studio 2022 v17.6, mixing .NET Framework-based targets (e.g., `net48`) with .NET Core-based targets (e.g., `net6.0-windows`) is only supported if the .NET Framework-based target is listed first. This will force the .NET Framework designer functionality and requires the installer option mentioned in the ".NET Framework Support" section above. To continue using the .NET Core-based designer functionality in Visual Studio 17.6, all .NET Framework-based targets must be removed. > [!IMPORTANT] > See the requirements noted above for .NET Framework or .NET Core / .NET 5+ based on which target framework will govern the designer capabilities of your project. diff --git a/License.md b/License.md index f156732..b30d895 100644 --- a/License.md +++ b/License.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Actipro Software LLC. +Copyright (c) 2024 Actipro Software LLC. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Readme.md b/Readme.md index 6b6ef21..4ea402f 100644 --- a/Readme.md +++ b/Readme.md @@ -93,7 +93,8 @@ Use these packages for SyntaxEditor's premium language add-ons as needed, which - **Frameworks:** .NET 5+, .NET Core 3.1, and .NET Framework 4.6.2+ - **Architectures:** Any CPU, ARM64, x64, and x86 -- **IDEs:** Visual Studio 2017-2022 +- **IDEs:** Visual Studio 2019-2022 +- **SDKs:** .NET SDK required for sample projects ## Contributing diff --git a/Samples/SampleBrowser/ActiproSoftware.References.props b/Samples/SampleBrowser/ActiproSoftware.References.props new file mode 100644 index 0000000..e643a60 --- /dev/null +++ b/Samples/SampleBrowser/ActiproSoftware.References.props @@ -0,0 +1,22 @@ + + + + + + 24.1.0 + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.Designer.cs b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.Designer.cs index 63cebe2..d3b1a2b 100644 --- a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.Designer.cs @@ -26,25 +26,23 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); ActiproSoftware.UI.WinForms.Controls.Bars.BarLabelCommand labelsTestLabelBarLabelCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarLabelCommand("Labels", "TestLabel", "User Interface Options", -1); ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonCommand newMenuNewMenuBarPopupButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonCommand("New Menu", "New Menu", "New Menu", -1); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlueBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2003Blue", "Office 2003 (Blue)", 13); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeSilverBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2003Silver", "Office 2003 (Silver)", 15); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeOliveGreenBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2003OliveGreen", "Office 2003 (Olive Green)", 14); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererVisualStudioBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererVisualStudio2005", "Visual Studio 2005", 19); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlueBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeLunaBlue", "Luna (Blue)", 13); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeSilverBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeLunaSilver", "Luna (Silver)", 15); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeOliveGreenBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeLunaOliveGreen", "Luna (Olive Green)", 14); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererVisualStudioBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererVisualStudioClassic", "Visual Studio (Classic)", 19); ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonCommand viewRendererBarPopupButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonCommand("View", "Renderer", "Renderer", -1); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeRoyaleBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2003Royale", "Office 2003 (Royale)", 16); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeWindowsClassicBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2003WindowsClassic", "Office 2003 (Windows Classic)", 17); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeWindowsClassicBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeWindowsClassic", "Office Classic (Windows Classic)", 17); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlackBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2007Black", "Office 2007 (Black)", 15); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlackBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeClassicBlack", "Office Classic (Black)", 15); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlackBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlackBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlueBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2007Blue", "Office 2007 (Blue)", 13); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeBlueBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeClassicBlue", "Office Classic (Blue)", 13); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand2); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeSilverBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOffice2007Silver", "Office 2007 (Silver)", 16); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererOfficeSilverBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererOfficeClassicSilver", "Office Classic (Silver)", 16); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand2); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererVisualStudioBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererVisualStudio2002", "Visual Studio 2002", 18); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererVisualStudioBarButtonCommand2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererWindowsClassic", "Windows Classic", 17); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBarButtonCommand2); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererCustomTanBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererCustomTan", "Custom Tan", -1); @@ -114,7 +112,6 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBarButtonCommand2); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBarButtonCommand); @@ -163,6 +160,7 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarComboBoxCommand formatFontSizeBarComboBoxCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarComboBoxCommand("Format", "FontSize", "Font Size", -1); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererMetroLightBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererMetroLight", "Metro Light", 27); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererMetroDarkBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererMetroDark", "Metro Dark", 27); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand viewRendererVisualStudioBlueBarButtonCommand = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand("View", "RendererVisualStudioBlue", "Visual Studio (Blue)", 28); ActiproSoftware.UI.WinForms.Controls.Bars.DockableToolBar formatDockableToolBar = new ActiproSoftware.UI.WinForms.Controls.Bars.DockableToolBar("Format"); ActiproSoftware.UI.WinForms.Controls.Bars.BarComboBoxLink formatFontSizeBarComboBoxLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarComboBoxLink(formatFontSizeBarComboBoxCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink formatAlignLeftBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(formatAlignLeftBarButtonCommand); @@ -207,10 +205,10 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink viewRendererBarPopupButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink(viewRendererBarPopupButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroLightBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroLightBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroDarkBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroDarkBarButtonCommand); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBlueBarButtonLink = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlackBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlackBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand2); @@ -271,10 +269,10 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink viewRendererBarPopupButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink(viewRendererBarPopupButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroLightBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroLightBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroDarkBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroDarkBarButtonCommand); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBlueBarButtonLink2 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink6 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink6 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlackBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlackBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink7 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand2); @@ -311,10 +309,10 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink viewRendererBarPopupButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink(viewRendererBarPopupButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroLightBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroLightBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroDarkBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroDarkBarButtonCommand); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBlueBarButtonLink3 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink8 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink8 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlackBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlackBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink9 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand2); @@ -326,10 +324,10 @@ private void InitializeComponent() { ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink viewRendererBarPopupButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarPopupButtonLink(viewRendererBarPopupButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroLightBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroLightBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererMetroDarkBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererMetroDarkBarButtonCommand); + ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererVisualStudioBlueBarButtonLink4 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererVisualStudioBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink10 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeOliveGreenBarButtonLink6 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeOliveGreenBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeSilverBarButtonLink10 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeSilverBarButtonCommand); - ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeRoyaleBarButtonLink6 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeRoyaleBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeWindowsClassicBarButtonLink6 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeWindowsClassicBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlackBarButtonLink5 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlackBarButtonCommand); ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink viewRendererOfficeBlueBarButtonLink11 = new ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonLink(viewRendererOfficeBlueBarButtonCommand2); @@ -431,53 +429,49 @@ private void InitializeComponent() { viewRendererOfficeBlueBarButtonCommand.CanCustomizeCreate = false; viewRendererOfficeBlueBarButtonCommand.Checkable = true; viewRendererOfficeBlueBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeBlueBarButtonCommand.CustomizeListText = "(Renderer) Office 2003 (Blue)"; - viewRendererOfficeBlueBarButtonCommand.Text = "Office 2003 (Blue)"; + viewRendererOfficeBlueBarButtonCommand.CustomizeListText = "(Renderer) Luna (Blue)"; + viewRendererOfficeBlueBarButtonCommand.Text = "Luna (Blue)"; viewRendererOfficeSilverBarButtonCommand.CanCustomizeCreate = false; viewRendererOfficeSilverBarButtonCommand.Checkable = true; viewRendererOfficeSilverBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeSilverBarButtonCommand.CustomizeListText = "(Renderer) Office 2003 (Silver)"; - viewRendererOfficeSilverBarButtonCommand.Text = "Office 2003 (Silver)"; + viewRendererOfficeSilverBarButtonCommand.CustomizeListText = "(Renderer) Luna (Silver)"; + viewRendererOfficeSilverBarButtonCommand.Text = "Luna (Silver)"; viewRendererOfficeOliveGreenBarButtonCommand.CanCustomizeCreate = false; viewRendererOfficeOliveGreenBarButtonCommand.Checkable = true; viewRendererOfficeOliveGreenBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeOliveGreenBarButtonCommand.CustomizeListText = "(Renderer) Office 2003 (Olive Green)"; - viewRendererOfficeOliveGreenBarButtonCommand.Text = "Office 2003 (Olive Green)"; + viewRendererOfficeOliveGreenBarButtonCommand.CustomizeListText = "(Renderer) Luna (Olive Green)"; + viewRendererOfficeOliveGreenBarButtonCommand.Text = "Luna (Olive Green)"; viewRendererVisualStudioBarButtonCommand.CanCustomizeCreate = false; viewRendererVisualStudioBarButtonCommand.Checkable = true; viewRendererVisualStudioBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererVisualStudioBarButtonCommand.CustomizeListText = "(Renderer) Office 2003 (Windows Classic)"; - viewRendererVisualStudioBarButtonCommand.Text = "Visual Studio 2005"; + viewRendererVisualStudioBarButtonCommand.CustomizeListText = "(Renderer) Visual Studio (Classic)"; + viewRendererVisualStudioBarButtonCommand.Text = "Visual Studio (Classic)"; viewRendererBarPopupButtonCommand.CanTearOff = true; - viewRendererOfficeRoyaleBarButtonCommand.CanCustomizeCreate = false; - viewRendererOfficeRoyaleBarButtonCommand.Checkable = true; - viewRendererOfficeRoyaleBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeRoyaleBarButtonCommand.Text = "Office 2003 (Royale)"; viewRendererOfficeWindowsClassicBarButtonCommand.CanCustomizeCreate = false; viewRendererOfficeWindowsClassicBarButtonCommand.Checkable = true; viewRendererOfficeWindowsClassicBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeWindowsClassicBarButtonCommand.CustomizeListText = "(Renderer) Office 2003 (Windows Classic)"; - viewRendererOfficeWindowsClassicBarButtonCommand.Text = "Office 2003 (Windows Classic)"; + viewRendererOfficeWindowsClassicBarButtonCommand.CustomizeListText = "(Renderer) Office Classic (Windows Classic)"; + viewRendererOfficeWindowsClassicBarButtonCommand.Text = "Office Classic (Windows Classic)"; viewRendererOfficeBlackBarButtonCommand.CanCustomizeCreate = false; viewRendererOfficeBlackBarButtonCommand.Checkable = true; viewRendererOfficeBlackBarButtonCommand.CheckGroupName = "Renderer"; - viewRendererOfficeBlackBarButtonCommand.CustomizeListText = "(Renderer) Office 2007 (Black)"; - viewRendererOfficeBlackBarButtonCommand.Text = "Office 2007 (Black)"; + viewRendererOfficeBlackBarButtonCommand.CustomizeListText = "(Renderer) Office Classic (Black)"; + viewRendererOfficeBlackBarButtonCommand.Text = "Office Classic (Black)"; viewRendererOfficeBlueBarButtonCommand2.CanCustomizeCreate = false; viewRendererOfficeBlueBarButtonCommand2.Checkable = true; viewRendererOfficeBlueBarButtonCommand2.CheckGroupName = "Renderer"; - viewRendererOfficeBlueBarButtonCommand2.CustomizeListText = "(Renderer) Office 2007 (Blue)"; - viewRendererOfficeBlueBarButtonCommand2.Text = "Office 2007 (Blue)"; + viewRendererOfficeBlueBarButtonCommand2.CustomizeListText = "(Renderer) Office Classic (Blue)"; + viewRendererOfficeBlueBarButtonCommand2.Text = "Office Classic (Blue)"; viewRendererOfficeSilverBarButtonCommand2.CanCustomizeCreate = false; viewRendererOfficeSilverBarButtonCommand2.Checkable = true; viewRendererOfficeSilverBarButtonCommand2.CheckGroupName = "Renderer"; - viewRendererOfficeSilverBarButtonCommand2.CustomizeListText = "(Renderer) Office 2007 (Silver)"; - viewRendererOfficeSilverBarButtonCommand2.Text = "Office 2007 (Silver)"; + viewRendererOfficeSilverBarButtonCommand2.CustomizeListText = "(Renderer) Office Classic (Silver)"; + viewRendererOfficeSilverBarButtonCommand2.Text = "Office Classic (Silver)"; viewRendererVisualStudioBarButtonCommand2.CanCustomizeCreate = false; viewRendererVisualStudioBarButtonCommand2.Checkable = true; viewRendererVisualStudioBarButtonCommand2.CheckGroupName = "Renderer"; - viewRendererVisualStudioBarButtonCommand2.CustomizeListText = "(Renderer) Office 2003 (Windows Classic)"; - viewRendererVisualStudioBarButtonCommand2.Text = "Visual Studio 2002"; + viewRendererVisualStudioBarButtonCommand2.CustomizeListText = "(Renderer) Windows Classic"; + viewRendererVisualStudioBarButtonCommand2.Text = "Windows Classic"; viewRendererCustomTanBarButtonCommand.CanCustomizeCreate = false; viewRendererCustomTanBarButtonCommand.Checkable = true; viewRendererCustomTanBarButtonCommand.CheckGroupName = "Renderer"; @@ -493,7 +487,6 @@ private void InitializeComponent() { viewRendererOfficeBlueBarButtonLink, viewRendererOfficeOliveGreenBarButtonLink, viewRendererOfficeSilverBarButtonLink, - viewRendererOfficeRoyaleBarButtonLink, viewRendererOfficeWindowsClassicBarButtonLink, viewRendererOfficeBlackBarButtonLink, viewRendererOfficeBlueBarButtonLink2, @@ -638,7 +631,6 @@ private void InitializeComponent() { viewRendererOfficeBlueBarButtonLink3, viewRendererOfficeOliveGreenBarButtonLink2, viewRendererOfficeSilverBarButtonLink3, - viewRendererOfficeRoyaleBarButtonLink2, viewRendererOfficeWindowsClassicBarButtonLink2, viewRendererVisualStudioBarButtonLink3, viewRendererVisualStudioBarButtonLink4}); @@ -753,6 +745,11 @@ private void InitializeComponent() { viewRendererMetroDarkBarButtonCommand.CheckGroupName = "Renderer"; viewRendererMetroDarkBarButtonCommand.CustomizeListText = "(Renderer) Metro Dark"; viewRendererMetroDarkBarButtonCommand.Text = "Metro Dark"; + viewRendererVisualStudioBlueBarButtonCommand.CanCustomizeCreate = false; + viewRendererVisualStudioBlueBarButtonCommand.Checkable = true; + viewRendererVisualStudioBlueBarButtonCommand.CheckGroupName = "Renderer"; + viewRendererVisualStudioBlueBarButtonCommand.CustomizeListText = "(Renderer) Visual Studio (Blue)"; + viewRendererVisualStudioBlueBarButtonCommand.Text = "Visual Studio (Blue)"; this.barManager.Commands.AddRange(new ActiproSoftware.UI.WinForms.Controls.Bars.BarCommand[] { labelsTestLabelBarLabelCommand, newMenuNewMenuBarPopupButtonCommand, @@ -794,7 +791,6 @@ private void InitializeComponent() { menuBarEditBarPopupButtonCommand, viewRendererOfficeWindowsClassicBarButtonCommand, viewClearEventLogBarButtonCommand, - viewRendererOfficeRoyaleBarButtonCommand, windowWindowListBarExpanderButtonCommand, fileSaveLayoutBarButtonCommand, fileLoadLayoutBarButtonCommand, @@ -825,7 +821,8 @@ private void InitializeComponent() { viewRendererCustomTanBarButtonCommand, viewRendererCustomGreenBarButtonCommand, viewRendererMetroLightBarButtonCommand, - viewRendererMetroDarkBarButtonCommand}); + viewRendererMetroDarkBarButtonCommand, + viewRendererVisualStudioBlueBarButtonCommand}); formatAlignLeftBarButtonLink.BeginAGroup = true; formatBulletedListBarButtonLink.BeginAGroup = true; formatOutdentBarButtonLink.BeginAGroup = true; @@ -887,10 +884,10 @@ private void InitializeComponent() { viewRendererBarPopupButtonLink2.CommandLinks.AddRange(new ActiproSoftware.UI.WinForms.Controls.Bars.BarCommandLink[] { viewRendererMetroLightBarButtonLink, viewRendererMetroDarkBarButtonLink, + viewRendererVisualStudioBlueBarButtonLink, viewRendererOfficeBlueBarButtonLink4, viewRendererOfficeOliveGreenBarButtonLink3, viewRendererOfficeSilverBarButtonLink4, - viewRendererOfficeRoyaleBarButtonLink3, viewRendererOfficeWindowsClassicBarButtonLink3, viewRendererOfficeBlackBarButtonLink2, viewRendererOfficeBlueBarButtonLink5, @@ -978,10 +975,10 @@ private void InitializeComponent() { viewRendererBarPopupButtonLink3.CommandLinks.AddRange(new ActiproSoftware.UI.WinForms.Controls.Bars.BarCommandLink[] { viewRendererMetroLightBarButtonLink2, viewRendererMetroDarkBarButtonLink2, + viewRendererVisualStudioBlueBarButtonLink2, viewRendererOfficeBlueBarButtonLink6, viewRendererOfficeOliveGreenBarButtonLink4, viewRendererOfficeSilverBarButtonLink6, - viewRendererOfficeRoyaleBarButtonLink4, viewRendererOfficeWindowsClassicBarButtonLink4, viewRendererOfficeBlackBarButtonLink3, viewRendererOfficeBlueBarButtonLink7, @@ -1039,10 +1036,10 @@ private void InitializeComponent() { viewRendererBarPopupButtonLink4.CommandLinks.AddRange(new ActiproSoftware.UI.WinForms.Controls.Bars.BarCommandLink[] { viewRendererMetroLightBarButtonLink3, viewRendererMetroDarkBarButtonLink3, + viewRendererVisualStudioBlueBarButtonLink3, viewRendererOfficeBlueBarButtonLink8, viewRendererOfficeOliveGreenBarButtonLink5, viewRendererOfficeSilverBarButtonLink8, - viewRendererOfficeRoyaleBarButtonLink5, viewRendererOfficeWindowsClassicBarButtonLink5, viewRendererOfficeBlackBarButtonLink4, viewRendererOfficeBlueBarButtonLink9, @@ -1057,10 +1054,10 @@ private void InitializeComponent() { viewRendererBarPopupButtonLink5.CommandLinks.AddRange(new ActiproSoftware.UI.WinForms.Controls.Bars.BarCommandLink[] { viewRendererMetroLightBarButtonLink4, viewRendererMetroDarkBarButtonLink4, + viewRendererVisualStudioBlueBarButtonLink4, viewRendererOfficeBlueBarButtonLink10, viewRendererOfficeOliveGreenBarButtonLink6, viewRendererOfficeSilverBarButtonLink10, - viewRendererOfficeRoyaleBarButtonLink6, viewRendererOfficeWindowsClassicBarButtonLink6, viewRendererOfficeBlackBarButtonLink5, viewRendererOfficeBlueBarButtonLink11, @@ -1183,6 +1180,7 @@ private void InitializeComponent() { this.imageList.Images.SetKeyName(25, "IncreaseIndent16.png"); this.imageList.Images.SetKeyName(26, "RichTextDocument16.png"); this.imageList.Images.SetKeyName(27, "MetroLight.png"); + this.imageList.Images.SetKeyName(28, "VisualStudio2022.png"); // // barManagerPropertyGrid // diff --git a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.cs b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.cs index 09b431f..3411fb9 100644 --- a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.cs +++ b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.cs @@ -1019,12 +1019,12 @@ private void ProcessViewMdiChildRestoreButtonVisibility() { /// Processes the View.RendererCustomGreen command. /// private void ProcessViewRendererCustomGreen() { - var scheme = new WindowsColorScheme("Green", WindowsColorSchemeType.WindowsXPBlue, UIColor.FromWebColor("#155E2F").ToColor()); - barManager.Renderer = new Office2003BarRenderer(scheme); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(scheme); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(scheme); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(scheme); - statusBar.Renderer = new Office2003StatusBarRenderer(); + var scheme = new WindowsColorScheme("Green", WindowsColorSchemeType.LunaBlue, UIColor.FromWebColor("#155E2F").ToColor()); + barManager.Renderer = new OfficeClassicBarRenderer(scheme); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(scheme); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(scheme); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(scheme); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } @@ -1032,12 +1032,12 @@ private void ProcessViewRendererCustomGreen() { /// Processes the View.RendererCustomTan command. /// private void ProcessViewRendererCustomTan() { - var scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.WindowsXPBlue, Color.Tan); - barManager.Renderer = new Office2003BarRenderer(scheme); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(scheme); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(scheme); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(scheme); - statusBar.Renderer = new Office2003StatusBarRenderer(); + var scheme = new WindowsColorScheme("Tan", WindowsColorSchemeType.LunaBlue, Color.Tan); + barManager.Renderer = new OfficeClassicBarRenderer(scheme); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(scheme); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(scheme); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(scheme); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } @@ -1066,122 +1066,122 @@ private void ProcessViewRendererMetroLight() { } /// - /// Processes the View.RendererOffice2003Blue command. + /// Processes the View.RendererOfficeLunaBlue command. /// - private void ProcessViewRendererOffice2003Blue() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.WindowsXPBlue); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.WindowsXPBlue); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPBlue); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPBlue); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeLunaBlue() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.LunaBlue); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.LunaBlue); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.LunaBlue); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.LunaBlue); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2003OliveGreen command. + /// Processes the View.RendererOfficeLunaOliveGreen command. /// - private void ProcessViewRendererOffice2003OliveGreen() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.WindowsXPOliveGreen); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.WindowsXPOliveGreen); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPOliveGreen); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPOliveGreen); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeLunaOliveGreen() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.LunaOliveGreen); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.LunaOliveGreen); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.LunaOliveGreen); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.LunaOliveGreen); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2003Royale command. + /// Processes the View.RendererOfficeLunaSilver command. /// - private void ProcessViewRendererOffice2003Royale() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.WindowsXPRoyale); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer(); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeLunaSilver() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.LunaSilver); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.LunaSilver); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.LunaSilver); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.LunaSilver); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2003Silver command. + /// Processes the View.RendererOfficeWindowsClassic command. /// - private void ProcessViewRendererOffice2003Silver() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.WindowsXPSilver); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.WindowsXPSilver); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPSilver); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.WindowsXPSilver); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeWindowsClassic() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.WindowsClassic); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer(); + statusBar.Renderer = new WindowsClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2003WindowsClassic command. + /// Processes the View.RendererOfficeClassicBlack command. /// - private void ProcessViewRendererOffice2003WindowsClassic() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.WindowsClassic); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer(); - statusBar.Renderer = new VisualStudio2002StatusBarRenderer(); + private void ProcessViewRendererOfficeClassicBlack() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.OfficeClassicBlack); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.OfficeClassicBlack); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicBlack); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicBlack); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2007Black command. + /// Processes the View.RendererOfficeClassicBlue command. /// - private void ProcessViewRendererOffice2007Black() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.Office2007Black); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.Office2007Black); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.Office2007Black); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.Office2007Black); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeClassicBlue() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.OfficeClassicBlue); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.OfficeClassicBlue); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicBlue); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicBlue); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2007Blue command. + /// Processes the View.RendererOfficeClassicSilver command. /// - private void ProcessViewRendererOffice2007Blue() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.Office2007Blue); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.Office2007Blue); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.Office2007Blue); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.Office2007Blue); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererOfficeClassicSilver() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.OfficeClassicSilver); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDockRenderer(WindowsColorSchemeType.OfficeClassicSilver); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicDocumentWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicSilver); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(WindowsColorSchemeType.OfficeClassicSilver); + statusBar.Renderer = new OfficeClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererOffice2007Silver command. + /// Processes the View.RendererWindowsClassic command. /// - private void ProcessViewRendererOffice2007Silver() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.Office2007Silver); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DockRenderer(WindowsColorSchemeType.Office2007Silver); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003DocumentWindowTabStripRenderer(WindowsColorSchemeType.Office2007Silver); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(WindowsColorSchemeType.Office2007Silver); - statusBar.Renderer = new Office2003StatusBarRenderer(); + private void ProcessViewRendererWindowsClassic() { + barManager.Renderer = new WindowsClassicBarRenderer(); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.WindowsClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.WindowsClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.WindowsClassicToolWindowTabStripRenderer(); + statusBar.Renderer = new WindowsClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererVisualStudio2002 command. + /// Processes the View.RendererVisualStudioClassic command. /// - private void ProcessViewRendererVisualStudio2002() { - barManager.Renderer = new VisualStudio2002BarRenderer(); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2002DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2002DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2002ToolWindowTabStripRenderer(); - statusBar.Renderer = new VisualStudio2002StatusBarRenderer(); + private void ProcessViewRendererVisualStudioClassic() { + barManager.Renderer = new OfficeClassicBarRenderer(WindowsColorSchemeType.VisualStudioClassic); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer(); + statusBar.Renderer = new VisualStudioClassicStatusBarRenderer(); OnRendererChanged(); } /// - /// Processes the View.RendererVisualStudio2005 command. + /// Processes the View.RendererVisualStudioBlue command. /// - private void ProcessViewRendererVisualStudio2005() { - barManager.Renderer = new Office2003BarRenderer(WindowsColorSchemeType.VisualStudio2005); - dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer(); - statusBar.Renderer = new VisualStudio2005StatusBarRenderer(); + private void ProcessViewRendererVisualStudioBlue() { + barManager.Renderer = new VisualStudioBarRenderer(WindowsColorSchemeType.VisualStudioBlue); + dockManager.DockRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioDockRenderer(WindowsColorSchemeType.VisualStudioBlue); + dockManager.TabbedMdiContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioDocumentWindowTabStripRenderer(WindowsColorSchemeType.VisualStudioBlue); + dockManager.ToolWindowContainerTabStripRenderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioToolWindowTabStripRenderer(WindowsColorSchemeType.VisualStudioBlue); + statusBar.Renderer = new MetroStatusBarRenderer(WindowsColorSchemeType.VisualStudioBlue); OnRendererChanged(); } diff --git a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.resx b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.resx index ad727a9..2d59c3c 100644 --- a/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.resx +++ b/Samples/SampleBrowser/ProductSamples/BarsSamples/Demo/Features/MainForm.resx @@ -130,154 +130,458 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACW - IQAAAk1TRnQBSQFMAgEBHAEAAbQBAAG0AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAAYADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AJwAM7DQA - AewK/wHsBwAB/wEAAvQCGQEJAtsDAA4VAgAOFQMAAewB/wjvAf8B7AMAAfQCGQHcAdsBAAfaJAAB7Ar/ - AewDAAXaAQAH2iQAAewB/wTvAf8BbAGQAZEB/wHsAwAF2gEAB9okAAHsBv8BkQEJARkB/wHsAwAF2gEA - B9oEAAEZAdoB9AQABhUFAAHbARkDAAYVAwAB7AH/BO8B/wHbAZgB3AH/AewDAAXaAQAH2gMAARkB2gEI - EAABCAHaARkLAAHsCv8B7BMAAdoF1AoABdQB2gsAAewB/wS6ArQCugH/AewDAAXaAQAH2gMAARkB2gEI - EAABCAHaARkLAAHsCv8B7AMABdoBAAfaBAABGQHaAfQEAAYVBAAB9AHaARkDAAYVAwAB7AH/AdwB8gHP - AfIG7AMABdoBAAfaJAAB7AL/Ac8B3AH/AewC/wEHAewB8wMABdoBAAfaJAAB7AL/AfIBzwH/AewB/wEH - AewB8wQAAfQCGQHcAdsBAAfaJAAB7AP/AfMB/wHsAQcB7AHzCQAB/wEAAvQCGQEJAtsDAA4VAgAOFQMA - AewF/wLsAfM3AAfsAfOHAAOzDQAKFQgAChUIAAoVAgADswIACBUzAAOzjQAOFQIADhUCAA4VQgADsz0A - A7MCAAgVMwADsw0AChUIAAoVCAAKFcIAA7MNAA4VAgAOFQIADhUCAAOzAgAIFTMAA7MvAAG1Am8BUgMA - AlgBVwYAAbUCbwFSAwACWAFXBAABGgVSAfAGAALxBwAB8wSZAfIFAAG1AewBTAFGAW8BUgEAAVkBOAFY - AXgBUQQAAbUB7AFMAUYBbwFSAQABWQE4AVgBeAFRAwABeQExAXoBmgF6ATgBmQF4AVABcwFJAesBAALx - AQAB9AQAARoBUQExAjgBNwF0AfIDAAG1AbQBkQFNAUwBRgJMAjgBWAF4AVcBUQIAAbUBtAGRAU0BTAFG - AkwCOAFYAXgBVwFRAgABegFSAgABwwFZAZkBVwF4ARsBHAFKAQAC8QEZAbUCvAEJAc8B9wEwATEBNwFZ - ATgBUgHwAgABtQGtAbQB9wFTAU0BTAFGAUwBUgE4AVkBeAFXAVEBUAG1Aa0BtAH3AVMBTQFMAUYBTAFS - ATgBWQF4AVcBUQFQAQABegFYAgABGwGgARoBmQEbAQABCAFQAQAC8QEZAeYB1gHVAeYBxwG0AVIBMAEx - AVkBOAExAZkCAAESAa0BuwEAAZoBUwFNAUwBRgFMAVICAAFXAlABEgGtAbsBAAGaAVMBTQFMAUYBTAFS - AgABVwJQAQABegE4AnoBGgF5AQgBmAEHAZ8BeAFQAQAC8QEAAtYB3AHVAacBzwF0ATABMQI4ATcBeQIA - AUoBUAHvAgABegFTAU0BTAFGAW8CAAG0Aa0BUAFKAVAB7wIAAXoBUwFNAUwBRgFvAgABtAGtAVABAAGg - AV4B5QFeAaABWQGZAXgBmAF5AVcBeAEAAvEBAAEJAdUB3AHVAc4BpwEcATADeQFYAXkCAAFzAVABVwEc - AlkBegJNAUwBRgFvArQBrQG1AXMBUAFXARwCWQF6Ak0BTAFGAW8CtAGtAbUBAAEaA5MBGgGTARoB7wG8 - AQcB9wIAAvEBAAEZAdUB1gHVAeYBpwG1AZkBeANXAXMB8QIAAngBeQE4AVkBegltAQACeAF5ATgBWQF6 - AVMIbQEaAU0BTAFTAUwBmQFMAe8BzwG1AbMBiwHyAQAC8QIAAQkC1gHVAbUBvAFzASgBNQJXAS8BHAMA - AXgBeQE4AlkBkgH/BvYBbQIAAXgBeQE4AlkBmgGSAf8F9gFtAZoBJgGaAhoBGwGaAfABCQHyAfEBiwHw - AQAC8QIAAXoBUwGTAXQBTAFGARwBKAEvATYBVwE1AXMEAAF5AXoBmgEaAZIC9gH0AesD9gFtAwABeQF6 - AZoBGgEAAZIB9gEHAusBBwH2AW0BmgFMAcMCAAEbAUwBkwHVAQkBvAGmAfABAALxAgABmgFNAVMBLAIl - ARwBUAEvATUBVwE2AVAB8QcAAZIC9gH0AesD9gFtCAABkgH2AesB9AH2AesB9gFtAZkBTAHDAgABGwFT - AZMB3AGtAYsBzwIAAvECAAEaA1MBLAElAW8BcgEoATUBVwE2AS8B7wcAAZID/wHrAQcC/wFtCAABkgL/ - AusC/wFtAZMBJQGaARoBGwGaASwBBwEAAhkB8gIAAvEDAAF1AlMBLAElAUYBHAFzAQgCGwGZAQgHAAGS - BP8B6wL/AW0IAAGSAf8B6wL/AesB/wFtAZMB6QFGAkwBJgElAZMGAALxAwABmgJTASwBJQFMARsNAAGS - Av8D6wL/AW0IAAGSAf8BBwLrAQcB/wFtAQACkwEWApQBGgcAAvEEAAEbARoCmgH0DgABkgf/AW0IAAGS - Bv8BbScACJIBbQgAB5IBbQEAARsBdAVSAbw4AAGZATEBWAJ6AVkBOAGZAZgCUAFKAUkB7AIAARoFUgHw - BgACzQEAARoFUgHwBgACVwEAARoFUgHwBgAC7wEAAZoBMQEaAgABwwE4AZkBeAFQAZgBmQFQAUoCAAF5 - ATEBegGaAXoBOAGZAXgBUAFzAUkB6wEAAs0BAAF5ATEBegGaAXoBOAGZAXgBUAFzAUkB6wEAAlcBAAF5 - ATEBegGaAXoBOAGZAXgBUAFzAUkB6wEAAu8BAAGaATEBGgIAAcMBWQGZAXgBVwIAAZgBUAIAAXoBUgIA - AcMBWQGZAVcBeAEbARwBSgEAAs0BAAF6AVICAAHDAVkBmQFXAXgBGwEcAUoBAAJXAQABegFSAgABwwFZ - AZkBVwF4ARsBHAFKAQAC7wEAAZoBOAEaAQAB9AEbAaABwwEIAZkCAAGYAVACAAF6AVgCAAEbAaABGgGZ - ARsBAAEIAVABAALNAQABegFYAgABGwGgARoBmQEbAQABCAFQAQACVwEAAXoBWAIAARsBoAEaAZkBGwEA - AQgBUAEAAu8BAAGgATgDWQEaAVIBmQGYAXIBCAFXAlACAAF6ATgCegEaAXkBCAGYAQcBnwF4AVABAALN - AQABegE4AnoBGgF5AQgBmAEHAZ8BeAFQAQACVwEAAXoBOAJ6ARoBeQEIAZgBBwGfAXgBUAEAAu8BAAHD - AV4D5QGgAVkBGgF5AXgBmQFYAVcBmQIAAaABXgHlAV4BoAFZAZkBeAGYAXkBVwF4AQACzQEAAaABXgHl - AV4BoAFZAZkBeAGYAXkBVwF4AQACVwEAAaABXgHlAV4BoAFZAZkBeAGYAXkBVwF4AQAC7wEAARoEkwEb - AZMBGgG8Ae8B8wG1Ae8DAAEaA5MBGgGTARoB7wG8AQcB9wIAAs0BAAEaA5MBGgGTARoB7wG8AQcB9wIA - AlcBAAEaA5MBGgGTARoB7wG8AQcB9wIAAu8BGwFNASsBLAFSAUwBmQElAZMBtAGGAbsBigGLAgABGgFN - AUwBUwFMAZkBTAHvAc8BtQGzAYsB8gEAAs0BGgFNAUwBUwFMAZkBTAHvAc8BtQGzAYsB8gEAAlcBGgFN - AUwBUwFMAZkBTAHvAc8BtQGzAYsB8gEAAu8BGgEmAXUCmgEaARsBmgEbAQkBuwEAAbQBiwIAAZoBJgGa - AhoBGwGaAfABCQHyAfEBiwHwAQACzQGaASYBmgIaARsBmgHwAQkB8gHxAYsB8AEAAlcBmgEmAZoCGgEb - AZoB8AEJAfIB8QGLAfABAALvAb0BJQGaAwABGwFMAZMBCQG0AQABuwGmAgABmgFMAcMCAAEbAUwBkwHV - AQkBvAGmAfABAALNAZoBTAHDAgABGwFMAZMB1QEJAbwBpgHwAQACVwGaAUwBwwIAARsBTAGTAdUBCQG8 - AaYB8AEAAu8BmgElAZoDAAEaAVMBkwHcAa0CiwGGAgABmQFMAcMCAAEbAVMBkwHcAa0BiwHPAgACzQGZ - AUwBwwIAARsBUwGTAdwBrQGLAc8CAAJXAZkBTAHDAgABGwFTAZMB3AGtAYsBzwIAAu8BmQElAZoDAAEa - ATIBkwEZAQkCtAG1AgABkwElAZoBGgEbAZoBLAEHAQACGQHyAgACzQGTASUBmgEaARsBmgEsAQcBAAIZ - AfICAAJXAZMBJQGaARoBGwGaASwBBwEAAhkB8gIAAu8BkwEgAXQCmgEaAXUBLAGTBwABkwHpAUYCTAEm - ASUBkwYAAs0BkwHpAUYCTAEmASUBkwYAAlcBkwHpAUYCTAEmASUBkwYAAu8BGgHpASADJQEmASUBkwgA - ApMBFgKUARoHAALNAQACkwEWApQBGgcAAlcBAAKTARYClAEaBwAC7wEAAZkCkwGUAZoBlAEaTgAB7AHx - EAAB8QHsBwAB9CQAAfEB6gHxDgAB8QHqAfEGAAH0ARIB8w8AARcB8wgAAfMBFwkAAfEB6gHxDAAB8QHq - AfEIAAHzARIB8w4AAfMBFwHzBgAB8wEXAfMKAAHxAeoB7woAAfEB6gHxCgAB8wESAfMOAAHzARcB8wQA - AfMBFwHzDAAB8QETAe8IAAHvARMB8QwAAfMBEgHzDgAB8wEXAfMCAAHzARcB8w4AAfEBEwHvBgAB7wET - AfEOAAHzARIB8wH0AZIBbQEUAW0BkgH0BwAB8wEXAvMBFwHzEAAB8QETAe8EAAHvARMB8RAAAfMCEwHt - AbwB8wG8Ae0BEwHxBwAB8wIXAfMSAAHxAeoB8wIAAfMB6gHxEQAB9AETAQcF/wEHARMB9AYAAfMCFwHz - EwABkgHtAgAB7QGSEgABkgHtB/8B7QGSBQAB8wEXAvMBFwHzBgAHFQUAAfMBEwIAARMB8wUABxUGAAFt - AbwH/wG8AW0EAAHzARcB8wIAAfMBFwHzBQABFQHqAfEKAAEVAgABFQoAAfEB6gEVBgABFAHzB/8B8wEU - AwAB8wEXAfMEAAHzARcB8wQAARUB8QHqAfEIAAHzARMCAAETAfMIAAHxAeoB8QEVBgABbQG8B/8BvAFt - AgAB8wEXAfMGAAHzARcB8wMAARUBAAHvARMB8QcAAZIB7QIAAe0BkgcAAfEBEwHvAQABFQYAAZIB7Qf/ - Ae0BkgIAARcB8wgAAfMBFwMAARUCAAHvARMB8QUAAfEB6gHzAgAB8wHqAfEFAAHxARMB7wIAARUGAAH0 - ARMBBwX/AQcBEwH0EQABFQMAAe8B6gGSAfMBAAHzAZIB6gHvBAAB7wHqAZIB8wEAAfMBkgHqAe8DAAEV - BwAB8QETAe0B8AHzAfAB7QETAfESAAEVBAAB8wHtARMBFQETAe0B8wYAAfMB7QETARUBEwHtAfMEAAEV - CAAB9AGSAW0BFAFtAZIB9AQABRUBAAYVBQABCALaAQgCAAEIAtoBCAkAChUCAAYxAQAHFQIAARUC/wMA - ARUE/wEVBQAB2gIZAdoCAAHaAhkB2gkAARUI/wEVAgABMQWaAQABFQX/ARUCAAEVAv8BAAMVBP8DFQMA - AdoCGQHaAgAB2gIZAdoDAAUVAQABFQj/ARUCAAExAZoE/wEAARUF/wEVAgABFQL/AQABFQH/BhUB/wEV - AwABCAHaAbMBCAIAAQgBswHaAQgDAAEVBP8BAAEVAv8E7AL/ARUCAAExAZoE/wEAARUF/wEVAgABFQL/ - AQABFQj/ARUFAAHrAbwCAAG8AesFAAEVBP8BAAEVCP8BFQIAATEBmgT/AQABFQX/ARUCAAEVAv8BAAoV - BQABvAHrAgAB6wG8BQABFQT/AQABFQL/BOwC/wEVAgABMQGaBP8BAAEVBf8BFQIAARUC/wMAARUE/wEV - CAAB6wK8AesGAAEVBP8BAAEVCP8BFQIAATEBmgT/AQABFQX/ARUCAAEVBP8BAAEVBP8BFQgAAbwC6wG8 - BgABFQT/AQABFQj/ARUCAAExAZoE/wEAARUF/wEVAgABFQT/AQAGFQkAAusHAAEVBP8BAAEVBP8FFQIA - ATEBmgT/AQAHFQIAARUE/xAAAusHAAEVBP8BAAEVBP8BFQH/AQcBEgHzAgABMQGaBP8KAAEVBf8FFQEU - CAABvALrAbwGAAEVBP8BAAEVBP8BFQEHARIB8wMAATEBmgjsAZoBMQQAARUF/wEVAv8BBwESAfMIAAHr - ArwB6wYAARUE/wEAARUE/wEVARIB8wQAATEBmgHsBv8B7AGaATEEAAEVBf8BFQH/AQcBEgHzCAAB8wHr - AgAB6wHzBQABFQT/AQAGFQHzBQABMQGaAewG/wHsAZoBMQQAARUF/wEVAQcBEgHzCQAB7wG8AgABvAHv - BQABFQT/DQACMQPsAv8D7AIxBAABFQX/ARUBEgHzCgAB7wQAAe8FAAEVBf8BEgHzDgAB7AK8AewIAAYV - ARQB8wsAAfEEAAHxBQAGFQHzDwABvALsAbwIAAzsEwAB8gGpDYIEAAgVBgAB7Ar/AewSAAHyAakB1wG2 - AYIG/wGCA7YBggQAARUG/wEVBgAB7AH/COwB/wHsAgABdApSAXQB/wMAAakB1wK2AYIG/wGCA7YBggQA - ARUG/wEVBgAB7Ar/AewCAAF0AXoJmgF6ARoDAAGCA7YBggb/AYIDtgGCBAABFQb/ARUGAAHsAf8I7AH/ - AewCAAFSAXQKmgF0Af8CAAGCA7YBggb/AYIDtgGCBRUG/wUVAgAB7Ar/AewCAAFSAZkBegmaAXoBGgIA - AYIDtgiCA7YBggEVA/8IFQP/ARUCAAHsAf8I7AH/AewCAAFSAfQBdAqaAXQB/wEAAYIOtgGCARUO/wEV - AgAB7Ar/AewCAAFSAf8BmQF6CZoBegEaAQABgg62AYIBFQ7/ARUCAAHsAf8I7AH/AewCAAFSAf8B9AF0 - ClIBdAEAAYIOtgGCARUB/wEVDP8BFQIAAewK/wHsAgABUgv/AVIDAAGCArYKggK2AYIBFQ7/ARUCAAHs - Af8D7AH/BuwCAAFSC/8BUgMAAYICtgGCCP8BggK2AYIQFQIAAewF/wHsAv8BBwHsAfMCAAFSBf8BGwF0 - BFIBdAMAAYICtgGCCP8BggK2AYIEAAEVBv8BFQYAAewB/wPsAf8B7AH/AQcB7AHzAwABUgT/ARsBdAH0 - CAABggK2AYII/wGCArYBggQAARUG/wEVBgAB7AX/AewBBwHsAfMEAAF0BFIBdAH0CQABggK2AYII/wGC - ArYBggQAARUG/wEVBgAB7AX/AuwB8xUAAYICtgGCCP8BggK2AYIEAAEVBv8BFQYAB+wB8xYAEIIEAAgV - BAABQgFNAT4HAAE+AwABKAMAAUADAAGAAwABAQEAAQEGAAEEFgAD/4EABP8BwAEDBv8BwAEDAfoBAwGA - AQEBgAEBAcABAwGCAQME/wHAAQMBggEDBP8BwAEDAYIBAwT/AcABAwGCAQMBxwGBAfMBgQHAAQMBggED - AY8B/wHxAf8BwAEDAv8BgQH/AYEB/wHAAQMBggEDAY8B/wHxAf8BwAEDAYIBAwHHAYEB4wGBAcABAwGC - AQME/wHAAQMBggEDBP8BwAEHAYIBAwT/AcABDwH6AQMBgAEBAYABAQHAAR8G/wHAAT8Q/wGPAf8BgAEf - AeABBwH4AQEBjAEDBv8BjxH/AYABAQGAAQEBgAEBCP8Bjwf/AYwBAwb/AY8B/wGAAR8B4AEHAfgBARj/ - AY8B/wGAAQEBgAEBAYABAQGMAQMG/wGPBf8B4QHHAeEBxwGAAfwB/gEHAcABgwHAAYMBgAEEAbwBAwGA - AQEBgAEBAZgBBAEAAQMEAAGYASQBAAEDARABGAEQARgBgAEEAYABAwQYAYABBAGAAQMEAAGAAQwBgAEB - AYABAAGAAgABBAHAAQEBwAEAAcACAAEEAcABAQHgAQAB4QEAARgBBAHAAQAB/gEAAf8BAAEYAQwBwAEA - Af4BAAH/AgABjAHgAQAB/gEAAf8CAAH8AeABPwH+AQAB/wEAAYEB/AHwAX8B/gEAAf8BAAT/Af4BAAH/ - AQABgAF/Bv8BgAEBAYAB/AGAAfwBgAH8AYwBAQGAAQQBgAEEAYABBAGMARkBmAEEAZgBBAGYAQQBiAEZ - AZgBJAGYASQBmAEkAYABAQGAAQQBgAEEAYABBAGAAQEBgAEEAYABBAGAAQQBgAEDAYABDAGAAQwBgAEM - AQABAwEAAQQBAAEEAQABBAEAARMBAAEEAQABBAEAAQQBHAETARgBBAEYAQQBGAEEARwBAwEYAQwBGAEM - ARgBDAEcAQMBAAGMAQABjAEAAYwBAAF/AQAB/AEAAfwBAAH8AQABfwGBAfwBgQH8AYEB/AGACf8B/AL/ - AT8BvwP/AfwBfwH+AT8BHwH/Ac8B8wH+AT8B/AF/AY8B/wHHAeMB/wEfAfgB/wHHAf8B4wHHAf8BjwHx - Af8B4wH/AfEBjwH/AccB4wH/AfABAwH4AR8B/wHjAccB/wH4AQEB/AE/Af8B8QGPAf8B+AEAAfwBPwH/ - AfkBnwH/AfgBAAH4AR8BgAH5AZ8BAQH4AQAB8QKPAf0BvwHxAfgBAAHjAccBhwH5AZ8B4QH4AQABxwHj - AaMB+QGfAcUB+AEAAc8B8wGxAfEBjwGNAfgBAAL/AbgBQwHCAR0B/AEBAv8BvAEHAeABPQH+AQMBwQED - AeEBhwH8AQABwAGAAccBAwHhAYcB/AEAAcABgAHEAQAB4QGHAQQBAAHAAYABxAEAAeEBhwEEAQABwAGA - AcQBAAH5AZ8BBAEAAcABgAHEAQAB+QGfAQQBAAHAAYABxwEDAfwBPwEEAQABwAGAAcEBAwH8AT8BBAEA - AcABgAHBAQMB/gF/AQQBAAHAAYABwQH/Af4BfwEEAQABwAH/AcABAwH8AT8BBAEBAcABAwHAAQMB/AE/ - AQQBAwHAAQMBwAEHAfkBnwEEAQcBwAEDAcABDwH5AZ8BBwH/AcABAwHAAR8B+wHfAQAB/wH8AT8BwAE/ - AfsB3wEBAf8B/AE/AcABAwL/AYABAAHwAQ8BwAEDAv8CAAHwAQ8BwAEDAQABBwIAAfABDwHAAQMBAAEH - AgAB8AEPAcABAwEAAQMEAAHAAQMBAAEDBAABwAEDAQABAQQAAcABAwEAAQEEAAHAAQMBAAEBBAABwAED - AQABBwQAAcABAwEAAQcEAAHAAQMBAAEHAgAB8AEPAcABBwEAAf8CAAHwAQ8BwAEPAQEB/wIAAfABDwHA - AR8C/wIAAfABDwHAAT8C/wIAAfABDws= + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU + ZwAAAk1TRnQBSQFMAgEBHQEAAUgBAAEYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABgAMAAQEBAAEgBgABgD4AAUkBRwFIAYABpwFqAYUB7gMqAUDwAAM6AWABzgFzAZYB/gHGAWoBkAH/ + AfIBjwHCAf8DQQFwzAADOQFfAxgBIBQAAzMBUAHTAXEBmwH/Ac4BcwGWAf4BwgFtAYwB/gHzAZABxAH/ + AfMBkAHEAf8BSQFHAUgBf8AAAxgBIAFzAVoBZQHPAakBUQFxAf8BgAFYAWcB3wMYASAMAAMhATABrwFv + AYsB7wHTAXIBnAH/AdMBcQGbAf8BwgFtAY0B/gH0AZEBxQH/AfQBkQHFAf8B7wGMAcAB/sAAAW8BUAFd + Ad8BkwFGAWIB/wGoAVEBcQH/AacBUQFwAf8BfwFYAWcB3wMhATAEAAMYASABsAFvAYwB7wHWAXQBngH/ + AdABdQGYAf4BzwF0AZcB/gF9AWMBbwHPAfUBkgHGAf8B9QGSAcYB/wH1AZIBxwH/wAABjAFBAVwB/wGG + AT4BVwH/AU8BTAFNAY8BogFUAXMB/gGmAVABcAH/AY8BVgFsAe4DMwFQAZUBaQF9Ad8B2AF1AaEB/wHW + AXQBngH/AdABdgGZAf4BYwFYAV0BrwMMARAB8QGOAcMB/gHuAZMBwAH9AfUBkwHHAf/AAAGLAUEBWwH/ + AYoBQQFbAf8EAAFeAVUBWAGvAaUBUAFvAf8BoAFUAXMB/gHSAXEBmwH/AdoBdwGiAf8B2AF1AaEB/wHX + AXQBnwH/AVABTQFPAY8IAAHyAY8BxAH+AfIBkAHFAf4B9gGTAckB/8AAAYsBQQFcAf8BigFBAVsB/wQA + AwwBEAFyAVoBYwHPAdMBcwGeAf8B3AF5AaUB/wHaAXcBowH/AdkBdgGjAf8BSAFHAUgBfwwAAfMBkQHG + Af4B8wGQAcYB/gHzAZABxgH+wAABiwFBAVwB/wGKAUEBWwH/BAADDAEQAYMBaAFyAc8B3QF5AacB/wHc + AXkBpQH/AdsBeAGkAf8BuAFfAYMB/wFIAkcBgAwAAfgBlQHLAf8B9AGRAccB/gH0AZEBxwH+wAABiwFB + AVwB/wGKAUEBWwH/BAABWgFUAVcBoAHeAXsBqAH/Ad4BegGnAf8B3QF6AacB/wG1AV4BggH/AaEBTgFt + Af8BowFPAW4B/wFVAVABUgGfCAAB9AGSAcgB/gH1AZIByAH+AfkBlgHMAf/AAAGLAUEBXAH/AYUBPgFY + Af8BWgFUAVcBoAHfAXwBqgH/AdoBfgGkAf4BtgFzAZEB7wFBAkABbwF/AVgBZgHfAaQBTwFuAf8BpAFP + AW4B/wGkAVABbgH/AWcBWQFeAb8DDAEQAfUBkwHJAf4B9gGTAcoB/gH1AZIByQH+wAABbwFQAV0B3wGv + AVwBgAH/AdsBgAGnAf4B4AF9AasB/wGXAW0BfwHeAyEBMAQAAxgBIAGPAVYBagHvAaUBUAFvAf8BpQFQ + AW8B/wGhAVMBcgH+AXABWgFjAc8B+gGYAc8B/wH2AZQBywH+AfsBmAHPAf/AAAMYASABcwFhAWoBvwHh + AX4BrQH/AZkBbQGAAd4DGAEgDAADIQEwAY8BVgFrAe8BpgFQAW8B/wGmAVABbwH/AZ0BTAFqAf8B+wGZ + AdAB/wH3AZUBywH+AfwBmgHRAf/IAANBAXADGAEgFAADMgFPAacBUAFwAf8BpgFRAXAB/wGdAUwBagH/ + Af0BmgHSAf8B/AGaAdEB/wFJAUcBSAF/6AADOQFfAacBUQFwAf8BmgFPAW0C/gGbAdMB/wNBAXDwAAFI + AUYBRwF/AX0BVwFmAd8DIQEw/wBRAAF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5 + Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/9AA + AXQBdwF5Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AXQBdwF5Af8cAAT/ + BAAD8QH/A/EC/wHsAcwC/wHsAcwB/wHwAcoBpgL/AcwBZgL/AcwBZgH/DAABOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8IAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wwAAXQBdwF5Af8D+gH/AcMBtAGyAf8BwwG0 + AbIB/wHDAbQBsgH/AcMBtAGyAf8BwwG0AbIB/wHDAbQBsgH/AcMBtAGyAf8BwwG0AbIB/wP6Af8BdAF3 + AXkB/wwAA/EC/wHsAcwC/wHsAcwC/wHMAZkC/wHMAWYB/wQAAf8BzAEzAv8BzAEzAv8BzAEzAv8BzAEz + Av8BzAEzAv8BzAEzAv8BzAEzAf+QAAF0AXcBeQH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/A/oB/wF0AXcBeQH/DAAB/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMB/wQAAf8BzAEz + Av8BzAEzAv8BzAEzAv8BzAEzAv8BzAEzAv8BzAEzAv8BzAEzAf+QAAF0AXcBeQH/A/oB/wHDAbQBsgH/ + AcMBtAGyAf8BwgGzAbEB/wHBAbIBsAH/A/oB/wFlAVkBOAH/AYkBegFQAf8BqAGVAWgB/wP6Af8BdAF3 + AXkB/wwAAf8BzAEzAv8BzAEzAv8BzAEzAv8BzAEzAv8BzAEzAf8EAAH/AcwBMwL/AcwBMwL/AcwBMwL/ + AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwH/kAABdAF3AXkB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wGR + AY4BZQH/AcUBtgGMAv8B5wG7Af8D+gH/AXQBdwF5Af8MAAH/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/ + AcwBMwH/BAAB/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMB/xAAAVIBSAE4 + AWQBugGGATMB5gElASMBIAEtEAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8UAAGn + AX4BOgHPAVIBSAE4AWQMAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wwAAXQBdwF5 + Af8D+gH/AcMBtAGyAf8BwgGzAbEB/wHBAbIBsAH/AbwBrQGrAf8D+gH/Af4BtQF6Av8BpwFrAv8ByAGU + Af8D+gH/AXQBdwF5Af8MAAH/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwH/BAAB/wHMATMC/wHM + ATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMB/wwAAVIBSAE4AWQBwwGKAS4B8QF1AWEBQAGP + QAABdQFhAUABjwHDAYoBLgHxAVIBSAE4AWQsAAF0AXcBeQH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + A/oB/wP6Af8D+gH/A/oB/wF0AXcBeQH/TAABugGGATMB5gHNAY4BJwH/Ac0BjgEnAf8BzQGOAScB/wHN + AY4BJwH/Ac0BjgEnAf8oAAHNAY4BJwH/Ac0BjgEnAf8BzQGOAScB/wHNAY4BJwH/Ac0BjgEnAf8BugGG + ATMB5iwAAXQBdwF5Af8D+gH/Ab0BuQFyAf8BvAG4AXEB/wG6AbYBbwH/AbYBsgFoAf8BrgGqAWIB/wGo + AaMBWwH/AaMBnwFVAf8BoAGcAVMB/wP6Af8BdAF3AXkB/wwAAf8BzAEzAv8BzAEzAv8BzAEzAv8BzAEz + Av8BzAEzAf8EAAH/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwH/DAABUgFI + ATgBZAHDAYoBLgHxAXUBYQFAAY9AAAF1AWEBQAGPAcMBigEuAfEBUgFIATgBZCwAAXQBdwF5Af8D+gH/ + A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AXQBdwF5Af8MAAH/AcwBMwL/AcwBMwL/ + AcwBMwL/AcwBMwL/AcwBMwH/BAAB/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHM + ATMB/xAAAVIBSAE4AWQBugGGATMB5gElASMBIAEtEAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8QAAElASMBIAEtAboBhgEzAeYBUgFIATgBZAwAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/DAABdAF3AXkB/wP6Af8B2gJtAf8B9ALeAf8B1wFdAV4B/wH1At8B/wF0AXcBeQH/ + AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BcwF2AXgB+wwAAf8BzAEzAv8BzAEzAv8BzAEz + Av8BzAEzAv8BzAEzAf8EAAH/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwH/ + kAABdAF3AXkB/wP6Af8D+gH/AdcBXQFeAf8B2wJuAf8D+gH/AXQBdwF5Af8D+gH/A/oB/wPEAf8BeQF7 + AX0B9QMvAUAMAAH/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwL/AcwBMwH/BAAB/wHMATMC/wHMATMC/wHM + ATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMB/5AAAXQBdwF5Af8D+gH/A/oB/wH1At8B/wHYAl4B/wP6 + Af8BdAF3AXkB/wP6Af8DwwH/AXkBewF9AfUDLwFAEAAD8QL/AewBzAL/AewBzAL/AcwBmQL/AcwBZgH/ + BAAB/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMC/wHMATMB/5AAAXQBdwF5Af8D+gH/ + A/oB/wP6Af8B9QLgAf8D+gH/AXQBdwF5Af8DwwH/AXkBewF9AfUDLwFAJAAE/wQAA/EB/wPxAv8B7AHM + Av8B7AHMAf8B8AHKAaYC/wHMAWYC/wHMAWYB/wwAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/CAABOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8MAAF0AXcBeQH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3AXkB/wF5 + AXsBfQH1Ay8BQNwAAXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/ + AXMBdgF4AfsDLwFA/wD/AB4AAc0BiwEeAf8BzQGLAR4B/wHNAYsBHgH/NAABOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8gAAE4AjoB/wE4AjoB/wE4 + AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/yAAATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/CAABzQGLAR4B/wHN + AYsBHgH/Ac0BiwEeAf8IAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/8wAAc0BiwEeAf8BzQGLAR4B/wHNAYsBHgH//wD/ADYAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + CAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8IAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB//8ACQABzQGL + AR4B/wHNAYsBHgH/Ac0BiwEeAf/0AAHNAYsBHgH/Ac0BiwEeAf8BzQGLAR4B/wgAATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/zAABzQGLAR4B/wHNAYsBHgH/Ac0BiwEe + Af80AAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/yAAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/IAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af//AP8A/wALAAHNAYsBHgH/Ac0BiwEeAf8BzQGLAR4B/zQAATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/CAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8IAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wgA + Ac0BiwEeAf8BzQGLAR4B/wHNAYsBHgH/CAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af/MAAHNAYsBHgH/Ac0BiwEeAf8BzQGLAR4B/7wAAcwCmQH/AmYBzAH/AmYBzAH/ + ATMBmQHMAf8MAAEzAswB/wEzAswB/wEzAcwBmQH/GAABzAKZAf8CZgHMAf8CZgHMAf8BMwGZAcwB/wwA + ATMCzAH/ATMCzAH/ATMBzAGZAf8QAAHGAdYB7wH/ATMBmQHMAf8BMwGZAcwB/wEzAZkBzAH/ATMBmQHM + Af8BMwGZAcwB/wPXAf8YAAPdAf8D3QH/HAAD6gH/AZkCzAH/AZkCzAH/AZkCzAH/AZkCzAH/A+MB/xQA + AcwCmQH/A4YB/wEzAWYBzAH/AjMBzAH/AmYBzAH/ATMBmQHMAf8EAAEzAcwC/wEAAcwC/wEzAswB/wFm + AcwBmQH/ATMCmQH/EAABzAKZAf8DhgH/ATMBZgHMAf8CMwHMAf8CZgHMAf8BMwGZAcwB/wQAATMBzAL/ + AQABzAL/ATMCzAH/AWYBzAGZAf8BMwKZAf8MAAFmAswB/wEAAZkBzAH/AWYBzAL/AZkBzAL/AWYBzAL/ + AQABzAL/AZkCzAH/AWYBzAGZAf8BMwGZAWYB/wFmApkB/wEzAWYBMwH/A3cB/wQAA90B/wPdAf8EAAPx + Af8QAAHGAdYB7wH/ATMCmQH/AQABmQHMAf8BAAHMAv8BAAHMAv8BAALMAf8BZgGZAcwB/wPjAf8MAAHM + ApkB/wHMAZkBZgH/ApkBZgH/ATMBZgL/ATMBZgHMAf8CMwHMAf8BMwFmAcwB/wEzAWYBzAH/AQABzAL/ + AQABzAL/ATMCzAH/AWYBzAGZAf8BMwHMAZkB/wEzApkB/wgAAcwCmQH/AcwBmQFmAf8CmQFmAf8BMwFm + Av8BMwFmAcwB/wIzAcwB/wEzAWYBzAH/ATMBZgHMAf8BAAHMAv8BAAHMAv8BMwLMAf8BZgHMAZkB/wEz + AcwBmQH/ATMCmQH/CAABZgHMAv8BMwGZAcwB/wgAAcwD/wEzAcwC/wGZAswB/wEzAcwBmQH/AWYBzAGZ + Af8B1gLnAf8BkAGpAa0B/wEzAmYB/wQAA90B/wPdAv8B7AHMAf8BzAKZAf8DzAH/A8wB/wHwAcoBpgH/ + AcwCZgH/AaQCoAH/AQACmQH/AQABmQHMAf8BAALMAf8BMwHMAv8BAAHMAv8BMwGZAcwB/wPXAf8IAAHM + ApkB/wHMAWYBMwH/AcwBmQFmAf8BpAKgAf8BMwGZAv8BMwFmAv8BMwFmAcwB/wIzAcwB/wEzAWYBzAH/ + ATMBmQHMAf8BAAHMAv8BMwHMAv8BZgHMAZkB/wEzAcwBmQH/ATMCmQH/ATMBmQFmAf8BzAKZAf8BzAFm + ATMB/wHMAZkBZgH/AaQCoAH/ATMBmQL/ATMBZgL/ATMBZgHMAf8CMwHMAf8BMwFmAcwB/wEzAZkBzAH/ + AQABzAL/ATMBzAL/AWYBzAGZAf8BMwHMAZkB/wEzApkB/wEzAZkBZgH/BAABZgHMAv8BMwLMAf8IAAHW + AucB/wGZA/8BxgHWAe8B/wGZAswB/wHWAucB/wQAAcAB3AHAAf8BMwGZAWYB/wQAA90B/wPdAv8B7AHM + Av8CZgL/ApkC/wGZAWYC/wJmAf8BzAEzAQAB/wHMAZkBZgH/ATMBmQHMAf8BAAKZAf8BAAGZAcwB/wEz + AcwC/wEAAcwC/wEAAZkBzAH/AZkCzAH/CAADVQH/AcwBZgEzAf8CzAGZAf8EAAGZAcwC/wEzAZkC/wEz + AWYC/wEzAWYBzAH/AjMBzAH/ATMBZgHMAf8BMwGZAcwB/wgAATMBzAGZAf8BMwGZAWYB/wEzAZkBZgH/ + A1UB/wHMAWYBMwH/AswBmQH/BAABmQHMAv8BMwGZAv8BMwFmAv8BMwFmAcwB/wIzAcwB/wEzAWYBzAH/ + ATMBmQHMAf8IAAEzAcwBmQH/ATMBmQFmAf8BMwGZAWYB/wQAAWYBzAL/AQABzAL/AWYBzAL/AWYBzAL/ + AcYB1gHvAf8BZgLMAf8BwAHcAcAB/wGZAcwBmQH/A8AB/wGZAf8BzAH/AWYBzAGZAf8BMwGZAWYB/wQA + A90B/wPdAf8EAAH/ApkC/wKZAv8BzAGZAv8BmQFmAf8BzAIzAf8BzAJmAf8BZgGZAcwB/wEAApkB/wEA + AZkBzAH/AQABzAL/AQABzAL/AQACzAH/AWYCzAH/CAABMwJmAf8BMwGZAWYB/wOyAf8IAAFmAcwC/wEz + AZkC/wEzAWYC/wEzAWYBzAH/AjMBzAH/AmYBzAH/CAABzAGZAWYB/wHMAWYBMwH/ATMBmQFmAf8BMwJm + Af8BMwGZAWYB/wOyAf8IAAFmAcwC/wEzAZkC/wEzAWYC/wEzAWYBzAH/AjMBzAH/AmYBzAH/CAABzAGZ + AWYB/wHMAWYBMwH/ATMBmQFmAf8EAAGZA/8BMwP/AWYD/wEzA/8BmQP/ATMBzAL/AZkCzAH/AWYBzAGZ + Af8BmQHMAZkB/wFmAswB/wEzAcwBmQH/AWYBzAGZAf8EAAPdAf8D3QH/BAAB8AHKAaYC/wGZAWYC/wHM + AZkC/wGZAWYC/wFmATMB/wHMAjMB/wGQAakBrQH/AQACmQH/AWYCzAH/AWYCzAH/AWYCzAH/ATMCzAH/ + AWYCzAH/CAABZgKZAf8BMwGZAWYB/wEzAcwBmQH/AZABqQGtAf8BMwHMAv8BMwHMAv8BZgHMAv8BMwFm + Av8BMwFmAv8BMwFmAcwB/wIzAcwB/wJmAcwB/wHMAZkBZgH/AcwBmQFmAf8BzAFmATMB/wHMApkB/wFm + ApkB/wEzAZkBZgH/ATMBzAGZAf8BkAGpAa0B/wEzAcwC/wEzAcwC/wFmAcwC/wEzAWYC/wEzAWYC/wEz + AWYBzAH/AjMBzAH/AmYBzAH/AcwBmQFmAf8BzAGZAWYB/wHMAWYBMwH/AcwCmQH/BAABxgHWAe8B/wKZ + AcwB/wKZAcwB/wKZAcwB/wHGAdYB7wH/ApkBzAH/AcYB1gHvAf8DsgH/A8wB/wPAAf8BpAKgAf8IAAPd + Af8D3QH/BAAB/wHsAcwC/wGZAWYC/wKZAv8BmQFmAv8CZgH/AcwCMwH/AcwCmQH/AZkCzAH/AWYBzAGZ + Af8BMwHMAZkB/wEzAcwBmQH/ATMBzAGZAf8BZgKZAf8D3QH/CAABZgHMAZkB/wFmAcwBmQH/AWYCzAH/ + AQABzAL/ATMBzAL/AWYBzAL/A2YB/wNmAf8DZgH/A2YB/wNmAf8DZgH/A2YB/wNmAf8DZgH/BAABZgHM + AZkB/wFmAcwBmQH/AWYCzAH/AQABzAL/ATMBzAL/AWYBzAL/ATMBmQL/A2YB/wNmAf8DZgH/A2YB/wNm + Af8DZgH/A2YB/wNmAf8BxgHWAe8B/wEzAWYC/wEzAWYBzAH/ATMBmQL/ATMBZgHMAf8BmQLMAf8BMwFm + AcwB/wOyAf8BzAJmAf8BzAKZAf8BzAGZATMB/wGZAWYBMwH/A+MB/wQAA90B/wPdAf8IAAHwAcoBpgL/ + ApkC/wKZAv8BmQFmAf8BzAKZAf8DzAH/AWYCmQH/AQABZgEzAf8BAAHMAWYB/wEzAcwBmQH/ATMBzAGZ + Af8BAAGZAWYB/wGQAakBrQH/DAABZgHMAZkB/wFmAswB/wEAAcwC/wEzAcwC/wEzAcwC/wOZBf8B8AH7 + Av8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7Av8DZgH/CAABZgHMAZkB/wFmAswB/wEAAcwC/wEz + AcwC/wEzAcwC/wGZAcwC/wOZBf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7Av8DZgH/AZkBzAL/ + AQABMwL/AZkBzAL/AcYB1gHvAf8BxgHWAe8B/wHWAucB/wGZAcwC/wPXAf8B8AHKAaYB/wPjAf8D3QH/ + AZkBZgEzAf8D1wH/BAAD3QH/A90B/wgAAWYBzAL/ATMBmQL/ApkBzAH/AWYBmQHMAf8BMwFmAcwB/wIz + AcwB/wGQAakBrQH/AQABZgEzAf8BAAGZAWYB/wEAAcwBmQH/ATMBzAGZAf8BAAHMAWYB/wFmApkB/xAA + AWYCzAH/AWYBzAL/AZkBzAL/AcYB1gHvAf8DmQH/AfAB+wL/AfAB+wL/A/EB/wN3Af8B8AH7Av8B8AH7 + Av8B8AH7Av8DZgH/DAABZgLMAf8BZgHMAv8BmQHMAv8BxgHWAe8B/wQAA5kB/wHwAfsC/wPAAf8DdwH/ + A3cB/wPAAf8B8AH7Av8DZgH/AZkBzAL/ATMBZgHMAf8BzAP/CAAB1gLnAf8BMwFmAcwB/wKZAcwC/wGZ + AWYB/wHwAcoBpgH/A8wB/wGZATMBAAH/A9cB/wQAA90B/wPdAf8IAAGZAcwC/wEzAWYC/wEzAZkC/wEA + AWYC/wEAATMBzAH/AQABMwHMAf8BkAGpAa0B/wEzAZkBZgH/AQABmQFmAf8BAAHMAWYB/wEzAcwBmQH/ + AQABzAGZAf8BMwGZAWYB/wPdAf8cAAOZAf8B8AH7Av8B8AH7Av8D8QH/A3cB/wHwAfsC/wHwAfsC/wHw + AfsC/wNmAf8gAAOZAf8B8AH7Av8DdwH/A/EB/wHwAfsC/wN3Af8B8AH7Av8DZgH/AZkCzAH/ATMBZgHM + Af8BzAP/CAAB1gLnAf8BMwGZAv8CmQHMAv8BzAGZAf8BzAFmATMB/wGZAWYBMwH/AcwCZgH/CAAD3QH/ + A90B/wgAAcYB1gHvAf8BMwGZAv8BMwGZAv8BMwGZAv8BAAFmAv8BAAEzAcwB/wJmAcwB/wFmAZkBZgH/ + AQABZgEzAf8BAAHMAWYB/wEzAcwBmQH/AQABzAGZAf8BAAGZAWYB/wOyAf8cAAOZDf8DdwH/A8AJ/wNm + Af8gAAOZCf8DdwH/A3cJ/wNmAf8CmQHMAf8BAAEzAcwB/wGZAcwC/wHGAdYB7wH/AdYC5wH/AZkBzAL/ + AQABZgL/A8AB/wQAAf8B7AHMAv8B7AHMAf8D4wH/CAAD3QH/A90B/wwAAWYBmQL/ATMBmQL/ATMBmQL/ + AQABZgL/AQABMwHMAf8CMwHMAf8BkAGpAa0B/wFmApkB/wHAAdwBwAH/AdYC5wH/AdYC5wH/AZkCzAH/ + AcAB3AHAAf8cAAOZEf8Ddwn/A2YB/yAAA5kF/wN3Cf8DdwX/A2YB/wKZAcwB/wEhAQABpQH/AjMBzAH/ + ATMBZgHMAf8BMwFmAcwB/wEAATMC/wEAATMBzAH/ApkBzAH/GAAD3QH/A90B/wwAAZkBzAL/ATMBmQL/ + ATMBmQL/AQABZgL/AQABMwHMAf8BMwFmAcwB/wHWAucB/zQAA5kJ/wN3Af8DdwH/A3cJ/wNmAf8gAAOZ + Bf8DwAH/A3cB/wN3Af8DwAX/A2YB/wQAApkBzAH/ApkBzAH/AYABfAL/ApkC/wKZAv8BxgHWAe8B/xwA + A90B/wPdAf8QAAHWAucB/wHGAdYB7wH/AZkBzAL/AZkBzAL/A/EB/zgAA5kd/wNmAf8gAAOZGf8DZgH/ + nAADmQH/A5kB/wOZAf8DmQH/A5kB/wOZAf8DmQH/A5kB/wNmAf8gAAOZAf8DmQH/A5kB/wOZAf8DmQH/ + A5kB/wOZAf8DZgH/BAAB1gLnAf8BZgGZAcwB/wEzAZkBzAH/ATMBmQHMAf8BMwGZAcwB/wEzAZkBzAH/ + ATMBmQHMAf8DzAH/4AABmQLMAf8BAAGZAcwB/wEzAswB/wFmAcwC/wFmAcwC/wEzAcwC/wEAAcwC/wGZ + AswB/wGZAcwBmQH/ATMBmQFmAf8BMwGZAWYB/wEzAmYB/wEzAWYBMwH/A4YB/wgAAcYB1gHvAf8BMwGZ + AcwB/wEzAZkBzAH/ATMBmQHMAf8BMwGZAcwB/wEzAZkBzAH/A9cB/xgAAf8BZgEAAv8BZgEAAf8EAAHG + AdYB7wH/ATMBmQHMAf8BMwGZAcwB/wEzAZkBzAH/ATMBmQHMAf8BMwGZAcwB/wPXAf8YAAEzAcwBmQH/ + ATMBzAGZAf8EAAHGAdYB7wH/ATMBmQHMAf8BMwGZAcwB/wEzAZkBzAH/ATMBmQHMAf8BMwGZAcwB/wPX + Af8YAAOyAf8DsgH/BAABmQHMAv8BAAGZAcwB/wHGAdYB7wH/CAABzAP/AQABzAL/AZkCzAH/AWYBzAGZ + Af8BMwGZAWYB/wGZAcwBmQH/AZkCzAH/ATMBmQFmAf8BMwJmAf8IAAFmAswB/wEAAZkBzAH/AWYBzAL/ + AZkBzAL/AWYBzAL/AQABzAL/AZkCzAH/AWYBzAGZAf8BMwGZAWYB/wFmApkB/wEzAWYBMwH/A3cB/wQA + Af8BZgEAAv8BZgEAAf8EAAFmAswB/wEAAZkBzAH/AWYBzAL/AZkBzAL/AWYBzAL/AQABzAL/AZkCzAH/ + AWYBzAGZAf8BMwGZAWYB/wFmApkB/wEzAWYBMwH/A3cB/wQAATMBzAGZAf8BMwHMAZkB/wQAAWYCzAH/ + AQABmQHMAf8BZgHMAv8BmQHMAv8BZgHMAv8BAAHMAv8BmQLMAf8BZgHMAZkB/wEzAZkBZgH/AWYCmQH/ + ATMBZgEzAf8DdwH/BAADsgH/A7IB/wQAAZkBzAL/AQABmQHMAf8BxgHWAe8B/wgAAcwD/wEzAcwC/wGZ + AswB/wFmAcwBmQH/ATMBzAGZAf8IAAGZAcwBmQH/ATMBmQFmAf8IAAFmAcwC/wEzAZkBzAH/CAABzAP/ + ATMBzAL/AZkCzAH/ATMBzAGZAf8BZgHMAZkB/wHWAucB/wGQAakBrQH/ATMCZgH/BAAB/wFmAQAC/wFm + AQAB/wQAAWYBzAL/ATMBmQHMAf8IAAHMA/8BMwHMAv8BmQLMAf8BMwHMAZkB/wFmAcwBmQH/AdYC5wH/ + AZABqQGtAf8BMwJmAf8EAAEzAcwBmQH/ATMBzAGZAf8EAAFmAcwC/wEzAZkBzAH/CAABzAP/ATMBzAL/ + AZkCzAH/ATMBzAGZAf8BZgHMAZkB/wHWAucB/wGQAakBrQH/ATMCZgH/BAADsgH/A7IB/wQAAZkBzAL/ + AQABzAL/AcYB1gHvAf8EAAPxAf8B1gLnAf8BmQP/AcwD/wHAAdwBwAH/AZkCzAH/CAABmQHMAZkB/wEz + AZkBZgH/CAABZgHMAv8BMwLMAf8IAAHWAucB/wGZA/8BxgHWAe8B/wGZAswB/wHWAucB/wQAAcAB3AHA + Af8BMwGZAWYB/wQAAf8BZgEAAv8BZgEAAf8EAAFmAcwC/wEzAswB/wgAAdYC5wH/AZkD/wHGAdYB7wH/ + AZkCzAH/AdYC5wH/BAABwAHcAcAB/wEzAZkBZgH/BAABMwHMAZkB/wEzAcwBmQH/BAABZgHMAv8BMwLM + Af8IAAHWAucB/wGZA/8BxgHWAe8B/wGZAswB/wHWAucB/wQAAcAB3AHAAf8BMwGZAWYB/wQAA7IB/wOy + Af8EAAGZA/8BAAHMAv8BMwHMAv8BMwHMAv8BMwHMAv8BxgHWAe8B/wEzAZkBzAH/AZkCzAH/AZkBzAGZ + Af8BZgGZAWYB/wHAAdwBwAH/ATMBzAGZAf8BMwGZAWYB/wEzAZkBZgH/CAABZgHMAv8BAAHMAv8BZgHM + Av8BZgHMAv8BxgHWAe8B/wFmAswB/wHAAdwBwAH/AZkBzAGZAf8DwAH/AZkB/wHMAf8BZgHMAZkB/wEz + AZkBZgH/BAAB/wFmAQAC/wFmAQAB/wQAAWYBzAL/AQABzAL/AWYBzAL/AWYBzAL/AcYB1gHvAf8BZgLM + Af8BwAHcAcAB/wGZAcwBmQH/A8AB/wGZAf8BzAH/AWYBzAGZAf8BMwGZAWYB/wQAATMBzAGZAf8BMwHM + AZkB/wQAAWYBzAL/AQABzAL/AWYBzAL/AWYBzAL/AcYB1gHvAf8BZgLMAf8BwAHcAcAB/wGZAcwBmQH/ + A8AB/wGZAf8BzAH/AWYBzAGZAf8BMwGZAWYB/wQAA7IB/wOyAf8EAAHMA/8BMwP/AWYD/wFmA/8BZgP/ + AZkD/wEzAcwC/wHGAdYB7wH/AWYCzAH/AWYBzAGZAf8BmQLMAf8BMwLMAf8BMwHMAZkB/wGZAswB/wgA + AZkD/wEzA/8BZgP/ATMD/wGZA/8BMwHMAv8BmQLMAf8BZgHMAZkB/wGZAcwBmQH/AWYCzAH/ATMBzAGZ + Af8BZgHMAZkB/wQAAf8BZgEAAv8BZgEAAf8EAAGZA/8BMwP/AWYD/wEzA/8BmQP/ATMBzAL/AZkCzAH/ + AWYBzAGZAf8BmQHMAZkB/wFmAswB/wEzAcwBmQH/AWYBzAGZAf8EAAEzAcwBmQH/ATMBzAGZAf8EAAGZ + A/8BMwP/AWYD/wEzA/8BmQP/ATMBzAL/AZkCzAH/AWYBzAGZAf8BmQHMAZkB/wFmAswB/wEzAcwBmQH/ + AWYBzAGZAf8EAAOyAf8DsgH/BAABxgHWAe8B/wKZAcwB/wKZAcwB/wKZAcwB/wKZAcwB/wHWAucB/wKZ + AcwB/wHGAdYB7wH/A8wB/wOyAf8D6gH/AcwCmQH/A7IB/wwAAcYB1gHvAf8CmQHMAf8CmQHMAf8CmQHM + Af8BxgHWAe8B/wKZAcwB/wHGAdYB7wH/A7IB/wPMAf8DwAH/AaQCoAH/CAAB/wFmAQAC/wFmAQAB/wQA + AcYB1gHvAf8CmQHMAf8CmQHMAf8CmQHMAf8BxgHWAe8B/wKZAcwB/wHGAdYB7wH/A7IB/wPMAf8DwAH/ + AaQCoAH/CAABMwHMAZkB/wEzAcwBmQH/BAABxgHWAe8B/wKZAcwB/wKZAcwB/wKZAcwB/wHGAdYB7wH/ + ApkBzAH/AcYB1gHvAf8DsgH/A8wB/wPAAf8BpAKgAf8IAAOyAf8DsgH/AdYC5wH/ATMBZgL/AQABZgHM + Af8BAAFmAv8BMwGZAcwB/wEzAWYBzAH/AZkCzAH/AQABMwHMAf8CmQHMAf8BzAGZAWYB/wGZAjMB/wLM + AZkB/wGZAWYBAAH/AZkBZgEzAf8IAAHGAdYB7wH/ATMBZgL/ATMBZgHMAf8BMwGZAv8BMwFmAcwB/wGZ + AswB/wEzAWYBzAH/A7IB/wHMAmYB/wHMApkB/wHMAZkBMwH/AZkBZgEzAf8D4wH/BAAB/wFmAQAC/wFm + AQAB/wHGAdYB7wH/ATMBZgL/ATMBZgHMAf8BMwGZAv8BMwFmAcwB/wGZAswB/wEzAWYBzAH/A7IB/wHM + AmYB/wHMApkB/wHMAZkBMwH/AZkBZgEzAf8D4wH/BAABMwHMAZkB/wEzAcwBmQH/AcYB1gHvAf8BMwFm + Av8BMwFmAcwB/wEzAZkC/wEzAWYBzAH/AZkCzAH/ATMBZgHMAf8DsgH/AcwCZgH/AcwCmQH/AcwBmQEz + Af8BmQFmATMB/wPjAf8EAAOyAf8DsgH/AcYB1gHvAf8BAAEzAv8BZgGZAv8BmQHMAv8BmQHMAv8BxgHW + Ae8B/wHWAucB/wGZAcwC/wHWAucB/wHwAcoBpgH/AswBmQH/BAABzAGZAWYB/wGZAWYBMwH/CAABmQHM + Av8BAAEzAv8BmQHMAv8BxgHWAe8B/wHGAdYB7wH/AdYC5wH/AZkBzAL/A9cB/wHwAcoBpgH/A+MB/wPd + Af8BmQFmATMB/wPXAf8EAAH/AWYBAAL/AWYBAAH/AZkBzAL/AQABMwL/AZkBzAL/AcYB1gHvAf8BxgHW + Ae8B/wHWAucB/wGZAcwC/wPXAf8B8AHKAaYB/wPjAf8D3QH/AZkBZgEzAf8D1wH/BAABMwHMAZkB/wEz + AcwBmQH/AZkBzAL/AQABMwL/AZkBzAL/AcYB1gHvAf8BxgHWAe8B/wHWAucB/wGZAcwC/wPXAf8B8AHK + AaYB/wPjAf8D3QH/AZkBZgEzAf8D1wH/BAADsgH/A7IB/wLMAv8BAAEzAcwB/wGZAcwC/wwAAdYC5wH/ + ATMBZgHMAf8CmQHMAf8B8AHKAaYB/wHMAZkBZgH/BAACzAGZAf8BmQEzAQAB/wgAAZkBzAL/ATMBZgHM + Af8BzAP/CAAB1gLnAf8BMwFmAcwB/wKZAcwC/wGZAWYB/wHwAcoBpgH/A8wB/wGZATMBAAH/A9cB/wQA + Af8BZgEAAv8BZgEAAf8BmQHMAv8BMwFmAcwB/wHMA/8IAAHWAucB/wEzAWYBzAH/ApkBzAL/AZkBZgH/ + AfABygGmAf8DzAH/AZkBMwEAAf8D1wH/BAABMwHMAZkB/wEzAcwBmQH/AZkBzAL/ATMBZgHMAf8BzAP/ + CAAB1gLnAf8BMwFmAcwB/wKZAcwC/wGZAWYB/wHwAcoBpgH/A8wB/wGZATMBAAH/A9cB/wQAA7IB/wOy + Af8BmQHMAv8BAAEzAcwB/wGZAcwC/wwAAcYB1gHvAf8BMwGZAv8CmQHMAv8BzAGZAf8BzAFmATMB/wGZ + AWYBMwH/AZkBZgEzAf8BmQIzAf8IAAGZAswB/wEzAWYBzAH/AcwD/wgAAdYC5wH/ATMBmQL/ApkBzAL/ + AcwBmQH/AcwBZgEzAf8BmQFmATMB/wHMAmYB/wgAAf8BZgEAAv8BZgEAAf8BmQLMAf8BMwFmAcwB/wHM + A/8IAAHWAucB/wEzAZkC/wKZAcwC/wHMAZkB/wHMAWYBMwH/AZkBZgEzAf8BzAJmAf8IAAEzAcwBmQH/ + ATMBzAGZAf8BmQLMAf8BMwFmAcwB/wHMA/8IAAHWAucB/wEzAZkC/wKZAcwC/wHMAZkB/wHMAWYBMwH/ + AZkBZgEzAf8BzAJmAf8IAAOyAf8DsgH/AZkCzAH/AQABMwHMAf8BmQHMAv8MAAHGAdYB7wH/AQABmQL/ + ApkBzAL/AewBzAH/AfABygGmAf8BzAGZAWYB/wHMAZkBZgH/AcwCmQH/CAACmQHMAf8BAAEzAcwB/wGZ + AcwC/wHGAdYB7wH/AdYC5wH/AZkBzAL/AQABZgL/A8AB/wQAAf8B7AHMAv8B7AHMAf8D4wH/CAAB/wFm + AQAC/wFmAQAB/wKZAcwB/wEAATMBzAH/AZkBzAL/AcYB1gHvAf8B1gLnAf8BmQHMAv8BAAFmAv8DwAH/ + BAAB/wHsAcwC/wHsAcwB/wPjAf8IAAEzAcwBmQH/ATMBzAGZAf8CmQHMAf8BAAEzAcwB/wGZAcwC/wHG + AdYB7wH/AdYC5wH/AZkBzAL/AQABZgL/A8AB/wQAAf8B7AHMAv8B7AHMAf8D4wH/CAADsgH/A7IB/wKZ + AcwB/wIAAcwB/wFmAZkBzAH/AZkBzAL/AZkBzAL/AcYB1gHvAf8BZgGZAv8BAAFmAv8CmQHMAf8cAAKZ + AcwB/wEhAQABpQH/AjMBzAH/ATMBZgHMAf8BMwFmAcwB/wEAATMC/wEAATMBzAH/ApkBzAH/GAAB/wFm + AQAC/wFmAQAB/wKZAcwB/wEhAQABpQH/AjMBzAH/ATMBZgHMAf8BMwFmAcwB/wEAATMC/wEAATMBzAH/ + ApkBzAH/GAABMwHMAZkB/wEzAcwBmQH/ApkBzAH/ASEBAAGlAf8CMwHMAf8BMwFmAcwB/wEzAWYBzAH/ + AQABMwL/AQABMwHMAf8CmQHMAf8YAAOyAf8DsgH/AcYB1gHvAf8BIQEAAaUB/wIAAcwB/wEAATMBzAH/ + AQABMwHMAf8BAAEzAcwB/wEAATMC/wEAATMBzAH/ApkBzAH/IAACmQHMAf8CmQHMAf8BgAF8Av8CmQL/ + ApkC/wHGAdYB7wH/HAAB/wFmAQAC/wFmAQAB/wQAApkBzAH/ApkBzAH/AYABfAL/ApkC/wKZAv8BxgHW + Ae8B/xwAATMBzAGZAf8BMwHMAZkB/wQAApkBzAH/ApkBzAH/AYABfAL/ApkC/wKZAv8BxgHWAe8B/xwA + A7IB/wOyAf8EAAGZAswB/wKZAcwB/wKZAcwB/wKZAv8BmQHMAv8CmQL/AcYB1gHvAf//ADkAA0cByAM3 + AVlAAAM3AVkDRwHIHAADGQEhkAADNwFZAUECQgHlAzcBWTgAAzcBWQFBAkIB5QM3AVkYAAMZASEBQAJB + AesDLAFBPAABOwE9Ae0B/wI3AUwBWCAAAjcBTAFYATsBPQHtAf8kAAM3AVkBQQJCAeUDNwFZMAADNwFZ + AUECQgHlAzcBWSAAAywBQQFAAkEB6wMsAUE4AAI3AUwBWAE7AT0B7QH/AjcBTAFYGAACNwFMAVgBOwE9 + Ae0B/wI3AUwBWCgAAzcBWQFBAkIB5QNGAZIoAAM3AVkBQQJCAeUDNwFZKAADLAFBAUACQQHrAywBQTgA + AjcBTAFYATsBPQHtAf8CNwFMAVgQAAI3AUwBWAE7AT0B7QH/AjcBTAFYMAADNwFZAT0CPwHxA0YBkiAA + A0YBkgE9Aj8B8QM3AVkwAAMsAUEBQAJBAesDLAFBOAACNwFMAVgBOwE9Ae0B/wI3AUwBWAgAAjcBTAFY + ATsBPQHtAf8CNwFMAVg4AAM3AVkBPQI/AfEDRgGSGAADRgGSAT0CPwHxAzcBWTgAAywBQQFAAkEB6wMs + AUEDHgEmAWwCbQHQAVkCWgH1AUECQwH+AVkCWgH1AWwCbQHQAx4BJhwAAjcBTAFYATsBPQHtAf8CNwFM + AVgCNwFMAVgBOwE9Ae0B/wI3AUwBWEAAAzcBWQE9Aj8B8QNGAZIQAANGAZIBPQI/AfEDNwFZQAADLAFB + AT4CPwH0AUUCRwH9AYwCjgH/A84B/wPsAf8DzgH/AYwCjgH/AUgCSQH9A08BcBwAAjcBTAFYATsBPQHt + Af8BOwE9Ae0B/wI3AUwBWEgAAzcBWQFBAkIB5QMrAUAIAAMrAUABQQJCAeUDNwFZRAADHgEmAUUCRwH9 + AcQCxQH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BxALFAf8BSAJJAf0DHgEmGAACNwFMAVgBOwE9Ae0B/wE7 + AT0B7QH/AjcBTAFYTAABSAJJAasBRwJIAb8IAAFHAkgBvwFIAkkBq0gAAWwCbQHQAYwCjgH/A/oB/wP6 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wGMAo4B/wFsAm0B0BQAAjcBTAFYATsBPQHtAf8CNwFMAVgCNwFM + AVgBOwE9Ae0B/wI3AUwBWBgAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + FAADKwFAAT0CPwHxCAABPQI/AfEDKwFAFAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8YAAFYAloB9QPPAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A84B/wFZAloB9RAA + AjcBTAFYATsBPQHtAf8CNwFMAVgIAAI3AUwBWAE7AT0B7QH/AjcBTAFYFAABOAI6Af8BQQJCAeUDNwFZ + KAABOAI6Af8IAAE4AjoB/ygAAzcBWQFBAkIB5QE4AjoB/xgAAUACQgH/A+wB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/A/oB/wP6Af8D7AH/AUECQwH+DAACNwFMAVgBOwE9Ae0B/wI3AUwBWBAAAjcBTAFYATsBPQHt + Af8CNwFMAVgQAAE4AjoB/wM3AVkBQQJCAeUDNwFZIAADKwFAAT0CPwHxCAABPQI/AfEDKwFAIAADNwFZ + AUECQgHlAzcBWQE4AjoB/xgAAVgCWgH1A88B/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8DzgH/ + AVkCWgH1CAACNwFMAVgBOwE9Ae0B/wI3AUwBWBgAAjcBTAFYATsBPQHtAf8CNwFMAVgMAAE4AjoB/wQA + A0YBkgE9Aj8B8QM3AVkcAAFIAkkBqwFHAkgBvwgAAUcCSAG/AUgCSQGrHAADNwFZAT0CPwHxA0YBkgQA + ATgCOgH/GAABbAJtAdABjAKOAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AYwCjgH/AWwCbQHQ + CAABOwE9Ae0B/wI3AUwBWCAAAjcBTAFYATsBPQHtAf8MAAE4AjoB/wgAA0YBkgE9Aj8B8QM3AVkUAAM3 + AVkBQQJCAeUDKwFACAADKwFAAUECQgHlAzcBWRQAAzcBWQE9Aj8B8QNGAZIIAAE4AjoB/xgAAx4BJgFI + AkkB/QPFAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wHEAsUB/wFIAkkB/QMeASZEAAE4AjoB/wwAA0YBkgFB + AkIB5QFIAkkBqwMrAUAEAAMrAUABSAJJAasBQQJCAeUDRgGSEAADRgGSAUECQgHlAUgCSQGrAysBQAQA + AysBQAFIAkkBqwFBAkIB5QNGAZIMAAE4AjoB/xwAA08BcQFIAkkB/QGNAo4B/wHPAtAB/wPsAf8BzwLQ + Af8BjQKOAf8BSAJJAf0DTwFxSAABOAI6Af8QAAMrAUABRwJIAb8BPQI/AfEBOAI6Af8BPQI/AfEBRwJI + Ab8DKwFAGAADKwFAAUcCSAG/AT0CPwHxATgCOgH/AT0CPwHxAUcCSAG/AysBQBAAATgCOgH/IAADHgEm + AWwCbQHQAVgCWgH1AUACQgH/AVgCWgH1AWwCbQHQAx4BJhAAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ + ATgCOgH/BAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8UAAF1AWEBQAGPAcMBigEu + AfEBwwGKAS4B8QF1AWEBQAGPCAABdQFhAUABjwHDAYoBLgHxAcMBigEuAfEBdQFhAUABjyQAATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/CQABbAHe + Af8BAAFsAd4B/wEAAWwB3gH/AQABbAHeAf8BAAFsAd4B/wEAAWwB3gH/BAABOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8IAAE4AjoB/wP6Af8D+gH/DAABOAI6Af8D+gH/A/oB/wP6 + Af8D+gH/ATgCOgH/FAABwwGKAS4B8QFSAUgBOAFkAVIBSAE4AWQBwwGKAS4B8QgAAcMBigEuAfEBUgFI + ATgBZAFSAUgBOAFkAcMBigEuAfEkAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + ATgCOgH/CQABbAHeAf8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/BAABOAI6 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wE4AjoB/wgAATgCOgH/A/oB/wP6Af8EAAE4AjoB/wE4AjoB/wE4 + AjoB/wP6Af8D+gH/A/oB/wP6Af8BOAI6Af8BOAI6Af8BOAI6Af8MAAHDAYoBLgHxAVIBSAE4AWQBUgFI + ATgBZAHDAYoBLgHxCAABwwGKAS4B8QFSAUgBOAFkAVIBSAE4AWQBwwGKAS4B8QwAATgCOgH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/BAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wE4 + AjoB/wkAAWwB3gH/AY8B2wH4Af8D+gH/A/oB/wP6Af8D+gH/BAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ + A/oB/wE4AjoB/wgAATgCOgH/A/oB/wP6Af8EAAE4AjoB/wP6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8D+gH/ATgCOgH/DAABdQFhAUABjwHDAYoBLgHxAcYBiwErAfYBdQFhAUABjwgA + AXUBYQFAAY8BxwGMASsB+AHDAYoBLgHxAXUBYQFAAY8MAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8EAAE4 + AjoB/wP6Af8D+gH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/A/oB/wE4AjoB/wkA + AWwB3gH/AY8B2wH4Af8D+gH/A/oB/wP6Af8D+gH/BAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wE4 + AjoB/wgAATgCOgH/A/oB/wP6Af8EAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + ATgCOgH/FAABRQJGAdEBPgI/AW8IAAE+Aj8BbwFFAkYB0RQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wQA + ATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BOAI6Af8JAAFsAd4B/wGPAdsB+AH/ + A/oB/wP6Af8D+gH/A/oB/wQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BOAI6Af8IAAE4AjoB/wP6 + Af8D+gH/BAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8UAAE+Aj8BbwFFAkYB0QgAAUUCRgHRAT4CPwFvFAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ + BAABOAI6Af8D+gH/A/oB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/A/oB/wP6Af8BOAI6 + Af8JAAFsAd4B/wGPAdsB+AH/A/oB/wP6Af8D+gH/A/oB/wQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8BOAI6Af8IAAE4AjoB/wP6Af8D+gH/DAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/IAABRQJG + AdEBPgI/AW8BPgI/AW8BRQJGAdEYAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8EAAE4AjoB/wP6Af8D+gH/ + A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/CQABbAHeAf8BjwHbAfgB/wP6Af8D+gH/A/oB/wP6 + Af8EAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/CAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ + BAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/IAABPgI/AW8BRQJGAdEBRQJGAdEBPgI/AW8YAAE4 + AjoB/wP6Af8D+gH/A/oB/wP6Af8EAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + ATgCOgH/CQABbAHeAf8BjwHbAfgB/wP6Af8D+gH/A/oB/wP6Af8EAAE4AjoB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/ATgCOgH/CAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/BAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8kAAFFAkYB0QFFAkYB0RwAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wQAATgCOgH/ + A/oB/wP6Af8D+gH/A/oB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wkAAWwB3gH/AY8B2wH4 + Af8D+gH/A/oB/wP6Af8D+gH/BAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8IAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af9AAAFFAkYB0QFFAkYB0RwAATgCOgH/A/oB/wP6Af8D+gH/ + A/oB/wQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wE4AjoB/wP6Af8BvwLAAf8BRgJIAfUDKwFACQABbAHe + Af8BjwHbAfgB/wP6Af8D+gH/A/oB/wP6Af8oAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/ + ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/AToCPAH7IAABPgI/AW8BRQJGAdEBRQJGAdEBPgI/AW8YAAE4 + AjoB/wP6Af8D+gH/A/oB/wP6Af8EAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8BOAI6Af8BvwLAAf8BRgJI + AfUDKwFADQABbAHeAf8BjwHbAfgB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5 + Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BjwHbAfgB/wEAAWwB3gH/EAABOAI6Af8D+gH/A/oB/wP6 + Af8D+gH/A/oB/wE4AjoB/wP6Af8D+gH/A8AB/wFGAkgB9QMrAUAgAAFFAkYB0QE+Aj8BbwE+Aj8BbwFF + AkYB0RgAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wE4AjoB/wFG + AkgB9QMrAUARAAFsAd4B/wGPAdsB+AH/AXQBdwF5Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3 + AXkB/wGPAdsB+AH/AQABbAHeAf8QAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/A/oB/wG/ + AsAB/wFGAkgB9QMrAUAgAAMrAUABRQJGAdEIAAFFAkYB0QMrAUAUAAE4AjoB/wP6Af8D+gH/A/oB/wP6 + Af8EAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE5AjsB/wMrAUAVAAFsAd4B/wGPAdsB+AH/ + AXQBdwF5Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3AXkB/wGPAdsB+AH/AQABbAHeAf8QAAE4 + AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/Ab8CwAH/AUYCSAH1AysBQCQAA0YBkgE+Aj8BbwgA + AT4CPwFvA0YBkhQAATgCOgH/A/oB/wP6Af8D+gH/A/oB/zUAAWwB3gH/AQABbAHeAf8BdAF3AXkB/wF0 + AXcBeQH/AXQBdwF5Af8D+gH/A/oB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wEAAWwB3gH/AQABbAHe + Af8QAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/AUYCSAH1AysBQCgAA0YBkhAAA0YBkhQA + ATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BRgJIAfUDKwFAOAABfAF+AYAB/wHMAc0BzgH/AcwBzQHO + Af8BfAF+AYAB/yAAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/AToCPAH7AysBQCwA + AzcBWRAAAzcBWRQAATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/AysBQDwAAVcCWAGL + AXwBfgGAAf8BfAF+AYAB/wFXAlgBiyAAAXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3 + AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/ + TAABRQE3AUQBXAGXATEBjwH2AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGb + AS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGS + Af8QAAE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/xgAAXQBdwF5 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AXQBdwF5Af9IAAFFATcBRAFc + AZgBMgGPAfcBuwFjAbUB/wHYAZIB1AH/AZsBLgGSAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEu + AZIB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wGbAS4BkgH/EAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/ + A/oB/wP6Af8BOAI6Af8YAAF0AXcBeQH/A/oB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/ + AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/AXQBdwF5Af8IAAEqAYIBugH+AScBgQG6 + Af8BJwGBAboB/wEnAYEBugH/AScBgQG6Af8BJwGBAboB/wEnAYEBugH/AScBgQG6Af8BJwGBAboB/wEn + AYEBugH/AScBgQG6Af8BLwGAAbIB8gESARMBFAEYDAABlwExAY8B9gG7AWMBtQH/AdgBkgHUAf8B2AGS + AdQB/wGbAS4BkgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AZsBLgGSAf8B2AGSAdQB/wHYAZIB1AH/ + AdgBkgHUAf8BmwEuAZIB/xAAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/GAABdAF3 + AXkB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3AXkB/wgAASoBhAG8 + Af8BVwGpAdUB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGP + AdsB+AH/AY8B2wH4Af8BjwHbAfgB/wFVAaMBzgH4AUIBYQF0AZUMAAGbAS4BkgH/AdgBkgHUAf8B2AGS + AdQB/wHYAZIB1AH/AZsBLgGSAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEuAZIB/wHYAZIB1AH/ + AdgBkgHUAf8B2AGSAdQB/wGbAS4BkgH/EAABOAI6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BOAI6 + Af8YAAF0AXcBeQH/A/oB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3 + AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/AXQBdwF5Af8IAAEnAYEBugH/ATEBiAG+Af8BhQHSAfIB/wGP + AdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4 + Af8BhQHSAfIB/wEuAYEBtQH2ARIBEwEUARgIAAGbAS4BkgH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/ + AZsBLgGSAf8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEuAZIB/wHYAZIB1AH/AdgBkgHUAf8B2AGS + AdQB/wGbAS4BkgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/ATgCOgH/CAABdAF3AXkB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3AXkB/wgAAScBgQG6Af8BgQG1AdYB/wFXAakB1QH/ + AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHb + AfgB/wGPAdsB+AH/AVUBowHOAfgBQgFhAXQBlQgAAZsBLgGSAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHU + Af8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGb + AS4BkgH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AZsBLgGSAf8BOAI6Af8D+gH/A/oB/wP6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8D+gH/A/oB/wP6Af8BOAI6 + Af8IAAF0AXcBeQH/A/oB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3 + AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/AXQBdwF5Af8IAAEnAYEBugH/AeUB7gH0Af8BMQGIAb4B/wGF + AdIB8gH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4 + Af8BjwHbAfgB/wGFAdIB8gH/AS4BgQG1AfYBEgETARQBGAQAAZsBLgGSAf8B2AGSAdQB/wHYAZIB1AH/ + AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGS + AdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AZsBLgGSAf8BOAI6Af8D+gH/A/oB/wP6 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wE4AjoB/wgAAXQBdwF5 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AXQBdwF5Af8IAAEnAYEBugH/ + A/oB/wGBAbUB1gH/AVcBqQHVAf8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/ + AY8B2wH4Af8BjwHbAfgB/wGPAdsB+AH/AY8B2wH4Af8BVQGjAc4B+AFCAWEBdAGVBAABmwEuAZIB/wHY + AZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHU + Af8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8BmwEuAZIB/wE4 + AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + ATgCOgH/CAABdAF3AXkB/wP6Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/ + AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/A/oB/wF0AXcBeQH/CAABJwGBAboB/wP6Af8B5QHuAfQB/wE0 + AYkBvwH/AScBgQG6Af8BJwGBAboB/wEnAYEBugH/AScBgQG6Af8BJwGBAboB/wEnAYEBugH/AScBgQG6 + Af8BJwGBAboB/wEnAYEBugH/AScBgQG6Af8BNQF8AakB5AQAAZsBLgGSAf8B2AGSAdQB/wHYAZIB1AH/ + AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGS + AdQB/wHYAZIB1AH/AdgBkgHUAf8B2AGSAdQB/wHYAZIB1AH/AZsBLgGSAf8BOAI6Af8D+gH/ATgCOgH/ + A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/CAABdAF3 + AXkB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BdAF3AXkB/wgAAScBgQG6 + Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wEnAYEBugH/DAABmwEu + AZIB/wHYAZIB1AH/AdgBkgHUAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/ + AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wHYAZIB1AH/AdgBkgHUAf8BmwEu + AZIB/wE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/ATgCOgH/CAABdAF3AXkB/wP6Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/AXQBdwF5 + Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wFzAXYBeAH7CAABJwGBAboB/wP6Af8D+gH/ + A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AScBgQG6Af8MAAGbAS4BkgH/AdgBkgHU + Af8B2AGSAdQB/wGbAS4BkgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEuAZIB/wHY + AZIB1AH/AdgBkgHUAf8BmwEuAZIB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4 + AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wE4AjoB/wgA + AXQBdwF5Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wF0AXcBeQH/A/oB/wP6Af8DxAH/AXkBewF9AfUDLwFA + CAABJwGBAboB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AcQB2wHqAf8BLwGCAbgB+gEnAYEBugH/AScBgQG6 + Af8BJwGBAboB/wEnAYEBugH/ATABgAGyAfIMAAGbAS4BkgH/AdgBkgHUAf8B2AGSAdQB/wGbAS4BkgH/ + A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEuAZIB/wHYAZIB1AH/AdgBkgHUAf8BmwEu + AZIB/xAAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ATgCOgH/GAABdAF3AXkB/wP6Af8BdAF3 + AXkB/wF0AXcBeQH/AXQBdwF5Af8D+gH/AXQBdwF5Af8D+gH/A8MB/wF5AXsBfQH1Ay8BQAwAAScBgQG6 + Af8D+gH/A/oB/wP6Af8D+gH/AcUB3AHqAf8BMwGDAbYB9QEqATABMwFAIAABmwEuAZIB/wHYAZIB1AH/ + AdgBkgHUAf8BmwEuAZIB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AZsBLgGSAf8B2AGS + AdQB/wHYAZIB1AH/AZsBLgGSAf8QAAE4AjoB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wE4AjoB/xgA + AXQBdwF5Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wF0AXcBeQH/A8MB/wF5AXsBfQH1Ay8BQBAAATABgAGy + AfIBJwGBAboB/wEnAYEBugH/AScBgQG6Af8BJwGBAboB/wEvAYIBtgH3ASsBMAE0AUEkAAGbAS4BkgH/ + AdgBkgHUAf8B2AGSAdQB/wGbAS4BkgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8BmwEu + AZIB/wHYAZIB1AH/AdgBkgHUAf8BmwEuAZIB/xAAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/ + ATgCOgH/GAABdAF3AXkB/wP6Af8D+gH/A/oB/wP6Af8D+gH/AXQBdwF5Af8BeQF7AX0B9QMvAUBUAAGb + AS4BkgH/AdgBkgHUAf8B2AGSAdQB/wGbAS4BkgH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8BmwEuAZIB/wHYAZIB1AH/AdgBkgHUAf8BmwEuAZIB/xAAATgCOgH/A/oB/wP6Af8D+gH/A/oB/wP6 + Af8D+gH/ATgCOgH/GAABdAF3AXkB/wF0AXcBeQH/AXQBdwF5Af8BdAF3AXkB/wF0AXcBeQH/AXQBdwF5 + Af8BcwF2AXgB+wMvAUBYAAGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEu + AZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/ + AZsBLgGSAf8BmwEuAZIB/wGbAS4BkgH/EAABOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6Af8BOAI6 + Af8BOAI6Af8BOAI6Af8QAAFCAU0BPgcAAT4DAAEoAwABQAMAAYADAAEBAQABAQYAAQQWAAP/AQAB/wHj + BgAB/wHBBgABzwGABgABBwcAAQIPAAEgARgGAAEgATgGAAEgATgGAAEgARgOAAECBwABBwcAAc8BgAYA + Af8BwQYAAf8B4wYABP8BwAEDBv8BwAEDAfoBAwGAAQEBgAEBAcABAwGCAQME/wHAAQMBggEDBP8BwAED + AYIBAwT/AcABAwGCAQMBxwGBAfMBgQHAAQMBggEDAY8B/wHxAf8BwAEDAv8BgQH/AYEB/wHAAQMBggED + AY8B/wHxAf8BwAEDAYIBAwHHAYEB4wGBAcABAwGCAQME/wHAAQMBggEDBP8BwAEHAYIBAwT/AcABDwH6 + AQMBgAEBAYABAQHAAR8G/wHAAT8Q/wGPAf8BgAEfAeABBwH4AQEBjAEDBv8BjxH/AYABAQGAAQEBgAEB + CP8Bjwf/AYwBAwb/AY8B/wGAAR8B4AEHAfgBARj/AY8B/wGAAQEBgAEBAYABAQGMAQMG/wGPBf8B4QHH + AeEBxwGAAfwB/gEHAcABgwHAAYMBgAEEAbwBAwGAAQEBgAEBAZgBBAEAAQMEAAGYASQBAAEDARABGAEQ + ARgBgAEEAYABAwQYAYABBAGAAQMEAAGAAQwBgAEBAYABAAGAAgABBAHAAQEBwAEAAcACAAEEAcABAQHg + AQAB4QEAARgBBAHAAQAB/gEAAf8BAAEYAQwBwAEAAf4BAAH/AgABjAHgAQAB/gEAAf8CAAH8AeABPwH+ + AQAB/wEAAYEB/AHwAX8B/gEAAf8BAAT/Af4BAAH/AQABgAF/Bv8BgAEBAYAB/AGAAfwBgAH8AYwBAQGA + AQQBgAEEAYABBAGMARkBmAEEAZgBBAGYAQQBiAEZAZgBJAGYASQBmAEkAYABAQGAAQQBgAEEAYABBAGA + AQEBgAEEAYABBAGAAQQBgAEDAYABDAGAAQwBgAEMAQABAwEAAQQBAAEEAQABBAEAARMBAAEEAQABBAEA + AQQBHAETARgBBAEYAQQBGAEEARwBAwEYAQwBGAEMARgBDAEcAQMBAAGMAQABjAEAAYwBAAF/AQAB/AEA + AfwBAAH8AQABfwGBAfwBgQH8AYEB/AGACf8B/AL/AT8BvwP/AfwBfwH+AT8BHwH/Ac8B8wH+AT8B/AF/ + AY8B/wHHAeMB/wEfAfgB/wHHAf8B4wHHAf8BjwHxAf8B4wH/AfEBjwH/AccB4wH/AfABAwH4AR8B/wHj + AccB/wH4AQEB/AE/Af8B8QGPAf8B+AEAAfwBPwH/AfkBnwH/AfgBAAH4AR8BgAH5AZ8BAQH4AQAB8QKP + Af0BvwHxAfgBAAHjAccBhwH5AZ8B4QH4AQABxwHjAaMB+QGfAcUB+AEAAc8B8wGxAfEBjwGNAfgBAAL/ + AbgBQwHCAR0B/AEBAv8BvAEHAeABPQH+AQMBwQEDAeEBhwH8AQABwAGAAccBAwHhAYcB/AEAAcABgAHE + AQAB4QGHAQQBAAHAAYABxAEAAeEBhwEEAQABwAGAAcQBAAH5AZ8BBAEAAcABgAHEAQAB+QGfAQQBAAHA + AYABxwEDAfwBPwEEAQABwAGAAcEBAwH8AT8BBAEAAcABgAHBAQMB/gF/AQQBAAHAAYABwQH/Af4BfwEE + AQABwAH/AcABAwH8AT8BBAEBAcABAwHAAQMB/AE/AQQBAwHAAQMBwAEHAfkBnwEEAQcBwAEDAcABDwH5 + AZ8BBwH/AcABAwHAAR8B+wHfAQAB/wH8AT8BwAE/AfsB3wEBAf8B/AE/AcABAwL/AYABAAHwAQ8BwAED + Av8CAAHwAQ8BwAEDAQABBwIAAfABDwHAAQMBAAEHAgAB8AEPAcABAwEAAQMEAAHAAQMBAAEDBAABwAED + AQABAQQAAcABAwEAAQEEAAHAAQMBAAEBBAABwAEDAQABBwQAAcABAwEAAQcEAAHAAQMBAAEHAgAB8AEP + AcABBwEAAf8CAAHwAQ8BwAEPAQEB/wIAAfABDwHAAR8C/wIAAfABDwHAAT8C/wIAAfABDws= + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAB9SURBVDhPY/j//z9FGExYWVn8J4QZsAAUA379+kUI + Q7UhACkGMIAwOiDWAAb1vrP1QPwfREP1ggFJLgBqPoNuCDYDwE5Fx161G/lBGtANwWoAVAExuJ42BmAD + pHgBFyY6ELFhkGbKoxEbIMUAEIZqQwAUAwhhvAaQj/8zAAC4zWoVCPylvAAAAABJRU5ErkJggg== + + R0lGODlhEAAQAPcAAP////7///r///D//+j//+P//9z//9P//+T5/8n9/8/8//Ly8uf0++ry+ML6/8b4 @@ -765,6 +1069,24 @@ AATBxogACIKNEQEQBBsjAiAINkYEQBBsjAiAINgYEQBBsDEiAIJgY0QABMHGiAAIgo0RARAEGyMCIAg2 RgRAEGyMCIAg2BgRAEGwMSIAgmBjRAAEwcaIAAiCjREBEAQbIwIgCDZGBEAQbIwIgCDYGBEAQbAxIgCC YGNEAATBxogACIJtAf4/RdSQOL+TBo4AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAMJJREFUOE+1 + kTEKg0AURBfEVi/gHdIGT+YtDKROmbukT5vOQgi5QYrkjfzFDX5WTMjAA3dnRr+74a9q230FPYzwggF2 + ZudFsIarFSOd2esifMiVWecnIXBPyg9ozJLXwWDLpTBLSL8ubtCAytOexX0RiAeXokni82jRpTALuCRh + j97in8JQ+ZwEPXQ7lVVmsemVNUn8HR2sbqe2yiw2vbLWhfnlFPSkkIXd8qoInpLitrJE+Pl1WaJwBL1E + k2wr/6YQ3uvclCjY2OhqAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAMJJREFUOE+1 + kTEKg0AURBfEVi/gHdIGT+YtDKROmbukT5vOQgi5QYrkjfzFDX5WTMjAA3dnRr+74a9q230FPYzwggF2 + ZudFsIarFSOd2esifMiVWecnIXBPyg9ozJLXwWDLpTBLSL8ubtCAytOexX0RiAeXokni82jRpTALuCRh + j97in8JQ+ZwEPXQ7lVVmsemVNUn8HR2sbqe2yiw2vbLWhfnlFPSkkIXd8qoInpLitrJE+Pl1WaJwBL1E + k2wr/6YQ3uvclCjY2OhqAAAAAElFTkSuQmCC diff --git a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.Designer.cs b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.Designer.cs index 285ca4c..45177da 100644 --- a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.Designer.cs @@ -100,11 +100,10 @@ private void InitializeComponent() { this.rendererToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rendererMetroLightToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rendererMetroDarkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.rendererVisualStudio2022BlueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rendererVisualStudio2005ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.rendererVisualStudio2005Beta2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rendererVisualStudio2002ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rendererOffice2003ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.dockGuideStyleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.dockGuideStyleNoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.dockGuideStyleModernToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -879,11 +878,10 @@ private void InitializeComponent() { this.rendererToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.rendererMetroLightToolStripMenuItem, this.rendererMetroDarkToolStripMenuItem, + this.rendererVisualStudio2022BlueToolStripMenuItem, this.rendererVisualStudio2005ToolStripMenuItem, - this.rendererVisualStudio2005Beta2ToolStripMenuItem, this.rendererVisualStudio2002ToolStripMenuItem, - this.rendererOffice2003ToolStripMenuItem, - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem}); + this.rendererOffice2003ToolStripMenuItem}); this.rendererToolStripMenuItem.Name = "rendererToolStripMenuItem"; this.rendererToolStripMenuItem.Size = new System.Drawing.Size(252, 22); this.rendererToolStripMenuItem.Text = "Renderer"; @@ -903,41 +901,34 @@ private void InitializeComponent() { this.rendererMetroDarkToolStripMenuItem.Text = "Metro Dark"; this.rendererMetroDarkToolStripMenuItem.Click += new System.EventHandler(this.viewRendererMetroDarkToolStripMenuItem_Click); // + // rendererVisualStudio2022BlueToolStripMenuItem + // + this.rendererVisualStudio2022BlueToolStripMenuItem.Name = "rendererVisualStudio2022BlueToolStripMenuItem"; + this.rendererVisualStudio2022BlueToolStripMenuItem.Size = new System.Drawing.Size(351, 22); + this.rendererVisualStudio2022BlueToolStripMenuItem.Text = "Visual Studio (Blue)"; + this.rendererVisualStudio2022BlueToolStripMenuItem.Click += new System.EventHandler(this.viewRendererVisualStudio2022BlueMenuItem_Click); + // // rendererVisualStudio2005ToolStripMenuItem // this.rendererVisualStudio2005ToolStripMenuItem.Name = "rendererVisualStudio2005ToolStripMenuItem"; this.rendererVisualStudio2005ToolStripMenuItem.Size = new System.Drawing.Size(351, 22); - this.rendererVisualStudio2005ToolStripMenuItem.Text = "Visual Studio 2005"; + this.rendererVisualStudio2005ToolStripMenuItem.Text = "Visual Studio (Classic)"; this.rendererVisualStudio2005ToolStripMenuItem.Click += new System.EventHandler(this.viewRendererVisualStudio2005MenuItem_Click); // - // rendererVisualStudio2005Beta2ToolStripMenuItem - // - this.rendererVisualStudio2005Beta2ToolStripMenuItem.Name = "rendererVisualStudio2005Beta2ToolStripMenuItem"; - this.rendererVisualStudio2005Beta2ToolStripMenuItem.Size = new System.Drawing.Size(351, 22); - this.rendererVisualStudio2005Beta2ToolStripMenuItem.Text = "Visual Studio 2005 Beta 2"; - this.rendererVisualStudio2005Beta2ToolStripMenuItem.Click += new System.EventHandler(this.viewRendererVisualStudio2005Beta2MenuItem_Click); - // // rendererVisualStudio2002ToolStripMenuItem // this.rendererVisualStudio2002ToolStripMenuItem.Name = "rendererVisualStudio2002ToolStripMenuItem"; this.rendererVisualStudio2002ToolStripMenuItem.Size = new System.Drawing.Size(351, 22); - this.rendererVisualStudio2002ToolStripMenuItem.Text = "Visual Studio 2002"; + this.rendererVisualStudio2002ToolStripMenuItem.Text = "Windows Classic"; this.rendererVisualStudio2002ToolStripMenuItem.Click += new System.EventHandler(this.viewRendererVisualStudio2002MenuItem_Click); // // rendererOffice2003ToolStripMenuItem // this.rendererOffice2003ToolStripMenuItem.Name = "rendererOffice2003ToolStripMenuItem"; this.rendererOffice2003ToolStripMenuItem.Size = new System.Drawing.Size(351, 22); - this.rendererOffice2003ToolStripMenuItem.Text = "Office 2003"; + this.rendererOffice2003ToolStripMenuItem.Text = "Office Classic"; this.rendererOffice2003ToolStripMenuItem.Click += new System.EventHandler(this.viewRendererOffice2003MenuItem_Click); // - // office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem - // - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem.Name = "office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem"; - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem.Size = new System.Drawing.Size(351, 22); - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem.Text = "Office 2003 (Rounded Visual Studio 2005 Beta 2 Tabs)"; - this.office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem.Click += new System.EventHandler(this.viewRendererOffice2003VisualStudio2005Beta2MenuItem_Click); - // // dockGuideStyleToolStripMenuItem // this.dockGuideStyleToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -1539,11 +1530,10 @@ private void InitializeComponent() { private System.Windows.Forms.ToolStripMenuItem aboutWinFormsStudioToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rendererToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rendererMetroLightToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem rendererVisualStudio2022BlueToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rendererVisualStudio2005ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem rendererVisualStudio2005Beta2ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rendererVisualStudio2002ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rendererOffice2003ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem office2003RoundedVisualStudio2005Beta2TabsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem dockGuideStyleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem dockHintStyleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem splitterExtentToolStripMenuItem; diff --git a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.cs b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.cs index 6ef7bc0..7e6730c 100644 --- a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.cs +++ b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/DockingFeatures/MainForm.cs @@ -899,11 +899,11 @@ private void viewNextWindowNavigationTypeToolWindowMenuItem_Click(object sender, private void viewRendererMenuItem_Popup(object sender, System.EventArgs e) { var dockRenderer = dockManager.DockRenderer; rendererMetroDarkToolStripMenuItem.Checked = ((dockRenderer.GetType() == typeof(MetroDockRenderer)) && (dockRenderer.ColorScheme.BaseColorSchemeType == WindowsColorSchemeType.MetroDark)); - rendererMetroLightToolStripMenuItem.Checked = ((dockRenderer.GetType() == typeof(MetroDockRenderer)) && (dockRenderer.ColorScheme.BaseColorSchemeType == WindowsColorSchemeType.MetroLight)); ; - rendererOffice2003ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(Office2003DockRenderer)); - rendererVisualStudio2005ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(VisualStudio2005DockRenderer)); - rendererVisualStudio2005Beta2ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(VisualStudio2005Beta2DockRenderer)); - rendererVisualStudio2002ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(VisualStudio2002DockRenderer)); + rendererMetroLightToolStripMenuItem.Checked = ((dockRenderer.GetType() == typeof(MetroDockRenderer)) && (dockRenderer.ColorScheme.BaseColorSchemeType == WindowsColorSchemeType.MetroLight)); + rendererOffice2003ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(OfficeClassicDockRenderer)); + rendererVisualStudio2022BlueToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(VisualStudioDockRenderer) && (dockRenderer.ColorScheme.BaseColorSchemeType == WindowsColorSchemeType.VisualStudioBlue)); + rendererVisualStudio2005ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(VisualStudioClassicDockRenderer)); + rendererVisualStudio2002ToolStripMenuItem.Checked = (dockRenderer.GetType() == typeof(WindowsClassicDockRenderer)); } /// @@ -938,21 +938,9 @@ private void viewRendererMetroLightMenuItem_Click(object sender, System.EventArg /// Sender of the event. /// Event arguments. private void viewRendererOffice2003MenuItem_Click(object sender, System.EventArgs e) { - dockManager.DockRenderer = new Office2003DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new Office2003DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new Office2003ToolWindowTabStripRenderer(); - OnRendererChanged(); - } - - /// - /// Occurs when the menu item is clicked. - /// - /// Sender of the event. - /// Event arguments. - private void viewRendererOffice2003VisualStudio2005Beta2MenuItem_Click(object sender, System.EventArgs e) { - dockManager.DockRenderer = new Office2003VisualStudio2005Beta2DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new Office2003DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new Office2003VisualStudio2005Beta2ToolWindowTabStripRenderer(); + dockManager.DockRenderer = new OfficeClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new OfficeClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new OfficeClassicToolWindowTabStripRenderer(); OnRendererChanged(); } @@ -962,9 +950,9 @@ private void viewRendererOffice2003VisualStudio2005Beta2MenuItem_Click(object se /// Sender of the event. /// Event arguments. private void viewRendererVisualStudio2002MenuItem_Click(object sender, System.EventArgs e) { - dockManager.DockRenderer = new VisualStudio2002DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new VisualStudio2002DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new VisualStudio2002ToolWindowTabStripRenderer(); + dockManager.DockRenderer = new WindowsClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new WindowsClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new WindowsClassicToolWindowTabStripRenderer(); OnRendererChanged(); } @@ -973,10 +961,10 @@ private void viewRendererVisualStudio2002MenuItem_Click(object sender, System.Ev /// /// Sender of the event. /// Event arguments. - private void viewRendererVisualStudio2005Beta2MenuItem_Click(object sender, System.EventArgs e) { - dockManager.DockRenderer = new VisualStudio2005Beta2DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new VisualStudio2005DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new VisualStudio2005Beta2ToolWindowTabStripRenderer(); + private void viewRendererVisualStudio2005MenuItem_Click(object sender, System.EventArgs e) { + dockManager.DockRenderer = new VisualStudioClassicDockRenderer(); + dockManager.TabbedMdiContainerTabStripRenderer = new VisualStudioClassicDocumentWindowTabStripRenderer(); + dockManager.ToolWindowContainerTabStripRenderer = new VisualStudioClassicToolWindowTabStripRenderer(); OnRendererChanged(); } @@ -985,10 +973,11 @@ private void viewRendererVisualStudio2005Beta2MenuItem_Click(object sender, Syst /// /// Sender of the event. /// Event arguments. - private void viewRendererVisualStudio2005MenuItem_Click(object sender, System.EventArgs e) { - dockManager.DockRenderer = new VisualStudio2005DockRenderer(); - dockManager.TabbedMdiContainerTabStripRenderer = new VisualStudio2005DocumentWindowTabStripRenderer(); - dockManager.ToolWindowContainerTabStripRenderer = new VisualStudio2005ToolWindowTabStripRenderer(); + private void viewRendererVisualStudio2022BlueMenuItem_Click(object sender, System.EventArgs e) { + var colorSchemeType = WindowsColorSchemeType.VisualStudioBlue; + dockManager.DockRenderer = new VisualStudioDockRenderer(colorSchemeType); + dockManager.TabbedMdiContainerTabStripRenderer = new VisualStudioDocumentWindowTabStripRenderer(colorSchemeType); + dockManager.ToolWindowContainerTabStripRenderer = new VisualStudioToolWindowTabStripRenderer(colorSchemeType); OnRendererChanged(); } @@ -1575,7 +1564,7 @@ private void ResizePropertyGridWithinPanel(PropertyGrid propertyGrid, Panel pane /// Update the border styles of child controls. /// private void UpdateChildControlBorderStyles() { - bool showBorders = (dockManager.DockRenderer.GetType() == typeof(VisualStudio2002DockRenderer)); + bool showBorders = (dockManager.DockRenderer.GetType() == typeof(WindowsClassicDockRenderer)); foreach (ToolWindow toolWindow in dockManager.ToolWindows) { bool changeToolWindowBorder = false; foreach (Control control in toolWindow.Controls) { diff --git a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.Designer.cs b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.Designer.cs index 281e704..ac64d81 100644 --- a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.Designer.cs @@ -25,7 +25,7 @@ protected override void Dispose(bool disposing) { private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainControl)); - ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer visualStudio2005ToolWindowTabStripRenderer1 = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer(); + ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer visualStudio2005ToolWindowTabStripRenderer1 = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer(); ActiproSoftware.UI.WinForms.Drawing.MultiColorLinearGradient multiColorLinearGradient1 = new ActiproSoftware.UI.WinForms.Drawing.MultiColorLinearGradient(); ActiproSoftware.UI.WinForms.Drawing.MultiColorLinearGradient multiColorLinearGradient2 = new ActiproSoftware.UI.WinForms.Drawing.MultiColorLinearGradient(); ActiproSoftware.UI.WinForms.Controls.Navigation.MetroNavigationBarRenderer metroNavigationBarRenderer1 = new ActiproSoftware.UI.WinForms.Controls.Navigation.MetroNavigationBarRenderer(ActiproSoftware.UI.WinForms.Drawing.WindowsColorSchemeType.MetroLight); @@ -559,14 +559,14 @@ private void InitializeComponent() { "Metro Light Tool Window", "Metro Dark Document Window", "Metro Dark Tool Window", - "Office 2003 Document Window", - "Office 2003 Tool Window", - "Office 2003 (based on Visual Studio 2005 Beta 2 style) Tool Window", - "Visual Studio 2005 Document Window", - "Visual Studio 2005 Tool Window", - "Visual Studio 2005 Beta 2 Tool Window", - "Visual Studio 2002 Document Window", - "Visual Studio 2002 Tool Window", + "Visual Studio Blue Document Window", + "Visual Studio Blue Tool Window", + "Visual Studio Classic Document Window", + "Visual Studio Classic Tool Window", + "Office Classic Document Window", + "Office Classic Tool Window", + "Windows Classic Document Window", + "Windows Classic Tool Window", "Custom"}); this.rendererDropDownList.Location = new System.Drawing.Point(70, 13); this.rendererDropDownList.Margin = new System.Windows.Forms.Padding(3, 3, 3, 10); diff --git a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.cs b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.cs index ead01b2..3d63168 100644 --- a/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.cs +++ b/Samples/SampleBrowser/ProductSamples/DockingSamples/Demo/TabStripFeatures/MainControl.cs @@ -70,29 +70,29 @@ private void OnRendererDropDownListSelectedIndexChanged(object sender, EventArgs case "Metro Dark Tool Window": tabStrip.Renderer = new MetroToolWindowTabStripRenderer(WindowsColorSchemeType.MetroDark); break; - case "Visual Studio 2005 Document Window": - tabStrip.Renderer = new VisualStudio2005DocumentWindowTabStripRenderer(); + case "Visual Studio Blue Document Window": + tabStrip.Renderer = new VisualStudioDocumentWindowTabStripRenderer(WindowsColorSchemeType.VisualStudioBlue); break; - case "Visual Studio 2005 Tool Window": - tabStrip.Renderer = new VisualStudio2005ToolWindowTabStripRenderer(); + case "Visual Studio Blue Tool Window": + tabStrip.Renderer = new VisualStudioToolWindowTabStripRenderer(WindowsColorSchemeType.VisualStudioBlue); break; - case "Visual Studio 2005 Beta 2 Tool Window": - tabStrip.Renderer = new VisualStudio2005Beta2ToolWindowTabStripRenderer(); + case "Visual Studio Classic Document Window": + tabStrip.Renderer = new VisualStudioClassicDocumentWindowTabStripRenderer(); break; - case "Visual Studio 2002 Document Window": - tabStrip.Renderer = new VisualStudio2002DocumentWindowTabStripRenderer(); + case "Visual Studio Classic Tool Window": + tabStrip.Renderer = new VisualStudioClassicToolWindowTabStripRenderer(); break; - case "Visual Studio 2002 Tool Window": - tabStrip.Renderer = new VisualStudio2002ToolWindowTabStripRenderer(); + case "Windows Classic Document Window": + tabStrip.Renderer = new WindowsClassicDocumentWindowTabStripRenderer(); break; - case "Office 2003 Document Window": - tabStrip.Renderer = new Office2003DocumentWindowTabStripRenderer(); + case "Windows Classic Tool Window": + tabStrip.Renderer = new WindowsClassicToolWindowTabStripRenderer(); break; - case "Office 2003 Tool Window": - tabStrip.Renderer = new Office2003ToolWindowTabStripRenderer(); + case "Office Classic Document Window": + tabStrip.Renderer = new OfficeClassicDocumentWindowTabStripRenderer(); break; - case "Office 2003 (based on Visual Studio 2005 Beta 2 style) Tool Window": - tabStrip.Renderer = new Office2003VisualStudio2005Beta2ToolWindowTabStripRenderer(); + case "Office Classic Tool Window": + tabStrip.Renderer = new OfficeClassicToolWindowTabStripRenderer(); break; default: tabStrip.Renderer = customTabStripRenderer; diff --git a/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.Designer.cs b/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.Designer.cs index 3f50d33..9b4589d 100644 --- a/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.Designer.cs @@ -26,7 +26,7 @@ protected override void Dispose(bool disposing) { /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - ActiproSoftware.UI.WinForms.Controls.Navigation.Office2003NavigationBarRenderer office2003NavigationBarRenderer1 = new ActiproSoftware.UI.WinForms.Controls.Navigation.Office2003NavigationBarRenderer(ActiproSoftware.UI.WinForms.Drawing.WindowsColorSchemeType.WindowsXPOliveGreen); + ActiproSoftware.UI.WinForms.Controls.Navigation.OfficeLunaNavigationBarRenderer office2003NavigationBarRenderer1 = new ActiproSoftware.UI.WinForms.Controls.Navigation.OfficeLunaNavigationBarRenderer(ActiproSoftware.UI.WinForms.Drawing.WindowsColorSchemeType.LunaOliveGreen); System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Actipro WinForms Studio", 1, 1); System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Deleted Items", 2, 2); System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Drafts", 3, 3); diff --git a/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.cs b/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.cs index 213886c..6cc73e8 100644 --- a/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.cs +++ b/Samples/SampleBrowser/ProductSamples/NavigationSamples/Demo/Features/MainControl.cs @@ -1,11 +1,12 @@ +using ActiproSoftware.SampleBrowser.Controls; +using ActiproSoftware.UI.WinForms.Controls.Navigation; +using ActiproSoftware.UI.WinForms.Drawing; using System; -using System.Drawing; -using System.Collections; using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Reflection; using System.Windows.Forms; -using ActiproSoftware.UI.WinForms.Drawing; -using ActiproSoftware.UI.WinForms.Controls.Navigation; -using ActiproSoftware.SampleBrowser.Controls; namespace ActiproSoftware.ProductSamples.NavigationSamples.Demo.Features { @@ -29,11 +30,26 @@ public MainControl() { customNavigationBarRenderer = navigationBar.Renderer; // Populate the drop-down list - string[] names = Enum.GetNames(typeof(WindowsColorSchemeType)); - foreach (string name in names) + foreach (FieldInfo fieldInfo in typeof(WindowsColorSchemeType).GetFields() + .Where(x => x.IsLiteral) + .OrderBy(x => x.Name)) { + + // Ignore items that are not browsable + if ((fieldInfo.GetCustomAttribute()?.State ?? EditorBrowsableState.Always) == EditorBrowsableState.Never) + continue; + + var name = fieldInfo.Name; + + // Ignore special "WindowsDefault" that just resolves as one of the other types + if (((WindowsColorSchemeType)fieldInfo.GetValue(fieldInfo.Name)) == WindowsColorSchemeType.WindowsDefault) + continue; + rendererDropDownList.Items.Add(name); + } rendererDropDownList.Items.Add("Custom"); - rendererDropDownList.SelectedIndex = rendererDropDownList.Items.IndexOf(WindowsColorSchemeType.MetroLight.ToString()); + + // Pre-select the type that is the current windows default + rendererDropDownList.SelectedIndex = rendererDropDownList.Items.IndexOf(WindowsColorScheme.DefaultColorSchemeType.ToString()); // Expand all nodes mailTreeView.ExpandAll(); @@ -128,17 +144,32 @@ private void navigationBar_SelectionChanging(object sender, ActiproSoftware.UI.W /// Sender of the event. /// Event arguments. private void rendererDropDownList_SelectedIndexChanged(object sender, System.EventArgs e) { + // Determine the selected color scheme type + var selectedColorSchemeTypeName = rendererDropDownList.SelectedItem.ToString(); + WindowsColorSchemeType? colorSchemeType = (selectedColorSchemeTypeName == "Custom") + ? null + : (WindowsColorSchemeType)Enum.Parse(typeof(WindowsColorSchemeType), selectedColorSchemeTypeName, ignoreCase: true); + // Update the navigationbar renderer - if (rendererDropDownList.SelectedItem.ToString() == "Custom") + if (!colorSchemeType.HasValue) { navigationBar.Renderer = customNavigationBarRenderer; + } else { - WindowsColorSchemeType colorSchemeType = (WindowsColorSchemeType)Enum.Parse(typeof(WindowsColorSchemeType), rendererDropDownList.SelectedItem.ToString(), true); - if (rendererDropDownList.SelectedItem.ToString().StartsWith("Metro")) - navigationBar.Renderer = new MetroNavigationBarRenderer(colorSchemeType); - else if (rendererDropDownList.SelectedItem.ToString().StartsWith("Office2007")) - navigationBar.Renderer = new Office2007NavigationBarRenderer(colorSchemeType); - else - navigationBar.Renderer = new Office2003NavigationBarRenderer(colorSchemeType); + switch (colorSchemeType.Value) { + case WindowsColorSchemeType.MetroDark: + case WindowsColorSchemeType.MetroLight: + case WindowsColorSchemeType.VisualStudioBlue: + navigationBar.Renderer = new MetroNavigationBarRenderer(colorSchemeType.Value); + break; + case WindowsColorSchemeType.OfficeClassicBlack: + case WindowsColorSchemeType.OfficeClassicBlue: + case WindowsColorSchemeType.OfficeClassicSilver: + navigationBar.Renderer = new OfficeClassicNavigationBarRenderer(colorSchemeType.Value); + break; + default: + navigationBar.Renderer = new OfficeLunaNavigationBarRenderer(colorSchemeType.Value); + break; + } } rendererPropertyGrid.SelectedObject = navigationBar.Renderer; @@ -150,18 +181,35 @@ private void rendererDropDownList_SelectedIndexChanged(object sender, System.Eve // Update form background and tabstrip renderer var colorScheme = navigationBar.Renderer.ColorScheme; if (navigationBar.Renderer is MetroNavigationBarRenderer) { - tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.MetroToolWindowTabStripRenderer(colorScheme) { AreImagesVisible = true }; + if (colorSchemeType.HasValue && colorSchemeType.Value == WindowsColorSchemeType.VisualStudioBlue) + tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioToolWindowTabStripRenderer(colorScheme) { AreImagesVisible = true }; + else + tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.MetroToolWindowTabStripRenderer(colorScheme) { AreImagesVisible = true }; } - else if (navigationBar.Renderer is Office2003NavigationBarRenderer) { - tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.Office2003ToolWindowTabStripRenderer(colorScheme) { AreImagesVisible = true }; + else if (navigationBar.Renderer is OfficeLunaNavigationBarRenderer) { + tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.OfficeClassicToolWindowTabStripRenderer(colorScheme) { AreImagesVisible = true }; } else { - tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer() { AreImagesVisible = true }; + tabStrip.Renderer = new ActiproSoftware.UI.WinForms.Controls.Docking.VisualStudioClassicToolWindowTabStripRenderer() { AreImagesVisible = true }; } - this.BackColor = colorScheme.FormBackGradientBegin; // Customize key controls based on color scheme to render better in light/dark themes ThemeHelper.ApplyComponentColors(this, colorScheme, recurseChildren: true); + + // Force the back color of this sample to match the theme instead of generic "control" control + this.BackColor = (colorScheme.ColorSchemeType == WindowsColorSchemeType.VisualStudioBlue) + ? colorScheme.GetKnownColor(KnownColor.AppWorkspace) + : colorScheme.FormBackGradientBegin; + + // Theme the splitters to match the background (transparent not supported) + vSplitter.BackColor = this.BackColor; + vSplitter2.BackColor = this.BackColor; + hSplitter.BackColor = this.BackColor; + + // For this sample the panel will have a dark background and cannot have default control text foreground on these controls + rendererLabel.ForeColor = preventSelectionChangesCheckBox.ForeColor = (colorSchemeType == WindowsColorSchemeType.OfficeClassicBlack) + ? Color.White + : colorScheme.GetKnownColor(KnownColor.ControlText); } /// diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Common/SyntaxEditorHelper.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Common/SyntaxEditorHelper.cs index 5278082..88bfc2f 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Common/SyntaxEditorHelper.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Common/SyntaxEditorHelper.cs @@ -1,23 +1,12 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.CompareFiles; -using ActiproSoftware.SampleBrowser.Controls; -using ActiproSoftware.Text; +using ActiproSoftware.Text; using ActiproSoftware.Text.Implementation; -using ActiproSoftware.Text.Languages.DotNet.Implementation; using ActiproSoftware.Text.Languages.DotNet.Reflection; -using ActiproSoftware.Text.Languages.JavaScript.Implementation; -using ActiproSoftware.Text.Languages.Python.Implementation; -using ActiproSoftware.Text.Languages.Xml.Implementation; -using ActiproSoftware.UI.WinForms.Controls; -using ActiproSoftware.UI.WinForms.Controls.SyntaxEditor; -using ActiproSoftware.UI.WinForms.Controls.SyntaxEditor.Highlighting; using ActiproSoftware.UI.WinForms.Controls.SyntaxEditor.IntelliPrompt; using ActiproSoftware.UI.WinForms.Controls.SyntaxEditor.IntelliPrompt.Implementation; -using ActiproSoftware.UI.WinForms.Drawing; +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.Common { @@ -31,8 +20,6 @@ public static class SyntaxEditorHelper { public const string ThemesPath = "ActiproSoftware.ProductSamples.SyntaxEditorSamples.Languages.Themes."; public const string XmlSchemasPath = "ActiproSoftware.ProductSamples.SyntaxEditorSamples.Languages.XmlSchemas."; - private static bool isDarkThemeActive; - /// /// Adds common "System" assembly references to a .NET to enable IntelliPrompt /// for commonly used types. @@ -167,55 +154,5 @@ public static ICodeSnippetFolder LoadSampleVBCodeSnippetsFromResources() { return rootFolder; } - /// - /// Updates the image set for a theme change. - /// - /// The color scheme used to determine light or dark intent. - public static void UpdateImageSetForThemeChange(IWindowsColorScheme colorScheme) { - CommonImageSourceProvider.DefaultImageSet = colorScheme.IsDarkColorScheme() - ? CommonImageSet.MetroDark - : CommonImageSet.MetroLight; - } - - /// - /// Updates the highlighting style registry for a theme change. - /// - /// The color scheme used to determine light or dark intent. - public static void UpdateHighlightingStyleRegistryForThemeChange(IWindowsColorScheme colorScheme) { - var oldIsDarkThemeActive = isDarkThemeActive; - isDarkThemeActive = colorScheme.IsDarkColorScheme(); - - if (isDarkThemeActive != oldIsDarkThemeActive) { - // Unregister all classification types - var classificationTypes = AmbientHighlightingStyleRegistry.Instance.ClassificationTypes.ToArray(); - foreach (var classificationType in classificationTypes) - AmbientHighlightingStyleRegistry.Instance.Unregister(classificationType); - - // Re-register common classification types for general display (plain text, margins, etc.) and add-ons (which also include common ones like keywords, strings, etc.) - new DisplayItemClassificationTypeProvider().RegisterAll(); - new DotNetClassificationTypeProvider().RegisterAll(); - new JavaScriptClassificationTypeProvider().RegisterAll(); - new PythonClassificationTypeProvider().RegisterAll(); - new XmlClassificationTypeProvider().RegisterAll(); - new CompareFilesClassificationTypeProvider().RegisterAll(); - - // Load HTML, Markdown, XAML, and Formula languages just so their custom classification types get re-registered - LoadLanguageDefinitionFromResourceStream("Html.langdef"); - LoadLanguageDefinitionFromResourceStream("Markdown.langdef"); - LoadLanguageDefinitionFromResourceStream("Xaml.langdef"); - LoadLanguageDefinitionFromResourceStream("CustomFormula.langdef"); - // NOTE: Any other languages that are active would need to reload to ensure their custom classification types get re-registered as well - - if (isDarkThemeActive) { - // Load a dark theme, which has some example pre-defined styles for some of the more common syntax languages - string path = ThemesPath + "Dark.vssettings"; - using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(path)) { - if (stream != null) - AmbientHighlightingStyleRegistry.Instance.ImportHighlightingStyles(stream); - } - } - } - } - } } diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/PythonAddonPythonEditor/MainControl.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/PythonAddonPythonEditor/MainControl.cs index 9715a84..df102e2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/PythonAddonPythonEditor/MainControl.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/PythonAddonPythonEditor/MainControl.cs @@ -48,6 +48,7 @@ public MainControl() { // Load the Web Languages Add-on Python language var language = new PythonSyntaxLanguage(); codeEditor.Document.Language = language; + codeEditor.Document.FileName = "mymodule.py"; } ///////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.Designer.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.Designer.cs index b0a74b5..91b4a87 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.Designer.cs @@ -173,6 +173,7 @@ private void InitializeComponent() { this.indentationGuidesVisibleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.lineModificationMarksVisibleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.currentLineHighlightingEnabledToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.currentLineNumberHighlightingEnabledToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.delimiterHighlightingEnabledToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.autoCorrectEnabledToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator(); @@ -1338,6 +1339,7 @@ private void InitializeComponent() { this.indentationGuidesVisibleToolStripMenuItem, this.lineModificationMarksVisibleToolStripMenuItem, this.currentLineHighlightingEnabledToolStripMenuItem, + this.currentLineNumberHighlightingEnabledToolStripMenuItem, this.delimiterHighlightingEnabledToolStripMenuItem, this.autoCorrectEnabledToolStripMenuItem, this.toolStripMenuItem19, @@ -1469,13 +1471,23 @@ private void InitializeComponent() { // // currentLineHighlightingEnabledToolStripMenuItem // + this.currentLineHighlightingEnabledToolStripMenuItem.Checked = true; + this.currentLineHighlightingEnabledToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.currentLineHighlightingEnabledToolStripMenuItem.Name = "currentLineHighlightingEnabledToolStripMenuItem"; this.currentLineHighlightingEnabledToolStripMenuItem.Size = new System.Drawing.Size(254, 22); this.currentLineHighlightingEnabledToolStripMenuItem.Text = "Current Line Highlighting Enabled"; - // - // delimiterHighlightingEnabledToolStripMenuItem - // - this.delimiterHighlightingEnabledToolStripMenuItem.Checked = true; + // + // currentLineNumberHighlightingEnabledToolStripMenuItem + // + this.currentLineNumberHighlightingEnabledToolStripMenuItem.Checked = true; + this.currentLineNumberHighlightingEnabledToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; + this.currentLineNumberHighlightingEnabledToolStripMenuItem.Name = "currentLineNumberHighlightingEnabledToolStripMenuItem"; + this.currentLineNumberHighlightingEnabledToolStripMenuItem.Size = new System.Drawing.Size(254, 22); + this.currentLineNumberHighlightingEnabledToolStripMenuItem.Text = "Current Line Number Highlighting Enabled"; + // + // delimiterHighlightingEnabledToolStripMenuItem + // + this.delimiterHighlightingEnabledToolStripMenuItem.Checked = true; this.delimiterHighlightingEnabledToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.delimiterHighlightingEnabledToolStripMenuItem.Name = "delimiterHighlightingEnabledToolStripMenuItem"; this.delimiterHighlightingEnabledToolStripMenuItem.Size = new System.Drawing.Size(254, 22); @@ -2100,6 +2112,7 @@ private void InitializeComponent() { private System.Windows.Forms.ToolStripMenuItem indentationGuidesVisibleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem lineModificationMarksVisibleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem currentLineHighlightingEnabledToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem currentLineNumberHighlightingEnabledToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem delimiterHighlightingEnabledToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem autoCorrectEnabledToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem collapseToDefinitionsToolStripMenuItem; diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.cs index 677d7e7..7a251b3 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Demo/SdiCodeEditor/MainControl.cs @@ -216,6 +216,7 @@ private void LoadLanguage(string languageKey) { case "Python (in Python Language Add-on)": // Python Language Add-on Python language this.LoadLanguage(new ActiproSoftware.Text.Languages.Python.Implementation.PythonSyntaxLanguage()); + editor.Document.FileName = "mymodule.py"; break; case "RTF": this.LoadLanguageDefinitionFromFile("Rtf.langdef"); @@ -595,6 +596,10 @@ private void OnMainToolStripItemClicked(object sender, ToolStripItemClickedEvent currentLineHighlightingEnabledToolStripMenuItem.Checked = !currentLineHighlightingEnabledToolStripMenuItem.Checked; editor.IsCurrentLineHighlightingEnabled = currentLineHighlightingEnabledToolStripMenuItem.Checked; break; + case nameof(currentLineNumberHighlightingEnabledToolStripMenuItem): + currentLineNumberHighlightingEnabledToolStripMenuItem.Checked = !currentLineNumberHighlightingEnabledToolStripMenuItem.Checked; + editor.IsCurrentLineNumberHighlightingEnabled = currentLineNumberHighlightingEnabledToolStripMenuItem.Checked; + break; case nameof(delimiterHighlightingEnabledToolStripMenuItem): delimiterHighlightingEnabledToolStripMenuItem.Checked = !delimiterHighlightingEnabledToolStripMenuItem.Checked; editor.IsDelimiterHighlightingEnabled = delimiterHighlightingEnabledToolStripMenuItem.Checked; @@ -942,21 +947,21 @@ private void SetColorScheme(WindowsColorSchemeType colorSchemeType) { // Configure the editor with the per-instance renderer editor.Renderer = renderer; - // Ensure symbol selector is refreshed - symbolSelector.Invalidate(); - // Update colors on this control to be consistent with the color scheme + // + // The color properties for SyntaxEditor.BackColor and SyntaxEditor.ForeColor + // are only used when the corresponding color properties of the "Plain Text" highlighting + // style are undefined (which is the default). var colorScheme = renderer.ColorScheme; editorPanel.BackColor = colorScheme.GetKnownColor(KnownColor.Control); editor.BackColor = colorScheme.GetKnownColor(KnownColor.Window); editor.ForeColor = colorScheme.GetKnownColor(KnownColor.WindowText); // Configure global image set and highlighting style registry for light/dark theme - SyntaxEditorHelper.UpdateImageSetForThemeChange(colorScheme); - SyntaxEditorHelper.UpdateHighlightingStyleRegistryForThemeChange(colorScheme); + SyntaxEditorThemeManager.ColorScheme = colorScheme; // Update the check status of menu items - bool isDarkTheme = colorScheme.IsDarkColorScheme(); + bool isDarkTheme = SyntaxEditorThemeManager.IsDarkThemeActive; lightThemeToolStripMenuItem.Checked = !isDarkTheme; darkThemeToolStripMenuItem.Checked = isDarkTheme; } @@ -981,8 +986,7 @@ public void NotifyUnloaded() { vbProjectAssembly.AssemblyReferences.Clear(); // Restore SyntaxEditor image set and highlighting style registry to match the global configuration - SyntaxEditorHelper.UpdateImageSetForThemeChange(UIRendererManager.ColorScheme); - SyntaxEditorHelper.UpdateHighlightingStyleRegistryForThemeChange(UIRendererManager.ColorScheme); + SyntaxEditorThemeManager.ColorScheme = null; } /// diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Assembly.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Assembly.langdef index 79c9fb7..a3227d2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Assembly.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Assembly.langdef @@ -6,36 +6,37 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Assembly' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - + + - + + - + - - - - - - - + + + + + + + - - - + + + ? ]]> - - - - + + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/BatchFile.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/BatchFile.langdef index b926c1e..ad5a4fd 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/BatchFile.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/BatchFile.langdef @@ -6,37 +6,37 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Batch File' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + + - + + - - - + - + - - - + + + - + - + - - - - + + + + \ ]]> - + - - + + - + - + - + - - + + - + - + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/C.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/C.langdef index 0b0ab59..46a07c9 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/C.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/C.langdef @@ -6,26 +6,27 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'C' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + - + @@ -35,205 +36,205 @@ Actipro Syntax Language Definition (.langdef) - - - - - - - - - + + + + + + + + + - - + + - + - + - - + + + - * / % && || &= |= ^= & | ~ ^ <<= >>= << >> <= < >= > ? ]]> - + - - + + - + - + - + - - - - - + + + + + - + - + - + - - - - - + + + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -242,28 +243,28 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + @@ -274,35 +275,35 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + - + - + - + - - + + - - - - - - - + + + + + + + + @@ -47,7 +48,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -219,7 +220,7 @@ Actipro Syntax Language Definition (.langdef) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Cpp.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Cpp.langdef index 46c426f..d3091f2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Cpp.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Cpp.langdef @@ -6,26 +6,27 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'C++' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + - + @@ -35,31 +36,31 @@ Actipro Syntax Language Definition (.langdef) - - - - - - - - - + + + + + + + + + - - + + - + - + - - + + * -> + - * / % && || &= |= ^= & | ~ ^ <<= >>= << >> <= < >= > ? :: .* ]]> - + - - + + - + - + - + - - - - - + + + + + - + - + - + - - - - - + + + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -245,28 +246,28 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + @@ -277,35 +278,35 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -25,25 +25,25 @@ Actipro Syntax Language Definition (.langdef) - + - - - + + + - + - + - + @@ -52,11 +52,11 @@ Actipro Syntax Language Definition (.langdef) - + - + @@ -65,19 +65,19 @@ Actipro Syntax Language Definition (.langdef) - - - + + + - + - + - + @@ -85,44 +85,44 @@ Actipro Syntax Language Definition (.langdef) - - - - + + + + - + - + - + - - - - + + + + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/CustomFormula.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/CustomFormula.langdef index 9ecda6c..d15640d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/CustomFormula.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/CustomFormula.langdef @@ -6,18 +6,19 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Formula' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + + + - + - - + @@ -51,15 +52,11 @@ Actipro Syntax Language Definition (.langdef) = != + - * / ]]> - - - + - + @@ -86,11 +83,7 @@ Actipro Syntax Language Definition (.langdef) = != + - * / ]]> - - - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ebnf.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ebnf.langdef index b879774..10311d3 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ebnf.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ebnf.langdef @@ -6,23 +6,23 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'EBNF' language created by Actipro Software LLC. - Copyright (c) 2009-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2009-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - + + + + + + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Html.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Html.langdef index ef0930e..11a46b7 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Html.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Html.langdef @@ -6,21 +6,21 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'HTML' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + @@ -31,7 +31,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -44,19 +44,19 @@ Actipro Syntax Language Definition (.langdef) - - - + + + - + - + - + @@ -65,11 +65,11 @@ Actipro Syntax Language Definition (.langdef) - + - + @@ -77,59 +77,59 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -142,14 +142,14 @@ Actipro Syntax Language Definition (.langdef) - + - + - + @@ -162,14 +162,14 @@ Actipro Syntax Language Definition (.langdef) - + - + - + @@ -179,7 +179,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -192,14 +192,14 @@ Actipro Syntax Language Definition (.langdef) - + - + - + @@ -209,7 +209,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -222,14 +222,14 @@ Actipro Syntax Language Definition (.langdef) - + - + - + @@ -239,7 +239,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -252,42 +252,42 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - + - + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/IniFile.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/IniFile.langdef index 3b64b2f..276becc 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/IniFile.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/IniFile.langdef @@ -6,82 +6,82 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'INI File' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - - + + + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Java.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Java.langdef index c423abb..2326849 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Java.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Java.langdef @@ -6,26 +6,27 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Java' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - + - + + + - + + - + @@ -33,31 +34,31 @@ Actipro Syntax Language Definition (.langdef) - - - - - - - - - + + + + + + + + + - - + + - + - + - - + + = >>= >>>= >>> >> > ? ^= ^ |= || | ~ ]]> - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/JavaScript.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/JavaScript.langdef index 54b4246..41ba7f9 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/JavaScript.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/JavaScript.langdef @@ -6,24 +6,25 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'JavaScript' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - + + - + @@ -31,117 +32,117 @@ Actipro Syntax Language Definition (.langdef) - - - - - - - - - + + + + + + + + + - - + + - + - - + + = >>= >>>= >>> >> > ? ^= ^ |= || | ~ ]]> - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Lua.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Lua.langdef index 231eac5..43c865d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Lua.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Lua.langdef @@ -6,26 +6,27 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Lua' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - + + + + + + + + - + @@ -33,21 +34,21 @@ Actipro Syntax Language Definition (.langdef) - - - - - - - - - + + + + + + + + + - + - - - + + + = > ]]> - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Markdown.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Markdown.langdef index 03767c6..63f6ce1 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Markdown.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Markdown.langdef @@ -6,24 +6,25 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Markdown' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - - - + + + + + + + + + + + + @@ -80,23 +81,24 @@ Actipro Syntax Language Definition (.langdef) + - + - + - + - + - + @@ -107,17 +109,17 @@ Actipro Syntax Language Definition (.langdef) - + - + - + @@ -125,69 +127,69 @@ Actipro Syntax Language Definition (.langdef) - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Msil.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Msil.langdef index 1953acb..1bf5295 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Msil.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Msil.langdef @@ -6,39 +6,40 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'MSIL' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - + + - + + - + - - - - - - - - - + + + + + + + + + - + - + - - - + + + ^ | ]]> - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Pascal.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Pascal.langdef index e57bd76..fab9ffe 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Pascal.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Pascal.langdef @@ -6,18 +6,19 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Pascal' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - + + @@ -27,79 +28,79 @@ Actipro Syntax Language Definition (.langdef) - + - - - - - + + + + + - + - - + + - - + + < = >= > ]]> - + - + - + - + - + - - + + - + - + - + - + - + - - + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Perl.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Perl.langdef index 02517d9..b9b8be1 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Perl.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Perl.langdef @@ -6,39 +6,39 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Perl' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - - + + - + - + - - - - - - - - - + + + + + + + + + - + - - + + - ... .. .= . /= / : << <=> <= < == => =~ = >= >> > ? x= \ ^= ^ |= || | ~ ]]> - + - + - - + + - + - + - + - - - + + + - + - + - + - - - + + + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Php.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Php.langdef index d8908d0..cbd98a8 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Php.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Php.langdef @@ -6,21 +6,21 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'PHP' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - + + + + - + @@ -326,7 +326,7 @@ Actipro Syntax Language Definition (.langdef) players = $players; + $this->players = $players; $this->greetPlayers(); # Greet the players. } } diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/PowerShell.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/PowerShell.langdef index 74e49a9..a154f8c 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/PowerShell.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/PowerShell.langdef @@ -6,58 +6,59 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'PowerShell' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - + + + + + + + - + - - - - - - - - - + + + + + + + + + - + - + - - - - + + + + - + > > ? @ | ]]> - + - - + + - + - + - + - - - + + + - + - + - + - - + + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Python.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Python.langdef index a51b9f2..10b4798 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Python.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Python.langdef @@ -6,137 +6,138 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Python' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - + + - - + + + + - + - - - - - - - - - - + + + + + + + + + + - + - - - + + + >= **= << >> <> <= < >= > ]]> - + - - - + + + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - +]]> \ No newline at end of file diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Rtf.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Rtf.langdef index 9681d81..4b04e1b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Rtf.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Rtf.langdef @@ -6,25 +6,25 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'RTF' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. Actipro Software LLC + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. Actipro Software LLC --> - + - - - + + + - - - - - + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ruby.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ruby.langdef index 248f4c5..9e8d45b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ruby.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Ruby.langdef @@ -6,25 +6,26 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Ruby' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - + + - - + + + + + - + @@ -40,7 +41,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -70,7 +71,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -98,7 +99,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -112,7 +113,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -125,7 +126,7 @@ Actipro Syntax Language Definition (.langdef) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Advanced.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Advanced.langdef index 70005a0..a5cd8c9 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Advanced.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Advanced.langdef @@ -6,16 +6,16 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Simple' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Basic.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Basic.langdef index 7596484..fdbf3c7 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Basic.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Simple-Basic.langdef @@ -6,18 +6,19 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'Simple' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + + @@ -44,7 +45,7 @@ Actipro Syntax Language Definition (.langdef) == != = + - * / ]]> - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Sql.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Sql.langdef index a07e02f..9cd817b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Sql.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Sql.langdef @@ -6,38 +6,38 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'SQL' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + - + - - - - - + + + + + - + - + < >= <= <> != !> !< ]]> - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VB.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VB.langdef index 3d88e7f..7366387 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VB.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VB.langdef @@ -6,21 +6,22 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'VB' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + @@ -62,7 +63,7 @@ Actipro Syntax Language Definition (.langdef) - + @@ -213,7 +214,7 @@ Actipro Syntax Language Definition (.langdef) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VBScript.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VBScript.langdef index 1f74188..95db809 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VBScript.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/VBScript.langdef @@ -6,59 +6,60 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'VBScript' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - + + + + - + - - - - - + + + + + - + - + - + - + - - + + < = >= > \ ^ ]]> - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xaml.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xaml.langdef index d215641..06b1424 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xaml.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xaml.langdef @@ -6,22 +6,22 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'XAML' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - - + + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xml.langdef b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xml.langdef index 5d2a0b7..46cf7ff 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xml.langdef +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Definitions/Xml.langdef @@ -6,21 +6,21 @@ Actipro Syntax Language Definition (.langdef) http://www.actiprosoftware.com 'XML' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Assembly.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Assembly.langproj index 6d125e5..bfd9e67 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Assembly.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Assembly.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Assembly' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - + + - + + @@ -64,7 +65,7 @@ Actipro Syntax Language Project (.langproj) - + ? ]]> diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/BatchFile.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/BatchFile.langproj index 22872d5..376f869 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/BatchFile.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/BatchFile.langproj @@ -6,19 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Batch File' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + + - + + - - - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/C.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/C.langproj index 1c99c51..475a867 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/C.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/C.langproj @@ -6,20 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'C' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + @@ -43,7 +44,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CSharp.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CSharp.langproj index 9ebba20..691b1d4 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CSharp.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CSharp.langproj @@ -6,22 +6,23 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'C#' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + + - - - - - - - + + + + + + + + @@ -47,7 +48,7 @@ Actipro Syntax Language Project (.langproj) - + @@ -219,7 +220,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Cpp.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Cpp.langproj index 352c995..f7ec76b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Cpp.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Cpp.langproj @@ -6,20 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'C++' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + @@ -43,7 +44,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Css.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Css.langproj index 8d1219a..90057d8 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Css.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Css.langproj @@ -6,16 +6,16 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'CSS' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CustomFormula.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CustomFormula.langproj index 667b2ee..3316a0d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CustomFormula.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/CustomFormula.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Formula' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + + @@ -49,7 +50,7 @@ Actipro Syntax Language Project (.langproj) = != + - * / ]]> - + @@ -80,7 +81,7 @@ Actipro Syntax Language Project (.langproj) = != + - * / ]]> - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Html.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Html.langproj index 7a4f9df..5f1f2d4 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Html.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Html.langproj @@ -6,21 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'HTML' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/IniFile.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/IniFile.langproj index 11acc3b..2b7f0c2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/IniFile.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/IniFile.langproj @@ -6,17 +6,17 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'INI File' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - - + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Java.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Java.langproj index 408e1cf..7bfefb3 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Java.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Java.langproj @@ -6,20 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Java' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - + - + + + - + + @@ -41,7 +42,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/JavaScript.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/JavaScript.langproj index b2ecc09..e94ea27 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/JavaScript.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/JavaScript.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'JavaScript' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - + + @@ -39,7 +40,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Lua.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Lua.langproj index 8dfeaf0..597726a 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Lua.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Lua.langproj @@ -6,20 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Lua' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - + + + + + + + + @@ -74,7 +75,7 @@ Actipro Syntax Language Project (.langproj) + - * / % ^ # == = ~= ::= <= < >= > ]]> - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Markdown.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Markdown.langproj index e4958e0..5fb8e9e 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Markdown.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Markdown.langproj @@ -6,24 +6,25 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Markdown' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - - - + + + + + + + + + + + + @@ -80,6 +81,7 @@ Actipro Syntax Language Project (.langproj) + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Msil.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Msil.langproj index 1fbd39e..1721070 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Msil.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Msil.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'MSIL' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + - + + - + + @@ -77,7 +78,7 @@ Actipro Syntax Language Project (.langproj) - + ^ | ]]> diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Pascal.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Pascal.langproj index de6a550..9cedc3a 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Pascal.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Pascal.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Pascal' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - + + @@ -44,7 +45,7 @@ Actipro Syntax Language Project (.langproj) - + - + - + - - + + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Php.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Php.langproj index 20dfeb1..47660b9 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Php.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Php.langproj @@ -6,21 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'PHP' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - + + + + - + @@ -326,7 +326,7 @@ Actipro Syntax Language Project (.langproj) players = $players; + $this->players = $players; $this->greetPlayers(); # Greet the players. } } diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/PowerShell.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/PowerShell.langproj index 309734d..a4f7312 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/PowerShell.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/PowerShell.langproj @@ -6,19 +6,20 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'PowerShell' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - + + + + + + + @@ -38,7 +39,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Python.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Python.langproj index 7eedfa2..4ed73bb 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Python.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Python.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Python' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - + + - - + + + @@ -38,7 +39,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Rtf.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Rtf.langproj index ccee42f..b76b6f4 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Rtf.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Rtf.langproj @@ -6,15 +6,15 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'RTF' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. Actipro Software LLC + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. Actipro Software LLC --> - + - - - + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Ruby.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Ruby.langproj index debb025..9e610d0 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Ruby.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Ruby.langproj @@ -6,19 +6,20 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Ruby' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - + + - - + + + + + @@ -40,7 +41,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Advanced.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Advanced.langproj index b88d463..98e5ca8 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Advanced.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Advanced.langproj @@ -6,16 +6,16 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Simple' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Basic.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Basic.langproj index 630981d..b467bbd 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Basic.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Simple-Basic.langproj @@ -6,18 +6,19 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'Simple' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + + @@ -44,7 +45,7 @@ Actipro Syntax Language Project (.langproj) == != = + - * / ]]> - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Sql.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Sql.langproj index 3c5be33..195741e 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Sql.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Sql.langproj @@ -6,21 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'SQL' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VB.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VB.langproj index ff8a976..bb8aeb6 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VB.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VB.langproj @@ -6,21 +6,22 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'VB' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - - + + + + + @@ -62,7 +63,7 @@ Actipro Syntax Language Project (.langproj) - + @@ -213,7 +214,7 @@ Actipro Syntax Language Project (.langproj) - + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VBScript.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VBScript.langproj index d871160..7a919c5 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VBScript.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/VBScript.langproj @@ -6,19 +6,20 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'VBScript' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - + - + - - - + + + + @@ -34,7 +35,7 @@ Actipro Syntax Language Project (.langproj) - + @@ -56,9 +57,9 @@ Actipro Syntax Language Project (.langproj) - + - - - - - - - - - - + + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Xml.langproj b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Xml.langproj index 59a2458..f11b1b7 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Xml.langproj +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/Languages/Projects/Xml.langproj @@ -6,21 +6,21 @@ Actipro Syntax Language Project (.langproj) http://www.actiprosoftware.com 'XML' language created by Actipro Software LLC. - Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. --> - + - - - - - - - - - + + + + + + + + + diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.Designer.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.Designer.cs index 85e5942..7ef150d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.Designer.cs @@ -26,7 +26,8 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainControl)); this.editor = new ActiproSoftware.UI.WinForms.Controls.SyntaxEditor.SyntaxEditor(); this.isHighlightingEnabledCheckBox = new System.Windows.Forms.CheckBox(); - this.contentTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.isLineNumberHighlightingEnabledCheckBox = new System.Windows.Forms.CheckBox(); + this.contentTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); this.headerFlowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel(); this.contentTableLayoutPanel.SuspendLayout(); this.headerFlowLayoutPanel.SuspendLayout(); @@ -59,6 +60,17 @@ private void InitializeComponent() { this.isHighlightingEnabledCheckBox.Text = "Is line highlighting enabled"; this.isHighlightingEnabledCheckBox.UseVisualStyleBackColor = true; this.isHighlightingEnabledCheckBox.CheckedChanged += new System.EventHandler(this.OnIsHighlightingEnabledCheckBoxCheckedChanged); + // + // isLineNumberHighlightingEnabledCheckBox + // + isLineNumberHighlightingEnabledCheckBox.AutoSize = true; + isLineNumberHighlightingEnabledCheckBox.Location = new System.Drawing.Point(178, 3); + isLineNumberHighlightingEnabledCheckBox.Name = "isLineNumberHighlightingEnabledCheckBox"; + isLineNumberHighlightingEnabledCheckBox.Size = new System.Drawing.Size(214, 19); + isLineNumberHighlightingEnabledCheckBox.TabIndex = 1; + isLineNumberHighlightingEnabledCheckBox.Text = "Is line number highlighting enabled"; + isLineNumberHighlightingEnabledCheckBox.UseVisualStyleBackColor = true; + isLineNumberHighlightingEnabledCheckBox.CheckedChanged += this.OnIsLineNumberHighlightingEnabledCheckBoxCheckedChanged; // // contentTableLayoutPanel // @@ -81,6 +93,7 @@ private void InitializeComponent() { this.headerFlowLayoutPanel.AutoSize = true; this.headerFlowLayoutPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.headerFlowLayoutPanel.Controls.Add(this.isHighlightingEnabledCheckBox); + this.headerFlowLayoutPanel.Controls.Add(isLineNumberHighlightingEnabledCheckBox); this.headerFlowLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.headerFlowLayoutPanel.Location = new System.Drawing.Point(13, 13); this.headerFlowLayoutPanel.Name = "headerFlowLayoutPanel"; @@ -105,6 +118,7 @@ private void InitializeComponent() { #endregion private UI.WinForms.Controls.SyntaxEditor.SyntaxEditor editor; private System.Windows.Forms.CheckBox isHighlightingEnabledCheckBox; + private System.Windows.Forms.CheckBox isLineNumberHighlightingEnabledCheckBox; private System.Windows.Forms.TableLayoutPanel contentTableLayoutPanel; private System.Windows.Forms.FlowLayoutPanel headerFlowLayoutPanel; } diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.cs index 4163129..08d4fe8 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.cs @@ -10,11 +10,11 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.CurrentL /// Provides the main user control for this sample. /// public partial class MainControl : UserControl { - + ///////////////////////////////////////////////////////////////////////////////////////////////////// // OBJECT ///////////////////////////////////////////////////////////////////////////////////////////////////// - + /// /// Initializes an instance of the MainControl class. /// @@ -28,11 +28,13 @@ public MainControl() { DisplayItemClassificationTypeProvider provider = new DisplayItemClassificationTypeProvider(); provider.RegisterAll(); - // This is how the style for the current line highlight can be retrieved for color customization - // var style = AmbientHighlightingStyleRegistry.Instance[provider.CurrentLine]; + // This is how the style for the current line or line number highlights can be retrieved for color customization + // var currentLineStyle = AmbientHighlightingStyleRegistry.Instance[provider.CurrentLine]; + // var currentLineNumberStyle = AmbientHighlightingStyleRegistry.Instance[provider.LineNumberCurrent]; // Initialize the UI to match the default editor properties isHighlightingEnabledCheckBox.Checked = editor.IsCurrentLineHighlightingEnabled; + isLineNumberHighlightingEnabledCheckBox.Checked = editor.IsCurrentLineNumberHighlightingEnabled; } ///////////////////////////////////////////////////////////////////////////////////////////////////// @@ -48,6 +50,15 @@ private void OnIsHighlightingEnabledCheckBoxCheckedChanged(object sender, EventA editor.IsCurrentLineHighlightingEnabled = isHighlightingEnabledCheckBox.Checked; } + /// + /// Occurs when the checkbox is checked or unchecked. + /// + /// The sender of the event. + /// A that contains the event data. + private void OnIsLineNumberHighlightingEnabledCheckBoxCheckedChanged(object sender, EventArgs e) { + editor.IsCurrentLineNumberHighlightingEnabled = isLineNumberHighlightingEnabledCheckBox.Checked; + } + ///////////////////////////////////////////////////////////////////////////////////////////////////// // PUBLIC PROCEDURES ///////////////////////////////////////////////////////////////////////////////////////////////////// @@ -59,7 +70,8 @@ protected override void RescaleConstantsForDpi(int deviceDpiOld, int deviceDpiNe if (!Program.IsControlFontScalingHandledByRuntime) { // Manually scale control fonts var manualFontControls = new Control[] { - isHighlightingEnabledCheckBox + isHighlightingEnabledCheckBox, + isLineNumberHighlightingEnabledCheckBox }; foreach (var control in manualFontControls) control.Font = DpiHelper.RescaleFont(control.Font, deviceDpiOld, deviceDpiNew); diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.resx b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.resx index 4bd359e..90f7c03 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.resx +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/CurrentLineHighlighting/MainControl.resx @@ -120,14 +120,25 @@ /* -This sample shows the current line highlighting feature, which renders -a highlight in the active view over the view line that contains the caret. +This sample shows two options for emphasizing the line in the active view +that contains the caret. + +Current line highlighting renders a border above and below the current +line with an optional background color. Set the SyntaxEditor.IsCurrentLineHighlightingEnabled property to true to activate it. The highlight color can be set via a style associated with the pre-defined DisplayItemClassificationTypes.CurrentLine classification type. +Current line number highlighting uses a different style in the line +number margin to render the current line. + +Set the SyntaxEditor.IsCurrentLineNumberHighlightingEnabled property to +true to activate it. The highlight color can be set via a style associated +with the pre-defined DisplayItemClassificationTypes.LineNumberCurrent +classification type. + */ body { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/ISimpleClassificationTypeProvider.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/ISimpleClassificationTypeProvider.g.cs index a8e4f55..5a4b2fc 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/ISimpleClassificationTypeProvider.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/ISimpleClassificationTypeProvider.g.cs @@ -8,7 +8,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public interface ISimpleClassificationTypeProvider { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleClassificationTypeProvider.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleClassificationTypeProvider.g.cs index 8525bf3..39cf8f8 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleClassificationTypeProvider.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleClassificationTypeProvider.g.cs @@ -14,7 +14,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleClassificationTypeProvider : ISimpleClassificationTypeProvider { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleExampleTextProvider.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleExampleTextProvider.g.cs index d60b105..759165b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleExampleTextProvider.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleExampleTextProvider.g.cs @@ -9,7 +9,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleExampleTextProvider : Object, IExampleTextProvider { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexer.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexer.g.cs index 43e55f7..98f1171 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexer.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexer.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleLexer : DynamicLexer { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexicalStateId.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexicalStateId.g.cs index 32bc976..2e564c2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexicalStateId.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleLexicalStateId.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleLexicalStateId : LexicalStateIdProviderBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleSyntaxLanguage.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleSyntaxLanguage.g.cs index 1e0568e..799660d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleSyntaxLanguage.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleSyntaxLanguage.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleSyntaxLanguage : SyntaxLanguage { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenId.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenId.g.cs index c78c507..d2a491f 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenId.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenId.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleTokenId : TokenIdProviderBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTagger.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTagger.g.cs index b59d8c0..ffe15af 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTagger.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTagger.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleTokenTagger : TokenTagger { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTaggerProvider.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTaggerProvider.g.cs index 1ea11be..f309965 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTaggerProvider.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03b/SimpleTokenTaggerProvider.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.542.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleTokenTaggerProvider : TaggerProviderBase, ICodeDocumentTaggerProvider { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03c/SimpleTokenTaggerProvider.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03c/SimpleTokenTaggerProvider.cs index d8aed72..b1a5ff0 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03c/SimpleTokenTaggerProvider.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted03c/SimpleTokenTaggerProvider.cs @@ -18,7 +18,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v10.2.530.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleTokenTaggerProvider : TaggerProviderBase, ICodeDocumentTaggerProvider { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/AssignmentStatement.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/AssignmentStatement.g.cs index a0dffba..ef1a63b 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/AssignmentStatement.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/AssignmentStatement.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class AssignmentStatement : Statement { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BinaryOperatorExpression.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BinaryOperatorExpression.g.cs index a2ca4b2..0badae1 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BinaryOperatorExpression.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BinaryOperatorExpression.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class BinaryOperatorExpression : Expression { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BlockStatement.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BlockStatement.g.cs index 9bb4eee..85adb5e 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BlockStatement.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/BlockStatement.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class BlockStatement : Statement { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/CompilationUnit.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/CompilationUnit.g.cs index 6a9a475..939d411 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/CompilationUnit.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/CompilationUnit.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class CompilationUnit : AstNodeBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Expression.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Expression.g.cs index d2ec330..a7a6059 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Expression.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Expression.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class Expression : AstNodeBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionAccessExpression.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionAccessExpression.g.cs index f25bba5..ceffc38 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionAccessExpression.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionAccessExpression.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class FunctionAccessExpression : Expression { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionDeclaration.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionDeclaration.g.cs index 8f40578..88970fc 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionDeclaration.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/FunctionDeclaration.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class FunctionDeclaration : AstNodeBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/LiteralExpression.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/LiteralExpression.g.cs index f8fcb53..866774d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/LiteralExpression.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/LiteralExpression.g.cs @@ -9,7 +9,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class LiteralExpression : Expression { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ParenthesizedExpression.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ParenthesizedExpression.g.cs index 36e39ad..97c99c1 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ParenthesizedExpression.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ParenthesizedExpression.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class ParenthesizedExpression : Expression { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ReturnStatement.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ReturnStatement.g.cs index 53e50da..29883dd 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ReturnStatement.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/ReturnStatement.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class ReturnStatement : Statement { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleAstNodeId.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleAstNodeId.g.cs index 785aeb7..3d0a20d 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleAstNodeId.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleAstNodeId.g.cs @@ -11,7 +11,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleAstNodeId : AstNodeIdProviderBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleName.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleName.g.cs index 40dcd9d..4efaa18 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleName.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/SimpleName.g.cs @@ -9,7 +9,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class SimpleName : Expression { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Statement.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Statement.g.cs index d38cd32..0766a49 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Statement.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/Statement.g.cs @@ -10,7 +10,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class Statement : AstNodeBase { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/VariableDeclarationStatement.g.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/VariableDeclarationStatement.g.cs index 64e0586..9b11a25 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/VariableDeclarationStatement.g.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GettingStarted04d/Ast/VariableDeclarationStatement.g.cs @@ -9,7 +9,7 @@ namespace ActiproSoftware.ProductSamples.SyntaxEditorSamples.QuickStart.GettingS /// /// This type was generated by the Actipro Language Designer tool v11.1.544.0 (http://www.actiprosoftware.com). /// Generated code is based on input created by Actipro Software LLC. - /// Copyright (c) 2001-2023 Actipro Software LLC. All rights reserved. + /// Copyright (c) 2001-2024 Actipro Software LLC. All rights reserved. /// public partial class VariableDeclarationStatement : Statement { diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GoToLineOverlay/GoToLineOverlayPane.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GoToLineOverlay/GoToLineOverlayPane.cs index 9da779a..19811f2 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GoToLineOverlay/GoToLineOverlayPane.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/GoToLineOverlay/GoToLineOverlayPane.cs @@ -34,8 +34,13 @@ public GoToLineOverlayPane(IEditorView view) this.SuspendLayout(); try { + #if NET7_0_OR_GREATER + // Use system font (so editor font isn't inherited) + this.Font = SystemFonts.MessageBoxFont; + #else // Use system font (so editor font isn't inherited) and scale to match the DPI of the editor - this.Font = DpiHelper.AutoScaleFont(SystemFonts.DefaultFont, DpiHelper.GetDeviceDpi(view.SyntaxEditor)); + this.Font = DpiHelper.AutoScaleFont(SystemFonts.MessageBoxFont, DpiHelper.GetDeviceDpi(view.SyntaxEditor)); + #endif this.BackColor = ColorScheme.GetKnownColor(KnownColor.Control); this.ForeColor = ColorScheme.GetKnownColor(KnownColor.ControlText); diff --git a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/PrintingOptions/MainControl.Designer.cs b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/PrintingOptions/MainControl.Designer.cs index d283e92..9a4913a 100644 --- a/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/PrintingOptions/MainControl.Designer.cs +++ b/Samples/SampleBrowser/ProductSamples/SyntaxEditorSamples/QuickStart/PrintingOptions/MainControl.Designer.cs @@ -49,6 +49,7 @@ private void InitializeComponent() { // editor // this.editor.AllowDrop = true; + this.editor.AreIndentationGuidesVisible = true; this.editor.AreWordWrapGlyphsVisible = true; this.contentTableLayoutPanel.SetColumnSpan(this.editor, 2); this.editor.Dock = System.Windows.Forms.DockStyle.Fill; diff --git a/Samples/SampleBrowser/Properties/AssemblyInfo.cs b/Samples/SampleBrowser/Properties/AssemblyInfo.cs index 7c9a055..58a24eb 100644 --- a/Samples/SampleBrowser/Properties/AssemblyInfo.cs +++ b/Samples/SampleBrowser/Properties/AssemblyInfo.cs @@ -11,7 +11,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Actipro Software LLC")] [assembly: AssemblyProduct("WinForms Controls Sample Browser")] -[assembly: AssemblyCopyright("Copyright (c) 2002-2023 Actipro Software LLC. All rights reserved.")] +[assembly: AssemblyCopyright("Copyright (c) 2002-2024 Actipro Software LLC. All rights reserved.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] @@ -29,5 +29,5 @@ // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("23.1.3.0")] -[assembly: AssemblyInformationalVersion("23.1.3.0 - 20230911")] +[assembly: AssemblyVersion("24.1.0.0")] +[assembly: AssemblyInformationalVersion("24.1.0.0 - 20240206")] diff --git a/Samples/SampleBrowser/Properties/licenses.licx b/Samples/SampleBrowser/Properties/licenses.licx index 006ba7e..1c216c5 100644 --- a/Samples/SampleBrowser/Properties/licenses.licx +++ b/Samples/SampleBrowser/Properties/licenses.licx @@ -1 +1 @@ -ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.WinForms, Version=23.1.3.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763 +ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.WinForms, Version=24.1.0.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763 diff --git a/Samples/SampleBrowser/SampleBrowser.csproj b/Samples/SampleBrowser/SampleBrowser.csproj index f4affd7..5bec83d 100644 --- a/Samples/SampleBrowser/SampleBrowser.csproj +++ b/Samples/SampleBrowser/SampleBrowser.csproj @@ -9,7 +9,7 @@ IMPORTANT NOTES ON VISUAL STUDIO DESIGNER: - * The first listed framework for multi-target projects will determine the Visual Studio designer support + * The first listed framework for multi-target projects will determine the Visual Studio designer support. * .NET Framework targets require the product's offline installer to run with the designer support option even when using NuGet package references. @@ -28,7 +28,7 @@ SampleBrowser - 23.1.2.0 + 24.1.0.0 ActiproSoftware @@ -63,13 +63,18 @@ - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/SampleBrowser/SampleBrowser/Documents/ReleaseHistory.html b/Samples/SampleBrowser/SampleBrowser/Documents/ReleaseHistory.html index cdb51af..84a6881 100644 --- a/Samples/SampleBrowser/SampleBrowser/Documents/ReleaseHistory.html +++ b/Samples/SampleBrowser/SampleBrowser/Documents/ReleaseHistory.html @@ -11,9 +11,128 @@
+

Version 24.1

+ + +

2/23/2024 - v24.1.0

+

Bars

+
    +
  • Added modern Visual Studio renderers.
  • +
  • Improved how MetroStatusBarRenderer draws the resize gripper. Added new StatusBarGripperLightColor and StatusBarGripperDarkColor properties to replace single StatusBarGripperForeColor property.
  • +
  • Improved toolbar separator rendering across multiple renderers to be more accurate.
  • +
  • Renamed VisualStudio2002BarRenderer as WindowsClassicBarRenderer.
  • +
  • Renamed Office2003BarRenderer as OfficeClassicBarRenderer.
  • +
  • Renamed VisualStudio2002StatusBarRenderer as WindowsClassicStatusBarRenderer.
  • +
  • Renamed VisualStudio2005StatusBarRenderer as VisualStudioClassicStatusBarRenderer.
  • +
  • Renamed Office2003StatusBarRenderer as OfficeClassicStatusBarRenderer.
  • +
+

Docking

+
    +
  • Added modern Visual Studio renderers.
  • +
  • Renamed VisualStudio2002DockRenderer as WindowsClassicDockRenderer.
  • +
  • Renamed VisualStudio2002DocumentWindowTabStripRenderer as WindowsClassicDocumentWindowTabStripRenderer.
  • +
  • Renamed VisualStudio2002ToolWindowTabStripRenderer as WindowsClassicToolWindowTabStripRenderer.
  • +
  • Renamed VisualStudio2005DockRenderer as VisualStudioClassicDockRenderer.
  • +
  • Renamed VisualStudio2005DocumentWindowTabStripRenderer as VisualStudioClassicDocumentWindowTabStripRenderer.
  • +
  • Renamed VisualStudio2005ToolWindowTabStripRenderer as VisualStudioClassicToolWindowTabStripRenderer.
  • +
  • Renamed Office2003DockRenderer as OfficeClassicDockRenderer.
  • +
  • Renamed Office2003DocumentWindowTabStripRenderer as OfficeClassicDocumentWindowTabStripRenderer.
  • +
  • Renamed Office2003ToolWindowTabStripRenderer as OfficeClassicToolWindowTabStripRenderer.
  • +
  • Renamed VisualStudioTabStripRenderer as VisualStudioTabStripRendererBase.
  • +
  • Deprecated all Visual Studio 2005 Beta 2 renderers with plans to remove in a future release.
  • +
+

Navigation

+
    +
  • Renamed Office2003NavigationBarRenderer as OfficeLunaNavigationBarRenderer.
  • +
  • Renamed Office2007NavigationBarRenderer as OfficeClassicNavigationBarRenderer.
  • +
+

SyntaxEditor

+
    +
  • Added native support to switch between light and dark themes using distinct color palettes for each theme intent.
  • +
  • Added SyntaxEditorThemeManager to simplify the process of switching between light and dark themes.
  • +
  • Added SyntaxEditor.IsCurrentLineNumberHighlightingEnabled feature that will render the current line number in a style defined by DisplayItemClassificationTypeProvider.LineNumberCurrent.
  • +
  • Added built-in Operator and Punctuation IClassificationType instances to ClassifictionTypes.
  • +
  • Added BuiltInClassificationTypesProvider that will automatically register highlighting styles for built-in IClassificationType instances defined in ClassificationTypes.
  • +
  • Added Punctuation classification type to sample language definitions (where appropriate).
  • +
  • Added DisplayItemClassificationTypes.WordWrapGlyph to separate the word wrap glyph color from the visible white space color.
  • +
  • Added MarkdownDeleted classification type and highlighting style to the free Markdown language project and definition files.
  • +
  • Added support for primary and secondary carets to render with different brushes based on corresponding highlighting styles.
  • +
  • Updated collapsible region foreground, current line background/border, delimiter matching background, and find match highlight background colors to render with a default opacity when configured with opaque colors.
  • +
  • Updated NavigableSymbolSelector to automatically invalidate itself when renderer-related properties of the assocaited SyntaxEditor control are changed.
  • +
  • Fixed word wrap glyphs not rendered in printer usage scenarios.
  • +
  • Fixed printer rendering when syntax highlighting was enabled and the editor was configured for use with a dark theme.
  • +
  • Changed the system font used for overlay panes to better support system text sizes and DPI scaling.
  • +
+
JavaScript Language Add-on
+
    +
  • Added Punctuation classification type.
  • +
  • Fixed Operator classification type not being applied.
  • +
+
.NET Languages Add-on
+
    +
  • Updated the C# parser grammar to support C# 9.0 syntax.
  • +
  • Updated the Roslyn extensions to use the latest Microsoft.CodeAnalysis.Compilers v4.8 NuGet package.
  • +
  • Improved resolver support for C# local functions.
  • +
  • Improved documentation comment display in IntelliPrompt to support 'para' and 'br' tags.
  • +
  • Added Punctuation classification type.
  • +
  • Fixed Operator classification type not being applied.
  • +
+
Python Language Add-on
+
    +
  • Added support for IntelliPrompt to use type hint annotations.
  • +
  • Improved the resolver's ability to resolve types within external modules that were defined in other modules.
  • +
  • Added Punctuation classification type.
  • +
  • Fixed Operator classification type not being applied.
  • +
+

Shared

+
    +
  • Added UIRendererManager.ColorSchemeChanged event that is raised when the UIRendererManager.ColorScheme property is changed.
  • +
  • Added several enhancements to the UIColor class with support for additional color types, grayscale conversion, and chromatic adaptation.
  • +
  • Renamed WindowsXPScrollBarRenderer as WindowsScrollBarRenderer.
  • +
+

Shared

+
    +
  • Fixed an issue in the nativer rendering logic related to clip rectangles.
  • +
+

All

+
    +
  • API documentation is based on assemblies that target .NET 6 (previously .NET Framework).
  • +
  • The Sample Browser application included with the installer changed target from .NET Framework 4.7.2 to .NET 6.
  • +
  • Removed official support for Visual Studio 2017 although users should still be able to continue using the IDE for their own applications. Sample Browser requires Visual Studio 2019 or newer.
  • +
  • Added new Visual Studio Blue color scheme and modern Visual Studio renderers.
  • +
  • Removed all previously deprecated "metro light" renderers that were replaced by the unified "metro" renderers that support both dark and light.
  • +
  • Renamed WindowsColorSchemeType.VisualStudio2005 and WindowsColorScheme.VisualStudio2005 as VisualStudioClassic.
  • +
  • Renamed all WindowsColorSchemeType.Office2007* and WindowsColorScheme.Office2007* values as OfficeClassic (e.g., Office2007Blue renamed as OfficeClassicBlue).
  • +
  • Renamed most WindowsColorSchemeType.WindowsXP* and WindowsColorScheme.WindowsXP* values as Luna (e.g., WindowsXPBlue renamed as LunaBlue). WindowsXPRoyale has been deprecated since it replicates other classic themes and will be removed in a future release.
  • +
+ +

+ + See release history for older versions +

+ +
+
+ +
+
+ +

Version 23.1

+

2/23/2024 - v23.1.4

+

SyntaxEditor

+
.NET Languages Add-on
+
    +
  • Fixed a C# grammar issue related to pattern expression parsing.
  • +
+
Python Language Add-on
+
    +
  • Improved the parsing of subscription expressions.
  • +
+ +

12/4/2023 - v23.1.3

Docking

    @@ -199,7 +318,7 @@

    All

-
+

Version 22.1

@@ -403,7 +522,7 @@

All

-
+

Version 21.1

@@ -558,7 +677,7 @@

All

-
+

Version 20.1

@@ -841,7 +960,7 @@

All

-
+

Version 18.1

@@ -918,7 +1037,7 @@

All

-
+

Version 16.1

@@ -964,7 +1083,7 @@
Web Languages Add-on
-
+

Version 14.1

@@ -1076,7 +1195,7 @@
Web Languages Add-on
-
+

Version 13.1

@@ -1145,7 +1264,7 @@
.NET Languages Add-on
-
+

Version 12.1

diff --git a/Samples/SampleBrowser/SampleBrowser/Models/ProductData.xml b/Samples/SampleBrowser/SampleBrowser/Models/ProductData.xml index 0e0faab..ef59726 100644 --- a/Samples/SampleBrowser/SampleBrowser/Models/ProductData.xml +++ b/Samples/SampleBrowser/SampleBrowser/Models/ProductData.xml @@ -58,7 +58,7 @@ - + @@ -71,7 +71,7 @@ - + diff --git a/Samples/SampleBrowser/SampleBrowser/RootForm.cs b/Samples/SampleBrowser/SampleBrowser/RootForm.cs index 292ed97..85d29d3 100644 --- a/Samples/SampleBrowser/SampleBrowser/RootForm.cs +++ b/Samples/SampleBrowser/SampleBrowser/RootForm.cs @@ -222,7 +222,7 @@ private void NavigateToProductFamily(ProductFamilyInfo familyInfo) { contentHeaderLabel.Text = familyInfo.Title; - this.UpdatePrimaryStatus("Copyright \u00A9 2002-2023 Actipro Software LLC"); + this.UpdatePrimaryStatus("Copyright \u00A9 2002-2024 Actipro Software LLC"); if (familyInfo.Path.EndsWith(".html", StringComparison.OrdinalIgnoreCase)) this.LoadBrowser(familyInfo.Path, familyInfo);