aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/abstract/MCOAbstractMessageRendererCallback.h
blob: 08997c84901c2ff89ac05db3edd8f9c121f62154 (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
//
//  MCOAbstractMessageRendererCallback.h
//  mailcore2
//
//  Created by DINH Viêt Hoà on 3/23/13.
//  Copyright (c) 2013 MailCore. All rights reserved.
//

#ifndef MAILCORE_MCOABSTRACTMESSAGERENDERECALLBACK_H

#define MAILCORE_MCOABSTRACTMESSAGERENDERECALLBACK_H

#include "MCIMAP.h"
#include "MCRenderer.h"

#if defined(__cplusplus) && defined(__OBJC__)
@class MCOAbstractMessage;
@protocol MCOHTMLRendererDelegate;
@protocol MCOHTMLRendererIMAPDelegate;

class MCOAbstractMessageRendererCallback : public mailcore::Object, public mailcore::HTMLRendererTemplateCallback, public mailcore::HTMLRendererIMAPCallback {
public:
    MCOAbstractMessageRendererCallback(MCOAbstractMessage * message, id <MCOHTMLRendererDelegate> rendererDelegate,
                                     id <MCOHTMLRendererIMAPDelegate> rendererIMAPDelegate);
    virtual bool canPreviewPart(mailcore::AbstractPart * part);
    virtual bool shouldShowPart(mailcore::AbstractPart * part);
    virtual mailcore::HashMap * templateValuesForHeader(mailcore::MessageHeader * header);
    virtual mailcore::HashMap * templateValuesForPart(mailcore::AbstractPart * part);
    virtual mailcore::String * templateForMainHeader(mailcore::MessageHeader * header);
    virtual mailcore::String * templateForImage(mailcore::AbstractPart * part);
    virtual mailcore::String * templateForAttachment(mailcore::AbstractPart * part);
    virtual mailcore::String * templateForMessage(mailcore::AbstractMessage * message);
    virtual mailcore::String * templateForEmbeddedMessage(mailcore::AbstractMessagePart * part);
    virtual mailcore::String * templateForEmbeddedMessageHeader(mailcore::MessageHeader * header);
    virtual mailcore::String * templateForAttachmentSeparator();
    virtual mailcore::String * filterHTMLForPart(mailcore::String * html);
    virtual mailcore::String * filterHTMLForMessage(mailcore::String * html);
    
    virtual mailcore::Data * dataForIMAPPart(mailcore::String * folder, mailcore::IMAPPart * part);
    virtual void prefetchAttachmentIMAPPart(mailcore::String * folder, mailcore::IMAPPart * part);
    virtual void prefetchImageIMAPPart(mailcore::String * folder, mailcore::IMAPPart * part);

private:
    MCOAbstractMessage * mMessage;
    id <MCOHTMLRendererDelegate> mRendererDelegate;
    id <MCOHTMLRendererIMAPDelegate> mIMAPDelegate;
};
#endif

#endif