Windows Support and initial native GUI impl (wxWidgets)#14
Merged
SunightMC merged 4 commits intoAvdan-OS:native-rewritefrom Feb 24, 2026
Merged
Windows Support and initial native GUI impl (wxWidgets)#14SunightMC merged 4 commits intoAvdan-OS:native-rewritefrom
SunightMC merged 4 commits intoAvdan-OS:native-rewritefrom
Conversation
Merge pull request Avdan-OS#13 from SunightMC/native-rewrite
… into native-rewrite
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.
Adds native Windows support and a functional wxWidgets GUI. The core engine is now cross-platform and decoupled from the CLI, laying the groundwork for more advanced UI features in the future
Impl details:
Cross-Platform Port: Implemented raw disk access on Windows via Win32
CreateFileAand added a synchronous I/O bridge for compatibility across platformsDrive Enumeration Utility: Added a cross-platform utility to fetch physical disk metadata (model names/capacities) and identify removable media via
BusType(USB/SD/MMC) and sysfsAsynchronous I/O: Integrated
wxThreadin the GUI implementation to ensure the main event loop remains responsive during long-running write and verification passes64-bit Precision: Standardized all capacity reporting to 64-bit integers to prevent overflows on volumes larger than 512GB
Technical Changes:
Core Engine Decoupling: Refactored iso_operations.c and progress.c to use a callback-based progress system. This makes it so I can use the same C logic to power both the
imagerCLI andimager-guiBuild System: Updated CMakeLists.txt to automatically manage dependencies and handle both MSVC and MinGW-w64
Refactor to C++: Ported the GUI entry point (Used to be pure C in my previous prototype) to C++ to use wxWidgets' OO (ew) event system and thread management
Quick Note on the UI:
Please note that while the GUI is fully functional for writing and verifying, this is an initial implementation. The layout and overall aesthetics are not final and will be refined to match AvdanOS' branding in subsequent updates
P.S. Please ignore the weird commits in the history, I forgot to sync my fork before pushing these changes!