• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2 Win7 For Devs Ux Touch Sensors
 

2 Win7 For Devs Ux Touch Sensors

on

  • 3,386 views

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

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

Statistics

Views

Total Views
3,386
Views on SlideShare
3,359
Embed Views
27

Actions

Likes
0
Downloads
43
Comments
0

3 Embeds 27

http://blogs.msdn.com 17
http://www.slideshare.net 9
http://menes11.corisu.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 2-3 demos on taskbar & jumplists
  • [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.
  • [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?
  • 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);}
  • NativeDwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICLIVEPREVIEWBITMAP: HBITMAP hbm = ...;DwmSetIconicLivePreviewBitmap(...hbm,...);
  • Native codeDwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm = ...;DwmSetIconicThumbnail(hwnd, hbm, ...);
  • [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?
  • 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);}
  • [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)
  • 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
  • [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.
  • [ 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
  • Native - SHAddToRecentDocs(SHARDW_PATH, "file.ext");
  • NativeIObjectCollection* poc = ...;IShellLink* task = ...;poc.AddObject(task);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AddUserTasks(poa);pcdl.CommitList();
  • NativeIObjectCollection* poc = ...;IShellItem* item = ...;poc.AddObject(item);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AppendCategory(L"Sales", poa);pcdl.CommitList();
  • 1 demo on Scenic ribbon
  • [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
  • [TDM, DEV][What - Windows 7 Ribbon Platform available controls]Show Live Movie Maker Beta to emphasize that other Windows apps are using the Ribbon
  • [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
  • [TDM, DEV]
  • 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);};
  • 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);};
  • MSDN Reader or Car Game or 3D Marbles, also two ‘test’ demos – acelerometer and light
  • Nativeinclude HRESULT hr;CComPtr pSensorManager;pSensorManager.CoCreateInstance(CLSID_SensorManager);CComPtr pALSCollection;CComPtr 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);}
  • 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;}
  • Show MT Picture Animation Demo (also talk about Scenic Animation)Show MT Multi Touch Paint
  • [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.
  • [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
  • [DEV]Multi Touch
  • Show MT Picture Animation Demo (also talk about Scenic Animation)Show MT Multi Touch PaintPinballVirtual Earth

2 Win7 For Devs Ux Touch Sensors 2 Win7 For Devs Ux Touch Sensors Presentation Transcript

  • Windows 7 for Developers II
    Lynn Langit
    http://blogs.msdn.com/SoCalDevGal
    Microsoft – Developer Evangelist
  • Windows 95
  • 7 Ways on Windows 7
    Fundamentals
    Libraries
    Taskbar
    Ribbon
    Sensor and Location
    Multi Touch
    Graphics
    *AppCompat*
  • Windows 7 Taskbar in action
    Demo
  • Windows 7 Taskbar
    Enhanced user experience
    Quick and easy launch of applications
    Easier to manage windows
    The user is in control
    Clean and lightweight
    Standard Windows UX guidelines
    All of Microsoft’s products
    Enhanced Taskbar & Desktop
    Jump Lists
    Thumbnail Toolbars
    Custom Switchers
    Icons
    Overlay Icons
    Progress Bars
  • Windows 7 Taskbar – Icons
    Face of your program
    Large and small icons
    Only customer can pin
    Color hot-track
    Icon Overlay
    Surface important notifications
    Appears over your program’s icon
    Progress bar
    Surface important notifications
    Appears in your taskbar button
  • IconsBest practices
    Are you putting your best foot forward?
    Make sure your icon looks great
    Check different DPIs
    Check 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 area
    Provide 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 preview
    Windows Vista: One thumbnail per window
    Windows 7: Grouped thumbnails
  • Windows 7 Taskbar – Thumbnails
    Remote-control for a window
    Surface key commands
    Accessible from taskbar thumbnail
    Up to seven buttons
  • Thumbnail ToolbarsContrasting Thumbnail Toolbar commands and user tasks
  • 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 window
    Respond 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 window
    Appears 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 dialogs
    Support 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 program
    Surface key destinations and tasks
    Customizable
    Accessible via right-click and via drag
    APIs use the name “Destination List”
  • Pinned category
    Destinations
    (“nouns”)
    Known categories
    Custom categories
    User Tasks
    Tasks
    (“verbs”)
    Taskbar Tasks
    Windows 7 Taskbar – Jump Lists
  • Customizing the Jump ListStep 1: Get the free stuff to work
    Associate your program with the file extension
    Use common file dialogs
    Use 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 objects
    Rich 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 Ribbon
    Demo
  • Application Menu
    Help
    Contextual Tab Set
    Tab
    Quick Access Toolbar
    Contextual Tab
    In-box with Windows 7, redistribution available to Vista
    Win32 API & UI markup via XAML-based format
    Near feature parity with Microsoft Office 2007 Ribbon & WPF Ribbon
    Dialog Launcher
    Group (aka “Chunk”)
    Windows Ribbon
  • Combo Boxes
    Spinners
    Mini Toolbar &Contextual Menu
    Group Dialog Launchers
    Buttons & Split Buttons
    Color Pickers
    Tooltips
    Categorized Menus
    Font Control
    “In-Ribbon” Galleries
    Dropdown Galleries
    Tabs & Groups
    Check Boxes
    Windows Ribbon - Controls
  • Scenic Ribbon API Architecture
    Strong Model-View-Controller separation
    Code and markup decoupling
    Small C++ API surface
    Application-specific business logic
    void DoStuff()
    {


    }
    Windows Scenic Ribbon
    COM API
    Initialization and
    events handling
    MyHandler::Execute(…){DoStuff();}
    Markup
    Organization of controls
    <Ribbon>
    <Tab> <Button … />
    </Tab>
    </Ribbon>
  • Integrating Windows Ribbon
    Application
    Ribbon Platform
    CoCreateInstance
    IUIApplication
    Initialize (HWND, IUIApplication*)
    LoadUI( resourceName )
    OnCreateCommand
    IUIFramework
    Execute, UpdateProperty
    IUICommandHandler
    Get/SetUICommandProperty, InvalidateUICommand
  • MFC
    Scenic
    WPF
    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
    Microsoft’s Ribbon Strategy
    Windows Ribbon - Roadmap
  • Sensor & Location API
    New
  • Limitations Of Sensors Today
    Location devices exposed as virtual COM ports
    Exclusive application access
    Not secure
    Proprietary data formats (NMEA, others)
    GPS doesn’t work indoors
    Hard to support multiple technologies at once
    Sensors are integrated as vertical solutions
    Applications need to know sensorhardware specifics
    Limited adoption and scope
  • 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 sensors
    Sensor 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
    Application
    Application
    Sensor API
    User
    Location and Other Sensors Control Panel
    System
    Sensor Class Extension
    UMDF Sensor Driver
    Sensor
    Device
  • What Info Do Sensors Use?
    Enumerated via category and type
    Category represents what is being sensed
    Type 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 location
    Synchronous and Asynchronous models
    Script/automation compatible
    Automatic transition between providers
    Most accurate providers have priority
    Concurrent access for multiple applications
    Default Location
    Provided by user as fallback when no other sources are available
  • Location Architecture
    Gadget or Script
    Application
    Application
    Location API
    Location IDispatch Interface
    Sensor API
    User
    Location and Other Sensors Control Panel
    System
    Sensor Class Extension
    Sensor Class Extension
    UMDF Sensor Driver
    UMDF Sensor Driver
    Sensor
    Device
    Logical Location Sensor
    (Triangulation)
  • Geographic Data (ILatLongReport)
    Latitude, longitude, altitude, associated error required
    Most common format
    Best format for precise location
    Can reverse geo-code later
    Civic Address (ICivicAddressReport)
    Zip, Country required
    Most human readable
    Best for ‘rough’ location estimates,street directions
    Types Of Location Data
  • Location data is considered PII (user consent required)
    All sensors are disabled by default
    Admin rights required to enable a sensor
    Sensors 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)
    Single, convenient API for accessing current location
    • Lat/Long and Address formats
    Enables applications to be device-agnostic
    User consent required toaccess data
    • Opt-in via ‘Enable Dialog’ orControl Panel
  • Sensor Demo
    Demo
  • Light-Aware Applications
    Photos taken in direct sunlight
    UI with light-awareness,
    100% screen brightness
    UI without light-awareness,
    40% screen brightness
  • Ambient Light Sensors
    Measure 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 supported
    OS automatically adjusts display backlight
    Light-aware applications can use these sensors to optimize UI content for various lighting conditions
  • How To Build Light-Aware UI
    Scale
    Change font size/zoom level
    ‘Weight’ of lines
    Contrast
    Color
    Saturation
    Complementary vs Adjacent
    Smooth transitions between changes are extremely important for overall user experience
    Fades or animations
    Data smoothing/hysteresis
  • Sensor API Summary
    • C++/COM
    • Synchronous and asynchronousdata access
    Rich API for accessing raw sensor data
    • Discovery via category or type
    Direct access to individual sensors
    Extensible architecture
    • Data and properties mappedto PROPERTYKEY andPROPVARIANT pairs
  • Samples
    C++/COM samples in Windows SDK
    JScript location sample in Windows SDK
    WPF/.NET samples in Sensor Development Kit CD
    XNA + XNA Racing Game sample
    Tools
    Light Simulator (SDK)
    Hardware
    Get a Sensor Development Kit
    Getting Started
  • Based on Freescale JM Badge Board (HID)
    Sensors
    Ambient light sensor
    3D Accelerometer
    Dual touch strip sensors
    Developer tools
    Sample firmware code
    Sample driver code
    Diagnostic and sample applications
    Light-aware MSDN Reader
    Marble game
    Sensor Development Kit
  • Multi Touch in Windows 7
    New
  • Multi Touch Hardware Availability
    HP TouchSmart All-in-One PC
    NextWindow digitizer
    Drivers: http://www.nextwindow.com/windriver/index.html
    NextWindow Touch Overlay
    NextWindow digitizer
    Drivers: http://www.nextwindow.com/windriver/index.html
    Dell Latitude XT or Tx2
    N-trig digitizer
    Drivers: in progress and are targeted for Beta availability.
    HP TouchSmart tx2z series
    N-trig digitizer
    Drivers: in progress and are targeted for Beta availability.
  • Multi Touch Is Here
    MT = two or more independently traceable touch points
    Consumers & MT
    scored very favorably in user testing
    offers clear differentiation with a high “WOW” factor for consumers
    enhances on-the-go use & enables new scenarios
    Hardware
    Multi-touch capable machines in market today in a broad set of form factors
  • Multi Touch Scenarios
    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.
    Navigating and consuming the web
    Reading & sorting email
    Viewing photos
    Playing casual games
    Consuming music and video
    Navigating files & arranging windows
    Using Office applications
    All focused on consumption
  • Control Panel – Pen and Touch
  • Gestures and Developers Platform
    Consistent Multi-touch gestures
    Gestures 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 platform
    Delivered first for Win32 and COM
    Integrated into next version of WPF 4.0 shipping post Windows 7
    Touch enabled vs. Touch optimized applications
    Feature support
    Gesture notifications: WM_GESTURE
    Inertia and feedback algorithms
    Raw data support: WM_TOUCH or RTS
    “Surface-style” API providing 2D manipulation and inertia support
  • Development Tiers
  • Multi Touch Development Roadmap
    Windows 7 Release
    NET 4.0 / Surface 2.0 Release
    Native
    Win32
    Application
    WinFormsApplication
    WPF Application
    Surface Application
    Surface SDK
    1.0
    Surface SDK 2.0
    Multi-Touch Controls
    Surface
    Multi-Touch Controls & API
    Multi-Touch API
    WPF 3.5 SP1
    WPF 4.0
    WPF 3.5
    Managed Wrapper and Interop
    Managed Wrapper and Interop
    Multi-Touch API and Controls
    Surface Hardware
    Windows 7
    Surface Hardware
    Windows Vista
    Windows 7
    Multi-Touch API
  • Multi Touch in Windows 7
    Demo
  • Windows 7 Integration Library
    Windows7.Multitouch.Handler is base class for Touch & Gesture handlers
    Use Factory to create one of the handlers
    For WinForms
    managed 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 changes
    Gesture events (tracking)
    Touch system gesture events (single)
    Raw touch events
    Multi-touch support in controls:
    ScrollViewer update to accept pan gestures
    Base controls updated to be multi-touch aware
    Multi-capture support
    New multi-touch specific controls
    Compatible with Surface SDK 2.0
  • Track Resources
    Windows 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#Win7DevSeries
    My MSDN show – MSDN geekSpeak
    My Facebook group ‘Windows 7 Developers’
    Links, Video & Screencasts
  • Related Content
    Breakout Sessions
    WCL201 Developing for Windows 7
    WCL301 Windows Application Readiness for Developers
    WCL302 Optimizing Your Application for the Windows 7 User Experience
    Whiteboard Session
    WTB215 Windows Client Development Discussion
    Hands-on Lab
    WCL08-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.za
    www.microsoft.com/teched
    International Content & Community
    www.microsoft.com/learning
    Microsoft Certification & Training Resources
    http://microsoft.com/technet
    Resources for IT Professionals
    http://microsoft.com/msdn
    Resources for Developers
    Resources
  • Required Slide
    10 pairs of MP3 sunglasses to be won
    Complete 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.