Hands-On Lab. Multitouch Gestures - Native. Lab version: Last updated: 12/3/2010

Size: px
Start display at page:

Download "Hands-On Lab. Multitouch Gestures - Native. Lab version: Last updated: 12/3/2010"

Transcription

1 Hands-On Lab Multitouch Gestures - Native Lab version: Last updated: 12/3/2010

2 CONTENTS OVERVIEW... 3 EXERCISE 1: BUILD A MULTITOUCH APPLICATION... 7 Task 1 Create the Win32 Application... 7 Task 2 Test the Existence and Readiness of Multitouch Hardware... 8 Task 3 Add the Drawing Object Source and Header Files to the Project, and Draw the Rectangle.. 9 Task 4 Touch Me Now! Task 5 There Is a Bug There! SUMMARY

3 Overview Windows 7 gives users the ability to manage applications with the touch of their fingers, using no intermediate device. This expands the stylus-based capabilities of tablet PCs. Unlike other pointing devices, this new capability allows multiple input events at the same time from different pointing locations, and it enables complex scenarios, such as managing applications with ten fingers or with multiple simultaneous users.however, to pull this off, we have to adapt our application's user interface and behavior to support this new input model. Objectives In this Hands-On Lab, you will learn how to manage gesture events, including: Understanding the implications of manipulating an object with gesture events Checking for multitouch hardware existence and readiness Extracting information from the gesture Windows Message System Requirements You must have the following items to complete this lab: Microsoft Visual Studio 2008 SP1 Windows 7 The Windows 7 SDK A multitouch hardware device Introduction To create a multitouch driven application you can choose one of three approaches, the Good, the Better, or the Best. The Good approach is the easiest among the three. You should design your application user interface with touch ability in mind. Use large and clean Win32 based controls that make a natural interface for a better user experience. Touch abilities such as scrolling come from the Win32 controls. There is no need for extra work. For example, try to scroll the document that you are reading now with your fingers! This is the Good approach. 3

4 The Best approach is to read the low-level touch events as the input to the application. Applications like Piano or complex controls like multiple-sliders that users can operate simultaneously are good examples. Run MS Paint, select a drawing tool from the gallery and draw with four of your fingers (if the hardware permits): In this Hands-On Lab, you will use the Better approach. The Better approach is the easiest way to get touch events to your application for custom actions like zoom, rotate, and translate without the need to read and manipulate raw touch events. Enter Multitouch Gestures! About the Multitouch Gesture Application The Multitouch Gesture application presents a simple window containing a rectangle. In the HOL folder, you can find a project for each task of the lab. The Starter folder contains files that you will need during the lab. A finished version of the lab is located in the Final folder. 4

5 This application responds to multitouch gesture input by interacting with a painted rectangle. The rectangle responds to the following gestures: Translate To translate the image, place two fingers in the application window and drag in the direction you want. Make sure to leave a little space between the two fingers so that the touch interface sees them as separate contact points. Rotate Touch the rectangle with two fingers and turn fingers in a circle. 5

6 Zoom Touch two fingers and move them closer or farther apart. Two Finger Tap Tap once with both fingers to toggle diagonal lines on or off within the red rectangle. Finger Roll 6

7 Press and hold one finger, then tap with the other and then remove the first one to change the color of the rectangle. Exercise 1: Build a Multitouch Application Task 1 Create the Win32 Application 1. Start Visual Studio 2008 SP1 2. Select a new based Win32 application project: 3. Compile and run 7

8 4. We are going to use APIs and Macros that belong to Windows 7. a. Change the WINVER and _WIN32_WINNT definitions in the targetver.h header file to 0x0601 #ifndef WINVER //Specifies that the minimum required platform is Windows 7 #define WINVER 0x0601 #endif #ifndef _WIN32_WINNT //Specifies that the minimum required platform is Win 7 #define _WIN32_WINNT 0x0601 #endif 5. Compile and run. Task 2 Test the Existence and Readiness of Multitouch Hardware 1. The application that we are building requires a touch-enable device. Add the following code, before the call to InitInstance() in the _twinmain(), to check the hardware touch ability and readiness: BYTE digitizerstatus = (BYTE)GetSystemMetrics(SM_DIGITIZER); if ((digitizerstatus & (0x80 + 0x40)) == 0) //Stack Ready + MultiTouch MessageBox(0, L"No touch support is currently available", L"Error", MB_OK); return 1; BYTE ninputs = (BYTE)GetSystemMetrics(SM_MAXIMUMTOUCHES); wsprintf(sztitle, L"%s - %d touch inputs", sztitle, ninputs); 2. As you can see that besides checking for touch availability and readiness we also find out the number of touch inputs that the hardware support. 3. Compile and run 8

9 Task 3 Add the Drawing Object Source and Header Files to the Project, and Draw the Rectangle In the Starter folder, you will find two files: DrawingObject.h and DrawingObject.cpp. Copy them to the project folder and use Add Existing item to add them to the project. 1. Add an #include DrawingObject.h line at the top of mtgesture.cpp file #include "DrawingObject.h" 2. Add a global variable definition at the //Global Variables: section at the top of mtgesture.cpp file: CDrawingObject g_drawingobject; 3. Add the following lines in to the WndProc, note that WM_already PAINT has been created by the application wizard: case WM_SIZE: 9

10 g_drawingobject.resetobject(loword(lparam), HIWORD(lParam)); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); g_drawingobject.paint(hdc); EndPaint(hWnd, &ps); break; 4. Compile and run 5. Chance the size of the Windows to trigger the WM-Paint message sent to the application. A red rectangle should appear in the middle of the Window: 10

