Releases: TcMenu/tcMenu
4.4.0 - Many fixes and improvements. Card layout supported
What's in the release?
- Move examples to new repository
- Migrate to
TcMenuLog
library, requires all our libraries be updated - Move documentation links to GitHub documentation link
- Some minor UI improvements
- For tcUnicode mode show the available fonts
- Deprecation of embedded forms, as far as we know nobody had used the form generator and it came at a very high cost.
- Fix serial connection problem where a serial connection could not be initiated and sometimes disconnected during boot.
- Card layout is now a fully supported option, documented properly both in the documentation and examples.
Testing of the release
This release has been subject to a complete re-test, including fully running the examples for every board on our compatibility list.
Important notes
Embedded form builder has been removed entirely, it was never properly used by anyone, and very difficult to maintain, we are in the process of building out a proper set of starters and examples for building your own apps that can run on many platforms. The repo will be available soon.
We moved the logging functions from IoAbstraction
into TcMenuLog
, all our libraries now use this new logging library. There have been releases of IoAbstraction
, tcMenuLib
, TaskManagerIO
and tcUnicodeHelper
today for this. When you upgrade, please ensure you upgrade all libraries at once.
Getting the release
The release is available now for Windows and Linux and macOS. Simply pick the package for your platform. Should you run into any issues, simply roll back to the previous good version then raise an issue or start a discussion.
4.3.1 - site org changes, theme improvements
Fixes and improvements in TcMenu 4.3.1
- Non ANSI UTF-8 character can now be sent from Device -> Java API.
- Testing now works properly for UI
- Designer embed control fix for blank screen
- Store location of last font and bitmap import
- Make compatible with Java 23
- New themes based on TcThemeBuilder, original themes deprecated but left in place.
- Online version check simplified to use the GitHub public API.
Most of this release is due to the reasons discussed here: #512
Upgrading / Installing
Upgrade the UI using the package below for your platform, then ugprade to the latest versions of our libraries (TcMenu, IoAbstraction, TaskManagerIO, tcUnicodeHelper and SimpleCollections). There is an extended validation signed version for Windows, a notarized build for macOS, and a debain package for Linux. Note that the new themes need tcMenu library V4.3.1.
4.3.0 - Major Improvements and fixes
Tc Menu 4.3.0 release notes
There are a number of changes in this release, mostly aimed at improving already available features. There are no major changes and things should mostly be backward compatible. As always if you run into any issues, rollback to the previous version and raise either an issue or discussion.
Changes
- One button support, a plugin that can provide a menu from a single button
- Library and API only, device connection that acts as a client, with server accepting, the reverse of traditional sockets
- Properly escape the backslash character
- Support for submenu callbacks in designer
- More U8G2 configurations supported in quick start
- Ability to double click on an emf file and open it in Explorer/Finder
- Embedded font creation utility completely overhauled and productionized
- Bitmap import and edit capabilities completely overhauled and productionized
- A number of other smaller bug fixes in the library and UI
Installing / Upgrading
Upgrade the UI using the package below for your platform, then ugprade to the latest versions of our libraries (TcMenu, IoAbstraction, TaskManagerIO, tcUnicodeHelper and SimpleCollections). There is an extended validation signed version for Windows, a notarized build for macOS, and a debain package for Linux.
Embedded font designer and exporter
The new embedded font exporter is built into designer (available on code menu), it can export to AdafruitGFX and also to TcUnicode. We now have a native library that uses freetype directly and is pixel perfect for small screens. Along with this there is also now a basic bitmap editor that's suitable for the small icons associated with embedded devices. It can export monochrome and palette-based images.
I'd be happy to help anyone integrate another embedded font format. It works on Windows x64, Debian/Ubuntu x64 and macOS. Building for other targets is fairly trivial.
4.2.2 Urgent patch - forms store on disk, removal of SQLite
In the 4.x releases the amount of configuration we were storing made us move from using config files to a database. We made the move first in the flutter-based embed control application and used SQLite. However, in Java the third party packaged SQLite library implementation does not work at all with Apple App Store or Apple Notarization. The amount of work to make it viable was significant. Given that we are only using this database for very lightweight storage requirements, we have made a one-off switch to a pure Java database HQLDB, and I am glad to say we can now move on from this.
However, and very importantly, all settings that were in the SQLite database will be lost after this release, (as above we can no longer ship the SQLite driver). If you have designed any forms, EXPORT THEM BEFORE PROCEEDING. If you have already upgraded and not done this step, the database will still be there untouched in ~/.tcmenu/tcDataStore.db, you can use most SQL tools to access the TC_FORM table and manually export the forms.
The other change in this release is to avoid the database being so critical in future, by saving editable forms within the active project. On first editing a mobile form a your_project/form directory will be created, and the forms you create stored there. On a best-efforts basis, the designer will keep these forms coordinated.
Available as a signed installer for Windows, Notarized disk image for macOS, and as a Linux package.
4.2.1 - Form support, many i18n fixes, multi-window, bitmap exporter
This release has now been in testing for several months and is now ready for release. Ideally, this should be used with the same tcMenuLib version, although it should work for most situations with 4.1.x. Some of the most notable improvements in 4.2 are as follows:
- The UI now has a configurable font size setting available from general settings.
- The I18N support has been simplified so that you directly add the resource bundle value by prepending with "%". This works for the app name, item names, analog units, enum values, and list values. Documentation will be updated shortly for this.
- File watching is now implemented for both the project file and also resource bundles.
- Along with the release of the mobile and user-centric remote control UI (Embed Control) this release has basic form editing support to allow for simple creation of grid-based layouts for the UI.
- This is the first release to directly support CMake without the Arduino/pio toolchain. It is now possible to directly use PicoSDK with CMake (we can support ESP-IDF and STM32Cube if it is funded). There is even an example menu. See https://github.com/davetcc/tccLibs for more details.
- Fixes and improvements to the custom/no display plugins to ensure they work in all scenarios
- What was the standalone Java Embed Control version is now combined into tcMenu Designer. This is because it is now more of a developer tool given that we'd expect most to use the store-packaged version.
- Major fixes for the i18n support
- File -> New now opens a completely new window, allowing for more than one project to be loaded at once.
- The bitmap editor has been completely reworked and now supports generating XBMP, Mono, 2BBP Palette, and 4BPP Palette images, with the import of images from the clipboard being far easier.
Available as a signed installer for Windows and as a Debian Linux package.
However, the macOS notarized version has run into some issues at the Apple end, see #445
4.2.0-BETA2 Preview of form support, many i18n fixes, multi-window
NOTE: This is the second BETA release and should only be used for testing and evaluation.
Note that ideally this should be used with the latest tcMenuLib from master, although it should work for most situations with 4.1.x. Some of the most notable improvements in 4.2 are as follows:
- The UI now has configurable font size setting available from general settings, nearly all dialogs honour that setting.
- More automated UI testing and unit testing has been added
- The I18N support has been simplified so that you directly add the resource bundle value by prepending with "%". This works for the app name, item names, analog units, enum values and list values.
- File watching is now implemented for both the project file and also resource bundles.
- Notes From BETA 1
- Along with the release of the mobile and user-centric remote control UI (Embed Control) this release has basic form editing support to allow for simple creation of grid-based layouts for the UI.
- This is the first release to directly support PicoSDK without Arduino. It is now possible to directly use PicoSDK with CMake. There is even an example menu. See https://github.com/davetcc/tccLibs for more details.
- Fixes and improvements to the custom/no display plugins to ensure they work in all scenarios
- What was the standalone Java Embed Control version is now combined into tcMenu Designer. This is because it is now more of a developer tool given that we'd expect most to use the store packaged version.
- Major fixes for the i18n support
- File -> New now opens a completely new window, allowing for more than one project to be loaded at once.
As this is a beta release, the Linux version will be built only if needed, there is a discussion for this beta, please use that to discuss any issues.
4.2.0-BETA1 Preview of form support, many i18n fixes, multi-window
NOTE: This is a BETA release and should only be used for testing and evaluation.
Note that ideally this should be used with the latest tcMenuLib from master, although it should work for most situations with 4.1.x. Some of the most notable improvements in 4.2 are as follows:
- Along with the release of the mobile and user-centric remote control UI (Embed Control) this release has basic form editing support to allow for simple creation of grid-based layouts for the UI.
- This is the first release to directly support PicoSDK without Arduino. It is now possible to directly use PicoSDK with CMake. There is even an example menu. See https://github.com/davetcc/tccLibs for more details.
- Fixes and improvements to the custom/no display plugins to ensure they work in all scenarios
- What was the standalone Java Embed Control version is now combined into tcMenu Designer. This is because it is now more of a developer tool given that we'd expect most to use the store packaged version.
- Major fixes for the i18n support
- File -> New now opens a completely new window, allowing for more than one project to be loaded at once.
As this is a beta release, the Linux version will be built if needed, let me know in the attached discussion.
4.1.2 patch, new project and tree drag-drop fixes
TcMenu 4.1.2 patch relese.
This release fixes three minor but annoying issues that could not wait until 4.2.0. Please read the 4.1.1 release documentation for a full list of changes.
- The CLI command "version" failed with an exception due to the changes in the way that configuration was loaded.
- It was not possible to move items before a submenu when dragging and dropping in the tree.
- The new project wizard malfunctioned when used in create project mode
Built for Windows as signed installer, macOS as a Notarized disk image, and Linux as a Debian package.
For EmbedControl please use the previous 4.1.1 version, there are no changes in this release.
4.1.1 Major fixes and improvements all round
TcMenu 4.1.1 Upgrade Release
This UI and library version is mainly compatible with the previous release, and for most will work immediately without a round trip through the designer.
However, as usual, take a backup of your projects before upgrading so you can easily revert to the prior version if needed. If you encounter any issues please revert to the previous version and start a discussion or raise an issue.
Fixes to the library
We have doubled down on rendering and library-level bugs in this release, some of the most important are:
- We have added a root item that works pretty much like it does in the Java API (and designer). We'll slowly transition everything to use it.
- Two buttons menu control can now be supported
- All layout modes should now work properly with rendering, a large-scale refactor of rendering code should make it more reliable.
- Card layout is now fully supported.
- Cleaned up many examples, including fixing the row ordering in ones with custom layouts.
Fixes and improvements to TcMenu Designer and EmbedControl UI
- Designer now loads the last project on startup (unless started from the CLI with a specific project)
- Designer and embedControl now use SQLite to store configuration and forms.
- EmbedControl is now better aligned with the upcoming mobile version and supports forms (see below)
- Two-button operation plugin added
- Moved the global project source default option back to be compatible with Arduino by default
- Major improvements to the way locales are configured
- ST7920 (LCD12864) supported in U8G2 quick start along with a few graphical plugin fixes
- Interrupt pins now support variable names (for mbed and STM32)
- Text fields no longer have the X icon obscuring the text value
Preview screen and Initial support for forms (BETA)
This release provides a new preview window where you can see a preview of how your app will look, it updates live as the menu tree changes. You access this from "Menu Item -> Preview" menu. Initial support for forms has also been added (click the grid button top right). Expect a few usability / unforeseen issues in the preview as it is new. Form documentation will be available soon.
Builds
Windows 10/11 - Two setup programs signed with extended validation, designer and embed control.
macOS - Two Notarized disk images. designer, and embed control.
Linux/Ubuntu - Two installers, designer, and embed control.
4.0.0 - Multi language support, runtime item improvements
TcMenu 4.0 is a large release, it will likely take you a little time to work through the changes, although it is mainly backward compatible, we recommend you take this release when you have a little time. Make sure you upgrade all dependent libraries (TaskManagerIO, IoAbstraction, SimpleCollections and TcUnicodeHelper) as tcMenu 4.0 assumes the latest available.
Important
If you are using Arduino IDE/CLI (platformIO/cmake/mbed not affected), please note that when creating a new project the default build option will not work, this will be corrected in the next release. See #377
We recommend you take a backup of your projects before attempting to upgrade, especially if you intend to convert to a multi-language project as this will not be fully backward compatible given it is a new feature. As usual, any problems with this release, just go back to the previous version and raise an issue here.
Backups are now stored in the .backup
directory of your project.
Major new features:
- The designer UI itself is now capable of being translated, and instructions for this are within the package. Translations to French (partial), Slovak and Czech.
- The menu application can be translated into multiple languages using resource bundles (properties files within the project). These are managed by designer and follow a simple fairly intuitive pattern. You can add your own text translations into these files.
- runtime menu items can now have info blocks, which makes the creation of them within your own code much easier, list and scroll choice callback are now drastically simplified, to take advantage of this just regenerate the callback. Runtime lists can even be an array in RAM or even a predefined list in FLASH.
- Card mode where a single item is presented at once is partly available in this release, it will not be fully implemented until a further 4.0 patch.
- Java project code tidy-up, it is now much easier to check out and work with the Java code
- Another performance boost to Adafruit GFX thanks to @NachtRaveVL who suggested improvements to the baseline calculation.
- Move items in the Designer tree using drag and drop instead of the up and down buttons.
- Source can be generated into a separate "generated" folder to separate generated source from your own.
- Many small bug fixes - see the milestone.
Major thanks go out to all our sponsors and also special thanks to @vzahradnik for helping test and translate the designer to additional languages.