Windows 7 Developer APIs - Multi Touch and Scenic Ribbon

3,082 views
2,953 views

Published on

Windows 7 Developer MSDN Presentation October 2009 - part 3 Multi Touch and Scenic Ribbon

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,082
On SlideShare
0
From Embeds
0
Number of Embeds
56
Actions
Shares
0
Downloads
60
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Windows 7 Developer APIs - Multi Touch and Scenic Ribbon

  1. 1. Windows 7: Building Next Generation UI with Multitouch & WindowsRibbon<br />Lynn Langit<br />Developer evangelist – Microsofthttp://blogs.msdn.com/Socaldevgal<br />
  2. 2. Today’s Agenda<br />Taking your application to the next level with Windows 7 <br />Building next generation UI with Multitouch & Windows Ribbon in Windows 7<br /><ul><li>Ribbon Markup and API
  3. 3. Windows 7 Multitouch Overview
  4. 4. Developing Multitouch Application</li></ul>Beyond human interaction with Windows 7 Sensor & Location Platform<br />
  5. 5. The Ribbon<br />Consistency Counts<br />
  6. 6. Microsoft ® Office 2007 Ribbon<br />Office Button<br />Contextual Tab Set<br />Help<br />Tab<br />Quick Access Toolbar<br />Contextual Tab<br />Dialog Box Launcher<br />Group (aka “Chunk”)<br />
  7. 7. Windows Scenic Ribbon<br />Office Button<br />Contextual Tab Set<br />Quick Access Toolbar<br />Help<br />Tab<br />Contextual Tab<br />Dialog Box Launcher<br />Group (aka “Chunk”)<br />In-box with Windows® 7, redistribution available to Windows Vista®<br />Win32 API, COM-based (targets native developers first)<br />Feature parity (or close) with Microsoft Office 2007 Ribbon<br />
  8. 8. The Ribbon Landscape<br />MFC<br />Scenic<br />WPF<br />Target:<br />Managed<br />Target:<br />MFC native<br />Target:<br />Native<br />needs .NET Framework 3.5<br />Windows 2000 or later<br />Windows Vista or later<br />Office 2007 and Windows styles<br />Office 2007 and Windows styles<br />Windows visual style<br />Coming soon…Official release in 2009<br />Available now in Visual Studio® 2008 SP1<br />Ships with Windows 7<br />Microsoft’s Ribbon Strategy<br />1 Office 2007 style available now,  Windows style available 2009<br />
  9. 9. Windows Ribbon API Architecture<br />Strong Model-View-Controller separation<br />Code and markup decoupling<br />Small C++ API surface<br />Application-specific business logic<br /> void DoStuff()<br /> {<br /> …<br /> …<br /> }<br />Windows Scenic Ribbon<br />COM API<br />Initialization and<br />events handling<br />MyHandler::Execute(…){DoStuff();}<br />Markup<br />Organization of controls<br />&lt;Ribbon&gt;<br /> &lt;Tab&gt; &lt;Button … /&gt;<br /> &lt;/Tab&gt;<br />&lt;/Ribbon&gt;<br />
  10. 10. Windows Ribbon Controls<br />Tabs and groups<br />Check boxes<br />Help button<br />Font control<br />Buttons & split buttons<br />Categorized menus<br />Dropdown galleries<br />Tooltips<br />Spinners<br />Group dialog launchers<br />“In-Ribbon” galleries<br />Mini toolbar andcontextual menu<br />Combo boxes<br />Color pickers<br />
  11. 11. Ribbon MarkupCommands Section<br />XAML-based. Consists of two sections: commands and views<br />Command elements specify a name (ref. in the views section), a label, an image (.bmp only) and tooltip. An ID (number) may also be specified<br />&lt;?xmlversion=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />&lt;Applicationxmlns=&apos;http://schemas.microsoft.com/windows/2009/Scenic/Intent&apos;&gt;<br /> &lt;Application.Commands&gt;<br /> &lt;CommandName=&apos;Home&apos; LabelTitle=&apos;Home&apos;/&gt;<br /> &lt;CommandName=&apos;HomePage&apos; LabelTitle=&apos;HomePage&apos;&gt;<br /> &lt;Command.LargeImages&gt;<br /> &lt;ImageSource=&apos;res/HomePageHH.bmp&apos;/&gt;<br /> &lt;/Command.LargeImages&gt;<br /> &lt;/Command&gt;<br /> &lt;/Application.Commands&gt;<br />
  12. 12. Ribbon Markup Views Section<br />Specifies the organization of commands into tabs, groups, quick access toolbar, and application menu<br />Specifies the controls to use for each command<br /> &lt;Application.Views&gt;<br /> &lt;Ribbon&gt;<br /> &lt;Ribbon.Tabs&gt;<br /> &lt;TabCommandName=&apos;Home&apos;&gt;<br /> &lt;GroupCommandName=&apos;GoHomePage&apos; SizeDefinition=&apos;OneButton&apos;&gt;<br /> &lt;ButtonCommandName=&apos;HomePage&apos;/&gt;<br /> &lt;/Group&gt; <br /> &lt;/Tab&gt;<br /> &lt;/Ribbon.Tabs&gt;<br /> &lt;/Ribbon&gt;<br /> &lt;/Application.Views&gt;<br />&lt;/Application&gt;<br />
  13. 13. More About Views<br />Windows Ribbon supports two types of views: the ribbon view and the contextual UI view<br />The contextual UI provides a richer context system than previously available<br />
  14. 14. Application Modes<br />You may wish to hide some controls in different modes of your application<br />In Microsoft Paint, the Text tab should only be available when editing text<br />In the markup, define the application modes in which a control is available<br />Propagates to child controls<br />In code, call the IUIFrameworkSetModes function<br />Bit mask. 0 is the default mode<br />&lt;ButtonCommandName=&apos;Paste&apos; ApplicationModes=&apos;1,3&apos;/&gt;<br />
  15. 15. Windows 7 Ribbon<br />demo<br />
  16. 16. Windows 7Multi-Touch<br />The Future is here!<br />
  17. 17. 3 things to know….<br />the screens<br />the hardware<br />the software<br />
  18. 18. Screens - How to touch <br />ResistiveThink Push Down and drag<br />
  19. 19. Screens - How to touch <br />CapacitiveThink Electric Impulse<br />
  20. 20. Screens - How to touch <br />InfraredThink laser pointer(s)<br />
  21. 21. Multi-Touch Hardware Available Now<br />Capacitive<br />HP Touchsmart tx2N-trig (2-10)<br />Capacitive<br />Dell LatitudeXT2N-Trig (2-10)<br />Infrared<br />HP Touchsmart IQ816<br />NewWindow(2)<br />
  22. 22. Multi-Touch Development TiersGood – Better – Best<br />Windows application can target one of three levels of touch integration<br />Good: No specific touch APIs are used but the application UI is appropriately sized and works well with the built-in gestures<br />Better: The gesture APIs are supported to give smooth natural interactions<br />Best: Deep touch-focused experiences designed to take advantage of multi-touch features<br />
  23. 23. WM_Touch – WM_Gesture<br />
  24. 24. Windows7.Multitouch<br />Easy <br />to <br />Write <br />code <br />now<br />PC’s, Form Factors, Technology<br />Windows7.Multitouch.WPF<br />WM_Touch<br />
  25. 25. Massive Multi-touch, Multi-user<br />Easier to Write code soon<br />PC’s, Form Factors, Technology<br />
  26. 26. The API<br /> protected event EventHandler&lt;WMTouchEventArgs&gt; Touchdown; // touch down event handler<br /> protected event EventHandler&lt;WMTouchEventArgs&gt; Touchup; // touch up event handler<br /> protected event EventHandler&lt;WMTouchEventArgs&gt; TouchMove; // touch move event handler<br /> // Private data members<br /> private int x; // touch x client coordinate in pixels<br /> private int y; // touch y client coordinate in pixels<br /> private int id; // contact ID<br /> private int mask; // mask which fields in the structure are valid<br /> private int flags; // flags<br /> private int time; // touch event time<br /> private intcontactX; // x size of the contact area in pixels<br /> private intcontactY; // y size of the contact area in pixels<br />
  27. 27. Windows 7 With Windows Touch<br />demo<br />
  28. 28. More Information<br />Multi-Touch Systems that I Have Known and Loved<br />http://www.billbuxton.com/multitouchOverview.html<br />Mike Taulty’s Blog http://bit.ly/NKVTN<br />Example Photo App http://bit.ly/d4eE9<br />
  29. 29. Summary<br />Modernize your user interface with Windows Ribbon<br />Simplify features discoverability and user usability <br />Windows Touch is here!<br />Hardware is ready<br />Consumers want it<br />Has a “cool” factor <br />Flexible and extensible programming modules<br />
  30. 30. Also in Windows 7<br />We’ve covered the main areas, but there are so many additional features in Windows 7<br />Federated Search<br />Windows Web Services<br />Internet Explorer® 8<br />Windows PowerShell™ 2.0<br />Windows Biometric Framework<br />MSI 5.0<br />Windows Animation Framework<br />XPS Document Support<br />Other …<br />
  31. 31. Learn More About Windows 7<br />Technical Resources<br />Community Resources<br /><ul><li>Windows Developer Center on MSDN </li></ul>http://msdn.microsoft.com/en-us/windows/dd433113.aspx<br /><ul><li>Windows Application Compatibility Developer Center http://www.msdn.microsoft.com/en-us/windows/aa904987.aspx
  32. 32. Windows 7 Remediation Labs </li></ul>http://www.readyset7.com/workshops<br /><ul><li>Windows 7 Training Kit for Developers</li></ul>http://go.microsoft.com/?linkid=9681321<br /><ul><li>“PhotoView” Reference Application (XP2Win7Project) http://code.msdn.microsoft.com/XP2Win7
  33. 33. Windows 7 Blog for Developers www.windowsteamblog.com/blogs/developers.aspx
  34. 34. Windows 7 on Channel 9 http://channel9.msdn.com/tags/Windows+7</li></li></ul><li>SoCal Windows 7 Developer Resources<br />Technical Resources<br /><ul><li>Slides – http://blogs.msdn.com/SoCalDevGal
  35. 35. Code samples – my blog (as above)
  36. 36. Recordings – from San Diego MSDN event – watch my blog for the link
  37. 37. Conference – PDC09 – Nov 17-19 in LA - http://microsoftpdc.com/
  38. 38. PreCon – FREE – Windows 7 Developer Bootcamp @PDC09 – Mon, Nov 16 in LA – must register http://microsoftpdc.com/Registration</li></ul>Training Resources<br />Community Events<br /><ul><li>Lynn’s blog series – http://blogs.msdn.com/SoCalDevGal #Win7DevSeries
  39. 39. Underground @PDC – Wed, Nov 18 – 7pm until late
  40. 40. CodeCampLA – Sat/Sun, Nov 20 – 21 - http://www.lacodecamp.com/</li>

×