SlideShare a Scribd company logo
Windows 7 for Developers IILynn Langithttp://blogs.msdn.com/SoCalDevGalMicrosoft – Developer Evangelist
2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors
Windows 95
2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors
7 Ways on Windows 7FundamentalsLibrariesTaskbarRibbonSensor and LocationMulti TouchGraphics*AppCompat*
Windows 7 Taskbar in actionDemo
Windows 7 TaskbarEnhanced user experienceQuick and easy launch of applicationsEasier to manage windows The user is in controlClean and lightweightStandard Windows UX guidelinesAll of Microsoft’s productsEnhanced Taskbar & Desktop Jump Lists Thumbnail Toolbars Custom SwitchersIconsOverlay IconsProgress Bars
Windows 7 Taskbar – IconsFace of your programLarge and small iconsOnly customer can pinColor hot-trackIcon OverlaySurface important notificationsAppears over your program’s iconProgress barSurface important notificationsAppears in your taskbar button
IconsBest practicesAre you putting your best foot forward?Make sure your icon looks greatCheck different DPIsCheck different glass colors and disabled glassHow does Color Hot-track look?Determined by your icon’s dominant color
Get More From Taskbar ButtonsOverlay and progress iconsConsolidate: Uncluttered notification areaProvide progress and additional information through the taskbar buttonIt’s free if you use standard progress dialogs
Taskbar Overlay and ProgressDesign considerationsNotification 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 ThumbnailsLive thumbnails: A live previewWindows Vista: One thumbnail per windowWindows 7: Grouped thumbnails
Windows 7 Taskbar – ThumbnailsRemote-control for a windowSurface key commandsAccessible from taskbar thumbnail Up to seven buttons
Thumbnail ToolbarsContrasting Thumbnail Toolbar commands and user tasks
Exposing Custom ThumbnailsOverriding Automatic Thumbnail PreviewTo 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!
2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors
Windows 7 Taskbar – Custom SwitchersSurface custom UI (e.g. TDI/MDI)Custom thumbnails for each windowAppears in your program’s window list
MDI and TDI Window SwitchersWhat about Internet Explorer tabs?
Windows API Code Pack for the .NET LibraryManaged class library to access to Win 7 featuresWindows 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 ListsMini Start Menu for your programSurface key destinations and tasksCustomizableAccessible via right-click and via dragAPIs use the name “Destination List”
Pinned categoryDestinations(“nouns”)Known categoriesCustom categoriesUser TasksTasks(“verbs”)Taskbar TasksWindows 7 Taskbar – Jump Lists
Customizing the Jump ListStep 1: Get the free stuff to workAssociate your program with the file extensionUse common file dialogsUse explicit recent document API
Customizing the Jump ListStep 2: Adding tasksWhat 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 objectsThese are documents: You need a file association
Scenic RibbonDemo
Application MenuHelpContextual Tab SetTabQuick Access ToolbarContextual TabIn-box with Windows 7, redistribution available to VistaWin32 API  &  UI markup via XAML-based formatNear feature parity with Microsoft Office 2007 Ribbon & WPF RibbonDialog LauncherGroup (aka “Chunk”)Windows Ribbon
Combo BoxesSpinnersMini Toolbar &Contextual MenuGroup Dialog LaunchersButtons & Split ButtonsColor PickersTooltipsCategorized MenusFont Control“In-Ribbon” GalleriesDropdown GalleriesTabs & GroupsCheck BoxesWindows Ribbon - Controls
Scenic Ribbon API ArchitectureStrong Model-View-Controller separationCode and markup decouplingSmall C++ API surfaceApplication-specific business logicvoid DoStuff() {      …      … }Windows Scenic RibbonCOM APIInitialization andevents handlingMyHandler::Execute(…){DoStuff();}MarkupOrganization of controls<Ribbon>   <Tab>      <Button … />   </Tab></Ribbon>
Integrating Windows RibbonApplicationRibbon PlatformCoCreateInstanceIUIApplicationInitialize (HWND,  IUIApplication*)LoadUI( resourceName )OnCreateCommandIUIFrameworkExecute, UpdatePropertyIUICommandHandlerGet/SetUICommandProperty, InvalidateUICommand
MFCScenicWPFTarget:ManagedTarget:MFC nativeTarget:Nativeneeds .NET 3.5Win2K or newerVista or newerOffice 2007 & Windows stylesOffice 2007 &   Windows styles1Windows visual styleOfficial release in late 2009in Visual Studio 2008 SP1Ships with Windows 7Microsoft’s Ribbon StrategyWindows Ribbon - Roadmap
Sensor & Location APINew
Limitations Of Sensors TodayLocation devices exposed  as virtual COM portsExclusive application accessNot secureProprietary data formats (NMEA, others)GPS doesn’t work indoorsHard to support multiple technologies at onceSensors are integrated as vertical solutionsApplications need to know sensorhardware specificsLimited adoption and scope
Sensor And Location PlatformProvides unified driver model for all types of sensor devicesPhysical 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 sensorLocation API:  C++/COM, IdispatchManaged code (Windows 7 API Code Pack)Abstracted API for location dataPuts user in control of information disclosure
Sensor ArchitectureApplicationApplicationSensor APIUserLocation and Other Sensors Control PanelSystemSensor Class ExtensionUMDF Sensor DriverSensorDevice
What Info Do Sensors Use?Enumerated via category and typeCategory represents what is being sensedType represents how it is sensedProperties (read-only or read-write)Data (property keys for units, data field…)Events (data-driven)State
Location Platform BenefitsSingle API call to answer “Where am I?”Independent of provider used todetermine locationSynchronous and Asynchronous modelsScript/automation compatibleAutomatic transition between providersMost accurate providers have priorityConcurrent access for multiple applicationsDefault LocationProvided by user as fallback when no other sources are available
Location ArchitectureGadget or ScriptApplicationApplicationLocation APILocation IDispatch InterfaceSensor APIUserLocation and Other Sensors Control PanelSystemSensor Class ExtensionSensor Class ExtensionUMDF Sensor DriverUMDF Sensor DriverSensorDeviceLogical Location Sensor(Triangulation)
Geographic Data (ILatLongReport)Latitude, longitude, altitude, associated error requiredMost common formatBest format for precise locationCan reverse geo-code laterCivic Address (ICivicAddressReport)Zip, Country requiredMost human readableBest for ‘rough’ location estimates,street directionsTypes 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 applicationsPrivacy And Access Control
Location SummaryC++/COM
IDispatch (script, .NET interop)Single, convenient API for accessing current locationLat/Long and Address formatsEnables applications to be device-agnosticUser consent required toaccess dataOpt-in via ‘Enable Dialog’ orControl PanelSensor DemoDemo
Light-Aware ApplicationsPhotos taken in direct sunlightUI with light-awareness,100% screen brightnessUI without light-awareness,40% screen brightness
Ambient Light SensorsMeasure light intensity (i.e., illuminance) in LUX (lumens/square meter)Includes class driver support for ACPI light sensorsWorking with OEMs to integrate light sensors into notebook designsAdaptive brightness feature supportedOS automatically adjusts display backlightLight-aware applications can use these sensors to optimize UI content for various lighting conditions
How To Build Light-Aware UIScaleChange font size/zoom level‘Weight’ of linesContrastColorSaturationComplementary vs AdjacentSmooth transitions between changes are extremely important for overall user experienceFades or animationsData smoothing/hysteresis
Sensor API SummaryC++/COM
Synchronous and asynchronousdata accessRich API for accessing raw sensor dataDiscovery via category or typeDirect access to individual sensorsExtensible architectureData and properties mappedto PROPERTYKEY andPROPVARIANT pairsSamplesC++/COM samples in Windows SDKJScript location sample in Windows SDKWPF/.NET samples in Sensor Development Kit CDXNA + XNA Racing Game sampleToolsLight Simulator (SDK)HardwareGet a Sensor Development KitGetting Started
Based on Freescale JM Badge Board (HID)SensorsAmbient light sensor3D AccelerometerDual touch strip sensorsDeveloper toolsSample firmware codeSample driver codeDiagnostic and sample applicationsLight-aware MSDN ReaderMarble gameSensor Development Kit
Multi Touch in Windows 7New
Multi Touch Hardware AvailabilityHP TouchSmart All-in-One PCNextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.htmlNextWindow Touch OverlayNextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.htmlDell 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 & MTscored 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
Multi  Touch ScenariosThat 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.Navigating and consuming the webReading & sorting emailViewing photosPlaying casual gamesConsuming music and videoNavigating files & arranging windowsUsing Office applicationsAll focused on consumption
Control Panel – Pen and Touch
Gestures and Developers PlatformConsistent 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 applicationsFeature supportGesture notifications: WM_GESTUREInertia and feedback algorithms Raw data support: WM_TOUCH or RTS“Surface-style” API providing 2D manipulation and inertia support
Development Tiers
Multi Touch Development RoadmapWindows 7 ReleaseNET 4.0 / Surface 2.0 ReleaseNativeWin32ApplicationWinFormsApplicationWPF ApplicationSurface ApplicationSurface SDK1.0Surface SDK 2.0Multi-Touch ControlsSurface  Multi-Touch Controls & APIMulti-Touch APIWPF 3.5 SP1WPF 4.0WPF 3.5Managed Wrapper and InteropManaged Wrapper and InteropMulti-Touch API and ControlsSurface HardwareWindows 7Surface HardwareWindows VistaWindows 7Multi-Touch API
Multi Touch in Windows 7Demo
Windows 7 Integration LibraryWindows7.Multitouch.Handler is base class for Touch & Gesture handlersUse Factory to create one of the handlersFor 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.0UIElement and UIElement3D changesGesture events (tracking)Touch system gesture events (single)Raw touch eventsMulti-touch support in controls:ScrollViewer update to accept pan gesturesBase controls updated to be multi-touch awareMulti-capture supportNew multi-touch specific controlsCompatible with Surface SDK 2.0
Track ResourcesWindows 7 RC Training for DevelopersWindows content on Channel 9  Windows 7 Developer Center on MSDNWindows Application Compatibility RoadmapWindows 7 Blog for DevelopersMy blog series – http://blogs.msdn.com/SoCalDevGal#Win7DevSeriesMy MSDN show – MSDN geekSpeakMy 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 ExperienceWhiteboard SessionWTB215		Windows Client Development DiscussionHands-on LabWCL08-HOL	Windows 7: Mitigating Application Issues Using Shims
Tech·Ed Africa 2009 sessions will be made available for download  the week after the event from:  www.tech-ed.co.zawww.microsoft.com/techedInternational Content & Communitywww.microsoft.com/learningMicrosoft Certification & Training Resourceshttp://microsoft.com/technetResources for IT Professionalshttp://microsoft.com/msdnResources for DevelopersResources
Required Slide10 pairs of MP3 sunglasses to be wonComplete a session evaluation and enter to win!
© 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.

