HP TouchSmart 9100 - Business PC Application Manual

Resources for developing touch-friendly applications for hp business touch-enabled desktops
Hide thumbs Also See for TouchSmart 9100 - Business PC:
Table of Contents

Advertisement

Resources for Developing Touch-Friendly
Applications for HP Business Touch-
Enabled Desktops

Table of Contents:

Overview ........................................................................................... 3
Scope ............................................................................................... 3
Hardware Platforms ................................................................................. 3
Operating Systems ................................................................................... 3
Software Development Practice ............................................................ 4
Usability Testing for Touch Applications ................................................ 6
Touch Support in Windows XP®........................................................... 7
Touch Support in Windows Vista® ....................................................... 7
System Gestures ...................................................................................... 7
Flick Gestures .......................................................................................... 8
Application Gestures .............................................................................. 10
Enabling/Disabling Touch Pointer ............................................................ 11
Disabling System Gestures ...................................................................... 13
Touch Support in Windows 7® .......................................................... 13
Gestures ............................................................................................... 14
Touch Input Messages ............................................................................ 17
WPF Stylus Events .................................................................................. 19
Windows Versions ............................................................................ 24
Stylus .............................................................................................. 24
HP dx9000 Specifics ........................................................................ 25
HP Touch Screen Configuration ............................................................... 25
Enabling /Disabling the Touch Device ...................................................... 26
Disabling the HP TouchSmart Button ......................................................... 26
Disabling the Volume and Mute Controls .................................................. 26
1

Advertisement

Table of Contents
loading

