Está en la página 1de 39

Hewlett Packard Development Guidelines Page 1 of 39

HP TouchSmart SDK Development Documentation -


Hosted Application Development Guidelines
Version 3.0
Hewlett Packard Development Guidelines Page 2 of 39

0 Legal Agreement
PLEASE READ CAREFULLY: USE OF TOUCHSMART SDK DEVELOPMENT
DOCUMENTATION 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 IS
OFFERED 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 AGREE
TO 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 and
compatible 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 Licensee
under the Agreement.

“Licensee’s Programs” means those software applications developed by Licensee using or with reference to
the 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 HP
TouchSmart Software Environment.

2. LICENSED SOFTWARE. The Licensed Software contains a collection of source code and binary code
that permits Licensee to develop Licensee’s Programs that operate with HP’s TouchSmart line of personal
computer 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 Licensed
Software contains:
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 the
TouchSmart SDK Development Documentation solely for development and testing of Licensee’s Programs
as 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 of Licensee’s Programs as defined
herein and (ii) reproduce, modify, and distribute only those parts of the Licensed Software incorporated into
Licensee’s Programs, and only in binary form. Licensee shall not use the Licensed Programs for any other
purpose.

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 confers
no 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 Licensee’s 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 of
permitting HP or its partners, resellers or customers to independently implement the same functionality or
create the same or similar derivative work. HP’s 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 Licensee’s
Programs as permitted in this Agreement. Licensee may only make copies or adaptations of the Licensed
Software 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, HP’s 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 your
own 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 Development
Documentation or the Licensed Software.
Hewlett Packard Development Guidelines Page 4 of 39

9. TERMINATION. This Agreement is effective until terminated or rejected. HP may terminate your
license 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 at
FAR 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 THE


LICENSED 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 OF
MERCHANTABILITY, 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 THE
LICENSED 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
Licensee’s Programs, or support for Licensee’s Programs to end users.

14. NO OTHER OBLIGATIONS. HP’s obligations with respect to its products and services are governed
solely 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 time
without 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 USE
THE TOUCHSMART SDK DEVELOPMENT DOCUMENTATION, HOSTED APPLICATIONS,
LICENSED SOFTWARE AND/OR LICENSEE’S PROGRAMS OR OTHERWISE, WHETHER BASED
Hewlett Packard Development Guidelines Page 5 of 39

ON CONTRACT, TORT OR ANY OTHER LEGAL THEORY EVEN IF HP HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF THE REMEDY FAILS OF ITS ESSENTIAL
PURPOSE.

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 into
this Agreement.

17. ENTIRE AGREEMENT. This Agreement is the entire agreement between you and HP relating to the
TouchSmart 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 by
this 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 for
technical or editorial errors or omissions contained herein.
Hewlett Packard Development Guidelines Page 6 of 39

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


0 Legal Agreement ...................................................................................................... 2
1 About this document ................................................................................................ 8
2 Background .............................................................................................................. 8
2.1 The HP TouchSmart software environment ............................................................. 9
2.2 Screen Resolution and InfoView layout switching guidelines ............................... 11
2.2.1 InfoView layout switching guidelines .................................................................... 11
3 Requirements and recommendations...................................................................... 12
3.1 User interaction design requirements ..................................................................... 12
3.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 input
devices .................................................................................................................... 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 ................................................................................. 14
3.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 .............................................................. 16
3.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 .................................................................................................................... 16
3.3.3 One InfoView per instance of a hosted application ................................................ 17
3.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 and
resize controls ......................................................................................................... 18
3.3.7 No irregularly shaped windows .............................................................................. 18
3.3.8 Do not attempt to control the cursor ....................................................................... 19
3.3.9 Hosted applications must not appear outside of HP TouchSmart........................... 19
3.3.10 [Removed]............................................................................................................... 19
3.3.11 [Removed]............................................................................................................... 19
3.3.12 Application must run under 32-bit and 64-bit Windows® Vista™ and later ......... 19
3.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 .................. 20
3.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 the
frame of the InfoView ............................................................................................ 23
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 ..................................................................... 25
3.3.20 Hosted applications should provide a suitable icon ................................................ 26
3.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 ................................................................................. 27
3.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 ................................ 28
3.3.25 TouchSmart hosted application communication happens via registered window
messages ................................................................................................................. 35
3.3.26 Concerns about system-wide shared resources ....................................................... 36
3.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
Hewlett Packard Development Guidelines Page 8 of 39

