Category : C++ Source Code
Archive   : ZINCDEMO.ZIP
Filename : ZINCDEMO.CPP

 
Output of file : ZINCDEMO.CPP contained in archive : ZINCDEMO.ZIP
// Zinc Application Framework 3.5 Demonstration - ZINCDEMO.CPP
// COPYRIGHT (C) 1990-1993. All Rights Reserved.
// Zinc Software Incorporated. Pleasant Grove, Utah USA

#include
#include
#if defined(ZIL_PENDOS)
#include
#endif
#define USE_HELP_CONTEXTS
#include "zincpost.hpp"

UIW_WINDOW *_sampleWindow = NULL;
UIW_WINDOW *demoWindow = NULL;
UIW_TEXT *_information = NULL;
UI_STORAGE *_storage = NULL;
char *message = "Zinc 3.5 Demonstration.";

void HelpInformation(const char *helpName)
{
if (!_storage)
return;

_storage->ChDir("~UI_HELP");
UI_STORAGE_OBJECT hFile(*_storage, helpName, ID_HELP_CONTEXT, UIS_READ);
if (!hFile.objectError)
{
char *message; // Read the help context title.
hFile.Load(&message);
delete message;
hFile.Load(&message); // Read the help context.
_information->DataSet(message);
delete message;
}
}

EVENT_TYPE About(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode != L_SELECT)
return (ccode);

// Compute the window region.
UI_DISPLAY *display = object->display;
int width = 42;
int height = display->isText ? 7 : 6;
int left = (display->columns / display->cellWidth - width) / 2;
int top = (display->lines / display->cellHeight - height) / 2;

UIW_WINDOW *window = new UIW_WINDOW(left, top, width, height, WOF_NO_FLAGS, WOAF_MODAL | WOAF_NO_SIZE);
*window
+ new UIW_BORDER
+ &(*new UIW_SYSTEM_BUTTON
+ new UIW_POP_UP_ITEM("&Move", MNIF_MOVE)
+ new UIW_POP_UP_ITEM("&Close\tAlt+F4", MNIF_CLOSE))
+ new UIW_TITLE("About...");
if (display->isText)
*window
+ new UIW_STRING(2, 1, 32, message, 100, STF_NO_FLAGS, WOF_NON_SELECTABLE | WOF_JUSTIFY_CENTER);
else
*window
+ new UIW_ICON(3, 1, "minIcon")
+ new UIW_STRING(8, 1, 32, message, 100, STF_NO_FLAGS, WOF_NON_SELECTABLE | WOF_JUSTIFY_CENTER);
*window
+ new UIW_BUTTON(15, height - 3, 10, "~OK",
BTF_NO_TOGGLE | BTF_AUTO_SIZE | BTF_SEND_MESSAGE,
WOF_JUSTIFY_CENTER, NULL, S_CLOSE);
object->windowManager->Add(window);
return (ccode);
}

EVENT_TYPE Exit(UI_DISPLAY *display, UI_EVENT_MANAGER *, UI_WINDOW_MANAGER *windowManager)
{
// Compute the window region.
int width = 44;
int height = display->isText ? 7 : 6;
int left = (display->columns / display->cellWidth - width) / 2;
int top = (display->lines / display->cellHeight - height) / 2;

// Create the exit window.
char *message = "This will close the demonstration.";
UIW_WINDOW *window = new UIW_WINDOW(left, top, width, height,
WOF_NO_FLAGS, WOAF_MODAL | WOAF_NO_SIZE);
*window
+ new UIW_BORDER
+ &(*new UIW_SYSTEM_BUTTON
+ new UIW_POP_UP_ITEM("&Move", MNIF_MOVE)
+ new UIW_POP_UP_ITEM("&Close\tAlt+F4", MNIF_CLOSE))
+ new UIW_TITLE(message);
if (display->isText)
*window
+ new UIW_STRING(4, 1, 36, message, 100, STF_NO_FLAGS, WOF_NON_SELECTABLE | WOF_JUSTIFY_CENTER);
else
*window
+ new UIW_ICON(2, 1, "ASTERISK")
+ new UIW_STRING(8, 1, 32, message, 100, STF_NO_FLAGS, WOF_NON_SELECTABLE | WOF_JUSTIFY_CENTER);
*window
+ new UIW_BUTTON(10, height - 3, 10, "~OK",
BTF_NO_TOGGLE | BTF_AUTO_SIZE | BTF_SEND_MESSAGE,
WOF_JUSTIFY_CENTER, NULL, L_EXIT)
+ new UIW_BUTTON(22, height - 3, 10, "~Cancel",
BTF_NO_TOGGLE | BTF_AUTO_SIZE | BTF_SEND_MESSAGE,
WOF_JUSTIFY_CENTER, NULL, S_CLOSE);
*windowManager + window;
return (S_CONTINUE);
}

EVENT_TYPE Error(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
demoWindow->helpContext = HELP_ERROR_SYSTEM;
object->errorSystem->ReportError(object->windowManager, WOS_UNANSWERED,
"This window is used to present error information.");
}
return (ccode);
}

