Changelog
This is the changelog of LcdMenu library. It contains information about the changes between versions.
LcdMenu v5.4.0
New Features
Enhancements
Update Examples to use Widgets by @forntoh in #260
Refactor ItemSubMenu class to inherit from BaseItemZeroWidget and update methods by @forntoh in #259
Enhance widget rendering to ensure that the active Widget is always visible by @forntoh in #258
Improve memory management and string handling in ItemInput class by @forntoh in #256
Remove WidgetCharset class and introduce templated WidgetList class by @forntoh in #255
Update ItemBack class to inherit from BaseItemZeroWidget by @forntoh in #252
Refactor item command class to use item widget by @forntoh in #251
Update logging mechanism with LOG macro in multiple classes by @forntoh in #250
Bug Fixes
Bugfix: 4 bars appear when no indicators are being shown by @forntoh in #257
Documentation Updates
Comprehensive Documentation Update for Widgets and Menu Items by @forntoh in #275
Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.3.1…5.4.0
LcdMenu v5.3.1
Bug Fixes
Bugfix: 4 bars appear when no indicators are being shown by @forntoh in #257
Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.3.0…5.3.1
LcdMenu v5.3.0
New Features
Add support for additional board types by @forntoh in #246 Introduced support for additional board types (ESP32, ESP8266, STM32, MKR1000 etc) in the Arduino compilation workflow.
Enhancements
Integrate Fast and Efficient String Formatting Library by @forntoh in #244
Enhanced the LCD display configuration and temperature measurement logic in the RTOS example by @forntoh in #246
Streamlined text rendering in the CharacterDisplayRenderer, improving performance and clarity by @forntoh in #246
Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.2.0…5.3.0
LcdMenu v5.2.0
New Features
Enhancements
Delegate Rendering of Separator and Value to Renderer by @forntoh in #240
Chore Updates
Documentation Updates
Fix typo in character-display.rst by @forntoh in #242
Update API references to use C++ syntax for better clarity and consistency by @forntoh in #237
Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.1.0…5.2.0
LcdMenu v5.1.0
New Features
[Feat] Add Menu Renderer by @forntoh in #233
Enhancements
Patch/remove screen row dependency in renderer by @forntoh in #235
Remove itemIndex dependency from renderer by @forntoh in #234
Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.0.0…5.1.0
LcdMenu v5.0.0
New Features
Feature/move control to items by @ShishkinDmitriy in #199
Feature/eliminate types by @ShishkinDmitriy in #213
Feature/introduce menu screen by @ShishkinDmitriy in #216
[Feat] Add Digital Input Adapter for Enhanced Menu Navigation by @forntoh in #214
Feature/refactor items by @ShishkinDmitriy in #221
[feat] Replace ItemProgress with Item[type]Range by @forntoh in #228
Enhancements
Bug Fixes
Bugfix/stuck on submenu enter by @ShishkinDmitriy in #219
Chore Updates
[chore] Improved Debug Logging by @forntoh in #220
Documentation Updates
Breaking Changes
This release introduces breaking changes. Please review [the migration guide](https://lcdmenu.forntoh.dev/reference/migration/index.html) for details on how to update your code.
Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.2.0…5.0.0
LcdMenu v4.2.0
New Features
Bug Fixes
Remove dependencies [fix for #203] by @forntoh in #215
Make global util functions inline by @ShishkinDmitriy in #192
Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.1.0…4.2.0
LcdMenu v4.1.0
New Features ⭐️
Menu Command Processor Helper for Rotary Encoder by @forntoh in #185 A helper function was added to handle menu navigation using a rotary encoder. This makes it easier for developers to implement rotary-based navigation for their LCD menus, streamlining the interaction process. It allows smoother scrolling through menu items and simplifies input with just a rotary encoder.
Enhancements:
Examples: Added [basic rotary encoder](examples/SimpleInput/SimpleInput.ino) and [input rotary](examples/InputRotary/InputRotary.ino) examples to demonstrate functionality.
Bug Fixes:
Code Cleanup: Removed unused print statements to improve code quality.
Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.0.0…4.1.0
LcdMenu 4.0.0
This release introduces a major refactor of the display management system, aimed at making it more modular and flexible. The key change is the introduction of a display interface abstraction that decouples the display logic from the specific hardware, allowing for easier integration of different display types.
What’s Changed
Display Interface Abstraction: * A new DisplayInterface class has been introduced to define a common interface for all display types. * This interface allows developers to easily swap out display implementations (e.g., LCD, OLED) without modifying the core logic.
Implemented LiquidCrystalI2CAdapter to support LiquidCrystal_I2C displays.
Implemented LiquidCrystalAdapter to support LiquidCrystal displays.
Improved Modularity and Flexibility: * By decoupling the display management logic from the specific hardware, the system is now more modular and easier to extend with new display types. * The menu and cursor handling logic has been adapted to work seamlessly with the new interface, ensuring backward compatibility while providing enhanced flexibility.
Debug mode is now turned off by default
Bug Fixes and Improvements
Memory Management: Optimized the handling of dynamic memory allocation to prevent memory leaks and improve stability.
Code Cleanup: Refactored the codebase for better readability and maintainability. Deprecated functions and variables have been removed or replaced with more efficient alternatives.
Documentation: Updated and expanded the documentation to reflect the new architecture and features.
Breaking Changes
API Changes: The introduction of the DisplayInterface class and its implementation may require changes to existing projects. Users must update their code to work with the new interface and adapters.
Some methods and features directly tied to the LiquidCrystal_I2C library have been refactored or removed. Please review [the migration guide](https://lcdmenu.forntoh.dev/reference/migration-guide) for details on how to update your code.
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.6…4.0.0
LcdMenu 3.5.6
Chore Updates
Make isAtTheStart and isAtTheEnd public by @forntoh in #172
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.5…3.5.6
LcdMenu 3.5.5
#167 Update condition to check if cursor is at the top and bottom. by @forntoh in #170
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.4…3.5.5
LcdMenu 3.5.4
BugFix: After setCursorPosition navigation is broken by @forntoh in #165
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.3…3.5.4
LcdMenu 3.5.3
BugFix: Fixed setText and getSubMenu not working by @forntoh in #164
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.2…3.5.3
LcdMenu 3.5.2
BugFix - Charset Input value copied to all Input items on screen by @forntoh in #159
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.1…3.5.2
LcdMenu 3.5.1
BugFix - Update ItemList only in edit mode by @forntoh in #154
Add more logging functions by @forntoh in #155
Do not update screen anymore when bounds reached for ItemProgress by @forntoh in #156
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.0…3.5.1
LcdMenu 3.5.0
Added menu event serial logs by @forntoh in #151
⭐️ ⭐️ ⭐️ Added Menu Control Helpers by @forntoh in #152 As of today, you no longer need to manage navigation commands on the menu yourself, a few helpers were added to help reduce the amount of code you write, check the [docs](https://lcdmenu.forntoh.dev/controls) to see how to use them.
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.4.0…3.5.0
LcdMenu 3.4.0
Moved utils and constants to utils directory by @forntoh in #149
Allow a current progress to be set on ItemProgress by @PaulEmich in #150
@PaulEmich made their first contribution in #150
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.4…3.4.0
LcdMenu 3.3.4
fix: compilation error with standard lcd by @andcan in #142
@andcan made their first contribution in #142
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.3…3.3.4
LcdMenu 3.3.3
Update bug_report.yml by @forntoh in #130
Separated utils definition from declaration by @forntoh in #135
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.2…3.3.3
LcdMenu 3.3.2
Update callback function parameter types to use uint16_t instead of uint8_t. by @forntoh in #126
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.1…3.3.2
LcdMenu 3.3.1
Update LICENSE by @forntoh in #115
added stale bot by @forntoh in #122
#113 started using no display and display to turn off display by @forntoh in #123
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.0…3.3.1
LcdMenu 3.3.0
Progress, Integer and Float values support by @forntoh in #114
Added custom edit mode cursor by @forntoh in #110
Fix callback for item list not executed by @forntoh in #111
Fixed Arduino runs out of memory when typing by @forntoh in #112
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.2.0…3.3.0
LcdMenu 3.2.0
Update bug_report.yml by @forntoh in #103
Fixed ItemSubMenu text not displayed by @forntoh in #102
Added LCD Timeout by @forntoh in #104
Fixed Can’t cycle through items in ItemList by @forntoh in #107
Update version in bug report template automation by @forntoh in #108
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.1.1…3.2.0
LcdMenu 3.1.1
Fixed compile warnings related to ItemList by @forntoh in #101
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.1.0…3.1.1
LcdMenu 3.1.0
added unit testing and changed most instances of String to char* by @forntoh in #86
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.0.1…3.1.0
LcdMenu 3.0.1
Fixed library unusable without I2C 🐛 by 🫡 @dejanmeznarc in #93
@dejanmeznarc made their first contribution in #93
Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.0.0…3.0.1
LcdMenu 3.0.0 🚀
In previous versions of LcdMenu, the menu used a lot of memory since space has to be reserved for every field on the menu even if it is not used, this release fixes that by allowing the user to import only MenuItems which is needed.
You can expect to save up to 10% on memory usage (or even more 😎), depending on which menu item types you use.
There’s also a new way to create menus, check the readme.
Memory optimization 🚀🌕 by @forntoh in #82
Update issue templates by @forntoh in #83
Update README.md by @forntoh in #87
Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.3…3.0.0
LcdMenu 2.1.3
add isSubMenu by @thijstriemstra in #81
example: fix typo by @thijstriemstra in #78
add setCursorPosition by @thijstriemstra in #80
ci: update dependencies by @thijstriemstra in #77
add public reset method by @thijstriemstra in #79
Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.2…2.1.3
LcdMenu 2.1.2
Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.1…2.1.2
LcdMenu 2.1.1
menu layout fix by @sennederent in #61
@sennederent made their first contribution in #61
Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.0…2.1.1