00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef _KATE_DOCUMENT_INCLUDE_
00020
#define _KATE_DOCUMENT_INCLUDE_
00021
00022
#include <ktexteditor/document.h>
00023
#include <ktexteditor/view.h>
00024
#include <ktexteditor/editinterface.h>
00025
#include <ktexteditor/undointerface.h>
00026
#include <ktexteditor/cursorinterface.h>
00027
#include <ktexteditor/documentinfo.h>
00028
#include <ktexteditor/selectioninterface.h>
00029
#include <ktexteditor/selectioninterfaceext.h>
00030
#include <ktexteditor/blockselectioninterface.h>
00031
#include <ktexteditor/searchinterface.h>
00032
#include <ktexteditor/highlightinginterface.h>
00033
#include <ktexteditor/configinterface.h>
00034
#include <ktexteditor/configinterfaceextension.h>
00035
#include <ktexteditor/markinterface.h>
00036
#include <ktexteditor/markinterfaceextension.h>
00037
#include <ktexteditor/wordwrapinterface.h>
00038
#include <ktexteditor/printinterface.h>
00039
#include <ktexteditor/variableinterface.h>
00040
00041
#include <kaction.h>
00042
00043
class KCompletion;
00044
00050 namespace Kate
00051 {
00052
00053
class View;
00054
00055
class KATEPARTINTERFACES_EXPORT Cursor :
public KTextEditor::Cursor
00056 {
00057
public:
00058 Cursor () { ; };
00059
virtual ~Cursor () { ; };
00060 };
00061
00062
class KATEPARTINTERFACES_EXPORT ConfigPage :
public KTextEditor::ConfigPage
00063 {
00064 Q_OBJECT
00065
00066
public:
00067 ConfigPage (
QWidget *parent=0,
const char *name=0 ) : KTextEditor::ConfigPage (parent, name) { ; };
00068
virtual ~ConfigPage () { ; };
00069
00070
public slots:
00071
virtual void apply () { ; };
00072
virtual void reload () { ; };
00073
virtual void reset () {};
00074
virtual void defaults () {};
00075
00076
protected slots:
00077
void slotChanged();
00078 };
00079
00080
class KATEPARTINTERFACES_EXPORT ActionMenu :
public KActionMenu
00081 {
00082 Q_OBJECT
00083
00084
public:
00085 ActionMenu (
const QString& text,
QObject* parent = 0,
const char* name = 0 )
00086 :
KActionMenu(text, parent, name) { ; };
00087
virtual ~ActionMenu () { ; };
00088
00089
public:
00090
virtual void updateMenu (
class Document *) = 0;
00091 };
00092
00096 class KATEPARTINTERFACES_EXPORT Command
00097 {
00098
public:
00099 Command () {};
00100
virtual ~Command () {};
00101
00102
public:
00107
virtual QStringList cmds () = 0;
00108
00113
virtual bool exec (
View *view,
const QString &cmd,
QString &msg) = 0;
00114
00119
virtual bool help (
View *view,
const QString &cmd,
QString &msg) = 0;
00120 };
00121
00129 class CommandExtension
00130 {
00131
public:
00132
CommandExtension() {;}
00133
virtual ~
CommandExtension() {;}
00134
00146 virtual void flagCompletions(
QStringList& ) {;}
00147
00157 virtual KCompletion *completionObject(
const QString & cmdname,
Kate::View * ) { Q_UNUSED(cmdname);
return 0L; }
00158
00169 virtual bool wantsToProcessText(
const QString &cmdname ) { Q_UNUSED(cmdname);
return false; }
00170
00177 virtual void processText(
Kate::View *view,
const QString &text ) { Q_UNUSED(view); Q_UNUSED(text); }
00178 };
00179
00182 class KATEPARTINTERFACES_EXPORT Document :
public KTextEditor::Document,
public KTextEditor::EditInterface,
00183
public KTextEditor::UndoInterface,
public KTextEditor::CursorInterface,
00184
public KTextEditor::SelectionInterface,
public KTextEditor::SearchInterface,
00185
public KTextEditor::HighlightingInterface,
public KTextEditor::BlockSelectionInterface,
00186
public KTextEditor::ConfigInterface,
public KTextEditor::MarkInterface,
00187
public KTextEditor::PrintInterface,
public KTextEditor::WordWrapInterface,
00188
public KTextEditor::MarkInterfaceExtension,
00189
public KTextEditor::SelectionInterfaceExt
00190 {
00191 Q_OBJECT
00192
00193
public:
00194 Document ();
00195 Document (
QObject* parent,
const char* name );
00196
virtual ~Document ();
00197
00201
public:
00202
static bool registerCommand (Command *cmd);
00203
static bool unregisterCommand (Command *cmd);
00204
static Command *queryCommand (
const QString &cmd);
00205
00206
public:
00212 virtual void isModOnHD(
bool =
false) { ; };
00213
00217 virtual QString docName () {
return 0L; };
00218
00225 virtual void setDocName (
QString ) { ; };
00226
00227
virtual ActionMenu *hlActionMenu (
const QString& ,
QObject* =0,
const char* = 0) = 0;
00228
virtual ActionMenu *exportActionMenu (
const QString& ,
QObject* =0,
const char* = 0) = 0;
00229
00230
public slots:
00231
00232
virtual void flush () { ; };
00233
00237
virtual void reloadFile() = 0;
00238
00242 virtual void spellcheck() {};
00243
00244
virtual void exportAs(
const QString &) = 0;
00245
00246
virtual void applyWordWrap () = 0;
00247
00248
00249
public:
00250
virtual void setWordWrap (
bool ) = 0;
00251
virtual bool wordWrap () = 0;
00252
00253
virtual void setWordWrapAt (
unsigned int) = 0;
00254
virtual uint wordWrapAt () = 0;
00255
00256
00257
virtual void setEncoding (
const QString &e) = 0;
00258
virtual QString encoding() const = 0;
00259
00261
00262 public:
00264 virtual ConfigPage *colorConfigPage (
QWidget *) = 0;
00266 virtual ConfigPage *fontConfigPage (QWidget *) = 0;
00268 virtual ConfigPage *indentConfigPage (QWidget *) = 0;
00270 virtual ConfigPage *selectConfigPage (QWidget *) = 0;
00272 virtual ConfigPage *editConfigPage (QWidget *) = 0;
00274 virtual ConfigPage *keysConfigPage (QWidget *) = 0;
00276 virtual ConfigPage *kSpellConfigPage (QWidget *) {
return 0L; }
00278
virtual ConfigPage *hlConfigPage (
QWidget *) = 0;
00279
00280
public:
00281
virtual uint configFlags () = 0;
00282
virtual void setConfigFlags (uint flags) = 0;
00283
00284
00285
enum ConfigFlags
00286 {
00287 cfAutoIndent= 0x1,
00288 cfBackspaceIndents= 0x2,
00289 cfWordWrap= 0x4,
00290 cfReplaceTabs= 0x8,
00291 cfRemoveSpaces = 0x10,
00292 cfWrapCursor= 0x20,
00293 cfAutoBrackets= 0x40,
00294 cfPersistent= 0x80,
00295 cfKeepSelection= 0x100,
00296 cfDelOnInput= 0x400,
00297 cfXorSelect= 0x800,
00298 cfOvr= 0x1000,
00299 cfMark= 0x2000,
00300 cfKeepIndentProfile= 0x8000,
00301 cfKeepExtraSpaces= 0x10000,
00302 cfTabIndents= 0x80000,
00303 cfShowTabs= 0x200000,
00304 cfSpaceIndent= 0x400000,
00305 cfSmartHome = 0x800000
00306 };
00307
00308 signals:
00319
void modifiedOnDisc (
Kate::Document *doc,
bool isModified,
unsigned char reason);
00320
00321
00322
00323
00324
00325
00326
00327
public:
00328
00329
static void setOpenErrorDialogsActivated (
bool on);
00330
00331
00332
static void setFileChangedDialogsActivated (
bool on);
00333
00334
static const QString &defaultEncoding ();
00335
00336
protected:
00337
static bool s_openErrorDialogsActivated;
00338
static bool s_fileChangedDialogsActivated;
00339
00340
static QString s_defaultEncoding;
00341 };
00342
00347 class KATEPARTINTERFACES_EXPORT DocumentExt
00348 :
public KTextEditor::DocumentInfoInterface,
00349
public KTextEditor::VariableInterface
00350 {
00351
public:
00352 DocumentExt ();
00353
virtual ~DocumentExt ();
00354
00355
public:
00359 enum ModifiedOnDiskReason {
00360 Unmodified = 0,
00361 Modified = 1,
00362 Created = 2,
00363 Deleted = 3
00364 };
00365
00366
public:
00372
virtual void setModifiedOnDisk(
int reason ) = 0;
00373
00377
public:
00383
virtual void slotModifiedOnDisk(
View *v=0 ) = 0;
00384 };
00385
00391 KATEPARTINTERFACES_EXPORT Document *document (KTextEditor::Document *doc);
00392
00398 KATEPARTINTERFACES_EXPORT DocumentExt *documentExt (KTextEditor::Document *doc);
00399
00403 KATEPARTINTERFACES_EXPORT Document *createDocument (
QObject *parent = 0,
const char *name = 0 );
00404
00405 }
00406
00407
#endif