]> git.saurik.com Git - wxWidgets.git/blob - user/wxLayout/wxlparser.h
Merged in latest wxLayout code from Mahogany Mail.
[wxWidgets.git] / user / wxLayout / wxlparser.h
1 /*-*- c++ -*-********************************************************
2 * wxlparser.h : parsers, import/export for wxLayoutList *
3 * *
4 * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) *
5 * *
6 * $Id$
7 *******************************************************************/
8 #ifndef WXLPARSER_H
9 # define WXLPARSER_H
10
11 #ifdef __GNUG__
12 # pragma interface "wxlparser.h"
13 #endif
14
15 #ifndef NULL
16 # define NULL 0
17 #endif
18
19 enum wxLayoutExportType
20 {
21 WXLO_EXPORT_TEXT,
22 WXLO_EXPORT_HTML,
23 WXLO_EXPORT_OBJECT,
24 // this can be caused by empty lines:
25 WXLO_EXPORT_EMPTYLINE
26 };
27
28 enum wxLayoutExportMode
29 {
30 WXLO_EXPORT_AS_TEXT = 0x00,
31 WXLO_EXPORT_AS_TEXT_AND_COMMANDS = 0x01,
32 WXLO_EXPORT_AS_HTML = 0x02,
33 WXLO_EXPORT_AS_OBJECTS = 0x03,
34
35 // non 0:
36 WXLO_EXPORT_WITH_CRLF = 0x10,
37 WXLO_EXPORT_WITH_LF_ONLY = 0x20
38 };
39
40 struct wxLayoutExportObject
41 {
42 wxLayoutExportType type;
43 union
44 {
45 wxString *text;
46 wxLayoutObject *object;
47 }content;
48 ~wxLayoutExportObject()
49 {
50 if(type == WXLO_EXPORT_TEXT || type == WXLO_EXPORT_HTML)
51 delete content.text;
52 }
53 };
54
55 struct wxLayoutExportStatus
56 {
57 wxLayoutExportStatus(wxLayoutList *list)
58 {
59 list->GetDefaults()->GetStyle(&m_si);
60 m_line = list->GetFirstLine();
61 m_iterator = m_line->GetFirstObject();
62 }
63
64 wxLayoutLine * m_line;
65 wxLOiterator m_iterator;
66 wxLayoutStyleInfo m_si;
67 };
68
69
70 #ifdef OS_WIN
71 /// import text into a wxLayoutList (including linefeeds):
72 void wxLayoutImportText(wxLayoutList *list, wxString const &str,
73 int withflag = WXLO_EXPORT_WITH_CRLF);
74
75 wxLayoutExportObject *wxLayoutExport(wxLayoutExportStatus *status,
76 int mode = WXLO_EXPORT_AS_TEXT,
77 int flags = WXLO_EXPORT_WITH_CRLF);
78 #else
79 /// import text into a wxLayoutList (including linefeeds):
80 void wxLayoutImportText(wxLayoutList *list, wxString const &str,
81 int withflag = WXLO_EXPORT_WITH_LF_ONLY);
82
83 /// export text in a given format
84 wxLayoutExportObject *wxLayoutExport(wxLayoutExportStatus *status,
85 int mode = WXLO_EXPORT_AS_TEXT,
86 int flags = WXLO_EXPORT_WITH_LF_ONLY
87 );
88 #endif
89
90 #endif //WXLPARSER_H