Dr. Dobb's, September 1996
User Interfaces
Additional resources (listings and source code) for
the articles below can be found here.
Goal-Directed Software Design
Alan Cooper
Goal Direction is the design methodology GUI guru Alan Cooper devised to cut through the confusion surrounding software-design problems. Using examples from his own design projects, Alan shows how Goal Direction lets you synthesize solutions that would otherwise never have been possible.
Customizing the Explorer Open Dialog
Al Williams
Windows 95 uses a special open dialog that allows users to rename files, create directories, and (of course) open files. Al shows how to customize this dialog, using a Delphi 2.0 component.
Creating Shaped UI Objects
Steve Sipe
CShape, the C++ class Steve presents here, lets you create and manage custom windows, custom controls, and shaped dialog boxes. He then uses the class to build sticky-note and stellar calculator user interfaces.
Writing User Definable GUI's
Troy A. Schauls
User-defined screens let users create and modify data-entry screens. This ability is possible if you use Visual Basic forms that are created, parsed, and compiled into a proprietary format, with only a "system form" in the app's executable file.
The Java Abstract Window Toolkit
Anil Hemrajani
Anil examines the Java Abstract Window Toolkit (AWT), a portable GUI class library for developing applications and applets. He then builds a text-editor application for Windows 95 and Solaris, along with an applet for Windows 95.
Data Compression with the Burrows Wheeler Transform
Mark Nelson
The Burrows Wheeler Transform is an algorithm that takes a block of data and rearranges it using a sorting algorithm. The resulting output block is extremely well-suited for compression.
A Process Group Manager for OS-9
Peter C. Dibble
This file manager lets you adapt the OS-9 real-time operating system's I/O system to provide non-I/O services.
Implementing a Web Shopping Cart
Chris Baron
Bob Weil
Our authors examine the components of an online catalog, focusing on a virtual shopping-cart system and ways around the shortcomings of HTTP. They then present an online-catalog system implemented in Perl.
Examining the InstallShield SDK Edition
Joseph Hlavaty
Joe builds a standardized installation/distribution methodology using the InstallShield integrated installation/distribution program, versions of which are included with Visual C++ 4.1, Visual Basic 4.0, Borland C++ 5.0, Delphi 2.0, Paradox 7.0, and Optima++.
Java, JFactory, and Network Development
Jim Boyce
JFactory is a cross-platform screen painter, prototyper, and code generator for Java that lets you concentrate on the design and functionality of your GUI by generating AWT source code. Eldon uses it to build an Internet-based client/server Java application.
Programming Paradigms
Michael Swaine
Michael strides forth into the field of software design.
C Programming
Al Stevens
This month, Al answers the fundamental C++ programming questions he posed in August.
Java Q&A
Clif Berg
What do you do if the Java AWT's layout managers won't let you build the kind of UI you need? You write your own layout manager, of course, and Cliff shows you how.
Algorithm Alley
Edward Sitarski
To overcome the limitations of variable-length arrays, Edward created a data structure that has the fast constant-access time of an array, but avoids copying elements when it grows. He calls this structure a "Hashed-Array Tree" (HAT) because it combines some of the features of hash tables, arrays, and trees.
Undocumented Corner
Robert R. Collins
How does your program know which Intel processor is the current system CPU? Robert looks at the options, including Intel's PUSHF/POPF technique.
Programmer's Bookshelf
Lou Grinzo
Windows 95 is Lou's focus this month, as he examines Migrating to Windows 95: Programmer's Guide to What's New, by Mark Andrews, and Programming Windows 95, by Charles Petzold and Paul Yao.
Editorial
Jonathan Erickson
Letters
Swaine's Flames
Michael Swaine
Of Interest
Monica E. Berg