GUIslice Versions Save

GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL

v0.11.2

5 years ago

Release v0.11.2

Changes since 0.11.0:

  • Change: greatly improved ease for users in adding new GUI elements! #120 .
    • GUIslice_ex has been split into individual elements in /src/elem.
    • New elements can be added without needing to modify the GUIslice library.
  • Add: support for page stacks / multi-page overlays #71
  • Add: initial support for popup dialog boxes #81
  • Add: extensive updates to Builder. Updates captured in #80. Including installer for Mac OS #107
  • Fix: many fixes for XTextbox (including #118)
  • Fix: corrections for XGauge (radial and ramp) for Arduino mode #123
  • Fix: fixed-point math for polar, trig and color blending functions
  • Add: automated versioning system that facilitates easier debug reporting
  • Add: ability to hide/show an element #24
  • Add: ability to enable/disable element touch response (ElemSetClickEn)
  • Add: support for touch calibration with remapped X&Y #113
  • Add: preliminary support for RA8875 display driver #103
  • Add: ability to override mcufriend ID

Migration notes:

  • With the changes to split GUIslice_ex into individual extended elements in /src/elem, users are encouraged to replace the #include "GUIslice_ex.h" with the components used by the user code. Please refer to Including Extended Elements

v0.11.0

5 years ago

Release v0.11.0

Changes since 0.10.4:

  • Add: extensive updates to Builder features, installation, user guide and source code (#109). Updates captured in #79 and #80.
  • Add: creation of numerous example configurations (in /configs). Many supported displays and shields now pre-configured according to Table of TFT / OLED shields & breakout boards
  • Change: major simplification of configuration options, now specific to the display/touch combination
  • Change: extensive rewrite of touch & orientation handling (#96, #97, #98, #105), related fixes. Added touch pin detection, calibration and test sketches. Please refer to migration notes below.
  • Add: support for GPIO / keyboard controls (#66), M5stack buttons (#84)
  • Fix: many fixes in TFT_eSPI mode
  • Change: default font for RPi is now NotoMono-Regular
  • Add: support for images in RAM or Flash (#101)
  • Add: support for checkbox / radio button callbacks (#74)
  • Add: startup reporting of version and config modes (can be disabled with INIT_MSG_DISABLE)
  • Add: support for mcufriend (#87)
  • Add: support for HX8357
  • Add: support for HX8347D
  • Add: support for XPT2046_PS (from PaulStoffregen/XPT2046_Touchscreen)
  • Add: support for STM32 from STM, Arduino DUE, Arduino Zero
  • Change: default for fill attribute on ElemCreateBtnImg() / ElemCreateImg() changed to true to improve redraw performance
  • Fix: dynamic image updates (#91)
  • Fix: numerous miscellaneous fixes

Migration notes:

  • Users are strongly encouraged to start using the example configs instead of the legacy GUIslice_config_ard.h or GUIslice_config_linux.h. Please refer to How to Configure GUIslice
  • STM32 users with DRV_TOUCH_XPT2046: Need to select DRV_TOUCH_XPT2046_STM instead.
  • Resistive touch users (DRV_TOUCH_SIMPLE, DRV_TOUCH_STMPE610, DRV_TOUCH_XPT2046*) should run the new touch pin detection and calibration utilities. Please refer to Configuring Touch Support
  • Debug error messaging has now been enabled by default. This can be disabled (to conserve RAM once correct operation is confirmed) by setting DEBUG_ERR set to 1.

v0.10.4

5 years ago

GUIslice Builder:

  • Beta version of the GUIslice Builder desktop application has been added.
  • Binaries for Windows and LINUX are attached to this release note:
    • builder-win64-X.Y.Z.zip
    • builder-linux64-X.Y.Z.tar.gz
    • If multiple versions are listed in the Release Note, select the highest version number
  • Please see GUIslice Builder Documentation for more installation and usage details.

Major changes since v0.10.3:

  • Add: Dynamic rotation GuiRotate() and fixed rotation per GSLC_ROTATE (#73, #72, #70, #55) and example ex17
  • Add: Support for touch orientation via GSLC_TOUCH_ROTATE, simplified configuration
  • Add: Anti-aliased font support for TFT_eSPI mode (#75, #63) and example ex19
  • Add: User touch handler class via DRV_TOUCH_HANDLER (#64) and ex16
  • Change: LINUX examples to use Noto font instead of Droid
  • Add: Parameterization to LINUX Makefile (GSLC_DRV and GSLC_TOUCH)
  • Add: Configuration for resistive touchscreen (DRV_TOUCH_ADA_SIMPLE) now adjusted in main config
  • Fix: Miscellaneous fixes for Arduino, STM32, LINUX
  • Change: Renamed compound element example ex05 to ex18
  • Change: ex05 changed to simplified multi-page demo
  • Change: SDL1 default disabled DRV_SDL_FIX_START workaround

Migration notes:

  • To utilize display rotation feature, config files should be updated.
  • This release adds a number of additional configuration parameters. The GSLC_TOUCH_ROTATE parameter is intended to replace the existing ADATOUCH_SWAP_XY, ADATOUCH_FLIP_X, ADATOUCH_FLIP_Y parameters.

v0.10.2

5 years ago

Major changes since v0.10.0:

  • Add: Add support for multi-line text (via \n) for #40
  • Add: support for STM32 (generic STM32F103) via Arduino_STM32 for #45
  • Add: fill param to ElemXCheckboxCreate_P() to support radio buttons & checkboxes with backgrounds other than black. (Breaking API change)
  • Fix: mem issue with Flash-based text
  • Add: support for foreign characters (UTF-8) in SDL mode for #42
  • Add: support for text updates in Flash buttons (via ElemCreateBtnTxt_P_R)
  • Fix: XTextbox behavior for #41
  • Add: support for foreign characters (UTF-8) in XTextbox for #42
  • Fix: line wrapping in XTextbox
  • Fix: TFT_eSPI with touch disabled for #48

Migration notes:

  • Calls to ElemXCheckboxCreate_P() have added two new params (colFill,bFillEn). Existing programs can insert GSLC_COL_BLACK,true immediately before the radio group parameter (nGroup) to match old default.

v0.10.0

6 years ago

Major changes since v0.9.2:

  • Enhancement: significant memory reduction for Arduino, extensive updates to handle GUI elements in Flash #32
  • Modify: streamline user configuration, split Arduino & LINUX
  • Add: support for nRF52
  • Add: support for m5stack
  • Add: support for PCD8544
  • Add: support for simple resistive touchscreen
  • Fix: Miscellaneous fixes

Migration notes:

  • Calls to many APIs may require search & replace for tsElem* to tsElemRef*. Many API calls that didn't previously include tsGui* will now require the addition of the GUI pointer as the first parameter.
  • GUIslice_config.h has now been replaced by two separate configurations, depending on the device platform (ie. GUIslice_config_ard.h and GUIslice_config_linux.h). The parameters within these configurations have changed in some cases, so one should update to the new defaults and then customize as required.
  • LINUX examples moved from /tests to /linux

v0.9.2

7 years ago

Release notes for pre-existing release (v0.9.2 on 2018/01/06; changes from 0.9):

  • Add: Support for alternate Adafruit-GFX fonts
  • Add: Support for TFT_eSPI
  • Add: Improved memory consumption for Arduino (including initial support for elements in FLASH). See examples in /arduino_min
  • Add: Support for HX8357 display driver
  • Add: Support for XPT2046 touch driver (via TFT_eSPI)
  • Add: Graph control
  • Add: Dynamic screen rotation
  • Fix: Improved support for compiling across device variants
  • Fix: Ramp redraw
  • Fix: Checkbox/radio button glowing
  • Fix: Text height with scaling
  • Fix: Improved touch response handling
  • Fix: DebugPrintf() output of 0

Migration Notes (since v0.9.0):

  • FontAdd() API has changed
  • DrvGetTxtSize() API has changed
  • GUIslice_config.h: Added GSLC_TOUCH_MAX_EVT, ADAGFX_ROTATE

v0.8.7

7 years ago
  • Change: Extensive updates to config guide spreadsheet (incl Beaglebone Black)
  • Add: Filled circle graphic primitive (gslc_DrawFillCircle())
  • Fix: gslc_DrawLine() for vertical/horizontal optimizations
  • Add: DBG_DRIVER to report SDL debug info
  • Add: Frame update rate reporting in gslc-ex04
  • Change: SDL1.2 now selects SDL_FULLSCREEN mode
  • Change: Touch event handler to be more robust
  • Change: Config adds DRV_SDL_RENDER_ACCEL (select between software and hardware renderer for SDL2). Default to 1.
  • Change: Config defaults DRV_SDL_FIX_START to 0
  • Change: Added math lib dependency (to support upcoming radial control)
  • Fix: Mouse handling in SDL2
  • Fix: Added missing dependency in Makefile
  • Migration Notes (from 0.8.6):
    • Add #define DRV_SDL_RENDER_ACCEL to GUIslice_config.h
    • Add -lm to Makefile linker options

As always, I welcome suggestions, feedback or code contributions! ([email protected])

v0.8.6

7 years ago
  • Fix: SDL2 using mouse
  • Fix: SDL2 controls more reponsive
  • Change: SDL2 renderer change for better performance
  • Change: SDL examples now use GSLC_DEV_VID_DRV from GUIslice_config.h to set SDL_VIDEODRIVER
  • Fix: XSlider control tick drawing
  • Change: Makefile added GSLC_LDLIB_EXTRA variable
  • Update: GUIslice config guide spreadsheet updates, including Beaglebone Black
  • NOTE: Beaglebone operation with SDL is not functional in this release. Please use v0.8.7 instead.
  • As always, I welcome suggestions, feedback or code contributions! (guislice @ impulseadventure.com)

v0.8.5

7 years ago
  • Add: Support for ST7735 (eg. 0.96" OLED 128x64) using DRV_DISP_ADAGFX_ST7735
  • Add: Support for SSD1306 (eg. 1.44" SPI 128x128) using DRV_DISP_ADAGFX_SSD1306. Fixes
  • Update: GUIslice config guide spreadsheet with more example configurations
  • As always, I welcome suggestions, feedback or code contributions! (guislice @ impulseadventure.com)

v0.8.4

7 years ago
  • Add: Line element (gslc_ElemCreateLine)
  • Add: Support for capacitive touch (FT6206) on Arduino (DRV_TOUCH_ADA_FT6206)
  • Add: Support for touch axis swap and flipping on Arduino (ADATOUCH_SWAP_XY, ADATOUCH_FLIP_X, ADATOUCH_FLIP_Y)
  • Add: Support for gauge element direction flipping (gslc_ElemXGaugeSetFlip) and improved redraw. Fixed vertical gauge default orientation.
  • Add: Support for GUIslice with LINUX mouse support in DRV_DISP_SDL* (eg. Raspberry Pi with HDMI display) using DRV_SDL_MOUSE_SHOW.
  • Update: Configuration (GUIslice_config.h) updated to use more consistent notation with #define.
  • Add: Added GUIslice config guide (docs/GUIslice_config_guide.xlsx) to demonstrate example CPU / board / display configuration settings.
  • Fix: Fixed error in DRV_TOUCH_SDL mode
  • Migration Notes (from 0.8.3):
    • The following #define should now use an explicit value (1 to enable, 0 to disable): ADAGFX_SPI_HW, ADATOUCH_I2C_HW, ADATOUCH_SPI_HW, ADATOUCH_SPI_SW, DRV_SDL_FIX_START.