Summary of Contents for HP TouchSmart 9100 - Business PC

  • Page 1: Table Of Contents

    Resources for Developing Touch-Friendly Applications for HP Business Touch- Enabled Desktops Table of Contents: Overview ................... 3 Scope ....................3 Hardware Platforms ................. 3 Operating Systems ................... 3 Developing Touch-Friendly Applications on an HP Touch Platform .... 4 Software Development Practice ............4 General User Experience Guidelines for a Touch-Friendly Application ..
  • Page 2 HP TouchSmart 9100 Specifics ............27 Disabling the HP TouchSmart Button ............27 Changing TouchSmart Style with HP TouchSmart Style Utility ....... 28 HP TouchSmart Software Basic Style ..........28 HP TouchSmart Software Ultimate Style ..........28 Putting a System to Cleaning/Maintaining Mode with HP Maintenance Utility 28 Disabling/Retasking Volume Side Buttons ..........
  • Page 3: Overview

    Overview Touching a screen is a natural and inspiring way to interact with computers. HP has expanded its portfolio to offer business customers touch-enabled desktops. Touch products will help businesses provide services and environments where touch enhances the user experience and satisfaction over the normal mouse and keyboard experience.
  • Page 4: Developing Touch-Friendly Applications On An Hp Touch Platform

    Developing Touch-Friendly Applications on an HP Touch Platform  Hardware: A supported system above Software: Microsoft Windows 7 , Windows Vista or Windows XP (Please see  ® ® ® platform specific sections towards the end of the document for HP recommended operating system for each platform) ...
  • Page 5: General User Experience Guidelines For A Touch-Friendly Application

    Note: The preinstalled image of HP business touch-enabled desktops may come with HP TouchSmart software. This software is a framework hosting other registered applications to provide the unique HP touch experience. The instructions to write a hosted application in HP TouchSmart software are available at http://www.touchsmartdevzone.com/download/60/HP-TouchSmart-Software- Developer-Guidelines/.
  • Page 6: Usability Testing For Touch Applications

    Aspect Recommendation Reasoning the fingers on the screen to touch technology of the perform an action. hardware platforms. Forgiveness Allow users to easily Finger touching is not as undo/reverse their actions. accurate as pen or stylus or other input devices. Text input Minimize text input by providing It is cumbersome to switch...
  • Page 7: Touch Support In Windows Xp

    Touch Support in Windows XP ® Only single touches work on Windows XP. System gestures are synthesized to the equivalent mouse messages shown below so your applications only need to respond to these mouse messages. System gesture Equivalent mouse message Tap (down and up) Mouse left-click Double tap (down and up twice)
  • Page 8: Flick Gestures

    The following code fragment of a Windows Presentation Foundation (WPF) application shows that the code to handle the users touching/tapping the exit button is just the very same code that handles a mouse click to the exit button. public Window1() InitializeComponent();...
  • Page 9 When a flick is detected, Windows will first send a flick message (WM_TABLET_FLICK Message). If the flick message is not handled, Windows follows up by sending the applicable WM_APPCOMMAND notification. Your application can either handle flick messages directly or responds to follow-up command notifications.
  • Page 10: Application Gestures

    Application Gestures In addition to gestures and flick gestures, Windows Vista also supports application gestures. You can use Microsoft Gesture Recognizer, or create your custom gesture recognizer or use a combination of both. Microsoft Gesture Recognizer can recognize over forty gestures. The following table lists a few examples of gestures recognized by Microsoft Gesture Recognizer.
  • Page 11: Enabling/Disabling Touch Pointer

    private void inkCanvas_OnGesture(object sender, InkCanvasGestureEventArgs ApplicationGesture gesture = e.GetGestureRecognitionResults()[0].ApplicationGesture; if (gesture == ApplicationGesture.Triangle || gesture == ApplicationGesture.Square || gesture == ApplicationGesture.Circle) //remove the stroke on the ink canvas StrokeCollection strokesToDelete = inkCanvas.Strokes.HitTest(e.Strokes.GetBounds(), 10); inkCanvas.Strokes.Remove(strokesToDelete); //do some action here else //not the expected gestures e.Cancel = true;...
  • Page 12 uint result = 0; if (...) //enable the touch pointer result |= SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEON; if (...) //disable the touch pointer result |= SYSTEM_GESTURE_STATUS_TOUCHUI_FORCEOFF; //return the modified messages...
  • Page 13: Disabling System Gestures

    HP recommends Windows Vista® Business msg.Result = (IntPtr)result; break; default: base.WndProc(ref msg); break; Refer to the article, “Touch Input Support in Windows Vista,” on MSDN for more details. Disabling System Gestures By default a window application receives all system gesture events. You may need to disable some system gesture events by responding to WM_TABLET_QUERYSYSTEMGESTURESTATUS message in your window procedure.
  • Page 14: Gestures

    messages, or you may need to override the default behavior of the default legacy messages in your application. You can also choose to wow your users with the best touch experience by having your application register for touch input messages to handle them. The lowest level raw touch data provided by Windows Touch API allows you to detect the action, identify each touch point, its position and contact area.
  • Page 15 Gesture Equivalent message down) Zoom (move two fingers apart or together) Control key + mouse scroll wheel Rotate (move two fingers in opposite directions or Not applicable move one finger pivoting around another finger) Flicks (down and move quickly in a direction) Navigational flicks Flick left Forward command...
  • Page 16 BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi); BOOL bHandled = FALSE; if (bResult){ // now interpret the gesture switch (gi.dwID){ case GID_ZOOM: // Code for zooming goes here bHandled = TRUE; break; case GID_PAN: // Code for panning goes here bHandled = TRUE; break;...
  • Page 17: Touch Input Messages

     ullArguments shows more information about the gesture (for example, the distance between the two points of a zoom) You can configure the gesture messages sent from Windows by calling SetGestureConfig. Typical usages are disabling/enabling gestures, blocking/receiving vertical/horizontal and gutter and inertia for single finger panning.
  • Page 18 Register to receive touch input messages: LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message) // pass touch messages to the touch handler case WM_TOUCH: OnTouch(hWnd, wParam, lParam); break; Handle the messages: LRESULT OnTouch(HWND hWnd, WPARAM wParam, LPARAM lParam ){ BOOL bHandled = FALSE;...
  • Page 19: Wpf Stylus Events

    if (bHandled){ // if you handled the message, close the touch input handle and return CloseTouchInputHandle((HTOUCHINPUT)lParam); return 0; }else{ // if you didn't handle the message, let DefWindowProc handle it return DefWindowProc(hWnd, WM_TOUCH, wParam, lParam); Consider the following when handling WM_TOUCH: Pass unconsumed messages to DefWindowProc to ensure all messages are ...
  • Page 20 the two contact points using stylus events in his blog. First, he enabled touch events to the application. Then he subscribed to stylus events and identified the two touch points via the touch IDs. In the example, two squares, one black and one red appear at the touch down locations.
  • Page 21 #endregion #region Constructors/Initialization public Window1() InitializeComponent(); // here's the first thing you need to do. upon window load, you want to set the tablet // property to receive multi-touch data. You need to the window loaded to ensure the handle is created. this.Loaded += new RoutedEventHandler( delegate(object sender, RoutedEventArgs args) var source = new WindowInteropHelper(this);...
  • Page 22 Touch2ID = e.StylusDevice.Id; // move the rectangle to the given location Touch2.SetValue(Canvas.LeftProperty, p.X - Touch2.Width / Touch2.SetValue(Canvas.TopProperty, p.Y - Touch2.Height / void Window1_StylusMove(object sender, StylusEventArgs e) Point p = e.GetPosition(this); // determine which contact this belongs to if (Touch1ID == e.StylusDevice.Id) // move the rectangle to the given location Touch1.SetValue(Canvas.LeftProperty, p.X - Touch1.Width / Touch1.SetValue(Canvas.TopProperty, p.Y - Touch1.Height /...
  • Page 23 You may also refer to the touch sample and wrappers in Windows 7 Multitouch .NET Interop Sample Library at Windows Touch: Developer Resources (http://code.msdn.microsoft.com/WindowsTouch). NET touch wrappers for managed WinForms and WPF .
  • Page 24: What To Consider When Developing Touch Applications For Multiple Windows Versions

    What to Consider When Developing Touch Applications for Multiple Windows Versions Flick left and flick right have opposite meanings in Windows Vista® and  Windows 7®. Flick left is synthesized to back command in Windows Vista® where flick right is forward command in Windows 7®. Flick right translates to forward command in Windows Vista®, and back command in Windows 7®.
  • Page 25: Hp Dx9000 Specifics

    HP dx9000 Specifics The HP dx9000 touchscreen provides: NextWindow optical imaging technology  HID compliant USB plug-and-play interfaceA maximum of two-touch recognition  (recording no more than two contact points from fingers or stylus pens) No pressure detection at the touch or contact points ...
  • Page 26: Enabling /Disabling The Touch Device

    Enabling /Disabling the Touch Device To disable the touch device: 1. Select Control Panel > Device Manager > Human Interface Devices. 2. Right-click on each USB Human Interface Device and select Properties > Details 3. Select Hardware IDs in the Property dropdown. If Value shows the following device ID, then the device is the touch device: USB\VID_1926&PID_0003&MI_02 4.
  • Page 27: Hp Touchsmart 9100 Specifics

    brightness of the display). Although you cannot change the temporary display brightness using the function keys, you can still adjust the permanent display brightness by accessing Control Panel > System and Maintenance > Power Options > Adjust the display brightness. HP TouchSmart 9100 Specifics The touchscreen of HP TouchSmart 9100 provides: Optical imaging technology...
  • Page 28: Changing Touchsmart Style With Hp Touchsmart Style Utility

    Changing TouchSmart Style with HP TouchSmart Style Utility HP TouchSmart Style Utility allows you to change HP TouchSmart software operating style from "basic" to "ultimate" and vice versa. The operating style differences are explained below. HP TouchSmart Software Basic Style When operating in the “basic”...
  • Page 29: Disabling/Retasking Volume Side Buttons

    HP System Configuration Schema Version 1.0 Schema <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hpcfg="urn:HPSystemConfiguration" targetNamespace="urn:HPSystemConfiguration" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> <!-- This schema specifies the form of the XML meta-data for the system configuration of a Hewlett-Packard system. --> <xs:element name="HPSystemConfiguration" type="hpcfg:HPSystemConfiguration" /> <!--...
  • Page 30 Types related to the information of a button --> <xs:simpleType name="ButtonId"> <xs:annotation> <xs:documentation>The unique name of a button.</xs:documentation> </xs:annotation> <xs:restriction base="xs:token"> <xs:enumeration value="VolumeMuteButton"/> <xs:enumeration value="VolumeUpButton"/> <xs:enumeration value="VolumeDownButton"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ButtonActionValue"> <xs:annotation> <xs:documentation>The data associated with the button action</xs:documentation> </xs:annotation> <xs:restriction base="xs:string">...
  • Page 31: Example 1 - Xml To Disable All Side Volume Buttons

    Enable side volume down button and re-task it to launch Microsoft Internet  Explorer with the link to Google search for the phrase “Hewlett-Packard Company”. Auto-repeating is disabled. When the side volume down button is pressed and held, it will behave similar to when the button is pressed exactly...
  • Page 32: Example 3 - Xml To Re-Task Side Volume Buttons To Control Display Brightness And Toggle The Display On/Off

    <?xml version="1.0" encoding="UTF-8"?> <HPSystemConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:HPSystemConfiguration" xsi:schemaLocation="urn:HPSystemConfiguration HPSystemConfiguration.xsd" SchemaVersion="1.0"> <Buttons> <Button Id="VolumeUpButton" Enabled="true" AutoRepeatEnabled="false" Action="LaunchExecutable" ActionValue="C:\MyTest.bat param1 /param2 - param3 &quot;c:\test1\test2\test3.bat&quot; -param5:&quot;param5 value&quot;" /> <Button Id="VolumeMuteButton" Enabled="false" /> <Button Id="VolumeDownButton" Enabled="true" AutoRepeatEnabled="false" Action="LaunchExecutable" ActionValue="&quot;C:\Program Files\Internet Explorer\iexplore.exe&quot; http://www.google.com/search?hl=en&amp;q=hewlett+packard+company&amp;aq=0& amp;oq=hewlett+packard+com&amp;aqi=g10" /> </Buttons> </HPSystemConfiguration>...
  • Page 33: Example 4 - Xml To Retask Volume Mute Button To Cleaning Mode

    CleaningMode.cmd file for this example: @echo off set PrgFiles=%ProgramFiles(x86)% if "%PROCESSOR_ARCHITECTURE%"=="x86" set PrgFiles=%ProgramFiles% REM call HP Maintenance Utility to set the system to hibernate for 2 minutes "%PrgFiles%\Hewlett-Packard\HP Maintenance Utility\HPMaintUtility.exe" /hibernate /minutes:2 Button Element Attribute Summary Attribute Valid Value Note...
  • Page 34 Attribute Valid Value Note range of 200-4000 button to repeat the simulation of a button click if the button is pressed and held for a moment of time. The whole button element is ignored if AutoRepeatInterval value is outside of the valid range. Action LaunchExecutable, MuteVolume,...
  • Page 36: References

    References Application Gestures http://msdn.microsoft.com/en-us/library/ms698540(VS.85).aspx Flick Gestures http://msdn.microsoft.com/en-us/library/ms694980(VS.85).aspx Flick API Reference http://msdn.microsoft.com/en-us/library/ms698531(VS.85).aspx Programming Tablet and Touch http://msdn.microsoft.com/en-us/library/ms698573(VS.85).aspx Supporting Pen and Touch Input http://msdn.microsoft.com/en-us/library/ms698149(VS.85).aspx Touch http://msdn.microsoft.com/en-us/library/cc872774.aspx Touch Input Support in Windows Vista http://msdn.microsoft.com/en-us/library/ms699430(VS.85).aspx Using Gestures http://msdn.microsoft.com/en-us/library/ms698569(VS.85).aspx Windows 7 Multi-touch Using WPF (NEW) http://blog.andreweichacker.com/2009/02/windows-7-multi-touch-using-wpf/ Windows Touch (NEW) http://msdn.microsoft.com/en-us/library/dd562197(VS.85).aspx...
  • Page 37: Call To Action

    Start building touch applications to take advantage of the touch-enabled  platforms. © 2009 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services.

This manual is also suitable for:

Touchsmart dx9000Touchsmart 9100

Table of Contents