00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef TEXTDOCUMENTBRIDGE_H
00010 #define TEXTDOCUMENTBRIDGE_H
00011
00012 #include "JavaQxQSwing.h"
00013
00014 #include "QObjectBridge.h"
00015 #include "QTextDocumentAdapter.h"
00016
00017
00018
00019
00020
00027 class JAVAQX_EXPORT TextDocumentBridge : public QObjectBridge
00028 {
00029 Q_OBJECT
00030 protected:
00031 TextDocumentBridge(JNIEnv *env, jobject obj, QTextDocumentAdapter *document);
00032 public slots:
00033 void clearText(JNIEnv *env);
00034 jstring getText(JNIEnv *env);
00035 void setText(JNIEnv *env, jstring text);
00036 void appendText(JNIEnv *env, jstring text);
00037 jboolean isUndoAvailable(JNIEnv *env);
00038 jboolean isRedoAvailable(JNIEnv *env);
00039 void undo(JNIEnv *env);
00040 void redo(JNIEnv *env);
00041 void setUndoRedoEnabled(JNIEnv *env, jboolean enabled);
00042 void setUndoRedoListening(JNIEnv *env, jboolean listening);
00043 jboolean isModified(JNIEnv *env);
00044 void setModified(JNIEnv *env, jboolean modified);
00045 void print(JNIEnv *env, jobject printer);
00046 void setUseHighlighter(JNIEnv *env, jboolean useHighlighter);
00047 void setFormat(JNIEnv *env, jint start, jint length, jobject format);
00048 public:
00049 static void initialize(JNIEnv *env, jclass cls);
00050 public:
00051 void undoAvailable(jboolean available);
00052 void redoAvailable(jboolean available);
00053 void highlightBlock(jint blockStart, jstring blockText);
00054 public:
00055 inline QTextDocumentAdapter *qTextDocument() const;
00056 public:
00057 static QTextDocumentAdapter *toQDocument(JNIEnv *env, jobject document);
00058 public:
00059 virtual void destroy(JNIEnv *env);
00060 protected:
00061 virtual jfieldID bridgePointerFID() const;
00062 public slots:
00063 void undoAvailableSlot(bool available);
00064 void redoAvailableSlot(bool available);
00065 protected:
00066 inline static jmethodID createMID();
00067 private:
00068 static jfieldID sm_bridgeFID;
00069 static jmethodID sm_createMID;
00070 static jmethodID sm_undoAvailableMID;
00071 static jmethodID sm_redoAvailableMID;
00072 static jmethodID sm_highlightBlockMID;
00073 };
00074
00075
00076
00077
00078
00084 inline QTextDocumentAdapter *TextDocumentBridge::qTextDocument() const
00085 {
00086 return static_cast<QTextDocumentAdapter *>(qObject());
00087 }
00088
00089
00090
00091
00092
00098 inline jmethodID TextDocumentBridge::createMID()
00099 {
00100 return sm_createMID;
00101 }
00102
00103
00104
00105
00106
00107 #define textDocumentCast(bridge) \
00108 (reinterpret_cast<TextDocumentBridge *>(bridge))
00109 #define textDocumentBridge textDocumentCast(bridge)
00110
00111 #endif //TEXTDOCUMENTBRIDGE_H
00112
00113
00114
00115
00116
00117
00118
00119