summaryrefslogtreecommitdiff
path: root/bindings/swig/package/rendercallback.h
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/swig/package/rendercallback.h')
-rwxr-xr-xbindings/swig/package/rendercallback.h218
1 files changed, 123 insertions, 95 deletions
diff --git a/bindings/swig/package/rendercallback.h b/bindings/swig/package/rendercallback.h
index 8a19a86..d2a68e3 100755
--- a/bindings/swig/package/rendercallback.h
+++ b/bindings/swig/package/rendercallback.h
@@ -17,24 +17,24 @@ using namespace sword;
class ReturnSuccess
{
public:
- ReturnSuccess(): data(""), success(FAILED) {}
- ReturnSuccess(char* data, int success): data(data), success(success) {}
- virtual ~ReturnSuccess() {}
- char* data;
- int success;
+ ReturnSuccess(): data(""), success(FAILED) {}
+ ReturnSuccess(char* data, int success): data(data), success(success) {}
+ virtual ~ReturnSuccess() {}
+ char* data;
+ int success;
};
class RenderCallback {
public:
- virtual ~RenderCallback() {;}
+ virtual ~RenderCallback() {;}
- virtual ReturnSuccess run(sword::SWBuf& x, const char * token,
+ virtual ReturnSuccess run(sword::SWBuf& x, const char * token,
sword::BasicFilterUserData* userData)
{
- ReturnSuccess nullm("", INHERITED);
- return nullm;
- }
+ ReturnSuccess nullm("", INHERITED);
+ return nullm;
+ }
};
// Forward declarations
@@ -45,26 +45,35 @@ class ThMLData;
class PyOSISHTMLHREF: public sword::OSISHTMLHREF
{
private:
- RenderCallback* _callback;
+ RenderCallback* _callback;
public:
// Create a class which can be inherited externally
#ifndef SWIG
using sword::OSISHTMLHREF::MyUserData;
- class MyOsisUserData : public MyUserData {};
+ class MyOsisUserData : public MyUserData {
+ public:
+ MyOsisUserData(const SWModule *module, const SWKey *key):
+ MyUserData(module, key) {};
+ };
#endif
-
+
+ using sword::OSISHTMLHREF::removeTokenSubstitute;
+ using sword::OSISHTMLHREF::addTokenSubstitute;
+ using sword::OSISHTMLHREF::addAllowedEscapeString;
+ using sword::OSISHTMLHREF::removeAllowedEscapeString;
+
PyOSISHTMLHREF(RenderCallback* callback)
- {
- _callback=callback;
- }
+ {
+ _callback=callback;
+ }
static OSISData* getData(sword::BasicFilterUserData* f)
{
- return (OSISData*) f;
+ return (OSISData*) f;
}
- virtual ~PyOSISHTMLHREF()
+ virtual ~PyOSISHTMLHREF()
{
delCallback();
}
@@ -81,46 +90,58 @@ public:
_callback = cb;
}
- ReturnSuccess call(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
- {
- if (_callback) return _callback->run(buf, token, userData);
- else
- {
- ReturnSuccess nullm("", INHERITED);
- return nullm;
- }
- }
-
- protected:
- virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
- {
- ReturnSuccess result = call(buf, token, userData);
- switch(result.success)
- {
- case INHERITED:
- return sword::OSISHTMLHREF::handleToken(buf, token, userData);
- case FAILED:
- return false;
- case SUCCEEDED:
- buf += result.data;
- return true;
- }
-
- return true;
- }
- };
+ ReturnSuccess call(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
+ {
+ if (_callback) return _callback->run(buf, token, userData);
+ else
+ {
+ ReturnSuccess nullm("", INHERITED);
+ return nullm;
+ }
+ }
+
+protected:
+ virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
+ {
+ SWBuf scratch;
+ bool sub = (userData->suspendTextPassThru) ? substituteToken(scratch, token) : substituteToken(buf, token);
+ if(sub) return true;
+
+ ReturnSuccess result = call(buf, token, userData);
+ switch(result.success)
+ {
+ case INHERITED:
+ return sword::OSISHTMLHREF::handleToken(buf, token, userData);
+ case FAILED:
+ return false;
+ case SUCCEEDED:
+ buf += result.data;
+ return true;
+ }
+
+ return true;
+ }
+};
class PyThMLHTMLHREF : public ThMLHTMLHREF {
private:
- RenderCallback* _callback;
+ RenderCallback* _callback;
public:
// Create a class which can be inherited externally
#ifndef SWIG
using sword::ThMLHTMLHREF::MyUserData;
- class MyThmlUserData : public MyUserData {};
+ class MyThmlUserData : public MyUserData {
+ public:
+ MyThmlUserData(const SWModule *module, const SWKey *key):
+ MyUserData(module, key) {};
+ };
#endif
+ using sword::ThMLHTMLHREF::removeTokenSubstitute;
+ using sword::ThMLHTMLHREF::addTokenSubstitute;
+ using sword::ThMLHTMLHREF::addAllowedEscapeString;
+ using sword::ThMLHTMLHREF::removeAllowedEscapeString;
PyThMLHTMLHREF(RenderCallback* callback)
{
_callback=callback;
@@ -128,10 +149,10 @@ public:
static ThMLData* getData(sword::BasicFilterUserData* f)
{
- return (ThMLData*) f;
+ return (ThMLData*) f;
}
- virtual ~PyThMLHTMLHREF()
+ virtual ~PyThMLHTMLHREF()
{
delCallback();
}
@@ -148,57 +169,60 @@ public:
_callback = cb;
}
- ReturnSuccess call(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
- {
- if (_callback) return _callback->run(buf, token, userData);
- else
- {
- ReturnSuccess nullm("", INHERITED);
- return nullm;
- }
- }
+ ReturnSuccess call(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
+ {
+ if (_callback) return _callback->run(buf, token, userData);
+ else
+ {
+ ReturnSuccess nullm("", INHERITED);
+ return nullm;
+ }
+ }
protected:
- virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
- {
- ReturnSuccess result = call(buf, token, userData);
- switch(result.success)
- {
- case INHERITED:
- return sword::ThMLHTMLHREF::handleToken(buf, token, userData);
- case FAILED:
- return false;
- case SUCCEEDED:
- buf += result.data;
- return true;
- }
-
- return true;
- }
-
-public:
-
-
+ virtual bool handleToken(sword::SWBuf &buf, const char *token, sword::BasicFilterUserData *userData)
+ {
+ SWBuf scratch;
+ bool sub = (userData->suspendTextPassThru) ? substituteToken(scratch, token) : substituteToken(buf, token);
+ if(sub) return true;
+
+ ReturnSuccess result = call(buf, token, userData);
+ switch(result.success)
+ {
+ case INHERITED:
+ return sword::ThMLHTMLHREF::handleToken(buf, token, userData);
+ case FAILED:
+ return false;
+ case SUCCEEDED:
+ buf += result.data;
+ return true;
+ }
+
+ return true;
+ }
};
class OSISData :
#ifndef SWIG
public PyOSISHTMLHREF::MyOsisUserData {
+public:
+ OSISData(const SWModule *module, const SWKey *key):
+ PyOSISHTMLHREF::MyOsisUserData(module, key) {};
#else
// trick SWIG into thinking this is not inherited from an inner class...
public sword::BasicFilterUserData
{
public:
- bool osisQToTick;
- bool inBold;
- bool inXRefNote;
- bool BiblicalText;
- int suspendLevel;
- SWBuf wordsOfChristStart;
- SWBuf wordsOfChristEnd;
- SWBuf lastTransChange;
- SWBuf w;
- SWBuf fn;
- SWBuf version;
+ bool osisQToTick;
+ bool inBold;
+ bool inXRefNote;
+ bool BiblicalText;
+ int suspendLevel;
+ SWBuf wordsOfChristStart;
+ SWBuf wordsOfChristEnd;
+ SWBuf lastTransChange;
+ SWBuf w;
+ SWBuf fn;
+ SWBuf version;
#endif //!SWIG
};
@@ -206,16 +230,20 @@ public:
class ThMLData :
#ifndef SWIG
public PyThMLHTMLHREF::MyThmlUserData {
+ public:
+ ThMLData(const SWModule *module, const SWKey *key):
+ PyThMLHTMLHREF::MyThmlUserData(module, key) {};
+
#else
// trick SWIG into thinking this is not inherited from an inner class...
public sword::BasicFilterUserData
{
public:
- SWBuf inscriptRef;
- bool SecHead;
- bool BiblicalText;
- SWBuf version;
- XMLTag startTag;
+ SWBuf inscriptRef;
+ bool SecHead;
+ bool BiblicalText;
+ SWBuf version;
+ XMLTag startTag;
#endif //!SWIG
};