1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* ***** BEGIN LICENSE BLOCK *****
3
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
5
* The contents of this file are subject to the Netscape Public License
6
* Version 1.1 (the "License"); you may not use this file except in
7
* compliance with the License. You may obtain a copy of the License at
8
* http://www.mozilla.org/NPL/
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
15
* The Original Code is mozilla.org code.
17
* The Initial Developer of the Original Code is
18
* Netscape Communications Corporation.
19
* Portions created by the Initial Developer are Copyright (C) 1998-1999
20
* the Initial Developer. All Rights Reserved.
25
* Alternatively, the contents of this file may be used under the terms of
26
* either the GNU General Public License Version 2 or later (the "GPL"), or
27
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
* in which case the provisions of the GPL or the LGPL are applicable instead
29
* of those above. If you wish to allow use of your version of this file only
30
* under the terms of either the GPL or the LGPL, and not to allow others to
31
* use your version of this file under the terms of the NPL, indicate your
32
* decision by deleting the provisions above and replace them with the notice
33
* and other provisions required by the GPL or the LGPL. If you do not delete
34
* the provisions above, a recipient may use your version of this file under
35
* the terms of any one of the NPL, the GPL or the LGPL.
37
* ***** END LICENSE BLOCK ***** */
39
#ifndef nsComposeTxtSrvFilter_h__
40
#define nsComposeTxtSrvFilter_h__
42
#include "nsITextServicesFilter.h"
46
* This class implements a filter interface, that enables
47
* those using it to skip over certain nodes when traversing content
49
* This filter is used to skip over various form control nodes and
52
class nsComposeTxtSrvFilter : public nsITextServicesFilter
55
nsComposeTxtSrvFilter();
56
virtual ~nsComposeTxtSrvFilter() {};
58
// nsISupports interface...
61
// nsITextServicesFilter
62
NS_DECL_NSITEXTSERVICESFILTER
64
// Helper - Intializer
65
void Init(PRBool aIsForMail) { mIsForMail = aIsForMail; }
69
nsCOMPtr<nsIAtom> mBlockQuoteAtom;
70
nsCOMPtr<nsIAtom> mPreAtom; // mail plain text quotes are wrapped in pre tags
71
nsCOMPtr<nsIAtom> mSpanAtom; //or they may be wrapped in span tags (editor.quotesPreformatted).
72
nsCOMPtr<nsIAtom> mMozQuoteAtom; // _moz_quote_
73
nsCOMPtr<nsIAtom> mClassAtom;
74
nsCOMPtr<nsIAtom> mTypeAtom;
75
nsCOMPtr<nsIAtom> mScriptAtom;
76
nsCOMPtr<nsIAtom> mTextAreaAtom;
77
nsCOMPtr<nsIAtom> mSelectAreaAtom;
78
nsCOMPtr<nsIAtom> mMapAtom;
82
#define NS_COMPOSERTXTSRVFILTER_CID \
83
{/* {171E72DB-0F8A-412a-8461-E4C927A3A2AC}*/ \
84
0x171e72db, 0xf8a, 0x412a, \
85
{ 0x84, 0x61, 0xe4, 0xc9, 0x27, 0xa3, 0xa2, 0xac} }
87
#define NS_COMPOSERTXTSRVFILTERMAIL_CID \
88
{/* {7FBD2146-5FF4-4674-B069-A7BBCE66E773}*/ \
89
0x7fbd2146, 0x5ff4, 0x4674, \
90
{ 0xb0, 0x69, 0xa7, 0xbb, 0xce, 0x66, 0xe7, 0x73} }
92
// Generic for the editor
93
#define COMPOSER_TXTSRVFILTER_CONTRACTID "@mozilla.org/editor/txtsrvfilter;1"
95
// This is the same but includes "cite" typed blocked quotes
96
#define COMPOSER_TXTSRVFILTERMAIL_CONTRACTID "@mozilla.org/editor/txtsrvfiltermail;1"