Overlapped window manager project

miniwin
Posts: 2
Joined: Mon Apr 05, 2021 4:19 pm

Overlapped window manager project

Postby miniwin » Mon Apr 05, 2021 4:45 pm

MiniWin is an open source royalty free overlapped window manager for small embedded devices with a touch screen. It has been ported to a variety of 32 bit processors and boards - ARM, RX, PIC32, Pi Zero, x86, ESP32 and 2 simulator targets. The ESP32 port has been available for a while and builds using the ESP32-IDF framework running on a DevKitC board. Following a request, it has now been ported to build in the Arduino IDE for the same board. It is of course still using much the same ESP32-IDF framework underneath.

There are 8 sample projects demonstrating all features of MiniWin. These are common to all hardware ports with only a small HAL layer and minimal target specific amount of code. 7 of these 8 example projects are available for the Arduino IDE port. The 8th will follow.

The LCD hardware used in this port is a cheap and readily available ILI9341 driven QVGA display with a touch screen and a SD card reader for the file handling example.

The window manager part of the codebase and its API is mature and unchanging. The same user interface code can be run on any of the targets including a Windows and Linux simulator.

There is also a code generator to generate the UI code from a JSON configuration file. This is a pre-compile time process, not a dynamic run time process. The code generator targets the Windows and Linux simulators and the Arduino IDE.

The source code layout of MiniWin does not fit in to the restrictive requirements of the Arduino IDE readily as the example projects all require source code and header files that are not in or under the sketch folder. To overcome this a configuration batch file is necessary that creates hard links to make the files appear in the right place. This is messy, but is a consequence of the way the Arduino IDE does things (the ESP-IDF framework copes with this source code layout fine). If using the code generator this configuration batch file is created for you.

MiniWin and its folder structure is moderately complex, although the API has been made as simple to use as possible. There is extensive documentation and many examples within the repo.

The repo is here...

https://github.com/miniwinwm/miniwinwm

There is a website here...

https://miniwinwm.wixsite.com/miniwinwm

Who is online

Users browsing this forum: Google [Bot] and 67 guests