11 Task 4 Touch Me Now! It s time to begin! By default touch-enabled system provides WM_GESTURE messages to a target Window. This is somewhat similar to mouse and keyboard messages. The system consumes the low level touch input events and calculates the resulting gesture for us. Use the lparam parameter as the handle to extract the gesture information. The GetGestureInfo() API gets the lparam gesture handle and an address of a GESTUREINFO structure variable: (Extracted from WinUser.h) typedef struct taggestureinfo UINT cbsize; // size, in bytes, (including variable length Args field) DWORD dwflags; // see GF_* flags DWORD dwid; // gesture ID, see GID_* defines HWND hwndtarget; // handle to window targeted by this gesture POINTS ptslocation; // current location of this gesture DWORD dwinstanceid; // internally used DWORD dwsequenceid; // internally used ULONGLONG ullarguments; // arguments for gestures (8 BYTES) UINT cbextraargs; // size, of extra arguments, that accompany this gesture GESTUREINFO, *PGESTUREINFO; typedef GESTUREINFO const * PCGESTUREINFO; /* * Gesture flags - GESTUREINFO.dwFlags */ #define GF_BEGIN #define GF_INERTIA #define GF_END 0x x x /* * Gesture IDs */ #define GID_BEGIN 1 #define GID_END 2 #define GID_ZOOM 3 #define GID_PAN 4 #define GID_ROTATE 5 #define GID_TWOFINGERTAP 6 #define GID_PRESSANDTAP 7 #define GID_ROLLOVER GID_PRESSANDTAP After consuming the information that was delivered by calling the GetGestureInfo() we must call the CloseGestureInfoHandle() to release the memory block that the system allocated. Two fields are very important when responding to the gesture message. These are dwflags and dwid. dwid tells us what gesture the user performed: Zoom, Pan, Rotate, and so forth. dwflags tells us 11

12 whether this is the first time it informs us about the gesture, or the last time, or if the user removed the fingers from the screen, but an inertia engine continued to issue the gesture messages. There are simple gestures such as "Two Finger Tap" that the application needs to respond to only once; other gestures are a little bit more complicated because they send many messages during the user operation. For these kinds of gestures (Zoom, Rotate, Translate) we need to respond differently depending upon which of these conditions is in play. For Pan and Zoom, we do nothing for the first gesture in the series. The rotate begin message comes with a rotation angle, so we need to rotate the drawing object. Whenever a gesture is not the first in a series we calculate the difference between the last argument and the new argument and extract the Zoom factor, and translate the range or the relative rotation angle. In this way, we can update the application while users touch and move their fingers on the screen. 1. Let s move! Add the following code to the WndProc: case WM_GESTURE: return ProcessGestureMessage(hWnd, wparam, lparam); 2. Add the following function right before the WndProc: LRESULT ProcessGestureMessage(HWND hwnd, WPARAM wparam, LPARAM lparam) static POINT lastpoint; static ULONGLONG lastarguments; GESTUREINFO gi; gi.cbsize = sizeof(gestureinfo); gi.dwflags = 0; gi.ptslocation.x = 0; gi.ptslocation.y = 0; gi.dwid = 0; gi.dwinstanceid = 0; gi.dwsequenceid = 0; BOOL bresult = GetGestureInfo((HGESTUREINFO)lParam, &gi); switch(gi.dwid) case GID_PAN: if ((gi.dwflags & GF_BEGIN) == 0) //not the first message g_drawingobject.move(gi.ptslocation.x - lastpoint.x, gi.ptslocation.y - lastpoint.y); InvalidateRect(hWnd, NULL, TRUE); 12

13 //Remember last values for delta calculations lastpoint.x = gi.ptslocation.x; lastpoint.y = gi.ptslocation.y; lastarguments = gi.ullarguments; CloseGestureInfoHandle((HGESTUREINFO)lParam); return 0; 3. Compile and run 4. Try to move the object with two fingers; you can see that the object follows your fingers movement. There are some facts that you should be aware of: a. The touch location comes in screen coordinates. Since we are interested in the delta, we don t care, but if we need to know the exact location we have to call ScreenToClient() to make the adjustment. b. Try to move the object without touching it; instead touch the screen in an empty area of the Window. It moves! We didn t performed hit testing to check if the touch location is inside the object. This is where we really need the location in window coordinates. 5. Complete the application and respond to all gesture ids: LRESULT ProcessGestureMessage(HWND hwnd, WPARAM wparam, LPARAM lparam) static POINT lastpoint; static ULONGLONG lastarguments; GESTUREINFO gi; gi.cbsize = sizeof(gestureinfo); gi.dwflags = 0; gi.ptslocation.x = 0; gi.ptslocation.y = 0; gi.dwid = 0; gi.dwinstanceid = 0; gi.dwsequenceid = 0; BOOL bresult = GetGestureInfo((HGESTUREINFO)lParam, &gi); switch(gi.dwid) 13

