Draft
Conversation
Introduced WTGWinforms.sln with main, demo, and test projects. Added Demo app showcasing legacy WinForms controls (DataGrid, Menu, ToolBar, StatusBar, TreeView, etc.). Added System.Windows.Forms.Tests with comprehensive NUnit test suites for menu/window sizing, owner-draw, context menus, tooltips, DPI, and legacy behaviors. Added missing TreeNode.ContextMenu property for compatibility. Updated build infrastructure: Build.xml, DeploymentSetup.ps1, and isolated Demo build props/targets. Added/updated package references for NUnit, analyzers, coverlet, and bumped repo version to 0.0.25. Enabled NuGet packaging for System.Windows.Forms and set output to Bin folder. Ensured extensive demo and regression test coverage for WiseTech Global's WinForms fork.
Systematically convert all test classes and assertions from NUnit to xUnit. Remove all NUnit-specific attributes, packages, and usings. Add xUnit as a global using and update test project configuration to use xUnit for test discovery and execution. Refactor assertions and test structure to follow xUnit idioms. Update build and versioning files to remove NUnit references and ensure compatibility with xUnit.
Expanded test coverage for form window size calculation with menus: - Added cases for menu presence, item count, and removal - Verified sizing for empty menus, submenus, MDI, and non-top-level forms - Ensured immediate size update when menu removed pre-handle - Added assertions for DPI scaling consistency - Updated test project to reference Microsoft.NET.Test.Sdk and XUnitV3Extensions
Replaces binary-compatibility shims for MainMenu, Menu, MenuItem, and ContextMenu with real implementations based on .NET Framework 3.0. Integrates menu stack with Form, Control, and TreeNode, restoring event handling, popup/collapse, owner-draw, shortcuts, and merge behavior. Updates demo app to showcase menu features. Adds Win32 interop and documentation outlining porting strategy for legacy controls.
Implemented complete StatusBar and StatusBarPanel functionality, including panel management, layout, owner-draw, tooltips, and events. Replaced obsolete placeholders with real code and enums. Added demo form and designer for StatusBar, integrated launcher in menu stack demo, and provided comprehensive tests. Marked StatusBar porting as complete in documentation.
Legacy .NET Framework DataGrid and related types are ported and fully implemented, replacing previous stubs and shims. This includes cell/row rendering, editing, navigation, hit testing, accessibility, column/table style management, and event handling. Internal painting, layout, tooltip, and accessibility classes are added. Demo forms and designer code showcase DataGrid features. Legacy compat helpers and tracing switches are introduced. Comprehensive unit tests verify functionality. Obsolete HitTestInfo/HitTestType are removed. All new code is MIT licensed and pragma warnings are updated.
Introduce MainForm as a central launcher for all demo forms. Remove cross-demo launch buttons from MenuStackForm and DataGridForm, updating their descriptions and window titles. Change Program.cs to start with MainForm, streamlining demo access and improving user experience.
Ports .NET Framework ToolBar, ToolBarButton, and related types to the current codebase, restoring full binary and API compatibility. Removes stub/shim files and embeds the real ToolBarButtonCollection implementation. Adds native interop support and updates documentation. Enhances the ToolBarForm demo to exercise all features, including appearance and wrappable toggles. Introduces a comprehensive test suite for ToolBar and ToolBarButton. ToolBar controls now have full property, event, and Windows message handling, enabling legacy ToolBar functionality in modern Windows Forms apps.
… Tests projects with System.Windows.Forms.Legacy.Demo and System.Windows.Forms.Legacy.Tests. Adjusted project references and paths in .csproj files to match new structure. Made SubDataGrid class sealed in DataGridTests.cs. Removed DataGridForm.cs compile item from demo project.
Added build-release.yml for automated versioning, packaging, GitHub release creation, and NuGet publishing on master branch updates. Added build-test.yml for CI builds and test execution on push and PRs, with artifact upload for Release builds.
Added wtg-net10 to build-test.yml workflow triggers for push and pull_request events, allowing CI to run on both master and wtg-net10 branches.
Expanded CI triggers to include wtg-net10 branch for push and PR events. Limited build-test.yml matrix to Debug only. Removed Build.xml and DeploymentSetup.ps1, eliminating legacy build and deployment steps.
Expanded triggers to include push and pull_request events for both master and wtg-net10 branches, and added workflow_dispatch for manual runs. Previously, the workflow only ran on push to master.
Removed obsolete projects and folders from WinformsLegacy.sln, reorganizing remaining projects under a new "winforms" solution folder. Deleted all NUnit-related and Coverlet Collector package references from Directory.Packages.props, reflecting a move away from NUnit and Coverlet Collector for testing and coverage.
The workflow will no longer run automatically on pull requests to the 'master' and 'wtg-net10' branches.
Replaced automatic version increment with manual SemVer input and validation. Build, release, and NuGet push now use the provided version. Added --skip-duplicate to NuGet push to prevent errors for existing packages.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.