DueGUI - Arduino Due Graphical User Interface, UTFT, SDI and Touch library.
DueGUI is a new library combining Henning Karlsen's UTFT and Touch libraries each already modified by CTE together with an SPI library from CTE. The combined library has then been further modified where some parts overlap and for compatibility.
The next stage was to add a complete graphical user interface or GUI. There are some basic drawing and text routines built into UTFT but I wanted something a lot more usable. The DueGUI library works on a set of objects which the user defines on a per page basis and then the library manages these objects.
To make it easier I will use the first post of the thread in order to keep people up to date with the library.
I released version 0.10 on 20/05/2013 as a working alpha test version after telling people about it two weeks earlier.
Downloads:
Current version of library: 0.13
www.cowasaki.co.uk/DueGUI/DUEGUI_013.zip
Current version of manual: 0.13
www.cowasaki.co.uk/DueGUI/DueGUI_0_13.pdf
Demonstation video now available:
Youtube
Current specifications:
Hardware support:
- UTFT
- Touch
- SPI EEPROM
- CTE UTFT shield (or alternative)
Interrupt driven GUI environment with dozens of functions and features (see manual for full list but redrawing all object/selected ones/testing all or single buttons etc etc
with the following Objects (so far - many more being added).
- Panel (Box with options for text size, colour and location. Options for border and background colour.)
- Label (Simple text placed on screen with options for colour, size, location etc
- Button (All the options of Panel and Label plus options to make the button change colour as pressed etc
- Check boxes ( traditional box, y/n, yes/no
- Cycle box (each click cycles through a range of numerical values)
- Analogue clock (with several variations and options all of which automatically update)
- Digital time label (with options and automatically updating)
- Digial date label (with options and automatically updating)
- Text input (with options of a panel with label and box or simple text)
- Graphical image (from EEPROM or data at the moment but from SDcard soon
- Shape (wire frame and solid shapes which are fully user definable.
- Progress bar (with various options including vertical and horizontal
- Cycle text box (use a String array for list of options)
- Image button (multiple option image button - normal image, click image and alternative image)
Version history:
Version 0.10 is the initial release giving:
Hardware support:
- UTFT
- Touch
- SPI EEPROM
- CTE UTFT shield (or alternative)
Interrupt driven GUI environment with the following Objects.
- Panel (Box with options for text size, colour and location. Options for border and background colour.)
- Label (Simple text placed on screen with options for colour, size, location etc
- Button (All the options of Panel and Label plus options to make the button change colour as pressed etc
- Check boxes ( traditional box, y/n, yes/no
- Cycle box (each click cycles through a range of numerical values)
- Analogue clock (with several variations and options all of which automatically update)
- Digital time label (with options and automatically updating)
- Digial date label (with options and automatically updating)
- Text input (with options of a panel with label and box or simple text)
- Graphical image (from EEPROM or data at the moment but from SDcard soon
- Shape (wire frame and solid shapes which are fully user definable.
Version 0.11
Several minor bug fixes
addition of object - Progress bar (vertical and horizontal with option of automatic change in colour for parts of the bar over a certain value)
Version 0.12
Bug fixes:
- FIXED: Popup keyboard debounce added and working.
- FIXED: On occasion screen goes haywire when analogue clock drawn.
- FIXED: Spurious values from calibration screen sometimes appear on the main menu.
Changes:
- ADDITION: showCalibration() - This shows the calibration screen with no further code with a new "SAVE" button which will soon write the calibration data to a special data sector within the EEPROM of the screen.
- CHANGE: Addition of two new functions HandleShowButtons(int URN) & HandleShowLoopStuff() - these functions pass control to the library during the loop function and button handler allowing the library to create it's own objects and handle them.
- CHANGE: Removal of the calibration screen code from the demo program and switch to using the showCalibration() function which does the same thing.
Version 0.13
Changes:
- ADDITION: Object - Image Button - with optional click image and alt image for on-off-on type button
- ADDITION: Object - Cycle text button - like cycle button but you supply a String array for the list.
- ADDITION: Shape - Line