blob: 4898b1b13392959db1a003f06718693799f0262b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <markupfiltmgr.h>
#include <swbuf.h>
#include <defs.h>
using namespace sword;
class MarkupCallback {
public:
virtual ~MarkupCallback() { ;}
virtual bool run(SWModule* x) {return false;}
};
class MyMarkup : public MarkupFilterMgr {
private:
MarkupCallback* _callback;
public:
MyMarkup(MarkupCallback* callback, char markup = FMT_THML, char encoding = ENC_UTF8) :
MarkupFilterMgr(markup, encoding), _callback(callback) {}
virtual ~MyMarkup() {
delCallback();
}
void delCallback() {
delete _callback; _callback = 0;
}
void setCallback(MarkupCallback *cb) {
delCallback();
_callback = cb;
}
bool call(SWModule* x) {
if (_callback)
return _callback->run(x);
return false;
}
protected:
virtual void AddRenderFilters(SWModule *module,
ConfigEntMap §ion) {
if(!call(module)) {
MarkupFilterMgr::AddRenderFilters(module, section);
}
}
};
|