summaryrefslogtreecommitdiff
path: root/plugins/SpellChecker/src/RichEdit.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SpellChecker/src/RichEdit.h')
-rw-r--r--plugins/SpellChecker/src/RichEdit.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/plugins/SpellChecker/src/RichEdit.h b/plugins/SpellChecker/src/RichEdit.h
new file mode 100644
index 0000000000..e8b4101be4
--- /dev/null
+++ b/plugins/SpellChecker/src/RichEdit.h
@@ -0,0 +1,71 @@
+#ifndef __RICHEDIT_H__
+#define __RICHEDIT_H__
+
+#include <windows.h>
+#include <richedit.h>
+#include <tom.h>
+#include <richole.h>
+
+
+class RichEdit
+{
+ HWND hwnd;
+ IRichEditOle *ole;
+ ITextDocument *textDocument;
+
+ int stopped;
+ BOOL undoEnabled;
+ POINT old_scroll_pos;
+ CHARRANGE old_sel;
+ POINT caretPos;
+ DWORD old_mask;
+ BOOL inverse;
+
+public:
+ RichEdit(HWND hwnd);
+ ~RichEdit();
+
+ bool IsValid() const;
+ HWND GetHWND() const;
+
+ LRESULT SendMessage(UINT Msg, WPARAM wParam, LPARAM lParam) const;
+
+ bool IsReadOnly() const;
+
+ void SuspendUndo();
+ void ResumeUndo();
+ void Stop();
+ void Start();
+ BOOL IsStopped();
+
+ int GetCharFromPos(const POINT &pt);
+
+ int GetLineCount() const;
+ void GetLine(int line, TCHAR *text, size_t text_len) const;
+ int GetLineLength(int line) const;
+ int GetFirstCharOfLine(int line) const;
+ int GetLineFromChar(int charPos) const;
+
+ CHARRANGE GetSel() const;
+ void SetSel(int start, int end);
+ void SetSel(const CHARRANGE &sel);
+
+ TCHAR *GetText(int start, int end) const;
+ int GetTextLength() const;
+
+ void ReplaceSel(const TCHAR *new_text);
+ int Replace(int start, int end, const TCHAR *new_text);
+ int Insert(int pos, const TCHAR *text);
+ int Delete(int start, int end);
+
+private:
+ void SetHWND(HWND hwnd);
+
+ int FixSel(CHARRANGE *to_fix, CHARRANGE sel_changed, int new_len);
+};
+
+
+
+
+
+#endif // __RICHEDIT_H__