EVENT_TYPE Help(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
EVENT_TYPE value;
object->Information(GET_VALUE, &value);
object->helpSystem->DisplayHelp(object->windowManager,
(UI_HELP_CONTEXT)value);
}
return (ccode);
}

EVENT_TYPE ButtonWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
if (_sampleWindow->display->isText)
{
*_sampleWindow
+ new UIW_BUTTON(10, 2, 9, "OK", BTF_NO_TOGGLE | BTF_AUTO_SIZE)
+ new UIW_BUTTON(10, 4, 9, "Cancel", BTF_NO_TOGGLE | BTF_AUTO_SIZE)
+ new UIW_BUTTON(10, 6, 9, "Help", BTF_NO_TOGGLE | BTF_AUTO_SIZE);
}
else
{
*_sampleWindow
+ new UIW_BUTTON(7, 1, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "hardDrive")
+ new UIW_BUTTON(7, 3, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "softDrive")
+ new UIW_BUTTON(7, 5, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "networkDrive")
+ new UIW_BUTTON(20, 1, 8, "OK", BTF_NO_TOGGLE | BTF_AUTO_SIZE)
+ new UIW_BUTTON(20, 3, 8, "Cancel", BTF_NO_TOGGLE | BTF_AUTO_SIZE)
+ new UIW_BUTTON(20, 5, 10, "Mixed", BTF_NO_TOGGLE | BTF_AUTO_SIZE,
WOF_NO_FLAGS, NULL, 0, "file");
}
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));
HelpInformation("INFO_BUTTON");
}
return (ccode);
}

EVENT_TYPE CheckWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ &(*new UIW_GROUP(8, 1, 22, 5, "Check Box Group", WNF_SELECT_MULTIPLE)
+ new UIW_BUTTON(2, 1, 18, "Check Box A", BTF_CHECK_BOX, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 2, 18, "Check Box B", BTF_CHECK_BOX, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 3, 18, "Check Box C", BTF_CHECK_BOX, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 4, 18, "Check Box D", BTF_CHECK_BOX, WOF_NO_FLAGS));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));
HelpInformation("INFO_CHECK_BOX");
}
return (ccode);
}

EVENT_TYPE ComboWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ &(* new UIW_COMBO_BOX(1, 1, 17, 6)
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL)
+ new UIW_STRING(0, 0, 15, "Combo 1")
+ new UIW_STRING(0, 0, 15, "Combo 2")
+ new UIW_STRING(0, 0, 15, "Combo 3")
+ new UIW_STRING(0, 0, 15, "Combo 4")
+ new UIW_STRING(0, 0, 15, "Combo 5")
+ new UIW_STRING(0, 0, 15, "Combo 6")
+ new UIW_STRING(0, 0, 15, "Combo 7")
+ new UIW_STRING(0, 0, 15, "Combo 8")
+ new UIW_STRING(0, 0, 15, "Combo 9")
+ new UIW_STRING(0, 0, 15, "Combo 10"));
*_sampleWindow
+ &(* new UIW_COMBO_BOX(20, 1, 17, 6, NULL, WNF_NO_WRAP | WNF_BITMAP_CHILDREN)
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL)
+ new UIW_BUTTON(0, 0, 22, "String", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "string")
+ new UIW_BUTTON(0, 0, 22, "F String", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "fmtstr")
+ new UIW_BUTTON(0, 0, 22, "Text", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "text")
+ new UIW_BUTTON(0, 0, 22, "Date", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "date")
+ new UIW_BUTTON(0, 0, 22, "Time", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "time")
+ new UIW_BUTTON(0, 0, 22, "Number", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "number")
+ new UIW_BUTTON(0, 0, 22, "Button", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "button")
+ new UIW_BUTTON(0, 0, 22, "Radio", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "radio")
+ new UIW_BUTTON(0, 0, 22, "Chk Box", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "check")
+ new UIW_BUTTON(0, 0, 22, "Hz List", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "hlist")
+ new UIW_BUTTON(0, 0, 22, "Vt List", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "vlist")
+ new UIW_BUTTON(0, 0, 22, "Combo", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "combo")
+ new UIW_BUTTON(0, 0, 22, "Hz Scroll", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "hscroll")
+ new UIW_BUTTON(0, 0, 22, "Vt Scroll", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "vscroll")
+ new UIW_BUTTON(0, 0, 22, "Window", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "window")
+ new UIW_BUTTON(0, 0, 22, "Tool Bar", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "toolbar")
+ new UIW_BUTTON(0, 0, 22, "Prompt", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "prompt")
+ new UIW_BUTTON(0, 0, 22, "Group", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "group")
+ new UIW_BUTTON(0, 0, 22, "Icon", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "icon"));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));
HelpInformation("INFO_COMBO_BOX");
}
return (ccode);
}

