aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/renderer/MCHTMLRendererCallback.h
blob: 5a7c28a9b62e83d4cd029be329fac3b05761ae35 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
//
//  MCHTMLRendererCallback.h
//  mailcore2
//
//  Created by DINH Viêt Hoà on 2/2/13.
//  Copyright (c) 2013 MailCore. All rights reserved.
//

#ifndef MAILCORE_MCHTMLRENDERERCALLBACK_H

#define MAILCORE_MCHTMLRENDERERCALLBACK_H

#include <MailCore/MCAbstract.h>
#include <MailCore/MCIMAP.h>

#ifdef __cplusplus

namespace mailcore {
    
    class MessageParser;
    
    class HTMLRendererIMAPCallback {
    public:
        HTMLRendererIMAPCallback() {}
        virtual ~HTMLRendererIMAPCallback() {}
        
        virtual Data * dataForIMAPPart(String * folder, IMAPPart * part) { return NULL; }
        virtual void prefetchAttachmentIMAPPart(String * folder, IMAPPart * part) {}
        virtual void prefetchImageIMAPPart(String * folder, IMAPPart * part) {}
    };
    
    class HTMLRendererTemplateCallback {
    public:
        virtual bool canPreviewPart(AbstractPart * part);
        virtual bool shouldShowPart(AbstractPart * part);
        
        virtual HashMap * templateValuesForHeader(MessageHeader * header);
        virtual HashMap * templateValuesForPart(AbstractPart * part);
        
        virtual String * templateForMainHeader(MessageHeader * header);
        virtual String * templateForImage(AbstractPart * part);
        virtual String * templateForAttachment(AbstractPart * part);
        virtual String * templateForMessage(AbstractMessage * message);
        virtual String * templateForEmbeddedMessage(AbstractMessagePart * part);
        virtual String * templateForEmbeddedMessageHeader(MessageHeader * header);
        virtual String * templateForAttachmentSeparator();
        
        // Can be used to filter some HTML tags.
        virtual String * filterHTMLForPart(String * html);
        
        // Can be used to hide quoted text.
        virtual String * filterHTMLForMessage(String * html);
    };
    
}

#endif

#endif