1 About this document


This document lists the key behaviors and design features intended to help developers optimize
their software user experience for touch interaction under HP 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 for HP TouchSmart applications

2 Background
HP 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” within HP
TouchSmart. HP presents live views of a mix of active touch applications from within the HP
TouchSmart hosting application. Conceptually, HP programmatically assigns these “hosted”
applications screen real estate within the HP TouchSmart window. This screen real estate
appears visually to the user as a tile in the HP TouchSmart UI. As long as the requirements
outlined in this document are met, HP TouchSmart manages how the tile appears and will
reposition 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 the HP TouchSmart UI.

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 particular HP TouchSmart tile will have the opportunity to vary the content and the layout
of 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 outside HP
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.
Hewlett Packard Development Guidelines Page 9 of 39

Under the HP 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 user
experience 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 within HP TouchSmart.

2.1 The HP TouchSmart software environment

For the remainder of this document, HP TouchSmart, HP TouchSmart, SmartCenter and HP


SmartCenter will be used interchangeably to refer to the HP TouchSmart 3.0 hosting
environment.

HP TouchSmart terms illustrated 1/2


Home Button Minimize/Close
Media Plate
Anchor Bar Media info

Top Section

Wide-interactive Layout

Large Layout
Medium Layout

Small Layout
Small Layout
Bottom Section

A.k.a. InfoView

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,
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


Home Button Media Plate Minimize/Close
Anchor Media info
Anchor Bar
Area

Top Section

Fixed
Area

Bottom Section

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.
Hewlett Packard Development Guidelines Page 11 of 39

3rd party Applications


Four layouts: Large
•Large
•Wide-interactive
•Medium 12
•Small

Application Window:
•Flat, i.e.
No popups New Note New Video

No tooltips
No menus
No dropdowns
No auxiliary
modal or Wide-interactive
modeless No controls!
windows 12
Medium
Small
12
12
New Note New Video

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 guidelines


The 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
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” the
hosted application.

To determine when to change the layout from a small layout to a medium layout, from a medium
layout 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 the
display 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 doesn’t 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 either start the
Windows® program that the tile represents, or start the hosted application that the tile represents
and transition to that tile’s 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 requirements
The 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.
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 and
DPI 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 the
screen, 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 taken
into account when positioning controls that are designed to be touched.

3.1.3 Favor touch interaction over input from the physical keyboard and
mouse 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 physical
keyboard 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 that
provide 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. (The
use 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. For
instance, 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
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 technology
employed 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 other
window than the application’s 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 it
needs 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 a
vertical 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 localized


content
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.10 Follow 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 directly
to the center of a picture.
Hewlett Packard Development Guidelines Page 15 of 39

“Applications in the third tier are full multitouch applications. These applications will be designed
specifically for use only on multitouch hardware; for example, a multitouch game where
multitouch 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 HP
TouchSmart 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 HP’s 2.x multi-
touch implementation and Windows 7’s 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 have
TouchSmart 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, in
order 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 used If the drivers are not provided, If the drivers are provided
and corresponding drivers OS cannot use the hardware. such that OS can use the
will be provided. hardware.

HP Touch Service will not If Touch If Touch If Touch If Touch


be shipped Service is Service is not Service is Service is not
installed installed installed installed
OS provides touch events HP Touch Service No touch events Both OS and OS provides
provides events Touch service touch events.
will provide the
events.
NOTE:
Therefore it is
up to the apps
to decide which
events it should
consider or
consider both.
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 list
below. Please refer to the Windows® Software Development Kit for the
RegisterWindowMessage function and the WM_* message definitions.
RegisterWindowMessage_WM_MOUSEMOVE = “98c4179f-2fef-11dc-a000-001a6b408264”
RegisterWindowMessage_WM_LBUTTONDOWN = “98c417a0-2fef-11dc-a000-001a6b408264”
RegisterWindowMessage_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, while
decreases 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 scroll
operation.

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 to
display 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 lifetime
of 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
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 windows
may 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 the
application. The hosted application needs to stay responsive to window messages during
startup 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 SmartCenter’s ability to manage the
Windows® 7 taskbar to stay below SmartCenter’s 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 “tile”
assigned 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 of
the layouts required. At the time of this document’s 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 from
the 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).
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 release
as 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 applications
appear, 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 memory
usage.

