-
Notifications
You must be signed in to change notification settings - Fork 10
Merge Vanara Jñāna v1.2661 Release Candidate
#16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: nullableenabled
Are you sure you want to change the base?
Changes from all commits
e21b4df
7675772
8393cdf
be98187
ed2211f
c335430
2dc1b76
3385fe7
804f3be
897ef41
e97acfc
c7020e1
7a2cd13
11913c5
661b020
1c4ab54
97aa645
0a158bd
4864b04
40ede34
371f03b
86d20a1
bfc0b7c
0701e64
a57d42a
d5f9a52
a8c01b6
a0ac75f
0eb9fc4
b1155b8
a7ee956
cd86e6d
d387c14
afeb242
f4c0529
cb28360
7834803
bffe61e
a75830a
0a1f5e9
2e0e340
2cf269e
0e14be3
156e96b
37030c7
85dee8c
ef0bd03
75405bd
633e9ff
1fe462f
a980cc4
84b526e
c3a0859
752d68e
2d94ccc
077f4ff
c86dc2d
06214d4
6c97b51
eb715d4
91265de
31d38de
f6789c4
8c2038b
3e05acf
39cb0bb
59bdcf4
0ac6a4f
11ce86c
6de08db
75395d4
b0286d9
4be39ad
2b71f0f
87424aa
f3a2609
2b6a36d
7ace691
cd01822
7e5c254
df27bcc
74cb40b
1002591
b0a64d6
a023922
73fc56b
dcbadd5
eb67c0a
838e34f
5492fb6
9649429
744d6d3
9725d58
59bf750
74f7082
ce95bea
a2e2260
d8676cd
3b7ffd2
cab3bd6
da0e656
1ce2cf8
3812cf8
a7e3c98
644b85e
84db2d7
8d0b7d8
707d7c5
ee1e6ef
555bc95
17f2e52
c921847
2bb936f
d33b024
6c8af8c
33ca4af
e2b32fd
01fb554
9bdf236
158e787
4c2a99c
b49850e
7e04135
cc6c588
f60f01e
14b5399
8e4fb8b
11b3cdc
733b748
adfd2a3
0bff77c
a8ab8d0
faae182
3ed67bd
4ac10a6
0d190c4
8f43682
31bd2ed
50c5625
2ced5a8
feed48c
73fa37c
32893be
81e06ba
c2b6c92
02085e5
38dcb86
f7d3e08
f0d8ae2
f128377
7e68457
17d0fd9
6e56423
1da5fbd
c09c521
1e5f8a6
c50d309
5b81ddb
5e1e13a
f193913
be763a7
7a4d964
7ac2ae8
d9c8be1
a2c5b1f
342d835
2cf23bd
8b3f09b
6526ef4
334678b
8388954
73c6874
49d49ad
765c263
22c8a6a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,23 +8,27 @@ | |
| <ItemGroup> | ||
| <PackageVersion Include="AvalonEdit" Version="6.3.1.120" /> | ||
| <PackageVersion Include="CommandLineParser" Version="2.9.1" /> | ||
| <PackageVersion Include="CommunityToolkit.Mvvm" Version="8.1.0" /> | ||
| <PackageVersion Include="ConEmu.Control.WinForms" Version="1.21.9.5" /> | ||
| <PackageVersion Include="DirectShowLib.Standard" Version="2.1.0" /> | ||
| <PackageVersion Include="Markdig" Version="0.44.0" /> | ||
| <PackageVersion Include="Microsoft.Direct3D.D3D12" Version="1.619.1" /> | ||
| <PackageVersion Include="Microsoft.Extensions.Hosting" Version="6.0.1" /> | ||
| <PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" /> | ||
| <PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" /> | ||
| <PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.2.0" /> | ||
| <PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.7705" /> | ||
| <PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.26100.7705" /> | ||
| <PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.8.260209005" /> | ||
| <PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.5.250108004" /> | ||
| <PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" /> | ||
| <PackageVersion Include="Newtonsoft.Json" Version="13.0.1" /> | ||
| <PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" /> | ||
| <PackageVersion Include="System.Data.OleDb" Version="10.0.4" /> | ||
| <PackageVersion Include="System.Drawing.Common" Version="10.0.4" /> | ||
| <PackageVersion Include="System.Management" Version="10.0.4" /> | ||
| <PackageVersion Include="Vanara.BITS" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.CodeGen" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.Core" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.Core" Version="4.2.1" /> | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Vanara.Core needs to be the same version as all the other Vanara libraries. Please remove this change before I merge.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sorry, my fault. was not intended...
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ...current config: |
||
| <PackageVersion Include="Vanara.DirectoryServices" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.Library" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.PInvoke.AclUI" Version="$(VanaraVer)" /> | ||
|
|
@@ -110,5 +114,6 @@ | |
| <PackageVersion Include="Vanara.Windows.Forms" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.Windows.Shell" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="Vanara.Windows.Shell.Common" Version="$(VanaraVer)" /> | ||
| <PackageVersion Include="WinUIEx" Version="2.3.2" /> | ||
| </ItemGroup> | ||
| </Project> | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this file needed for your project? I'm ok leaving it, but it will then build on github after each commit.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, it is NOT needed. The solution actually not even has It would be nice you could integrate Jnana's solution into the whole package. Especially, since I can't build most of the ClassicSamples yet with that old base main branch this Repo is based on. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| name: Build WinUI 3 App | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ main ] | ||
| pull_request: | ||
| branches: [ main ] | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: windows-latest | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: 8.0.x | ||
|
|
||
| - name: Restore dependencies | ||
| run: dotnet restore | ||
|
|
||
| - name: Build solution | ||
| run: dotnet build --configuration Release --no-restore | ||
|
|
||
| - name: Publish (optional for unpackaged) | ||
| if: ${{ false }} # set to true if you want publish output | ||
| run: dotnet publish -c Release |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,78 @@ | ||
| <Application | ||
| x:Class="ClassicSamplesBrowser.App" | ||
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | ||
| xmlns:system="using:System" | ||
| xmlns:ui="using:Microsoft.UI.Xaml" | ||
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> | ||
| <Application.Resources> | ||
| <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/> | ||
| </Application.Resources> | ||
| <!--<ResourceDictionary> | ||
| <ResourceDictionary.MergedDictionaries> | ||
| <XamlControlsResources/> | ||
| <ResourceDictionary Source="Styles/NavigationView/NavigationView.xaml"/> | ||
| <ResourceDictionary Source="Styles/NavigationView/NavigationViewItem.xaml"/> | ||
| <ResourceDictionary Source="Styles/NavigationView/NavigationViewItemPresenter.xaml"/> | ||
| <ResourceDictionary Source="Styles/NavigationView/NavigationViewItemSeparator.xaml"/> | ||
| </ResourceDictionary.MergedDictionaries> | ||
| <CornerRadius x:Key="ControlCornerRadius">4</CornerRadius> | ||
| <SolidColorBrush x:Key="MicaBaseAltFillColorDefaultBrush" Color="{ThemeResource SystemBaseLowColor}" /> | ||
| <SolidColorBrush x:Key="MicaBaseFillColorDefaultBrush" Color="{ThemeResource SystemBaseMediumColor}" /> | ||
| <SolidColorBrush x:Key="MicaBaseFillColorSecondaryBrush" Color="{ThemeResource SystemBaseHighColor}" /> | ||
| <SolidColorBrush x:Key="TabViewButtonBackground" Color="{ThemeResource SystemBaseLowColor}" /> | ||
| <SolidColorBrush x:Key="TabViewButtonForeground" Color="{ThemeResource SystemBaseMediumColor}" /> | ||
| <SolidColorBrush x:Key="TabViewScrollButtonBackground" Color="{ThemeResource SystemBaseLowColor}" /> | ||
| <SolidColorBrush x:Key="TabViewScrollButtonForeground" Color="{ThemeResource SystemBaseMediumColor}" /> | ||
| <system:Double x:Key="TabViewItemAddButtonFontSize">14</system:Double> | ||
| <system:Double x:Key="TabViewItemScrollButtonFontSize">14</system:Double> | ||
| </ResourceDictionary>--> | ||
|
|
||
| </Application> | ||
|
|
||
|
|
||
|
|
||
| <!--<Style TargetType="TabViewItem"> | ||
| <Setter Property="Template"> | ||
| <Setter.Value> | ||
| <ControlTemplate TargetType="TabViewItem"> | ||
| <Grid x:Name="RootGrid" Background="{TemplateBinding Background}"> | ||
| <Grid.ColumnDefinitions> | ||
| <ColumnDefinition /> | ||
| <ColumnDefinition Width="Auto" /> | ||
| </Grid.ColumnDefinitions> | ||
| <ContentPresenter x:Name="HeaderContentPresenter" Grid.Column="0" Content="{TemplateBinding Header}" Margin="12,0,12,0" VerticalAlignment="Center" /> | ||
| <Button x:Name="CloseButton" Grid.Column="1" Width="28" Height="28" Margin="0,0,4,0" VerticalAlignment="Center"> | ||
| <SymbolIcon Symbol="Cancel" /> | ||
| </Button> | ||
| </Grid> | ||
| <ControlTemplate.Triggers> | ||
| <Trigger Property="IsSelected" Value="True"> | ||
| <Setter TargetName="RootGrid" Property="Background" Value="{ThemeResource SystemControlHighlightAccentBrush}" /> | ||
| <Setter TargetName="HeaderContentPresenter" Property="Foreground" Value="White" /> | ||
| </Trigger> | ||
| </ControlTemplate.Triggers> | ||
| </ControlTemplate> | ||
| </Setter.Value> | ||
| </Setter> | ||
| </Style> | ||
| <Style TargetType="TabView"> | ||
| <Setter Property="Template"> | ||
| <Setter.Value> | ||
| <ControlTemplate TargetType="TabView"> | ||
| <Grid> | ||
| <Grid.RowDefinitions> | ||
| <RowDefinition Height="Auto" /> | ||
| <RowDefinition Height="*" /> | ||
| </Grid.RowDefinitions> | ||
| <StackPanel Orientation="Horizontal" Grid.Row="0" Background="{ThemeResource MicaBaseAltFillColorDefaultBrush}"> | ||
| <TabViewListView x:Name="TabListView" ItemsSource="{TemplateBinding TabItems}" SelectedItem="{TemplateBinding SelectedItem}" SelectionMode="Single" IsTabStop="False" /> | ||
| <Button x:Name="AddButton" Width="32" Height="32" Margin="4" VerticalAlignment="Center"> | ||
| <SymbolIcon Symbol="Add" /> | ||
| </Button> | ||
| </StackPanel> | ||
| <ContentPresenter Grid.Row="1" Content="{TemplateBinding SelectedContent}" Margin="0" /> | ||
| </Grid> | ||
| </ControlTemplate> | ||
| </Setter.Value> | ||
| </Setter> | ||
| </Style>--> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| using Microsoft.UI.Windowing; | ||
| using Microsoft.UI.Xaml; | ||
| //using LaunchActivatedEventArgs = Windows.ApplicationModel.Activation.LaunchActivatedEventArgs; | ||
|
|
||
| namespace ClassicSamplesBrowser; | ||
|
|
||
| public partial class App : Application | ||
| { | ||
| private MainWindow? _mainWindow; | ||
|
|
||
| public App() | ||
| { | ||
| InitializeComponent(); | ||
| // TODO: AppWindowTitleBar.SetIcon("Assets/VanaraMonkey.png"); | ||
| // TODO: AppWindowTitleBar.SetDragRegion(new Rect(0, 0, 100, 32)); | ||
| } | ||
| private MainWindow? GetOrCreateMainWindow(bool allowInitialCreation = false) | ||
| { | ||
| if (_mainWindow == null && allowInitialCreation) | ||
| { | ||
| _mainWindow = new MainWindow | ||
| { | ||
| // ExtendsContentIntoTitleBar = true | ||
| }; | ||
|
|
||
| // var titleBar = _mainWindow.AppWindow.TitleBar; | ||
| // _mainWindow.SetTitleBar(MyDragRegion); | ||
| // TODO: titleBar.SetIcon("Assets/VanaraMonkey.png"); | ||
| } | ||
| // = //new Windows.Graphics.SizeInt32(1200, 800); | ||
| //_Window.AppWindow.Size... | ||
|
|
||
|
|
||
|
|
||
| return _mainWindow; | ||
| } | ||
|
|
||
| protected override void OnLaunched(LaunchActivatedEventArgs args) | ||
| { | ||
| GetOrCreateMainWindow(true)?.Activate(); | ||
| } | ||
| } |
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| # WinUI Classic Samples Browser \ Docs | ||
|
|
||
| ## Content of this folder | ||
|
|
||
| ### WinForms Sampler | ||
| [Download Sampler.zip](./Sampler.zip) | ||
|
|
||
| See [Impact of .net runtime when dealing with low-level Windows-Messages, follow-up: Classic Samples Browser #606](https://github.com/dahall/Vanara/discussions/606#discussioncomment-16492844) discussion. | ||
|
|
||
| ### docs.assets folder - various assets used for documentation files |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,143 @@ | ||
| # Vanara Jñāna | ||
|
|
||
| *A Knowledge Explorer for the Vanara Windows API Library* | ||
|
|
||
| Vanara Jñāna is an interactive, WinUI 3–based explorer for the **Vanara** library. | ||
| It provides a unified interface to browse APIs, inspect Shell objects, explore samples, and understand how the Vanara toolkit maps to the Windows platform. | ||
|
|
||
| The goal of Jñāna is to make the Vanara ecosystem more accessible — for contributors, maintainers, and developers who want to understand the structure and capabilities of the library. | ||
|
|
||
| --- | ||
|
|
||
| ## ✨ Features | ||
|
|
||
| - **API Explorer** | ||
| Navigate Vanara namespaces, types, functions, constants, and structures. | ||
|
|
||
| - **Shell & File Explorer Integration** | ||
| Visualize Shell items, folders, PIDLs, and related COM structures using Vanara’s Shell32 bindings. | ||
|
|
||
| - **Samples Browser** | ||
| Browse runnable code samples demonstrating how to use Vanara APIs in real scenarios. | ||
|
|
||
| - **WinUI 3 Interface** | ||
| Modern, fluent UI with navigation, search, and responsive layout. | ||
|
|
||
| - **Extensible Architecture** | ||
| Designed to grow with the Vanara library — new modules can be added without restructuring the core. | ||
|
|
||
| --- | ||
|
|
||
| ## 🧱 Technology Stack | ||
|
|
||
| - **WinUI 3 / Windows App SDK 1.6** | ||
| - **.NET 8** | ||
| - **Vanara 4.x** | ||
| - **C#** | ||
| - **MVU/MVVM‑friendly architecture** | ||
|
|
||
| --- | ||
|
|
||
| ## 📁 Project Structure | ||
| ### Root: ̀ Vanara Jñāna | ||
| - App.xaml | ||
| - 📁 /Controls | ||
| - 📁 /Models | ||
| - 📁 /Pages | ||
| - ApiExplorerPage.xaml | ||
| - ShellExplorerPage.xaml | ||
| - SamplesPage.xaml | ||
| - SettingsPage.xaml | ||
| - 📁 /Services | ||
| - 📁 /ViewModels | ||
|
|
||
| --- | ||
|
|
||
| ## 🚀 Getting Started | ||
|
|
||
| ### Prerequisites | ||
| - Windows 11 | ||
| - Visual Studio 2022 (17.10+) | ||
| - Windows App SDK 1.6 | ||
| - .NET 8 SDK | ||
|
|
||
| ### Build & Run | ||
|
|
||
| ```powershell | ||
| git clone https://github.com/<your-repo>/Vanara.Jnana.git | ||
| cd Vanara.Jnana | ||
| dotnet build | ||
| dotnet run | ||
| ``` | ||
|
|
||
| # Roadmap | ||
|
|
||
| [ ] Full Shell namespace visualization | ||
|
|
||
| [ ] Integrated COM inspector | ||
|
|
||
| [ ] Live API search with fuzzy matching | ||
|
|
||
| [ ] Sample runner with output capture | ||
|
|
||
| [ ] Plugin system for community extensions | ||
|
|
||
| [ ] Themed UI (Light/Dark/Mica/Custom) | ||
|
|
||
| # 🤝 Contributing | ||
|
|
||
| Contributions are welcome! | ||
|
|
||
| Please open issues for bugs or feature requests, and submit pull requests for improvements. | ||
|
|
||
| If you want to add features, fix bugs, or improve documentation: | ||
|
|
||
| Fork the repository | ||
|
|
||
| Create a feature branch | ||
|
|
||
| Submit a Pull Request | ||
|
|
||
| Please follow the existing code style and include clear commit messages. | ||
|
|
||
| 📜 License | ||
|
|
||
| This project is licensed under the MIT License. | ||
| See LICENSE for details. | ||
|
|
||
| ---- | ||
| old version: | ||
| ---- | ||
|
|
||
| ## Introduction | ||
| This Repository is an example of [WinClassicSamples](https://github.com/dahall/WinClassicSamplesCS/) using the Vanara | ||
| libraries in a modern `WinUi 3` on `WinAppSDK` environment. | ||
|
|
||
| The original WinClassicSamples repository is a collection of samples that demonstrate the use of the Windows API in C#. | ||
|
|
||
| The goal is to demonstrate the use of the Vanara libraries in a side-by-side model with full featured modern WinUi environment. | ||
|
|
||
| This repository is intended to be a reference for developers who want to use the Vanara libraries in their own projects, and | ||
| to provide a starting point for those who want to learn how to use the Vanara libraries in a WinUI3 App. | ||
|
|
||
| #### Project Intent | ||
| Test and validate that the structures, methods and interfaces in Vanara using known code and outcomes. | ||
| Demonstrate the use of the Vanara libraries in a side-by-side model with the native Win32 API. | ||
|
|
||
| #### Getting Started | ||
| First, take a look at [Template Studio for WinUI (C#)](https://marketplace.visualstudio.com/items?itemName=TemplateStudio.TemplateStudioForWinUICs), | ||
| available through Visual Studio Marketplace: | ||
|
|
||
| > _Template Studio for WinUI accelerates the creation of new WinUI apps using a wizard-based UI._ | ||
| > | ||
| > Projects created with this extension contain well-formed, readable code and incorporate the latest development features while implementing proven patterns and leading practices. The generated code includes links to documentation and TODO comments that provide useful insight and guidance for turning the generated projects into production applications. | ||
| > | ||
| > To get started, install the extension, then select the corresponding Template Studio project template when creating a new project in Visual Studio. Name your project, then click Create to launch the Template Studio wizard. | ||
|
|
||
|
|
||
| # Resources | ||
| - [Vanara Git](https://github.com/dahall/Vanara) | ||
| - [WinClassicSamples using ``Vanara and WinForms`` Git](https://github.com/dahall/WinClassicSamplesCS) | ||
| - [Official WinUI3 on Microsoft.com](https://docs.microsoft.com/en-us/windows/apps/winui/winui3/) | ||
| - [Native Microsoft WinClassicSamples on GitHub](https://github.com/Microsoft/Windows-classic-samples) | ||
| - [Template Studio for WinUI (C#) on VisualStudio Marketplace](https://marketplace.visualstudio.com/items?itemName=TemplateStudio.TemplateStudioForWinUICs) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| <Project> | ||
| <ItemGroup> | ||
| <PackageVersion Include="Microsoft.Web.WebView2" /> | ||
| <PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.8.0" /> | ||
| </ItemGroup> | ||
| </Project> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please undo this change before I merge. The analyzers are part of what I'm testing with this solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, my fault. was not intended...