2 win7 for devs ux touch sensors

Post on 14-May-2015

1.928 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

TechEd Africa session on Windows 7 UX improvements, taskbar, jumplists, scenic ribbon, multi touch and sensors

TRANSCRIPT

Windows 7 for Developers IILynn Langithttp://blogs.msdn.com/SoCalDevGalMicrosoft – Developer Evangelist

Windows 95

7 Ways on Windows 7

Fundamentals

Libraries

Taskbar

Ribbon

Sensor and Location

Multi Touch

Graphics

*AppCompat*

Windows 7 Taskbar in actionDemo

Windows 7 TaskbarEnhanced Taskbar & Desktop Jump Lists Thumbnail Toolbars Custom SwitchersIconsOverlay IconsProgress Bars

Enhanced user experienceQuick and easy launch of applicationsEasier to manage windows The user is in controlClean and lightweightStandard Windows UX guidelines

All of Microsoft’s products

Windows 7 Taskbar – Icons

Face of your programLarge and small iconsOnly customer can pinColor hot-track

Icon OverlaySurface important notificationsAppears over your program’s icon

Progress barSurface important notificationsAppears in your taskbar button

IconsBest practices

Are you putting your best foot forward?Make sure your icon looks greatCheck different DPIsCheck different glass colors and disabled glass

How does Color Hot-track look?Determined by your icon’s dominant color

Get More From Taskbar ButtonsOverlay and progress icons

Consolidate: Uncluttered notification areaProvide progress and additional information through the taskbar button

It’s free if you use standard progress dialogs

Taskbar Overlay and ProgressDesign considerations

Notification area is now user controlled:Leave yourself out if possible!

Use taskbar buttons for custom progress or status information

Peek Preview (Aero Peek)

Live peek without a click

Live Thumbnails

Live thumbnails: A live previewWindows Vista: One thumbnail per windowWindows 7: Grouped thumbnails

Windows 7 Taskbar – Thumbnails

Remote-control for a windowSurface key commandsAccessible from taskbar thumbnail Up to seven buttons

Thumbnail ToolbarsContrasting Thumbnail Toolbar commands and user tasks

Thumbnail Toolbar Commands

Jump List User Tasks

Surface common window commands (e.g. menu items, window toolbar commands)

Define entry points intothe application

Specific to the window they’re assigned to Application-wide in scope

One set of thumbnail toolbar commands per window

One set of user tasks per application identity

Windows commands can be dynamic List of user tasks must be static

Exposing Custom ThumbnailsOverriding Automatic Thumbnail Preview

To provide a custom thumbnail preview representation for a window:

Set the DWM window attribute to say you will provide an “iconic bitmap” for the windowRespond to the window messages DWM will then send in order to set the preview – done for both thumbnail- and full-sized previews

Hi phone!

Windows 7 Taskbar – Custom Switchers

Surface custom UI (e.g. TDI/MDI)Custom thumbnails for each windowAppears in your program’s window list

MDI and TDI Window Switchers

What about Internet Explorer tabs?

Windows API Code Pack for the .NET Library

Managed class library to access to Win 7 features

Windows Shell namespace Windows Vista and Windows 7 Task Dialogs. Support for Shell property system. Taskbar Jumplists, Icon Overlay and Progress bar. Common file dialogsSupport for Direct3D 11.0 and DXGI 1.0/1.1 APIs. Sensor Platform APIs Extended Linguistic Services APIs

http://code.msdn.com/windowsAPICodePack

Windows 7 Taskbar – Jump Lists

Mini Start Menu for your programSurface key destinations and tasksCustomizableAccessible via right-click and via dragAPIs use the name “Destination List”

Destinations(“nouns”)

Tasks(“verbs”)

Known categories

Custom categories

User Tasks

Taskbar Tasks

Pinned category

Windows 7 Taskbar – Jump Lists

Customizing the Jump ListStep 1: Get the free stuff to work

Associate your program with the file extensionUse common file dialogsUse explicit recent document API

Customizing the Jump ListStep 2: Adding tasks

What would your user like to do?Launch your application with special arguments?Launch other applications?

Tasks are IShellLink objectsRich shortcut semantics including arguments, working directory, icon, and so on.

Customizing the Jump ListStep 3: Do you have categories?

Does it make sense to categorize documents?Is frequent, recent, pinned not enough?For example, Inbox, Outbox, Sales, Marketing …

Categories contain IShellItem or IShellLink objects

These are documents: You need a file association

Scenic RibbonDemo

Application Menu

Quick Access Toolbar

Tab Contextual Tab Set

Contextual Tab

Help

Group (aka “Chunk”)

Dialog Launcher

Windows Ribbon

In-box with Windows 7, redistribution available to VistaWin32 API & UI markup via XAML-based formatNear feature parity with Microsoft Office 2007 Ribbon & WPF Ribbon

Categorized Menus

Tabs & Groups

Color Pickers

Mini Toolbar &Contextual Menu

