Dec 222017
 
Al Steven's DFLAT C programming example from DDJ Version 18.
File DFLT18.ZIP from The Programmer’s Corner in
Category Files from Magazines
Al Steven’s DFLAT C programming example from DDJ Version 18.
File Name File Size Zip Size Zip Type
APPLICAT.C 21829 4721 deflated
BARCHART.C 2080 812 deflated
BOX.C 781 350 deflated
BUTTON.C 2899 937 deflated
CALENDAR.C 4516 1423 deflated
CHECKBOX.C 1385 529 deflated
CLASSDEF.H 793 352 deflated
CLASSES.H 2917 731 deflated
CLIPBORD.C 1369 499 deflated
COMBOBOX.C 4074 1082 deflated
COMMANDS.H 2669 841 deflated
CONFIG.C 18893 1876 deflated
CONFIG.H 1596 673 deflated
CONSOLE.C 6079 1743 deflated
DECOMP.C 2986 1045 deflated
DFALLOC.C 1226 564 deflated
DFLAT.BLD 496 224 deflated
DFLAT.DOC 51145 10842 deflated
DFLAT.H 20640 5279 deflated
DFLAT.LBC 390 202 deflated
DFLATMSG.H 5903 1536 deflated
DIALBOX.C 22663 4303 deflated
DIALBOX.H 1530 642 deflated
DIALOGS.C 8777 1725 deflated
DIRECT.C 5404 1756 deflated
EDITBOX.C 34603 6258 deflated
EDITOR.C 5152 1580 deflated
FILEOPEN.C 5578 1428 deflated
FIXHELP.C 5657 1398 deflated
HELPBOX.C 18709 4560 deflated
HELPBOX.H 409 221 deflated
HTREE.C 2041 644 deflated
HTREE.H 864 332 deflated
HUFFC.C 2830 942 deflated
KEYS.C 1732 511 deflated
KEYS.H 3570 746 deflated
LISTBOX.C 13759 2563 deflated
LISTS.C 3264 798 deflated
LOG.C 1912 800 deflated
MAKEFILE.BCC 3039 974 deflated
MAKEFILE.MSC 2418 816 deflated
MAKEFILE.WAT 2311 728 deflated
MEMOPAD.C 18895 4615 deflated
MEMOPAD.LNK 437 217 deflated
MEMOPAD.TXT 46270 11229 deflated
MENU.C 1864 419 deflated
MENU.H 2115 789 deflated
MENUBAR.C 12508 2932 deflated
MENUS.C 5062 1248 deflated
MESSAGE.C 18676 4443 deflated
MOUSE.C 2244 689 deflated
MSGBOX.C 6262 1535 deflated
NORMAL.C 33322 6476 deflated
PICTBOX.C 8295 1843 deflated
POPDOWN.C 11888 2730 deflated
RADIO.C 3152 1020 deflated
README.DOC 11385 3198 deflated
RECT.C 2612 727 deflated
RECT.H 880 336 deflated
SEARCH.C 5536 1584 deflated
SLIDEBOX.C 3513 1080 deflated
SPINBUTT.C 1634 536 deflated
STATBAR.C 1298 574 deflated
SYSMENU.C 3242 979 deflated
SYSTEM.H 4976 1768 deflated
TEXT.C 1492 575 deflated
TEXTBOX.C 27368 5448 deflated
VIDEO.C 7184 2051 deflated
VIDEO.H 670 316 deflated
WATCH.C 1630 515 deflated
WINDOW.C 15172 3694 deflated

Download File DFLT18.ZIP Here

Contents of the README.DOC file


March, 1994

D-Flat Version 18

The source files in the DFLAT archive constitute the D-Flat windowing
system. This is public domain code. You may use it in your
applications without restriction. You may freely distribute source
code. It would be nice if you would give credit to Dr. Dobb's Journal
as the original publisher of the source code.

The software build procedure makes a program named memopad.exe. It is
a multiple-document notepad program. Observe the #define VERSION
statement in dflat.h. The version number should correspond with the
nn in the DFLTnn.ARC filename that you downloaded. Check the uploads
periodically to see if there is a more recent version available.

My CompuServe ID is 71101,1262. I monitor the DDJFORUM every day and
prefer that you discuss D-Flat there so that every one can benefit
from your comments.

============== Microsoft C 7.0

To build with Microsoft C 7.0, type this command

C>nmake /f makefile.msc

========== Borland C++ 3.0 ============

To build with the Borland C++ 3.1 or 4.0 make utility:

Set the DRIVE macro in the makefile to the drive and directory
where your compiler is installed.

Type this command:

C>make /fmakefile.bcc

========== WATCOM C 8.0 ============

To build with Watcom C 8.0, type this command

C>wmake /f makefile.wat

=======================================================

D-Flat uses Compressed help files. It uses an adaptation of the
Huffman compression programs from the Dr. Dobb's Journal C
Programming Column of early 1991.

The makefile compresses the help file with these commands:

C>huffc memopad.txt memopad.hlp
C>fixhelp memopad.hlp