14 case GID_PAN: if ((gi.dwflags & GF_BEGIN) == 0) //not the first message g_drawingobject.move(gi.ptslocation.x - lastpoint.x, gi.ptslocation.y - lastpoint.y); // repaint the rect InvalidateRect(hWnd, NULL, TRUE); break; case GID_ZOOM: //not the first message if ((gi.dwflags & GF_BEGIN) == 0 && lastarguments!= 0) double zoomfactor = (double)gi.ullarguments/lastarguments; // Now we process zooming in/out of object g_drawingobject.zoom(zoomfactor, gi.ptslocation.x, gi.ptslocation.y); InvalidateRect(hWnd,NULL,TRUE); break; case GID_ROTATE: //The angle is the rotation delta from the last message, //or from 0 if it is a new message ULONGLONG lastangle = ((gi.dwflags & GF_BEGIN)!= 0)? 0 : lastarguments int angle = (int)(gi.ullarguments lastangle); g_drawingobject.rotate( GID_ROTATE_ANGLE_FROM_ARGUMENT(angle), gi.ptslocation.x, gi.ptslocation.y); InvalidateRect (hwnd, NULL, TRUE); break; case GID_PRESSANDTAP: g_drawingobject.shiftcolor(); InvalidateRect(hWnd, NULL, TRUE); break; case GID_TWOFINGERTAP: g_drawingobject.togledrawdiagonals(); InvalidateRect(hWnd, NULL, TRUE); 14

15 break; //Remember last values for delta calculations lastpoint.x = gi.ptslocation.x; lastpoint.y = gi.ptslocation.y; lastarguments = gi.ullarguments; CloseGestureInfoHandle((HGESTUREINFO)lParam); return 0; 6. Compile and run 7. Test all gestures. Task 5 There Is a Bug There! 1. Try to rotate the object. What happened? By definition, a Window receives all gestures except rotation. We can configure the touch engine to supply only part of the available gestures or all of them 2. Add the following code to the InitInstance() function just before the ShowWindow() call, to enable all gesture types including GID_ROTATE: //Enable all gesture types GESTURECONFIG gestureconfig; gestureconfig.dwid = 0; gestureconfig.dwblock = 0; gestureconfig.dwwant = GC_ALLGESTURES; BOOL result = SetGestureConfig(hWnd, 0, 1, &gestureconfig, sizeof(gestureconfig)); 3. Compile and run 4. Try to rotate the object. It works! Well done! 15

16 Summary In this lab, you have learned how to consume touch gesture messages to manipulate an object on the screen. You ve seen how to test for the existence of multitouch hardware. How to configure a Window to get the gesture event that you want and how to extract and act with gesture arguments. Enjoy and keep in touch! 16

Hands-On Lab. Multi-Touch WMTouch - Native. Lab version: Last updated: 12/3/2010

Hands-On Lab. Multi-Touch WMTouch - Native. Lab version: Last updated: 12/3/2010 Hands-On Lab Multi-Touch WMTouch - Native Lab version: 1.0.0 Last updated: 12/3/2010 CONTENTS OVERVIEW... 3 EXERCISE 1: BUILD A MULTI-TOUCH APPLICATION... 5 Task 1 Create the Win32 Application... 5 Task

More information

Comparing Touch Coding Techniques - Windows 8 Desktop Touch Sample

Comparing Touch Coding Techniques - Windows 8 Desktop Touch Sample Comparing Touch Coding Techniques - Windows 8 Desktop Touch Sample Abstract There are three ways to support touch input and gestures in Microsoft Windows 8* Desktop apps: Using the WM_POINTER, WM_GESTURE,

More information

Programming in graphical environment. Introduction

Programming in graphical environment. Introduction Programming in graphical environment Introduction The lecture Additional resources available at: http://www.mini.pw.edu.pl/~maczewsk/windows_2004 Recommended books: Programming Windows - Charles Petzold

More information

Advantech Windows CE.net Application Hand on Lab

Advantech Windows CE.net Application Hand on Lab Advantech Windows CE.net Application Hand on Lab Lab : Serial Port Communication Objectives After completing this lab, you will be able to: Create an application to open, initialize the serial port, and

More information

We display some text in the middle of a window, and see how the text remains there whenever the window is re-sized or moved.

We display some text in the middle of a window, and see how the text remains there whenever the window is re-sized or moved. 1 Programming Windows Terry Marris January 2013 2 Hello Windows We display some text in the middle of a window, and see how the text remains there whenever the window is re-sized or moved. 2.1 Hello Windows

More information

Windows and Messages. Creating the Window

Windows and Messages. Creating the Window Windows and Messages In the first two chapters, the sample programs used the MessageBox function to deliver text output to the user. The MessageBox function creates a "window." In Windows, the word "window"

More information

Windows Touch 程式開發入門 許煜坤 台灣微軟研究開發處 2010/1/20

