Work has begun to be done on moving the existing forms in the Paclink project in preparation for porting Paclink to Linux and macOS. So far, the following have been moved:
- DialogAGWEngine
- DialogPolling
- DialogSiteProperties
- Main
And the following remain:
- Bearing
- DialogAutoupdate
- DialogCallsignAccounts
- DialogChangePassword
- DialogPacketAGWChannels
- DialogPacketTNCChannels
- DialogPactorConnect
- DialogPactorTNCChannels
- DialogTacticalAccounts
- DialogTelnetChannels
- Terminal
- TerminalSettings
Basically, the following should be done for each form to be moved:
- Create two interfaces in Paclink.UI.Common: a "Backing" (e.g. view model) interface and a "Window" one (e.g. the actual form). For example, IMainWindow and IMainFormBacking. The methods and properties for each interface should be platform-agnostic.
- Create the implementation of the Backing interface in the Paclink project. This will effectively serve as the "view model" and will be what other code in that project calls into if needed.
- Move the form into Paclink.UI.Windows and update as needed to implement the Window interface from (1).
- Update WindowsUiPlatform.cs to allow creation of this form.
- Update code in the Paclink project to call
UserInterfaceFactory.GetUiSystem().DisplayForm() to display the newly moved form.
Once all remaining forms are moved, the next step will be to create a Paclink.UI.Maui project and port the forms in Paclink.UI.Windows to Maui.
Work has begun to be done on moving the existing forms in the Paclink project in preparation for porting Paclink to Linux and macOS. So far, the following have been moved:
And the following remain:
Basically, the following should be done for each form to be moved:
UserInterfaceFactory.GetUiSystem().DisplayForm()to display the newly moved form.Once all remaining forms are moved, the next step will be to create a Paclink.UI.Maui project and port the forms in Paclink.UI.Windows to Maui.