HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

  • Upload
    kenw

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    1/39

    Hewlett Packard Development Guidelines Page 1 of 39

    HP TouchSmart SDK Development Documentation -Hosted Application Development Guidelines

    Version 3.0

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    2/39

    Hewlett Packard Development Guidelines Page 2 of 39

    0 Legal Agreement

    PLEASE READ CAREFULLY: USE OF TOUCHSMART SDK DEVELOPMENTDOCUMENTATION AND SOFTWARE AVAILABLE AT THIS SITE IS SUBJECT TO THE

    TERMS AND CONDITIONS THAT FOLLOW. IF YOU AGREE TO THESE TERMS, PLEASE

    CHOOSE THE I ACCEPT OPTION LOCATED ADJACENT TO THE SCREEN WHERE THIS

    AGREEMENT IS DISPLAYED. IF YOU DO NOT AGREE TO THESE LICENSE TERMS, PLEASE

    CHOOSE THE I DO NOT ACCEPT OPTION AND DO NOT DOWNLOAD THE SDK

    DEVELOPMENT DOCUMENTATION AND SOFTWARE FROM THIS SITE.

    HP TOUCHSMART SDK DEVELOPMENT DOCUMENTATION AND SOFTWARE LICENSE

    AGREEMENT

    This HP TouchSmart SDK Development Documentation and Software License Agreement (the

    Agreement) is a legal agreement between (a) you, either as an individual or a single entity,

    (Licensee) and Hewlett-Packard Company (HP) that governs your use of the SDK Development

    Documentation and HP software (Licensed Software) made available by HP.

    USE OF THIS TOUCHSMART SDK DEVELOPMENT DOCUMENTATION AND SOFTWARE ISOFFERED ONLY ON THE CONDITION THAT YOU AGREE TO ALL TERMS AND

    CONDITIONS OF THIS AGREEMENT. BY DOWNLOADING, COPYING, OR USING THE

    TOUCHSMART SDK DEVELOPMENT DOCUMENTATIONAND\OR SOFTWARE YOU AGREETO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT ACCEPT THIS

    AGREEMENT, DO NOT USE THE TOUCHSMART SDK DEVELOPMENT DOCUMENTATION

    AND SOFTWARE.

    1. DEFINITIONS.

    HP TouchSmart Software Environment means the software interface that runs on the HP TouchSmart line

    of personal computer products, which enables the use of a Microsoft Windows operating system andcompatible application software by means of touching the display screen to launch and use such software.

    Licensed Software means the software programs owned or distributed by HP and licensed to Licenseeunder the Agreement.

    Licensees Programs means those software applications developed by Licensee using or with reference tothe TouchSmart SDK Development Documentation and/or Licensed Software that are intended to operate

    with HP TouchSmart line of personal computer products and designed to launch from within the HPTouchSmart Software Environment.

    2. LICENSED SOFTWARE. The Licensed Software contains a collection of source code and binary code

    thatpermits Licensee to develop Licensees Programs that operatewith HPs TouchSmart line of personalcomputer products, which enables the use of a Microsoft Windows operating system and compatible

    application software by means of touching the display screen to launch and use such software. The LicensedSoftware contains:

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    3/39

    Hewlett Packard Development Guidelines Page 3 of 39

    Two TouchSmart sample applications, including code for each of the two applications

    A sample Windows Installer XML template for creating an MSI

    A blank WPF application template for creating TouchSmart applications

    3. LICENSE GRANT. HP grants Licensee a non-exclusive, non-transferable, revocable license to use theTouchSmart SDK Development Documentation solely for development and testing ofLicensees Programsas defined herein. HP further grants Licensee a non-exclusive, non-transferable, revocable license in the

    Licensed Software to (i) use one copy solely for development and testing ofLicensees Programs as definedherein and (ii) reproduce, modify, and distribute only those parts of the Licensed Software incorporated into

    Licensees Programs, and only in binary form. Licensee shall not use the Licensed Programs for any otherpurpose.

    4. OWNERSHIP. The TouchSmart SDK Development Documentation are owned and copyrighted by HP.

    The Licensed Software is owned and copyrighted by HP or its third party suppliers. This Agreement confersno title or ownership in the TouchSmart SDK Development Documentation or the Licensed Software and is

    not a sale of any rights in the TouchSmart SDK Development Documentation or the Licensed Software.Licensee will own Licensees Program created solely for the purpose described above; provided however,nothing herein shall prevent HP or its partners, resellers or customers from implementing the same

    functionality or independently creating the same or similar derivative work and therefore you grant to HP a

    perpetual, irrevocable, sub-licensable, world-wide license to the derivative work for the purpose ofpermitting HP or its partners, resellers or customers to independently implement the same functionality or

    create the same or similar derivative work. HPs third party suppliers may protect their rights in the event of

    any violation of these License Terms.

    5. COPIES. Licensee may only make copies of the TouchSmart SDK Development Documentation for

    archival purposes or, if you are a company, for use by your employees to develop or test Licensees

    Programs as permitted in this Agreement. Licensee may only make copies or adaptations of the LicensedSoftware for archival purposes or when copying or adaptation is an essential step in the authorized use of the

    Licensed Software. You must reproduce all copyright notices in the TouchSmart SDK Development

    Documentation and the Licensed Software and all copies and adaptations thereof. Licensee may not copy the

    TouchSmart SDK Development Documentation or the Licensed Software onto any bulletin board, web site,or other publicly available repository, or otherwise distribute them to third parties, unless otherwise stated

    herein. You may not modify or make derivative works of the TouchSmart SDK Development

    Documentation.

    6. NO DISASSEMBLY OR DECRYPTION. You may not disassemble, decompile or decrypt any object

    code portions of the Licensed Software unless it is an essential step in the authorized use of the Licensed

    Software. In some jurisdictions, HPs consent may not be required for disassembly or decompilation.

    7. CONFIDENTIAL INFORMATION. The Licensed Software is the confidential information of HP and

    you will treat it with the same degree of care, but no less than reasonable care, as you take to safeguard yourown confidential information of a like kind from unauthorized use or disclosure.

    8. TRANSFER. You may not assign, rent, lease or otherwise transfer the TouchSmart SDK DevelopmentDocumentation or the Licensed Software.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    4/39

    Hewlett Packard Development Guidelines Page 4 of 39

    9. TERMINATION. This Agreement is effective until terminated or rejected. HP may terminate yourlicense upon notice for failure to comply with any of the terms of this Agreement. Upon termination, you

    must immediately destroy the TouchSmart SDK Development Documentation and the Licensed Software,

    together with all copies in any form.

    10. U.S. GOVERNMENT RESTRICTED RIGHTS. The TouchSmart SDK Development Documentation

    and the Licensed Software have been developed entirely at private expense and are provided as Commercial

    Computer Software or restricted computer software. Use, duplication or disclosure by the U.S.Government or a U.S. Government subcontractor is subject to the restrictions set forth in subparagraph (c)

    (1) (ii) of the Rights in Technical Data and Computer Software clauses in DFARS 252.227-7013 or as set

    forth in subparagraph (c) (1) and (2) of the Commercial Computer Software Restricted Rights clauses atFAR 52.227-19, as applicable. The Contractor is Hewlett-Packard Company, 3000 Hanover Street, Palo

    Alto, California 94304.

    11.GOVERNING LAW. The Agreement shall be construed and interpreted in accordance with the law of

    the State of New York (except choice of law rules).

    12. NO WARRANTY. THE TOUCHSMART SDK DEVELOPMENT DOCUMENTATION AND THELICENSED SOFTARE ARE PROVIDED AS IS, WITH ALL FAULTS, AND WITHOUT WARRANTY

    OF ANY KIND. HP HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, WHETHER

    EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF

    TITLE AND NON-INFRINGEMENT, ANY IMPLIED WARRANTIES, DUTIES OR CONDITIONS OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR

    COMPLETENESS. YOU ASSUME THE ENTIRE RISK RELATING TO THE USE OR

    PERFORMANCE OF THE TOUCHSMART SDK DEVELOPMENT DOCUMENTATION AND THELICENSED SOFTWARE.

    13. NO SUPPORT. HP does not provide support for the TouchSmart SDK Development Documentation

    and the Licensed Software or their uses. HP will not provide assistance for the development or testing of

    Licensees Programs, or support for Licensees Programs to end users.

    14. NO OTHER OBLIGATIONS. HPs obligations with respect to its products and services are governedsolely by the agreements under which they are provided and nothing in this Agreement alters such

    agreements. HP may make changes to the HP TouchSmart Development Environment, the TouchSmart

    SDK Development Documentation, Licensed Software, or the products described in them, at any timewithout notice. The TouchSmart SDK Development Documentation and the Licensed Software may be out

    of date, and HP makes no commitment to update them.

    15. LIMITATION OF LIABILITY. IN NO EVENT SHALL HP BE LIABLE FOR ANY DIRECT,INDIRECT, GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING

    BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER

    INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF

    PRIVACY ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OR INABILITY TO USETHE TOUCHSMART SDK DEVELOPMENT DOCUMENTATION, HOSTED APPLICATIONS,

    LICENSED SOFTWARE AND/OR LICENSEES PROGRAMS OR OTHERWISE, WHETHER BASED

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    5/39

    Hewlett Packard Development Guidelines Page 5 of 39

    ON CONTRACT, TORT OR ANY OTHER LEGAL THEORYEVEN IF HP HAS BEEN ADVISED OF

    THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF THE REMEDY FAILS OF ITS ESSENTIALPURPOSE.

    16. CAPACITY AND AUTHORITY TO CONTRACT. You represent that you are of the legal age of

    majority in your state of residence and, if applicable, you are duly authorized by your employer to enter intothis Agreement.

    17. ENTIRE AGREEMENT. This Agreement is the entire agreement between you and HP relating to theTouchSmart SDK Development Documentation and the Licensed Software and supersedes all prior or

    contemporaneous oral or written communications, proposals and representations with respect to the

    TouchSmart SDK Development Documentation, Licensed Software, or any other subject matter covered bythis Agreement.

    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. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable fortechnical or editorial errors or omissions contained herein.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    6/39

    Hewlett Packard Development Guidelines Page 6 of 39

    HP TouchSmart Hosted Application Development Guidelines...................................................... 1

    0 Legal Agreement ...................................................................................................... 21 About this document ................................................................................................ 82 Background .............................................................................................................. 8

    2.1 The HP TouchSmart software environment ............................................................. 9

    2.2 Screen Resolution and InfoView layout switching guidelines ............................... 112.2.1 InfoView layout switching guidelines .................................................................... 11

    3 Requirements and recommendations ...................................................................... 12

    3.1 User interaction design requirements ..................................................................... 123.1.1 Size touch targets correctly ..................................................................................... 13

    3.1.2 Position touch targets correctly ............................................................................... 13

    3.1.3 Favor touch interaction over input from the physical keyboard and mouse inputdevices .................................................................................................................... 13

    3.1.4 Limit the amount of text entry per page.................................................................. 13

    3.1.5 Do not define behaviors that require mouse hovers ................................................ 14

    3.1.6 Do not use context or pop-up menus ...................................................................... 14

    3.1.7 Tasks should be transactional ................................................................................. 143.1.8 [Removed]............................................................................................................... 14

    3.1.9 UI elements or controls must automatically scale or size to fit localized content .. 14 3.1.10 Follow the conventions that Microsoft sets for touch gestures ........................... 14

    3.2 Implementing multi-touch support ......................................................................... 15

    3.2.1 HP TouchSmart multi-touch support ...................................................................... 16

    3.3 Technical requirements for compatibility .............................................................. 163.3.1 Do not use DirectX exclusive ................................................................................. 16

    3.3.2 Hosted applications must have only one main window for the lifetime of the

    process .................................................................................................................... 163.3.3 One InfoView per instance of a hosted application ................................................ 173.3.4 Do not use modal windows or dialogs .................................................................... 17

    3.3.5 Support resize and positioning window messages .................................................. 17

    3.3.6 Do not show chrome or non-client area of the window, particularly the move andresize controls ......................................................................................................... 18

    3.3.7 No irregularly shaped windows .............................................................................. 18

    3.3.8 Do not attempt to control the cursor ....................................................................... 193.3.9 Hosted applications must not appear outside of HP TouchSmart ........................... 193.3.10 [Removed]............................................................................................................... 19

    3.3.11 [Removed]............................................................................................................... 193.3.12 Application must run under 32-bit and 64-bit Windows Vista and later......... 193.3.13 Application must support MUI ............................................................................... 20

    3.3.14 [Removed]............................................................................................................... 20

    3.3.15 Applications must require a parameter to launch in chromeless mode .................. 203.3.16 Applications can use the TouchSmart notification protocol to trigger notification

    messages to appear in the anchor bar ..................................................................... 20

    3.3.17 [Removed]............................................................................................................... 23

    3.3.18 The hosted application must only draw the portion of the InfoView within theframe of the InfoView ............................................................................................ 23

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    7/39

    Hewlett Packard Development Guidelines Page 7 of 39

    3.3.19 The application can use the SmartCenter request protocol to launch a web browser

    or to navigate to a hosted application ..................................................................... 253.3.20 Hosted applications should provide a suitable icon ................................................ 263.3.21 Font family recommendations ................................................................................ 26

    3.3.22 Hosted applications must scale their content to support different screen resolutions

    and high DPI / large text size ................................................................................. 273.3.23 Hosted applications must initially start off-screen at the wide-interactive layout

    window size ............................................................................................................ 27

    3.3.24 Programmatically adding an InfoView tile into SmartCenter ................................ 283.3.25 TouchSmart hosted application communication happens via registered window

    messages ................................................................................................................. 35

    3.3.26 Concerns about system-wide shared resources ....................................................... 363.3.27 Hosted applications must be designed to be aware of the system power states. .... 36 3.3.28 Special considerations for .NET applications with digital signatures .................... 36

    3.3.29 SmartCenter command-line arguments................................................................... 36

    4 Document History .................................................................................................. 37

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    8/39

    Hewlett Packard Development Guidelines Page 8 of 39

    1 About this documentThis document lists the key behaviors and design features intended to help developers optimize

    their software user experience for touch interaction underHP TouchSmart. Software developed

    for HP touch-enabled All-in-One desktop PCs should adhere to these guidelines to:1) Work correctly within the main touch software environment (HP TouchSmart)

    2) Reflect UI design guidelines forHP TouchSmartapplications

    2 BackgroundHP has updated its touch-screen optimized software with the release of the TouchSmart PC

    300/600 series. Building on the HP TouchSmart 2.x concept from the IQ500/800 series, HP has

    revised the user interface to allow for more interaction with the hosted applications while the

    user remains on the home page of HP TouchSmart 3.0.

    Touch-optimized software must meet certain requirements to work correctly within HP

    TouchSmart.

    The requirements covered in this document apply to applications that will be hosted withinHPTouchSmart. HP presents live views of a mix of active touch applications from within the HP

    TouchSmarthosting application. Conceptually, HP programmatically assigns these hostedapplications screen real estate within theHP TouchSmartwindow. This screen real estate

    appears visually to the user as a tile in theHP TouchSmartUI. As long as the requirements

    outlined in this document are met,HP TouchSmartmanages how the tile appears and willreposition and resize the tile in response to the user directly manipulating the tile. Applications

    that do not meet the requirements may not display correctly within the HP TouchSmart

    environment.

    This document uses the term InfoView to describe the main UI window of the hosted application

    that appears as part of theHP TouchSmartUI.

    The InfoView may vary the layout/arrangement of its content depending on its size (or the size

    of its tile, depending on point of view). The visual design for HP TouchSmart 3.0 requires that

    hosted applications provide layouts corresponding to four basic tile sizes: small, medium, wide-interactive, and large. Tiles in small and medium size do not receive input (the user can not

    interact with the content in the tile.) Tiles in wide-interactive and large size do receive input (the

    user is able to interact with the content in the tile.) The application implementing the InfoView

    for a particularHP TouchSmarttile will have the opportunity to vary the content and the layoutof the content based on sizes defined later in this document.

    Hosted applications will not seem to the user to run as stand-alone applications (although they

    are regular Windows applications) and should not be designed to launch from outsideHP

    TouchSmart. A hosted application must not have any shortcuts or links to its executable files,

    implying that it will not appear on the Windows Desktop as an icon or as a link on the Start\All

    Programs menu.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    9/39

    Hewlett Packard Development Guidelines Page 9 of 39

    Under theHP TouchSmart 3.0 design, a hosted application will run as a Windows application

    whose UI window meets certain guidelines that allows it to be integrated with the userexperience controlled by another application: the HP TouchSmart hosting application called

    SmartCenter.exe.

    A user will be able to launch and use a hosted application only from withinHP TouchSmart

    .

    2.1 The HP TouchSmart software environment

    For the remainder of this document,HP TouchSmart, HP TouchSmart, SmartCenter and HPSmartCenter will be used interchangeably to refer to theHP TouchSmart3.0 hosting

    environment.

    HP TouchSmart terms illustrated 1/2

    Bottom Section

    Top Section

    Medium Layout

    Small LayoutSmall Layout

    Home Button

    Anchor Bar

    LargeLayout

    A.k.a. InfoView

    Media Plate

    Media info

    Wide-interactive Layout

    Minimize/Close

    Figure 1: The default view of SmartCenter hosts the main window of a hosted application

    as an InfoView. Each hosted application may only have one InfoView. This InfoView maps

    to the main window initially associated with the application when its process launches. The

    InfoView may have small, medium, wide-interactive, and large layouts to allow it to display

    a UI appropriate for the size of the display area. HP TouchSmart 3.0 introduces the

    minimize/close buttons on the main SmartCenter window. Depending on certain conditions,

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    10/39

    Hewlett Packard Development Guidelines Page 10 of 39

    SmartCenter will either display wide-interactive tiles or medium tiles, but never a mix of

    the two.

    HP TouchSmart terms illustrated 2/2

    Bottom Section

    Top Section

    Home Button

    Anchor Bar

    Media Plate

    Media info

    FixedArea

    Anchor

    Area

    Minimize/Close

    Figure 2: The user is able to move a tile from the bottom section to the top section, or vice

    versa. When a tile is moved from the bottom section to the top section, the executable is

    started by SmartCenter. When a tile is moved from the top section to the bottom section,

    the executable is stopped. Launching the hosted application causes SmartCenter to start

    the executable (if not already running) and to position the InfoView to occupy the entire

    fixed area. Note that the Anchor Bar is implemented by SmartCenter and not by the hosted

    application. SmartCenter 3.0 will no longer define a floating area such that the top section

    can expand at the expense of the bottom section. In addition, the home button will only

    display when a hosted application displays on the fixed area in large layout. The

    Minimize/Close buttons will only display when both the top and bottom sections are shown,

    with the top section containing either the medium or wide-interactive tiles.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    11/39

    Hewlett Packard Development Guidelines Page 11 of 39

    3rd party ApplicationsFour layouts:

    Large

    Wide-interactive

    Medium

    Small

    Application Window:

    Flat, i.e.

    No popups

    No tooltips

    No menus

    No dropdowns

    No auxiliary

    modal or

    modeless

    windows

    12

    12

    12

    New Note New Video

    Large

    MediumSmall

    No controls!

    12

    New Note New Video

    Wide-interactive

    Figure 3: The main window of a hosted application must be flat. That is, it must only

    have one top level window. Some implementations of drop down menus, tool tips, popup

    windows, and the like will not display correctly, and these are strongly discouraged as a

    result.

    2.2 Screen Resolution and InfoView layout switching guidelinesThe HP TouchSmart PC lineup contains touch screens in the following sizes and resolutions:

    Touch screen size Aspect ratio Resolution

    25.5 16:10 1920x1200

    23 16:9 1920x1080

    22 16:10 1680x1050

    20 16:9 1600x900

    19 16:10 1440x900

    13.3 16:9 1366x768

    12.1 16:10 1280x800

    2.2.1 InfoView layout switching guidelines

    Since the user is able to move InfoViews between the top and bottom section, an InfoView will

    most likely have to change state/layout during its lifetime. This also applies when the user

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    12/39

    Hewlett Packard Development Guidelines Page 12 of 39

    launches a hosted application by touching or clicking on the small, medium or wide-interactive

    InfoView representation of the hosted application. In the case of a wide-interactive InfoView the

    user has to touch or click the window chrome provided by HP TouchSmart to launch thehosted application.

    To determine when to change the layout from a small layout to a medium layout, from a mediumlayout to a wide-interactive layout, and from a wide-interactive layout to large layout, use the

    following table. The sizes are specified as a percentage of the screen display width and height.

    The numbers in the table below represent good sizing boundaries that work well in practice.

    For example, the hosted application should transition from a wide-interactive layout to a large

    layout when the InfoView window size is greater than 90% of the display width and 85% of thedisplay height. The hosted application should transition from a medium layout to a small layout

    when the InfoView window size is less than 19% of the display width and 29% of the display

    height.

    Hosted Application InfoView Layout

    Percentages Width Height

    Large Layout > 0.90 0.85

    Wide Interactive Layout> 0.67 0.60

    Medium Layout > 0.30 0.56

    Small Layout < Medium Layout

    Note: SmartCenter 3.0 doesnt use Small Layout, but this does not mean that support for this

    layout should not be implemented. Tiles that show in the bottom section work only as

    shortcuts. When the user taps a tile in the bottom section, SmartCenter will eitherstart the

    Windows program that the tile represents, or start the hosted application that the tile representsand transition to that tiles large layout.

    Note: The transition points noted in the table above have changed with TouchSmart 3.0. For

    TouchSmart 2.x the sizes were: Large Layout > 0.68 (width) and 0.74 (height); Medium Layout> 0.19 (width) and 0.29 (height). This information may help developers who want to provide

    support for both 2.x and 3.0.

    3 Requirements and recommendations

    3.1 User interaction design requirementsThe user interaction for the application must be designed for touch input. To be considered

    touch-optimized, an application must exhibit certain characteristics.

    This section of the requirements lists a number of design guidelines or rules that HP has found

    work well for touch interactions.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    13/39

    Hewlett Packard Development Guidelines Page 13 of 39

    3.1.1 Size touch targets correctly

    Any target designed to be touched (or logically corresponding to a mouse click) must be large

    enough to be selected with a human finger. The recommended minimum target size is 13 mm by

    13 mm. Please note that this is a physical measurement, not a pixel count. Screen resolution andDPI settings may change how this size needs to be mapped to pixel counts.

    3.1.2 Position touch targets correctly

    Any target designed to be touched must be a minimum of 5 to 10 mm away from the edge of thescreen, if the user interface window for the application displays in full-screen or if the

    application window is placed on the edge of the viewable desktop. Likewise, the centers of two

    adjacent touch targets should be a minimum of 20 mm apart. Please note again, these are

    physical measurements, not pixel counts. Screen resolution and DPI settings need to be takeninto account when positioning controls that are designed to be touched.

    3.1.3 Favor touch interaction over input from the physical keyboard andmouse input devices

    The user interface should be designed to minimize the amount of input that requires the physical

    keyboard and mouse. The HP touch-optimized systems are designed to be used with the physicalkeyboard stored away when in touch-mode. Although the user can get to the keyboard, as when

    switching to a standard Windows application not optimized for touch, getting the keyboard out

    will seriously detract from the touch experience.

    Minimize use of all text entry. Instead, the application should favor user controls thatprovide a fixed set of choices (e.g. list-controls, spinner boxes, radio buttons, checkboxes,

    etc). If the user must enter text, then the application should try to limit the amount of

    required text, provide a reasonable default, and work with an on-screen keyboard. (Theuse of an on-screen keyboard may introduce additional layout restrictions to

    accommodate the on-screen keyboard in a way that does not obscure the application UI.)

    Avoid relying on right-/secondary-button mouse clicks to initiate actions.

    Avoid relying on keyboard keys to modify the meaning of mouse or touch input. Forinstance, a control key + left-button mouse click to select multiple items cannot be done

    with just touch input.

    Avoid mouse inputs that do not have a touch-input equivalent defined.

    3.1.4 Limit the amount of text entry per page

    This rule is a corollary to the above one. Applications are allowed to have text edit fields,

    particularly if the application supports an onscreen keyboard. However, entering in a lot of text

    from an on-screen keyboard can be cumbersome.

    If a text entry field is required, the amount of text the user is expected to enter to complete the

    transaction should be kept to a minimum. HP suggests placing any text input fields at the top half

    of the screen. This should give room for the Microsoft Tablet-PC Input Panel (TIP) on-screen

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    14/39

    Hewlett Packard Development Guidelines Page 14 of 39

    keyboard (OSK) to appear without covering up any input fields. HP recommends using the

    Microsoft Tablet-PC Input Panel rather than implementing your own on-screen keyboard.

    3.1.5 Do not define behaviors that require mouse hovers

    User controls must not use hover behavior, since hover does not occur with the touch technologyemployed by the HP TouchSmart PC.

    3.1.6 Do not use context or pop-up menus

    Applications should not use context menus in their user interfaces, since these are problematic to

    use with touch. In addition, SmartCenter may not correctly display child windows or any otherwindow than the applications main window. Thus, applications should have a flat design.

    Application developers familiar with developing applications for Windows Media Center and

    the remote control as an input device will understand that flat means the UI should not have

    multiple top level windows, such that the input focus might be in one window versus another.

    While the user interaction itself may not be problematic, the mechanism used to integrate the UI

    from the hosted applications with the UI from SmartCenter may have trouble recognizing that itneeds to show the pop-up menu with the hosted application that generated it. Please refer to the

    section on technical restrictions for more detail.

    3.1.7 Tasks should be transactional

    Keep each task simple enough that a user can complete the task in a few seconds. Using avertical touch screen forces the user to hold his/her arm up, which can lead to fatigue within a

    few minutes. Minimizing the amount of time the user needs to hold his/her arm up is crucial for

    improving usability.

    3.1.8 [Removed]

    3.1.9 UI elements or controls must automatically scale or size to fit localizedcontent

    The text inside of a UI element or user control, like a button or textbox, may vary in length from

    language to language. The controls must be designed to accommodate the different string lengths

    automatically to avoid truncating or incorrectly displaying strings.

    3.1.10Follow the conventions that Microsoft sets for touch gestures

    If possible, applications should strive to provide tier 2 or 3 multi-touch support. According to

    the Microsoft white paper, Developer Enhancements to Windows for Touch and Tablet:

    Applications in the second tier have some optimization for specific messages. For example,these applications will use the center point of a pinch or zoom gesture, rather than zoom directlyto the center of a picture.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    15/39

    Hewlett Packard Development Guidelines Page 15 of 39

    Applications in the third tier are full multitouch applications. These applications will be designedspecifically for use only on multitouch hardware; for example, a multitouch game wheremultitouch gestures and multiple input points are used to manipulate objects on screen.

    3.2 Implementing multi-touch support

    Applications should implement both the HP TouchSmart multi-touch support and Windows 7

    multi-touch API to ensure that multi-touch information is received by the application from either

    the OS, HP TouchSmart, or both.

    Note: For Windows 7 multi-touch APIs, please refer to the Windows 7 SDK.

    HP has shipped version 2.x of HP TouchSmart only on Windows Vista systems and HPTouchSmart 3.0 only on Windows 7 systems. Since some customers may upgrade from

    Windows Vista to Windows 7, hosted applications may need to support both HPs 2.x multi-

    touch implementation and Windows 7s multi-touch implementation, depending on business

    requirements/desires.

    Thus, multi-touch information may not be provided by the OS but the information may be

    provided by an HP TouchSmart touch service, or vice versa. For example, the user may haveTouchSmart 2.x, originally using the Windows Vista OS, and may have upgraded to the

    Windows 7 OS. In this scenario, the Windows 7 touch drivers may not be installed on the

    system, and Windows 7 would not provide applications with multi-touch information. So, inorder to provide multi-touch support to users, applications could use the registered window

    messages defined by HP TouchSmart 2.x. Please refer to the table below to see when the OS or

    HP TouchSmart will send out multi-touch events.

    Shipping Windows 7 Vista upgraded to Windows 7 (old hardware)New hardware will be usedand corresponding driverswill be provided.

    If the drivers are not provided,OS cannot use the hardware.

    If the drivers are providedsuch that OS can use thehardware.

    HP Touch Service will notbe shipped

    If TouchService isinstalled

    If TouchService is notinstalled

    If TouchService isinstalled

    If TouchService is notinstalled

    OS provides touch events HP Touch Service

    provides events

    No touch events Both OS and

    Touch service

    will provide the

    events.NOTE:

    Therefore it is

    up to the apps

    to decide which

    events it should

    consider or

    consider both.

    OS provides

    touch events.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    16/39

    Hewlett Packard Development Guidelines Page 16 of 39

    3.2.1 HP TouchSmart multi-touch support

    Single touch information may arrive as either mouse or stylus input and should be handled

    appropriately.

    Additional touch information will arrive as three registered messages posted to the foreground

    window and be somewhat similar to the windows messages whose name is embedded in the listbelow. Please refer to the Windows Software Development Kit for the

    RegisterWindowMessage function and the WM_* message definitions.

    RegisterWindowMessage_WM_MOUSEMOVE = 98c4179f-2fef-11dc-a000-001a6b408264RegisterWindowMessage_WM_LBUTTONDOWN = 98c417a0-2fef-11dc-a000-001a6b408264RegisterWindowMessage_WM_LBUTTONUP = 98c417a1-2fef-11dc-a000-001a6b408264

    For these three messages, the wParam will encode the x-coordinate of one touch as the low-order

    word and the y-coordinate of one touch as the high-order word. The lParam will encode the x-coordinate of a second touch as the low-order word and the y-coordinate of a second touch as the

    high-order word.

    Coordinates will be relative to the upper-left corner of the client area and extend from zero to the

    horizontal screen resolution horizontally and from zero to the vertical screen resolution vertically.

    Interpretation of these multi-touch messages should be as follows:

    RegisterWindowMessage_WM_LBUTTONDOWN will signal an initial position of two touches,

    but only the distance between and midpoint position with respect to both should be viewed as

    valid.

    Subsequent RegisterWindowMessage_WM_MOUSEMOVE messages will yield distances that

    increase and/or decrease. Increases should correspond to an appropriate expand operation, whiledecreases should correspond to an appropriate contract operation.

    Movement of the midpoint position in a substantially vertical or horizontal direction without

    significant change in the aforementioned distance should correspond to an appropriate scrolloperation.

    3.3 Technical requirements for compatibility

    3.3.1 Do not use DirectX exclusive

    The application must not use DirectX exclusive mode. (E.g. SmartCenter will be unable todisplay Windows Media Center in full-screen because it runs in DirectX exclusive mode.)

    3.3.2 Hosted applications must have only one main window for the lifetimeof the process

    Child windows are not supported, and vendors are advised to avoid using them. The application

    should not use pop-ups or dialog boxes, and if these are needed, you are advised to simulate

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    17/39

    Hewlett Packard Development Guidelines Page 17 of 39

    these within the primary window(s). Instead, the ideal application UI will only have one window.

    Due to the technology that HP is using to manage hosted applications, pop-up and child windowsmay not be displayed.

    Note: The hosted application should be designed such that its main window handle becomes

    available and is discoverable within a very short period of time after launching theapplication. The hosted application needs to stay responsive to window messages duringstartup in order to process sizing and positioning messages that SmartCenter will cause to be

    sent to the application window. In addition, the hosted application must not create its window

    in the minimized state. If it does, this will interfere with SmartCenters ability to manage theWindows 7 taskbar to stay below SmartCenters full screen window.

    3.3.3 One InfoView per instance of a hosted application

    A particular instance of a hosted application can expect to have one and only one InfoView tileassigned to it. That InfoView tile may appear in either the top or bottom section or may take up

    both the top and bottom sections (large layout).

    When SmartCenter places the InfoView on screen, it will size the corresponding hosted

    application window. The hosted application window must support different layouts

    corresponding to the size as positioned by SmartCenter. The InfoView will need to support all ofthe layouts required. At the time of this documents creation, an InfoView can have layouts that

    correspond to four sizes: small, medium, wide-interactive, and large.

    If SmartCenter needs to show different instances of data from a single hosted application in

    separate tiles, the hosted application will need to support running a different instance of the

    application for each tile, to maintain the one-to-one mapping between application and InfoView.

    3.3.4 Do not use modal windows or dialogs

    A hosted application should not use modal windows or dialog boxes when running in the small,

    medium, and wide-interactive layouts.

    3.3.5 Support resize and positioning window messages

    The window associated with the application must be resizable in a way that allows HP to

    programmatically resize and reposition the window off-screen.

    The application should optimize its UI to show the data appropriate for either a small, medium,wide-interactive or large InfoView layout in response to the WM_SIZE or WM_POSITION

    messages sent to the application. The threshold width and height that will mark the change fromthe small to medium to wide interactive to large layouts have been given in section 2. To help

    reduce the overall system resource usage (i.e. CPU and memory) taken up by SmartCenter and

    the hosted applications, SmartCenter will resize an application to a specific size to communicate

    that an application should be idle or minimized (See table below for actual window mode sizes).

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    18/39

    Hewlett Packard Development Guidelines Page 18 of 39

    Note: Resource usage adjustments are communicated via registered window messages starting

    with SmartCenter 3.0.

    When an application is in an idle mode, the SmartCenter UI has been closed or hidden, but the

    SmartCenter application and the hosted applications are still running in the background. In this

    idle mode, the hosted application should not be using any CPU cycles and should try to releaseas much memory as possible. During this mode, applications should stop any clocks, timers, and

    animations. Since the application is not being displayed, it should try to release memory

    allocated for visual content. When the SmartCenter UI is launched and hosted applicationsappear, SmartCenter will resize the hosted applications to be in either the small, medium, wide-

    interactive, or large InfoView layout, so that the hosted application is able to display, function,

    and respond to user interaction.

    The following is deprecated starting with SmartCenter 3.0 (See note below.)

    When an application is in minimized mode, SmartCenter is minimized to the Windows

    Taskbar. The application should, as much as possible, try to minimize its CPU and memoryusage.

    Window Mode Window Width in pixels Window Height in pixels

    Idle Width < 3 Height < 3

    Minimum 3

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    19/39

    Hewlett Packard Development Guidelines Page 19 of 39

    3.3.8 Do not attempt to control the cursor

    The application should not attempt to control the cursor. The application should rely on the

    cursor position information provided by the mouse input events instead of querying the operating

    system for the location of the window or cursor. Also, the application should not attempt to hidethe cursor, since this will negatively impact mouse navigation, should the user not want to use

    touch, but still utilize SmartCenter.

    3.3.9 Hosted applications must not appear outside of HP TouchSmart

    The application must not appear in the Windows taskbar when running. The application should

    only appear to run within the context of the SmartCenter hosting application.

    The application must also not be listed as an application under the Windows Task Managerapplication (although it can/will be present in the processes list.)

    Also, the application must not be visible as a choice in Alt+Tabor Win+Tab.

    For WPF applications, the XAML for the main window might look as follows:

    Setting ShowInTaskbar=False will prevent the application from appearing in the system taskbar.

    Please do NOT set a Title for the Window. Omitting the title will achieve the desired result ofthe application being hidden from the Task Manager applications list.

    Non-WPF applications should use the extended window style WS_EX_TOOLWINDOWand turnoff the extended window style WS_EX_APPWINDOW to avoid showing up in the system taskbar.

    In addition, a hosted application may not install Windows shell shortcuts such as desktop icons,

    system tray items, and Start\All Programs shortcuts.

    3.3.10 [Removed]

    (Text moved to section 3.3.5 Support Resize Events and Positioning)

    3.3.11 [Removed]

    3.3.12 Application must run under 32-bit and 64-bit Windows

    Applications will need to support both the 32-bit and 64-bit versions of Microsoft Windows.SmartCenter itself will run as a 32-bit application on the 64-bit version of Microsoft Windows.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    20/39

    Hewlett Packard Development Guidelines Page 20 of 39

    3.3.13 Application must support MUI

    Applications must provide Multilingual User Interface support to allow the localized aspects of

    the UI to change appropriately when the user changes the preferred display language setting in

    the operating system. For .NET applications, this means supporting the CurrentUICulture.

    3.3.14 [Removed]

    3.3.15 Applications must require a parameter to launch in chromeless mode

    Because hosted applications must run without chrome and without an icon on the task bar, theuser will find it hard to close the application if it is accidentally launched. To reduce the

    likelihood of an accidental launch, the application should not allow the user to launch the

    application in this chrome-less mode using a mouse double-click. Hosted applications must

    require that a parameter, chromeless, be given as a command-line argument before theapplication launches in chromeless mode.

    For example, if test.exe is the name of a hosted application, then test.exe must not show itsInfoView window unless launched with a command-line argument: test.exe chromeless.

    Note: By convention, no leading dash or slash is used for the command-line argument

    chromeless.

    3.3.16 Applications can use the TouchSmart notification protocol to triggernotification messages to appear in the anchor bar

    The SmartCenter visual design has a message notification area defined in the anchor bar. A

    hosted application can request that SmartCenter display a message in the notification area. It

    does so by writing a uniquely named XML file whose name ends with the .xml extension.

    The exact path and name of this folder are:%LocalAppData%\Hewlett-Packard\TouchSmart\SmartCenter 2.0\Messages\.xml

    The hosted application may choose any name for the part of the file name as long as a

    file with that same name does not already exist in the folder or as long as it owns the file with

    that name in the folder and intends to overwrite the existing file.

    All message XML files must be in 16-bit Unicode XML format. Please note that the file doesneed to be 16-bit Unicode and not 8-bit Unicode. The XML format must thus contain the

    statement encoding=utf-16 instead of utf-8.

    SmartCenter will display the messages in the directory in an unspecified order. Once

    SmartCenter has displayed the message and the user has dismissed it, the .xml file will be deleted.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    21/39

    Hewlett Packard Development Guidelines Page 21 of 39

    The length of the message text should be limited to 256 characters. The amount of text visible onone line of the notification area may be less than the limit, and the notification area may either

    wrap the text, truncate it, and/or scroll the text in a marquee, depending on the TouchSmart

    visual design. The hosted application cannot specify this.

    The XML file will have the root node ofIt will contain the following child nodes:

    Expiration: This is the time/date after which TouchSmart should not show themessage. This value must be given in UTC. Note that this value should be in UTC and

    should allow enough time before the expiration to allow the message to display.Specifically, the expiration date should not be the current time, because this may not

    allow enough time for the file to be written before the message file is marked as expired.That is, if the expiration date uses a current time (particularly if it is not in UTC), the

    message may never show, because it may have an expiration date that has already

    occurred. This is a very common error, so developers need to be very careful tounderstand what UTC means. The correct time string format is: MM/DD/YYYY

    HH:MM:SS AM/PM. Note that the seconds must be present and must be specified with

    a leading zero for single digit values, just like the hours and minutes.

    Icon: This string will specify which of the set of predefined HP icon types to show. Thevalid icon types are:

    o Asterisko Attention (Deprecated: Do not use)o Confirmation (Deprecated: Do not use)o Erroro Reminder (Deprecated: Do not use)o Exclamationo Hando Information (Deprecated: Do not use)o Noneo Question (Deprecated: Do not use)o Stop (Deprecated: Do not use)

    o Warning (Deprecated: Do not use)o CircleCheck (new alias for Asterisk in SmartCenter 3.0)o CircleX (new alias for Error in SmartCenter 3.0)o Clock (new alias for Hand in SmartCenter 3.0)

    Title: The title of the message to display

    Text: The text of the message to display

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    22/39

    Hewlett Packard Development Guidelines Page 22 of 39

    Sample:

    9/22/2008 10:15:05 PM

    None

    Sample TitleSample text.

    Using the None tag will allow a message with no icon.

    Using the Asterisk or CircleCheck tag will show as a checkmark in a circle.

    Using the Exclamation tag will show an exclamation point in a circle.Using the Error or CircleX tag will show as an X in a circle.

    Using the Hand or Clock tag will show as an alarm clock.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    23/39

    Hewlett Packard Development Guidelines Page 23 of 39

    3.3.17 [Removed]

    3.3.18 The hosted application must only draw the portion of the InfoViewwithin the frame of the InfoView

    The visual design of the InfoView includes a frame drawn by the SmartCenter host. Hosted

    applications must not draw the frame but should instead leave the frame and icon for

    SmartCenter to draw.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    24/39

    Hewlett Packard Development Guidelines Page 24 of 39

    Figure 4a: The areas outlined in red show the content of the InfoViews. The InfoView

    medium layout does not need to draw the frame, the title, or the icon. Medium layout is not

    used in TouchSmart 3.0 and is illustrated here purely for purposes of providing

    information to developers who want to support both TouchSmart 2.x and 3.0.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    25/39

    Hewlett Packard Development Guidelines Page 25 of 39

    Figure 5b: The areas outlined in red show the content of the InfoViews. The InfoView

    wide-interactive layout does not need to draw the frame, the title, or the icon.

    3.3.19 The application can use the SmartCenter request protocol to launch aweb browser or to navigate to a hosted application

    An application may request that SmartCenter open a browser window to a specified URL page or

    navigate to another hosted application The application does so by writing a properly formattedXML file to the folder

    %LocalAppData%\Hewlett-Packard\TouchSmart\SmartCenter 2.0\Requests\

    The file may have any name as long as it has an extension of .xml and is a valid XML file with

    the request format.

    The format of the XML file to open a web browser is as follows:

    http://www.hp.com

    The format of the XML file to launch a hosted application is as follows:

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    26/39

    Hewlett Packard Development Guidelines Page 26 of 39

    5580D4A8-C526-42a7-966A-99B875662C2E

    : The value of the Action element should specify the URL that will be launched

    using an external browser. Or, the Action element should specify the hosted application to

    navigate to by its known unique ID value. Each hosted application should have a known uniqueID value associated with it (See Application ID Table below).

    Application ID Table

    SmartCenter Home ACDB32C4-824E-496b-8954-8153065B18B9Photo DA1CC8E9-3E0D-4bc9-90C1-B3EDB82D5E4AVideo 5580D4A8-C526-42a7-966A-99B875662C2EMusic F02F28A6-D76B-4214-8BE7-BFB0C05EFAADCalendar 4B7A8F7C-AEA9-4472-8D30-F1AF2A99F94ANotes F572AAD0-8DE8-4d2a-8947-5911EA8A8D65Browser F1A457C4-42CC-434c-BB9E-4AAEB4521956RSS 9B4B2163-01F2-4a94-9A7A-F1CA09BC2D7CWeather 3DCE0809-C1D5-486e-AEB6-50940E269A60Clock 23511901-CCE2-433f-A0CE-FC7E9B93773AWeb Cam 29D5CC4D-1619-4bd1-A7C8-EE32705FACA8DVD 36cf9467-44fc-4c49-a2fc-1e9409f7fc86

    Note: The application ID values specified above have been defined by SmartCenter. Hosted

    applications that are not included in this table can create their own unique ID using a GUID

    value (Globally Unique Identifier) when registering the hosted application with the

    element. For more information about registering a hosted application, please refer to section3.3.24.

    Note: There is no discovery mechanism for finding out what the total set of available applicationIDs is.

    3.3.20 Hosted applications should provide a suitable icon

    A hosted application should include its icon as a resource in the application using standardWindows application conventions. The application icon should be a Vista icon and must

    include a 256 * 256 pixel version in XP colors with alpha blending (32 bit colors, PNG

    compressed). Please refer to Microsoft for more information on Vista icon guidelines.http://msdn2.microsoft.com/en-us/library/aa511280.aspx

    Icons should not embed any text or alphanumeric characters unless these are trademarks or

    company logos or other text that needs no translation to be recognizable worldwide.

    3.3.21 Font family recommendations

    http://msdn2.microsoft.com/en-us/library/aa511280.aspxhttp://msdn2.microsoft.com/en-us/library/aa511280.aspxhttp://msdn2.microsoft.com/en-us/library/aa511280.aspx
  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    27/39

    Hewlett Packard Development Guidelines Page 27 of 39

    Use the fonts listed when displaying text in the following languages:

    Simplified Chineseuse SimSun

    Traditional Chineseuse MingLuI/PMingLiu

    Japaneseuse Meiryo (Use Arial for Western alphanumerics in Japan)

    Koreanuse Malgun/Malgun Gothic

    3.3.22 Hosted applications must scale their content to support differentscreen resolutions and high DPI / large text size

    As mentioned earlier in this document, SmartCenter will target a range of 16:9 displays. This

    implies that a hosted application must scale its content as needed to fill the window area defined

    for the layout. Please refer to the Background section of this document for the specific sizesgiven in pixels and more importantly as a percentage of the display resolution. It is critical to

    take the screen resolution into account when positioning UI elements or filling the window.

    For WPF-based applications, using a Viewbox set to Uniform stretch as the child of the usercontrol or window will generally accomplish this. Avoid setting specific widths or heights for the

    control that might cause the control to set its window to a different size than set by SmartCenter.

    HP has changed the screen aspect ratio from 16:10 to 16:9 for the HP TouchSmart 300/600 series,

    so the hosted applications will need to optimize their layouts for 16:9. When the applications run

    on 16:10 displays, the applications may scale the content to fit the 16:10 aspect ratio.

    With the introduction of Windows 7, support for high DPI settings (called large text size inWindows 7) is becoming more and more important. Thus hosted applications must be able to

    support DPI settings higher than 96 DPI, especially the two standard Windows 7 high DPIsettings (125%, or 120 DPI and 150%, or 144 DPI).

    3.3.23 Hosted applications must initially start off-screen at the wide-interactive layout window size

    When a hosted application first launches, it should size its window to the default wide-interactivelayout size as specified above. It should also position its window outside the virtual screen area.

    For WPF applications, the XAML for the main window might look as follows:

    http://schemas.microsoft.com/winfx/2006/xamlhttp://schemas.microsoft.com/winfx/2006/xamlhttp://schemas.microsoft.com/winfx/2006/xaml
  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    28/39

    Hewlett Packard Development Guidelines Page 28 of 39

    3.3.24 Programmatically adding an InfoView tile into SmartCenter

    SmartCenter allows third parties to add their applications as an InfoView tile into either section

    (top or bottom) of the SmartCenter UI. To add an application into SmartCenter, third partiesmust create a properly formatted XML file and then use the RegisterSmartCenterApp.exe tool to

    register the application with SmartCenter.

    First, create an XML file with the application and tile specific information. This file must be a

    Unicode XML file.

    Its root node is.

    E.g.:

    contains the following child nodes:

    A boolean value specifies whether the user is able to edit the tileproperties such as the display name in personalize (true: is editable; false:

    not editable; recommended value: true) A string value that specifies the full path to the application. Use of

    environment variables is encouraged. In particular, SmartCenter willtreat %programfiles(x86)% appropriately for 32-bit and 64-bit

    platforms. On 32-bit systems, it gets expanded to C:\Program

    Files and on 64-bit systems it gets expanded to C:\Program

    Files (x86). This is useful for hosted applications that ship on both32-bit and 64-bit platforms, since the same variable will work on both.Do not use quotes.

    A string value that specifies any application command-line parameters(e.g. chromeless). Hosted applications are required to use chromeless(without the quotes) as a command-line parameter.

    A boolean value that specifies whether SmartCenter should attach to an

    already running instance of an application. This value should be true forsingle instance applications and false for multiple instance applications.

    (true: attach ; false: do not attach) A case-sensitive string value specifies the type of InfoView tile that

    SmartCenter should associate with an application:

    InfoView: Live application tile running within SmartCenter UIexperience

    ShortcutToExe: Shortcut tile with a static icon that launches

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    29/39

    Hewlett Packard Development Guidelines Page 29 of 39

    application outside of SmartCenter UI experience

    ShortcutToWeb: Web browser tile running live withinSmartCenter.

    Note:AppParameters must specify chromeless first, then theURL

    (e.g. chromeless http://www.hp.com)ShortcutToRss:Rss tile running live within SmartCenter

    Note:AppParameters must specify chromeless first, then theRSS feed(e.g. chromeless http://rssfeed.xml)

    A boolean value that specifies whether SmartCenter will attempt to start

    the process that an InfoView type tile needs to present the content in the

    tile. This only applies to InfoView type tiles in the Top.This value should always be set to true, since setting it to false would

    result in a tile in the top section that doesnt display any content other

    than an application icon.

    A string value specifying the display name of the tile. This will be used if

    no elements are present (see below.)

    A boolean value specifying whether the InfoView tile will be visible in

    the SmartCenter UI (true: visible; false: not visible; recommended value:

    true). Note that if the value is set to false initially, the user can set the

    IsVisible property to true in Personalize and thus display the tile withinSmartCenter. SmartCenter 3.0 does not allow the user to hide or unhide a

    tile, but still uses the IsVisible value for internal purposes.

    A globally unique identifier (GUID) value that is used to identify the

    application. The format of the GUID value should follow WindowsGUID conventions, but not include curly brackets, for example:

    490200B6-493B-4443-A1EE-EC6F503059B7 (Note: Do not usethis GUID value). This value can also be used when requestingSmartCenter to navigate to a hosted application. See section 3.3.19.

    A boolean value specifying whether SmartCenter should/should not

    disable the default auto play behavior while in large layout. In large

    layout the standard behavior, when storage media is inserted or attached

    (e.g. DVD, CD, thumb drive), is to minimize SmartCenter and the largelayout application so that the Windows Auto Play dialog appears. If the

    value is set to false, SmartCenter and the large layout application will not

    be minimized. In this case the AutoPlay dialog will remain behindSmartCenter, invisible to the user until they exit/minimize SmartCenter.

    (true: Uses the default auto play, false: Disables the autoplay behavior in

    the large layout mode). The default value is true.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    30/39

    Hewlett Packard Development Guidelines Page 30 of 39

    Some applications are only supported on specific a language, country,

    and/or language-and-country or a set thereof. For example, an English

    only Weather tile would not be supported on a non-English system. The

    element can be used to specify that the tile only be

    included on an English system using a child element. This

    field specifies the filter information to include aSmartCenter application tile based on language (),

    language-country (), and/or country

    (). If a isnt specified, it isassumed that the tile should be included world-wide. If a

    is specified, it will override the presence or

    absence of the filter information.

    : A string value representing the two-letter ISO 639-1language name (e.g. EN, ES, FR, etc.). Please refer to the following

    URL to see a list of two-letter ISO-639-1 language codes

    (http://www.loc.gov/standards/iso639-2/langcodes.html)

    Example: This example shows how to include an application for

    multiple languages (English, Spanish, and Korean):

    EN,ES,KO

    : a string value in a two-letter code country formatderived from ISO 3166. (e.g. US, FR, HK, CN, TW, etc.) For a list of

    ISO 1366 codes, seehttp://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm

    Example: This example shows how to include an application for

    multiple countries:

    US,CA,FR

    : a string value in the format "-", where is a two-letter code

    derived from ISO 639-1 and is a two-letter

    code derived from ISO 3166. (e.g. EN-US, FR-FR, ZH-HK, ZH-CN,ZH-TW, etc.).

    Example: This example shows how to include an application for

    multiple language-countries:

    http://www.loc.gov/standards/iso639-2/langcodes.htmlhttp://www.loc.gov/standards/iso639-2/langcodes.html
  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    31/39

    Hewlett Packard Development Guidelines Page 31 of 39

    EN-US,EN-CA,FR-

    FR

    An application can be excluded based on the current language, country,or language-and-country. This field specifies filter information to exclude

    a SmartCenter application tile based on language ,

    language-and-country , and/or country

    . If aisntspecified, it is assumedthat the tile should be included for all filters specified in the

    . If both and the

    are not specified, then the tile will be included

    world-wide. The will override the

    presence/absence of the filter information.

    See above for examples of how to specify

    language, country or language-and-country filters using ,

    and .

    Specifies a collection of localized string entries that will be used as the

    localized display name () for the tile. If theisnt specified then the value of the will be used.

    : a collection of nodes:

    :

    A Key can be the following:

    A string representing the two-letterISO 639-1language name (e.g.EN, ES, FR, etc.) Please refer to the following URL to see a list of

    two-letter ISO-639-1 language codes

    (http://www.loc.gov/standards/iso639-2/langcodes.html)

    A string in the format "-",where is a lowercase two-letter code derived from

    ISO 639-1 and is an uppercase two-lettercode derived from ISO 3166. (For a list of ISO 3166 codes, see theURLs specified in FilterInclude/FilterExclude)

    A string value in an uppercase two-letter code country formatderived from ISO 3166. (e.g. US, FR, HK, CN, TW, etc.). For a listof the ISO 1366 codes, see

    http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_c

    ountry_names_and_code_elements.htm

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    32/39

    Hewlett Packard Development Guidelines Page 32 of 39

    A Load string that tells SmartCenter to load a string resourcelibrary

    AValuecan be the following:

    If the Key is a language, language-country or country, the Value isthe localized string name that is associated with the language,

    language-country.If the Key is the Load string, the Value provides the path to a

    resource library and the index into the string table. See the example

    below.

    Note: The Load key cannot be used in combination with language,

    language-country or country keys. They are mutually exclusive.

    Specifies the location of a graphics file (preferrably PNG with 256 * 256pixels and transparency) to use as the icon for the application. If this

    element is left empty, SmartCenter will attempt to extract an icon from

    the executable specified in . This contributes significantly toinitial load time. It is therefore preferable to include a separate file

    containing the application icon and using that file name in this element.

    Hosted applications should use a fully qualified path to the graphics file.

    (The path can include environment variables, such

    as %programfiles(x86)%, which is recommended for overcoming

    localization issues and 32-bit vs. 64-bit Windows OS issues [see

    remarks for above].) The graphics file should be a png, jpg,or bmp file and should be 256 * 256 pixels. Ico files can also be used, but

    there is no way to specify which icon should be picked out of apotentially large number of icons contained in the ico file. However,

    SmartCenter will attempt to pick the icon with the largest dimensions and

    largest size automatically.

    Icon graphics should not contain text or other items difficult to localize.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    33/39

    Hewlett Packard Development Guidelines Page 33 of 39

    They should also avoid visual puns or culturally dependent symbols.

    International symbols, logos, or other universal graphics should be used.

    Specifies the color of the tile bar when shown as a wide-interactive tile.

    This element needs three sub-elements: , , and , each

    containing a value from 0 to 255, specifying the Alpha, Red, Green andBlue component of the tile bar color, for example:

    255172296

    Specifies which section the tile is to be placed in. Valid values: are Top

    and Bottom. For example:

    Bottom

    A complete sample tile definition file could look like this (DO NOT simply copy-paste this

    example without making extensive modifications, adjusting all elements as necessary for yourhosted application):

    true

    %programfiles(x86)%\My App\MyApp.exechromeless255172296

    trueInfoViewMy App Nametrue

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    34/39

    Hewlett Packard Development Guidelines Page 34 of 39

    490200B6-493B-4443-A1EE-EC6F503059B7

    true

    EN,ES,ZH

    EN-USJA,DE,KOKO-KR

    />

    %programfiles(x86)%\My App\App_icon.pngBottomtrue

    After creating the XML file, use the RegisterSmartCenterApp.exe tool to register the application

    with SmartCenter.

    The command-line to register the application with an XML file is:\RegisterSmartCenterApp.exe updateconfig c:\path toxml\my app.xml

    The installed path to RegisterSmartCenterApp can be retrieved from the registry at:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths\SmartCenter.exe]Path=Installed path to RegisterSmartCenterApp

    In essence, RegisterSmartCenterApp.exe copies a modified version of the XML file to a well-

    known location on the hard drive (the store.) SmartCenter.exe monitors this location (both at

    startup and during runtime) and uses files placed in it to pull new tiles into its UI.

    Note: If the RegisterSmartCenterApp.exe is not found in the installed path, the user must

    upgrade to the latest version of SmartCenter.

    Note: Enclose the path to RegisterSmartCenterApp.exe and the path to the XML file in double-quotes to ensure the respective paths are read properly.

    Note: SmartCenter 3.0 introduces the ability to update or delete XML files from the store that

    SmartCenter uses to manage registered tiles. If an XML file with matching and

    is found in the store, the existing file will be deleted and the new one placed

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    35/39

    Hewlett Packard Development Guidelines Page 35 of 39

    in the store instead. To delete a file from the store, use delete as the first command-line

    argument. Note that updates and deletions are only effective as long as SmartCenter itself has not

    been run yet. If SmartCenter has been run, the user will still have to delete the tile by hand, butsubsequently the tile should not show up in SmartCenter anymore, since it will be gone from the

    store.

    3.3.25 TouchSmart hosted application communication happens via registeredwindow messages

    SmartCenter 3.0 will post registered window messages to all hosted applications main windowto communicate various state information. In order to receive these messages, the hosted

    application must use the RegisterWindowMessage Win32 API with the message values defined

    below (see MSDN for further details). The messages will be received in the WndProc of the

    hosted applications main window.

    Registered Window Message Purpose

    38EA258B-FC18-452b-9ACB-F9AFF559E90A Notifies a hosted applications window thatSmartCenter will host its UI.

    Aka: AppAttached

    12B83DE1-AC57-4b7e-AB93-2AEC16E17DBE When any of the hosted applications is taken to large

    layout mode, SmartCenter will send this message to

    all hosted applications. SmartCenter will also

    provide the window handle of the current largelayout application as the LPARAM of the message

    in the WndProc.

    Aka: SmartCenterLargeView

    D3AA6DE7-4EB8-410d-B7C6-D19BD2F59032 Informs all hosted applications that SmartCenter is

    in the home view mode, showing tiles.Aka: SmartCenterHomeView

    A0D1CAA6-0D54-4d1e-B4E1-61770C166264 Notifies an application to use minimal systemresources (e.g. CPU, memory, etc). For example,

    SmartCenter will send this message to an application

    in wide interactive layout when it has beenvirtualized.

    Aka: MinimalResources

    BB3B073F-84B9-4dc5-A839-1A74E76BDD4C Notifies an application that its application window

    can resume normal application operation. For

    example, if the application responded to the

    A0D1CAA6-0D54-4d1e-B4E1-61770C166264 windowmessage to reduce its use of system resources, the

    application should resume normal operation when itreceives this message.

    Aka: NormalResources

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    36/39

    Hewlett Packard Development Guidelines Page 36 of 39

    3.3.26Concerns about system-wide shared resources

    Applications designed to use a shared system resource, like a webcam, in an exclusive mode

    should release that resource when the application receives the notification to use minimal system

    resources. In addition, resource intensive applications that wish to release resources when theyare showing as a partial tile may do so, but they will need to evaluate the window position

    coordinates of their window to do so. The main framework will not provide additionalnotification of the application showing as a partial tile.

    3.3.27 Hosted applications must be designed to be aware of the systempower states.

    Hosted applications should be designed and tested to work correctly in response to the power

    changes states: S1, S2, S3, and S4.

    If possible, the hosted application should minimize power intensive activities when running onbattery power. For instance, the application may wish to suspend unnecessary background

    processes.

    3.3.28 Special considerations for .NET applications with digital signatures

    Hosted applications based on the Microsoft .NET Framework that use digital signatures shouldinclude the following fragment in the .exe.config file in order to prevent startup delays when a

    network connection without Internet connectivity is present:

    Seehttp://support.microsoft.com/kb/936707 for further information.

    3.3.29SmartCenter command-line arguments

    SmartCenter.exe 3.0 supports the following command-line arguments:

    Argument Purpose

    chromeless Starts SmartCenter and presents the UI (can be used to unhide)

    minimize Minimizes SmartCenter if already running

    close Closes SmartCenter if already running

    hide Hides the SmartCenter UI, but keeps the process running

    deleteconfig Cleans out the users customizations of SmartCenter, including tilemodifications/additions/removals, tile color changes. On next startup, the

    default tile configuration will be re-created.

    cleanup Deprecated (use close instead.) Shuts down all hosted applications, then shutsdown SmartCenter.

    http://support.microsoft.com/kb/936707http://support.microsoft.com/kb/936707http://support.microsoft.com/kb/936707http://support.microsoft.com/kb/936707
  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    37/39

    Hewlett Packard Development Guidelines Page 37 of 39

    4 Document HistoryVersion Date Comment

    0.8 August 3, 2007 Replaced figures with latest illustrations of terms. Updated

    requirements. Reformatted sections.

    0.9 August 15, 2007 Removed restriction that applications be single instance.

    1.0 August 17, 2007 Removed restriction on drag and drop. Added restriction on

    non-client area chrome.

    1.1 Added information on file and folder names. Added more

    information on themes and message notification via XML.

    1.3 October 11, 2007 Updated sections on InfoView sizes, launch parameters.

    1.31 October 31, 2007 Edited the sections on InfoView sizes.

    1.4 November 5, 2007 Added section on Request XML.

    1.41 December 10, 2007 Updated requests specification. Added TaskManager

    requirement. Added off-screen start requirements.Updated specification for messages in the Hot Plate

    message box.

    1.5 December 11, 2007 Added new specs about message icons.

    1.51 December 12, 2007 Added new specs about message icons again to capture newicon definitions from designer.

    1.6 February 19, 2008 Added clarification on requirements to use Message feature.

    1.7 May 19, 2008 Added Window size specification for idle and minimized

    modes

    1.8 June 23, 2008 Added third party specifications for adding a tile intoTouchsmart

    1.81 July 2, 2008 Updated adding tile specification for third parties.

    1.9 October 2, 2008 Added information to navigate to hosted applications(section 3.3.19). Added to section 3.3.25.

    Changed references to TouchSmart.

    2.0 October 22, 2008 Added new Hosted app ID GUIDs for Home and DVD in

    3.3.19. Updated 3.3.24 with a new

    node. Added section 3.3.25

    Communication via Registered Messages.

    2.01 October 28, 2008 Updated 3.3.24 to provide information about

    / and

    2.02 November 13, 2008 Updated document with team feedback.

    2.03 January 7, 2009 Extensive formatting cleanup, removal of obsolete sectionsand correction of typos, etc.

    2.04 January 20, 2009 Updated the navigation GUID for the DVD application.

    2.05 February 19, 2009 Updated section 2.1.1 to include new layout sizes for the

    wide-interactive and large layouts.

    Updated section 3.3.25 to include additional application

    state information.

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    38/39

    Hewlett Packard Development Guidelines Page 38 of 39

    Updated images and text to describe new layout.

    Updated multi-touch information.

    2.06 March 19, 2009 Updated specification to cover changes in target platform

    from 16:10 to 16:9.2.07 April 3, 2009 Added information about to AMS XML.

    Added recommended XML schema information.Added recommendation that applications use windowpos

    information to release resources.

    2.08 April 7, 2009 Reformatting.

    2.09 April 7, 2009 Fixed version number references. Tried to make consistent

    use of SmartCenter everywhere except for the first couple

    of introductory pages. Removed describing text from the

    icons that illustrate Asterisk, Hand, Error, etc.

    2.10 April 22, 2009 Edited the registered message section. Added information

    on 2.11 April 29, 2009 Changed comments for tile XML file to

    encourage use of environment variables (in

    particular %programfiles(x86)%).

    Added Aka to registered messages.Added table of contents.

    Added information on for tile XML file.

    Deprecated guidance on resource adjustments based on

    window sizing.

    Hosted apps must run on Vista and later.Added comment about tiles in bottom section now only

    being shortcuts, no longer Small Layout tiles.Added comment about window handle availability at hosted

    app startup.Changed requirement on startup window size.

    Added requirement for high DPI support in hosted apps.

    Added comments to section.

    2.12 June 9, 2009 Added aspect ratios to 2.2

    3.1.7: Tasks instead of a task

    3.3.2: Do not start minimized3.3.8: Do not hide the cursor

    3.3.15: No leading dash/slash convention

    3.3.16: Hotplate string truncation3.3.16: New icon names3.3.23: Changed Top and Left in sample

    3.3.24: Removed 16 bit Unicode requirement

    3.3.24: only used internally now

    3.3.24: icos are possible. Use with caution

    3.3.24: %programfiles(x86)%

    3.3.24: Can now use delete as command line parameter to

  • 8/14/2019 HP Touch Smart SDK Development Documentation - Hosted Application Development Guidelines 3.0

    39/39

    Hewlett Packard Development Guidelines Page 39 of 39

    RegisterSmartCenterApp.exe (with caveats)

    2.13 June 26, 2009 Fixed error in path in section 3.3.16

    Added more comments around %programfiles(x86)% usage

    in and

    Added comments about how SmartCenter picks icons froman ico file.

    2.14 June 29, 2009 Added information about .

    2.15 July 1, 2009 Updated figure 4b and amended section 3.3.20 (icon spec).

    2.16 July 7, 2009 Added information about .NET apps with digital signatures

    (3.3.27)

    3.0 October 12, 2009 Changed version to 3.0, cleaned up obsolete information.

    Added command-line argument documentation. Added

    remarks about RegisterSmartCenterApp.exe mechanism.

    3.0 October 19, 2009 Incorporated 2.x layout switching information. Included

    information about small/medium layout not receiving input;

    wide-interactive and large layout receiving input. Addedinformation about which version of TS ships on what OS

    and the implications that has for dual-touch. Pointed out in

    the screenshots that illustrate tile content area that mediumtile size is not used in TS 3.0.

    3.0 October 26 Updated License Agreement.