FREE Menu Library for ILI9341 Displays

KrisKasprzak

Well-known member
If you have ever used a TFT display and don't / can't enable touch capability, you may have needed a menu system to let users set calibration settings, parameters, colors or other "Tools | Options" type things. Writing menu code is tedious but I've decided to make my personal library available to all.

This library will simplify creating and implementing a menu system for TFT displays that are use the ILI9341_t3 library and Teensy(R) microcontrollers. This library includes two menu objects:

  1. A simple selection menu (ItemMenu object) where the user can scroll up/down and select an item and some programmer-defined action can be performed such as drawing a screen or activating a sub menu
  2. A menu with in-line editing (EditMenu object) where the user can scroll up/down the list and select an item, however the difference is that move/up down on a selected item will scroll the values stored with that menu item, selecting a selected item will restore control to moving up/down the menu list


0003.jpg 0007.jpg 0073.jpg

Library highlights

  • Automatic wrapping for menu rows that exceed screen size
  • For EditMenu objects, edits can be within a defined range or from an array
  • Menus can include no icon, mono icon, or color icons
  • Programmer has full control over margins, colors, fonts, etc.
  • Menus can have up to 15 items, but expandable to more by editing the #define MAX_OPT 15
  • Menu items can be enabled or disabled through code
  • Automatic wrapping during editing for items within editable menus
  • Menu item text can be changed at any time through code
  • Initial data in EditMenu objects can be set based on stored or set values
  • Menu selector bars can have round or sharp corners and have a border to accentuate selection
  • Automatic up/down arrows on top and bottom screen rows to indicate to the user "there's more"


Code here: https://github.com/KrisKasprzak/ILI9341_t3_Menu

YouTube video demo here: https://youtu.be/KUi9f4hcV6A


Enjoy

Kris
 

Attachments

  • 0003.BMP
    225.1 KB · Views: 95
  • 0007.BMP
    225.1 KB · Views: 55
  • 0073.BMP
    225.1 KB · Views: 55
Wow Kris - fantastic library!!!!!

Will definitely save a heck of a lot of time !!!! Great video as well on using the library as always.
 
@KrisKasprzak I am trying to get your example file working, I made a few mods to the IO just to match my current hardware configuration. I am getting compilation errors. Here is the modified file and here are the error messages. If you could point me in the right direction, I'd appreciate it!
View attachment ILI9341_t3_Menu_TouchInput_myteensy.zip
Code:
Arduino: 1.8.19 (Linux), TD: 1.56, Board: "Teensy 4.1, Serial, 600 MHz, Faster, US English"

/home/bruce/Apps/arduino-1.8.19/arduino-builder -dump-prefs -logger=machine -hardware /home/bruce/Apps/arduino-1.8.19/hardware -hardware /home/bruce/.arduino15/packages -tools /home/bruce/Apps/arduino-1.8.19/tools-builder -tools /home/bruce/Apps/arduino-1.8.19/hardware/tools/avr -tools /home/bruce/.arduino15/packages -built-in-libraries /home/bruce/Apps/arduino-1.8.19/libraries -libraries /home/bruce/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=en-us -vid-pid=16C0_0483 -ide-version=10819 -build-path /tmp/arduino_build_231348 -warnings=none -build-cache /tmp/arduino_cache_429760 -verbose /home/bruce/Arduino/ILI9341_t3_Menu_TouchInput_myteensy/ILI9341_t3_Menu_TouchInput_myteensy.ino
/home/bruce/Apps/arduino-1.8.19/arduino-builder -compile -logger=machine -hardware /home/bruce/Apps/arduino-1.8.19/hardware -hardware /home/bruce/.arduino15/packages -tools /home/bruce/Apps/arduino-1.8.19/tools-builder -tools /home/bruce/Apps/arduino-1.8.19/hardware/tools/avr -tools /home/bruce/.arduino15/packages -built-in-libraries /home/bruce/Apps/arduino-1.8.19/libraries -libraries /home/bruce/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=en-us -vid-pid=16C0_0483 -ide-version=10819 -build-path /tmp/arduino_build_231348 -warnings=none -build-cache /tmp/arduino_cache_429760 -verbose /home/bruce/Arduino/ILI9341_t3_Menu_TouchInput_myteensy/ILI9341_t3_Menu_TouchInput_myteensy.ino
Using board 'teensy41' from platform in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr
Using core 'teensy4' from platform in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr
Detecting libraries used...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /dev/null
Alternatives for ILI9341_t3_Menu.h: [ILI9341_t3_Menu-main]
ResolveLibrary(ILI9341_t3_Menu.h)
  -> candidates: [ILI9341_t3_Menu-main]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /dev/null