Both of the programs must be run in order for the help system to work
properly. Note that .hlp files from previous versions are not
compatible with version. The .txt files are, however, so you can use
the huffc and fixhelp programs to rebuild the .hlp file.

===============================================

This is version 18. It fixes these problems:

1. Changing screen modes did not work with all systems.

2. Selecting text and scrolling with the keyboard sent the cursor off
of the screen.

3. The PAINT message did not repaint (clear) the screen after a
CLEARTEXT message.

4. Overhauled the File Open and Save As dialog boxes. Note that these
DBs now return the file name only and have changed the drive and
subdirectory to what the user chooses. The application window saves
and restores the drive and subdirectory on open and close, but your
application needs to know that the log-on could be different after
using the dialog boxes.

5. Added an EDITOR class that manages tabs on input and output. This
class does not do paragraph reforming.

6. Added the wd parameter to the InputBox function.

7. Clicking a box frame in a dialog box disabled the radio buttons,
checkboxes, etc. inside the box.

8. Dialog box unnecessarily repainted when changing focus among controls.

9. Padding blank lines when painting a textbox used a line that was one
character too short.

10. Help windows would be overwritten by the borders of the current
in-focus window.

11. Large help files took a long time to load, particularly on slower
processors. This was because the load process read the entire
compressed database to build an internal list of help windows. I added
a program (fixhelp.c) that puts the list at the end of the database.
The load process now seeks to the end and reads the list instead of
computing it. I removed the feature that let D-Flat applications load
the uncompressed text version of the help file.

12. Added a [*] comment token to the help database. The memopad
doesn't use it, but Quincy does. A program can call the HelpComment
function to retrieve a pointer to a comment associated with the
specified help window. The Quincy tutorial uses it to record script
commands associated with specific tutorial help windows.

13. The Search and Replace code did not work properly if you tried to
replace, for example, "void" with "(void)" and chose to change every
occurrence. The program went into a loop replacing first "void" with
"(void)", then "(void)" with "((void))", and so on.

14. Removed much of the heap usage in the helpbox window.
Applications would sometimes crash unexpectedly upon exit after you
used a lot of help window navigation. These changes seem to have
corrected the problem and made the code simpler, too.

----------------------------------------------------------------------
Calendar of D-Flat Source Code Published in the C Programming Column

1991 1992
May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct
APPLICAT.C x
BARCHART.C x
BOX.C x
BUTTON.C x
CALENDAR.C x
CHECKBOX.C x
CLASSDEF.C x
CLASSDEF.H x
CLASSES.H x
CLIPBORD.C x
COMBOBOX.C x
COMMANDS.H x
CONFIG.C x x
CONFIG.H x x
CONSOLE.C x
DECOMP.C x
DFLAT.H x x
DFLATMSG.H x
DIALBOX.C x
DIALBOX.H x
1991 1992
May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct
DIALOGS.C x
DIRECT.C x
EDITBOX.C x
FILEOPEN.C x
HELPBOX.C x
HTREE.C x
HTREE.H x
HUFFC.C x
KEYS.C x
KEYS.H x
LISTBOX.C x
LISTS.C x
LOG.C x
MEMOPAD.C x
MENU.C x
MENU.H x
MENUBAR.C x
MENUS.C x
MESSAGE.C x
MESSAGE.H x
1991 1992
May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct
MOUSE.C x
MSGBOX.C x
NORMAL.C x
PICTBOX.C x
POPDOWN.C x
RADIO.C x
RECT.C x
RECT.H x
SEARCH.C x
SLIDEBOX.C x
SPINBUTT.C x
STATBAR.C x
SYSMENU.C x
SYSTEM.H x
TEXT.C x
TEXTBOX.C x
VIDEO.C x
VIDEO.H x
WATCH.C x
WINDOW.C x x


---------------------------------------------------------------------
Calendar of D-Flat Topics in the C Programming Column

1991
May: Low-level keyboard, mouse, and screen functions
June: Classes, configuration
July: Event collection, message passing
August: Window driver
September: Defining dialog boxes, menus, keys
October: Commands, messages, rectangles, example application
November: The NORMAL window class
December: The TEXTBOX window class

1992
January: The EDITBOX window class
February: The PICTUREBOX window class, the Clipboard, text searching
March: The LISTBOX window class and message logging
April: The MENUBAR and POPDOWN window classes, the system menu
May: The APPLICATION window class
June: The DIALBOX window class
July: The ERRORBOX, and MESSAGEBOX window classes,
BUTTON, RADIOBUTTON, CHECKBOX, COMBOBOX, SPINBUTTON controls
August: Annual C issue. Discusses a Pen-based version of D-Flat
September: The HELPBOX window class
October: Help Database compression, File Open and File Save dialog boxes.
November: Official launch of D-Flat++

Buy back issues or the CD-ROM from Miller-Freeman to get the complete D-Flat
narrative from May '91 to October '92. These columns describe the
development of D-Flat and serve as a tutorial on its use. The D-Flat
reference manual is DFLAT.DOC.





 December 22, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)