[Release] Leet's DUI Toolkit
Jul 25, 2024 5:21:27 GMT -8
Post by leet on Jul 25, 2024 5:21:27 GMT -8
I have created a set of tools to work DUI schemes with both Windows embedded UILANG and new DUI based projects.
Leet's DirectUI Notepad (Leet.UI.DuiKit.Notepad)
GUI tool for developing and previewing Direct UI XML files, written in C++ using DirectUI.
Traditionally DirectUI modifications or custom programs were made by trial and error. There was no easy way to get direct feedback from code. Painstakingly editing executable resources over and over again was common. With DirectUI Notepad this is no longer the case.
DUI XML code can be entered into the left pane and it will be compiled as you type it (Automatic compilation can be disabled if you prefer pressing a hotkey). The result is then rendered onto the right side of the window. This tool is designed as a playground for learning DUI XML. With immediate feedback and detailed error messages, it becomes very easy to build an intuition for DUI.
Leet's DirectUI Compiler (Leet.UI.DuiKit.Compiler.WinForms)
Simple tool for converting DUI Binary data into DUI XML and reverse, written using .NET WinForms.
The interface is very easy to use and quite self explanatory:
Leet.UI.DuiKit.Compiler
.NET library for compiling and decompiling DUI binary (DUIB) and DUI XML files. This serves as the backend for Leet's DUI Compiler.
The library exposes three classes:
- DuiBinaryData: Intermediary format used in conversion.
- DuiBinarySerializer: Can read and write DUIB data to and from any .NET streams.
- DuiXmlSerializer: Can read and write DUI XML data to and from any .NET streams.
Doing conversion using the library is extremely simple. Here's all that is required to convert DUIB into DUI XML:
using Leet.UI.DuiKit.Compiler;
DuiBinarySerializer binSerializer = new DuiBinarySerializer();
DuiXmlSerializer xmlSerializer = new DuiXmlSerializer();
DuiBinaryData duiData = binSerializer.Deserialize(inputStream);
xmlSerializer.Serialize(duiData, outputStream);
To add the library to your project, simply add the *Leet.UI.DuiKit.Compiler* NuGet package:
dotnet add package Leet.UI.DuiKit.Compiler
Releases and license
Releases can be found on GitHub here.
The project is licensed under the Simple Classic Theme license, version 1.0. It is extremely similar to the GNU GPLv3 license, except that you may not distribute modified executables or libraries that I release. Modifying source code and releasing builds of modified source code is allowed however, as long as proper credit (URL to original project) is given.