Alternatives for ILI9341_t3.h: [ILI9341_t3@1.0]
ResolveLibrary(ILI9341_t3.h)
  -> candidates: [ILI9341_t3@1.0]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /dev/null
Alternatives for SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
  -> candidates: [SPI@1.0]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /dev/null
Alternatives for XPT2046_Touchscreen.h: [XPT2046_Touchscreen@1.4]
ResolveLibrary(XPT2046_Touchscreen.h)
  -> candidates: [XPT2046_Touchscreen@1.4]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main/ILI9341_t3_Menu.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/ILI9341_t3.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/font_Arial.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/font_ArialBold.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/glcdfont.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI/SPI.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen/XPT2046_Touchscreen.cpp -o /dev/null
Generating function prototypes...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /tmp/arduino_build_231348/preproc/ctags_target_for_gcc_minus_e.cpp
/home/bruce/Apps/arduino-1.8.19/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/arduino_build_231348/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/precompile_helper /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_231348 /home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -x c++-header -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_231348/pch/Arduino.h -o /tmp/arduino_build_231348/pch/Arduino.h.gch
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/tmp/arduino_build_231348/pch -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp -o /tmp/arduino_build_231348/sketch/ILI9341_t3_Menu_TouchInput_myteensy.ino.cpp.o
ILI9341_t3_Menu_TouchInput_myteensy: In function 'void setup()':
ILI9341_t3_Menu_TouchInput_myteensy:1736: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption1, 0.12);
              ^
ILI9341_t3_Menu_TouchInput_myteensy:1737: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption3, 1); // the 2nd element in the ReadoutItems array
              ^
ILI9341_t3_Menu_TouchInput_myteensy: In function 'void ProcessColorMenu()':
ILI9341_t3_Menu_TouchInput_myteensy:2055: error: 'class ItemMenu' has no member named 'SetAllColors'
   MainMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
            ^
ILI9341_t3_Menu_TouchInput_myteensy:2064: error: 'class EditMenu' has no member named 'SetAllColors'
   OptionMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
              ^
ILI9341_t3_Menu_TouchInput_myteensy:2076: error: 'class EditMenu' has no member named 'SetAllColors'
   ColorMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
             ^
ILI9341_t3_Menu_TouchInput_myteensy:2088: error: 'class EditMenu' has no member named 'SetAllColors'
   WirelessMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
                ^
Using library ILI9341_t3_Menu-main in folder: /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main (legacy)
Using library ILI9341_t3 at version 1.0 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 
Using library SPI at version 1.0 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI 
Using library XPT2046_Touchscreen at version 1.4 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen 
'class EditMenu' has no member named 'SetItemValue'
 
@KrisKasprzak I am trying to get your example file working, I made a few mods to the IO just to match my current hardware configuration. I am getting compilation errors. Here is the modified file and here are the error messages. If you could point me in the right direction, I'd appreciate it!

Please try building with no modifications. If that works, you can focus on your changes.
 
Please try building with no modifications. If that works, you can focus on your changes.

Ok. Program is ILI9341_t3_Menu_Touchinput, from recently installed library example sketch, no changes. Compiles with nearly the same errors. Errors below.
Code:
Arduino: 1.8.19 (Linux), TD: 1.56, Board: "Teensy 4.1, Serial, 600 MHz, Faster, US English"











