Added toggle buttons for switching speak engine, update PO files
[mstardict] / stardict-plugins / stardict-wiki-parsedata-plugin / WIKI2XML.h
1 #ifndef _WIKI2XML_H_
2 #define _WIKI2XML_H_
3
4 #include "global.h"
5 #include "TXML.h"
6
7 class TTableInfo
8         {
9         public :
10         TTableInfo () ;
11         virtual ~TTableInfo () {};
12         virtual string new_cell ( string type ) ;
13         virtual string new_row () ;
14         virtual string close () ;
15         bool tr_open , td_open ;
16         string td_type ;
17         } ;    
18
19 class WIKI2XML
20         {
21         public :
22         WIKI2XML () {} ;
23         virtual ~WIKI2XML () {};
24         WIKI2XML ( string &s ) { init ( s ) ; }
25         WIKI2XML ( vector <string> &l ) { init ( l ) ; }
26         virtual void init ( string s ) ;
27         virtual void init ( vector <string> &l ) { init ( implode ( "\n" , l ) ) ; }
28         virtual void parse () { parse_lines ( lines ) ; }
29         virtual string get_xml () ;
30         
31         private :
32         virtual void make_tag_list ( string &s , vector <TXML> &list ) ;
33         virtual void parse_symmetric ( string &l , size_t &from , 
34                                                 string s1 , string s2 , 
35                         string r1 , string r2 , bool extend = false ) ;
36         virtual void parse_link ( string &l , size_t &from , char mode = 'L' ) ;
37         virtual void parse_line_sub ( string &l ) ;
38         virtual void parse_line ( string &l ) ;
39         virtual void parse_lines ( vector <string> &lines ) ;
40         virtual string fix_list ( string &l ) ;
41         virtual string get_list_tag ( chart c , bool open ) ;
42         virtual bool is_list_char ( chart c ) ;
43         virtual void remove_evil_html ( string &s , vector <TXML> &taglist ) ;
44         virtual void replace_part ( string &s , size_t from , size_t to , string with ) ;
45         virtual void replace_part_sync ( string &s , size_t from , size_t to , string with , vector <TXML> &list ) ;
46         virtual void parse_external_freelink ( string &l , size_t &from ) ;
47         virtual void parse_external_link ( string &l , size_t &from ) ;
48         virtual bool is_external_link_protocol ( string protocol ) ;
49         virtual int scan_url ( string &l , size_t from ) ;
50         virtual string table_markup ( string &l ) ;
51                 
52         // Variables
53         vector <string> lines , allowed_html ;
54         vector <TTableInfo> tables ;
55         string list ;
56     } ;             
57
58 #endif