//
//  XTOutputFormatterProtocol.h
//  TadsTerp
//
//  Created by Rune Berg on 10/07/14.
//  Copyright (c) 2014 Rune Berg. All rights reserved.
//
//  The methods used to TODO
//

#import <Foundation/Foundation.h>

// Custom  attributed string attr keys:
#define XT_OUTPUT_FORMATTER_ATTR_CMDLINK_APPEND @"xtads.cmdlink.append"
#define XT_OUTPUT_FORMATTER_ATTR_CMDLINK_NOENTER @"xtads.cmdlink.noenter"
#define XT_OUTPUT_FORMATTER_ATTR_TEMPATTRSDICT @"xtads.tempAttrsDict"

@class XTHtmlTag;
@class XTHtmlTagBr;
@class XTHtmlTagDiv;
@class XTHtmlTagBlockQuote;
@class XTHtmlTagQ;
@class XTHtmlTagTab;
@class XTHtmlTagP;
@class XTHtmlTagTitle;
@class XTHtmlTagHr;
@class XTHtmlTagA;
@class XTHtmlTagB;
@class XTHtmlTagI;
@class XTHtmlTagU;
@class XTHtmlTagAboutBox;
@class XTHtmlTagBanner;
@class XTHtmlTagCenter;
@class XTHtmlTagH1;
@class XTHtmlTagH2;
@class XTHtmlTagH3;
@class XTHtmlTagH4;
@class XTHtmlTagOl;
@class XTHtmlTagUl;
@class XTHtmlTagLi;
@class XTHtmlTagNoop;
@class XTHtmlTagQuestionMarkT2;
@class XTHtmlTagQuestionMarkT3;
@class XTHtmlTagTt;
@class XTHtmlTagTable;
@class XTHtmlTagTr;
@class XTHtmlTagTh;
@class XTHtmlTagTd;
@class XTHtmlTagCite;
@class XTHtmlTagFont;
@class XTHtmlTagPre;
@class XTHtmlTagImg;
@class XTHtmlTagT2Hilite;


@protocol XTOutputFormatterProtocol <NSObject>

- (NSArray *)handleHtmlTagBr:(XTHtmlTagBr *)tag;

- (NSArray *)handleHtmlTagDiv:(XTHtmlTagDiv *)tag;

- (NSArray *)handleHtmlTagBlockQuote:(XTHtmlTagBlockQuote *)tag;

- (NSArray *)handleHtmlTagQ:(XTHtmlTagQ *)tag;

- (NSArray *)handleHtmlTagTab:(XTHtmlTagTab *)tag;

- (NSArray *)handleHtmlTagP:(XTHtmlTagP *)tag;

- (NSArray *)handleHtmlTagTitle:(XTHtmlTagTitle *)tag;

- (NSArray *)handleHtmlTagHr:(XTHtmlTagHr *)tag;

- (NSArray *)handleHtmlTagA:(XTHtmlTagA *)tag;

- (NSArray *)handleHtmlTagB:(XTHtmlTagB *)tag;

- (NSArray *)handleHtmlTagI:(XTHtmlTagI *)tag;

- (NSArray *)handleHtmlTagU:(XTHtmlTagU *)tag;

- (NSArray *)handleHtmlTagAboutBox:(XTHtmlTagAboutBox *)tag;

- (NSArray *)handleHtmlTagBanner:(XTHtmlTagBanner *)tag;

- (NSArray *)handleHtmlTagCenter:(XTHtmlTagCenter *)tag;

- (NSArray *)handleHtmlTagH1:(XTHtmlTagH1 *)tag;

- (NSArray *)handleHtmlTagH2:(XTHtmlTagH2 *)tag;

- (NSArray *)handleHtmlTagH3:(XTHtmlTagH3 *)tag;

- (NSArray *)handleHtmlTagH4:(XTHtmlTagH4 *)tag;

- (NSArray *)handleHtmlTagOl:(XTHtmlTagOl *)tag;

- (NSArray *)handleHtmlTagUl:(XTHtmlTagUl *)tag;

- (NSArray *)handleHtmlTagLi:(XTHtmlTagLi *)tag;

- (NSArray *)handleHtmlTagNoop:(XTHtmlTagNoop *)tag;

- (NSArray *)handleHtmlTagQuestionMarkT2:(XTHtmlTagQuestionMarkT2 *)tag;

- (NSArray *)handleHtmlTagQuestionMarkT3:(XTHtmlTagQuestionMarkT3 *)tag;

- (NSArray *)handleHtmlTagTt:(XTHtmlTagTt *)tag;

- (NSArray *)handleHtmlTagTable:(XTHtmlTagTable *)tag;

- (NSArray *)handleHtmlTagTr:(XTHtmlTagTr *)tag;

- (NSArray *)handleHtmlTagTh:(XTHtmlTagTh *)tag;

- (NSArray *)handleHtmlTagTd:(XTHtmlTagTd *)tag;

- (NSArray *)handleHtmlTagCite:(XTHtmlTagCite *)tag;

- (NSArray *)handleHtmlTagFont:(XTHtmlTagFont *)tag;

- (NSArray *)handleHtmlTagPre:(XTHtmlTagPre *)tag;

- (NSArray *)handleHtmlTagImg:(XTHtmlTagImg *)tag;

- (NSArray *)handleHtmlTagTads2Hilite:(XTHtmlTagT2Hilite *)tag;

@end