/home/bruce/Apps/arduino-1.8.19/arduino-builder -dump-prefs -logger=machine -hardware /home/bruce/Apps/arduino-1.8.19/hardware -hardware /home/bruce/.arduino15/packages -tools /home/bruce/Apps/arduino-1.8.19/tools-builder -tools /home/bruce/Apps/arduino-1.8.19/hardware/tools/avr -tools /home/bruce/.arduino15/packages -built-in-libraries /home/bruce/Apps/arduino-1.8.19/libraries -libraries /home/bruce/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=en-us -vid-pid=16C0_0483 -ide-version=10819 -build-path /tmp/arduino_build_646130 -warnings=none -build-cache /tmp/arduino_cache_429760 -verbose /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main/Examples/ILI9341_t3_Menu_TouchInput/ILI9341_t3_Menu_TouchInput.ino
/home/bruce/Apps/arduino-1.8.19/arduino-builder -compile -logger=machine -hardware /home/bruce/Apps/arduino-1.8.19/hardware -hardware /home/bruce/.arduino15/packages -tools /home/bruce/Apps/arduino-1.8.19/tools-builder -tools /home/bruce/Apps/arduino-1.8.19/hardware/tools/avr -tools /home/bruce/.arduino15/packages -built-in-libraries /home/bruce/Apps/arduino-1.8.19/libraries -libraries /home/bruce/Arduino/libraries -fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=en-us -vid-pid=16C0_0483 -ide-version=10819 -build-path /tmp/arduino_build_646130 -warnings=none -build-cache /tmp/arduino_cache_429760 -verbose /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main/Examples/ILI9341_t3_Menu_TouchInput/ILI9341_t3_Menu_TouchInput.ino
Using board 'teensy41' from platform in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr
Using core 'teensy4' from platform in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr
Detecting libraries used...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /dev/null
Alternatives for ILI9341_t3_Menu.h: [ILI9341_t3_Menu-main]
ResolveLibrary(ILI9341_t3_Menu.h)
  -> candidates: [ILI9341_t3_Menu-main]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /dev/null
Alternatives for ILI9341_t3.h: [ILI9341_t3@1.0]
ResolveLibrary(ILI9341_t3.h)
  -> candidates: [ILI9341_t3@1.0]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /dev/null
Alternatives for SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
  -> candidates: [SPI@1.0]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /dev/null
Alternatives for XPT2046_Touchscreen.h: [XPT2046_Touchscreen@1.4]
ResolveLibrary(XPT2046_Touchscreen.h)
  -> candidates: [XPT2046_Touchscreen@1.4]
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main/ILI9341_t3_Menu.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/ILI9341_t3.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/font_Arial.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/font_ArialBold.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3/glcdfont.c -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI/SPI.cpp -o /dev/null
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen/XPT2046_Touchscreen.cpp -o /dev/null
Generating function prototypes...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /tmp/arduino_build_646130/preproc/ctags_target_for_gcc_minus_e.cpp
/home/bruce/Apps/arduino-1.8.19/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/arduino_build_646130/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/precompile_helper /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_646130 /home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -x c++-header -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 /tmp/arduino_build_646130/pch/Arduino.h -o /tmp/arduino_build_646130/pch/Arduino.h.gch
/home/bruce/Apps/arduino-1.8.19/hardware/teensy/../tools/arm/bin/arm-none-eabi-g++ -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=156 -DARDUINO=10819 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/tmp/arduino_build_646130/pch -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/cores/teensy4 -I/home/bruce/Arduino/libraries/ILI9341_t3_Menu-main -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI -I/home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp -o /tmp/arduino_build_646130/sketch/ILI9341_t3_Menu_TouchInput.ino.cpp.o
ILI9341_t3_Menu_TouchInput: In function 'void setup()':
ILI9341_t3_Menu_TouchInput:1736: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption1, 0.12);
              ^
ILI9341_t3_Menu_TouchInput:1737: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption3, 1); // the 2nd element in the ReadoutItems array
              ^
ILI9341_t3_Menu_TouchInput: In function 'void ProcessColorMenu()':
ILI9341_t3_Menu_TouchInput:2055: error: 'class ItemMenu' has no member named 'SetAllColors'
   MainMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
            ^