EVENT_TYPE DateWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UI_DATE date;
*_sampleWindow
+ new UIW_PROMPT(1, 1, "Default:")
+ new UIW_DATE(12, 1, 25, &date, NULL)
+ new UIW_PROMPT(1, 2, "Month:")
+ new UIW_DATE(12, 2, 25, &date, NULL, DTF_ALPHA_MONTH)
+ new UIW_PROMPT(1, 3, "Weekday:")
+ new UIW_DATE(12, 3, 25, &date, NULL, DTF_SHORT_MONTH | DTF_SHORT_DAY)
+ new UIW_PROMPT(1, 4, "Slash:")
+ new UIW_DATE(12, 4, 25, &date, NULL, DTF_SLASH)
+ new UIW_PROMPT(1, 5, "Military:")
+ new UIW_DATE(12, 5, 25, &date, NULL, DTF_MILITARY_FORMAT);
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));
HelpInformation("INFO_DATE");
}
return (ccode);
}

class EXPORT FONT_STRING : public UIW_STRING
{
public:
FONT_STRING(int left, int top, int width, char *text, int maxLength,
LOGICAL_FONT _font, STF_FLAGS stFlags = STF_NO_FLAGS,
WOF_FLAGS woFlags = WOF_BORDER | WOF_AUTO_CLEAR) :
UIW_STRING(left, top, width, text, maxLength, stFlags, woFlags) { font = _font; }
virtual ~FONT_STRING(void) { };
};


EVENT_TYPE FontSupport(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ new UIW_PROMPT(1, 1, "System:")
+ new FONT_STRING(10, 1, 27, "ABCDEFGHIJKabcdefghijk", -1, FNT_SYSTEM_FONT,
STF_NO_FLAGS, WOF_NON_SELECTABLE)
+ new UIW_PROMPT(1, 3, "Dialog:")
+ new FONT_STRING(10, 3, 27, "ABCDEFGHIJKabcdefghijk", -1, FNT_DIALOG_FONT,
STF_NO_FLAGS, WOF_NON_SELECTABLE)
+ new UIW_PROMPT(1, 5, "Small:")
+ new FONT_STRING(10, 5, 27, "ABCDEFGHIJKabcdefghijk", -1, FNT_SMALL_FONT,
STF_NO_FLAGS, WOF_NON_SELECTABLE);
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_FONT_SUPPORT");
}
return (ccode);
}

EVENT_TYPE FStringWindow(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ new UIW_PROMPT(1, 2, "Phone #:")
+ new UIW_FORMATTED_STRING(10, 2, 27, "8017858900", "LNNNLLNNNLNNNN", "(...) ...-....")
+ new UIW_PROMPT(1, 3, "Part #:")
+ new UIW_FORMATTED_STRING(10, 3, 27, "ABC1234", "LAAALNNNNL", "[...*0000]")
+ new UIW_PROMPT(1, 4, "Serial #:")
+ new UIW_FORMATTED_STRING(10, 4, 27, "634922", "LLLLLNNNNLNN", "#ZNC-....-..");

_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

EVENT_TYPE value;
object->Information(GET_VALUE, &value);
if (value == HELP_FORMATTED_STRING)
HelpInformation("INFO_FORMATTED_STRING");
else
HelpInformation("INFO_PROMPT");
}
return (ccode);
}

EVENT_TYPE HzListWindow(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UIW_HZ_LIST *list = new UIW_HZ_LIST(1, 1, 36, 5, 12, 1, NULL, WNF_NO_WRAP | WNF_BITMAP_CHILDREN);
*list
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_HORIZONTAL)
+ new UIW_BUTTON(0, 0, 12, "File.1", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.2", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.3", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.4", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.5", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.6", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.7", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.8", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.9", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.10", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.11", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.12", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.13", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.14", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.15", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.16", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.17", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.18", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.19", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file")
+ new UIW_BUTTON(0, 0, 12, "File.20", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "file");
*_sampleWindow + list;
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

EVENT_TYPE value;
object->Information(GET_VALUE, &value);
if (value == HELP_HLIST)
HelpInformation("INFO_HLIST");
else
HelpInformation("INFO_SCROLL_BAR");
}
return (ccode);
}

EVENT_TYPE IconWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ new UIW_ICON(4, 2, "desk")
+ new UIW_ICON(16, 2, "analog")
+ new UIW_ICON(28, 2, "minIcon");
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_ICON");
}
return (ccode);
}