Windows Touch 程式開發入門 許煜坤 台灣微軟研究開發處 2010/1/20 Windows Touch 程式開發入門 許煜坤 台灣微軟研究開發處 2010/1/20 Agendas Good, Better, Best model Platforms details Native Win32 APIs MS Windows SDK 7.0 Windows 7 Multi-Touch.Net Interop Sample Library VS2008 (Windows Form,

More information

Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial. Part V Examples. Examples V/1

Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial. Part V Examples. Examples V/1 Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial Part V V/1 AspectC++ in Practice - Applying the observer protocol Example: a typical scenario for the widely used observer pattern

More information

Input and Interaction

Input and Interaction Input and Interaction 5 th Week, 2011 Graphical Input Devices Mouse Trackball Light Pen Data Tablet Joy Stick Space Ball Input Modes Input devices contain a trigger which can be used to send a signal to

More information

Chapter 15 Programming Paradigm

Chapter 15 Programming Paradigm Chapter 15 Programming Paradigm A Windows program, like any other interactive program, is for the most part inputdriven. However, the input of a Windows program is conveniently predigested by the operating

More information

Windows Programming. 1 st Week, 2011

Windows Programming. 1 st Week, 2011 Windows Programming 1 st Week, 2011 시작하기 Visual Studio 2008 새프로젝트 파일 새로만들기 프로젝트 Visual C++ 프로젝트 Win32 프로젝트 빈프로젝트 응용프로그램설정 Prac01 솔루션 새항목추가 C++ 파일 main.cpp main0.cpp cpp 다운로드 솔루션빌드 오류 Unicode vs. Multi-Byte

More information

Let s Make a Front Panel using FrontCAD

Let s Make a Front Panel using FrontCAD Let s Make a Front Panel using FrontCAD By Jim Patchell FrontCad is meant to be a simple, easy to use CAD program for creating front panel designs and artwork. It is a free, open source program, with the

More information

LSN 4 GUI Programming Using The WIN32 API

LSN 4 GUI Programming Using The WIN32 API LSN 4 GUI Programming Using The WIN32 API ECT362 Operating Systems Department of Engineering Technology LSN 4 Why program GUIs? This application will help introduce you to using the Win32 API Gain familiarity

More information

IFE: Course in Low Level Programing. Lecture 5

IFE: Course in Low Level Programing. Lecture 5 Lecture 5 Windows API Windows Application Programming Interface (API) is a set of Windows OS service routines that enable applications to exploit the power of Windows operating systems. The functional

More information

Farm Sprayer GPS Pro & Pro Software. Operation Manual

Farm Sprayer GPS Pro & Pro Software. Operation Manual Farm Sprayer GPS Pro & Pro Software Operation Manual 1 Table of Contents INSTALLATION OF PRO SOFTWARE 3 UPDATING SOFTWARE 4 SETTING UP THE GPS CABLES & CONNECTORS 5 CONNECTING TO WIFI TO SAVE MAPS 6 OPERATING

More information

Different Ways of Writing Windows Programs

Different Ways of Writing Windows Programs How Windows Works Notes for CS130 Dr. Beeson Event-Driven Programming. In Windows, and also in Java applets and Mac programs, the program responds to user-initiated events: mouse clicks and key presses.

More information

MOBILE COMPUTING Practical 1: Graphic representation

MOBILE COMPUTING Practical 1: Graphic representation MOBILE COMPUTING Practical 1: Graphic representation Steps 2) Then in class view select the Global, in global select the WINMAIN. 3) Then write the below code below #define MAX_LOADSTRING 100 enum Shapes

More information

Smoother Graphics Taking Control of Painting the Screen

Smoother Graphics Taking Control of Painting the Screen It is very likely that by now you ve tried something that made your game run rather slow. Perhaps you tried to use an image with a transparent background, or had a gazillion objects moving on the window

More information

Creating and Displaying Multi-Layered Cross Sections in Surfer 11

Creating and Displaying Multi-Layered Cross Sections in Surfer 11 Creating and Displaying Multi-Layered Cross Sections in Surfer 11 The ability to create a profile in Surfer has always been a powerful tool that many users take advantage of. The ability to combine profiles

More information

Edupen Pro User Manual

Edupen Pro User Manual Edupen Pro User Manual (software for interactive LCD/LED displays and monitors) Ver. 3 www.ahatouch.com Some services in Edupen Pro require dual touch capability. In order to use dual touch, your computer

More information

Getting Started with Silo

Getting Started with Silo CHAPTER 1 Getting Started with Silo In this chapter, we discuss how to view, select, and manipulate models in Silo. If you are not familiar with Silo or polygon modeling, make sure to read the About Silo

More information

SolidWorks 2½D Parts

SolidWorks 2½D Parts SolidWorks 2½D Parts IDeATe Laser Micro Part 1b Dave Touretzky and Susan Finger 1. Create a new part In this lab, you ll create a CAD model of the 2 ½ D key fob below to make on the laser cutter. Select

More information

Premiere Pro Desktop Layout (NeaseTV 2015 Layout)

Premiere Pro Desktop Layout (NeaseTV 2015 Layout) Premiere Pro 2015 1. Contextually Sensitive Windows - Must be on the correct window in order to do some tasks 2. Contextually Sensitive Menus 3. 1 zillion ways to do something. No 2 people will do everything

More information

SolidWorks Intro Part 1b

SolidWorks Intro Part 1b SolidWorks Intro Part 1b Dave Touretzky and Susan Finger 1. Create a new part We ll create a CAD model of the 2 ½ D key fob below to make on the laser cutter. Select File New Templates IPSpart If the SolidWorks

More information

CS410 Visual Programming Solved Online Quiz No. 01, 02, 03 and 04. For Final Term Exam Preparation by Virtualians Social Network

CS410 Visual Programming Solved Online Quiz No. 01, 02, 03 and 04. For Final Term Exam Preparation by Virtualians Social Network CS410 Visual Programming Solved Online Quiz No. 01, 02, 03 and 04 For Final Term Exam Preparation by Virtualians Social Network 1. Ptr -> age is equivalent to *ptr.age ptr.age (ptr).age (*ptr).age 2. is

More information

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space.

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. 3D Modeling with Blender: 01. Blender Basics Overview This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. Concepts Covered Blender s

More information

Foxit Reader SDK. Programming Guide

Foxit Reader SDK. Programming Guide Foxit Reader SDK For Windows and Linux Programming Guide Revision 1.4 Foxit Software Company 2005.12 Overview Features Tutorials Calling from Different Programming Languages Reference Redistribution Overview

More information

Polygons and Angles: Student Guide

