Spirik GEM Versions Save

Good Enough Menu for Arduino

1.5.2

4 months ago
  • AppContext struct renamed to GEMContext (with backwards compatibility with previous name);
  • New methods ::setDrawMenuCallback() and ::removeDrawMenuCallback() for managing optional callback that is invoked at the end of ::drawMenu() call;
  • Method ::getCurrentAppearance() made public;
  • private access specifiers changed to protected to make it possible to access internal fields and methods from within user-defined derived (inherited) classes, allowing to extend functionality of GEM;
  • Optional "Advanced Mode" introduced, disabled by default but can be enabled via config.h or GEM_ENABLE_ADVANCED_MODE flag; when enabled some of the internal methods are made virtual to make it possible to override those methods in own sketch, allowing further customization and modification of GEM; more features of Advanced Mode may be added in the future;
  • Readme updated accordingly.

1.5.1

5 months ago
  • Support for custom fonts via ::setFontBig() and ::setFontSmall() methods of U8g2 and Adafruit GFX versions of GEM;
  • Support for UTF8 fonts for U8g2 version of GEM via GEM_u8g2::enableUTF8() method (only for menu titles and menu item labels);
  • Readme updated accordingly.

1.5.0

5 months ago
  • Possible breaking change: AltSerialGraphicLCD version disabled by default, but can be enabled explicitly via config.h or build flag GEM_ENABLE_GLCD;
  • GEMAppearance struct, ::setAppearance() methods added; ability to set appearance for menu pages individually and change it at a runtime;
  • GEMPage::getMenuItem() and GEMItem::getMenuItemNext() methods made public for easy menu items traversing from the sketch;
  • ::getCurrentMenuPage(), GEMPage::getCurrentMenuItem(), GEMPage::getCurrentMenuItemIndex() methods added to target currently selected menu item (can be useful for certain callback functions);
  • GEMItem::setAdjustedASCIIOrder() method added for more suitable order of characters when editing text variables in certain use cases;
  • Example 06: Todo List added;
  • Readme updated accordingly.

1.4.7

6 months ago
  • Ability to remove menu item from menu page via GEMItem::remove() method;
  • Ability to re-add menu item to menu page (same or different) via subsequent call to GEMPage::addMenuItem() method;
  • Passing additional parameters to GEMPage::addMenuItem() method allow to add menu item at a specified index pos out of total (total set to true) or only visible (total set to false) items of the menu page;
  • Correctly handle attempts to add menu page to multiple parent menu pages (now it is possible to change parent menu page);
  • Available constructor options clarified in Readme and examples;
  • Readme updated accordingly.

1.4.6

6 months ago
  • Support for chaining of method calls;
  • Ability to specify parent menu page via GEMPage constructor;
  • Readme updated accordingly.

1.4.5

7 months ago

This release contains code refactoring, there is no functional changes.

  • -Wmissing-field-initializers warning fix;
  • boolean data type ditched in favor of bool;
  • Readme clarifications.

1.4.4

8 months ago
  • Examples on how to control menu with rotary encoder.

1.4.3

9 months ago
  • Support for option to invert keys (resulting in an inverted order of characters) during edit mode via ::invertKeysDuringEdit() method;
  • Readme updated accordingly.

1.4.2

11 months ago
  • Support for setting text 'magnification' size (i.e. scale factor) for Adafruit GFX version via ::setTextSize() method;
  • Readme updated accordingly;
  • Simplify Party Hard example for Adafruit GFX version by commenting out one of the frames to free up some program storage space to fit into Arduino UNO R3.

1.4.1

1 year ago
  • Explicit inclusion of avr/dtostrf.h for RP2040 and nRF52840 based boards (to allow support for floating-point variables);
  • -Wreorder, -Wunused-variable, -Wmaybe-uninitialized warnings during compilation for RP2040 and nRF52840 fixes;
  • Compatibility section in Readme updated.