File indexing completed on 2024-05-05 16:17:46
0001 /* 0002 SPDX-FileCopyrightText: KDE Developers 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KATE_ABSTRACT_INPUT_MODE_H 0008 #define KATE_ABSTRACT_INPUT_MODE_H 0009 0010 class KateLayoutCache; 0011 class KateViewInternal; 0012 0013 #include "katerenderer.h" 0014 #include "ktexteditor/view.h" 0015 #include "ktexteditor_export.h" // for tests 0016 0017 #include <KConfigGroup> 0018 0019 #include <QKeyEvent> 0020 0021 class KateViewInternal; 0022 namespace KTextEditor 0023 { 0024 class ViewPrivate; 0025 } 0026 0027 class KTEXTEDITOR_EXPORT KateAbstractInputMode 0028 { 0029 protected: 0030 KateAbstractInputMode(KateViewInternal *); 0031 0032 public: 0033 virtual ~KateAbstractInputMode() = default; 0034 0035 virtual KTextEditor::View::ViewMode viewMode() const = 0; 0036 virtual QString viewModeHuman() const = 0; 0037 virtual KTextEditor::View::InputMode viewInputMode() const = 0; 0038 virtual QString viewInputModeHuman() const = 0; 0039 0040 virtual void activate() = 0; 0041 virtual void deactivate() = 0; 0042 virtual void reset() = 0; 0043 0044 virtual bool overwrite() const = 0; 0045 virtual void overwrittenChar(const QChar &) = 0; 0046 virtual void clearSelection() = 0; 0047 virtual bool stealKey(QKeyEvent *k) = 0; 0048 0049 virtual void gotFocus() = 0; 0050 virtual void lostFocus() = 0; 0051 0052 virtual void readSessionConfig(const KConfigGroup &config) = 0; 0053 virtual void writeSessionConfig(KConfigGroup &config) = 0; 0054 virtual void updateRendererConfig() = 0; 0055 virtual void updateConfig() = 0; 0056 virtual void readWriteChanged(bool rw) = 0; 0057 0058 virtual void find() = 0; 0059 virtual void findSelectedForwards() = 0; 0060 virtual void findSelectedBackwards() = 0; 0061 virtual void findReplace() = 0; 0062 virtual void findNext() = 0; 0063 virtual void findPrevious() = 0; 0064 0065 virtual void activateCommandLine() = 0; 0066 0067 virtual bool keyPress(QKeyEvent *) = 0; 0068 virtual bool blinkCaret() const = 0; 0069 virtual KateRenderer::caretStyles caretStyle() const = 0; 0070 0071 virtual void toggleInsert() = 0; 0072 virtual void launchInteractiveCommand(const QString &command) = 0; 0073 0074 virtual QString bookmarkLabel(int line) const = 0; 0075 0076 /* functions that are currently view private, but vi-mode needs to access them */ 0077 public: 0078 void updateCursor(const KTextEditor::Cursor newCursor); 0079 KateLayoutCache *layoutCache() const; 0080 int linesDisplayed() const; 0081 void scrollViewLines(int offset); 0082 0083 protected: 0084 KateViewInternal *viewInternal() const 0085 { 0086 return m_viewInternal; 0087 } 0088 KTextEditor::ViewPrivate *view() const 0089 { 0090 return m_view; 0091 } 0092 0093 private: 0094 KateViewInternal *m_viewInternal; 0095 KTextEditor::ViewPrivate *m_view; 0096 }; 0097 0098 #endif