TweetFollow Us on Twitter

Tools Plus
Volume Number:12
Issue Number:7
Column Tag:Programming Tools

Tools Plus 3.0

Paradise for “control” freaks

By Rich Parker

Everyone Wants
to Program the Mac

Almost all Mac owners, at one point or another, harbor a desire to program their own machine. Some may be well served by products like HyperCard, but others just can’t wait to learn C, C++, or Pascal, so that they can write the next “killer” application.

If they start programming by buying books that illustrate programs that use the standard ANSI libraries, they might make quite a bit of progress in learning the language and writing routines that use a “console” interface. At some point, though, the realization sinks in that these aren’t “real” Mac applications, and then the trouble begins. The age-old question that I see over and over again on the online services is: “How do I get started writing ‘real’ Mac programs?”

Most people are directed to read one of Dave Mark’s or Dan Sydow’s fine books on the subject of Mac programming for their favorite language, but these books provide only the basic information needed to write “real” Mac programs. At some point, the (now quite distressed) user is directed to the almighty gospel of Inside Macintosh to further his or her knowledge. This is the point at which most budding programmers wimp out, and I don’t really blame them. I think you will agree that trying to learn to program the Mac by reading Inside Macintosh is like learning to play the piano by studying the details of music composition.

So What’s the Alternative?

I think it’s well known in the developer community that I favor the use of application frameworks. Developing Mac applications using PowerPlant, TCL, or MacApp is something that comes easily to me. But I also recognize the negative aspects of these frameworks, and readily admit that they are not a solution for all people or all applications.

In the first place, most application frameworks demand much more memory than would be required if one had the time to read, understand, and apply all of the appropriate built-in Mac toolbox routines to the problem. But the difficulty of understanding the Mac toolbox is equaled only by the steep learning curve of most of the current application frameworks. So we are left with an almost insoluble problem - whether to spend endless hours reading Inside Macintosh or to spend equally endless hours studying the structure and functionality of an application framework.

Tools Plus to the Rescue!

Steve Makohin, Steven Waters, and the folks at Water’s Edge Software realized that programming the Mac wasn’t easy. After all, they ran into these problems themselves when they first started. So they set out to create a set of high-level functions that would enable others to program the Mac much more easily, without having to worry about handling some of the more difficult aspects of Mac programming. The result was a set of binary libraries that could be included in projects for your favorite development environment, whose routines could be called to implement and manage exceedingly sophisticated Mac user interfaces. (After all, it’s the user interface that is the most complex aspect of any Mac application development.)

The first Tools Plus product was developed as a result of an R&D project in 1989. By 1992, after considerable prodding from various contractors and project managers, Makohin and Waters decided to polish their product to commercial readiness. A year later, Water’s Edge Software was formalized to become the delivery vehicle for Tools Plus, and to support its users.

The product has been continually enhanced, and version 3.0 of the Tools Plus product is even more capable than any previous version. It comes with a wealth of features that promise to make almost any Mac programming project a pleasure, rather than a pain.

What’s It All About?

Tools Plus version 3.0 consists of a set of GUI Building/Event-Managing libraries for Macintosh programmers using any of the following compilers:

• Metrowerks CodeWarrior C/C++ and CodeWarrior Pascal for either 680x0-based or Power Macintosh systems. All versions of CodeWarrior from 6.0 through 8.0 are supported. The Power Mac libraries are native for both C/C++ and Pascal.

• THINK Pascal version 4.0.2 or later for 68K development only.

• THINK C version 5.0.4 or later for 68K development only.

• Symantec C/C++ version 6.0.1 or later for 68K development only. This includes the newly released Symantec version 8.1, which supports 68K development with the Symantec Project Manager; however, in contrast to the CodeWarrior situation, where the PPC-native Tools Plus libraries have been available since mid-1995, native Power Macintosh libraries are not yet available in version 3.0 of Tools Plus for the SPM. [Portions of the Tools Plus source are in Pascal, and until recently there wasn’t SPM PPC-native Pascal support. Water’s Edge feels that the LS Pascal translator needs some maturing before they can release the code it generates. - man]