More Related Content

PPTX
Windows 7 For Developers
PPTX
Introduction to Android for Quality Engineers
PPTX
Windows Phone 7 Programming Introduction
PPT
Java Land F
PPTX
PPTX
Android User Interface
PPTX
Windows phone
PPTX
Windows 8 & Phone 8 - an Architectural Battle Plan
Windows 7 For Developers
Introduction to Android for Quality Engineers
Windows Phone 7 Programming Introduction
Java Land F
Android User Interface
Windows phone
Windows 8 & Phone 8 - an Architectural Battle Plan

What's hot (15)

PPTX
Windows Phone 7 Architecture Overview
PDF
Visual Basic IDE Introduction
PPTX
Bam amor mobile development tools
PPTX
Building Multi-Touch Experiences
PPTX
Introducing the Windows Phone Application Platform
PPT
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
PDF
Developing for Windows Phone 8.1 (Dan Ardelean)
PPTX
Developing for Windows Phone 8.1
PPT
Windows Phone 7 v.s iOS Development
PPTX
Introduction to InTouch Machine Edition (ITME)
PPTX
What's New in InTouch Machine Edition (ITME)
PDF
QBS Visual Studio 2012 and modern windows apps
PDF
Rashmi_Resume
PDF
Android tutorial
PDF
follow-app BOOTCAMP 2: Building windows phone applications with visual studio...
Windows Phone 7 Architecture Overview
Visual Basic IDE Introduction
Bam amor mobile development tools
Building Multi-Touch Experiences
Introducing the Windows Phone Application Platform
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1
Windows Phone 7 v.s iOS Development
Introduction to InTouch Machine Edition (ITME)
What's New in InTouch Machine Edition (ITME)
QBS Visual Studio 2012 and modern windows apps
Rashmi_Resume
Android tutorial
follow-app BOOTCAMP 2: Building windows phone applications with visual studio...
Ad