EVENT_TYPE MenuWindow(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UIW_PULL_DOWN_MENU *menu = new UIW_PULL_DOWN_MENU();
*menu
+ &(*new UIW_PULL_DOWN_ITEM("File")
+ new UIW_POP_UP_ITEM("Option 1", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 2", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 3", MNIF_NO_FLAGS, BTF_NO_3D))
+ &(*new UIW_PULL_DOWN_ITEM("Cascade")
+ &(*new UIW_POP_UP_ITEM("Option 1", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 1.1", MNIF_NO_FLAGS, BTF_NO_3D)
+ &(* new UIW_POP_UP_ITEM("Option 1.2", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 1.2.1", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 1.2.2", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 1.2.3", MNIF_NO_FLAGS, BTF_NO_3D)))
+ new UIW_POP_UP_ITEM("Option 2", MNIF_NO_FLAGS, BTF_NO_3D)
+ new UIW_POP_UP_ITEM("Option 3", MNIF_NO_FLAGS, BTF_NO_3D));
*_sampleWindow
+ &(*new UIW_WINDOW(1, 1, 36, 5, WOF_NO_FLAGS, WOAF_NO_MOVE | WOAF_NO_SIZE)
+ new UIW_ICON(0, 0, "minIcon", "Menu Window", ICF_MINIMIZE_OBJECT, WOF_NO_FLAGS)
+ new UIW_BORDER
+ new UIW_MAXIMIZE_BUTTON
+ new UIW_MINIMIZE_BUTTON
+ new UIW_SYSTEM_BUTTON(SYF_GENERIC)
+ new UIW_TITLE("Menu Window")
+ menu);

_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

EVENT_TYPE value;
object->Information(GET_VALUE, &value);
if (value == HELP_WINDOW)
HelpInformation("INFO_WINDOW");
else if (value == HELP_PULL_DOWN_MENU)
HelpInformation("INFO_PULL_DOWN_MENU");
else if (value == HELP_PULL_DOWN_ITEM)
HelpInformation("INFO_PULL_DOWN_ITEM");
else if (value == HELP_POP_UP_MENU)
HelpInformation("INFO_POP_UP_MENU");
else
HelpInformation("INFO_POP_UP_MENU_ITEM");
}
return (ccode);
}

EVENT_TYPE NumberWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UI_BIGNUM number(1234L);
UI_BIGNUM negNumber(-1234L);
*_sampleWindow
+ new UIW_PROMPT(1, 1, "Default:")
+ new UIW_BIGNUM(11, 1, 26, &number, NULL, NMF_NO_FLAGS)
+ new UIW_PROMPT(1, 2, "No decimal:")
+ new UIW_BIGNUM(11, 2, 26, &number, NULL, NMF_DECIMAL(0))
+ new UIW_PROMPT(1, 3, "Currency:")
+ new UIW_BIGNUM(11, 3, 26, &number, NULL, NMF_CURRENCY | NMF_COMMAS)
+ new UIW_PROMPT(1, 4, "Credit:")
+ new UIW_BIGNUM(11, 4, 26, &negNumber, NULL, NMF_CREDIT | NMF_COMMAS | NMF_DECIMAL(0))
+ new UIW_PROMPT(1, 5, "Percent:")
+ new UIW_BIGNUM(11, 5, 26, &number, NULL, NMF_PERCENT | NMF_DECIMAL(0));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_BIGNUM");
}
return (ccode);
}

EVENT_TYPE RadioWindow(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ &(*new UIW_GROUP(8, 1, 22, 5, "Radio Button Group")
+ new UIW_BUTTON(2, 1, 18, "Radio Button 1", BTF_RADIO_BUTTON, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 2, 18, "Radio Button 2", BTF_RADIO_BUTTON, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 3, 18, "Radio Button 3", BTF_RADIO_BUTTON, WOF_NO_FLAGS)
+ new UIW_BUTTON(2, 4, 18, "Radio Button 4", BTF_RADIO_BUTTON, WOF_NO_FLAGS));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

EVENT_TYPE value;
object->Information(GET_VALUE, &value);
if (value == HELP_GROUP)
HelpInformation("INFO_GROUP");
else
HelpInformation("INFO_RADIO_BUTTON");
}
return (ccode);
}

EVENT_TYPE StringWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ new UIW_PROMPT(1, 2, "Name:")
+ new UIW_STRING(10, 2, 27, "Zinc Software Incorporated", 100)
+ new UIW_PROMPT(1, 3, "Address:")
+ new UIW_STRING(10, 3, 27, "405 South 100 East", 100)
+ new UIW_STRING(10, 4, 27, "Pleasant Grove, UT", 100);

_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_STRING");
}
return (ccode);
}

EVENT_TYPE TextWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ &(*new UIW_TEXT(1, 1, 36, 5,
"This is text to demonstrate a \r\n"
"text field with scroll bars. \r\n"
"Word wrap can also be used as \r\n"
"shown below.", 256, WNF_NO_WRAP, WOF_BORDER | WOF_AUTO_CLEAR)
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_CORNER)
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL)
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_HORIZONTAL));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_TEXT");
}
return (ccode);
}

EVENT_TYPE TimeWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UI_TIME time;
*_sampleWindow
+ new UIW_PROMPT(1, 1, "Default:")
+ new UIW_TIME(12, 1, 25, &time, NULL, TMF_NO_FLAGS)
+ new UIW_PROMPT(1, 2, "Hours only:")
+ new UIW_TIME(12, 2, 25, &time, NULL, TMF_NO_MINUTES)
+ new UIW_PROMPT(1, 3, "Seconds:")
+ new UIW_TIME(12, 3, 25, &time, NULL, TMF_SECONDS)
+ new UIW_PROMPT(1, 4, "Hundredths:")
+ new UIW_TIME(12, 4, 25, &time, NULL, TMF_SECONDS | TMF_HUNDREDTHS)
+ new UIW_PROMPT(1, 5, "24 hour:")
+ new UIW_TIME(12, 5, 25, &time, NULL, TMF_TWENTY_FOUR_HOUR);
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_TIME");
}
return (ccode);
}

