i forced winforms to do themes
Plugin API Version: 0.7.0
Everything was split into namespaces and now there's themes so this and 0.6.0 are probably not compatible
changes
-
'themes' section in settings:
- System
- Light
- Dark
- Blurred background
- Acrylic
- Extended frame
- Extended frame (dark)
-
DwmApi wrapper using P/Invoke
-
Code cleanups
-
a class called
ThemeableFormthat inherits fromForm. If you're making a plugin with winforms UI, all you need to do is inherit from this class and your form theme automatically -
Custom Messagebox implementation
CoolMessageBoxthat inherits fromThemeableForm, in the namespacelauncherdotnet.Launcher.Forms. To use it, just doCoolMessageBox.Show(text, caption, buttons, icon). I did my best to make this almost identical to the Windows MessageBox. -
Custom Inputbox implementation
CoolInputBoxthat that inherits fromThemeableForm, also inlauncherdotnet.Launcher.Forms. To use it, doCoolInputBox.Prompt(prompt, caption, defaultResponse, placeholder).Note that unlike the Visual Basic
Interaction.InputBox,CoolInputBoxreturns null string if the cancel button is clicked, in order to be able to distinguish between user putting empty string and user pressing cancel.
Also placeholder text is new -
Changed the text of "Install..." button to "Modify..." for clarity
-
Added searchbar
-
Add keyboard shortcuts
- Ctrl + Q → Close app
- Alt + 1 through Alt + 9 → Select visible index 0–8
- Up Arrow / Down Arrow → Focus games view
- Right Arrow → Focus Launch button
- Delete → Delete selected game
- F2 → Rename selected game
- Ctrl + O → Open selected game folder
- Ctrl + L / Ctrl + F → Focus search box
- NumPad 0 → Focus search box
- Ctrl + R / F5 → Refresh games view
- Ctrl + I → Install game
- Ctrl + , → Open settings
- Enter → Launch selected game
- Escape → Clear search and return focus to games view
-
Improved text rendering behavior, since transparent forms case anti-alias issues
-
Added logic to prevent re-applying theme inconsistently
-
Added design-time safety checks to avoid crashes in Visual Studio designer
-
Improved TabControl rendering using custom drawing
-
Improved ListView owner-draw handling and ensured it doesn’t double-subscribe events
-
Fixed anchoring issues in settings UI
-
Fixed updater incorrectly showing updates for newer versions
-
Improved CoolMessageBox sizing (caption width + tighter button margins)
-
Added CoolMessageBox sound playback
-
Optimized search performance via LauncherData caching
-
Improved game selection handling (index-based selection via Alt + number)
-
Throw on unexpected deletion failure
-
Improved data integrity checks when reading/writing launcher data
-
Improved application startup behavior
-
Added handling to keep theme changes consistent across multiple components
-
Fixed button border rendering inconsistencies across themes
-
Refactored project structure
-
Removed unused using directives (most of them)
Full Changelog: v0.5.1-alpha...v0.6.0-alpha