Viewers also liked (7)

PPTX
5 Digigirlz Xna
PPT
Parallel Programming and F#
PPTX
1 Win7 For Devs Fund Search
PPTX
3 Kodu
PPTX
3 App Compat Win7
PPTX
4 Making Movies
DOCX
Ensayo
5 Digigirlz Xna
Parallel Programming and F#
1 Win7 For Devs Fund Search
3 Kodu
3 App Compat Win7
4 Making Movies
Ensayo
Ad

Similar to 2 Win7 For Devs Ux Touch Sensors (20)

PPTX
Dev-In-Town: Windows 7 by Jabez Gan
PPTX
Windows 7 For Developers
PPTX
Windows 7 For Developers
PPTX
Commercial Launch Win7 Dev Chalermvong
PPTX
Commercial Launch Win7 Dev Chalermvong
PPTX
Windows 7 @Microsoft CTD
PPTX
1b Win7 Task Bar
PPT
Building_The_Next-Generation_UI - Multitouch and Ribbon
PPTX
Introduction to Windows 8 Development
PDF
Marlabs - MarlaBuzz November
PDF
Next Generation LOB (Line of Business) Applications
PDF
Usergroup 02 Berlin Windows7
PPT
Introduction to .NET Micro Framework Development
PPTX
Deep Dive into WinRT
PDF
Windows 10 Hybrid Development
PPTX
A Developer's View of Windows 8
PPTX
Encontro de Parceiros 2009 - Windows 7
PPTX
ArcReady - Architecting For The Client Tier
PPTX
Windows 7 Developer Overview
DOCX
Windows 8
Dev-In-Town: Windows 7 by Jabez Gan
Windows 7 For Developers
Windows 7 For Developers
Commercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev Chalermvong
Windows 7 @Microsoft CTD
1b Win7 Task Bar
Building_The_Next-Generation_UI - Multitouch and Ribbon
Introduction to Windows 8 Development
Marlabs - MarlaBuzz November
Next Generation LOB (Line of Business) Applications
Usergroup 02 Berlin Windows7
Introduction to .NET Micro Framework Development
Deep Dive into WinRT
Windows 10 Hybrid Development
A Developer's View of Windows 8
Encontro de Parceiros 2009 - Windows 7
ArcReady - Architecting For The Client Tier
Windows 7 Developer Overview
Windows 8

More from llangit (20)