Window Mode Window Width in pixels Window Height in pixels


Idle Width < 3 Height < 3
Minimum 3 <= Width <= 10 3 <= Height <= 10

Note: For Idle mode, SmartCenter will send out a window size of 0x0 (w x h) but some
applications may not actually size to 0x0. For example, WPF windows do not size below 2x2.

Note: SmartCenter provides communication about state to applications via registered window
messages. Please refer to section 3.3.25.

Note: With the addition of registered messages in SmartCenter 3.0, sizing is no longer used to
communicate Idle or Minimum states.

3.3.6 Do not show chrome or non-client area of the window, particularly the
move and resize controls
The main window of a hosted application should not have any visible non-client chrome (title
bar, status bar, system menu, minimize, maximize, and close box, resizable border, etc.) or any
non-programmatic sizing element (e.g. client size grip)

3.3.7 No irregularly shaped windows


The application needs to launch in a rectangular or square window. Irregularly shaped windows
(e.g. a skinned Windows® Media Player) are not allowed.
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 hide
the 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 Manager
application (although it can/will be present in the processes list.)

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

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

<Window x:Class=”HostedApp.TheWindow”
ShowInTaskbar=”False”>

</Window>

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 of
the application being hidden from the Task Manager applications list.

Non-WPF applications should use the extended window style WS_EX_TOOLWINDOW and turn
off 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®.
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, the
user 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 the
application launches in chromeless mode.

For example, if test.exe is the name of a hosted application, then test.exe must not show its
InfoView 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 trigger


notification 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\<name>.xml

The hosted application may choose any name for the <name> 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 does
need 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.
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 on
one 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 of <Message>


It will contain the following child nodes:
Expiration: This is the time/date after which TouchSmart should not show the
message. 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 to
understand 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. The
valid icon types are:
o Asterisk
o Attention (Deprecated: Do not use)
o Confirmation (Deprecated: Do not use)
o Error
o Reminder (Deprecated: Do not use)
o Exclamation
o Hand
o Information (Deprecated: Do not use)
o None
o 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
Hewlett Packard Development Guidelines Page 22 of 39

Sample:
<?xml version="1.0" encoding="utf-16" ?>
<!--Encoding must be utf-16; this corresponds to Unicode. The file must be
saved as 16-bit Unicode and not 8-bit Unicode -->
<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Expiration>9/22/2008 10:15:05 PM</Expiration>
<!-- The Expiration time must be in UTC and should be well after the current
date and time to ensure that the message is not expired as soon as it is
written. Note that the UTC time must include the seconds, which must be
specified with a leading zero for single digit values. -->
<Icon>None</Icon>
<!-- The following are also valid for the Icon node (case sensitive) -->
<!-- <Icon>Asterisk</Icon> -->
<!-- <Icon>Exclamation</Icon> -->
<!-- <Icon>Hand</Icon> -->
<!-- <Icon>Error</Icon> -->
<!-- <Icon>CircleCheck</Icon> -->
<!-- <Icon>CircleX</Icon> -->
<!-- <Icon>Clock</Icon> -->
<Title>Sample Title</Title>
<Text>Sample text.</Text>
</Message>

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

Using the <Icon>Asterisk<Icon> or <Icon>CircleCheck</Icon> tag will show as a check


mark in a circle.
Using the <Icon>Exclamation<Icon> tag will show an exclamation point in a circle.
Using the <Icon>Error<Icon> or <Icon>CircleX</Icon> tag will show as an “X” in a circle.
Using the <Icon>Hand<Icon> or <Icon>Clock</Icon> tag will show as an alarm clock.
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 InfoView
within 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.
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.
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 a
web 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 formatted
XML 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:

<?xml version="1.0" encoding="utf-16"?>


<Request>
<Action>http://www.hp.com</Action> <!-- Specify the url in the Action -->
</Request>

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

<?xml version="1.0" encoding="utf-16"?>


<Request>
Hewlett Packard Development Guidelines Page 26 of 39

<!-- Specify unique ID of the hosted application to launch -->


<Action>5580D4A8-C526-42a7-966A-99B875662C2E</Action>
</Request>

<Action/>: 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 unique
ID value associated with it (See Application ID Table below).

