GUIslice 0.17.0

A lightweight GUI framework for embedded displays Design your GUI with a drag & drop builder, then apply the same code to a wide range of displays, libraries and controllers with the cross-platform Arduino framework supporting Windows, OS X and LINUX. Open source MIT license. Features: - Pure C library, no dynamic memory allocation - Widgets: text, images, buttons, checkboxes, radio buttons, sliders, keypad, listbox, radial controls, scrolling textbox / terminal, graphs, etc. plus extensions and multiple pages. Cross-platform GUIslice Builder application to generate GUI layouts Platform-independent GUI core currently supports: - Adafruit-GFX, TFT_eSPI, mcufriend, UTFT, SDL1.2, SDL2.0 Devices: - Raspberry Pi, Arduino, ESP8266 / NodeMCU, ESP32, M5stack, Teensy 3, Feather M0 (Cortex-M0), nRF52 (Cortex-M4F), LINUX, Beaglebone Black, STM32, Due, etc. Typical displays: - PiTFT, Adafruit TFT 3.5" / 2.8" / 2.4" / 2.2" / 1.44", FeatherWing TFT, OLED 0.96", mcufriend, BuyDisplay / EastRising 4.3" 5" 7", Waveshare, 4D Cape Display drivers include: - ILI9341, ST7735, SSD1306, HX8347D, HX8357, PCD8544, RA8875, ILI9341_t3, ILI9341_due - Dynamic display rotation Touchscreen control including: - STMPE610, FT6206, XPT2046, 4-wire, tslib, URTouch, Adafruit Seesaw - GPIO / pin / keyboard / Adafruit Seesaw control for non-touchscreen devices

Tags gui arduino embedded-systems user-interfaces cross-platform library hardware-driver c tft
License MITL
State development

Recent Releases