To use the Tools Plus product, you include the libraries and the ToolsPlus.c file in your Symantec or Metrowerks project (the ToolsPlus.h file is also needed). In the case of Pascal-based projects, the ToolsPlus.p file is added to the project along with the ToolsPlus libraries. Starter project files and all other requisite files (e.g., ToolsPlus.c, ToolsPlus.h, ToolsPlus.p) are provided in the product that you purchase. The products offered by Water’s Edge are as follows:

• Libraries for Symantec compilers (68K only), including THINK C and SPM v8.1 ($149).

• Libraries for the THINK Pascal compiler for 68K development ($149).

• Libraries for both THINK C/SPM and THINK Pascal for 68K development ($199).

• Libraries for Metrowerks CodeWarrior Bronze (68K only), including C, C++, and Pascal ($199).

• Libraries for Metrowerks CodeWarrior Gold (68K and PPC), including C, C++, and Pascal ($249).

• Tools Plus v3.0 Academic for any of the foregoing environments ($99 each).

• Super CDEFs, a collection of special “Control Definition” resources that you can include in your applications for any Macintosh ($89 when purchased alone, $39 for those with an academic discount, or free with the purchase of any non-academic Tools Plus developer kit).

What Features Do the Libraries Provide?

The Tools Plus libraries provide a comprehensive set of user interface elements and event-management features. Every control is created with a single statement in your application. The user interface elements include windows of various types, including all standard window types, floating palettes, movable modal dialogs, buttons, editing fields, raised or sunken 3D panels, and many other features. The best way to show you some of the things you’re likely to use is to display some screen shots of the Demo program that ships with every copy of the Tools Plus product, and is also available on all of the major online services (along with its source code). I built the demo application inside CodeWarrior version 8.0 for the PowerMac. The project file for that build is shown in Figure 1. You can see from the figure that the Demo program’s project file contains several of the standard Metrowerks libraries, as well as the Tools Plus.Lib library. The Demo program is 228K in size and runs in a partition of 384K. It includes examples of many of the features that are available in the Tools Plus product.

Figure 1. CodeWarrior project file for Demo program

The window in Figure 2 describes itself. When you move the cursor into the “Plus” cursor zone, the cursor changes into a plus-sign. When you move the cursor into the “Cross” cursor zone, the cursor changes into a cross. The lists demonstrate the use of different fonts with text in any selected color, and the buttons demonstrate the ability to create both standard and non-standard buttons. The checkboxes in the lower left corner demonstrate the ability to disable the “Two And Three” checkbox while the “Second Choice” checkbox is unchecked.

Figure 2. One of the Demo program’s feature demonstrations

Figure 3. More features from the Demo program

In Figure 3, various types of text field are shown. It also demonstrates the use of “live” scroll bars: instead of displaying a “ghost” outline of the thumb when it is dragged, the thumb of the horizontal scroll bar is redrawn in real time as you drag it. (The thumb of the vertical scroll bar displays the normal appearance of an outline when the thumb is dragged.)

Figure 4 simulates a setup window for a MIDI interface, with the two icon buttons selecting a port and the three radio buttons selecting the interface’s speed. (Despite the window’s name, I didn’t see any “Cursor Zones” in this example; the cursor remained in the shape of an arrow within the window.)

In Figure 5 the watch cursor is animated while the progress indicator (“thermometer”) is advancing.

Figure 4. Icon button example

Figure 5. Pretending to sort

Figure 6. Color-independent drawing

Figure 7. Self-sizing alert

Figure 6 illustrates how the Tools Plus library compensates for the color abilities (or lack thereof) of your Macintosh. When the figure is drawn on a monochrome monitor, the picture and accompanying text are drawn so that they are still entirely readable. I didn’t have two monitors to demonstrate to myself that one-half of the window would be drawn in monochrome and the other in color, but I did change the Monitors control panel settings to verify that the color text and the picture are perfectly readable when using the “Black & White” setting.