ILI9341_t3_Menu_TouchInput:2064: error: 'class EditMenu' has no member named 'SetAllColors'
   OptionMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
              ^
ILI9341_t3_Menu_TouchInput:2076: error: 'class EditMenu' has no member named 'SetAllColors'
   ColorMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
             ^
ILI9341_t3_Menu_TouchInput:2088: error: 'class EditMenu' has no member named 'SetAllColors'
   WirelessMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
                ^
Using library ILI9341_t3_Menu-main in folder: /home/bruce/Arduino/libraries/ILI9341_t3_Menu-main (legacy)
Using library ILI9341_t3 at version 1.0 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/ILI9341_t3 
Using library SPI at version 1.0 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/SPI 
Using library XPT2046_Touchscreen at version 1.4 in folder: /home/bruce/Apps/arduino-1.8.19/hardware/teensy/avr/libraries/XPT2046_Touchscreen 
'class EditMenu' has no member named 'SetItemValue'
Hope this helps.
 
@KrisKasprzak

Just tried compiling the example without mods and getting the same errors as @clinker8
Code:
ILI9341_t3_Menu_TouchInput: In function 'void setup()':
ILI9341_t3_Menu_TouchInput:1736: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption1, 0.12);
              ^
ILI9341_t3_Menu_TouchInput:1737: error: 'class EditMenu' has no member named 'SetItemValue'
   OptionMenu.SetItemValue(OptionOption3, 1); // the 2nd element in the ReadoutItems array
              ^
ILI9341_t3_Menu_TouchInput: In function 'void ProcessColorMenu()':
ILI9341_t3_Menu_TouchInput:2055: error: 'class ItemMenu' has no member named 'SetAllColors'
   MainMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
            ^
ILI9341_t3_Menu_TouchInput:2064: error: 'class EditMenu' has no member named 'SetAllColors'
   OptionMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
              ^
ILI9341_t3_Menu_TouchInput:2076: error: 'class EditMenu' has no member named 'SetAllColors'
   ColorMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
             ^
ILI9341_t3_Menu_TouchInput:2088: error: 'class EditMenu' has no member named 'SetAllColors'
   WirelessMenu.SetAllColors(C_VALUES[ (int) ColorMenu.value[ColorOption1]],
                ^
Looking at the source code it looks like they should be:
setAllColors
and
setItemValue

Lower case set as opposed to upper case
 
@clinker8

Try this version of the example. I changed the Set... to set and it now compiles. If you use the mechanical version you will have to make the same type of changes

View attachment 28427
Thanks for the awesomely fast response! Wasn't expecting an example sketch to fail, but guess it happens. I will give it a try.

Edit: Yes, that compiles for me. Thanks again!
 
Last edited:
Yep, I found a typo in the lib where I had SetItemValue and SetAllColors but it should have been setxxxx. I have fixed the examples, but as mentioned just change the ino and change Setxxxx to setxxxx

Bad news is it was silly error, good news is people are using it :)
 
Hi Kris
Thanks for this menu system. Is it possible to have an ItemMenu go to another ItemMenu which goes to another ItemMenu or EditMenu.
right now I am able to get an ItemMenu go to another ItemMenu
Thanks
 
Hi,

thx for your great library. Is there a version which allows rotary encoder and touch simultanousely?

Kind regards
 
Hi,

and another questions. Do you have any ideas of building a non blocking version of your library?

Kind regards
 
I’m not sure how I could incorporate touch and a mechanical input device. Still thinking…

What is this library blocking?
 
Hi,

thanks for your reply. I think touch and mechanical input may coexist. Not the library itself is blocking but the implementation of the menu handling (loop isn't called until menu exit)
 
I have updated the library to allow touch AND mechanical input. You can press menu items, then use something like and encoder to scroll through values. I have added an example for using Touch and and Encoder, noting that since you are having to trap encoder and touch, there is more processing code.

Fortunately I was able to get both working w/o any method changes so this version should re-compile without errors. I have done a fair amount of testing, but if you see any issues, let me know.

Have fun..
 
Back
Top