Dropdown GalleriesTooltips

Check Boxes

Spinners

Font Control

Group Dialog Launchers

“In-Ribbon” Galleries

Combo Boxes

Buttons & Split Buttons

Windows Ribbon - Controls

Scenic Ribbon API Architecture

Strong Model-View-Controller separationCode and markup decouplingSmall C++ API surface

MarkupOrganization of controls

<Ribbon> <Tab>

<Button … /> </Tab></Ribbon>

COM APIInitialization andevents handling

MyHandler::Execute(…){

DoStuff();}

Windows Scenic RibbonApplication-specific

business logic

void DoStuff() {

… …

}

Integrating Windows RibbonApplicationRibbon Platform

IUIApplication

IUIFramework

CoCreateInstance

Initialize (HWND, IUIApplication*)

LoadUI( resourceName )

OnCreateCommand

IUICommandHandler

Execute, UpdateProperty

Get/SetUICommandProperty, InvalidateUICommand

Microsoft’s Ribbon Strategy

MFCSceni

cWPF

Target:Managed

Target:MFC native

Target:Native

needs .NET 3.5

Win2K or newer

Vista or newer

Office 2007 & Windows styles

Office 2007 & Windows styles1

Windows visual style

Official release in late 2009

in Visual Studio 2008 SP1

Ships with Windows 7

Windows Ribbon - Roadmap

Sensor & Location APINew

Location devices exposed as virtual COM portsExclusive application accessNot secureProprietary data formats (NMEA, others)

GPS doesn’t work indoorsHard to support multiple technologies at once

Sensors are integrated as vertical solutionsApplications need to know sensorhardware specificsLimited adoption and scope

Limitations Of Sensors Today

Sensor And Location Platform

Provides unified driver model for all types of sensor devices

Physical sensors (e.g., GPS devices, Light Sensors)Logical sensor (e.g., Wi-Fi triangulation resolver)

Provides standard APIs for accessing sensorsSensor API: C++/COM / Managed code (Windows Bridge)

Raw access to any sensor

Location API: C++/COM, Idispatch Managed code (Windows 7 API Code Pack)

Abstracted API for location data

Puts user in control of information disclosure

Sensor Architecture

UMDF Sensor Driver

Sensor Class Extension

Sensor API

Application

Location and Other

Sensors Control Panel

SensorDevice

Application

UserSystem

What Info Do Sensors Use?Enumerated via category and type

Category represents what is being sensedType represents how it is sensed

Properties (read-only or read-write)Data (property keys for units, data field…)Events (data-driven)State

Location Platform Benefits

Single API call to answer “Where am I?”Independent of provider used todetermine locationSynchronous and Asynchronous modelsScript/automation compatible

Automatic transition between providersMost accurate providers have priority

Concurrent access for multiple applicationsDefault Location

Provided by user as fallback when no other sources are available

Location Architecture

UMDF Sensor Driver

Sensor Class Extension

Sensor API

Gadget or Script Application

Location and Other

Sensors Control Panel

SensorDevice

Location APILocation IDispatch Interface

Application

UMDF Sensor Driver

Sensor Class Extension

Logical Location Sensor(Triangulation)

UserSystem

Geographic Data (ILatLongReport)Latitude, longitude, altitude, associated error requiredMost common formatBest format for precise locationCan reverse geo-code later

Civic Address (ICivicAddressReport)Zip, Country requiredMost human readableBest for ‘rough’ location estimates,street directions

Types Of Location Data

Location data is considered PII (user consent required)All sensors are disabled by defaultAdmin rights required to enable a sensorSensors can be configured on a per-user basis“Enable Dialog” invoked by applications

Privacy And Access Control

Location Summary

C++/COM IDispatch (script, .NET interop)

Lat/Long and Address formats

Opt-in via ‘Enable Dialog’ orControl Panel

Single, convenient API for accessing current location

Enables applications to be

device-agnostic

User consent required toaccess data

Sensor Demo

Demo

Light-Aware Applications

UI without light-awareness,40% screen brightness

UI with light-awareness,100% screen brightness

Photos taken in direct sunlight

Ambient Light SensorsMeasure light intensity (i.e., illuminance) in LUX (lumens/square meter)Includes class driver support for ACPI light sensors

Working with OEMs to integrate light sensors into notebook designs

Adaptive brightness feature supportedOS automatically adjusts display backlight

Light-aware applications can use these sensors to optimize UI content for various lighting conditions

How To Build Light-Aware UIScale

Change font size/zoom level‘Weight’ of lines

ContrastColor

SaturationComplementary vs Adjacent

Smooth transitions between changes are extremely important for overall user experience

Fades or animationsData smoothing/hysteresis

Sensor API Summary

C++/COM Synchronous and asynchronous

data access

Discovery via category or type

Data and properties mappedto PROPERTYKEY andPROPVARIANT pairs

Rich API for accessing raw sensor data

Direct access to individual sensors

Extensible architecture