Polygons and Angles: Student Guide Polygons and Angles: Student Guide You are going to be using a Sphero to figure out what angle you need the Sphero to move at so that it can draw shapes with straight lines (also called polygons). The

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

HANNAH HOWARD #ABOUTME

HANNAH HOWARD #ABOUTME HANNAH HOWARD #ABOUTME Personal @techgirlwonder hannah@carbon Anecdote: I have ve.com a dog she/her REACTIVE PROGRAMMING: A Better Way to Write Frontend Applications 1. PROBLEM STATEMENT WHAT IS A COMPUTER

More information

Developing a Prototype Window s Mobile Application

Developing a Prototype Window s Mobile Application Developing a Prototype Window s Mobile Application (Part 1 of Snoozing Soundly through Snore recognition ) Riley Kotchorek, Mike Smith, Vahid Garousi University of Calgary, Canada Contact: Michael Smith,

More information

Development Authority of the North Country (DANC) Internet Mapping Application Instructions Public Viewer 1. Purpose. 2. Logging-in. 3.

Development Authority of the North Country (DANC) Internet Mapping Application Instructions Public Viewer 1. Purpose. 2. Logging-in. 3. Development Authority of the North Country (DANC) Internet Mapping Application Instructions Public Viewer 1. Purpose The purpose of this document is to outline basic functionality of the DANC Internet

More information

Computer Programming Lecture 11 이윤진서울대학교

Computer Programming Lecture 11 이윤진서울대학교 Computer Programming Lecture 11 이윤진서울대학교 2007.1.24. 24 Slide Credits 엄현상교수님 서울대학교컴퓨터공학부 Computer Programming, g, 2007 봄학기 Object-Oriented Programming (2) 순서 Java Q&A Java 개요 Object-Oriented Oriented Programming

More information

SketchUp Tool Basics

