home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Nuntius 1.2 / src / Nuntius / UNavigatorView.cp < prev    next >
Encoding:
Text File  |  1994-02-20  |  3.6 KB  |  171 lines  |  [TEXT/MPS ]

  1. // Copyright © 1992 Peter Speck, speck@dat.ruc.dk. All rights reserved.
  2. // UNavigatorView.cp
  3.  
  4. #include "UNavigatorView.h"
  5. #include "UFatalError.h"
  6.  
  7. #include <RsrcGlobals.h>
  8.  
  9. #pragma segment MyViewTools
  10.  
  11.  
  12. TNavigatorView::TNavigatorView()
  13. {
  14. }
  15.  
  16.  
  17. pascal void TNavigatorView::Initialize()
  18. {
  19.     inherited::Initialize();
  20. }
  21.  
  22. pascal void TNavigatorView::ReadFields(TStream *aStream)
  23. {
  24.     inherited::ReadFields(aStream);
  25. }
  26.  
  27. pascal void TNavigatorView::DoPostCreate(TDocument *itsDocument)
  28. {
  29.     inherited::DoPostCreate(itsDocument);
  30. }
  31.  
  32. pascal void TNavigatorView::Free()
  33. {
  34.     inherited::Free();
  35. }
  36.  
  37. pascal void TNavigatorView::Draw(const VRect& /* area */)
  38. {
  39.     PenNormal();
  40.     MoveTo(0, 0);
  41.     Line(short(fSize.h), 0);
  42. }
  43.  
  44. pascal void TNavigatorView::ComputeFrame(VRect &newFrame)
  45. {
  46.     newFrame += VPoint(0, fSuperView->fSize.v - newFrame.bottom);
  47. }
  48.  
  49. //============================================================
  50. TNavigatorArrowView::TNavigatorArrowView()
  51. {
  52. }
  53.  
  54.  
  55. pascal void TNavigatorArrowView::Initialize()
  56. {
  57.     inherited::Initialize();
  58.     InitializeSicnFastBits(fArrowFastBits[kNormalArrow]);
  59.     InitializeSicnFastBits(fArrowFastBits[kDimmedArrow]);
  60.     InitializeSicnFastBits(fArrowFastBits[kHighlightArrow]);
  61.     fPortBitsP = nil;
  62.     fIsActive = true;
  63. }
  64.  
  65. pascal void TNavigatorArrowView::ReadFields(TStream *aStream)
  66. {
  67.     inherited::ReadFields(aStream);
  68. #if 0
  69.     fHitCommandNumber = aStream->ReadInteger();
  70.     fRsrcID = aStream->ReadInteger();
  71. #else
  72.     switch (fIdentifier)
  73.     {
  74.         case kNavigatorLeftArrowView: 
  75.             fHitCommandNumber = cPreviousDiscussion; 
  76.             fRsrcID = kNavigatorLeftArrow; 
  77.             break;
  78.  
  79.         case kNavigatorSpaceArrowView: 
  80.             fHitCommandNumber = cMultiSuperNextKey; 
  81.             fRsrcID = kNavigatorSpaceArrow; 
  82.             break;
  83.  
  84.         case kNavigatorRightArrowView: 
  85.             fHitCommandNumber = cNextDiscussion; 
  86.             fRsrcID = kNavigatorRightArrow; 
  87.             break;
  88.  
  89.         default:
  90.             ReportFatalError("default in TNavigatorArrowView::ReadFields");
  91.             break;
  92.     }
  93. #endif
  94. }
  95.  
  96. pascal void TNavigatorArrowView::DoPostCreate(TDocument *itsDocument)
  97. {
  98.     inherited::DoPostCreate(itsDocument);
  99.     fPortBitsP = &GetWindow()->GetGrafPort()->portBits;
  100.     Boolean prevLock = Lock(true);
  101.     GetNewSicnFastBits(fArrowFastBits[kNormalArrow], fRsrcID);
  102.     GetNewSicnFastBits(fArrowFastBits[kDimmedArrow], fRsrcID + 1);
  103.     GetNewSicnFastBits(fArrowFastBits[kHighlightArrow], fRsrcID + 2);
  104.     Lock(prevLock);
  105. }
  106.  
  107. pascal void TNavigatorArrowView::Free()
  108. {
  109.     Boolean prevLock = Lock(true);
  110.     DisposeSicnFastBits(fArrowFastBits[kNormalArrow]);
  111.     DisposeSicnFastBits(fArrowFastBits[kDimmedArrow]);
  112.     DisposeSicnFastBits(fArrowFastBits[kHighlightArrow]);
  113.     Lock(prevLock);
  114.     inherited::Free();
  115. }
  116.  
  117. pascal void TNavigatorArrowView::Draw(const VRect& /* area */)
  118. {
  119.     HighlightType hl;
  120.     if (!fEnabled || !fIsActive)    
  121.         hl = kDimmedArrow;    
  122.     else if (fHilite)
  123.         hl = kHighlightArrow;
  124.     else
  125.         hl = kNormalArrow;
  126.     DrawSicnFastBits(fPortBitsP, fArrowFastBits[hl], CRect(0, 0, 16, 12), CRect(0, 0, 16, 12));
  127. }
  128.  
  129. pascal void TNavigatorArrowView::Hilite()
  130. {
  131.     Draw(VRect());
  132. }
  133.  
  134. pascal void TNavigatorArrowView::DoEvent(EventNumber eventNumber,
  135.                                 TEventHandler *source, TEvent *event)
  136. {
  137.     if (eventNumber == mOKHit)
  138.     {
  139.         TEventHandler *target = gApplication->GetTarget();
  140.         if (target)
  141.             target->DoMenuCommand(fHitCommandNumber);
  142.     }
  143.     inherited::DoEvent(eventNumber, source, event);
  144. }
  145.  
  146. pascal void TNavigatorArrowView::SetEnable(Boolean state)
  147. {
  148.     Boolean update = (state != fEnabled);
  149.     inherited::SetEnable(state);
  150.     if (update)
  151.     {
  152.         Focus();
  153.         Draw(VRect());
  154.     }
  155. }
  156.  
  157. pascal void TNavigatorArrowView::Activate(Boolean entering)
  158. {
  159.     if (entering != fIsActive)
  160.     {
  161.         fIsActive = entering;
  162.         if (fEnabled)
  163.         {
  164.             Focus();
  165.             Draw(VRect());
  166.         }
  167.     }
  168.     inherited::Activate(entering);
  169. }
  170.  
  171.