summaryrefslogtreecommitdiff
path: root/rhtvision/classes/tvedit1.cc
diff options
context:
space:
mode:
Diffstat (limited to 'rhtvision/classes/tvedit1.cc')
-rw-r--r--rhtvision/classes/tvedit1.cc180
1 files changed, 180 insertions, 0 deletions
diff --git a/rhtvision/classes/tvedit1.cc b/rhtvision/classes/tvedit1.cc
new file mode 100644
index 0000000..b3d1f28
--- /dev/null
+++ b/rhtvision/classes/tvedit1.cc
@@ -0,0 +1,180 @@
+/* Modified by Robert Hoehne and Salvador Eduardo Tropea for the gcc port */
+/* Modified by Vadim Beloborodov to be used on WIN32 console */
+/* Modified to compile with gcc v3.x by Salvador E. Tropea, with the help of
+ Andris Pavenis. */
+/*----------------------------------------------------------*/
+/* */
+/* Turbo Vision 1.0 */
+/* Copyright (c) 1991 by Borland International */
+/* */
+/* Turbo Vision TVEDIT source file */
+/*----------------------------------------------------------*/
+
+#define Uses_stdarg
+#define Uses_stdlib
+#define Uses_string //strcpy()
+
+#define Uses_TApplication
+#define Uses_TEditWindow
+#define Uses_TDeskTop
+#define Uses_TRect
+#define Uses_TEditor
+#define Uses_TFileEditor
+#define Uses_TFileDialog
+#define Uses_TChDirDialog
+#define Uses_TEditorApp
+#define Uses_TVEdMac
+#define Uses_TVEdConstant
+#define Uses_TScreen
+
+#include <tv.h>
+
+UsingNamespaceStd
+
+TEditWindow *clipWindow;
+
+TEditWindow *TEditorApp::openEditor( const char *fileName, Boolean visible )
+{
+ TRect r = deskTop->getExtent();//TRect(0,0,80,6);
+ TView *p = validView( new TEditWindow( r, fileName, wnNoNumber ) );
+ if( !visible )
+ p->hide();
+ deskTop->insert( p );
+ return (TEditWindow *)p;
+}
+
+TEditorApp::TEditorApp() :
+ TProgInit( TEditorApp::initStatusLine,
+ TEditorApp::initMenuBar,
+ TEditorApp::initDeskTop
+ ),
+ TApplication()
+{
+
+ TCommandSet ts;
+ ts.enableCmd( cmSave );
+ ts.enableCmd( cmSaveAs );
+ ts.enableCmd( cmCut );
+ ts.enableCmd( cmCopy );
+ ts.enableCmd( cmPaste );
+ ts.enableCmd( cmClear );
+ ts.enableCmd( cmUndo );
+ ts.enableCmd( cmFind );
+ ts.enableCmd( cmReplace );
+ ts.enableCmd( cmSearchAgain );
+ disableCommands( ts );
+
+ TEditor::editorDialog = doEditDialog;
+ clipWindow = openEditor( 0, False );
+ if( clipWindow != 0 )
+ {
+ TEditor::clipboard = clipWindow->editor;
+ TEditor::clipboard->canUndo = False;
+ }
+}
+
+void TEditorApp::fileOpen()
+{
+ char fileName[PATH_MAX];
+ strcpy( fileName, "*" );
+
+ if( execDialog( new TFileDialog( "*", "Open file",
+ "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
+ openEditor( fileName, True );
+}
+
+void TEditorApp::fileNew()
+{
+ openEditor( 0, True );
+}
+
+void TEditorApp::changeDir()
+{
+ execDialog( new TChDirDialog( cdNormal, 0 ), 0 );
+}
+
+void TEditorApp::dosShell()
+{
+ if( TScreen::noUserScreen() )
+ return;
+ suspend();
+ TScreen::System(CLY_GetShellName());
+ resume();
+ redraw();
+}
+
+void TEditorApp::showClip()
+{
+ clipWindow->select();
+ clipWindow->show();
+}
+
+void TEditorApp::tile()
+{
+ deskTop->tile( deskTop->getExtent() );
+}
+
+void TEditorApp::cascade()
+{
+ deskTop->cascade( deskTop->getExtent() );
+}
+
+
+
+void TEditorApp::handleEvent( TEvent& event )
+{
+ TApplication::handleEvent( event );
+ if( event.what != evCommand )
+ return;
+ else
+ switch( event.message.command )
+ {
+ case cmOpen:
+ if( event.message.infoPtr ) // JASC 2006, drag 'n' drop support
+ openEditor( (char *)event.message.infoPtr, True );
+ else
+ fileOpen();
+ break;
+
+ case cmNew:
+ fileNew();
+ break;
+
+ case cmChangeDrct:
+ changeDir();
+ break;
+
+ case cmCallShell:
+ dosShell();
+ break;
+
+ case cmShowClip:
+ showClip();
+ break;
+
+ case cmTile:
+ tile();
+ break;
+
+ case cmCascade:
+ cascade();
+ break;
+
+ default:
+ return ;
+ }
+ clearEvent( event );
+}
+
+#ifdef TEST
+int main(int argc, char *argv[])
+{
+ TEditorApp *myApp=new TEditorApp();
+ if (myApp)
+ {
+ myApp->run();
+ delete myApp;
+ }
+ return 0;
+}
+#endif