The alert shown in Figure 7 illustrates that you can put whatever text you want displayed, including carriage-return characters, and the Tools Plus libraries will create a dialog that’s exactly the right width and height to hold that text. (Carriage-return characters are specified as '\r' in the text string.)

The alert shown in Figure 8 demonstrates that dynamic alerts can contain any icon you choose, including the System’s standard icons. After pressing the Continue button in this alert, you are given the opportunity to see other examples of alerts, even alerts with no associated buttons. Clicking the mouse inside the alert dismisses it.

The Tools Plus libraries include a variety of pop-up menus (Figure 9). These can contain words, icons and words, icons only, what Water’s Edge calls “Pop-Down” menus that are used to specify immediate actions to perform, as well as pop-up menus of any size, using any font.

Figure 8. Self-sizing alert with icon of your choice

Figure 9. Various pop-up menus

Figure 10. A plethora of picture pushers

You might think that you’ve seen it all, but we’re just getting to the good stuff. The Tools Plus libraries also contain a large selection of picture buttons. A number of these are illustrated in Figure 10. (Sorry about the caption for the figure, but I couldn’t resist!) The variety of picture buttons available in the Tools Plus libraries is just amazing. Every one of these is created by a single line of code. The 3D buttons in the lower left are examples of CD-ROM controls. The buttons at the top of the window show some of the features of text-editor and drawing programs. The middle set of buttons in the top panel illustrate various text justification styles.

The “Step” and “Scroll” buttons in the middle of the figure illustrate how the values shown on the buttons can be modified by clicking on either the top or bottom of the button. Clicking on or near the plus-symbol or minus-symbol in one of the buttons causes the numerical value in that button to increment or decrement, respectively; plus, the “Step” button changes value each time it is clicked, whereas the “Scroll” button continues to increase or decrease in value as long as the mouse button is held down.

The button at the far right, in the middle of the window, has an associated value whose minimum, initial, and maximum are specified when the button is created. If the button is clicked near its right edge, then the button’s value is increased. If the button is clicked near its left edge, then the button’s value is decreased. (The display of “0š” below the button is managed separately and, according to the specifications for the “Globe” button, can vary from -179° to +180°.) The button is also specified to have medium acceleration, meaning that the value changes more and more quickly the longer the button is pressed. (An acceleration rate can be specified as slow, medium, or fast.) The “Globe” button is created by a single line of code:

NewPictButton( GlobeButton, 410, 153, GlobeIcon, 
 picbutRepeatEvents + picbutAutoValueChg + 
 picbutScaleMedAccel + picbutValueWrap + 
 picbutLeftRightSplit + picbutSelectAltImage +
 picbutDimUsingWhite, enabled, notSelected, -179, 0, 180);

Figure 11. Large text fields

Most of the style settings here are specified as symbolic names. The button’s ID (GlobeButton) is a unique value that identifies the button whenever it is referenced. The Demo program defines the GlobeButton symbol as the value 16. The icon for the button can be anything you want and is indicated by the GlobeIcon symbol, which is defined to refer to a 'cicn' resource of 460. The 410 and 153 values refer to the left and top positions of the button, and the numeric values in the last three arguments refer to the minimum, initial, and maximum values that the button can contain.

Figure 10 also shows an ON/OFF button whose caption changes whether it is on or off and also a toggle-switch which changes its appearance depending upon whether it is clicked to the left or right. It’s safe to say that the figure illustrates only a few of the multitude of picture button possibilities.

Some applications require text fields that exceed the standard 255 character-width provided by Str255 variables. The Tools Plus libraries provide text fields that are up to 32K characters in width. These are illustrated by Figure 11. You can display panes that contain quite large text fields. The lower pane in the figure illustrates a field that has both vertical and horizontal scroll bars. Each of the text panes has its own font, size, style, color, and justification. The horizontal scroll bar can occupy the entire width of the window, or it can be offset by any multiple of fifteen pixels, from 15 to 225. The offset is from the left edge of the window. There are so many options with each of these elements that it’s impossible to list all of the features here.