PPTX
2 Digi Girlz Small Basic
PPTX
1 Digi Girlz So Cal Databases Kims Final
PPT
SQL Server 2008 Data Mining
PPT
SQL Server 2008 Data Mining
PPT
SQL Server 2008 for Developers
PPT
SQL Server 2008 for .NET Developers
PPT
Tech Days09 Sqldev
PPT
Windows Azure for .NET Developers
PPT
Introduction To Sql Services
PPT
Making of GirlGamer
PPT
Kodu
PPT
DigiGirlz_SoCal_Databases
PPT
DigiGirlzSmallBasic
PPT
Bi2008 Plus Cloud Preview
PPT
The Role Of An Architect
PPT
SQL Server 2008 for Developers
PPT
BI in SQL Server 2008 for Architects
PPT
BI2008newFeatures
PPT
BI 2008 Simple
PPT
Data Mining 2008
2 Digi Girlz Small Basic
1 Digi Girlz So Cal Databases Kims Final
SQL Server 2008 Data Mining
SQL Server 2008 Data Mining
SQL Server 2008 for Developers
SQL Server 2008 for .NET Developers
Tech Days09 Sqldev
Windows Azure for .NET Developers
Introduction To Sql Services
Making of GirlGamer
Kodu
DigiGirlz_SoCal_Databases
DigiGirlzSmallBasic
Bi2008 Plus Cloud Preview
The Role Of An Architect
SQL Server 2008 for Developers
BI in SQL Server 2008 for Architects
BI2008newFeatures
BI 2008 Simple
Data Mining 2008

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectroscopy.pptx food analysis technology
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Heart disease approach using modified random forest and particle swarm optimi...
Empathic Computing: Creating Shared Understanding
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Programs and apps: productivity, graphics, security and other tools
Univ-Connecticut-ChatGPT-Presentaion.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