EVENT_TYPE ToolWindow(UI_WINDOW_OBJECT *, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
*_sampleWindow
+ &(*new UIW_WINDOW(1, 1, 36, 5, WOF_NO_FLAGS, WOAF_NO_MOVE | WOAF_NO_SIZE)
+ new UIW_ICON(0, 0, "minIcon", "Tool Bar Window", ICF_MINIMIZE_OBJECT, WOF_NO_FLAGS)
+ new UIW_BORDER
+ new UIW_MAXIMIZE_BUTTON
+ new UIW_MINIMIZE_BUTTON
+ new UIW_SYSTEM_BUTTON(SYF_GENERIC)
+ new UIW_TITLE("Tool Bar Window")
+ &(*new UIW_TOOL_BAR(0, 0, 0, 0, WNF_NO_WRAP)
+ new UIW_STRING(2, 0, 10, "Default", 100)
+ new UIW_BUTTON(15, 0, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "hardDrive")
+ new UIW_BUTTON(22, 0, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "softDrive")
+ new UIW_BUTTON(29, 0, 5, NULL, BTF_NO_TOGGLE,
WOF_JUSTIFY_CENTER, NULL, 0, "networkDrive")));
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

HelpInformation("INFO_TOOL_BAR");
}
return (ccode);
}

