C++ Class library providing a Windows-like user
interface for DOS text mode programs
DosTMUit++ is a DOS Text mode user interface toolkit for use with Zortech C++ and
The toolkit is designed to enable C++ programmers to add a CUA-compliant user
interface to their programs without getting involved in screen coordinates and other messy
details. The programmer merely states which interface objects are required, and how
they are to be placed on the screen in relation to each other. Those familiar with the
ET++ toolkit for the X windows system under Unix will get the general idea.
Facilities provided include
- A class documentation facility which will generate a large text file from the source
code giving details of every class, structure, enum and extern in the toolkit. This
program will also work on your own C++ source code. Source is provided.
- Generic Collection, Stack and Queue classes, with Iterators.
- These are used extensively in the toolkit itself, but are also available to hold
collections of objects in your own code.
- Powerful run-time debugging, heap checking and inspection facilities.
- This includes switchable debugging options which can provide verbose output
detailing every operation that happens within the toolkit. Also included is a base
class which enables run-time checking to ensure objects are not referenced before
construction or after deletion. Finally, a powerful object inspection facility is
provided, enabling the internal details of any visible object to be popped up on the
screen at the click of a mouse. All three of these debugging tools can be disabled
with #defines, removing all run-time overhead in production code.
- These include RadioButtons, CheckButtons and ActionButtons.
- Dialog control buttons
- Used for terminating dialogs. Include CloseButtons, CancelButtons,
CloseEditButtons and ApplyEditButtons. These can be used to automatically
validate and update information input into TextEdits and other EditControls.
- Text items
- Used for displaying prompts etc. on screen. Formatting, such as CenterText,
RightText, FixedText and Multi-line text is also supported.
- Date and Time classes
- Used to hold and translate between various time and date formats.
- Including editors for strings, integers, Dates, Times, file and directory names, used
for obtaining user input. TextEdits can easily be extended to form combo boxes -
the FileEdit and DirectoryEdit classes use this facility to provide a pop-down list of
all (or selected) files or directories.
- Boxes, Lines and Spacing objects.
- These may be used to divide other objects within a Dialog or Window.
- An extendable generic Command class
- Used to allow type-safe message passing between arbitrary objects. This is a
good example of the use of "Functors".
- An extendable EventQueue, EventSource and Event system
- Includes predefined EventSources for mouse and keyboard input, interrupt handler
and critical error handler. User-defined Command objects may also be passed
through the event queue.
- Menus, MenuButtons, MenuBars and Options
- Used to implement CUA compliant menu selection. Options can be created to
access global or static functions (though a function pointer), or to execute a user-
defined Command object.
- Select, Confirm and Alert functions
- These obtain selection, Yes/No or OK input from the user with a single function
- Windows, SubWindows and PopWindows.
- These normally contain other objects which display themselves within the window.
- Dialog boxes
- Both modal and non-modal dialog boxes are supported.
- Used for display and selection of lists of objects. Lists are used as the basis of the
pop-down part of combo boxes and for pop- down menus, but may also be used
directly in Dialogs or Windows.
- Clusters for automatic layout of objects on the screen.
- Vertical (VCluster) and horizontal (HCluster) clusters can be arbitrarily nested to
arrange objects in a neat fashion without fiddling with screen coordinates or dialog
editors. Clusters may be laid out in a number of ways (centered, left or right
aligned, or expanded). This is a very useful concept to programmers who want to
concentrate on their code, rather than fiddling with detailed organisation of objects
on screen. It is particularly useful during the development phase, as new objects
may be inserted anywhere in a Cluster, and the toolkit will take care of laying them
- A full context-sensitive, hypertext on-line help system.
- To add help to a system, a simple ASCII text file is written and compiled with the
provided help compiler, and help is automatically available on the F1 key. A
standard Help menu may also be included on the main menu bar.
- A Panel class for the standard CUA panel
- Includes menu bar, drop-down menus and client area.
- A Screen class.
- All screen output passes through this class, which only needs to provide low-level
primitive screen display functions. This class is designed to be easily replaced for
portability to other platforms, including Unix curses.
DosTMUit++ is Copyright © Trumphurst Ltd. I have made it available on the Internet for
personal use only. Please do not use it in a commercial situation (except for testing to see
if it is suitable) without first obtaining permission by contacting us.
Trumphurst Ltd. reserve the right to remove the program from public distribution at any
For more information on any of Trumphurst's products and services, please
- Contact us using our contact form
- Phone us at +44 1691 659510
(In the U.K., replace "+44" with "0". Elsewhere,
replace "+" with your international dialling code.)
This page, and all contents, are Copyright © 1997-2020 by
St. Martins Moor
www.trumphurst.com is hosted by JumboCruiser.