Figure 12. Panels and a 3D look

Water’s Edge saved the best window for last in its Demo menu; it shows how 3D panels can be used to spruce up your user interface (Figure 12). I like the raised and inset panels best. This figure shows how button groups and lists with a variety of appearances can be created easily by using the Tools Plus libraries. Once again, each of the elements in the figure was created with a single statement in the Demo program’s source code; this is clear testimony to the power of the libraries.

There are more features shown in the Demo program than are pictured here. Tools Plus provides floating palettes that are oriented either horizontally or vertically, and also tool bars that nestle directly under the menu bar in your application. All in all, it’s an incredibly rich collection of tools.

The product comes with a 392-page printed spiral-bound manual. It’s comprehensive and well written, and includes prototypes (in both C and Pascal) for calling the functions, plus examples and tips. It’s really good. And you also have the source code for the Demo application to compare against the manual’s explanations. Water’s Edge also provides source code tutorial samples illustrating how to create a “Hello World” application, plus buttons and panels, list boxes, editing fields, pop-up menus, picture buttons, tool bars and floating palettes, and so on. Each tutorial project is simple enough that the relevant features are all in one place.

SuperCDEFs Too!

Water’s Edge also offers a set of custom CDEFs (control definition resources) called SuperCDEFs, implementing many of the custom features of the Tools Plus libraries. As stated earlier, this product is available separately or with the purchase of a Tools Plus Development Kit for any of the listed development environments (not with an academic discount). To paraphrase the SuperCDEFs User’s Manual, it consists of a collection of high-quality contemporary controls, designed and implemented by professional Macintosh developers to be as reliable as Apple’s controls, and just as easy to use. The SuperCDEFs offer a range of styles, from subtle improvements over Apple’s own to a bold 3D appearance.

The CDEFs are arranged in categories encompassing buttons, tabs, sliders, and thermometer controls. 68K, native PPC, and fat versions of the controls are offered. The SuperCDEFs product comes with a comprehensive online user’s manual. I didn’t have a chance to test the CDEFs.

OK, They Did it, But Can I?

I think the answer to this question is: Maybe. It all depends on how much effort you are willing to put into learning the Tools Plus library functions.

One thing you’ll have to get used to is that the Tools Plus libraries provide a higher-level event loop called PollSystem that returns the current event in a special Poll structure. This lets the loop identify directly the element for which the event is destined, rather than requiring you to deal with mouse coordinates, “control parts,” or the like. The Tools Plus manual provides only one example of the main event loop, but it is in Pascal, rather than in both C and Pascal. Water’s Edge didn’t also provide a single library function to initialize the various toolbox managers, so you will have to start your application with the usual toolbox initialization calls. You also have to initialize the Tools Plus components with a call to InitToolsPlus. None of this is hard.

More important, there is no graphical interface for designing the interface. You have to design on graph paper, estimating coordinate values for the various elements - because, instead of using resources to describe the various controls, Water’s Edge requires that you include coordinates and sizes inside the function calls. This also has implications for “tweaking” the interface as the program design progresses - this involves modifying the code and not just the parameters of a resource.

The folks at Water’s Edge are aware of all this, and are currently working on a project code-named “Anthem” that will offer a MacDraw-like user interface design capability, and then generate source code targeted directly at the Tools Plus library function call interfaces. If this sounds like another AppMaker or Visual Architect tool to you, Water’s Edge is quick to point out that their objective is to reduce the complexity and volume of source code in a project, and this includes source code in a class library or code generated by an application builder. We’ll have to wait until the end of 1996 to see what Water’s Edge has in store for us in this regard.

In the meantime, if you are interested in developing applications that have “quality” written all over them, then Tools Plus is for you. It will take some time to get used to writing functions rather than using resources, but the result will be worth the effort. I tested both the CodeWarrior and Symantec versions of the product and found each of them to work perfectly. If I wasn’t hard at work on another book project at this time, I’d be very tempted to write a program using the Tools Plus product.

