summaryrefslogtreecommitdiff
path: root/sigalatvision/lib/TEditWindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sigalatvision/lib/TEditWindow.cc')
-rw-r--r--sigalatvision/lib/TEditWindow.cc120
1 files changed, 120 insertions, 0 deletions
diff --git a/sigalatvision/lib/TEditWindow.cc b/sigalatvision/lib/TEditWindow.cc
new file mode 100644
index 0000000..83bd5f4
--- /dev/null
+++ b/sigalatvision/lib/TEditWindow.cc
@@ -0,0 +1,120 @@
+/*
+ * TEditWindow.cc
+ *
+ * Turbo Vision - Version 2.0
+ *
+ * Copyright (c) 1994 by Borland International
+ * All Rights Reserved.
+ *
+ * Modified by Sergio Sigala <sergio@sigala.it>
+ */
+
+#define Uses_TFrame
+#define Uses_TWindow
+#define Uses_TRect
+#define Uses_TIndicator
+#define Uses_TEditor
+#define Uses_TMemo
+#define Uses_TFileEditor
+#define Uses_TEditWindow
+#define Uses_TEvent
+#define Uses_TScrollBar
+#define Uses_opstream
+#define Uses_ipstream
+#include <tvision/tv.h>
+
+const TPoint minEditWinSize = {24, 6};
+
+TEditWindow::TEditWindow( const TRect& bounds,
+ const char *fileName,
+ int aNumber
+ ) :
+ TWindow( bounds, 0, aNumber ),
+ TWindowInit( &TEditWindow::initFrame )
+{
+ options |= ofTileable;
+
+ TScrollBar *hScrollBar =
+ new TScrollBar( TRect( 18, size.y - 1, size.x - 2, size.y ) );
+ hScrollBar->hide();
+ insert(hScrollBar);
+
+ TScrollBar *vScrollBar =
+ new TScrollBar( TRect( size.x - 1, 1, size.x, size.y - 1 ) );
+ vScrollBar->hide();
+ insert(vScrollBar);
+
+ TIndicator *indicator =
+ new TIndicator( TRect( 2, size.y - 1, 16, size.y ) );
+ indicator->hide();
+ insert(indicator);
+
+
+ TRect r( getExtent() );
+ r.grow(-1, -1);
+ editor = new TFileEditor( r, hScrollBar, vScrollBar, indicator, fileName );
+ insert(editor);
+}
+
+void TEditWindow::close()
+{
+ if( editor->isClipboard() == True )
+ hide();
+ else
+ TWindow::close();
+}
+
+const char *TEditWindow::getTitle( short )
+{
+ if( editor->isClipboard() == True )
+ return clipboardTitle;
+ else if( *(editor->fileName) == EOS )
+ return untitled;
+ else
+ return editor->fileName;
+}
+
+void TEditWindow::handleEvent( TEvent& event )
+{
+ TWindow::handleEvent(event);
+ if( event.what == evBroadcast && event.message.command == cmUpdateTitle )
+ {
+ if( frame != 0 )
+ frame->drawView();
+ clearEvent(event);
+ }
+}
+
+void TEditWindow::sizeLimits( TPoint& min, TPoint& max )
+{
+ TWindow::sizeLimits(min, max);
+ min = minEditWinSize;
+}
+
+#if !defined(NO_STREAMABLE)
+
+void TEditWindow::write( opstream& os )
+{
+ TWindow::write( os );
+ os << editor;
+}
+
+void *TEditWindow::read( ipstream& is )
+{
+ TWindow::read( is );
+ is >> editor;
+ return this;
+}
+
+TStreamable *TEditWindow::build()
+{
+ return new TEditWindow( streamableInit );
+}
+
+TEditWindow::TEditWindow( StreamableInit ) :
+ TWindow( streamableInit ),
+ TWindowInit( 0 /*streamableInit*/ )
+{
+}
+
+#endif