+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: editorbase.h
-// Purpose: General interfaces for editor plug-ins.
-// Author: Aleksandras Gluchovas
-// Modified by:
-// Created: 11/04/1999
-// RCS-ID: $Id$
-// Copyright: (c) Aleskandars Gluchovas
-// Licence: GNU General Public License wxWindows licence v2.0
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __EDITORBASE_G__
-#define __EDITORBASE_G__
-
-#include "plugin.h"
-#include "wx/window.h"
-
-class wxsSourceEditorPlugin : public wxsComponent
-{
-protected:
- string mFileName;
-
-public:
- /*** overridables (with default implementations) ***/
-
- // user-level commands
-
- virtual void OnOpen( const string& fname ) = 0;
- virtual void OnSave( const string& fname ) = 0;
-
- virtual void OnCopy() {}
- virtual void OnCut() {}
- virtual void OnPaste() {}
- virtual void OnDelete() {}
-
- virtual void OnUndo() {}
- virtual void OnRedo() {}
-
- virtual void SelectAll() {}
-
- // NOTE:: column -1 should result cursor to appear
- // at the start of the first word in the line (if any)
-
- virtual void OnGotoLine( int lineNo, int column = -1 ) {}
-
- // should invoke editor's own "goto-line" dialog
- virtual void OnGotoLine() {}
-
- virtual void OnProperties() {}
-
- virtual void OnFind() {}
- virtual void OnFindNext() {}
- virtual void OnFindPrevious() {}
- virtual void OnReplace() {}
-
- virtual void OnToggleBookmark() {}
- virtual void OnNextBookmark() {}
- virtual void OnPreviousBookmark() {}
- virtual void OnShowBookmarks() {}
-
- virtual void SetCheckpoint() {}
- virtual bool CheckpointModified() { return TRUE; }
-
- // UI-updates
-
- virtual bool CanCopy() { return FALSE; }
- virtual bool CanCut() { return FALSE; }
- virtual bool CanPaste() { return FALSE; }
- virtual bool CanUndo() { return FALSE; }
- virtual bool CanRedo() { return FALSE; }
-
- // accesed by framework
-
- virtual bool IsModified() { return TRUE; }
-
- // returned buffer is NULL, if operation is not supported
- // by this concrete editor
-
- virtual void GetAllText( char** ppBuf, size_t* length )
-
- { *ppBuf = NULL; *length = 0; }
-
- virtual string FindWordAtCursor() = 0;
-
- // returned line and column are -1s, if operation
- // is not supported this concrete editor
-
- virtual void GetCursorPos( int* line, int* column )
-
- { *line = -1; *column = -1; }
-
- virtual void GetPagePos( int* line, int* column )
-
- { *line = -1; *column = -1; }
-
- virtual void SetCursorPos( int line, int column ) {}
-
- // returned buffer is NULL, if operation is not supported
- // by this concrete editor,
- // (NOTE: range is given from "fromLine", but not
- // including tillLine, [fomrLine,tillLine) )
-
- virtual void GetText( int fromLine, int fromColumn,
- int tillLine, int tillColumn,
- char** ppBuf, size_t* length )
- { ppBuf = NULL; }
-
- virtual void InsertText( int line, int column,
- char* text, size_t lenght )
- {}
-
- virtual void DeleteText( int fromLine, int fromColumn,
- int tillLine, int tillColumn )
- {}
-
- virtual void PositionToXY( int line, int column, int* x, int* y )
-
- { *x = -1; *y = -1; }
-
- virtual void GetSelectionRange( int* fromLine, int* fromColumn,
- int* tillLine, int* tillColumn )
-
- { *fromLine = -1; // not supported by default
- }
-
- virtual wxSize GetCharacterSize() { return wxSize(-1,-1); }
-
- virtual bool IsUnixText()
-
-// default impl., actual implementation should use auto-detection
-
-#ifdef __WINDOWS__
- { return FALSE; }
-#else
- { return TRUE; }
-#endif
-
- // requests editor to keep cursor blinking, even when
- // the window has lost it's focus
-
- virtual void HoldCursor( bool hold )
- {}
-
- virtual string GetFileName() { return mFileName; }
- virtual void SetFileName( const string& fname ) { mFileName = fname; }
-
- // overriden methods of wxStudioPluginBase
- virtual WXS_PLUGIN_TYPE GetType() {return WXS_EDITOR_PLUGIN;}
- virtual string GetCategory() { return "Editor";}
-};
-
-#endif
- // __EDITORBASE_G__