SamplesC++/COM samples in Windows SDKJScript location sample in Windows SDKWPF/.NET samples in Sensor Development Kit CDXNA + XNA Racing Game sample

ToolsLight Simulator (SDK)

HardwareGet a Sensor Development Kit

Getting Started

Based on Freescale JM Badge Board (HID)Sensors

Ambient light sensor3D AccelerometerDual touch strip sensors

Developer toolsSample firmware codeSample driver codeDiagnostic and sample applications

Light-aware MSDN ReaderMarble game

Sensor Development Kit

Multi Touch in Windows 7

New

Multi Touch Hardware AvailabilityHP TouchSmart All-in-One PC

NextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.html

NextWindow Touch OverlayNextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.html

Dell Latitude XT or Tx2N-trig digitizerDrivers: in progress and are targeted for Beta availability.

HP TouchSmart tx2z seriesN-trig digitizerDrivers: in progress and are targeted for Beta availability.

Multi Touch Is HereMT = two or more independently traceable touch pointsConsumers & MT

scored very favorably in user testingoffers clear differentiation with a high “WOW” factor for consumersenhances on-the-go use & enables new scenarios

HardwareMulti-touch capable machines in market today in a broad set of form factors

Navigating and consuming the webReading & sorting emailViewing photosPlaying casual gamesConsuming music and videoNavigating files & arranging windowsUsing Office applicationsAll focused on consumption

That led to four areas of investment:Developer Platform: At the root is the touch developer platform that exposes touch APIs for any application UI Enhancements: Focusing on the core scenarios, many parts of the core UI have been optimized for touch experiences. Gestures: Multi-touch gestures have been added to enable consistent panning and zooming in most applications.Applications: A set of multi-touch focused applications that demonstrate the power of touch. These will ship separate from Win7.

Multi Touch Scenarios

Control Panel – Pen and Touch

Gestures and Developers Platform

Consistent Multi-touch gesturesGestures for double click, right click, single & two finger panning, two finger zoom, and two finger rotation are built into the Windows 7 platform.These gestures are available across the OS and available “for free” to most applications.

Multi-touch platformDelivered first for Win32 and COMIntegrated into next version of WPF 4.0 shipping post Windows 7Touch enabled vs. Touch optimized applications

Feature supportGesture notifications: WM_GESTUREInertia and feedback algorithms Raw data support: WM_TOUCH or RTS“Surface-style” API providing 2D manipulation and inertia support

Development TiersBest

Better

Good

Surface HardwareWindows 7

Surface HardwareWindows

VistaWindows 7

NativeWin32

Application

WPF 3.5

Surface SDK1.0

Managed Wrapper and

Interop

Managed Wrapper and Interop

WinForms Application

Windows 7 ReleaseNET 4.0 / Surface 2.0 Release

WPF 3.5 SP1

WPF 4.0

Surface SDK 2.0

WPF Application

Surface Application

Multi-Touch Controls

Multi-Touch API

Surface Multi-Touch Controls &

API

Multi-Touch API

Multi-Touch API and Controls

Multi Touch Development Roadmap

Multi Touch in Windows 7

Demo

Windows 7 Integration Library

Windows7.Multitouch.Handler is base class for Touch & Gesture handlersUse Factory to create one of the handlers

For WinFormsmanaged Win32 hWnd, & WPF gesture support handler subclass Window (hWnd)

For WPF touch support, use stylus event with help of Factory.EnableStylusEvents() method

Multi Touch in WPF 4.0

UIElement and UIElement3D changesGesture events (tracking)Touch system gesture events (single)Raw touch events

Multi-touch support in controls:ScrollViewer update to accept pan gesturesBase controls updated to be multi-touch awareMulti-capture supportNew multi-touch specific controls

Compatible with Surface SDK 2.0

Track ResourcesWindows 7 RC Training for Developers Windows content on Channel 9 Windows 7 Developer Center on MSDN Windows Application Compatibility Roadmap Windows 7 Blog for Developers

My blog series – http://blogs.msdn.com/SoCalDevGal #Win7DevSeriesMy MSDN show – MSDN geekSpeak My Facebook group ‘Windows 7 Developers’

Links, Video & Screencasts

Related ContentBreakout Sessions WCL201 Developing for Windows 7 WCL301 Windows Application Readiness for Developers WCL302 Optimizing Your Application for the Windows 7 User Experience

Whiteboard SessionWTB215 Windows Client Development Discussion

Hands-on LabWCL08-HOL Windows 7: Mitigating Application Issues Using Shims

www.microsoft.com/teched

International Content & Community

http://microsoft.com/technet

Resources for IT Professionals

http://microsoft.com/msdn

Resources for Developers

www.microsoft.com/learning

Microsoft Certification & Training Resources

Resources Tech·Ed Africa 2009 sessions will be made available for download the week after the event from: www.tech-ed.co.za

Complete a session evaluation and enter to win!

10 pairs of MP3 sunglasses to be won

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related