home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tv20os2.zip / src / TEditWindow.cpp < prev    next >
C/C++ Source or Header  |  1998-01-19  |  3KB  |  121 lines

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