00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef qeditor_view_h
00022
#define qeditor_view_h
00023
00024
#include <kdeversion.h>
00025
#include <ktexteditor/view.h>
00026
#include <ktexteditor/viewcursorinterface.h>
00027
#include <ktexteditor/clipboardinterface.h>
00028
00029
class QPopupMenu;
00030
#include <ktexteditor/popupmenuinterface.h>
00031
#include <ktexteditor/codecompletioninterface.h>
00032
#if defined(KDE_MAKE_VERSION)
00033
# if KDE_VERSION >= KDE_MAKE_VERSION(3,1,90)
00034
# include <ktexteditor/texthintinterface.h>
00035
# else
00036
# include "kde30x_texthintinterface.h"
00037
# endif
00038
#else
00039
# include "kde30x_texthintinterface.h"
00040
#endif
00041
00042
class QEditor;
00043
class QEditorPart;
00044
class QEditorCodeCompletion;
00045
class LineNumberWidget;
00046
class MarkerWidget;
00047
class LevelWidget;
00048
class KoFindDialog;
00049
class KoReplaceDialog;
00050
class KoFind;
00051
class KoReplace;
00052
class QTextParagraph;
00053
class QEditorTextHint;
00054
00055 class QEditorView:
00056
public KTextEditor::View,
00057
public KTextEditor::ClipboardInterface,
00058
public KTextEditor::ViewCursorInterface,
00059
public KTextEditor::PopupMenuInterface,
00060
public KTextEditor::CodeCompletionInterface,
00061
public KTextEditor::TextHintInterface
00062 {
00063 Q_OBJECT
00064
public:
00065
QEditorView(
QEditorPart*,
QWidget* =0,
const char* =0 );
00066
virtual ~QEditorView();
00067
00068
KTextEditor::Document*
document()
const;
00069 QEditorPart*
doc()
const {
return m_document; }
00070 QEditor*
editor()
const {
return m_editor; }
00071
00072
QString currentTextLine() const;
00073
void insertText( const
QString& );
00074
00075 QString language() const;
00076
00077
bool isMarkerWidgetVisible() const;
00078
void setMarkerWidgetVisible(
bool );
00079 MarkerWidget* markerWidget() {
return m_markerWidget; }
00080
00081
bool isLineNumberWidgetVisible() const;
00082
void setLineNumberWidgetVisible(
bool );
00083
00084
bool isLevelWidgetVisible() const;
00085
void setLevelWidgetVisible(
bool );
00086
00087
int tabStop() const;
00088
void setTabStop(
int );
00089
00090 public slots:
00091
void configChanged();
00092
void gotoLine();
00093
void setLanguage( const
QString& );
00094
void doFind();
00095
void doReplace();
00096
void indent();
00097
void ensureTextIsVisible( QTextParagraph* );
00098
void expandBlock( QTextParagraph* );
00099
void collapseBlock( QTextParagraph* );
00100
void expandAllBlocks();
00101
void collapseAllBlocks();
00102
00103 protected slots:
00104
void highlight( const QString&,
int,
int, const
QRect& );
00105
void replace( const QString&,
int,
int,
int, const QRect& );
00106
00107 protected:
00108
void proceed();
00109
bool find_real( QTextParagraph* firstParag,
int firstIndex,
00110 QTextParagraph* lastParag,
int lastIndex );
00111
bool process( const QString& );
00112
void doRepaint();
00113
void internalEnsureVisibleBlock( QTextParagraph* );
00114
void internalExpandBlock( QTextParagraph* );
00115
void internalCollapseBlock( QTextParagraph* );
00116
00117 private:
00118
void setupActions();
00119
00120 private:
00121 QTextParagraph* m_currentParag;
00122 KoFindDialog* m_findDialog;
00123 KoReplaceDialog* m_replaceDialog;
00124 KoFind* m_find;
00125 KoReplace* m_replace;
00126 long m_options;
00127 int m_offset;
00128
00129
00130 public:
00134 virtual
QPoint cursorCoordinates ();
00135
00139 virtual
void cursorPosition (
unsigned int *line,
unsigned int *col);
00140
00144 virtual
void cursorPositionReal (
unsigned int *line,
unsigned int *col);
00145
00149 virtual
bool setCursorPosition (
unsigned int line,
unsigned int col);
00150
00154 virtual
bool setCursorPositionReal (
unsigned int line,
unsigned int col);
00155
00156 virtual
unsigned int cursorLine ();
00157 virtual
unsigned int cursorColumn ();
00158 virtual
unsigned int cursorColumnReal ();
00159
00160 signals:
00161
void cursorPositionChanged ();
00162
00163
00164 public slots:
00168 virtual
void copy ( ) const;
00169
00173 virtual
void cut ( );
00174
00178 virtual
void paste ( );
00179
00183 virtual
void selectAll ( );
00184
00185
00186 public:
00191 virtual
void installPopup ( class
QPopupMenu *rmb_Menu );
00192
00193
00197 virtual
void showArgHint (
QStringList functionList, const QString& strWrapping, const QString& strDelimiter);
00198
00205 virtual
void showCompletionBox (
QValueList<KTextEditor::CompletionEntry> complList,
int offset=0,
bool casesensitive=true);
00206
00207 signals:
00218
void completionAborted();
00219
00231
void completionDone();
00232
00247
void completionDone(KTextEditor::CompletionEntry);
00248
00259
void argHintHidden();
00260
00274
void filterInsertString(KTextEditor::CompletionEntry*,QString*);
00275
00276
void aboutToShowCompletionBox();
00277
00278 public:
00279 QString computeTextHint(
int line,
int column );
00280
void enableTextHints(
int timeout );
00281
void disableTextHints();
00282
00283 signals:
00284
void needTextHint(
int line,
int column, QString& );
00285
void newStatus();
00286
00287 private:
00288 QEditorPart* m_document;
00289 QEditor* m_editor;
00290 QEditorCodeCompletion* m_pCodeCompletion;
00291 LineNumberWidget* m_lineNumberWidget;
00292 MarkerWidget* m_markerWidget;
00293 LevelWidget* m_levelWidget;
00294 QEditorTextHint* m_textHintToolTip;
00295 };
00296
00297 #endif