`
`Ex. GOOG 1004
`
`EX. GOOG 1004
`
`
`
`
`
`
`
`SOFTWARE
`TOOLS FOR THE
`PROFESSIONAL
`PROGRAMMER
`
`1 2
`
`D·FLAl
`TURBO VISION
`
`~~~' ·
`
`Ex. GOOG 1004
`
`
`
`r. 0 s PROFESSIONAL
`D Dbb'~ TOOLS FOR THE
`
`J 0 U R N A L
`
`~
`
`graphics-MENU is
`a collection of
`libraries, CASE
`tools and utilities
`to enable the
`software
`developer to
`quickly create a
`professional
`Graphical User
`Interface for any
`application.
`
`available with the Genus
`GX version) .
`•Complete support for
`both mouse and
`keyboard.
`•Works with any font or
`video mode supported by
`the underlying graphics
`environment.
`•Choose native graphics
`variant to work
`standalone with your
`Borland or Microsoft
`compiler, or external
`graphics variant to work
`with MetaWindow or
`Genus GX graphics.
`
`•A graphics-MENU
`interface can contain
`windows, icons, menus.
`checked and scrolled lists
`of items, buttons, text
`edit window, data entry
`form menus & more.
`•CASE tools are included
`to provide an on-screen
`WYSIWYG design
`environment for creating
`some menu types with
`complete automatic code
`generation for the target
`compiler.
`•Extensive flexibility is
`
`available to change
`colors, sizes. and format
`of most items. Library
`source is available to
`allow total control when
`required.
`•Background tasking
`capability allows a
`graphics-MENU interface
`to be run with a real time
`application.
`•Memory utilization is
`conserved by using TPU's
`for Pascal and many small
`.OBJ files for C. EMS can
`be automatically used to
`automatically save the
`underlying graphics
`image. (Automatic
`storage to disk is
`
`•compilers
`•graphics
`environments
`
`BGI
`
`Turbo C
`Turbo C++
`Turbo Pascal •
`Microsoft C
`
`Microsoft( 6.0 Genus GX
`graphics MetaWindow
`graphics
`•
`
`•
`
`VICE PRESIDENT/ GROUP PUBLISHER
`Peter Hutcbinsou
`
`EDITORIAL
`EDITOR-IN-CHIEF j onathan E1icksou
`MANAGING EDITOR Monica E. Berg
`TECHNICAL EDITORS Michael Floyd,
`Ray Valdes, David Berz
`ASSOCIATE EDITOR Tami Zemel
`PRODUGnON EDITOR Seem Kei(J'
`CONTRJBUT ING EDITORS A I Steveus, jelf Dulllelllc/1111
`Tom Geueretw .?..·, Andrew Scb ulman, J11icbae/ Abrasb, '
`Ray Duncan
`EDITOR-AT-LARGE Michael Swai11e
`
`ART/PRODUCTION
`ART/ PRODUCTION DIRECTOR !.any L. Clay
`ART DIRECTOR Michael H ollister
`TECH NICAL DESIGNER Marcos lfell!llm
`DESIGN PRODUCTION SUPERVISOR
`Amy Sbulmau Lesovoy
`D ESIGN PRODUCTION ASSISTANT
`Cbarlene Ca!peutier
`COVER PHOTOGRAPHER M icbael Ca rr
`
`CIRCULATION
`ClllCULATION DIRECTOR Peter \Vesterma11
`ASSISTANT CIRCULATION DIRECTOR Ma11uy Sawil
`FULFILLl\>lENT MANAGER Auuejeau
`DIRECT MARKETING MANAGER]1111e E. Sml!elll
`PROMOTION COORDI NATOR Philip Tsang
`ClllCULATION BUSINESS MANAGER Adela Cbau
`
`ADMINISTRATION
`VICE PRESIDENT OF FINANCE Kate Deschamps
`CONTROLLER Mtll)' Collopy
`CREDIT MANAGER Belly AI>eue
`ACCOUNTING SUPERVISOR Renate Kemke
`ACCOUNTS RECEIVABLE \Veuc(J' H o
`ACCOUNTS PAYABLE LuA1111 Rock/ewilz
`
`MARK ETING/ADVERTISI N G
`ASSOCIATE PUBLISHER Karla Spomim lll
`ADVERTISING COORDINATOR Laura Stack Pulleu
`SALES/ MARKETING ASSIST. Che1y l Esc/amado Cauiou
`ACCOUNT MANAGERS see page 152
`
`M&T PUBLISHING INC.
`CHAIRMAi'l OF THE BOARD Otmar Weber
`DlllECTOR C. F. uou Q uad/
`PRESIDENT laird Foshay
`SENIOR VICE PRESIDENT/ MAGAZINES
`.f. Jlicha rd Peck
`
`DR. DOBB'S JOURNAL (USPS 307690) is published mo nth!)' b)'
`t\ I&T Publishing, Inc., 50 1 Ga lveston Dr., Redwood City, CA 9-i063;
`4 15·.366-3600. Sccond-d:1ss post:tge paid at Hedwo<x:l City :md at
`additio nal entry po ints.
`
`ARTIQ.E SUDI\USSIONS: Send n1.·muscripts :md disk (with ankle,
`listings, and letter to the edito r) to the associ:lte t:ditor 415-366-3600-
`
`DDJ ON COMPUSERVE, Tnx: GO DDJ.
`
`SUBSCRIPTION: $29.97 fo r I y~r; $56.97 for 2 yea rs. Foreign
`orders must he prepaid in U.S. fumls dr:.1wn on a U.S. Jxmk. Canacb
`and ~lexiro: $45.00 per year. All olher foreign : $70.00 per year
`
`POSTMASTER: Send address changes to Dr. Dobb 's .fourtwl,
`P.O .Bo x 56 188, llouldec, CO 80322-6 188. ISSN I 044-789X. GSf
`(Canada) I Rl24771239.
`
`CUSTOMER SERVICE: Fo r s ubscription questions, c dl toll-free
`800-456- 121 5 ( U.S. and Dnad:1). Fo r subscription orders o r change
`o f :1ddrcss (."all 303-447-93.30 (:11! ot her countries) o r write Dr.
`DoiJb 's Joumal, P.O. Box 56 188, Boulder, CO 80322-6 188. For
`book/software o rde rs call 800-533-4372 On Ca li fornia 800-356-
`2002). FAX 4 15-364-8630.
`
`FOREIGN NEWSSTAND DISTRIBUfOR: \Vo rldwide t\ lediJ Ser·
`vice Inc., 11 5 E. 23rd St., New York, NY 100 10; 212-420-0588.
`
`Entire co ntents copyright © 1991 by ~I&T Publishing. Inc., unl.ess
`othe rwise noted o n spt.x-ific anicles. All rights reserved .
`
`VISA and MASTERCARD accepted
`
`CIRCLE NO. 304 ON READER SERVICE CARD
`
`4
`
`Dr. Dobb 's ]oumal, December1991
`
`Ex. GOOG 1004
`
`
`
`The Design and Implementation of
`
`I e
`
`They're fast, easy, and self-revealing
`
`Don Hopkins
`
`A !though the computer screen is two-dimensional,
`
`today most users of windowing environments con(cid:173)
`trol their systems with a one-dimensional list of
`choices-the standard pull-down or drop-down
`menus such as those found on Microsoft Windows,
`Presentation Manager, or the Macintosh.
`This a1ticle describes an altemative user-interface technique
`I call "pie" menus, which is two-dimensional, circular, and
`in many ways easier to use and faster than conventional lin(cid:173)
`ear memis. Pie menus also work well with alternative point(cid:173)
`ing devices such as those found in stylus or pen-based sys(cid:173)
`tems. I developed pie menus at the University of Ma1yland
`in 1986 and have been studying and improving them over
`the last five years.
`During that time, pie menus have been implemented by
`myself and my colleagues on four different platforms: XlO for
`the uwm window manager, Sun View, NeWS for the Lite Tool(cid:173)
`kit, and OpenWindows for THE NeWS Toolkit. Fellow re(cid:173)
`searchers have conducted both comparison tests between pie
`menus and linear menus, and also tests with different kinds
`of pointing devices, including mice, pens, and trackballs.
`Included with this a1ticle are relevant code excerpts from
`the most recent NeWS implementation, written in Sun's ob(cid:173)
`ject-oriented PostScript dialect.
`
`Pie Menus Properties
`In their two-dimensional form, pie menus are round menus
`containing menu items positioned around the cursor-as op(cid:173)
`posed to the rows or columns of traditional linear menus.
`The menu item target regions are shaped like the slices of a
`pie, and the cursor staits out in the center, in a small inac(cid:173)
`tive region. The active regions are all adjacent to the cursor,
`but each in a different direction. You select from a pie menu
`by clicking the mouse or tapping the stylus, and then point(cid:173)
`ing in a pa1ticular direction.
`Although there are multiple kinds of pie menus, the most
`
`Don is a software engineer for SunSoft and can be contact(cid:173)
`ed at 88 Mercy Street, Mountain View, CA 94041.
`
`16
`
`D1: Dobb'sjournal, December1991
`
`Ex. GOOG 1004
`
`
`
`conunon implementation _uses the relative direction of the
`pointing device to determine the selection - as compared
`with the absolute positioning required by linear menus. The
`wedge-shaped slices of the pie, adjacent to the cursor but in
`different directions, correspond to the menu selections. Vi(cid:173)
`sually, feedback is provided to the user in the form high(cid:173)
`lighting the wedge-shaped slices of the pie. In the center of
`the pie, where the cursor starts out, is an inactive region.
`When a pie menu pops up, it is centered at the .location
`of the click that invoked it: where the mouse button was
`pressed (or the screen was touched, or the pen was tapped).
`The center of the pie is inactive, so clicking again without
`moving dismisses the menu and selects nothing. The circu(cid:173)
`lar layout minimizes the motion required to make a selec(cid:173)
`tion. As the cursor moves into the wider area of a slice, you
`gain leverage, and your control of direction improves. To ex(cid:173)
`ploit this property, the active target areas can extend out to
`the edges of the screen, so you can move the cursor as far
`as required to select precisely the intended item.
`You can move into a slice to select it, or move around the
`menu, reselecting another slice. As you browse around be(cid:173)
`fore choosing, the slice in the direction of the cursor is high(cid:173)
`lighted, to show what will happen if you click (or, if you
`have the button down, what will happen if you release it).
`When the cursor is in the center, none of the items are high(cid:173)
`lighted, because that region is inactive.
`Pie menus can work with a variety of pointing devices(cid:173)
`not just mice, but also pens, trackballs, touchscreens, and (if
`
`Dr Dobb's]ournal, December 1991
`
`you'll pardon the hand waving) data gloves. The look and
`feel should, of course, be adapted to fit the qualities and con(cid:173)
`straints of the particular device. For example, in the case of
`the data glove, the two-dimensional circle of a pie could be(cid:173)
`come a tlu·ee-dimensional sphere, and the wedges could be(cid:173)
`come cones in space.
`In all cases, a goal of pie menus is to provide a smooth,
`reliable gestural style of interaction for novices and experts.
`
`Pie Menu Advantages
`Pie menus are faster and more reliable than linear menus, be(cid:173)
`cause pointing at a slice requires vety little cursor motion,
`and the large area and wedge shape make them easy targets.
`For the novice, pie menus are easy because they are a self(cid:173)
`revealing gestural interface: They show what you can do and
`direct you how to do it. By clicking and popping up a pie
`menu, looking at the labels, moving the cursor in the de(cid:173)
`sired direction, then clicking to make a selection, you learn
`the menu and practice the gesture to "mark ahead" ("mouse
`ahead" in the case of a mouse, "wave ahead" in the case of
`a dataglove). With a little practice, it becomes quite easy to
`mark ahead even tlu·ough nested pie menus.
`For the expert, they're efficient because-without even
`looking-you can move in any direction, and mark ahead
`so fast that tl1e menu doesn't even pop up. Only when used
`more slowly like a traditional menu, does a pie menu pop
`up on the screen, to reveal the available selections.
`Most impmtantly, novices soon become experts, because
`every time you select from a pie menu,
`you practice the motion to mark
`ahead, so you naturally learn to do it
`by feel! As Jaron Lanier of VPL Re(cid:173)
`search has remarked, "The mind may
`forget, but the body remembers." Pie
`menus take advantage of the body's
`ability to remember muscle motion
`and direction, even when the mind
`has forgotten the corresponding sym(cid:173)
`bolic labels.
`By moving further from the pie
`menu center, a more accurate selec(cid:173)
`tion is assured. This feature facilitates
`mark ahead. Our expetience has been
`that tl1e expert pie menu user can eas(cid:173)
`ily mark ahead on an eight-item menu.
`Linear menus don't have this proper(cid:173)
`ty, so it is difficult to mark ahead more
`than two items.
`This property is especially impor(cid:173)
`tant in mobile computing applications
`and other situations where the input
`data stream is noisy because of factors
`such as hand jitter, pen skipping,
`mouse slipping, or vehicular motion
`(not to mention tectonic activity).
`There are particular applications,
`such as entering compass directions,
`time, angular degrees, and spatially re(cid:173)
`lated commands, which work partic(cid:173)
`ularly well with pie menus. However,
`as we'll see further on, pies win over
`linear menus even for ordinaty tasks.
`
`Pie Menu Flavors
`There are many possible flavors or vali(cid:173)
`ants of pie menus. One obvious vari(cid:173)
`ation is to use semicircular pie ("fan")
`menus at the edge of the screen.
`
`17
`
`Ex. GOOG 1004
`
`
`
`PIE MENUS
`
`Secondly, although the usual form of pie menus is to use
`only the directional angle in determining a selection, there
`is a variant of pie menus which offers two parameters of
`choice with a single user action. In t\1is case, both the di(cid:173)
`rection and the distance between the two points are used as
`parameters to the selection. The ability to specify two input
`parameters at once can be used in situations where the in(cid:173)
`put space is two-dimensional.
`For example , in a graphics or word processing applica(cid:173)
`tions, a dual-parameter pie menu will allow you to specify
`both the size and style of a typographic font in one gesture.
`The direction selects the font style from a set of styles, and
`the distance selects the font size from the range of sizes. An
`increased distance from the center corTesponds to an increase
`in the size of the font. Visual feedback can be provided to
`the user by making a text sample swell or shrinl< dynami(cid:173)
`cally as the pointer is moved to and fro. Direction and dis(cid:173)
`tance can be continuous or discrete, as appropriate.
`A minor variation in the use of pie menus is whether you
`click-and-drag as the menu pops up, or whether two clicks
`are required: one to make the menu appear, another to make
`the selection. In fact, it's possible to support both.
`Other vatiants include scrolling spiral pies, rings, pies with(cid:173)
`in square windows, and continuous circular fields. These
`variants are discussed in a later section.
`
`Pie Menu Implementations
`As mentioned earlier, several pie menu implementations ex(cid:173)
`ist, including: XlO, SunView, and two NeWS implementa(cid:173)
`tions (using different tooll<its).
`I ftrst attempted to implement pie menus in June 1986 on
`a Sun 3/160 running the XlO window system by adding them
`to the "uwm" window manager. The user could clefme nest(cid:173)
`eel menus in a ".uwrnrc" file and bind them to mouse but(cid:173)
`tons. The default menu layout was specilled by an initial an(cid:173)
`gle and a radius that you could override in any menu in which
`labels overlapped. The pop-up menu was rectangular, large
`
`enough to hold the labels, and had a tide at the top.
`Then I linked the window manager into Mitch Bradley's
`Sun F01th, to make a Forth-extensible window manager with
`pie menus. I used this interactively programmable system to
`experiment with pie menu tracking and window manage(cid:173)
`ment techniques, and to administer and collect data for Jack
`Callahan's expetiment compating pie menus with linear menus.
`In January 1987, while snowed in at home, Mark Weiser
`implemented pie menus for the Sun View window system.
`They are featured in his reknowned "SDI" game, the source
`code for which is available free of charge.
`I implemented pie menus in round windows for the Lite
`Toolkit in NeWS 1.0 in May 1987. TI1e Lite Toolkit is imple(cid:173)
`mented in Sun's object-oriented PostScript dialect, and pie
`menus are built on top of the abstract menu class, so d1ey
`have d1e same application interface as linear menus. There(cid:173)
`fore, pie menus can transparently replace the default menu
`class, turning evety menu in the system into a pie, without
`having to modify other parts of the system or applications.
`Because of the equivalence in semantics between pie
`menus and linear menus, pies can replace linear menus in
`systems in which menu processing can be revectored. Both
`d1e Macintosh and Microsoft Windows come to mind as pos(cid:173)
`sible candidates for pie menu implementations. Of course,
`for best results, d1e application's menu items should be ar(cid:173)
`ranged with a circular layout in mind.
`My most recent implementation of pie menus runs under
`the NeWS Tooll<it, the most modern object-oriented toolkit
`for NeWS, shipped with Open Windows, Version 3. The pie
`menu source code and several special-purpose classes, as
`well as sample applications using pie menus are aU available
`for no charge.
`
`Usability Testing
`Over the years, there have been a number of research pro(cid:173)
`jects studying the human factors aspects of pie menus.
`Jack Callahan's study compares the seek time and error
`
`Momenta's Command Compass
`A Pie Menu by any Other Name
`0 ne implementation of a pie menu was recently an(cid:173)
`
`a.tticle. If Momenta succeeds in its endeavor, pie memts will
`join pull-down and linear menus as mainstream user(cid:173)
`irtterface components.
`
`-editors
`
`nounced by Momenta Corporation, a Silicon Valley
`startup developing a "pentop" computer. (A "pentop"
`PC supports bod1 keyboard and pen input.) The Momen(cid:173)
`ta Computer is a dual-mode system that can run standard
`MS-DOS programs or programs written for the "Momenta
`Environment," a Smalltalk/V-based environment that sup(cid:173)
`potts the pen. Central to the Momenta Environment is a
`system-wide pie menu the company refers to as the "Com(cid:173)
`mand Compass."
`The Command Compass operates consistently across aU
`Momenta Environment applications (notepad, spreadsheet,
`sketchpad, and so on) by allowing users to manipulate
`(move, copy, cut, paste, and so on) text or graphical ob(cid:173)
`jects that have previously been defined. Some operations
`can therefore be performed in a single stroke. As Bgure 1
`illustrates, for instance, you can quickly move a block of
`text by defining it, calling up dle Command Compass, mov(cid:173)
`ing the stylus duough the "move" wedge and on to the
`"move-to" position, and releasing the pen.
`The figure shows that Momenta's menus are a visually
`faithful in1plementation of pie menus as described in this
`
`18
`
`• Appointment calen'$-r, featuring daily, weekly
`and monthly views, reCllfFing.~ppointments,
`alarms and other automated func,tions.
`
`• Address book wit~
`~ r; \
`'~Jr-fu~ction (+,-,/}
`• Calculators, bot~
`and a sophisti~tt ~lculator.
`• Chart Maker. 1 coo/~;~:~ed creation
`
`of presentations ~ds.
`
`Figure 1: Momenta's pie menu implementation
`
`Dr: Dobb's]oumal, December 1991 -
`
`Ex. GOOG 1004
`
`
`
`Unprecedented 32-Bit
`ogramming Power in a Singl
`ge: WATCOM C8
`
`\
`
`.
`
`.
`
`R~~tY~fr~'~ .. ~2,~hit ~OS
`· .·
`·
`· ·
`Extend~r .
`True 32-bit Windows ·:
`G:ill Application l\.it ·
`Fast, Tight, Reliable .
`· 32-hit Code Optimizer
`Licensed Microsoft
`WmdowsSDK
`Components
`Interactive Source-Level
`Debugger
`
`·,
`
`I
`
`. '
`
`.
`
`1~0% ANSI and SM cmhpatible:·
`C8.5 /386 passeS' ali Plum .Hall Validation
`Suite tests.
`':..
`·
`. '
`·
`Comprehensive tool set includes a
`.debugger, li!].ker, profiler and much more.
`Microsoft extensions simplify porting of
`16-bit source.
`DOS extenders supported include
`Phar Lap, Rational and Ergo.
`Extensive third party support includes
`products to help with windowing,
`communications, C++ development and
`graphics.
`AutoCAD AD~ development and
`debugging support .
`DOS Extender Features
`C8.5/386 includes DOS/4GW, a 32-bit
`DOS extender developed by Rational
`Systems and based on the industry(cid:173)
`leading technology of DOS/16M, Key
`features include: ·
`• Royalty-free runtime license
`• Virtual memory support up to 32Mb
`• 25K real mode memory footprint
`• DPMI support (DOS, Windows DOS
`Box, etc.)
`•
`• VCPI and XMS (himem.sys) compatible
`
`32-hit Windows Kit
`Develop and debug true 32-bit GUI
`applications and 32-bit DLL's. Using
`32-bit addressing, CUI applications can
`exploit the flat memory model to
`overcome inherent Windows memory
`constraints. Straightforward memory
`allocation makes Windows application
`development easier. Key components
`include:
`• Supervisor for executing 32-bit
`applications and DLI~s under Windows
`• Debugger for 32-bit applications and
`DLI.:s under Windows
`• Licensed Microsoft SDK components
`• Access to Windows API from 32-bit
`code through special libraries
`• 387 math co-processor emulation
`• 32-bit C library for Windows
`
`• 100% ANSI C Optimizirig Compiler
`Tools set compo~ents:
`.
`.
`• Ero~ected-mode verSion of Compiler
`• Royalty~ free DOS Extender with VMM
`support • Licensed Components of the .
`Microsoft Windo\'vs SDK • Interactive
`Source-Level Debugger • Linker
`• Protected-mode version.ofLinker
`• Profiler • Object Code Librarian
`• Object Code Disassembler • MAKE
`.
`Facility • Patch Facii.ity • Object Module
`Convert Utility • Wmdows Supervisor
`• Bind Facility for Windows Applications
`~· 386 Run-time library object code
`• Special32-lllt libraries for Windows API
`• 386 Graphics Library for ~tended DOS
`applications • 386 Run-time libraries for
`Windows
`·
`Also available:
`WATCOM FORTRAN 771386
`Includes 100% ANSI FORTRAN
`optimizing compiler and all tool set
`components listed above for CS.S/386.
`Platforms
`Host environments:
`DOS, Extended DOS, Windows DOS
`box, OS/2 Ll or later
`Target environments:
`Extended DOS, Windows, Windows
`DOS box, AutoCAD ADS, embedded
`systems
`Novell's Netware C for NLM's includes
`C8.5/386
`Price: $995
`1-800-265-4555
`
`WAT~=~E:~
`
`415 Phillip Street, Waterloo, Ontario, Canada
`N2L 3X2 Tel. (519) 886-3700 Fax (519) 747-4971
`
`WAlCOM C and Lightning Device are trademar1<s of WATCOM
`Systems Inc. DOS/4G and DOS/16M are uademarl<s of Ratiooal
`Systems Inc. Other trndcmarks are the properties of their respective
`owners. c Copyright 1991 IVATCOM Products Inc.
`
`Ex. GOOG 1004
`
`
`
`PIE MENUS
`
`(continued from page 18)
`rates in pies versus linear menus. There is a hypothesis known
`as Fitts's law, which states that the "seek time" required to
`point the cursor at a target depends on the target's area and
`distance. The wedge-shaped slices· of a pie menu are all large
`and close to the cursor, so Fitts's law predicts good times for
`pie menus. In comparison, the rectangular target areas of a
`traditional linear menu are small, and each is placed at a dif(cid:173)
`ferent distance from the statting location.
`Callahan's controlled experiment supports the result pre-
`
`In their two-dimensional form, pie
`menus are round menus
`containing menu items positioned
`around the cursor- as opposed to
`the rows or columns of traditional
`linear menus
`
`dieted by Fitts's law. Three types of eight-item menu task
`groupings were used: Pie tasks (Notth, NE, East, and so on),
`linear tasks (First, Second, Third, and so on), and unclassi(cid:173)
`fied tasks (Center, Bold, Italic, and so on). Subjects with lit(cid:173)
`tle or no mouse experience were presented menus in both
`linear and pie formats, and told to make a cettain selection
`from each. Those subjects using pie menus were able to
`make selections significantly faster and with fewer errors for
`all tluee task groupings.
`The fewer the items, tl1e faster and more reliable pie menus
`are, because of tl1eir bigger slices. But other factors contribute
`to their efficiency. Pies with an even number of items are
`symmetric, so the directional angles are convenient to re(cid:173)
`member and atticulate. Cettain numbers of items work well
`with various metaphors, such a clock, an on/off switch, or
`a compass. Eight-item pies are optimal for many tasks: They're
`symmetric, evenly divisible along vettical, horizontal, and di(cid:173)
`agonal axes, and have distinct, well-lmown directions.
`Gordon Kuttenbach carried out an experiment comparing
`pie menus with different visual feedback styles, numbers of
`slices, and input devices. One interesting result was that
`menus with an even number of items were generally better
`than those with odd numbers. Also, menus with eight items
`
`Graphical User Interface for DOS,
`386 PROTECTED MODE, and UNIX.
`
`Outstanding aesthetics, adaptable,
`and definitely developer-friendly.
`
`Includes 4 case tools: Dialog Box Editor,
`Menu Editor, Icon Editor, and Font Editor.
`
`Over 1 ,000 pages of documentation, plus
`on-line version of manuals using UpShot.
`
`Versions for MetaWindow, Flash Graphics, GSS.
`Pricing starts at $325 for DOS, NO Royalties.
`
`Free Demo!
`303-494-8865
`
`''Highly recommended."
`Andrew Binstock
`The C Gazette
`
`1145 Ithaca Drive, Boulder, Colorad
`BBS 303-494-8868
`TEl -303-494-8865
`FAX 303-494-7802
`CIRCLE NO. 286 ON READER SERVICE CARD
`
`20
`
`Figure 2: Eight days a week pie menu
`
`Dr. Dobb'sjournal, December 1991
`
`Ex. GOOG 1004
`
`
`
`that "System Architect stood out from many other
`prospects because it had the best core technology."
`System Builder called System Architect "truly a price/
`performance leader."
`
`.::;_r.rvi r.t:s
`
`lli>l!lrll rn Ujr.liumuy S t:! S ~l c ~ l f!ll fy l~el
`
`POPKIN
`Software & Systems Inc.
`11 Park Place, NY, NY 10007
`Tel: (212) 571-3434
`Fax: (212) 571-3436
`
`Work in the Windows 3.0
`environment, or OS/2 Presen(cid:173)
`tation Manager (call for
`availability), and count on
`context-sensitive help.
`Stay within your budget. At
`$1,395, System Architect is
`quite affordable-- and it runs
`on almost any PC.
`
`Call (212) 571-3434 today for
`introductory 35% off optional
`Database Schema Generator.
`Supports DB2, Oracle, INGRES, OS2, Sybase,
`SOL Srvr, RDB, Progress, Paradox, SOL Base,
`AS400(SOL), XDB, and lnformix.
`
`SystemArchitect
`
`System Architect has the power to handle
`your most complex applications. And it's so
`easy to use, even beginners will be produc-
`tive in no time.
`·
`Use such methodologies as
`DeMarco /Yourdon, Gane
`& Sarson, Ward & Mellor
`(real-time), Entity Relation
`diagrams, Decomposition
`diagrams, Object Oriented
`Design (optional), State
`Transition diagrams, &
`Flow Charts.
`Create an integrated data
`dictionary/encyclopedia,
`and get multi-user support
`both with and without a
`network.
`Take advantage of such advanced features as:
`•Normalization
`•Rules & Balancing
`•Requirements Traceability
`•Network Version
`•Import/Export Capability
`•Custom Reporting
`• Extendable Data Dictionary
`• Auto Leveling
`Rely on a proven CASE product. System Architect
`has received rave reviews from the press and users.
`IEEE Software Magazine called System Architect "a
`useful, well-planned, affordable CASE tool." CASE
`Trends found System Architect "to be extremely easy
`to use .. .. . with many features that are completely
`lacking in higher priced competitors." Toshiba found
`CIRCLE NO. 321 ON READER SERVICE CARD
`
`MICROSOFT
`WINDOWS
`
`\m~oW11UC.• I IJ\l!lli:f"nU.x:1
`
`II
`
`Supporting IBM's AD/Cycle
`
`System Architect Jogo is a trademark of Popkin Software & Systems Incorporated. Other
`product names used herein are for identification purposes only and may be trademarks of
`their respective companies. Price shown valid only for USA & Canada. Price and specifica(cid:173)
`tion.s subject t? c~a.nge without notice at the sole discretion o! the co~1pa ny. Product delivery
`subJect to availab1hty. Please call for the name of the nearest mternahonal distributor.
`
`Ex. GOOG 1004
`
`
`
`PIE MENUS
`
`(continued from page 20)
`were especially fast and easy to learn, because of their pri(cid:173)
`maty and secondaty compass directions. Another result of
`Kurtenbach's experiment was that, with regard to speed and
`accuracy, pens were better than mice, and mice were better
`than trackballs.
`The "Eight Days a Week" menu shown in Figure 1 is a
`contrived example of eight-item symmet:Iy: It has seven items
`for the days of the week, plus one for today. Monday is on
`the left, going around counterclockwise to Friday on the right.
`Wednesday is at the bottom, in the middle of the week, and
`'the weekend floats above on the diagonals. Today is at the
`top, so it's_always an easy choice. THE NeWS Toolkit code
`that creates this pie menu is shown in Listing One (page 94).
`
`Pie Menu Disadvantages
`The main disadvantage of pie menus is that when they pop
`up, they can take a lot of screen space due to their circular
`layout. Long item labels can make them very large, while
`short labels or small icons make them more compact and
`take up less screen space.
`The layout algorithm should have three goals: to minimize
`the menu size, to prevent menu labels from overlapping, and
`to clearly associate labels with their directions. It's not nec(cid:173)
`essaty to confine each label to the interior of its slice- that
`could result in enormous menus. In a naive implementation,
`you might use text labels rotated around the center of the
`pie. But rotated text turns out not to work well, because it
`exaggerates "jaggies." This is hard to read without rotating
`your head, and doesn't even satisfy the goal of minimizing
`menu size.
`One '""e"ful l'yout policy I've Implemented ju,hfi"' f[
`
`Front!
`Icon! \I Zoom!
`(Pus h) ::::: < (Crab)
`Paint! I\ (Frame)
`Back!
`
`(
`
`Figm·e 3: A nested pie menu
`
`Why invent the wheel a second time?
`
`Paragraph
`alignment:
`
`left
`
`Font
`attributes:
`Tabulator
`bold
`italic
`types:
`right
`underline
`left
`right ~ j u s t i f i e d
`:~~er script
`centered
`- for all printer fonts I
`decimal
`I
`
`centered
`
`Just use our TX library to integrate a full featured WYSI(cid:173)
`WYG editor into your application.
`
`Get your free demo today.
`Just send a fax or a message
`via CompuServe (1 00013, 115).
`
`DBS GmbH
`FahrenheitstraBe 1
`2800 Bremen 33
`Germany
`Phone 01149 421 I 22 08-162
`01149 421 I 22 08-150
`Fax
`
`Windows is a trademark of Microsoft Corporation
`
`DBS
`
`CIRCLE NO. 650 ON READER SERVICE CARD
`
`.•. With lmageMan™!
`
`lmage.Man is the first and only object-oriented Windows library that
`puts advanced image display and print capabilities in your software:
`• Supports TIFF, PCX, Encapsulated Postscript, Windows
`Metafile and Bitmap images
`• Reduces Development Time
`• Simplifies Image Support With Object-Orientation
`• Works With Any Language That Supports DLLs
`• Reconfigures Easily
`• And Much, Much More!
`Image.Man gives your applications the power and the polish they
`need to break through the market clutter and get noticed.
`Start projecting the right image - get ImageMan now!
`Call (800) 868-8003
`
`Price: S395 (With Source Code $995)
`90 Day Money-Back Guarantee
`
`I D T II 1000 Business Center Drive • Suite 120
`
`Savannah, Georgia 31405 • (912) 651 -8003
`•
`•
`OA,HC«NOQ!NS ONC FAX (91 2) 651-8021. BllS (912) 651-8015
`
`22
`
`CIRCLE NO. 604 ON READER SERVICE CARD
`
`Dr. Dobb's]oumal, December1991
`
`Ex. GOOG 1004
`
`
`
`OPEN INTERFACE
`
`PORTABLE GRAPHICAL
`USER IN·TERFACES
`ACROSS ALL VVINDOVVING
`STANDARDS
`
`NEURON CATA
`
`Neuron Data Open InteJface"' is an object-oriented, C based,
`extensible development tool with a layered API and graphic editor
`that lets you create your user interface once, and have it work
`across all standard windowing environments. Your applications
`will support native look and feel across OSF/Motif, Open Look,
`Presentation Manager, Microsoft Windows and the Macintosh.
`All without changing a line of code.
`
`Call today and ask for seminar information. You will also receive
`product literature and a free comprehensive technical paper.
`1-800-876-4900 #467 NEURON DATA, 156 University Avenue,
`Palo Alto, CA 94301 415-321-4488
`CIRCLE NO. 602 ON READER SERVICE CARD
`
`Ex. GOOG 1004
`
`
`
`PIE MENUS
`
`(continued from page 22)
`each label edge within its slice, at an inner radius big enough
`that no two adjacent labels overlap. To delimit the target ar(cid:173)
`eas, short lines are drawn between th~ slices, inside the cir(cid:173)
`cle of labels, like cuts in a pie crust.
`One solution to the problem of pie menus with too many
`items is to divide up large
`menus into smaller, logically re(cid:173)
`lated submenus. Nested pies
`work quite well, and you can
`mark ahead quickly through sev(cid:173)
`eral levels. You remember the
`route through the menus in the
`same way you remember how
`to drive to a friend 's house: by
`going clown familiar roads and
`malting the correct turn at each
`intersection.
`Another alternative is to use a .
`scrolling pie menu that encom-
`passes many items in a spiral but
`only displays a fLxecl number of them at once. By winding
`the cursor around the menu center, you can scroll through
`all the items, like walking up or down a spiral staircase.
`
`Other Design Considerations
`When you mark ahead quicldy to select from a familiar pie,
`it can be annoying if the menu pops up after you've already
`fmishecl the selection, and then pops clown, causing the screen
`to repaint and slowing clown interaction. If you don't need
`to see the menu , it shouldn't show itself. When you mark
`ahead, interaction is much quicker if the menu display is pre(cid:173)
`empted while the cursor is in motion, so you never have to
`
`·
`Although the .computer screen is
`two-dimensional, .today most users
`' d
`'
`'
`t
`J
`OJ Wtn OWtng envzronmen S
`l h ·
`· h
`contra t ezr systems wzt a one-
`dimensional list of choices
`
`stop and wait for the computer to catch up. If you click up
`a menu when the cursor is at rest, it should pop up im(cid:173)
`mediately, but if you press and move, the menu should not
`display until you sit still. If you mark ahead, selecting with a
`smooth continuous !'notion, the menu should not displ