Application ID Table
SmartCenter “Home” ACDB32C4-824E-496b-8954-8153065B18B9
Photo DA1CC8E9-3E0D-4bc9-90C1-B3EDB82D5E4A
Video 5580D4A8-C526-42a7-966A-99B875662C2E
Music F02F28A6-D76B-4214-8BE7-BFB0C05EFAAD
Calendar 4B7A8F7C-AEA9-4472-8D30-F1AF2A99F94A
Notes F572AAD0-8DE8-4d2a-8947-5911EA8A8D65
Browser F1A457C4-42CC-434c-BB9E-4AAEB4521956
RSS 9B4B2163-01F2-4a94-9A7A-F1CA09BC2D7C
Weather 3DCE0809-C1D5-486e-AEB6-50940E269A60
Clock 23511901-CCE2-433f-A0CE-FC7E9B93773A
Web Cam 29D5CC4D-1619-4bd1-A7C8-EE32705FACA8
DVD 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 <AppId/>
element. For more information about registering a hosted application, please refer to section
3.3.24.

Note: There is no discovery mechanism for finding out what the total set of available application
IDs 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 standard
Windows® 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


Hewlett Packard Development Guidelines Page 27 of 39

Use the fonts listed when displaying text in the following languages:
Simplified Chinese – use SimSun
Traditional Chinese – use MingLuI/PMingLiu
Japanese – use Meiryo (Use Arial for Western alphanumerics in Japan)
Korean – use Malgun/Malgun Gothic

3.3.22 Hosted applications must scale their content to support different


