2024-01-19 4:11 AM
1) How can I make the TextArea widget clickable and handle the PRESSED and RELEASED events separately?
2) How to create a keyboard? When the TextArea is clicked, the keyboard appears, numeric data is entered, and it closes. Is there an example of a project using a keyboard?
2024-01-19 9:42 AM
Hello
You can get press and release events if you add Click- callback .
First set item 'clickListener' selected from Mixins- selections from your textArea.
then add callback funtion definitions to your View.hpp
class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    virtual ~Screen1View() {}
    virtual void setupScreen();
    virtual void tearDownScreen();
	// add this:
    void textAreaClickHandler(const TextArea& b, const ClickEvent& e);
	
protected:
	// and this:
	Callback<Screen1View, const TextArea&, const ClickEvent&> textAreaClickedCallback;
};then modify your View.cpp:
#include <gui/screen1_screen/Screen1View.hpp>
// Add this if use touchgfx_printf- in simulator
#include <touchgfx/Utils.hpp>
// in constuctor, bind this view object to function which handles the event:
Screen1View::Screen1View():
    textAreaClickedCallback(this, &Screen1View::textAreaClickHandler) 
{
}
void Screen1View::setupScreen()
{
    Screen1ViewBase::setupScreen();
    //set the textArea1 action to exucute callback
    textArea1.setClickAction(textAreaClickedCallback);
}
void Screen1View::tearDownScreen()
{
    Screen1ViewBase::tearDownScreen();
}
//Add this clickHandler:
void Screen1View::textAreaClickHandler(const TextArea& b, const ClickEvent& evt)
{
    if (&b == &textArea1)
    {
       switch(evt.getType())
		{
			case ClickEvent::PRESSED:
				touchgfx_printf("Pressed textArea1 \r\n");
				
			break;
 
			case ClickEvent::RELEASED:
				touchgfx_printf("Released textArea1 \r\n");
			break;
			//default:
			case ClickEvent::CANCEL:
				touchgfx_printf("Cancel textArea1 \r\n");
			break;
		}
    }
}This example is tested with simulator in versio 4.21.4.
you can get more detailed info here
https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/mixins
also here is same issue with flexButton
2) There is example keyboard in this thread
https://community.st.com/t5/stm32-mcus-touch-gfx-and-gui/share-your-custom-widgets/td-p/67889
Hope this helps for forward
Br JTP
