Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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).
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.
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
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
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.
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.
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.
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
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.
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.
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.
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.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.
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.
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.8 [Removed]
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.”
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.
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.
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.
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.
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.)
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)
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.)
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.14 [Removed]
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”.
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 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.
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>
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.
<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.
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.
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
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).
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
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.
E.g.:
<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
<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.
<FilterInclude>
<FilterLG>EN,ES,KO</FilterLG>
</FilterInclude>
<FilterInclude>
<FilterCtry>US,CA,FR</FilterCtry>
</FilterInclude>
<FilterInclude>
<FilterLGCtry>EN-US,EN-CA,FR-
FR</FilterLGCtry>
</FilterInclude>
<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:
<LocalizedDisplayNames>
<Entries>
<Entry Key="Load"
Value="%SystemRoot%\system32\mylib.dll,-10058" />
</Entries>
</LocalizedDisplayNames>
<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
<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):
<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 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”
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”.
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.
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.
<configuration>
<runtime>
<generatePublisherEvidence enabled=”false” />
</runtime>
</configuration>
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.