Water’s Edge Software, 2441 Lakeshore Road West, Box 70022, Oakville, Ontario, Canada, L6L 6M9.

Phone: 1-416-219-5628 Fax: 1-905-847-1638

WaterEdg@interlog.com

http://www.interlog.com/~wateredg

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

VirtualBox 5.1.10 - x86 virtualization s...
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers... Read more
Pixa 1.1.9 - Quickly and easily organize...
Pixa is an image-organizing application. The new app functions well, is easy to use, and helps people organize their images quickly and easily on their computers. For those who prefer not to use the... Read more
Civilization VI 1.0.1 - Next iteration o...
Sid Meier’s Civilization VI is the next entry in the popular Civilization franchise. Originally created by legendary game designer Sid Meier, Civilization is a strategy game in which you attempt to... Read more
Google Chrome 55.0.2883.75 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
Chromium 55.0.2883.75 - Fast and stable...
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all Internet users to experience the web. Version 55.0.2883.75: Security fixes: High CVE-2016... Read more
Luminar 1.0.2 - Powerful, adaptive, conf...
Luminar is the new full-featured image editor that adapts to the way you edit photos. Over 300 essential tools to fix, edit, and enhance your photos with comfort. The future of photo editing is here... Read more
Slack 2.3.3 - Collaborative communicatio...
Slack is a collaborative communication app that simplifies real-time messaging, archiving, and search for modern working teams. Version 2.3.3: Fixed window zoom jumping back-and-forth OS X 10.9... Read more
WhatRoute 2.0.10 - Geographically trace...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more
Luminar 1.0.2 - Powerful, adaptive, conf...
Luminar is the new full-featured image editor that adapts to the way you edit photos. Over 300 essential tools to fix, edit, and enhance your photos with comfort. The future of photo editing is here... Read more
WhatRoute 2.0.10 - Geographically trace...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more

Latest Forum Discussions

See All

