home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / ZINC_6.ZIP / DOSSRC.ZIP / D_PROMPT.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-01  |  3.1 KB  |  101 lines

  1. //    Zinc Interface Library - D_PROMPT.CPP
  2. //    COPYRIGHT (C) 1990, 1991.  All Rights Reserved.
  3. //    Zinc Software Incorporated.  Pleasant Grove, Utah  USA
  4.  
  5. #include "ui_dsn.hpp"
  6. #include "d_help.hlh"
  7. #include <string.h>
  8.  
  9. const int PROMPT_FIELD        = 0x0001;
  10. const int STRINGID_FIELD    = 0x0002;
  11. const int OBJFLAGS_FIELD    = 0x0003;
  12. const int SAVE_FIELD        = 0x0004;
  13. const int CANCEL_FIELD        = 0x0005;
  14. const int HELP_FIELD        = 0x0006;
  15.  
  16. int UIW_PROMPT::Editor(const UI_EVENT &event)
  17. {
  18.     char *windowName = "Prompt";
  19.  
  20.     int ccode = event.type;
  21.     switch (ccode)
  22.     {
  23.     case S_EDIT_OBJECT:
  24.         {
  25.         UI_ITEM _objectFlag[] =
  26.         {
  27.             { WOF_BORDER,             0,                " Border " },
  28.             { 0,                    0,                0 }
  29.         };
  30.         UIW_BUTTON *save, *cancel, *help;
  31.         UIW_STRING *promptField, *stringIDField;
  32.         UIW_MATRIX *objFlagsField;
  33.  
  34.         // Create the prompt editor window.
  35.         UIW_WINDOW *window = new UIW_WINDOW(_centerColumn - 34, _centerLine - 7,
  36.             68, 13, WOF_NO_FLAGS, WOAF_MODAL | WOAF_NO_SIZE);
  37.         *window
  38.             + new UIW_BORDER
  39.             + &(*new UIW_SYSTEM_BUTTON
  40.                 + new UIW_POP_UP_ITEM("~Move", MNIF_MOVE, BTF_NO_TOGGLE, WOF_NO_FLAGS)
  41.                 + new UIW_POP_UP_ITEM("~Close", MNIF_CLOSE, BTF_NO_TOGGLE, WOF_NO_FLAGS))
  42.             + new UIW_TITLE(windowName)
  43.  
  44.             + new UIW_PROMPT(2, 1, "Prompt:", WOF_NO_FLAGS)
  45.             + (promptField = new UIW_STRING(10, 1, 20, prompt, 100, STF_NO_FLAGS, WOF_BORDER | WOF_AUTO_CLEAR, 0))
  46.  
  47.             + new UIW_PROMPT(32, 1, "StringID:", WOF_NO_FLAGS)
  48.             + (stringIDField = new UIW_STRING(42, 1, 22, search.stringID, 100, STF_VARIABLE_NAME, WOF_BORDER, 0))
  49.             + new UIW_PROMPT(32, 3, "Flags:", WOF_NO_FLAGS)
  50.             + new UIW_SCROLL_BAR(62, 3, 2, 4, SBF_VERTICAL, WOF_NO_FLAGS)
  51.             + (objFlagsField = new UIW_MATRIX(42, 3, 20, 4, woFlags, _objectFlag))
  52.  
  53.             + (save = new UIW_BUTTON(14, 9, 10, "~Save",
  54.                 BTF_NO_TOGGLE | BTF_AUTO_SIZE,
  55.                 WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Save))
  56.             + (cancel = new UIW_BUTTON(29, 9, 10, "~Cancel",
  57.                 BTF_NO_TOGGLE | BTF_AUTO_SIZE,
  58.                 WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Cancel))
  59.             + (help = new UIW_BUTTON(44, 9, 10, "~Help",
  60.                 BTF_NO_TOGGLE | BTF_AUTO_SIZE,
  61.                 WOF_BORDER | WOF_JUSTIFY_CENTER, UI_DESIGN_MANAGER::Help));
  62.  
  63.         // Identify key fields.
  64.         window->StringID(windowName);
  65.         promptField->NumberID(PROMPT_FIELD);
  66.         stringIDField->NumberID(STRINGID_FIELD);
  67.         objFlagsField->NumberID(OBJFLAGS_FIELD);
  68.         save->NumberID(SAVE_FIELD);
  69.         cancel->NumberID(CANCEL_FIELD);
  70.         help->NumberID(HELP_FIELD);
  71.         save->userObject = cancel->userObject = help->userObject = this;
  72.         help->value = HELP_PROMPT;
  73.  
  74.         *windowManager + window;
  75.         break;
  76.         }
  77.  
  78.     case S_SAVE_OBJECT:
  79.         {
  80.         UIW_WINDOW *window = (UIW_WINDOW *)windowManager->Get(windowName);
  81.  
  82.         UIW_STRING *stringIDField = (UIW_STRING *)window->Get(STRINGID_FIELD);
  83.         StringID(stringIDField->DataGet());
  84.  
  85.         SaveFlags((UIW_MATRIX *)window->Get(OBJFLAGS_FIELD), &woFlags);
  86.         woFlags |= WOF_NON_SELECTABLE;
  87.  
  88.         UIW_STRING *promptField = (UIW_STRING *)window->Get(PROMPT_FIELD);
  89.         UIW_PROMPT::DataSet((char *)promptField->DataGet());
  90.         break;
  91.         }
  92.  
  93.     default:
  94.         ccode = UI_WINDOW_OBJECT::Editor(event);
  95.         break;
  96.     }
  97.  
  98.     // Return the control code.
  99.     return (ccode);
  100. }
  101.