home *** CD-ROM | disk | FTP | other *** search
- // Zinc Interface Library - UI_WIN.HPP
- // COPYRIGHT (C) 1990, 1991. All Rights Reserved.
- // Zinc Software Incorporated. Pleasant Grove, Utah USA
-
- #ifndef UI_WIN_HPP
- #define UI_WIN_HPP
- #ifndef UI_MAP_HPP
- #include <ui_map.hpp>
- #endif
-
- #ifdef ZIL_DESIGNER
- # ifndef ZIL_STORE
- # define ZIL_STORE
- # endif
- # ifndef ZIL_LOAD
- # define ZIL_LOAD
- # endif
- #endif
- #ifdef ZIL_STORE
- # ifndef ZIL_LOAD
- # define ZIL_LOAD
- # endif
- #endif
-
- // ----- UI_WINDOW_OBJECT ---------------------------------------------------
- // ----- member functions found in WIN2.CPP & D_WIN2.CPP --------------------
-
- const USHORT NO_HELP_CONTEXT = 0;
-
- enum INFORMATION_REQUEST
- {
- GET_DEFAULT_HEIGHT,
- GET_DEFAULT_WIDTH,
- GET_MINIMUM_HEIGHT,
- GET_MINIMUM_WIDTH,
- GET_MAXIMUM_HEIGHT,
- GET_MAXIMUM_WIDTH,
- GET_NUMBERID_OBJECT,
- GET_STRINGID_OBJECT,
- PRINT_INFORMATION
- };
-
- // --- pre-defined number identifications ---
- const USHORT NUMID_BORDER = 0xFFFF;
- const USHORT NUMID_MAXIMIZE = 0xFFFE;
- const USHORT NUMID_MINIMIZE = 0xFFFD;
- const USHORT NUMID_SYSTEM = 0xFFFC;
- const USHORT NUMID_TITLE = 0xFFFB;
-
- const USHORT NUMID_OPT_RESTORE = 0xFFEF;
- const USHORT NUMID_OPT_MOVE = 0xFFEE;
- const USHORT NUMID_OPT_SIZE = 0xFFED;
- const USHORT NUMID_OPT_MINIMIZE = 0xFFEC;
- const USHORT NUMID_OPT_MAXIMIZE = 0xFFEB;
- const USHORT NUMID_OPT_CLOSE = 0xFFEA;
-
- // --- woFlags ---
- const USHORT WOF_NO_FLAGS = 0x0000;
- const USHORT WOF_JUSTIFY_CENTER = 0x0001; // center justify object's data
- const USHORT WOF_JUSTIFY_RIGHT = 0x0002; // right justify object's data
- const USHORT WOF_BORDER = 0x0004; // draw a border around the object
- const USHORT WOF_NO_ALLOCATE_DATA = 0x0008; // do not allocate the data buffer
- const USHORT WOF_VIEW_ONLY = 0x0010; // object can be viewed, but not edited
- const USHORT WOF_NO_UNANSWERED = 0x0020; // Prevents "Leave Unanswered" option
- const USHORT WOF_NO_INVALID = 0x0040; // Prevents "Leave Invalid" option
- const USHORT WOF_UNANSWERED = 0x0080; // Sets initial status bit to "unanswered"
- const USHORT WOF_INVALID = 0x0100; // Sets initial status bit to "invalid"
- const USHORT WOF_NON_FIELD_REGION = 0x0200; // object does not share screen space
- const USHORT WOF_NON_SELECTABLE = 0x0400; // object cannot be selected
- const USHORT WOF_AUTO_CLEAR = 0x0800; // auto clear option for edit fields
-
- // --- woAdvancedFlags ---
- const USHORT WOAF_NO_FLAGS = 0x0000;
- const USHORT WOAF_OUTSIDE_REGION = 0x0001; // object occupies space outside the true region
- const USHORT WOAF_NON_CURRENT = 0x0002; // object cannot be made current
- const USHORT WOAF_TEMPORARY = 0x0004; // object is only temporarily on the display
- const USHORT WOAF_HOT_REGION = 0x0008;
- const USHORT WOAF_NO_DESTROY = 0x0010; // don't destroy the object
- const USHORT WOAF_NORMAL_HOT_KEYS = 0x0020; // look for hot keys on normal input.
- const USHORT WOAF_NO_SIZE = 0x0040; // object cannot be sized
- const USHORT WOAF_NO_MOVE = 0x0080; // object cannot be moved
- const USHORT WOAF_MODAL = 0x0100; // object is modal (gets all events)
- const USHORT WOAF_LOCKED = 0x0200; // object cannot be removed from the window manager
- const USHORT WOAF_MULTIPLE_REGIONS = 0x0400; // object has more than 1 region.
-
- // --- woStatus ---
- const USHORT WOS_NO_STATUS = 0x0000;
- const USHORT WOS_GRAPHICS = 0x0001; // object region is in graphics coordinates
- const USHORT WOS_CURRENT = 0x0002; // object is current
- const USHORT WOS_CHANGED = 0x0004; // object data has changed
- const USHORT WOS_SELECTED = 0x0008; // object has been selected
- const USHORT WOS_UNANSWERED = 0x0010; // object data is answered
- const USHORT WOS_INVALID = 0x0020; // object has invalid data
- const USHORT WOS_NO_AUTO_CLEAR = 0x0040; // edit keys have been used
-
- // --- woAdvancedStatus ---
- const USHORT WOAS_NO_STATUS = 0x0000;
- const USHORT WOAS_INVALID_REGION = 0x0001; // object space is invalid
- const USHORT WOAS_MAXIMIZED = 0x0002; // object is maximized
- const USHORT WOAS_MINIMIZED = 0x0004; // object is minimized
- const USHORT WOAS_TOO_SMALL = 0x0008; // sized too small to be selected
- const USHORT WOAS_NEED_VALIDATE = 0x0010; // data needs validation
- const USHORT WOAS_REDISPLAY = 0x0020; // data needs updating
- const USHORT WOAS_EDIT_MODE = 0x0040; // window is being edited
-
- class EXPORT UI_WINDOW_OBJECT : public UI_ELEMENT
- {
- friend class EXPORT UI_WINDOW_MANAGER;
- friend class EXPORT UIW_WINDOW;
-
- public:
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- static UI_EVENT_MAP *eventMapTable;
- UI_PALETTE_MAP *paletteMapTable;
-
- USHORT woFlags, woAdvancedFlags, woStatus, woAdvancedStatus;
- UI_REGION true, relative;
- UI_WINDOW_OBJECT *parent;
- UI_DISPLAY *display;
- UI_EVENT_MANAGER *eventManager;
- UI_WINDOW_MANAGER *windowManager;
- UI_PALETTE *lastPalette;
- int (*Validate)(void *object, int ccode);
- USHORT helpContext;
- UCHAR hotKey;
- void *userObject;
- USHORT userFlags;
-
- UI_WINDOW_OBJECT(int left, int top, int width, int height,
- USHORT _woFlags, USHORT _woAdvancedFlags);
- virtual ~UI_WINDOW_OBJECT(void);
-
- virtual int Event(const UI_EVENT &event);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
- void InformationSet(SCREENID _screenID, UI_DISPLAY *_display,
- UI_EVENT_MANAGER *_eventManager, UI_WINDOW_MANAGER *_windowManager,
- UI_PALETTE_MAP *_paletteMapTable, UI_WINDOW_OBJECT *_parent);
- int Inherited(USHORT matchID)
- { return(matchID == windowID[0] || matchID == windowID[1] ||
- matchID == windowID[2] || matchID == windowID[3] ||
- matchID == windowID[4]); }
- USHORT NumberID(USHORT numberID = 0);
- int Overlap(const UI_REGION ®ion);
- int Overlap(const UI_POSITION &position)
- { return(position.column >= true.left &&
- position.column <= true.right && position.line >= true.top &&
- position.line <= true.bottom); }
- void Redisplay(int fromRoot);
- void RegionMax(int leftTop);
- int Touching(const UI_POSITION &position)
- { return(position.column == true.left ||
- position.column == true.right || position.line == true.top ||
- position.line == true.bottom); }
- void WindowID(int position, int id) { windowID[position] = id; }
- char *StringID(const char *stringID = NULL);
-
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UI_WINDOW_OBJECT(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_ELEMENT reference chapter.
- UI_WINDOW_OBJECT *Next(void) { return((UI_WINDOW_OBJECT *)next); }
- UI_WINDOW_OBJECT *Previous(void) { return((UI_WINDOW_OBJECT *)previous); }
-
- #ifdef ZIL_MSWINDOWS
- // MS Windows specific members.
- DWORD MSWindowsStyle;
- HWND hWnd;
- HMENU hMenu;
- #endif
-
- protected:
- // Protected members described in UI_WINDOW_OBJECT reference chapter.
- SCREENID screenID;
- int windowID[5];
- UI_SEARCH_INFO search;
-
- USHORT markColumn; // Column where mouse mark initiated.
- static char *pasteBuffer; // There is only one global paste buffer.
- static int pasteLength;
- static USHORT repeatRate;
-
- void Border(int ccode, UI_REGION ®ion, const UI_PALETTE *palette);
- int LogicalEvent(const UI_EVENT &event, int currentID)
- { return (MapEvent(eventMapTable, event, currentID, windowID[0],
- windowID[1], windowID[2], windowID[3], windowID[4])); }
- UI_PALETTE *LogicalPalette(int ccode);
- int NeedsUpdate(const UI_EVENT &event, int ccode);
- int NeedsValidation(void);
- void Shadow(UI_REGION ®ion, int depth);
- void Text(char *string, int depth, int ccode, const UI_PALETTE *palette);
- };
-
- extern UI_WINDOW_OBJECT *_currentObject;
-
- // ----- UI_WINDOW_MANAGER --------------------------------------------------
- // ----- member functions found in WIN.CPP ----------------------------------
-
- class EXPORT UI_WINDOW_MANAGER : public UI_LIST
- {
- friend class EXPORT UI_ERROR_SYSTEM;
- friend class EXPORT UI_HELP_SYSTEM;
-
- public:
- // Members described in UI_WINDOW_MANAGER reference chapter.
- static UI_EVENT_MAP *eventMapTable;
-
- UI_WINDOW_MANAGER(UI_DISPLAY *display, UI_EVENT_MANAGER *eventManager,
- int (*exitFunction)(UI_DISPLAY *display,
- UI_EVENT_MANAGER *eventManager, UI_WINDOW_MANAGER *windowManager) = NULL);
- virtual ~UI_WINDOW_MANAGER(void);
- virtual int Event(const UI_EVENT &event);
- UI_WINDOW_OBJECT *Get(const char *name)
- { return((UI_WINDOW_OBJECT *)UI_LIST::Get(UI_WINDOW_MANAGER::FindStringID, name)); }
- UI_WINDOW_OBJECT *Get(USHORT numberID)
- { return((UI_WINDOW_OBJECT *)UI_LIST::Get(UI_WINDOW_MANAGER::FindNumberID, &numberID)); }
- int Index(UI_ELEMENT *object) { return(UI_LIST::Index(object)); }
-
- // Members described in UI_LIST reference chapter.
- void Add(UI_WINDOW_OBJECT *object);
- UI_WINDOW_OBJECT *First(void) { return((UI_WINDOW_OBJECT *)first); }
- UI_WINDOW_OBJECT *Last(void) { return((UI_WINDOW_OBJECT *)last); }
- void Subtract(UI_WINDOW_OBJECT *object);
- UI_WINDOW_MANAGER &operator + (UI_WINDOW_OBJECT *object) { Add(object); return(*this); }
- UI_WINDOW_MANAGER &operator - (UI_WINDOW_OBJECT *object) { Subtract(object); return(*this); };
-
- protected:
- static SCREENID screenID;
- UI_DISPLAY *display;
- UI_EVENT_MANAGER *eventManager;
- UI_WINDOW_OBJECT *errorObject;
- int (*exitFunction)(UI_DISPLAY *display, UI_EVENT_MANAGER *eventManager, UI_WINDOW_MANAGER *windowManager);
-
- static int FindNumberID(void *object, void *matchName);
- static int FindStringID(void *object, void *matchName);
- void Erase(UI_WINDOW_OBJECT *object, const UI_REGION *newRegion);
- void Modify(UI_WINDOW_OBJECT *object, const UI_EVENT &event);
- void ToFront(UI_WINDOW_OBJECT *object, int refreshOld, int newWindow);
- };
-
- // ----- UIW_BORDER ---------------------------------------------------------
- // ----- member functions found in BORDER.CPP & D_BORDER.CPP ----------------
-
- #pragma warn -par
- class EXPORT UIW_BORDER : public UI_WINDOW_OBJECT
- {
- public:
- // Public members described in UIW_BORDER reference chapter.
- UIW_BORDER(void);
- virtual ~UIW_BORDER(void) { }
- int DataGet(void) { return (width); }
- void DataSet(int width);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return (new UIW_BORDER); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Public members described in UIW_BORDER reference chapter.
- static int width;
- };
- #pragma warn .par
-
- // ----- UIW_PROMPT ---------------------------------------------------------
- // ----- member functions found in PROMPT.CPP & D_PROMPT.CPP ----------------
-
- class EXPORT UIW_PROMPT : public UI_WINDOW_OBJECT
- {
- public:
- // Public members described in UIW_PROMPT reference chapter.
- UIW_PROMPT(int left, int top, char *prompt, USHORT woFlags = WOF_NO_FLAGS);
- UIW_PROMPT(int left, int top, int width, int height, char *prompt, USHORT woFlags = WOF_NO_FLAGS);
- ~UIW_PROMPT(void) { delete prompt; }
- const char *DataGet(void) { return prompt; }
- void DataSet(char *prompt);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_PROMPT(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_PROMPT(name, file, loadFlags) :
- new UIW_PROMPT(0, 0, "prompt:")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Public members described in UIW_PROMPT reference chapter.
- char *prompt;
- int borderWidth;
- int borderHeight;
- };
-
- // ----- UIW_BUTTON ---------------------------------------------------------
- // ----- member functions found in BUTTON.CPP & D_BUTTON.CPP ----------------
-
- // --- btFlags ---
- const USHORT BTF_NO_FLAGS = 0x0000;
- const USHORT BTF_NO_TOGGLE = 0x0001; // don't toggle (select) the button
- const USHORT BTF_DOWN_CLICK = 0x0002; // complete button action on down click
- const USHORT BTF_CHECK_MARK = 0x0004; // display a check mark when selected.
- const USHORT BTF_REPEAT = 0x0008; // repeat the down-click action
- const USHORT BTF_DOUBLE_CLICK = 0x0010; // perform the action on a double-mouse click.
- const USHORT BTF_AUTO_SIZE = 0x0020; // size according to mode of operation
- const USHORT BTF_NO_3D = 0x0040; // do not shadow button
-
- // --- btStatus ---
- const USHORT BTS_NO_STATUS = 0x0000;
- const USHORT BTS_DEPRESSED = 0x0001; // button is depressed
-
- class EXPORT UIW_BUTTON : public UI_WINDOW_OBJECT
- {
- public:
- // Public members described in UIW_BUTTON reference chapter.
- USHORT btFlags;
- USHORT value;
- void (*userFunction)(void *object, UI_EVENT &event);
-
- UIW_BUTTON(int left, int top, int width, char *string,
- USHORT btFlags = BTF_NO_TOGGLE | BTF_AUTO_SIZE,
- USHORT woFlags = WOF_BORDER | WOF_JUSTIFY_CENTER,
- void (*userFunction)(void *object, UI_EVENT &event) = NULL,
- USHORT value = 0);
- virtual ~UIW_BUTTON(void);
- const char *DataGet(int stripString = FALSE);
- void DataSet(char *string);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_BUTTON(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_BUTTON(name, file, loadFlags) :
- new UIW_BUTTON(0, 0, 10, "button")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_BUTTON reference chapter.
- USHORT btStatus;
- USHORT time;
- int depth;
- char *string;
- char *getString;
- };
-
- // ----- UIW_MAXIMIZE_BUTTON ------------------------------------------------
- // ----- member functions found in MAX.CPP & D_MAX.CPP ----------------------
-
- #pragma warn -par
- class EXPORT UIW_MAXIMIZE_BUTTON : public UIW_BUTTON
- {
- public:
- // Public members described in UIW_MAXIMIZE_BUTTON reference chapter.
- UIW_MAXIMIZE_BUTTON(void);
- virtual ~UIW_MAXIMIZE_BUTTON(void) { }
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return (new UIW_MAXIMIZE_BUTTON); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_MAXIMIZE_BUTTON reference chapter.
- static void MaximizeUserFunction(void *button, UI_EVENT &event)
- { event.type = S_MAXIMIZE; ((UIW_BUTTON *)button)->eventManager->Put(event, Q_BEGIN); }
- };
- #pragma warn .par
-
- // ----- UIW_MINIMIZE_BUTTON ------------------------------------------------
- // ----- member functions found in MIN.CPP & D_MIN.CPP ----------------------
-
- #pragma warn -par
- class EXPORT UIW_MINIMIZE_BUTTON : public UIW_BUTTON
- {
- public:
- // Public members described in UIW_MINIMIZE_BUTTON reference chapter.
- UIW_MINIMIZE_BUTTON(void);
- virtual ~UIW_MINIMIZE_BUTTON(void) { }
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return (new UIW_MINIMIZE_BUTTON); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_MINIMIZE_BUTTON reference chapter.
- static void MinimizeUserFunction(void *button, UI_EVENT &event)
- { event.type = S_MINIMIZE; ((UIW_BUTTON *)button)->eventManager->Put(event, Q_BEGIN); }
- };
- #pragma warn .par
-
- // ----- UIW_TITLE ----------------------------------------------------------
- // ----- member functions found in TITLE.CPP & D_TITLE.CPP ------------------
-
- class EXPORT UIW_TITLE : public UIW_BUTTON
- {
- public:
- // Public members described in UIW_TITLE reference chapter.
- UIW_TITLE(char *title, USHORT woFlags = WOF_JUSTIFY_CENTER);
- virtual ~UIW_TITLE(void) { }
- void UIW_TITLE::DataSet(char *title);
- // const char *UIW_TITLE::DataGet(int stripTitle); --> inherited from UIW_BUTTON
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_TITLE(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_TITLE(name, file, loadFlags) :
- new UIW_TITLE("title")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_TITLE reference chapter.
- static void TitleUserFunction(void *button, UI_EVENT &event)
- { event.type = S_MOVE; ((UIW_BUTTON *)button)->eventManager->Put(event, Q_BEGIN); }
- };
-
- // ----- UIW_ICON -----------------------------------------------------------
- // ----- member functions found in ICON.CPP & D_ICON.CPP --------------------
-
- const USHORT L_CHECK_COLOR = 10000;
- const USHORT L_FLOOD_COLOR = 10001;
- const USHORT S_PLACE_OBJECT = 10002;
- const USHORT S_SAVE_OBJECT = 10003;
- const USHORT S_EDIT_OBJECT = 10004;
- const USHORT S_COMPUTE_DIRECTORY = 10005;
- const USHORT S_MOVE_CURRENT = 10006;
- const USHORT S_SIZE_CURRENT = 10007;
- const USHORT S_GET_OBJECT = 10008;
-
- const USHORT ICF_NO_FLAGS = 0x0000;
- const USHORT ICF_SINGLE_CLICK = 0x0001;
-
- const USHORT ICF_WRITE = 0x0100;
- const USHORT ICF_READ = 0x0200;
- const USHORT ICF_AUTO_SELECT = 0x0400;
- const USHORT ICF_AUTO_ESCAPE = 0x0800;
- const USHORT ICF_END = 0x1000;
-
- class EXPORT UIW_ICON : public UI_WINDOW_OBJECT
- {
- friend class EXPORT UIW_WINDOW;
-
- public:
- // Public members described in UIW_ICON reference chapter.
- USHORT icFlags;
- void (*userFunction)(void *object, UI_EVENT &event);
-
- UIW_ICON(int left, int top, int bitmapWidth, int bitmapHeight,
- UCHAR *bitmapArray, char *string, USHORT icFlags = ICF_NO_FLAGS,
- USHORT woFlags = WOF_NO_FLAGS,
- void (*userFunction)(void *object, UI_EVENT &event) = NULL,
- int ratioWidth = 1, int ratioHeight = 1);
- virtual ~UIW_ICON(void) { }
- void DataGet(int *_bitmapWidth, int *_bitmapHeight, UCHAR **bitmapArray);
- const char *DataGet(void) { return (string); }
- void DataSet(int _bitmapWidth, int _bitmapHeight, UCHAR *_bitmapArray);
- void DataSet(char *string);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_ICON(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_ICON(name, file, loadFlags) :
- new UIW_ICON(0, 0, 32, 32, NULL, "window icon")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- private:
- // Private UIW_ICON members are not documented.
- UIW_WINDOW *window;
- UI_REGION iconRegion;
- UI_REGION stringRegion;
-
- short bitmapWidth;
- short bitmapHeight;
- UCHAR *bitmapArray;
- USHORT lastTime;
- char *string;
-
- static int leftColor;
- static int rightColor;
- int ratioWidth;
- int ratioHeight;
- };
-
- // ----- UIW_WINDOW ---------------------------------------------------------
- // ----- member functions found in WIN1.CPP & D_WIN1.CPP --------------------
-
- class EXPORT UIW_WINDOW : public UI_WINDOW_OBJECT, public UI_LIST
- {
- public:
- // Public members described in UIW_WINDOW reference chapter.
- UIW_WINDOW(int left, int top, int width, int height,
- USHORT woFlags = WOF_NO_FLAGS, USHORT woAdvancedFlags = WOAF_NO_FLAGS,
- int helpContext = NO_HELP_CONTEXT, UIW_ICON *icon = NULL);
- virtual ~UIW_WINDOW(void) { }
- void Clear(void) { first = last = current = NULL; }
- int Count(void) { return(UI_LIST::Count()); }
- virtual int Event(const UI_EVENT &event);
- static UIW_WINDOW *Generic(int left, int top, int width, int height,
- char *title, UIW_ICON *icon = NULL, USHORT woFlags = WOF_NO_FLAGS,
- USHORT woAdvancedFlags = WOAF_NO_FLAGS, int helpContext = NO_HELP_CONTEXT);
- UI_WINDOW_OBJECT *Get(USHORT value)
- { return ((UI_WINDOW_OBJECT *)UIW_WINDOW::Information(GET_NUMBERID_OBJECT, &value)); }
- UI_WINDOW_OBJECT *Get(const char *name)
- { return ((UI_WINDOW_OBJECT *)UIW_WINDOW::Information(GET_STRINGID_OBJECT, name)); }
- virtual void *Information(INFORMATION_REQUEST request, void *data);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_WINDOW(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_WINDOW(name, file, loadFlags) :
- UIW_WINDOW::Generic(0, 0, 20, 6, "title")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_LIST reference chapter.
- void Add(UI_WINDOW_OBJECT *object);
- void Subtract(UI_WINDOW_OBJECT *object);
- UI_WINDOW_OBJECT *First(void) { return((UI_WINDOW_OBJECT *)first); }
- UI_WINDOW_OBJECT *Last(void) { return((UI_WINDOW_OBJECT *)last); }
- UIW_WINDOW &operator+(UI_WINDOW_OBJECT *object) { Add(object); return(*this); }
- UIW_WINDOW &operator-(UI_WINDOW_OBJECT *object) { Subtract(object); return(*this); }
-
- protected:
- // Protected members described in UIW_WINDOW reference chapter.
- USHORT wnStatus;
- UI_REGION_LIST regionList;
- UI_WINDOW_OBJECT *errorObject;
-
- static int FindStatus(void *object, void *matchStatus);
- static int FindNumberID(void *object, void *matchNumber);
- static int FindStringID(void *object, void *matchNumber);
-
- void RegionsCompute(void);
- UI_WINDOW_OBJECT *ToFront(UI_WINDOW_OBJECT *object, int checkCurrent);
-
- private:
- // Private UIW_WINDOW members are not documented.
- UIW_ICON *icon;
-
- USHORT max_woAdvancedFlags;
- USHORT max_woAdvancedStatus;
- UI_REGION max_region;
-
- USHORT min_woAdvancedFlags;
- USHORT min_woAdvancedStatus;
- UI_REGION min_region;
-
- void Maximize(void);
- void Minimize(void);
- };
-
- // ----- UIW_POP_UP_ITEM ----------------------------------------------------
- // ----- member functions found in POPUP1.CPP & D_POPUP1.CPP ----------------
-
- // --- mniFlags ---
- const USHORT MNIF_NO_FLAGS = 0x0000;
- const USHORT MNIF_SEPARATOR = 0x0001; // Menu item seperator
- const USHORT MNIF_MAXIMIZE = 0x0002; // Item is tied to maximize button.
- const USHORT MNIF_MINIMIZE = 0x0004; // Item is tied to minimize button.
- const USHORT MNIF_MOVE = 0x0008; // Item is tied to moving.
- const USHORT MNIF_SIZE = 0x0010; // Item is tied to sizing.
- const USHORT MNIF_DUAL_MONITOR = 0x0020; // Item is tied to dual monitor support.
- const USHORT MNIF_RESTORE = 0x0040; // Maximize/minimize restoration.
- const USHORT MNIF_CLOSE = 0x0080; // Close the parent window.
-
- class EXPORT UIW_POP_UP_ITEM : public UIW_BUTTON
- {
- friend class EXPORT UIW_POP_UP_MENU;
-
- public:
- // Public members described in UIW_POP_UP_ITEM reference chapter.
- USHORT mniFlags;
-
- UIW_POP_UP_ITEM(void);
- UIW_POP_UP_ITEM(char *string, USHORT mniFlags = MNIF_NO_FLAGS,
- USHORT btFlags = BTF_NO_FLAGS, USHORT woFlags = WOF_NO_FLAGS,
- void (*userFunction)(void *object, UI_EVENT &event) = NULL,
- USHORT value = 0);
- UIW_POP_UP_ITEM(int left, int top, int width, char *string,
- USHORT mniFlags = MNIF_NO_FLAGS, USHORT btFlags = BTF_NO_FLAGS,
- USHORT woFlags = WOF_NO_FLAGS,
- void (*userFunction)(void *object, UI_EVENT &event) = NULL,
- USHORT value = 0);
- virtual ~UIW_POP_UP_ITEM(void) { }
- void DataSet(char *string);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_POP_UP_ITEM(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_POP_UP_ITEM(name, file, loadFlags) :
- new UIW_POP_UP_ITEM(" item ")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_ELEMENT reference chapter.
- UIW_POP_UP_ITEM *Next(void) { return((UIW_POP_UP_ITEM *)next); }
- UIW_POP_UP_ITEM *Previous(void) { return((UIW_POP_UP_ITEM *)previous); }
-
- private:
- static void PopUpItemUserFunction(void *item, UI_EVENT &event);
- void Initialize(char *string);
- };
-
- // ----- UIW_POP_UP_MENU ----------------------------------------------------
- // ----- member functions found in POPUP.CPP & D_POPUP.CPP ------------------
-
- // --- mnFlags ---
- const USHORT MNF_NO_FLAGS = 0x0000;
- const USHORT MNF_SELECT_ONE = 0x0001;
- const USHORT MNF_AUTO_SORT = 0x0002;
- const USHORT MNF_SELECT_LEFT = 0x0004;
- const USHORT MNF_SELECT_RIGHT = 0x0008;
-
- class EXPORT UIW_POP_UP_MENU : public UIW_WINDOW
- {
- public:
- // Public members described in UIW_POP_UP_MENU reference chapter.
- USHORT mnFlags;
-
- UIW_POP_UP_MENU(int left, int top, USHORT mnFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER, USHORT woAdvancedFlags = WOAF_NO_FLAGS);
- virtual ~UIW_POP_UP_MENU(void) { }
- virtual int Event(const UI_EVENT &event);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_POP_UP_MENU(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_POP_UP_MENU(name, file, loadFlags) :
- new UIW_POP_UP_MENU(0, 0)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_LIST reference chapter.
- UIW_POP_UP_ITEM *First(void) { return((UIW_POP_UP_ITEM *)first); }
- UIW_POP_UP_ITEM *Last(void) { return((UIW_POP_UP_ITEM *)last); }
-
- private:
- // Private UIW_POP_UP_MENU members are not documented.
- static int CompareFunction(void *element1, void *element2);
- };
-
- // ----- UI_ITEM ------------------------------------------------------------
-
- struct EXPORT UI_ITEM
- {
- // Fields described in UI_ITEM reference chapter.
- USHORT value;
- void (*userFunction)(void *object, UI_EVENT &event);
- char *string;
- };
-
- // ----- UIW_PULL_DOWN_ITEM -------------------------------------------------
- // ----- member functions found in PLLDN1.CPP & D_PLLDN1.CPP ----------------
-
- class EXPORT UIW_PULL_DOWN_ITEM : public UIW_BUTTON
- {
- friend class EXPORT UIW_PULL_DOWN_MENU;
-
- public:
- // Public members described in UIW_PULL_DOWN_ITEM reference chapter.
- UIW_PULL_DOWN_ITEM(char *string, USHORT mnFlags = MNF_NO_FLAGS,
- void (*userFunction)(void *object, UI_EVENT &event) = NULL,
- USHORT value = 0);
- UIW_PULL_DOWN_ITEM(char *string, USHORT mnFlags, UI_ITEM *item);
- virtual ~UIW_PULL_DOWN_ITEM(void) { }
- void DataSet(char *string);
- virtual int Event(const UI_EVENT &event);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_PULL_DOWN_ITEM(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_PULL_DOWN_ITEM(name, file, loadFlags) :
- new UIW_PULL_DOWN_ITEM(" item ")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_LIST reference chapter.
- void Add(UIW_POP_UP_ITEM *object) { menu.Add(object); }
- UIW_POP_UP_ITEM *First(void) { return ((UIW_POP_UP_ITEM *)menu.First()); }
- UIW_POP_UP_ITEM *Last(void) { return ((UIW_POP_UP_ITEM *)menu.Last()); }
- UIW_PULL_DOWN_ITEM *Next(void) { return((UIW_PULL_DOWN_ITEM *)next); }
- UIW_PULL_DOWN_ITEM *Previous(void) { return((UIW_PULL_DOWN_ITEM *)previous); }
- void Subtract(UIW_POP_UP_ITEM *object) { menu.Subtract(object); }
- UIW_PULL_DOWN_ITEM &operator + (UIW_POP_UP_ITEM *object) { menu.Add(object); return(*this); }
- UIW_PULL_DOWN_ITEM &operator - (UIW_POP_UP_ITEM *object) { menu.Subtract(object); return(*this); }
-
- private:
- // Private UIW_PULL_DOWN_ITEM members are not documented.
- UIW_POP_UP_MENU menu;
-
- static void PullDownUserFunction(void *button, UI_EVENT &event)
- { ((UIW_PULL_DOWN_ITEM *)button)->UserFunction(event); }
- void UserFunction(UI_EVENT &event);
- };
-
- // ----- UIW_PULL_DOWN_MENU -------------------------------------------------
- // ----- member functions found in PLLDN.CPP & D_PLLDN.CPP ------------------
-
- class EXPORT UIW_PULL_DOWN_MENU : public UIW_WINDOW
- {
- public:
- // Public members described in UIW_PULL_DOWN_MENU reference chapter.
- UIW_PULL_DOWN_MENU(int indentation, USHORT woFlags = WOF_BORDER | WOF_NON_FIELD_REGION,
- USHORT woAdvancedFlags = WOAF_NO_FLAGS);
- UIW_PULL_DOWN_MENU(int indentation, UI_ITEM *item);
- virtual ~UIW_PULL_DOWN_MENU(void) { }
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_PULL_DOWN_MENU(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_PULL_DOWN_MENU(name, file, loadFlags) :
- new UIW_PULL_DOWN_MENU(0)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_LIST reference chapter.
- UIW_PULL_DOWN_ITEM *First(void) { return((UIW_PULL_DOWN_ITEM *)first); }
- UIW_PULL_DOWN_ITEM *Last(void) { return((UIW_PULL_DOWN_ITEM *)last); }
-
- protected:
- // Protected members described in UIW_PULL_DOWN_MENU reference chapter.
- short indentation;
- };
-
- // ----- UIW_SCROLL_BAR -----------------------------------------------------
- // ----- member functions found in SCROLL.CPP & D_SCROLL.CPP ----------------
-
- // --- sbFlags ---
- const USHORT SBF_NO_FLAGS = 0x0000;
- const USHORT SBF_CORNER = 0x0001;
- const USHORT SBF_VERTICAL = 0x0002;
- const USHORT SBF_HORIZONTAL = 0x0004;
- const USHORT SBF_SIZE_MIDDLE = 0x0008;
-
- class EXPORT UIW_SCROLL_BAR : public UIW_WINDOW
- {
- public:
- // Public members described in UIW_SCROLL_BAR reference chapter.
- USHORT sbFlags;
-
- UIW_SCROLL_BAR(int left, int top, int width, int height,
- USHORT sbFlags = SBF_VERTICAL, USHORT woFlags = WOF_NO_FLAGS);
- virtual ~UIW_SCROLL_BAR(void) { }
- virtual int Event(const UI_EVENT &event);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_SCROLL_BAR(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_SCROLL_BAR(name, file, loadFlags) :
- new UIW_SCROLL_BAR(0, 0, 2, 2)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_SCROLL_BAR reference chapter.
- int current;
- int maximum;
- int showing;
-
- private:
- // Private UIW_SCROLL_BAR members are not documented.
- UIW_BUTTON *button[5];
- void CornerCompute(void);
- void HorizontalCompute(int startButton, int endButton);
- static void UserFunction(void *data, UI_EVENT &event);
- void VerticalCompute(int startButton, int endButton);
- };
-
- // ----- UIW_MATRIX ---------------------------------------------------------
- // ----- member functions found in MATRIX.CPP & D_MATRIX.CPP ----------------
-
- // --- mxFlags ---
- const USHORT MXF_NO_FLAGS = 0x0000;
- const USHORT MXF_COLUMNS_FILL = 0x0001;
- const USHORT MXF_ROWS_FILL = 0x0002;
- const USHORT MXF_AUTO_FILL = 0x0004;
- const USHORT MXF_SELECT_ONE = 0x0008;
-
- class EXPORT UIW_MATRIX : public UIW_WINDOW
- {
- public:
- // Public members described in UIW_MATRIX reference chapter.
- USHORT mxFlags;
-
- UIW_MATRIX(int left, int top, int width, int height, int maxRowsColumns,
- int cellWidth, int cellHeight,
- int (*compareFunction)(void *element1, void *element2) = NULL,
- USHORT mxFlags = MXF_NO_FLAGS, USHORT woFlags = WOF_BORDER,
- USHORT woAdvancedFlags = WOAF_NO_FLAGS);
- UIW_MATRIX(int left, int top, int width, int height, USHORT flagSetting,
- UI_ITEM *item);
- virtual ~UIW_MATRIX(void) { }
- void DataClear(void) { UI_LIST::Destroy(); }
- virtual int Event(const UI_EVENT &event);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_MATRIX(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_MATRIX(name, file, loadFlags) :
- new UIW_MATRIX(0, 0, 10, 4, 10, 10, 1)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_MATRIX reference chapter.
- short maxRowsColumns;
- short cellWidth;
- short cellHeight;
- };
-
- // ----- UIW_SYSTEM_BUTTON --------------------------------------------------
- // ----- member functions found in SYS.CPP & D_SYS.CPP ----------------------
-
- class EXPORT UIW_SYSTEM_BUTTON : public UIW_BUTTON
- {
- public:
- // Public members described in UIW_SYSTEM_BUTTON reference chapter.
- UIW_SYSTEM_BUTTON(void);
- virtual ~UIW_SYSTEM_BUTTON(void) { }
- virtual int Event(const UI_EVENT &event);
- static UIW_SYSTEM_BUTTON *Generic(void);
- virtual void *Information(INFORMATION_REQUEST request, void *data);
- void UserFunction(UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_SYSTEM_BUTTON(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_SYSTEM_BUTTON(name, file, loadFlags) :
- UIW_SYSTEM_BUTTON::Generic()); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- // Public members described in UI_LIST reference chapter.
- UIW_SYSTEM_BUTTON &operator+(UI_WINDOW_OBJECT *object)
- { menu.Add(object);
- btFlags |= BTF_DOWN_CLICK;
- return (*this); }
- UIW_SYSTEM_BUTTON &operator-(UI_WINDOW_OBJECT *object)
- { menu.Subtract(object);
- if (!menu.First()) btFlags &= ~BTF_DOWN_CLICK;
- return (*this); }
-
- protected:
- // Protected members described in UIW_SYSTEM_BUTTON reference chapter.
- UIW_POP_UP_MENU menu;
-
- private:
- // Private UIW_SCROLL_BAR members are not documented.
- static void SystemUserFunction(void *button, UI_EVENT &event)
- { ((UIW_SYSTEM_BUTTON *)button)->UserFunction(event); }
- };
-
- // ----- UIW_STRING ---------------------------------------------------------
- // ----- member functions found in STRING*.CPP & D_STRING.CPP ---------------
-
- // --- stFlags ---
- const USHORT STF_NO_FLAGS = 0x0000;
- const USHORT STF_VARIABLE_NAME = 0x0001;
- const USHORT STF_LOWER_CASE = 0x0002;
- const USHORT STF_UPPER_CASE = 0x0003;
- const USHORT STF_PASSWORD = 0x0004;
-
- class EXPORT UIW_STRING : public UI_WINDOW_OBJECT
- {
- public:
- // Public members described in UIW_STRING reference chapter.
- USHORT stFlags;
- int insertMode;
-
- UIW_STRING(int left, int top, int width, char *text, short _maxLength,
- USHORT stFlags = STF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_STRING(void);
- const char *DataGet(void) { return text; }
- void DataSet(char *newText, short _maxLength = -1);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_STRING(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_STRING(name, file, loadFlags) :
- new UIW_STRING(0, 0, 10, "", 10)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_STRING reference chapter.
- char *text;
- int fieldWidth;
-
- #ifdef ZIL_MSWINDOWS
- short maxLength;
- #else
- char *screenTop;
- char *textNull;
- char *textTail;
- char *markedBlock;
- char *markStart;
- char *markTail;
- char *cursor;
- int originalWidth;
- char *screen;
- int screenInvalid;
- short screenSize;
- char *screenMarkStart;
- char *screenMarkTail;
-
- void BackspaceKey(void);
- int CalcLeading(int width);
- void CheckLeftScroll(void);
- void CheckRightScroll(void);
- void CopyBlock(void);
- void DeleteBlock(char *block, USHORT length);
- void DeleteEol(void);
- void DeleteWord(void);
- void InsertBlock(char *insertPoint, char *block, USHORT length);
- void LeftArrow(void);
- void MoveOperation(void) { woStatus |= WOS_NO_AUTO_CLEAR; }
- int NonWhiteSpace(int value) { return (value && value != ' '); }
- void PasteBlock(void);
- void Redisplay(int ccode);
- void RegularKey(USHORT key);
- void ReplaceChar(char *buff, USHORT key);
- void SetMark(void);
- void UpdateCursor(UI_REGION ®ion, int width);
- int VerticalCenterOffset(UI_REGION *region);
- int WhiteSpace(int value) { return (value == ' '); }
- void WordTabLeft(void);
- #endif
- };
-
- // ----- UIW_DATE -----------------------------------------------------------
- // ----- member functions found in DATE*.CPP & D_DATE.CPP -------------------
-
- class EXPORT UIW_DATE : public UIW_STRING
- {
- public:
- // Public members described in UIW_DATE reference chapter.
- USHORT dtFlags;
-
- UIW_DATE(int left, int top, int width, UI_DATE *date,
- const char *range = NULL, USHORT dtFlags = DTF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_DATE(void);
- const UI_DATE *DataGet(void) { return (date); }
- void DataSet(UI_DATE *newDate);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_DATE(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_DATE(name, file, loadFlags) :
- new UIW_DATE(0, 0, 10, NULL, "")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Members described in UIW_DATE reference chapter.
- UI_DATE *date;
- char *range;
-
- void DateError(int errorCode);
- int DateRangeCheck(void);
- void DateRangeError(char *formattedString);
- };
-
- // ----- UIW_TIME -----------------------------------------------------------
- // ----- member functions found in TIME*.CPP & D_TIME.CPP -------------------
-
- class EXPORT UIW_TIME : public UIW_STRING
- {
- public:
- // Members described in UIW_TIME reference chapter.
- USHORT tmFlags;
-
- UIW_TIME(int left, int top, int width, UI_TIME *time,
- const char *range = NULL, USHORT tmFlags = TMF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_TIME(void);
- const UI_TIME *DataGet(void) { return (time); }
- void DataSet(UI_TIME *time);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_TIME(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_TIME(name, file, loadFlags) :
- new UIW_TIME(0, 0, 10, NULL, "")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Members described in UIW_TIME reference chapter.
- UI_TIME *time;
- char *range;
-
- void TimeError(int errorCode);
- int TimeRangeCheck(void);
- void TimeRangeError(char *formattedString);
- };
-
- // ----- UIW_TEXT -----------------------------------------------------------
- // ----- member functions found in TEXT*.CPP & D_TEXT.CPP -------------------
-
- // --- txFlags ---
- const USHORT TXF_NO_FLAGS = 0x0000;
- const USHORT TXF_NO_WORD_WRAP = 0x0001;
-
- class EXPORT UIW_TEXT : public UIW_STRING
- {
- public:
- // Members described in UIW_TEXT reference chapter.
- USHORT txFlags;
-
- UIW_TEXT(int left, int top, int width, int height, char *text,
- short maxLength, USHORT txFlags = TXF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_TEXT(void) { }
- const char *DataGet(void) { return text; }
- void DataSet(char *newText, short maxLength = -1);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_TEXT(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_TEXT(name, file, loadFlags) :
- new UIW_TEXT(0, 0, 10, 4, "", 10)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Protected members described in UIW_TEXT reference chapter.
- short cellHeight;
- short cellWidth;
- short width;
- short height;
-
- #ifndef ZIL_MSWINDOWS
- short cursorRow;
- short cursorCol;
- short cursorDesiredCol;
- short pixelBorder;
-
- char *AdvanceColumns(char *ptr, int num_cols, int *result_col);
- void BackspaceKey(void);
- void ComputeMousePosition(int mouse_col, int mouse_row);
- void ComputeRegion(int ccode, UI_REGION ®ion, UI_PALETTE *palette);
- void ComputeScroll(void);
- void CopyBlock(void);
- void DeleteBlock(char *block, USHORT length);
- void DeleteEol(void);
- void DeleteWord(void);
- void EnterKey(void);
- void Home(void);
- void InsertBlock(char *insertPoint, char *block, USHORT length);
- int LastLine(void);
- void LeftArrow(void);
- void MoveDown(USHORT numLines, int ccode);
- void MoveUp(USHORT numLines, int ccode);
- void PasteBlock(void);
- char *PreviousLine(char *line, USHORT num_lines, int col, char *base);
- void Redisplay(UI_REGION ®ion, int ccode);
- void RegularKey(USHORT key);
- void ReplaceChar(char *buff, USHORT key);
- void UpdateCursor(UI_REGION ®ion);
- void WordTabLeft(void);
- #endif
- };
-
- // ----- UI_FORMATTED_STRING ------------------------------------------------
- // ----- member functions found in FMTSTR.CPP & D_FMTSTR.CPP ----------------
-
- class EXPORT UIW_FORMATTED_STRING : public UI_WINDOW_OBJECT
- {
- public:
- // Members described in UIW_FORMATTED_STRING reference chapter.
- UIW_FORMATTED_STRING(int left, int top, int width, char *text,
- char *editMask, char *literalMask, USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_FORMATTED_STRING(void);
- const char *DataGet(void) { return state.text; }
- void DataSet(char *newText);
- virtual int Event(const UI_EVENT &event);
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_FORMATTED_STRING(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { return ((name || file) ? new UIW_FORMATTED_STRING(name, file, loadFlags) :
- new UIW_FORMATTED_STRING(0, 0, 10, "****", "AAAA", "****")); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
-
- protected:
- // Members described in UIW_FORMATTED_STRING reference chapter.
- class EXPORT FS_STATE
- {
- public:
- int isMarked;
- UCHAR cursor;
- char *text;
-
- FS_STATE(void) : isMarked(FALSE), cursor(0), text(NULL) { }
- FS_STATE(FS_STATE& src);
- ~FS_STATE(void) { if (text) delete text; }
-
- void operator = (FS_STATE& src);
- int operator == (FS_STATE& rightOperand);
- int operator != (FS_STATE& rightOperand);
- };
-
- UCHAR fieldWidth;
- UCHAR maskLen;
- char *editMask;
- char *literalMask;
- FS_STATE state;
-
- void BackspaceKey(void);
- int CalcLeading(int width, char *dText);
- void CopyBlock(void);
- void CutBlock(void);
- void DeleteKey(void);
- int Expand(char *expandedText);
- int ExpandedColumn(void);
- void FixText(void);
- void PasteBlock(void);
- void Redisplay(UI_REGION ®ion, short width, char *dText);
- void RegularKey(USHORT key);
- void SetCursor(int column, int width);
- int TextLength(void);
- void UpdateCursor(UI_REGION ®ion, int width, char *dText, int cursorColumn);
- int ValidateMask(int editValue, int textValue);
- };
-
- // ----- UIW_NUMBER ---------------------------------------------------------
- // ----- member functions found in NUM*.CPP, INT.CPP, REAL.CPP, -------------
-
- #define NUM_MAX_TEXT_LEN 25
- #define NMF_DECIMAL_FLAGS 0x000F
-
- // --- nmFlags ---
- #define NMF_DECIMAL(num) (((num & 0xF) + 1))
- const USHORT NMF_NO_FLAGS = 0x0000;
- const USHORT NMF_DECIMAL_FLOAT = 0x000F;
- const USHORT NMF_CURRENCY = 0x0010; // Currency symbol
- const USHORT NMF_CREDIT = 0x0020; // Credit symbols on negative numbers.
- const USHORT NMF_COMMAS = 0x0040; // Commas
- const USHORT NMF_PERCENT = 0x0080; // Percent
- const USHORT NMF_SCIENTIFIC = 0x0100; // Scientific notation
- const USHORT NMF_UNSIGNED = 0x0200;
-
- class EXPORT UIW_NUMBER : public UI_WINDOW_OBJECT
- {
- public:
- // Public members described in UIW_NUMBER reference chapter.
- USHORT nmFlags;
- int insertMode;
-
- UIW_NUMBER(int left, int top, int width, char *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, unsigned char *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, short *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, unsigned short *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, int *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, unsigned int *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, long *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, unsigned long *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, float *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- UIW_NUMBER(int left, int top, int width, double *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL);
- virtual ~UIW_NUMBER(void);
- void DataSet(void *value);
- const void *DataGet(void) { return value; }
- virtual int Event(const UI_EVENT &event);
-
- protected:
- // Protected members described in UIW_NUMBER reference chapter.
- enum NUM_TYPE
- {
- NUM_CHAR,
- NUM_SHORT,
- NUM_LONG,
- NUM_FLOAT,
- NUM_DOUBLE
- };
-
- class EXPORT NUM_STATE
- {
- public:
- UCHAR isNegative;
- UCHAR isMarked;
- UCHAR cursor; // Index to cursor position.
- char text[NUM_MAX_TEXT_LEN];
-
- int operator == (NUM_STATE& rightOperand);
- int operator != (NUM_STATE& rightOperand);
- };
-
- NUM_STATE state;
- UCHAR maxTextLen;
- UCHAR decimal; // 0 = none, 0xFF = floating
- UCHAR type;
- void *value;
- char *range;
- void (UIW_NUMBER::*BinaryToAscii)(void);
- void (UIW_NUMBER::*AsciiToBinary)(void);
- int (UIW_NUMBER::*ValidNumber)(void);
- UCHAR switchedToReplaceMode;
-
- void AsciiToReal(void);
- void AsciiToWhole(void);
- void BackspaceKey(void);
- int CalcLeading(int width, char *dText);
- void Constructor(void *value, int width, USHORT flags, char *_range,
- void (UIW_NUMBER::*BinaryToAscii)(),
- void (UIW_NUMBER::*AsciiToBinary)(),
- int (UIW_NUMBER::*ValidNumber)(),
- int (*validate)(void *object, int ccode) = 0);
- void CopyBlock(void);
- void CutBlock(void);
- void DeleteChar(void);
- void Expand(char *expText, int *cursorColumn);
- static void FixNegative(char *buffer, int credit);
- void FixText(void);
- void FormatNumber(void);
- void FormatNumericBuffer(char *buffer, UCHAR maximumLength);
- int ParseRange(char *buffer, int offset, char *minValue, char *maxValue);
- void PasteBlock(void);
- static void PlaceCommas(char *buffer);
- static void PlaceDecimal(char *buffer, int decimal);
- int RangeError(char *range);
- void RealToAscii(void);
- void Redisplay(UI_REGION ®ion, int width, char *dText);
- void RegularChar(USHORT key);
- void RegularKey(USHORT key);
- void SetCursor(int column, int width);
- void ShiftDecimal(int shiftCount);
- void UpdateCursor(UI_REGION ®ion, int width, char *dText, int cursorColumn);
- static int ValidNumChar(char value, int decimalPoint);
- int ValidWhole(void);
- int ValidWholeInRange(char *range);
- int ValidWholeBetween(char *minValue, char *maxValue);
- int ValidRealBetween(char *minValue, char *maxValue);
- int ValidRealInRange(char *_range);
- int ValidRealNumber(void);
- int ValidWholeNumber(void);
- void WholeToAscii(void);
-
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event) { return (UI_WINDOW_OBJECT::Editor(event)); }
- #endif
- #ifdef ZIL_LOAD
- UIW_NUMBER(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS) :
- UI_WINDOW_OBJECT(name, file, loadFlags) { }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS)
- { UI_WINDOW_OBJECT::Store(name, file, storeFlags); }
- #endif
- };
-
- // ----- UIW_INTEGER --------------------------------------------------------
- // ----- member functions found in D_INT.CPP --------------------------------
-
- class EXPORT UIW_INTEGER : public UIW_NUMBER
- {
- public:
- UIW_INTEGER(int left, int top, int width, char *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, unsigned char *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, short *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, unsigned short *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, int *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, (short *)value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, unsigned int *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, (unsigned short *)value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, long *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_INTEGER(int left, int top, int width, unsigned long *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_INTEGER(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { short sValue = 0; return ((name || file) ? new UIW_INTEGER(name, file, loadFlags) :
- new UIW_INTEGER(0, 0, 10, &sValue)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
- };
-
- // ----- UIW_REAL -----------------------------------------------------------
- // ----- member functions found in D_REAL.CPP -------------------------------
-
- class EXPORT UIW_REAL : public UIW_NUMBER
- {
- public:
- UIW_REAL(int left, int top, int width, float *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
- UIW_REAL(int left, int top, int width, double *value,
- char *range = NULL, USHORT nmFlags = MNF_NO_FLAGS,
- USHORT woFlags = WOF_BORDER | WOF_AUTO_CLEAR,
- int (*validate)(void *object, int ccode) = NULL) :
- UIW_NUMBER(left, top, width, value, range, nmFlags, woFlags, validate) { }
-
- // Public members described in UI_WINDOW_OBJECT reference chapter.
- #ifdef ZIL_DESIGNER
- virtual int Editor(const UI_EVENT &event);
- #endif
- #ifdef ZIL_LOAD
- UIW_REAL(const char *name, UI_STORAGE *file = NULL, USHORT loadFlags = L_NO_FLAGS);
- static UI_WINDOW_OBJECT *New(const char *name, UI_STORAGE *file, USHORT loadFlags)
- { float fValue = 0.0; return ((name || file) ? new UIW_REAL(name, file, loadFlags) :
- new UIW_REAL(0, 0, 10, &fValue)); }
- #endif
- #ifdef ZIL_STORE
- virtual void Store(const char *name, UI_STORAGE *file = NULL, USHORT storeFlags = S_NO_FLAGS);
- #endif
- };
-
- // ----- UI_JUMP_ELEMENT & UI_JUMP_LIST -------------------------------------
- // ----- member functions found in JUMP.CPP ---------------------------------
-
- #if defined(ZIL_LOAD) | defined(ZIL_STORE)
- extern class EXPORT UI_WINDOW_OBJECT;
- class EXPORT UI_JUMP_ELEMENT : public UI_ELEMENT
- {
- public:
- char name[32];
- char codeName[32];
- int type;
- int used;
- UI_WINDOW_OBJECT *(*newFunction)(const char *name, UI_STORAGE *file, USHORT loadFlags);
-
- UI_JUMP_ELEMENT(char *name, char *codeName, int type,
- UI_WINDOW_OBJECT *(*newFunction)(const char *name, UI_STORAGE *file, USHORT loadFlags));
- UI_JUMP_ELEMENT(int type, UI_WINDOW_OBJECT *(*newFunction)(const char *name, UI_STORAGE *file, USHORT loadFlags));
- ~UI_JUMP_ELEMENT(void) { }
-
- static int FindName(void *object, void *matchName);
- static int FindType(void *object, void *matchType);
-
- UI_JUMP_ELEMENT *Next(void) { return((UI_JUMP_ELEMENT *)next); }
- UI_JUMP_ELEMENT *Previous(void) { return((UI_JUMP_ELEMENT *)previous); }
- };
-
- class EXPORT UI_JUMP_LIST : public UI_LIST
- {
- public:
- static UI_JUMP_LIST _jumpList;
-
- UI_JUMP_LIST(void);
- UI_JUMP_ELEMENT *First(void) { return((UI_JUMP_ELEMENT *)first); }
- UI_JUMP_ELEMENT *Last(void) { return((UI_JUMP_ELEMENT *)last); }
- void GetFunction(const char *name, UI_WINDOW_OBJECT *(**newFunction)(const char *name, UI_STORAGE *file, USHORT loadFlags));
- void GetFunction(int type, UI_WINDOW_OBJECT *(**newFunction)(const char *name, UI_STORAGE *file, USHORT loadFlags));
- };
- #endif
-
- // ----- UI_ERROR_SYSTEM & UI_ERROR_WINDOW_SYSTEM ---------------------------
- // ----- member functions found in ERROR.CPP, ERRORWIN.CPP ------------------
-
- class EXPORT UI_ERROR_SYSTEM
- {
- public:
- // Public members described in UI_ERROR_SYSTEM reference chapter.
- virtual ~UI_ERROR_SYSTEM(void) { }
- virtual void Beep(void);
- virtual void ReportError(UI_WINDOW_MANAGER *windowManager,
- USHORT objectFlags, char *format, ...);
- };
-
- class EXPORT UI_ERROR_WINDOW_SYSTEM : public UI_ERROR_SYSTEM, public UIW_WINDOW
- {
- public:
- // Public members described in UI_ERROR_WINDOW_SYSTEM reference chapter.
- UI_ERROR_WINDOW_SYSTEM(void);
- virtual ~UI_ERROR_WINDOW_SYSTEM(void);
- virtual void ReportError(UI_WINDOW_MANAGER *windowManager,
- USHORT objectFlags, char *format, ...);
-
- private:
- // Protected members described in UI_ERROR_WINDOW_SYSTEM reference chapter.
- char *message;
- };
-
- extern UI_ERROR_SYSTEM *_errorSystem;
-
- // ----- UI_HELP_SYSTEM & UI_HELP_WINDOW_SYSTEM -----------------------------
- // ----- member functions found in HELP.CPP, HELPWIN.CPP --------------------
-
- class EXPORT UI_HELP_SYSTEM
- {
- public:
- // Public members described in UI_HELP_SYSTEM reference chapter.
- UI_HELP_SYSTEM(void) { }
- virtual ~UI_HELP_SYSTEM(void) { }
- virtual void DisplayHelp(UI_WINDOW_MANAGER *windowManager, USHORT helpContext);
- };
-
- class EXPORT UI_HELP_WINDOW_SYSTEM : public UI_HELP_SYSTEM, public UIW_WINDOW
- {
- public:
- // Public members described in UI_HELP_WINDOW_SYSTEM reference chapter.
- UCHAR installed;
-
- UI_HELP_WINDOW_SYSTEM(char *helpFileName, UI_WINDOW_MANAGER *windowManager,
- USHORT defaultHelpContext = NO_HELP_CONTEXT);
- ~UI_HELP_WINDOW_SYSTEM(void);
-
- void DisplayHelp(UI_WINDOW_MANAGER *windowManager, USHORT helpContext);
-
- private:
- // Private UI_HELP_WINDOW_SYSTEM members are not documented.
- UI_STORAGE *storage;
- UIW_TITLE *titleField;
- char *title;
- UIW_TEXT *messageField;
- char *message;
- USHORT defaultHelpContext;
-
- static void ItemClose(void *item, UI_EVENT &event)
- { event.type = S_CLOSE; ((UIW_PULL_DOWN_ITEM *)item)->eventManager->Put(event, Q_BEGIN); }
- };
-
- extern UI_HELP_SYSTEM *_helpSystem;
-
- #endif // UI_WIN_HPP
-