Amateur Surgeon 4 Guide: Become the worl...
It's time to wield your trusty pizza cutter again, as Amateur Surgeon has returned with a whole fresh set of challenges (and some old, familiar ones, too). Starting anew isn't easy, especially when all you have at your disposal is a lighter, the... | Read more »
Le Parker: Sous Chef Extraordinaire (Ga...
Le Parker: Sous Chef Extraordinaire 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: | Read more »
Telltale Games really is working on a Gu...
Telltale Games' next episodic adventure is indeed Guardians of the Galaxy. A document tied to the voice actors strike suggested that the project was in the work, but now we have direct confirmation following an announcement at the Game Awards that... | Read more »
Amateur Surgeon returns to iOS and Andro...
Amateur Surgeon and its two sequels disappeared from the App Store some time and it was sad days for all. But now, just in time for the holidays, the Adult Swim favorite makes its joyous return in the shape of Amateur Surgeon 4, a remake with... | Read more »
The best board games on mobile
Sometimes you need to ditch all of the high speed, high action games in favor of something a little more traditional. If you don't feel like parting ways from your mobile device, though, there are still plenty of ways to get that old-school fix.... | Read more »
The best Facebook Messenger Instant Game...
Facebook's new Instant Games is now here, meaning you can play games with your friends directly via Facebook. It's a fun new way to connect with friends, of course, but it's also proving to be a solid gaming experience in its own right, with a... | Read more »
You can now play game's on Facebook...
Facebook launched its new Instant Games platform in an exciting new attempt to engage its user base. As a result, you can now play a number of different games directly through Facebook Messenger. All of these games run with HTML5, meaning you play... | Read more »
Apollo Justice Ace Attorney (Games)
Apollo Justice Ace Attorney 1.00.00 Device: iOS Universal Category: Games Price: $.99, Version: 1.00.00 (iTunes) Description: Court Is Back In Session Star as rookie defense attorney, Apollo Justice, as he visits crime scenes,... | Read more »
KORG iWAVESTATION (Music)
KORG iWAVESTATION 1.0 Device: iOS Universal Category: Music Price: $19.99, Version: 1.0 (iTunes) Description: A revolutionary new world of sound.The Wave Sequence Synthesizer for iPad - KORG iWAVESTATION | Read more »
Don't Grind Guide: Tips for becomin...
Don’t Grind is a surprising, derpy little one touch game with fun hand-drawn graphics. The goal is simple -- get the high score without being chopped to bits. That can be tough when you’re not used to the game, and that’s compounded by the fact... | Read more »

Price Scanner via MacPrices.net

13-inch Silver Touch Bar MacBook Pro in stock...
Amazon has the new 2016 13″ 2.9GHz/256GB Silver Touch Bar MacBook Pro (MLVP2LL/A) in stock today and on sale for $1749 including free shipping. That’s $50 off MSRP, and it’s the lowest price... Read more
Parallels Toolbox 1.3 for Mac Offers 25 Singl...
Parallels has launched Parallels Toolbox 1.3 for Mac, an upgrade that adds five new utilities to the stand-alone application which was released in August and is available exclusively online at http... Read more
OWC Mercury Elite Pro Dual mini Ultra-Portabl...
OWC has introduced the new OWC Mercury Elite Pro Dual mini, a powerful yet ultra-portable dual-drive RAID solution. The new Mercury Elite Pro Dual mini packs phenomenal performance into a small... Read more
Clearance 13-inch Retina MacBook Pros availab...
B&H Photo has clearance 2015 13″ Retina Apple MacBook Pros available for up to $200 off original MSRP. Shipping is free, and B&H charges NY tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro: $... Read more
Roundup of 2016 13-inch 2.0GHz MacBook Pro sa...
B&H has the non-Touch Bar 13″ MacBook Pros in stock today for $50-$100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.0GHz MacBook Pro Space Gray (MLL42LL/A): $1449 $... Read more
New 13-inch 2.0GHz Space Gray MacBook Pro in...
Adorama has the new 13″ 2.0GHz Space Gray MacBook Pro (non-Touch Bar, MLL42LL/A) in stock for $1499 including a free 3-year AppleCare Protection Plan. Shipping is free, and Adorama charges sales tax... Read more
Finnair Adopts iOS Enterprise iPad Apps from...
Finnair and IBM have announced a first-of-its-kind agreement to utilize iOS enterprise apps from IBM to support the airline’s overall digital transformation. Finnair is focused on Asia-Europe traffic... Read more
Tech21 Launches Evo Go iPhone 7 Case Availabl...
Tech21 has announced the launch of the Evo Go case for Apple iPhone 7 and iPhone 7 Plus, exclusively at T-Mobile. Available online and at participating T-Mobile stores nationwide, Evo Go cases start... Read more
Apple Turns (RED) with More Ways to Join the...
In recognition of World AIDS Day, Apple is offering more ways than ever for customers to join (RED) in its mission to create an AIDS-free generation. Apple is the worlds largest corporate contributor... Read more
Deals on new 15-inch Touch Bar MacBook Pros,...
B&H Photo has new 2016 Apple 15″ Touch Bar MacBook Pro models in stock today with some available for $50 off MSRP, each including free shipping plus NY sales tax only: - 15″ 2.7GHz Touch Bar... Read more

Jobs Board

*Apple* Brand Ambassador (Macy's) - The...
…(T-ROC), is proud of its unprecedented relationship with our partner and client, APPLE ,in bringing amazing" APPLE ADVOCATES"to "non" Apple store locations. Read more
US- *Apple* Store Leader Program - Apple (Un...
…Summary Learn and grow as you explore the art of leadership at the Apple Store. You'll master our retail business inside and out through training, hands-on Read more
*Apple* Retail - Multiple Positions- White P...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Automotive Detailer - *Apple* Used Autos -...
We are currently conductinginterviews and will be accepting applications for a part-time detailer. Apple Used Autos is a great place to work andstart a career. We Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.