Trumphurst Ltd.


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 Borland C++.

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 call.
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 out attractively.
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 time.

For more information on any of Trumphurst's products and services, please

This page, and all contents, are Copyright © 1997-2017 by
Trumphurst Ltd.
The Willows
St. Martins Moor
SY10 7BH
Contact us is hosted by JumboCruiser.