SketchUp Tool Basics SketchUp Tool Basics Open SketchUp Click the Start Button Click All Programs Open SketchUp Scroll Down to the SketchUp 2013 folder Click on the folder to open. Click on SketchUp. Set Up SketchUp (look

More information

Tutorial 7: Mouse Input

Tutorial 7: Mouse Input Tutorial 7: Mouse Input This win32 tutorial was created and written by Iczelion for MASM32. It was translated for use by HLA (High Level Assembly) users by Randall Hyde. All original copyrights and other

More information

The Fundamentals. Document Basics

The Fundamentals. Document Basics 3 The Fundamentals Opening a Program... 3 Similarities in All Programs... 3 It's On Now What?...4 Making things easier to see.. 4 Adjusting Text Size.....4 My Computer. 4 Control Panel... 5 Accessibility

More information

User Manual. pdoc Pro Client for Windows. Version 2.1. Last Update: March 20, Copyright 2018 Topaz Systems Inc. All rights reserved.

User Manual. pdoc Pro Client for Windows. Version 2.1. Last Update: March 20, Copyright 2018 Topaz Systems Inc. All rights reserved. User Manual pdoc Pro Client for Windows Version 2.1 Last Update: March 20, 2018 Copyright 2018 Topaz Systems Inc. All rights reserved. For Topaz Systems, Inc. trademarks and patents, visit www.topazsystems.com/legal.

More information

Creating a Text Frame. Create a Table and Type Text. Pointer Tool Text Tool Table Tool Word Art Tool

Creating a Text Frame. Create a Table and Type Text. Pointer Tool Text Tool Table Tool Word Art Tool Pointer Tool Text Tool Table Tool Word Art Tool Picture Tool Clipart Tool Creating a Text Frame Select the Text Tool with the Pointer Tool. Position the mouse pointer where you want one corner of the text

More information

Window programming. Programming

Window programming. Programming Window programming 1 Objectives Understand the mechanism of window programming Understand the concept and usage of of callback functions Create a simple application 2 Overview Windows system Hello world!

More information

Midterm Exam, October 24th, 2000 Tuesday, October 24th, Human-Computer Interaction IT 113, 2 credits First trimester, both modules 2000/2001

Midterm Exam, October 24th, 2000 Tuesday, October 24th, Human-Computer Interaction IT 113, 2 credits First trimester, both modules 2000/2001 257 Midterm Exam, October 24th, 2000 258 257 Midterm Exam, October 24th, 2000 Tuesday, October 24th, 2000 Course Web page: http://www.cs.uni sb.de/users/jameson/hci Human-Computer Interaction IT 113, 2

More information

Ubi Quick Start Guide

Ubi Quick Start Guide Ubi Quick Start Guide Version 2.3 Ubi Interactive Inc. All Rights Reserved. Contents 1. Quick Start... 3 1. Activate Ubi... 4 2. Connect the Kinect sensor... 5 3. Launch Ubi... 6 4. Position the Kinect

More information

ROUTED EVENTS. Chapter 5 of Pro WPF : By Matthew MacDonald Assist Lect. Wadhah R. Baiee. College of IT Univ. of Babylon

ROUTED EVENTS. Chapter 5 of Pro WPF : By Matthew MacDonald Assist Lect. Wadhah R. Baiee. College of IT Univ. of Babylon ROUTED EVENTS Chapter 5 of Pro WPF : By Matthew MacDonald Assist Lect. Wadhah R. Baiee. College of IT Univ. of Babylon - 2014 Introduction Routed events are events with more traveling power they can tunnel

More information

GentivaLink ipad 4 Training Guide

GentivaLink ipad 4 Training Guide GentivaLink ipad 4 Training Guide Version 1.0 Box Contents Your ipad 4 device comes with the following: ipad 4 ipad 4 Wall Charger ipad 4 Lightning Data Cable Car Charger Targus Stylus Please ensure all

More information

Photoshop tutorial: Final Product in Photoshop:

Photoshop tutorial: Final Product in Photoshop: Disclaimer: There are many, many ways to approach web design. This tutorial is neither the most cutting-edge nor most efficient. Instead, this tutorial is set-up to show you as many functions in Photoshop

More information

SketchUp Starting Up The first thing you must do is select a template.

SketchUp Starting Up The first thing you must do is select a template. SketchUp Starting Up The first thing you must do is select a template. While there are many different ones to choose from the only real difference in them is that some have a coloured floor and a horizon

More information

Universal Access features ipad incorporates numerous accessibility features, including: VoiceOver screen reader

Universal Access features ipad incorporates numerous accessibility features, including: VoiceOver screen reader Accessibility 24 Universal Access features ipad incorporates numerous accessibility features, including: VoiceOver screen reader Zoom magnification Large Text White on Black Speak Selection Speak Auto-text

More information

Press the Plus + key to zoom in. Press the Minus - key to zoom out. Scroll the mouse wheel away from you to zoom in; towards you to zoom out.

Press the Plus + key to zoom in. Press the Minus - key to zoom out. Scroll the mouse wheel away from you to zoom in; towards you to zoom out. Navigate Around the Map Interactive maps provide many choices for displaying information, searching for more details, and moving around the map. Most navigation uses the mouse, but at times you may also

More information

Math 1525 Excel Lab 1 Introduction to Excel Spring, 2001

Math 1525 Excel Lab 1 Introduction to Excel Spring, 2001 Math 1525 Excel Lab 1 Introduction to Excel Spring, 2001 Goal: The goal of Lab 1 is to introduce you to Microsoft Excel, to show you how to graph data and functions, and to practice solving problems with

More information

PLAY VIDEO. Fences can be any shape from a simple rectangle to a multisided polygon, even a circle.

PLAY VIDEO. Fences can be any shape from a simple rectangle to a multisided polygon, even a circle. Chapter Eight Groups PLAY VIDEO INTRODUCTION There will be times when you need to perform the same operation on several elements. Although this can be done by repeating the operation for each individual

More information

Windows Programming in C++

Windows Programming in C++ Windows Programming in C++ You must use special libraries (aka APIs application programming interfaces) to make something other than a text-based program. The C++ choices are: The original Windows SDK

More information

Rubik s Cube in SketchUp

Rubik s Cube in SketchUp This project shows how to start with one cube, and use it to build a Rubik s cube, which you can spin and try to solve. For this project, it helps to have some basic knowledge of SketchUp (though detailed

More information

Each primary search has an auto-fill that will filter out results as the user continues to type.

Each primary search has an auto-fill that will filter out results as the user continues to type. The Town of Farmville has recently requested a GIS parcel viewer and Timmons Group, based out of Richmond, VA, was selected to design and host this new website. This website allows users to look up parcel

More information

Detecting USB Device Insertion and Removal Using Windows API

Detecting USB Device Insertion and Removal Using Windows API Written by Tom Bell Detecting USB Device Insertion and Removal Using Windows API When I needed to know how to detect USB device insertion and removal, I was developing an application for backing up USB

More information

The HOME PAGE opens with a screen split into two parts, Left panel and Right panel.

The HOME PAGE opens with a screen split into two parts, Left panel and Right panel. How to Use the Goodreader Application Goodreader version 4.0.1 OPEN Goodreader from the ipad HOME SCREEN. The HOME PAGE opens with a screen split into two parts, Left panel and Right panel. The Left Panel

More information

Wacom Tablet. start-up guide. Nina Mingioni

Wacom Tablet. start-up guide. Nina Mingioni Wacom Tablet start-up guide Nina Mingioni www.ninamingioni.com Why all photographers need a tablet to edit Getting a tablet has been on my to-do list for a long time. When I finally got one, I was so intimidated

More information

How to Talk To Windows. What did it say?

How to Talk To Windows. What did it say? How to Talk To Windows What did it say? 1 DOS was essentially subservient. Your program was the master. When you wanted some service from DOS you called DOS it obeyed. You could even bypass DOS and communicate

More information

64 Bit Delphi What does it all mean?

64 Bit Delphi What does it all mean? 64 Bit Delphi What does it all mean? 1 David Intersimone David I VP of Developer Relations and Chief Evangelist davidi@embarcadero.com http://blogs.embarcadero.com/davidi Twitter: davidi99 Skype: davidi99

More information

Multi-Touch Screen SDK Reference

Multi-Touch Screen SDK Reference Multi-Touch Screen SDK Reference PQ Multi-Touch SDK Reference Revisions v1.1 2009-06-16 v1.2 2009-07-22 Attention that client of version 1.2 is not compatible with that of v1.1, you need to recompile the

More information

Quick Tips to Using I-DEAS. Learn about:

Quick Tips to Using I-DEAS. Learn about: Learn about: Quick Tips to Using I-DEAS I-DEAS Tutorials: Fundamental Skills windows mouse buttons applications and tasks menus icons part modeling viewing selecting data management using the online tutorials

More information

SOLIDWORKS: Lesson 1 - Basics and Modeling. Introduction to Robotics

SOLIDWORKS: Lesson 1 - Basics and Modeling. Introduction to Robotics SOLIDWORKS: Lesson 1 - Basics and Modeling Fundamentals Introduction to Robotics SolidWorks SolidWorks is a 3D solid modeling package which allows users to develop full solid models in a simulated environment

More information

User Guide pdoc Signer for Apple ipad

User Guide pdoc Signer for Apple ipad User Guide pdoc Signer for Apple ipad Version 1.4 July 18, 2017 Copyright 2017 Topaz Systems Inc. All rights reserved. For Topaz Systems, Inc. trademarks and patents, visit www.topazsystems.com/legal.

More information

Lesson for levels K-5 Time to complete: min

Lesson for levels K-5 Time to complete: min Lesson Plan: Lesson for levels K-5 Time to complete: 45-90 min Lesson Plan: Level: Grades K-5 (ages 5-10) Time to complete: ~45-90 minutes Learn how to build basic geometry, apply materials, and import

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Laboratory Exercise 11 Alternate (Intro to MFC)

Laboratory Exercise 11 Alternate (Intro to MFC) Laboratory Exercise 11 Alternate (Intro to MFC) Topics: Microsoft Foundation Classes Goals: Upon successful completion of this lab you should be able to: 1. Write a simple winows program using the MFC

More information

Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies

Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies Tim Varner - 2004 The Inventor User Interface Command Panel Lists the commands that are currently

More information

Call DLL from Limnor Applications

Call DLL from Limnor Applications Call DLL from Limnor Applications There is a lot of computer software in the format of dynamic link libraries (DLL). DLLCaller performer allows your applications to call DLL functions directly. Here we

More information

Introduction to Computer Graphics (CS602) Lecture No 04 Point

Introduction to Computer Graphics (CS602) Lecture No 04 Point Introduction to Computer Graphics (CS602) Lecture No 04 Point 4.1 Pixel The smallest dot illuminated that can be seen on screen. 4.2 Picture Composition of pixels makes picture that forms on whole screen

More information

Senad Basic CS 422 Project 2 Individual sketches 03/04/08

Senad Basic CS 422 Project 2 Individual sketches 03/04/08 Senad Basic CS 422 Project 2 Individual sketches 03/04/08 Default commons common for all windows Some commands are common to all of the screens and windows below. Touching any portion of a screen that

More information

Basic Computer and Mouse Skills Windows 10

Basic Computer and Mouse Skills Windows 10 Basic Computer and Mouse Skills Windows 10 Hardware--is a term for the physical parts of the computer. The computer consists of four basic pieces of hardware. The Monitor The monitor displays the content

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Autodesk Inventor - Basics Tutorial Exercise 1

Autodesk Inventor - Basics Tutorial Exercise 1 Autodesk Inventor - Basics Tutorial Exercise 1 Launch Inventor Professional 2015 1. Start a New part. Depending on how Inventor was installed, using this icon may get you an Inch or Metric file. To be

More information

Software User s Manual

Software User s Manual 1 Software User s Manual CONTENTS About the manual 2 Navigating the manual 3 CUSTOMIZING 4 Opening the control panel 4 Control panel overview 5 Calibrating the pen display 7 Adjusting pitch and phase (VGA

More information

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4 RP-VL-UTIL-V1 Developer s Guide [ Contents ] 1. Introduction... 1 2. Building Environment... 1 3. Operating Environment... 1 4. Function Explanation... 2 4.1. Common API for Transmitting and Receiving...

More information

Apple ipad Accessibility Features Quick Reference Guide

Apple ipad Accessibility Features Quick Reference Guide Apple ipad Accessibility Features Quick Reference Guide Provided by CTEC, Communication Technology Education Center supportedlife.org/ctec Guided Access Guided access helps restrict the features available

More information

The University of Calgary. ENCM 339 Programming Fundamentals Fall 2016

The University of Calgary. ENCM 339 Programming Fundamentals Fall 2016 The University of Calgary ENCM 339 Programming Fundamentals Fall 2016 Instructors: S. Norman, and M. Moussavi Wednesday, November 2 7:00 to 9:00 PM The First Letter of your Last Name:! Please Print your

More information

Memory and Pointers written by Cathy Saxton

Memory and Pointers written by Cathy Saxton Memory and Pointers written by Cathy Saxton Basic Memory Layout When a program is running, there are three main chunks of memory that it is using: A program code area where the program itself is loaded.

More information

CS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help

CS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help CS 2110 Fall 2012 Homework 4 Paint Program Due: Wednesday, 12 November, 11:59PM In this assignment, you will write parts of a simple paint program. Some of the functionality you will implement is: 1. Freehand

More information

Handout Objectives: a. b. c. d. 3. a. b. c. d. e a. b. 6. a. b. c. d. Overview:

Handout Objectives: a. b. c. d. 3. a. b. c. d. e a. b. 6. a. b. c. d. Overview: Computer Basics I Handout Objectives: 1. Control program windows and menus. 2. Graphical user interface (GUI) a. Desktop b. Manage Windows c. Recycle Bin d. Creating a New Folder 3. Control Panel. a. Appearance

More information

Installing and Using Trackside Cameras Revised November 2008

Installing and Using Trackside Cameras Revised November 2008 Installing and Using Trackside Cameras Revised November 2008 Trackside cameras are a useful and creative way to add visual interest to your route. Rather than just look out the windshield of the locomotive

More information

My First Cocoa Program

My First Cocoa Program My First Cocoa Program 1. Tutorial Overview In this tutorial, you re going to create a very simple Cocoa application for the Mac. Unlike a line-command program, a Cocoa program uses a graphical window

More information

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon CMSC434 Introduction to Human-Computer Interaction Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III Jon Froehlich @jonfroehlich Human Computer Interaction Laboratory COMPUTER SCIENCE UNIVERSITY

More information

TUTORIAL. Ve r s i on 1. 0

TUTORIAL. Ve r s i on 1. 0 TUTORIAL Ve r s i on 1. 0 C O N T E N T S CHAPTER 1 1 Introduction 3 ABOUT THIS GUIDE... 4 THIS TUTORIAL...5 PROJECT OUTLINE...5 WHAT'S COVERED...5 SOURCE FILES...6 CHAPTER 2 2 The Tutorial 7 THE ENVIRONMENT...

More information

How to do a Property Search

How to do a Property Search How to do a Property Search A Self-Tutorial GIS Services 1401 Marina Way South Richmond, CA 94804 Tel: (510) 621-1298 Fax: (510) 307-8116 1. Navigate to the GIS Mapping Services page. 2. The mapping services

More information

User Guide. Avigilon Control Center Mobile Version for Android

User Guide. Avigilon Control Center Mobile Version for Android User Guide Avigilon Control Center Mobile Version 1.4.0.2 for Android 2011-2014 Avigilon Corporation. All rights reserved. Unless expressly granted in writing, no license is granted with respect to any

More information

SAS Mobile BI 8.1 for Windows 10: Help

SAS Mobile BI 8.1 for Windows 10: Help SAS Mobile BI 8.1 for Windows 10: Help Welcome Getting Started How Do I Use the App? Check out the new features. View the videos: SAS Mobile BI for Windows playlist on YouTube Use JAWS software? See the

More information

Slide Set 6. for ENCM 339 Fall 2017 Section 01. Steve Norman, PhD, PEng

Slide Set 6. for ENCM 339 Fall 2017 Section 01. Steve Norman, PhD, PEng Slide Set 6 for ENCM 339 Fall 2017 Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary October 2017 ENCM 339 Fall 2017 Section 01 Slide

More information

Controlling Windows with gestures

Controlling Windows with gestures Windows 10 and Office 2016: Controlling Windows with gestures Controlling Windows with gestures If you use a touchscreen or tablet, you no longer need a mouse or keyboard when working with Windows. Instead

More information

1.1: Introduction to Fusion 360

1.1: Introduction to Fusion 360 .: Introduction to Fusion 360 Fusion 360 is a cloud- based CAD/CAM tool for collaborative product development. The tools in Fusion enable exploration and iteration on product ideas and collaboration within

More information

OrbBasic Lesson 1 Goto and Variables: Student Guide

OrbBasic Lesson 1 Goto and Variables: Student Guide OrbBasic Lesson 1 Goto and Variables: Student Guide Sphero MacroLab is a really cool app to give the Sphero commands, but it s limited in what it can do. You give it a list of commands and it starts at

More information

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting Arrays Fortunately, structs are not the only aggregate data type in C++. An array is an aggregate data type that lets us access many variables of the same type through a single identifier. Consider the

More information

Microsoft Excel 2007

Microsoft Excel 2007 Learning computers is Show ezy Microsoft Excel 2007 301 Excel screen, toolbars, views, sheets, and uses for Excel 2005-8 Steve Slisar 2005-8 COPYRIGHT: The copyright for this publication is owned by Steve

More information

Creating sequences with custom animation

Creating sequences with custom animation By default graphics in PowerPoint appear in one piece when the slide appears. Even if Preset Text Animation has been chosen in the Slide Sorter view, only text created by the Autotemplates with text blocks

More information

Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm

Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm 15-123 Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm The Assignment Summary: In this assignment we are planning to manipulate

More information

CSE351 Winter 2016, Final Examination March 16, 2016

CSE351 Winter 2016, Final Examination March 16, 2016 CSE351 Winter 2016, Final Examination March 16, 2016 Please do not turn the page until 2:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 4:20. There are 125 (not 100) points,

More information

WHCC Sports and Events

WHCC Sports and Events WHCC Sports and Events We re using ROES Events as our ordering software for Sports and Events. This is a special version of ROES, written specifically for high volume events. There are two primary differences

More information

Topic Notes: Java and Objectdraw Basics

Topic Notes: Java and Objectdraw Basics Computer Science 120 Introduction to Programming Siena College Spring 2011 Topic Notes: Java and Objectdraw Basics Event-Driven Programming in Java A program expresses an algorithm in a form understandable

More information

My First iphone App. 1. Tutorial Overview

My First iphone App. 1. Tutorial Overview My First iphone App 1. Tutorial Overview In this tutorial, you re going to create a very simple application on the iphone or ipod Touch. It has a text field, a label, and a button. You can type your name

More information

Digital Content e-reader Features Overview

Digital Content e-reader Features Overview Digital Content e-reader Features Overview Announcing the launch of our new digital content e-reader. This brief overview will demonstrate some of the most important features of our new e-reader. Once

More information

User Guide. Avigilon Control Center Mobile Version for ios

User Guide. Avigilon Control Center Mobile Version for ios User Guide Avigilon Control Center Mobile Version 1.4.0.2 for ios 2011-2014 Avigilon Corporation. All rights reserved. Unless expressly granted in writing, no license is granted with respect to any copyright,

More information

SIMPLE TEXT LAYOUT FOR COREL DRAW. When you start Corel Draw, you will see the following welcome screen.

SIMPLE TEXT LAYOUT FOR COREL DRAW. When you start Corel Draw, you will see the following welcome screen. SIMPLE TEXT LAYOUT FOR COREL DRAW When you start Corel Draw, you will see the following welcome screen. A. Start a new job by left clicking New Graphic. B. Place your mouse cursor over the page width box.

More information