2 Win7 For Devs Ux Touch Sensors

  • 1. Windows 7 for Developers IILynn Langithttp://blogs.msdn.com/SoCalDevGalMicrosoft – Developer Evangelist
  • 8. 7 Ways on Windows 7FundamentalsLibrariesTaskbarRibbonSensor and LocationMulti TouchGraphics*AppCompat*
  • 9. Windows 7 Taskbar in actionDemo
  • 10. Windows 7 TaskbarEnhanced user experienceQuick and easy launch of applicationsEasier to manage windows The user is in controlClean and lightweightStandard Windows UX guidelinesAll of Microsoft’s productsEnhanced Taskbar & Desktop Jump Lists Thumbnail Toolbars Custom SwitchersIconsOverlay IconsProgress Bars
  • 11. Windows 7 Taskbar – IconsFace of your programLarge and small iconsOnly customer can pinColor hot-trackIcon OverlaySurface important notificationsAppears over your program’s iconProgress barSurface important notificationsAppears in your taskbar button
  • 12. IconsBest practicesAre you putting your best foot forward?Make sure your icon looks greatCheck different DPIsCheck different glass colors and disabled glassHow does Color Hot-track look?Determined by your icon’s dominant color
  • 13. Get More From Taskbar ButtonsOverlay and progress iconsConsolidate: Uncluttered notification areaProvide progress and additional information through the taskbar buttonIt’s free if you use standard progress dialogs
  • 14. Taskbar Overlay and ProgressDesign considerationsNotification area is now user controlled:Leave yourself out if possible!Use taskbar buttons for custom progress or status information
  • 15. Peek Preview (Aero Peek)Live peek without a click
  • 16. Live ThumbnailsLive thumbnails: A live previewWindows Vista: One thumbnail per windowWindows 7: Grouped thumbnails
  • 17. Windows 7 Taskbar – ThumbnailsRemote-control for a windowSurface key commandsAccessible from taskbar thumbnail Up to seven buttons
  • 18. Thumbnail ToolbarsContrasting Thumbnail Toolbar commands and user tasks
  • 19. Exposing Custom ThumbnailsOverriding Automatic Thumbnail PreviewTo 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
  • 23. Windows 7 Taskbar – Custom SwitchersSurface custom UI (e.g. TDI/MDI)Custom thumbnails for each windowAppears in your program’s window list
  • 24. MDI and TDI Window SwitchersWhat about Internet Explorer tabs?
  • 25. Windows API Code Pack for the .NET LibraryManaged class library to access to Win 7 featuresWindows 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
  • 26. Windows 7 Taskbar – Jump ListsMini Start Menu for your programSurface key destinations and tasksCustomizableAccessible via right-click and via dragAPIs use the name “Destination List”
  • 27. Pinned categoryDestinations(“nouns”)Known categoriesCustom categoriesUser TasksTasks(“verbs”)Taskbar TasksWindows 7 Taskbar – Jump Lists
  • 28. Customizing the Jump ListStep 1: Get the free stuff to workAssociate your program with the file extensionUse common file dialogsUse explicit recent document API
  • 29. Customizing the Jump ListStep 2: Adding tasksWhat 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.
  • 30. 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 objectsThese are documents: You need a file association
  • 32. Application MenuHelpContextual Tab SetTabQuick Access ToolbarContextual TabIn-box with Windows 7, redistribution available to VistaWin32 API & UI markup via XAML-based formatNear feature parity with Microsoft Office 2007 Ribbon & WPF RibbonDialog LauncherGroup (aka “Chunk”)Windows Ribbon
  • 33. Combo BoxesSpinnersMini Toolbar &Contextual MenuGroup Dialog LaunchersButtons & Split ButtonsColor PickersTooltipsCategorized MenusFont Control“In-Ribbon” GalleriesDropdown GalleriesTabs & GroupsCheck BoxesWindows Ribbon - Controls
  • 34. Scenic Ribbon API ArchitectureStrong Model-View-Controller separationCode and markup decouplingSmall C++ API surfaceApplication-specific business logicvoid DoStuff() { … … }Windows Scenic RibbonCOM APIInitialization andevents handlingMyHandler::Execute(…){DoStuff();}MarkupOrganization of controls<Ribbon> <Tab> <Button … /> </Tab></Ribbon>
  • 35. Integrating Windows RibbonApplicationRibbon PlatformCoCreateInstanceIUIApplicationInitialize (HWND, IUIApplication*)LoadUI( resourceName )OnCreateCommandIUIFrameworkExecute, UpdatePropertyIUICommandHandlerGet/SetUICommandProperty, InvalidateUICommand
  • 36. MFCScenicWPFTarget:ManagedTarget:MFC nativeTarget:Nativeneeds .NET 3.5Win2K or newerVista or newerOffice 2007 & Windows stylesOffice 2007 & Windows styles1Windows visual styleOfficial release in late 2009in Visual Studio 2008 SP1Ships with Windows 7Microsoft’s Ribbon StrategyWindows Ribbon - Roadmap
  • 38. Limitations Of Sensors TodayLocation devices exposed as virtual COM portsExclusive application accessNot secureProprietary data formats (NMEA, others)GPS doesn’t work indoorsHard to support multiple technologies at onceSensors are integrated as vertical solutionsApplications need to know sensorhardware specificsLimited adoption and scope
  • 39. Sensor And Location PlatformProvides unified driver model for all types of sensor devicesPhysical 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 sensorLocation API: C++/COM, IdispatchManaged code (Windows 7 API Code Pack)Abstracted API for location dataPuts user in control of information disclosure
  • 40. Sensor ArchitectureApplicationApplicationSensor APIUserLocation and Other Sensors Control PanelSystemSensor Class ExtensionUMDF Sensor DriverSensorDevice
  • 41. What Info Do Sensors Use?Enumerated via category and typeCategory represents what is being sensedType represents how it is sensedProperties (read-only or read-write)Data (property keys for units, data field…)Events (data-driven)State
  • 42. Location Platform BenefitsSingle API call to answer “Where am I?”Independent of provider used todetermine locationSynchronous and Asynchronous modelsScript/automation compatibleAutomatic transition between providersMost accurate providers have priorityConcurrent access for multiple applicationsDefault LocationProvided by user as fallback when no other sources are available
  • 43. Location ArchitectureGadget or ScriptApplicationApplicationLocation APILocation IDispatch InterfaceSensor APIUserLocation and Other Sensors Control PanelSystemSensor Class ExtensionSensor Class ExtensionUMDF Sensor DriverUMDF Sensor DriverSensorDeviceLogical Location Sensor(Triangulation)
  • 44. Geographic Data (ILatLongReport)Latitude, longitude, altitude, associated error requiredMost common formatBest format for precise locationCan reverse geo-code laterCivic Address (ICivicAddressReport)Zip, Country requiredMost human readableBest for ‘rough’ location estimates,street directionsTypes Of Location Data
  • 45. 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 applicationsPrivacy And Access Control
  • 47. IDispatch (script, .NET interop)Single, convenient API for accessing current locationLat/Long and Address formatsEnables applications to be device-agnosticUser consent required toaccess dataOpt-in via ‘Enable Dialog’ orControl PanelSensor DemoDemo
  • 48. Light-Aware ApplicationsPhotos taken in direct sunlightUI with light-awareness,100% screen brightnessUI without light-awareness,40% screen brightness
  • 49. Ambient Light SensorsMeasure light intensity (i.e., illuminance) in LUX (lumens/square meter)Includes class driver support for ACPI light sensorsWorking with OEMs to integrate light sensors into notebook designsAdaptive brightness feature supportedOS automatically adjusts display backlightLight-aware applications can use these sensors to optimize UI content for various lighting conditions
  • 50. How To Build Light-Aware UIScaleChange font size/zoom level‘Weight’ of linesContrastColorSaturationComplementary vs AdjacentSmooth transitions between changes are extremely important for overall user experienceFades or animationsData smoothing/hysteresis
  • 52. Synchronous and asynchronousdata accessRich API for accessing raw sensor dataDiscovery via category or typeDirect access to individual sensorsExtensible architectureData and properties mappedto PROPERTYKEY andPROPVARIANT pairsSamplesC++/COM samples in Windows SDKJScript location sample in Windows SDKWPF/.NET samples in Sensor Development Kit CDXNA + XNA Racing Game sampleToolsLight Simulator (SDK)HardwareGet a Sensor Development KitGetting Started
  • 53. Based on Freescale JM Badge Board (HID)SensorsAmbient light sensor3D AccelerometerDual touch strip sensorsDeveloper toolsSample firmware codeSample driver codeDiagnostic and sample applicationsLight-aware MSDN ReaderMarble gameSensor Development Kit
  • 54. Multi Touch in Windows 7New
  • 55. Multi Touch Hardware AvailabilityHP TouchSmart All-in-One PCNextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.htmlNextWindow Touch OverlayNextWindow digitizerDrivers: http://www.nextwindow.com/windriver/index.htmlDell 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.
  • 56. Multi Touch Is HereMT = two or more independently traceable touch pointsConsumers & MTscored 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
  • 57. Multi Touch ScenariosThat 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.Navigating and consuming the webReading & sorting emailViewing photosPlaying casual gamesConsuming music and videoNavigating files & arranging windowsUsing Office applicationsAll focused on consumption
  • 58. Control Panel – Pen and Touch
  • 59. Gestures and Developers PlatformConsistent 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 applicationsFeature supportGesture notifications: WM_GESTUREInertia and feedback algorithms Raw data support: WM_TOUCH or RTS“Surface-style” API providing 2D manipulation and inertia support
  • 61. Multi Touch Development RoadmapWindows 7 ReleaseNET 4.0 / Surface 2.0 ReleaseNativeWin32ApplicationWinFormsApplicationWPF ApplicationSurface ApplicationSurface SDK1.0Surface SDK 2.0Multi-Touch ControlsSurface Multi-Touch Controls & APIMulti-Touch APIWPF 3.5 SP1WPF 4.0WPF 3.5Managed Wrapper and InteropManaged Wrapper and InteropMulti-Touch API and ControlsSurface HardwareWindows 7Surface HardwareWindows VistaWindows 7Multi-Touch API
  • 62. Multi Touch in Windows 7Demo
  • 63. Windows 7 Integration LibraryWindows7.Multitouch.Handler is base class for Touch & Gesture handlersUse Factory to create one of the handlersFor WinFormsmanaged Win32 hWnd, & WPF gesture support handler subclass Window (hWnd)For WPF touch support, use stylus event with help of Factory.EnableStylusEvents() method
  • 64. Multi Touch in WPF 4.0UIElement and UIElement3D changesGesture events (tracking)Touch system gesture events (single)Raw touch eventsMulti-touch support in controls:ScrollViewer update to accept pan gesturesBase controls updated to be multi-touch awareMulti-capture supportNew multi-touch specific controlsCompatible with Surface SDK 2.0
  • 65. Track ResourcesWindows 7 RC Training for DevelopersWindows content on Channel 9  Windows 7 Developer Center on MSDNWindows Application Compatibility RoadmapWindows 7 Blog for DevelopersMy blog series – http://blogs.msdn.com/SoCalDevGal#Win7DevSeriesMy MSDN show – MSDN geekSpeakMy Facebook group ‘Windows 7 Developers’Links, Video & Screencasts
  • 66. Related ContentBreakout Sessions WCL201 Developing for Windows 7 WCL301 Windows Application Readiness for Developers WCL302 Optimizing Your Application for the Windows 7 User ExperienceWhiteboard SessionWTB215 Windows Client Development DiscussionHands-on LabWCL08-HOL Windows 7: Mitigating Application Issues Using Shims
  • 67. Tech·Ed Africa 2009 sessions will be made available for download the week after the event from: www.tech-ed.co.zawww.microsoft.com/techedInternational Content & Communitywww.microsoft.com/learningMicrosoft Certification & Training Resourceshttp://microsoft.com/technetResources for IT Professionalshttp://microsoft.com/msdnResources for DevelopersResources
  • 68. Required Slide10 pairs of MP3 sunglasses to be wonComplete a session evaluation and enter to win!
  • 69. © 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.

