aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEdit/ScintillaDocument.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt/ScintillaEdit/ScintillaDocument.h')
-rw-r--r--qt/ScintillaEdit/ScintillaDocument.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/qt/ScintillaEdit/ScintillaDocument.h b/qt/ScintillaEdit/ScintillaDocument.h
new file mode 100644
index 000000000..3cf16e334
--- /dev/null
+++ b/qt/ScintillaEdit/ScintillaDocument.h
@@ -0,0 +1,97 @@
+// ScintillaDocument.h
+// Wrapper for Scintilla document object so it can be manipulated independently.
+// Copyright (c) 2011 Archaeopteryx Software, Inc. d/b/a Wingware
+
+#ifndef SCINTILLADOCUMENT_H
+#define SCINTILLADOCUMENT_H
+
+#include <QObject>
+
+class WatcherHelper;
+
+#ifndef EXPORT_IMPORT_API
+#ifdef WIN32
+#ifdef MAKING_LIBRARY
+#define EXPORT_IMPORT_API __declspec(dllexport)
+#else
+// Defining dllimport upsets moc
+#define EXPORT_IMPORT_API __declspec(dllimport)
+//#define EXPORT_IMPORT_API
+#endif
+#else
+#define EXPORT_IMPORT_API
+#endif
+#endif
+
+class EXPORT_IMPORT_API ScintillaDocument : public QObject
+{
+ Q_OBJECT
+
+ void *pdoc;
+ WatcherHelper *docWatcher;
+
+public:
+ explicit ScintillaDocument(QObject *parent = 0, void *pdoc_=0);
+ virtual ~ScintillaDocument();
+ void *pointer();
+
+ int line_from_position(int pos);
+ bool is_cr_lf(int pos);
+ bool delete_chars(int pos, int len);
+ int undo();
+ int redo();
+ bool can_undo();
+ bool can_redo();
+ void delete_undo_history();
+ bool set_undo_collection(bool collect_undo);
+ bool is_collecting_undo();
+ void begin_undo_action();
+ void end_undo_action();
+ void set_save_point();
+ bool is_save_point();
+ void set_read_only(bool read_only);
+ bool is_read_only();
+ void insert_string(int position, QByteArray &str);
+ QByteArray get_char_range(int position, int length);
+ char style_at(int position);
+ int line_start(int lineno);
+ int line_end(int lineno);
+ int line_end_position(int pos);
+ int length();
+ int lines_total();
+ void start_styling(int position, char flags);
+ bool set_style_for(int length, char style);
+ int get_end_styled();
+ void ensure_styled_to(int position);
+ void set_current_indicator(int indic);
+ void decoration_fill_range(int position, int value, int fillLength);
+ int decorations_value_at(int indic, int position);
+ int decorations_start(int indic, int position);
+ int decorations_end(int indic, int position);
+ int get_code_page();
+ void set_code_page(int code_page);
+ int move_position_outside_char(int pos, int move_dir, bool check_line_end);
+
+private:
+ void emit_modify_attempt();
+ void emit_save_point(bool atSavePoint);
+ void emit_modified(int position, int modification_type, const QByteArray& text, int length,
+ int linesAdded, int line, int foldLevelNow, int foldLevelPrev);
+ void emit_style_needed(int pos);
+ void emit_lexer_changed();
+ void emit_error_occurred(int status);
+
+signals:
+ void modify_attempt();
+ void save_point(bool atSavePoint);
+ void modified(int position, int modification_type, const QByteArray& text, int length,
+ int linesAdded, int line, int foldLevelNow, int foldLevelPrev);
+ void style_needed(int pos);
+ void lexer_changed();
+ void error_occurred(int status);
+
+ friend class WatcherHelper;
+
+};
+
+#endif // SCINTILLADOCUMENT_H