screen 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 sizes
given 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 user
control 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” in
Windows® 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 DPI
settings (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-interactive
layout 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:

<Window x:Class="HostedApp.TheWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml

Left="-32000"
Top="-32000"
Width="1324"
Height="753"
ShowInTaskbar="False"
WindowStyle="None"
ResizeMode="NoResize">

</Window>
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 parties
must 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 <AppManagementSetting>.

E.g.:

<?xml version="1.0" encoding="utf-8"?>


<AppManagementSetting xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<AppManagementSetting> contains the following child nodes:

<UserEditable> A boolean value specifies whether the user is able to edit the tile
properties such as the display name in personalize (true: is editable; false:
not editable; recommended value: true)
<AppPath> A string value that specifies the full path to the application. Use of
environment variables is encouraged. In particular, SmartCenter will
treat %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 both
32-bit and 64-bit platforms, since the same variable will work on both.
Do not use quotes.
<AppParameters> 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.
<AllowAttach> A boolean value that specifies whether SmartCenter should attach to an
already running instance of an application. This value should be true for
single instance applications and false for multiple instance applications.
(true: attach ; false: do not attach)
<Type> 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 UI
experience
ShortcutToExe: Shortcut tile with a static icon that launches
Hewlett Packard Development Guidelines Page 29 of 39

application outside of SmartCenter UI experience


ShortcutToWeb: Web browser tile running live within
SmartCenter.
Note: AppParameters must specify chromeless first, then the
URL
(e.g. chromeless http://www.hp.com)
ShortcutToRss: Rss tile running live within SmartCenter
Note: AppParameters must specify chromeless first, then the
RSS feed
(e.g. chromeless http://rssfeed.xml)

<RunAtStartup> 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 <Section>.
This value should always be set to true, since setting it to false would
result in a tile in the top section that doesn’t display any content other
than an application icon.

<DisplayName> A string value specifying the display name of the tile. This will be used if
no <LocalizedDisplayNames> elements are present (see below.)

<IsVisible> 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 within
SmartCenter. SmartCenter 3.0 does not allow the user to hide or unhide a
tile, but still uses the IsVisible value for internal purposes.

<AppId> A globally unique identifier (GUID) value that is used to identify the
application. The format of the GUID value should follow Windows®
GUID conventions, but not include curly brackets, for example:
490200B6-493B-4443-A1EE-EC6F503059B7 (Note: Do not use
this GUID value). This value can also be used when requesting
SmartCenter to navigate to a hosted application. See section 3.3.19.

<UseDefaultAuto A boolean value specifying whether SmartCenter should/should not


Play> 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 large
layout 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 behind
SmartCenter, 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.
Hewlett Packard Development Guidelines Page 30 of 39

<FilterInclude> 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
<FilterInclude> element can be used to specify that the tile only be
included on an English system using a <FilterLG> child element. This
<FilterInclude> field specifies the filter information to include a
SmartCenter application tile based on language (<FilterLG>),
language-country (<FilterLGCtry>), and/or country
(<FilterCtry>). If a <FilterInclude> isn’t specified, it is
assumed that the tile should be included world-wide. If a
<FilterExclude> is specified, it will override the presence or
absence of the <FilterInclude> filter information.

<FilterLG>: A string value representing the two-letter ISO 639-1


language 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):

<FilterInclude>
<FilterLG>EN,ES,KO</FilterLG>
</FilterInclude>

<FilterCtry>: a string value in a two-letter code country format


derived from ISO 3166. (e.g. US, FR, HK, CN, TW, etc.) For a list of
ISO 1366 codes, see
http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_c
ountry_names_and_code_elements.htm

Example: This example shows how to include an application for


multiple countries:

<FilterInclude>
<FilterCtry>US,CA,FR</FilterCtry>
</FilterInclude>

<FilterLGCtry>: a string value in the format "<languagecode2>-


<country/regioncode2>", where <languagecode2> is a two-letter code
derived from ISO 639-1 and <country/regioncode2> 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:
Hewlett Packard Development Guidelines Page 31 of 39

<FilterInclude>
<FilterLGCtry>EN-US,EN-CA,FR-
FR</FilterLGCtry>
</FilterInclude>

<FilterExclude> 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 <FilterLG>,
language-and-country <FilterLGCtry>, and/or country
<FilterCtry>. If a <FilterExclude> isn’t specified, it is assumed
that the tile should be included for all filters specified in the
<FilterInclude>. If both <FilterInclude> and the
<FilterExclude> are not specified, then the tile will be included
world-wide. The <FilterExclude> will override the
presence/absence of the <FilterInclude> filter information.

See <FilterInclude> above for examples of how to specify


language, country or language-and-country filters using <FilterLG>,
<FilterCtry> and <FilterLGCtry>.

<LocalizedDispl Specifies a collection of localized string entries that will be used as the
ayNames> localized display name (<DisplayName>) for the tile. If the
<LocalizedDisplayNames> isn’t specified then the value of the
<DisplayName> will be used.
<Entries>: a collection of <Entry> nodes:
<Entry Key=”” Value=””>:
A Key can be the following:

A string representing the two-letter ISO 639-1 language 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 "<languagecode2>-<country/regioncode2>",


where <languagecode2> is a lowercase two-letter code derived from
ISO 639-1 and <country/regioncode2> is an uppercase two-letter
code derived from ISO 3166. (For a list of ISO 3166 codes, see the
URLs specified in FilterInclude/FilterExclude)

A string value in an uppercase two-letter code country format


derived from ISO 3166. (e.g. US, FR, HK, CN, TW, etc.). For a list
of the ISO 1366 codes, see
http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_c
ountry_names_and_code_elements.htm
Hewlett Packard Development Guidelines Page 32 of 39

A “Load” string that tells SmartCenter to load a string resource


library
A Value can be the following:

If the Key is a language, language-country or country, the Value is


the 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.
<LocalizedDisplayNames>
<Entries>
<Entry Key="DA" Value="Kalender" />
<Entry Key="EN-US" Value="Calender" />
</Entries>
</LocalizedDisplayNames>

<LocalizedDisplayNames>
<Entries>
<Entry Key="Load"
Value="%SystemRoot%\system32\mylib.dll,-10058" />
</Entries>
</LocalizedDisplayNames>

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


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

<IconName> Specifies the location of a graphics file (preferrably PNG with 256 * 256
pixels 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 <AppPath>. This contributes significantly to
initial 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 <AppPath> 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 a
potentially 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.
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.

<ChromeColor> Specifies the color of the tile bar when shown as a wide-interactive tile.
This element needs three sub-elements: <A>, <R>, <G> and <B>, each
containing a value from 0 to 255, specifying the Alpha, Red, Green and
Blue component of the tile bar color, for example:

<ChromeColor>
<A>255</A>
<R>172</R>
<G>2</G>
<B>96</B>
</ChromeColor>

<Section> Specifies which section the tile is to be placed in. Valid values: are Top
and Bottom. For example:
<Section>Bottom</Section>

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 your
hosted application):

<?xml version="1.0" encoding="utf-8"?>


<AppManagementSetting xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UserEditable>true</UserEditable>
<AppPath>%programfiles(x86)%\My App\MyApp.exe</AppPath>
<AppParameters>chromeless</AppParameters>
<ChromeColor>
<A>255</A>
<R>172</R>
<G>2</G>
<B>96</B>
</ChromeColor>
<AllowAttach>true</AllowAttach>
<Type>InfoView</Type>
<DisplayName>My App Name</DisplayName>
<IsVisible>true</IsVisible>

<!-- NOTE: Remember to generate your own GUID!!! -->


Hewlett Packard Development Guidelines Page 34 of 39

<AppId>490200B6-493B-4443-A1EE-EC6F503059B7</AppId>
<!-- NOTE: Remember to generate your own GUID!!! -->

<UseDefaultAutoPlay>true</UseDefaultAutoPlay>
<FilterInclude>
<FilterLG>EN,ES,ZH</FilterLG>
<FilterLGCtry>EN-US</FilterLGCtry>
</FilterInclude>
<FilterExclude>
<FilterLG>JA,DE,KO</FilterLG>
<FilterLGCtry>KO-KR</FilterLGCtry>
</FilterExclude>
<LocalizedDisplayNames>
<Entries>
<Entry Key="DA" Value="Kalender" />
<Entry Key="EN-US" Value="Calender" />
/>
</Entries>
</LocalizedDisplayNames>
<IconName>%programfiles(x86)%\My App\App_icon.png</IconName>
<Section>Bottom</Section>
<RunAtStartup>true</RunAtStartup>
</AppManagementSetting>

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:


“<installed path>\RegisterSmartCenterApp.exe” updateconfig “c:\path to
xml\my app.xml”

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths\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 <AppPath> and
<AppParameters> is found in the store, the existing file will be deleted and the new one placed
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, but
subsequently 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 registered


window messages

SmartCenter 3.0 will post registered window messages to all hosted applications’ main window
to 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 application’s main window.

Registered Window Message Purpose


38EA258B-FC18-452b-9ACB-F9AFF559E90A Notifies a hosted application’s window that
SmartCenter 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 large
layout 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 system
resources (e.g. CPU, memory, etc). For example,
SmartCenter will send this message to an application
in wide interactive layout when it has been
virtualized.
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 window
message to reduce its use of system resources, the
application should resume normal operation when it
receives this message.
Aka: “NormalResources”
Hewlett Packard Development Guidelines Page 36 of 39

3.3.26 Concerns 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 they
are 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 additional
notification of the application showing as a partial tile.

3.3.27 Hosted applications must be designed to be aware of the system


power 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 on
battery 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 should
include the following fragment in the .exe.config file in order to prevent startup delays when a
network connection without Internet connectivity is present:

<configuration>
<runtime>
<generatePublisherEvidence enabled=”false” />
</runtime>
</configuration>

See http://support.microsoft.com/kb/936707 for further information.

3.3.29 SmartCenter 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 user’s customizations of SmartCenter, including tile
modifications/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 shuts
down SmartCenter.
Hewlett Packard Development Guidelines Page 37 of 39

4 Document History
Version 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 new
icon 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 into
Touchsmart
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 <AppId> 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
<UseDefaultAutoPlay> node. Added section 3.3.25
Communication via Registered Messages.
2.01 October 28, 2008 Updated 3.3.24 to provide information about
<FilterInclude> / <FilterExclude> and
<LocalizedDisplayNames>
2.02 November 13, 2008 Updated document with team feedback.
2.03 January 7, 2009 Extensive formatting cleanup, removal of obsolete sections
and 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.
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 <IconName> 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 <ChromeColor>
2.11 April 29, 2009 Changed <AppPath> 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 <Section> 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 <IconName> 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 minimized
3.3.8: Do not hide the cursor
3.3.15: No leading dash/slash convention
3.3.16: Hotplate string truncation
3.3.16: New icon names
3.3.23: Changed Top and Left in sample
3.3.24: Removed 16 bit Unicode requirement
3.3.24: <IsVisible> only used internally now
3.3.24: <IconName> ico’s are possible. Use with caution
3.3.24: <IconName> %programfiles(x86)%
3.3.24: Can now use delete as command line parameter to
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 <AppPath> and <IconName>
Added comments about how SmartCenter picks icons from
an ico file.
2.14 June 29, 2009 Added information about <RunAtStartup>.
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. Added
information 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 medium
tile size is not used in TS 3.0.
3.0 October 26 Updated License Agreement.

También podría gustarte