Editor's Notes

  • #10: 2-3 demos on taskbar & jumplists
  • #11: [TDM, DEV][What - Windows 7 Taskbar feature overview] Not all the features in the Windows 7 Taskbar are applicable to all applications. Each application needs to be evaluated on its own.
  • #12: [TDM, DEV] [Taskbar Icons – Details]ICONSAre you putting your best foot forward?Make sure your icon looks greatCheck different DPIsCheck different glass colors and disabled glassHow does Color Hot-track look?Determined by your icon’s dominant colorIcons OverlayDo you need to surface notifications?Does this help the user make a decision?Single icon at a time (LIFO)No animationsIdeally, application-specific Group vs. UngroupCan you retire your icon in the Notification Area?Progress barDoes your program require progress status?Does this help the user make a decision?Do you already surface a progress dialog?One detailed progress at a time[TDM, DEV]ICONSAre you putting your best foot forward?Make sure your icon looks greatCheck different DPIsCheck different glass colors and disabled glassHow does Color Hot-track look?Determined by your icon’s dominant colorIcons OverlayDo you need to surface notifications?Does this help the user make a decision?Single icon at a time (LIFO)No animationsIdeally, application-specific Group vs. UngroupCan you retire your icon in the Notification Area?
  • #15: Native codeITaskbarList3* ptl = ...;ptl->SetOverlayIcon(hwnd, hicon, L"Accessible Description");ptl->SetProgressState(hwnd, TBPF_NORMAL);for (inti = 0; i < MAX; ++i) {ptl->SetProgressValue(hwnd, i, MAX);}
  • #16: NativeDwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICLIVEPREVIEWBITMAP: HBITMAP hbm = ...;DwmSetIconicLivePreviewBitmap(...hbm,...);
  • #17: Native codeDwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm = ...;DwmSetIconicThumbnail(hwnd, hbm, ...);
  • #18: [TDM, DEV][Windows 7 Taskbar Details]In the earlier taskbar posts, we discussed how Windows Media Player’s deskband offers valuable background music controls, but only a mere 3% of sessions ever enjoy the functionality. The new taskbar exposes a feature called Thumbnail Toolbars that surface up to seven window controls right in context of taskbar buttons. Unlike a Jump List that applies globally to a program, this toolbar is contextual to just a specific window. By embracing this new feature, Media Player can now reach a majority of peopleDoes your window require controls?Surface commands that users access regularlyCommands must be contextual to a windowDon’t duplicate Jump List tasksCan you replace a Desktop Toolbar?
  • #19: Native codeUINT wm_tbc = RegisterWindowMessage( "TaskbarButtonCreated");MSG m; GetMessage(..., &m);if (m.message == wm_tbc) { ITaskbarList3* ptl = ...; THUMBBUTTON btn = {...};ptl->ThumbBarAddButtons(m.hWnd, 1, &btn);}
  • #24: [TDM, DEV]All the major web browsers offer tabs and a method of managing these tabs. One could argue tab toolbars are really like taskbars since they facilitate switching. These TDI (Tabbed Document Interface) and MDI (Multiple Document Interface) programs have always resorted to creating their own internal window management systems as the Windows taskbar was not optimized to help their scenarios. Some programs like Excel did custom work to surface their child windows on the taskbar, but this approach was somewhat of a hack.Since the new taskbar already groups individual windows of a program under a single button, we can now offer a standard way for programs that have child windows to expose them. Again, the taskbar offers a single, consistent place to access real windows as well as child windows. These custom window switchers also behave as regular windows on the taskbar with rich thumbnails and even Aero Peek.Does your program have switchers that need to be surfaced?Do users need to regularly switch to them?Provide a visual representation for your client area’s switcherTaskbar bitmap (thumbnail)Peek bitmap (real size)
  • #25: Native Use ITaskbarList3::RegisterTab, SetTabOrder, SetTabActiveChild window must create a proxy top-level window for custom thumbnail and peekThe proxy window is typically invisibleProxy window must handle WM_ACTIVATE and WM_SYSCOMMAND
  • #27: [TDM, DEV][Windows 7 Taskbar Details – Important enough to not hide]Jump Lists are a new feature of the Windows 7 taskbar that accomplish just this. Think of this feature as a mini Start Menu for each program or an evolved version of the system menu. First, the you don’t need to even start the program to quickly launch a file or access a task. Second, destinations don’t take up valuable space on the taskbar; they are automatically organized by their respective program in a simple list. Should one have ten programs pinned or running on her taskbar, this means she could have quick access to over 150 destinations she uses all the time, without even the need to customize the UI! Since the Jump List shows lots of text for each of its items, gone are the days of having identical icons on your taskbar that are indistinguishable without a tooltip. Should you wish to keep a specific destination around, you can simply pin it to the list.
  • #28: [ DEV][Why - Windows 7 Taskbar details]Jump Lists are a new feature of the Windows 7 taskbar that accomplish just this. Think of this feature as a mini Start Menu for each program or an evolved version of the system menu. Jump Lists surface commonly used nouns (destinations) and verbs (tasks) of a program. There are several advantages this new approach provides. Do destinations apply to your program?Nouns: Items consumed/created by your programDynamic based upon individual user patternRecent or frequent or custom list?Do tasks apply to your program?Verbs: Program actionsTasks should not require your program to be runningTasks are static and apply to all usersTasks should globally apply to your program, not a specific window
  • #29: Native - SHAddToRecentDocs(SHARDW_PATH, "file.ext");
  • #30: NativeIObjectCollection* poc = ...;IShellLink* task = ...;poc.AddObject(task);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AddUserTasks(poa);pcdl.CommitList();
  • #31: NativeIObjectCollection* poc = ...;IShellItem* item = ...;poc.AddObject(item);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AppendCategory(L"Sales", poa);pcdl.CommitList();
  • #32: 1 demo on Scenic ribbon
  • #33: [TDM, DEV][What- Windows 7 Ribbon Platform overview]The Ribbon – a very successful concept from Office 2007 has become a first class citizen in Windows 7 and it is evolved into a developer platform. Many developers asked us to enable ease access to the office Ribbon. So in Windows 7 we have created the Ribbon which will also be redistributed available to Windows VistaIt is a Win 32 native COM base APIAnd it has a very close functionality to the office Ribbon
  • #34: [TDM, DEV][What - Windows 7 Ribbon Platform available controls]Show Live Movie Maker Beta to emphasize that other Windows apps are using the Ribbon
  • #40: [TDM, DEV]Sensor Platform Windows 7 has changed how developers use sensors. It includes native support for sensors, expanded by a new development platform for working with sensors, including location sensors, such as GPS devices. Built on the Sensor platform, the Windows Location APIs are a new Windows 7 feature that enables application developers to access the user’s physical location information. The Windows Location APIs can abstract hardware, simultaneously support multiple applications, and seamlessly switch between different technologies, relieving the application developer of the burden of managing these constraints. The Location APIs can be used by programmers through the C++ programming language (by programmers familiar with COM), or by using COM objects in scripting languages, such as JScript®. Scripting support gives easy access to location data for projects such as gadgets or web pages.Windows 7 provides a solid, easy-to-use platform for using sensor devices, such as an ambient light sensor or a temperature gauge, to create environmental awareness in Windows applications. PCs can use sensors that are built into the computer, connected through wired or wireless connections, or connected through a network or the Internet.The Sensor and Location APIs provide a standard way to discover sensors, and to programmatically access data that sensors provideThe Sensor control panel lets users enable or disable sensors, control access to sensors that might expose sensitive data, view sensor properties, and change the descriptions of sensors.The Sensor Class Extension is a core part of the driver development model for the Sensor platform. It provides the following mechanisms, which are used when writing a User-Mode Driver Framework (UMDF) sensor driver:Integration with the Sensor platformSecurity enforcement
  • #43: [TDM, DEV]
  • #44: Native codeinterface ILocation : IUnknown{HRESULT RegisterForReport(ILocationEvents* pEvents, REFIID reportType, ULONG dwRequestedReportInterval); HRESULT GetReport( REFIID reportType,ILocationReport** ppLocationReport);// other functions};interface ILocationEvents : IUnknown{HRESULT OnLocationChanged( REFIID reportType,ILocationReport* pNewReport);HRESULT OnStatusChanged( REFIID reportType, LOCATION_REPORT_STATUS newStatus);};
  • #45: Native codeinterface ILatLongReport : ILocationReport{HRESULT GetLatitude(DOUBLE* latitude);HRESULT GetLongitude(DOUBLE* longitude);HRESULT GetAltitude(DOUBLE* altitude);HRESULT GetAltitudeError(DOUBLE* altitudeError);HRESULT GetErrorRadius(DOUBLE* errorRadius);};interface ICivicAddressReport : ILocationReport{ HRESULT GetAddressLine1(BSTR* pbstrAddress1); HRESULT GetAddressLine2(BSTR* pbstrAddress2); HRESULT GetCity(BSTR* pbstrCity); HRESULT GetStateProvince(BSTR* pbstrState); HRESULT GetPostalCode(BSTR* pbstrPostalCode); HRESULT GetCountryRegion(BSTR* pbstrCountry);};
  • #48: MSDN Reader or Car Game or 3D Marbles, also two ‘test’ demos – acelerometer and light
  • #50: Nativeinclude <sensors.h>HRESULT hr;CComPtr<ISensorManager> pSensorManager;pSensorManager.CoCreateInstance(CLSID_SensorManager);CComPtr<ISensorCollection> pALSCollection;CComPtr<ISensor> pALSSensor;// Get all the ALS sensors on the systempSensorManager->GetSensorsByType(SENSOR_TYPE_AMBIENT_LIGHT, &pALSCollection);hr = pSensorManager->RequestPermissions( 0, // Owner window pALSCollection, // Collection of sensors requiring permissions TRUE); // Modal flagif(SUCCEEDED(hr)){pALSCollection->GetAt(0, &pALSSensor);}
  • #51: Native codeSTDMETHODIMP CALSEventSink::OnDataUpdated(ISensor* pSensor, ISensorDataReport* pNewData){PROPVARIANT lightLevel; PropVariantInit(&lightLevel); // Get the sensor reading from the ISensorDataReport objectpNewData->GetSensorValue(SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX, &lightLevel);// Extract the float value from the PROPVARIANT objectfloat luxValue = V_FLOAT(lightLevel);// Normalize the light sensor datadouble lightNormalized = ::pow(luxValue, 0.4) / 100.0;// Handle UI changes based on the normalized LUX data // which ranges from 0.0 - 1.0 for a lux range of// 0 lux to 100,000 lux, this method represents such a // handler that would be implemented in your application UpdateUI(lightNormalized); PropVariantClear(&lightLevel);return S_OK;}
  • #55: Show MT Picture Animation Demo (also talk about Scenic Animation)Show MT Multi Touch Paint
  • #57: [DEV, TDM][High level overview of Why Multi Touch]Multi-touch offers clear differentiation with a high “WOW” factor for consumersMulti-touch enhances on-the-go use and opens up new scenarios for business90% of people in focus groups claimed they would pay a 20-30% premium for a PC with multi-touchSeeing is believing: Consumer purchase intent doubles after hands-on experienceMulti-touch is major investment area for Windows 7MT is defined a two or more independently trackable touch points.MT scored very favorably in user testingConsumer awareness and interest in touch is highCustomers view touch interaction as the next stage of computingTouch offers a direct personal “natural” connection to their applications and freedom from the keyboard and mouse.Touch would help users be more efficient and be fun to use.
  • #58: [TDM, DEV][High level overview of Why Multi Touch]Which application scenarios get the biggest benefit from touch?Content consumption, mobile, media and entertainmentDecide which tier of investment is appropriate:Good – Free support, UX tweaksBetter – Gesture support, touch-friendly UXBest – Touch-optimized experience
  • #62: [DEV]Multi Touch
  • #63: Show MT Picture Animation Demo (also talk about Scenic Animation)Show MT Multi Touch PaintPinballVirtual Earth