0.17.010 Oct 2021 15:05 minor feature: Add: Major update for external GUI navigation (pin, button, encoders) #348. Add: Calibration for capacitive displays #339, runtime config #363. Add: Examples for XPeyPad (WIO, M5Stack). Add: PlatformIO configuration. Add: Configuration for EastRising 3.5" Capacitive. Add: Support for ILI9488_JB, SSD1306 (I2C mode), XPT2046. Add: Changes for Soft SPI (SdFat v2) #320. Enhance: Consistent GUI control glow / focus / edit schemes. Enhance: Redraw optimizations #328. Enhance: TFT_eSPI loadFont optimizations #401. Enhance: XListbox, support large row counts #380, increased margins. Enhance: Support 4wire touch on ESP32 #297, STM #411. Enhance: Reduced memory footprint for trig lookups. Enhance: XProgress can change color dynamically. Enhance: XSlider can add snap points. Enhance: Improved error handling, display alignments. Change: Renamed some examples to differentiate "pin" control. Change: Separated m5stack and WIO examples. ToggleImgButton #325. Screen invalidation upon background color change. Compilation warnings. LINUX compilation (rClipRect). None.
0.16.009 Nov 2020 06:45 minor feature: Enhance: Utilize fast TFT_eSPI clip / viewport rendering. Enhance: Major updates for XKeypad, support of custom keyapds. Add: Support for PlatformIO. Add: transparency in image draw from RAM. Add: new configs (LCDGFX #248, ILI9226, SDL2). Change: Removed GUIslice_config_ard/linux.h. transparent text. pgmspace compatibility. compiler warnings (#248. toggle button rounded corners, swap left/right. GFX font offset. XGraph math ranges. GSLC_LOCAL_STR mode. Changes to the XKeyPad API may require updates to existing sketches that utilize the widget. Please refer to the XKeyPad Migration Notes for details.
0.15.024 Aug 2020 01:25 minor feature: Enhance: major updates improvements to the Builder (download separately from the GUIslice-Builder repo). Add: widget: XTogglebtn. Add: widget: XSeekbar. Add: Touch driver for RA8875_SUMO. Add: Display driver support for Wavershare_ILI9486 v2. Add: dynamic element moves #246. Add: background redraw for modeless dialogs #227. Add: dynamic updates for XListbox. Add: API for XKeyPadInputGet() to return string. color conversion #219. XSlider range #238. pin-sharing with 4-wire touch (Due, Nano 33 IOT). compilation warnings. Enhance: optimize redraw for ElemSetCol, ElemSetGlowCol. Change: API for XCheckbox to always return its ID #244 (see migration notes). Enhance: demessaging for element creation. A minor breaking change was added to XCheckbox. This only impacts a minor subset of users that are detecting a checkbox disable event action. If the user code has a checkbox callback function that tests for nSelId == GSLC_ID_NONE and then determines which checkbox was responsible for this event (via pvElemRef), a simpler method is now available: determine the checkbox that triggered an event (via nSelId) and then test the bChecked state.
0.14.023 Apr 2020 17:25 minor feature: Add: support for Teensy 4. Add: support for xlatb/RA8876. Add: support for sumotoy/RA8875. Add: support for GEVINO_TFT (RA8876). Add: support for FT5206 touch controller. Add: support for lexus2k/lcdgfx display driver. Add: support for mcufriend ID forcing #186. Add: support for RGB/BGR color mode selection. Add: BLIT support for load BMP from RAM. Add: JPEG / BMP images from SPIFFS. Add: XSpinner button config #199. Add: extra APIs for ElemCreateTxt_P_R. Add: extra APIs for XKeyPad. Change: optimized redraw (checkbox, radio button). Change: optimized redraw (multiple pages). XRingGauge, #172. XTextbox background #202. SD include error #182. documentation updates. Nano IOT 33 #211. redraw for FLASH-based elements. wire touch for Due #216. Waveshare_ILI9486 (font #173, rotation). Sep 2019 03:15 minor feature: B104 RingGauge: default Flat Color property should be GSLC_COLOR_BLUE_LT4. B105 RingGauge: RingGauge: default Inactive Color property should be (gslc_tsColor) 0,0,48 . B106 RingGauge: TFT Simulation incorrectly shows Flat Color property. B108 RingGauge: codegen invalid API call to ElemXRingGaugeSetColorActiveFlat(). B109 Can't Install GUIsliceBuilder as a NON-Admin user. B110 () Compilation error in Adafruit-GFX.h fonts include typo. B111 () Compilation error: gslc_ElemXRingGaugeSetAngleRange(..., RING-102);. Sep 2019 03:15 minor feature: Add: TFT_eSPI touch enhancements. Add: XGlowball. Add: Support for UTFT URTouch. Add: Support for SdFat (SD SW SPI). Add: Support for Arduino Due ILI9341_due. Add: Numerous additional configs. Add: XListbox support for text justification, auto baseline calc. Add: Access to native display/touch driver APIs. Add: DrawFillSector() DrawFillGradSector(). Add: Support for Waveshare_ILI9486. Add: Example Builder projects to /examples/builder. Change: Split XGauge into XProgress, XRadial and XRamp. Change: XRingGauge enhancements. Change: Example ex02/ex03 no longer terminate. M5stack init. Numerous for SD support (#155, etc.). Element hiding via ElemSetVisible(). sinFX()/cosFX() glitches seen in XRadial. Redraw for elements in FLASH. Examples use platform-specific fonts. Numerous to example configs. Breaking change: XGauge was split into XProgress, XRadial and XRamp. Please refer to #157 for details. The GUIslice Builder completed a major update for 0.13.0. The source code has been moved into a separate repository at
0.13.002 Sep 2019 22:02 major feature: Changes: - Add: TFT_eSPI touch enhancements (#150) - Add: XGlowball (#147) - Add: Support for UTFT URTouch (#151) - Add: Support for SdFat (SD SW SPI) - Add: Support for Arduino Due ILI9341_due (#153) - Add: Numerous additional configs - Add: XListbox support for text justification, auto baseline calc - Add: Access to native display/touch driver APIs (#160) - Add: DrawFillSector() DrawFillGradSector() - Add: Support for Waveshare_ILI9486 - Add: Example Builder projects to /examples/builder - Change: Split XGauge into XProgress, XRadial and XRamp (#157) - Change: XRingGauge enhancements (#162) - Change: Example ex02/ex03 no longer terminate - Fix: M5stack init - Fix: Numerous fixes for SD support (#155, etc.) - Fix: Element hiding via ElemSetVisible() (#156) - Fix: sinFX()/cosFX() fix glitches seen in XRadial - Fix: Redraw for elements in FLASH - Fix: Examples use platform-specific fonts - Fix: Numerous fixes to example configs Migration notes: - Breaking change: XGauge was split into XProgress, XRadial and XRamp. Please refer to #157 for details. Other notes: - The GUIslice Builder completed a major update for 0.13.0. The source code has been moved into a separate repository at