home *** CD-ROM | disk | FTP | other *** search
- // Zinc Interface Library - D_DATE.CPP
- // COPYRIGHT (C) 1990, 1991. All Rights Reserved.
- // Zinc Software Incorporated. Pleasant Grove, Utah USA
-
- #include "ui_dsn.hpp"
- #include "d_help.hlh"
-
- const int DATE_FIELD = 0x0001;
- const int RANGE_FIELD = 0x0002;
- const int DTFLAGS_FIELD = 0x0003;
- const int STRINGID_FIELD = 0x0004;
- const int OBJFLAGS_FIELD = 0x0005;
-
- int UIW_DATE::Editor(const UI_EVENT &event)
- {
- char *windowName = "Date";
-
- int ccode = event.type;
- switch (ccode)
- {
- case S_EDIT_OBJECT:
- {
- UI_ITEM _dateFlag[] =
- {
- { DTF_ALPHA_MONTH, 0, " Alpha month " },
- { DTF_DAY_OF_WEEK, 0, " Day-of-week " },
- { DTF_SHORT_DAY, 0, " Short day " },
- { DTF_SHORT_MONTH, 0, " Short month " },
- { DTF_SHORT_YEAR, 0, " Short year " },
- { DTF_ZERO_FILL, 0, " Zero fill " },
- { DTF_DASH, 0, " Dash separator " },
- { DTF_SLASH, 0, " Slash separator " },
- { DTF_UPPER_CASE, 0, " Upper case " },
- { DTF_EUROPEAN_FORMAT, 0, " Force European " },
- { DTF_JAPANESE_FORMAT, 0, " Force Japanese " },
- { DTF_MILITARY_FORMAT, 0, " Force Military " },
- { DTF_US_FORMAT, 0, " Force U.S. " },
- { 0, 0, 0 }
- };
- UI_ITEM _objectFlag[] =
- {
- { WOF_AUTO_CLEAR, 0, " Auto clear " },
- { WOF_BORDER, 0, " Border " },
- { WOF_JUSTIFY_CENTER, 0, " Center Justify " },
- { WOF_JUSTIFY_RIGHT, 0, " Right Justify " },
- { WOF_NON_SELECTABLE, 0, " Non-selectable " },
- { WOF_UNANSWERED, 0, " Begin unanswered " },
- { 0, 0, 0 }
- };
- UIW_BUTTON *save, *cancel, *help;
- UIW_DATE *dateField;
- UIW_STRING *rangeField, *stringIDField;
- UIW_MATRIX *dtFlagsField, *objFlagsField;
-
- // Create the button editor window.
- UIW_WINDOW *window = new UIW_WINDOW(_centerColumn - 35, _centerLine - 8,
- 69, 16, WOF_NO_FLAGS, WOAF_MODAL | WOAF_NO_SIZE);
- *window
- + new UIW_BORDER
- + &(*new UIW_SYSTEM_BUTTON
- + new UIW_POP_UP_ITEM("~Move", MNIF_MOVE, BTF_NO_TOGGLE, WOF_NO_FLAGS)
- + new UIW_POP_UP_ITEM("~Close", MNIF_CLOSE, BTF_NO_TOGGLE, WOF_NO_FLAGS))
- + new UIW_TITLE(windowName)
-
- + new UIW_PROMPT(2, 1, "Date:", WOF_NO_FLAGS)
- + (dateField = new UIW_DATE(9, 1, 22, date, 0, DTF_NO_FLAGS, WOF_BORDER | WOF_AUTO_CLEAR, 0))
- + new UIW_PROMPT(2, 2, "Range:", WOF_NO_FLAGS)
- + (rangeField = new UIW_STRING(9, 2, 22, range, 100, STF_NO_FLAGS, WOF_BORDER | WOF_AUTO_CLEAR, 0))
- + new UIW_PROMPT(2, 4, "Flags:", WOF_NO_FLAGS)
- + new UIW_SCROLL_BAR(29, 4, 2, 6, SBF_VERTICAL, WOF_NO_FLAGS)
- + (dtFlagsField = new UIW_MATRIX(9, 4, 20, 6, dtFlags, _dateFlag))
-
- + new UIW_PROMPT(33, 1, "StringID:", WOF_NO_FLAGS)
- + (stringIDField = new UIW_STRING(43, 1, 22, search.stringID, 100, STF_VARIABLE_NAME, WOF_BORDER | WOF_AUTO_CLEAR, 0))
- + new UIW_PROMPT(33, 4, "Flags:", WOF_NO_FLAGS)
- + new UIW_SCROLL_BAR(63, 4, 2, 6, SBF_VERTICAL, WOF_NO_FLAGS)
- + (objFlagsField = new UIW_MATRIX(43, 4, 20, 6, woFlags, _objectFlag))
-
- + (save = new UIW_BUTTON(14, 12, 10, "~Save",
- BTF_NO_TOGGLE | BTF_AUTO_SIZE,
- WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Save))
- + (cancel = new UIW_BUTTON(29, 12, 10, "~Cancel",
- BTF_NO_TOGGLE | BTF_AUTO_SIZE,
- WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Cancel))
- + (help = new UIW_BUTTON(44, 12, 10, "~Help",
- BTF_NO_TOGGLE | BTF_AUTO_SIZE,
- WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Help));
-
- // Identify key fields.
- window->StringID(windowName);
- dateField->NumberID(DATE_FIELD);
- rangeField->NumberID(RANGE_FIELD);
- dtFlagsField->NumberID(DTFLAGS_FIELD);
- stringIDField->NumberID(STRINGID_FIELD);
- objFlagsField->NumberID(OBJFLAGS_FIELD);
- save->userObject = cancel->userObject = help->userObject = this;
- help->value = HELP_DATE;
-
- *windowManager + window;
- break;
- }
-
- case S_SAVE_OBJECT:
- {
- UIW_WINDOW *window = (UIW_WINDOW *)windowManager->Get(windowName);
-
- SaveFlags((UIW_MATRIX *)window->Get(DTFLAGS_FIELD), &dtFlags);
-
- UIW_STRING *stringIDField = (UIW_STRING *)window->Get(STRINGID_FIELD);
- StringID(stringIDField->DataGet());
-
- SaveFlags((UIW_MATRIX *)window->Get(OBJFLAGS_FIELD), &woFlags);
-
- UIW_STRING *rangeField = (UIW_STRING *)window->Get(RANGE_FIELD);
- if (range) delete range;
- range = ui_strdup(rangeField->DataGet());
-
- UIW_DATE *dateField = (UIW_DATE *)window->Get(DATE_FIELD);
- UIW_DATE::DataSet((UI_DATE *)dateField->DataGet());
- break;
- }
-
- default:
- ccode = UI_WINDOW_OBJECT::Editor(event);
- break;
- }
-
- // Return the control code.
- return (ccode);
- }
-