1 #pragma once 2 3 #include <QObject> 4 #include <QString> 5 #include <QWidget> 6 #include <QWheelEvent> 7 #include <QScrollBar> 8 #include <QTextEdit> 9 #include "indicatordata.h" 10 11 class EditorInterface : public QWidget 12 { 13 Q_OBJECT 14 public: EditorInterface(QWidget * parent)15 EditorInterface(QWidget *parent) : QWidget(parent) {} ~EditorInterface()16 ~EditorInterface() {} sizeHint()17 virtual QSize sizeHint() const override { QSize size; return size;} setInitialSizeHint(const QSize &)18 virtual void setInitialSizeHint(const QSize&) { } 19 void wheelEvent(QWheelEvent*) override; 20 virtual QString toPlainText() = 0; document()21 virtual QTextDocument *document(){QTextDocument *t = new QTextDocument; return t;} 22 virtual QString selectedText() = 0; 23 virtual int updateFindIndicators(const QString &findText, bool visibility = true) = 0; 24 virtual bool find(const QString &, bool findNext = false, bool findBackwards = false) = 0; 25 virtual void replaceSelectedText(const QString &newText) = 0; 26 virtual void replaceAll(const QString &findText, const QString &replaceText) = 0; 27 virtual QStringList colorSchemes() = 0; 28 virtual bool canUndo() = 0; 29 virtual void addTemplate() = 0; 30 virtual void setIndicator(const std::vector<IndicatorData>& indicatorData) = 0; 31 virtual QMenu * createStandardContextMenu() = 0; 32 virtual QPoint mapToGlobal(const QPoint &) = 0; setCursorPosition(int,int)33 virtual void setCursorPosition(int /*line*/, int /*col*/) {}; 34 virtual void setFocus() = 0; 35 36 signals: 37 void contentsChanged(); 38 void modificationChanged(bool, EditorInterface *); 39 void showContextMenuEvent(const QPoint& pos); 40 41 public slots: 42 virtual void zoomIn() = 0; 43 virtual void zoomOut() = 0; 44 virtual void setContentModified(bool) = 0; 45 virtual bool isContentModified() = 0; 46 virtual void indentSelection() = 0; 47 virtual void unindentSelection() = 0; 48 virtual void commentSelection() = 0; 49 virtual void uncommentSelection() = 0; 50 virtual void setPlainText(const QString &) = 0; 51 virtual void highlightError(int) = 0; 52 virtual void unhighlightLastError() = 0; 53 virtual void setHighlightScheme(const QString&) = 0; 54 virtual void insert(const QString&) = 0; 55 virtual void setText(const QString&) = 0; 56 virtual void undo() = 0; 57 virtual void redo() = 0; 58 virtual void cut() = 0; 59 virtual void copy() = 0; 60 virtual void paste() = 0; 61 virtual void initFont(const QString&, uint) = 0; 62 virtual void displayTemplates() = 0; 63 virtual void toggleBookmark() = 0; 64 virtual void nextBookmark() = 0; 65 virtual void prevBookmark() = 0; 66 virtual void jumpToNextError() = 0; 67 68 private: 69 QSize initialSizeHint; 70 71 public: 72 bool contentsRendered; // Set if the source code has changes since the last render (F6) 73 int findState; 74 QString filepath; 75 std::string autoReloadId; 76 std::vector<IndicatorData> indicatorData; 77 }; 78