home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / Pedestal / Source / Sources / Views / PedViewScrollerSimple.cc < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-24  |  1.8 KB  |  106 lines

  1. /*    ========================
  2.  *    PedViewScrollerSimple.cc
  3.  *    ========================
  4.  */
  5.  
  6. #include "PedestalDebugging.h"
  7.  
  8. #include "PedViewScrollerSimple.hh"
  9. #include "PedPaneSubView.hh"
  10. #include "PedViewScroll.hh"
  11. #include "PedScrollbar.hh"
  12.  
  13.  
  14. PedViewScrollerSimple::PedViewScrollerSimple(PedPaneSubView &inSuperPane)
  15. : PedViewScroller(inSuperPane), mPane(NULL)
  16. {
  17.     mPane = new PedPaneSubView(*this);
  18.     //mPane->Resize(mFrame.right - 15, mFrame.bottom - 15);
  19.     mScrollView = new PedViewScroll(*mPane);
  20.     mPane->SetSubView(mScrollView);
  21. }
  22.  
  23. PedViewScrollerSimple::~PedViewScrollerSimple()
  24. {
  25.     if (mPane) mPane->release();
  26.     if (mScrollView) mScrollView->release();
  27. }
  28.  
  29. void
  30. PedViewScrollerSimple::Dispose()
  31. {
  32.     PedViewScroller::Dispose();
  33.     if (mScrollView) {
  34.         mScrollView->Dispose();
  35.         mScrollView->release();
  36.         mScrollView = NULL;
  37.     }
  38.     if (mPane) {
  39.         mPane->Dispose();
  40.         mPane->release();
  41.         mPane = NULL;
  42.     }
  43. }
  44.  
  45.  
  46. PedViewScroll *
  47. PedViewScrollerSimple::ScrollView()
  48. {
  49.     return mScrollView;
  50. }
  51.  
  52. PedPane *
  53. PedViewScrollerSimple::Pane()
  54. {
  55.     return mScrollView ? mScrollView->Pane() : NULL;
  56. }
  57.  
  58. PedPane *
  59. PedViewScrollerSimple::MyPane()
  60. {
  61.     return mPane;
  62. }
  63.  
  64. void 
  65. PedViewScrollerSimple::SetPane(PedPane *inPane)
  66. {
  67.     if (mScrollView) {
  68.         mScrollView->SetPane(inPane);
  69.     }
  70.     Calibrate();
  71. }
  72.  
  73.  
  74. void
  75. PedViewScrollerSimple::Scroll(short inH, short inV, bool inUpdate)
  76. {
  77.     PedViewScroll *scrollview = ScrollView();
  78.     if (scrollview) {
  79.         scrollview->Scroll(inH, inV, inUpdate);
  80.     }
  81.     Calibrate();
  82. }
  83.  
  84.  
  85. void
  86. PedViewScrollerSimple::GetAperture(Rect &outAperture)
  87. {
  88.     PedViewScroll *scrollview = ScrollView();
  89.     if (scrollview) {
  90.         scrollview->GetFrame(outAperture);
  91.     } else {
  92.         ::SetRect(&outAperture, 0, 0, 0, 0);
  93.     }
  94. }
  95.  
  96. void
  97. PedViewScrollerSimple::GetScrollPos(Point &outPos)
  98. {
  99.     PedViewScroll *scrollview = ScrollView();
  100.     if (scrollview) {
  101.         scrollview->GetScrollPos(outPos);
  102.     } else {
  103.         ::SetPt(&outPos, 0, 0);
  104.     }
  105. }
  106.