EVENT_TYPE VtListWindow(UI_WINDOW_OBJECT *object, UI_EVENT &, EVENT_TYPE ccode)
{
if (ccode == L_SELECT)
{
_sampleWindow->Destroy();
UIW_VT_LIST *list = new UIW_VT_LIST(1, 1, 17, 5, NULL, WNF_NO_WRAP);
*list
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL)
+ new UIW_STRING(0, 0, 17, "Vt-Item 1", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 2", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 3", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 4", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 5", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 6", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 7", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 8", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 9", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 10", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 11", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 12", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 13", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 14", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 15", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 16", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 17", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 18", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 19", 20, STF_NO_FLAGS, WOF_VIEW_ONLY)
+ new UIW_STRING(0, 0, 17, "Vt-Item 20", 20, STF_NO_FLAGS, WOF_VIEW_ONLY);
*_sampleWindow + list;
list = new UIW_VT_LIST(20, 1, 17, 5, NULL, WNF_NO_WRAP | WNF_BITMAP_CHILDREN);
*list
+ new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL)
+ new UIW_BUTTON(0, 0, 17, "c:\\", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "parentDirectory")
+ new UIW_BUTTON(1, 0, 16, "work", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "parentDirectory")
+ new UIW_BUTTON(1, 0, 16, "docs", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "parentDirectory")
+ new UIW_BUTTON(1, 0, 15, "compiler", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "parentDirectory")
+ new UIW_BUTTON(2, 0, 15, "bin", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory")
+ new UIW_BUTTON(2, 0, 15, "lib", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory")
+ new UIW_BUTTON(2, 0, 15, "include", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory")
+ new UIW_BUTTON(2, 0, 15, "util", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory")
+ new UIW_BUTTON(2, 0, 15, "examples", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory")
+ new UIW_BUTTON(2, 0, 15, "tutor", BTF_NO_3D, WOF_NO_FLAGS, NULL, 0, "childDirectory");
*_sampleWindow + list;
_sampleWindow->Event(UI_EVENT(S_REDISPLAY, 0));

EVENT_TYPE value;
object->Information(GET_VALUE, &value);
if (value == HELP_VLIST)
HelpInformation("INFO_VLIST");
else
HelpInformation("INFO_SCROLL_BAR");
}
return (ccode);
}

static UI_ITEM toolBarItems[] =
{
{ HELP_STRING, VOIDF(StringWindow), "string", 0 },
{ HELP_FORMATTED_STRING, VOIDF(FStringWindow), "fmtstr", 0 },
{ HELP_TEXT, VOIDF(TextWindow), "text", 0 },
{ HELP_DATE, VOIDF(DateWindow), "date", 0 },
{ HELP_TIME, VOIDF(TimeWindow), "time", 0 },
{ HELP_BIGNUM, VOIDF(NumberWindow), "number", 0 },
{ HELP_BUTTON, VOIDF(ButtonWindow), "button", 0 },
{ HELP_RADIO_BUTTON, VOIDF(RadioWindow), "radio", 0 },
{ HELP_CHECK_BOX, VOIDF(CheckWindow), "check", 0 },
{ HELP_HLIST, VOIDF(HzListWindow), "hlist", 0 },
{ HELP_VLIST, VOIDF(VtListWindow), "vlist", 0 },
{ HELP_COMBO_BOX, VOIDF(ComboWindow), "combo", 0 },
{ HELP_SCROLL_BAR, VOIDF(HzListWindow), "hscroll", 0 },
{ HELP_SCROLL_BAR, VOIDF(VtListWindow), "vscroll", 0 },
{ HELP_WINDOW, VOIDF(MenuWindow), "window", 0 },
{ HELP_PULL_DOWN_MENU, VOIDF(MenuWindow), "pllmenu", 0 },
{ HELP_POP_UP_MENU, VOIDF(MenuWindow), "popmenu", 0 },
{ HELP_TOOL_BAR, VOIDF(ToolWindow), "toolbar", 0 },
{ HELP_PROMPT, VOIDF(FStringWindow), "prompt", 0 },
{ HELP_GROUP, VOIDF(RadioWindow), "group", 0 },
{ HELP_ICON, VOIDF(IconWindow), "icon", 0 },
{ HELP_FONT_SUPPORT, VOIDF(FontSupport), "font", 0 },
{ 0, NULL, NULL, 0 }
};

static UI_ITEM listItems[] =
{
{ 0, NULL, "- INPUT OBJECTS -", 0 },
{ HELP_STRING, VOIDF(StringWindow), " String", 0 },
{ HELP_FORMATTED_STRING, VOIDF(FStringWindow), " Formatted String", 0 },
{ HELP_TEXT, VOIDF(TextWindow), " Text", 0 },
{ HELP_DATE, VOIDF(DateWindow), " Date", 0 },
{ HELP_TIME, VOIDF(TimeWindow), " Time", 0 },
{ HELP_BIGNUM, VOIDF(NumberWindow), " Number", 0 },
{ 0, NULL, "- CONTROL OBJECTS -", 0 },
{ HELP_BUTTON, VOIDF(ButtonWindow), " Button", 0 },
{ HELP_RADIO_BUTTON, VOIDF(RadioWindow), " Radio-Button", 0 },
{ HELP_CHECK_BOX, VOIDF(CheckWindow), " Check Box", 0 },
{ HELP_HLIST, VOIDF(HzListWindow), " Hz List", 0 },
{ HELP_VLIST, VOIDF(VtListWindow), " Vt List", 0 },
{ HELP_COMBO_BOX, VOIDF(ComboWindow), " Combo-Box", 0 },
{ HELP_SCROLL_BAR, VOIDF(HzListWindow), " Hz Scroll", 0 },
{ HELP_SCROLL_BAR, VOIDF(VtListWindow), " Vt Scroll", 0 },
{ HELP_WINDOW, VOIDF(MenuWindow), " Window", 0 },
{ 0, NULL, "- MENU OBJECTS -", 0 },
{ HELP_PULL_DOWN_MENU, VOIDF(MenuWindow), " Pull-Down Menu", 0 },
{ HELP_POP_UP_MENU, VOIDF(MenuWindow), " Pop-Up Menu", 0 },
{ HELP_TOOL_BAR, VOIDF(ToolWindow), " Tool Bar", 0 },
{ 0, NULL, "- STATIC OBJECTS -", 0 },
{ HELP_PROMPT, VOIDF(FStringWindow), " Prompt", 0 },
{ HELP_GROUP, VOIDF(RadioWindow), " Group", 0 },
{ HELP_ICON, VOIDF(IconWindow), " Icon", 0 },
{ 0, NULL, "- OTHER OBJECTS -", 0 },
{ HELP_KEYBOARD, VOIDF(Help), " Keyboard", 0 },
{ HELP_MOUSE, VOIDF(Help), " Mouse", 0 },
{ HELP_PEN, VOIDF(Help), " Pen", 0 },
{ HELP_HELP_SYSTEM, VOIDF(Help), " Help System", 0 },
{ HELP_ERROR_SYSTEM, VOIDF(Error), " Error System", 0 },
{ HELP_FONT_SUPPORT, VOIDF(FontSupport), " Font Support", 0 },
{ 0, NULL, NULL, 0 }
};

#if defined(ZIL_MSDOS)
main(int argc, char *argv[])
{
// Set up the storage and display search path.
UI_PATH searchPath(argv[0], TRUE);

UI_DISPLAY *display = NULL;
if (argc <= 1 || (argv[1][1] != 't' && argv[1][1] != 'T'))
{
display = new UI_GRAPHICS_DISPLAY;
// display = new UI_BGI_DISPLAY;
// display = new UI_FG_DISPLAY;
// display = new UI_MSC_DISPLAY;

}
if (!display || !display->installed)
{
if (display)
delete display;
display = new UI_TEXT_DISPLAY;
}
#elif defined(ZIL_MSWINDOWS)
int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR, int nCmdShow)
{
// Set up the storage and display search path.
UI_PATH searchPath;

// Create the display.
UI_DISPLAY *display = new UI_MSWINDOWS_DISPLAY(hInstance, hPrevInstance, nCmdShow);
#elif defined(ZIL_OS2)
main(int argc, char *argv[])
{
// Set up the storage and display search path.
UI_PATH searchPath(argv[0], TRUE);

// Create the display.
UI_DISPLAY *display = new UI_OS2_DISPLAY;
#elif defined(ZIL_MOTIF)
main(int argc, char *argv[])
{
// Set up the storage and display search path.
UI_PATH searchPath;

UI_DISPLAY *display = new UI_MOTIF_DISPLAY(&argc, argv);
#endif

UI_EVENT_MANAGER *eventManager = new UI_EVENT_MANAGER(display);
*eventManager
+ new UID_KEYBOARD
#if defined(ZIL_PENDOS)
+ new UID_PENDOS
#else
+ new UID_MOUSE
#endif
+ new UID_CURSOR;

UI_WINDOW_MANAGER *windowManager = new UI_WINDOW_MANAGER(display,
eventManager, Exit);

UID_KEYBOARD::breakHandlerSet = L_EXIT_FUNCTION;

// Initialize the default storage.
UI_STORAGE::searchPath = &searchPath;
_storage = new UI_STORAGE("zincpost.dat", UIS_READ);
UI_WINDOW_OBJECT::defaultStorage = _storage;

// Attach the error and help systems.
UI_WINDOW_OBJECT::errorSystem = new UI_ERROR_SYSTEM;
UI_WINDOW_OBJECT::helpSystem = new UI_HELP_SYSTEM("zincpost.dat",
windowManager, HELP_GENERAL);

// Check for data file errors.
if (UI_WINDOW_OBJECT::defaultStorage->storageError)
{
UI_WINDOW_OBJECT::errorSystem->ReportError(windowManager,
WOS_NO_STATUS, "Error opening the data file .\n");

delete UI_WINDOW_OBJECT::helpSystem;
delete UI_WINDOW_OBJECT::errorSystem;
delete _storage;
delete windowManager;
delete eventManager;
delete display;

return (1);
}

// Create the main menu and items to add to it.
UIW_PULL_DOWN_MENU *mainMenu = new UIW_PULL_DOWN_MENU;
UIW_PULL_DOWN_ITEM *fileMenu = new UIW_PULL_DOWN_ITEM("~File");
UIW_PULL_DOWN_ITEM *objectMenu = new UIW_PULL_DOWN_ITEM("~Object");
UIW_PULL_DOWN_ITEM *helpMenu = new UIW_PULL_DOWN_ITEM("~Help");

// Add items to the File drop down menu.
*fileMenu
+ new UIW_POP_UP_ITEM("E~xit", MNIF_NO_FLAGS, BTF_SEND_MESSAGE, WOF_NO_FLAGS, NULL, L_EXIT_FUNCTION)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~About...", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, About);

// Create the cascaded menu for Input window objects.
UIW_POP_UP_ITEM *inputItem = new UIW_POP_UP_ITEM("~Input");
*inputItem
+ new UIW_POP_UP_ITEM("~String", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, StringWindow, HELP_STRING)
+ new UIW_POP_UP_ITEM("~Formatted String", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, FStringWindow, HELP_FORMATTED_STRING)
+ new UIW_POP_UP_ITEM("Te~xt", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, TextWindow, HELP_TEXT)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Date", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, DateWindow, HELP_DATE)
+ new UIW_POP_UP_ITEM("~Time", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, TimeWindow, HELP_TIME)
+ new UIW_POP_UP_ITEM(NULL)
+ new UIW_POP_UP_ITEM("~Number", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, NumberWindow, HELP_BIGNUM);

// Create the cascaded menu for Control window objects.
UIW_POP_UP_ITEM *controlItem = new UIW_POP_UP_ITEM("~Control");
*controlItem
+ new UIW_POP_UP_ITEM("~Button", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, ButtonWindow, HELP_BUTTON)
+ new UIW_POP_UP_ITEM("~Radio Button", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, RadioWindow, HELP_RADIO_BUTTON)
+ new UIW_POP_UP_ITEM("~Check Box", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, CheckWindow, HELP_CHECK_BOX)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Hz-List", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, HzListWindow, HELP_HLIST)
+ new UIW_POP_UP_ITEM("~Vt-List", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, VtListWindow, HELP_VLIST)
+ new UIW_POP_UP_ITEM("C~ombo Box", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, ComboWindow, HELP_COMBO_BOX)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("H~z-Scroll Bar", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, HzListWindow, HELP_SCROLL_BAR)
+ new UIW_POP_UP_ITEM("V~t-Scroll Bar", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, VtListWindow, HELP_SCROLL_BAR)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("Child ~Window", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, MenuWindow, HELP_WINDOW);

// Create the cascaded menu for Menu window objects.
UIW_POP_UP_ITEM *menuItem = new UIW_POP_UP_ITEM("~Menu");
*menuItem
+ new UIW_POP_UP_ITEM("~Pull-Down Menu", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, MenuWindow, HELP_PULL_DOWN_MENU)
+ new UIW_POP_UP_ITEM("Pop-Up ~Menu", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, MenuWindow, HELP_POP_UP_MENU)
+ new UIW_POP_UP_ITEM("Tool ~Bar", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, ToolWindow, HELP_TOOL_BAR);

// Create the cascaded menu for Static window objects.
UIW_POP_UP_ITEM *staticItem = new UIW_POP_UP_ITEM("~Static");
*staticItem
+ new UIW_POP_UP_ITEM("~Prompt", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, FStringWindow, HELP_PROMPT)
+ new UIW_POP_UP_ITEM("~Group", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, RadioWindow, HELP_GROUP)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Icon", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, IconWindow, HELP_ICON);

// Add the cascaded menu items to the Object drop down menu.
*objectMenu
+ inputItem
+ controlItem
+ menuItem
+ staticItem;

// Add items to the Help drop down menu.
*helpMenu
+ new UIW_POP_UP_ITEM("~General", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_GENERAL)
+ new UIW_POP_UP_ITEM("~Order info", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_ORDER_INFORMATION)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Screen display", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_SCREEN_DISPLAY)
+ new UIW_POP_UP_ITEM("~Event manager", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_EVENT_MANAGER)
+ new UIW_POP_UP_ITEM("~Window manager", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_WINDOW_MANAGER)
+ new UIW_POP_UP_ITEM("~Application class", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_APPLICATION)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Zinc Designer", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_ZINC_DESIGNER)
+ new UIW_POP_UP_ITEM("~Persistent objects", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_PERSISTENT_OBJECTS)
+ new UIW_POP_UP_ITEM("~Class hierarchy", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_CLASS_HIERARCHY)
+ new UIW_POP_UP_ITEM
+ new UIW_POP_UP_ITEM("~Video training", MNIF_NO_FLAGS, BTF_NO_FLAGS, WOF_NO_FLAGS, Help, HELP_VIDEO);

// Add the pull-down items (with their menus) to the main menu.
*mainMenu
+ fileMenu
+ objectMenu
+ helpMenu;

// Create main window and add objects (border, menu, minimize icon, etc.) to it.
int width = 74;
int height = display->isText ? 16 : 18;
int left = (display->columns / display->cellWidth - width) / 2;
int top = (display->lines / display->cellHeight - height) / 2;
if (top < 0)
top = 0;
demoWindow = new UIW_WINDOW(left, top, width, height, WOF_NO_FLAGS, WOAF_NO_SIZE);
*demoWindow
+ new UIW_ICON(0, 0, "minIcon", "Zinc Demo", ICF_MINIMIZE_OBJECT, WOF_NO_FLAGS)
+ new UIW_BORDER
+ new UIW_MAXIMIZE_BUTTON
+ new UIW_MINIMIZE_BUTTON
+ new UIW_SYSTEM_BUTTON(SYF_GENERIC)
+ new UIW_TITLE(message)
+ mainMenu;

// Create the tool bar and add it to the window.
if (!display->isText && top > 0)
{
UIW_TOOL_BAR *toolBar = new UIW_TOOL_BAR(0, 0, 0, 0, WNF_NO_FLAGS,
WOF_BORDER | WOF_NON_FIELD_REGION, WOAF_NO_FLAGS);
for (int i = 0; toolBarItems[i].text; i++)
{
UIW_BUTTON *button = new UIW_BUTTON(0, 0, 6, NULL,
BTF_NO_TOGGLE | BTF_AUTO_SIZE | BTF_SEND_MESSAGE,
WOF_JUSTIFY_CENTER, (USER_FUNCTION)toolBarItems[i].data,
toolBarItems[i].value, toolBarItems[i].text);
button->helpContext = (UI_HELP_CONTEXT)toolBarItems[i].value;
*toolBar + button;
}
*demoWindow + toolBar;
}

// Create the object list and add it to the window.
UIW_VT_LIST *sampleList = new UIW_VT_LIST(2, 1, 30, 11, NULL, WNF_NO_WRAP | WNF_BITMAP_CHILDREN);
*sampleList + new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL);
for (int i = 0; listItems[i].text; i++)
{
if (listItems[i].value)
{
UIW_BUTTON *button = new UIW_BUTTON(0, 0, 28, listItems[i].text,
BTF_RADIO_BUTTON, WOF_NO_FLAGS,
(USER_FUNCTION)listItems[i].data, listItems[i].value);
button->helpContext = (UI_HELP_CONTEXT)listItems[i].value;
*sampleList + button;
}
else
*sampleList + new UIW_STRING(0, 0, 29, listItems[i].text,
-1, STF_NO_FLAGS, WOF_NON_SELECTABLE);
}
*demoWindow + sampleList;

// Create the sample window area and add it to the window.
_sampleWindow = new UIW_WINDOW(34, 0, 38, 7, WOF_NO_FLAGS, WOAF_NO_MOVE | WOAF_NO_SIZE);
_sampleWindow->wnFlags |= WNF_NO_WRAP;
*demoWindow + _sampleWindow;

// Create the information text field and add it to the window.
_information = new UIW_TEXT(35, 7, 36, 5, NULL, 2048, WNF_NO_FLAGS, WOF_BORDER | WOF_VIEW_ONLY);
*_information + new UIW_SCROLL_BAR(0, 0, 0, 0, SBF_VERTICAL);
*demoWindow + _information;

// Add the demonstration window to the window manager (to be displayed).
*windowManager + demoWindow;

// This line assigns the exit function to be called before the demo
// window is closed. It MUST be after the window is added to windowManager.
windowManager->screenID = demoWindow->screenID;

// Initialize the information text field.
HelpInformation("INFO_GENERAL");

// Process user events.
EVENT_TYPE ccode;
do
{
UI_EVENT event;
eventManager->Get(event);
ccode = windowManager->Event(event);
} while (ccode != L_EXIT && ccode != S_NO_OBJECT);

// Clean up.
delete UI_WINDOW_OBJECT::helpSystem;
delete UI_WINDOW_OBJECT::errorSystem;
delete _storage;
delete windowManager;
delete eventManager;
delete display;

return (0);
}




  3 Responses to “Category : C++ Source Code
Archive   : ZINCDEMO.ZIP
Filename : ZINCDEMO.CPP

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/