33
DEV389 Getting started with the Tablet PC SDK Name: Lester Madden Title: Developer Consultant

DEV389 Getting started with the Tablet PC SDK Name: Lester Madden Title: Developer Consultant

Embed Size (px)

Citation preview

DEV389

Getting started with the Tablet PC SDK

Name: Lester MaddenTitle: Developer Consultant

Agenda

Introducing the Tablet PC

How do I write applications

Design Guidelines

What is a Tablet PC?Full Function Mobile Business PC

Runs Windows XP Tablet PC Edition (superset of Windows XP Pro)

Runs all existing Windows applications

Enables New PC Usage ScenariosUnprecedented PC mobility

New Pen and Speech technologies

A Powerful PlatformEnables a new generation of business solutions

E.g., MS Office, many third party ISV applications

The Smartest .NET Client Most mobile PC, most powerful OS

Includes full .NET framework

Hardware Requirements

Limited to a Minimal SetEM Digitizer with active pen

Support surprise removal from dock

5 second resume from Standby

Legacy free (no serial or parallel ports)

Supports both portrait and landscape modes

Dedicated button for Ctl-Alt-Del (security)

Convertible Tablet PCs

Integrated keyboard

Clamshell design

Docking Station

Allows classic Desktop PC use

Tablet PC Tablet PC ApplicationsApplications

Tablet PC and Windows Powered Smart Display

Tablet PC Windows Powered

Smart Display

What is it?

Business Mobile PC with additional Tablet

functionality

Cordless Smart Display, PC peripheral for the

home

Who Will Use it?

Corporate Knowledge Workers

Home Users and Families

Where can it be used?

Anywhere,from the desktop,

to taking digital notes in meetings, to on an

airplane

In the Home, within range of wireless

Windows XP PC or wireless access point

Environment

DevelopmentWindows XP Tablet PC Edition

Install on Tablet or Non-Tablet devices

External Wacom digitizer can be used to simulate Tablet digitizer

Mouse can also be used to collect Ink

DeploymentWindows XP Tablet PC Edition

Windows .NET Server 2003

Windows 2000 + with Tablet modulesCan be part of your setup

Platform Overview

Tablet PC platform is exposed in several way

Class Libraries

COM Object Model

Dual Interfaced

.NET Interop Layer

Thin layer over the COM Object Model

Available in all .NET languages (C#, VB.NET, etc)

Set of controls

Available in C++, .NET and VB6

Ink is not a bitmapSerialize as

Binary (ISF) XML ImageRTF (Clipboard)

Ink as TextControls convert inputInput saved at text by defaultOriginal Ink lost in translationInk as Ink scales to the current Font Size

- Great for Forms based scenarios

Your application goal

Pen CharacteristicsPen “tip” identified by cursors

Same concept as mouse cursor

Pen can have multiple cursors

Some Tablets allow for multiple pen’s

Pen may have buttonsTip and first button simulate mouse

Supports up to 16 buttons

Cursor may have rich propertiesPressure, angle, etc.

EraserEraser

StylusStylus

Stroke

Represents a single Ink Stroke

Set of data captured in a single mouse down, move and mouse up sequence

ExtendedProperties – allows application to store any data on the Stroke

DrawingAttributes – controls the rendering of the Stroke

Rich API Points, Bezier Points, BoundingBox, PacketData

Top level object for handling ink (CoCreatable)

Attached to any HWND

Handles input from all attached Tablets and Cursors

Intercepts mouse movements and can draw Ink dynamically (default)

Three Ink Collection modesInk Only

Gesture Only

Ink and Gesture

Events – Stroke, Gesture, SystemGesture, more…

InkCollector

InkOverlaySuperset of InkCollector

Adds Select and Delete EditingModes

Cursor is changed and maintained by the InkCollector

Customizable by the application

Deleting Strokes – two EraseModes

StrokeErase – erase an entire stroke by passing the cursor anywhere over it

PointErase – erase segments of a Stroke

Selecting Strokes - lasso selection

Highlights selected Strokes by outlining them

Collecting InkCollecting Ink

DrawingAttributes

Controls the appearance of InkColor, width, transparency, smoothing, anti-aliasing

PenTip – round, rectangular, height, width

Can be scaled automatically using Renderer.Scale

Each collector has a DefaultDrawingAttributes property that specified the DrawingAttributes for all Cursors

Can be applied to a single Stroke, to a Strokes collection, or to a Cursor

Drawing AttributesDrawing Attributes

What is a gesture? Anything you can do with a pen

Similar to keyboard shortcuts – e.g. ”Ctrl C”

System Gestures− Gestures supported by the Operating System by default

• To be notified subscribe to the ‘SystemGesture’ event• 14 gestures, examples: Tap, Double-tap, Drag

Application Gestures− Gestures your application can choose to support

− To be notified• Subscribe to the ‘Gesture’ event• Advise the platform of the specific gestures your app wants

−38 gestures, examples: Scratchout, Scroll up, Scroll down

−Gestures have confidence levels

Understanding Gestures

GesturesGestures

Allows recognition of a collection of Strokes by a specific Recognizer from the Recognizers collection

Synchronous recognition Call the ‘Recognize’ method

Asynchronous recognition Call the ‘BackgroundRecognize’ method

Subscribe to the ‘Recognition’ event

- or -

Call the BackgroundRecognizeWithAlternates’ method

Subscribe to the ‘RecognitionWithAlternates’ event

RecognizerContext

RecognitionRecognition

PersistencePersistence

Controls• InkEdit

Super-class of Rich Edit control

Win32, .NET, ActiveX versions

Intended for text and ink-to-text scenarios

Works well in forms scenarios

• InkPictureSimilar to InkCollector

Allows ink annotations on images in .jpg, .bmp, .png, or .gif format

.NET, ActiveX version

Great for Forms

Great for easily adding Inking support into an existing app

Ink ControlsInk Controls

Design Guidelines

Tablet PC vrs PC Applications Mice stay where you park them

Features requiring hover should have generous tolerances

For instance, tooltips

Bigger easily-targeted controls

User hand placement (menus etc)InkEdit Control should be big enough to write in

How will the user know the control is inkable

Don’t mix edit and inkedit controls

Recognition Expectations

Handwriting recognition is highly variable by person

Errors are expected

Perceived good or bad handwriting effects expectation of accuracy

GuidelineBe realistic about recognition accuracy rate, don’t rely heavily on it for authoring

Localization

Languages−Tablet V1

• US English, International English, Japanese, German, French, Simplified and Traditional Chinese, Korean

• Future – Spanish and Italian + others

• Extensibility architecture allows for custom recognizers to be built

Resources

Building Tablet PC Applications- MS Press – ISBN 0-7356—1723-6

Code Resources- http://www.tabletpcdeveloper.com/- http://msdn.microsoft.com/tabletpc

- General Info- http://www.tabletpctalk.com

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

evaluationsevaluations

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.