CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Dealing with touch sensitive areas of graphical objects



Embedded.com
Other Widgets
So far we have discussed buttons. More complex touchable objects such as sliders also provide interesting challenges. As with buttons each object will have to be larger than the equivalent widget on a mouse driven interface. On a horizontal slider you want to allow the user's finger to stray a little high or a bit low without releasing control of the slider.

The popularity of capacitive touchscreens in recent consumer items means that many user's have experience of using very gentle sweeping motions on a touchscreen to move a slider or to turn a page.

Capacitive screens do not require the user to exert any downward pressure, and so these gentle touches word well. If your product has a resistive touchscreen, you may find that users are using similar actions on your screen and seeing no response. This is more noticeable in objects involving dragging, such as sliders, than it is for simple buttons.

Third Party Toolkits
To my knowledge none of the graphical toolkits available, even those targeted at the embedded market, implement any of the mechanisms described above, or any equivalent. They seem to be happy to convert touch events into the same format as their mouse events and allow all the interaction to be the same for both.

Because of the fundamental differences pointed out at the beginning of this article, there is missed opportunity here to raise the standard of the touch interfaces.

If your toolkit is available in source form, you may have the option of implementing some or all of the techniques described here. None of them are difficult to code as long as you have access to the event management code and the code that locates the activated object.

In C++ toolkits such as PEG or Qt you have the option to overload the virtual function which is called in response to a mouse event. This allows you to respond to a different sensitive area than the default. This allows the sensitive area to be resized.

However it takes further modification of the library's source code to handle the situation where the touch occurred in the area where two or more sensitive objects overlap. Amulet Technologies also sell programmable graphics modules which also have hooks to allow the touch sensitive area to be modified.

Touching Up
The feeling of responsiveness of a user interface is often down to the details of how individual events are managed. If the user occasionally thinks 'I pressed that button, but nothing happened " oh well, I will just press it again', then the interface probably just lost an event that was not properly processed.

It might be due to a slightly inaccurate touchscreen. It might be due to the fact that the user touched just outside the object, but the user still feels he touched the button. These missed events lead to an overall feeling of unease with the interface which in turn creates a perception of low quality.

Most users would be hard pressed to identify just why they do not feel comfortable with the interface. On the other hand, careful use of the techniques described here can help the user feel that they are in control, and that all of their touch commands will lead to the desired response.

Niall Murphy has been designing user interfaces for over 14 years. He is the author of Front Panel: Designing Software for Embedded User Interfaces. Murphy teaches and consults on building better user interfaces. He welcomes feedback and can be reached at nmurphy@panelsoft.com. His web site is www.panelsoft.com.

References
1. How To Calibrate Touch Screens, Carlos E. Vidales, Embedded Systems Programming, June 2002.

2. Writing drivers for common touch-screen interface hardware, Kenneth G. Maxwell,Embedded Systems Programming, July 2005.

3. A Quiz Designed to Give You Fitts, AskTog, February 1999.

1 | 2 | 3 | 4 | 5

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS



TECH PAPER
WEBINAR
WEBINAR
WEBINAR




 :