home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_144 / 9.ddi / TVSRC.ZIP / TEDITWND.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  3.3 KB  |  125 lines

  1. /*------------------------------------------------------------*/
  2. /* filename - teditwnd.cpp                                    */
  3. /*                                                            */
  4. /* function(s)                                                */
  5. /*            TEditWindow member functions                    */
  6. /*------------------------------------------------------------*/
  7.  
  8. /*------------------------------------------------------------*/
  9. /*                                                            */
  10. /*    Turbo Vision -  Version 1.0                             */
  11. /*                                                            */
  12. /*                                                            */
  13. /*    Copyright (c) 1991 by Borland International             */
  14. /*    All Rights Reserved.                                    */
  15. /*                                                            */
  16. /*------------------------------------------------------------*/
  17.  
  18. #define Uses_TFrame
  19. #define Uses_TWindow
  20. #define Uses_TRect
  21. #define Uses_TIndicator
  22. #define Uses_TEditor
  23. #define Uses_TMemo
  24. #define Uses_TFileEditor
  25. #define Uses_TEditWindow
  26. #define Uses_TEvent
  27. #define Uses_TScrollBar
  28. #define Uses_opstream
  29. #define Uses_ipstream
  30. #include <tv.h>
  31.  
  32. const TPoint minEditWinSize = {24, 6};
  33.  
  34. TEditWindow::TEditWindow( const TRect& bounds,
  35.                           const char *fileName,
  36.                           int aNumber
  37.                         ) :
  38.     TWindow( bounds, 0, aNumber ),
  39.     TWindowInit( &TEditWindow::initFrame )
  40. {
  41.     options |= ofTileable;
  42.  
  43.     TScrollBar *hScrollBar =
  44.         new TScrollBar( TRect( 18, size.y - 1, size.x - 2, size.y ) );
  45.     hScrollBar->hide();
  46.     insert(hScrollBar);
  47.  
  48.     TScrollBar *vScrollBar =
  49.         new TScrollBar( TRect( size.x - 1, 1, size.x, size.y - 1 ) );
  50.     vScrollBar->hide();
  51.     insert(vScrollBar);
  52.  
  53.     TIndicator *indicator =
  54.         new TIndicator( TRect( 2, size.y - 1, 16, size.y ) );
  55.     indicator->hide();
  56.     insert(indicator);
  57.  
  58.  
  59.     TRect r( getExtent() );
  60.     r.grow(-1, -1);
  61.     editor = new TFileEditor( r, hScrollBar, vScrollBar, indicator, fileName );
  62.     insert(editor);
  63. }
  64.  
  65. void TEditWindow::close()
  66. {
  67.     if( editor->isClipboard() == True )
  68.         hide();
  69.     else
  70.         TWindow::close();
  71. }
  72.  
  73. const char *TEditWindow::getTitle( short )
  74. {
  75.     if( editor->isClipboard() == True )
  76.         return clipboardTitle;
  77.     else if( *(editor->fileName) == EOS )
  78.         return untitled;
  79.     else
  80.         return editor->fileName;
  81. }
  82.  
  83. void TEditWindow::handleEvent( TEvent& event )
  84. {
  85.     TWindow::handleEvent(event);
  86.     if( event.what == evBroadcast && event.message.command == cmUpdateTitle )
  87.         {
  88.         if( frame != 0 )
  89.             frame->drawView();
  90.         clearEvent(event);
  91.         }
  92. }
  93.  
  94. void TEditWindow::sizeLimits( TPoint& min, TPoint& max )
  95. {
  96.     TWindow::sizeLimits(min, max);
  97.     min = minEditWinSize;
  98. }
  99.  
  100. void TEditWindow::write( opstream& os )
  101. {
  102.     TWindow::write( os );
  103.     os << editor;
  104. }
  105.  
  106. void *TEditWindow::read( ipstream& is )
  107. {
  108.     TWindow::read( is );
  109.     is >> editor;
  110.     return this;
  111. }
  112.  
  113. TStreamable *TEditWindow::build()
  114. {
  115.     return new TEditWindow( streamableInit );
  116. }
  117.  
  118. TEditWindow::TEditWindow( StreamableInit ) :
  119.     TWindow( streamableInit ),
  120.     TWindowInit( streamableInit )
  121. {
  122. }
  123.  
  124.  
  125.