• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Kate

document.h

Go to the documentation of this file.
00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016    Boston, MA 02110-1301, USA.
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  //### this is yet to be tried
00146     virtual void flagCompletions( QStringList& /*list*/ ) {;}
00147 
00157     virtual KCompletion *completionObject( const QString & cmdname, Kate::View * /*view*/ ) { Q_UNUSED(cmdname); return 0L; }
00158 
00169     virtual bool wantsToProcessText( const QString &cmdname ) { Q_UNUSED(cmdname); return false; }
00170  // ### yet to be tested. The obvious candidate is isearch.
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     // clear buffer/filename - update the views
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   // FIXME: Remove when BIC allowed.
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     // Flags for katedocument config !
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    * there static methodes are usefull to turn on/off the dialogs
00323    * kate part shows up on open file errors + file changed warnings
00324    * open file errors default on, file changed warnings default off, better
00325    * for other apps beside kate app using the part
00326    */
00327   public:
00328     // default true
00329     static void setOpenErrorDialogsActivated (bool on);
00330 
00331     // default false
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

Kate

Skip menu "Kate"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal