home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR4 / SCRLDLG.ZIP / SCRLDLG.CPP < prev    next >
C/C++ Source or Header  |  1993-09-16  |  1KB  |  49 lines

  1. #define Uses_ScrollDialog
  2. // =================================================
  3. #define Uses_TDialog
  4. // =================================================
  5. #define Uses_ScrollGroup
  6. // =================================================
  7. #define Uses_TGroup
  8. // =================================================
  9.  
  10. #define Uses_TScrollBar
  11. #define Uses_TEvent
  12. #define Uses_TKeys
  13. // =================================================
  14. #include <tv.h>
  15. #include "Dlg.h"
  16. // =================================================
  17.  
  18. ScrollDialog::ScrollDialog(const TRect& bounds, const char* aTitle, ushort f) :
  19.     TDialog(bounds, aTitle),
  20.     TWindowInit(initFrame),
  21.     scrollGroup(0)
  22. {
  23.     TScrollBar* hsb = 0;
  24.     TScrollBar* vsb = 0;
  25.  
  26.     if(f & sbHorizontal)
  27.         hsb = standardScrollBar(sbHorizontal|sbHandleKeyboard);
  28.     if(f & sbVertical)
  29.         vsb = standardScrollBar(sbVertical|sbHandleKeyboard);
  30.  
  31.     TRect r = getExtent();
  32.     r.grow(-1,-1);
  33.     scrollGroup = new ScrollGroup(r, hsb, vsb);
  34.     scrollGroup->growMode = gfGrowHiX | gfGrowHiY;
  35.     insert(scrollGroup);
  36. }
  37.  
  38. void ScrollDialog::handleEvent(TEvent& event)
  39. {
  40.     if(event.what == evKeyDown &&
  41.         (event.keyDown.keyCode == kbTab ||
  42.             event.keyDown.keyCode == kbShiftTab))
  43.         {
  44.         scrollGroup->selectNext(Boolean(event.keyDown.keyCode == kbShiftTab));
  45.         clearEvent(event);
  46.         }
  47.     TDialog::handleEvent(event);
  48. }
  49.