1991 17.11 1993

Vol.17 n°11 (#194) november 1992

(ddj_1992_11.jpg)

p.8 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.18 SIZING UP GUI TOOLKITS

[author : Ray Valdes]

Last month, Ray got some expert programmers to show what object-oriented application frameworks can do with a simple graphics application. This month, he applies the same approach to GUI Toolkits.

p.30 PIE MENUS FOR WINDOWS

[author : Carl Rollo]

Circular pie menus are faster and more accurate than the now-familiar linear menus. Carl presents five functions that enable you to implement pie menus for Windows, using the "owner draw" features in the Windows API.

p.40 DYNAMIC DIALOG BOXES AND C++

[author : Robert Sardis]

There are many times when a dialog box's specification is only known at run time. Bob shows how C++ constructs can simplify an existing C-based approach to dynamic dialogs.

p.46 GARBAGE COLLECTION FOR C PROGRAMS

[author : Giuliano Carlini and Susan Redina]

Garbage collection, which liberates you from needing to explicitly free memory, is used by languages like Lisp and Smalltalk. In this article, our authors show you how to implement conservative, yet efficient, collection techniques in C.

p.52 DESIGNING C++ CLASSES

[author : Steven Sinofsky]

To maintain the consistent semantics of C++, a number of functions are required for each C++ class. This article details the four functions that C++ generates when your program does not provide definitions for them: default constructor, copy constructor (or copy initializer), destructor, and assignment operator.

p.58 DESIGNING PORTABLE USER INTERFACES

[author : John L. Bradberry]

The UI is one of the most important design issues to consider when porting applications from one platform to another. John discusses UI design strategies and software-engineering techniques he implemented when porting a DOS application to UNIX.

p.64 CONVERTING DITHERED IMAGES BACK TO GRAY SCALE

[author : Allen Stenger]

Information loss in dithering generally makes it possible to recover the original black-and-white image from a dithered image unless you "undither" it.

p.192 EXTENDING TURBO VISION

[author : Scott Nichol]

Scott enhances Borland's Turbo Vision by creating a method to extend event generation, which can be used to perform periodic or background functions.

EMBEDDED SYSTEMS

p.70 DESIGNING A REAL-TIME DEBUGGER

[author : David Potter]

Intel's iRMX for Windows makes it possible for you to write real-time, deterministic applications for single-tasking DOS or cooperative multitasking Microsoft Windows.

p.80 TIME DILATION AND RELATIVISTIC DEBUGGING

[author : Edward N. Adams III]

Debugging some programs is made a lot easier when you use compact, graphic displays.

NETWORKED SYSTEMS

p.86 DEBUGGING MOTIF WIDGETS

[author : Kamran Husain]

Using test drivers simplifies the process of debugging motif widgets. Kamran presents one such test driver and discusses some of the common debugging pitfalls.

EXAMINING ROOM

p.94 EXAMINING TURBO PASCAL FOR WINDOWS

[author : Michael Floyd]

Mike develops a general-purpose expert-system shell to see how Borland's Turbo Pascal for Windows measures up as a Windows programming tool.

PROGRAMMER'S WORKBENCH

p.102 DEVELOPING A PORTABLE C++ GUI CLASS LIBRARY

[author : Andreas Meyer]

Where would you start if you had to write a portable application for Windows, Presentation Manager, Motif, Open Look, and the Macintosh?

COLUMNS

p.151 PROGRAMMING PARADIGMS

[author : Michael Swaine]

What, Michael worry? You bet, especially when it comes to user-interface rights, wrongs, and usability.

p.157 C PROGRAMMING

[author : Al Stevens]

D-Flat++ is a class library that implements the features necessary to launch a single-user, single-document application, while supporting CUA menus, dialog boxes, and controls.

p.165 STRUCTURED PROGRAMMING

[author : Jeff Duntemann]

Software design means different things to different kinds of applications. Jeff investigates the issues surrounding program specification, design, and implementation.

p.171 GRAPHICS PROGRAMMING

[author : Michael Abrash]

Run-slice line drawing gains its efficiency by taking maximum advantage of available information, while minimizing redundant work. The result is high-performance graphics.

p.179 PROGRAMMER'S BOOKSHELF

[author : Ray Duncan]

Ray has high praise for fellow columnist Andrew Schulman's Undocumented Windows.

FORUM

p.10 LETTERS

[author : you]

p.208 SWAINE'S FLAMES

[author : Michael Swaine]

PROGRAMMER'S SERVICES

p.200 OF INTEREST

[author : Tami Zemel]