Rev 6152 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6152 | Rev 6216 | ||
---|---|---|---|
Line 66... | Line 66... | ||
66 | = HTML = |
66 | = HTML = |
67 | = = |
67 | = = |
68 | ========================================================*/ |
68 | ========================================================*/ |
69 | 69 | ||
Line 70... | Line -... | ||
70 | /* |
- | |
71 | - | ||
72 | struct _DOM { |
- | |
73 | dword start; |
- | |
74 | dword end; |
- | |
75 | dword len; |
- | |
76 | }; |
- | |
77 | - | ||
78 | struct _style { |
- | |
79 | bool b, u, i, s; |
- | |
80 | bool h1, h2, h3, h4, h5, h6; |
- | |
81 | bool a; |
- | |
82 | bool pre; |
- | |
83 | bool ignore; |
- | |
84 | dword color; |
- | |
85 | void clear(); |
- | |
86 | } style; |
- | |
87 | - | ||
88 | void _style::clear() |
- | |
89 | { |
- | |
90 | b=u=i=s=0; |
- | |
91 | h1=h2=h3=h4=h5=h6=0; |
- | |
92 | a=0; |
- | |
93 | pre=0; |
- | |
94 | ignore=0; |
- | |
95 | color=0; |
- | |
96 | } |
- | |
97 | - | ||
98 | struct _text { |
- | |
99 | dword start; |
- | |
100 | int x, y; |
- | |
101 | }; |
- | |
102 | - | ||
103 | struct _tag { |
- | |
104 | dword start; |
- | |
105 | dword name; |
- | |
106 | dword param[10]; |
- | |
107 | dword value[10]; |
- | |
108 | void parce(); |
- | |
109 | int nameis(); |
- | |
110 | void clear(); |
- | |
111 | }; |
- | |
112 | - | ||
113 | void _tag::parce() |
- | |
114 | { |
- | |
115 | dword o = name = start; |
- | |
116 | while (ESBYTE[o]!=' ') && (ESBYTE[o]) o++; //searching for a space after tag name |
- | |
117 | ESBYTE[o] = '\0'; |
- | |
118 | strlwr(name); |
- | |
119 | } |
- | |
120 | - | ||
121 | int _tag::nameis(dword _in_tag_name) |
- | |
122 | { |
- | |
123 | if (name) && (strcmp(_in_tag_name, name)==0) return true; |
- | |
124 | return false; |
- | |
125 | } |
- | |
126 | - | ||
127 | void _tag::clear() |
- | |
128 | { |
- | |
129 | start=name=0; |
- | |
130 | } |
- | |
131 | - | ||
132 | #define HTML_PADDING_X 8; |
70 | #define HTML_PADDING_X 8; |
133 | #define HTML_PADDING_Y 5; |
71 | #define HTML_PADDING_Y 5; |
Line 134... | Line 72... | ||
134 | 72 | ||
135 | 73 | ||
- | 74 | void ParceHtml(byte draw) |
|
136 | void ParceHtml(byte draw) |
75 | { |
137 | { |
76 | dword DOM_start, DOM_end, DOM_len, DOM_pos; |
138 | int stroka_x = HTML_PADDING_X; |
77 | int stroka_x = HTML_PADDING_X; |
139 | int stroka_y = HTML_PADDING_Y; |
78 | int stroka_y = HTML_PADDING_Y; |
140 | dword line_break; |
- | |
141 | byte ch, zeroch; |
79 | dword line_break; |
142 | _DOM DOM; |
80 | byte ch, zeroch; |
143 | _text text; |
- | |
Line 144... | Line 81... | ||
144 | _tag tag; |
81 | _text text; |
145 | dword DOM_pos; |
82 | _tag tag; |
146 | 83 | ||
147 | tag.clear(); |
84 | tag.clear(); |
148 | style.clear(); |
85 | style.clear(); |
149 | /* Create DOM */ |
86 | /* Create DOM */ |
150 | debugln("creating DOM"); |
87 | debugln("creating DOM"); |
151 | DOM.len = strlen(io.buffer_data); |
88 | DOM_len = strlen(io.buffer_data); |
152 | DOM.start = malloc(DOM.len); |
- | |
153 | DOM.end = DOM.start + DOM.len; |
- | |
Line 154... | Line 89... | ||
154 | strlcpy(DOM.start, io.buffer_data, DOM.len); |
89 | DOM_start = malloc(DOM_len); |
155 | //RemoveSpecialSymbols(DOM.start, DOM.len); |
90 | DOM_end = DOM_start + DOM_len; |
156 | //DOM.len = strlen(DOM.start); |
91 | strlcpy(DOM_start, io.buffer_data, DOM_len); |
157 | 92 | ||
158 | /* Parce DOM */ |
93 | /* Parce DOM */ |
159 | debugln("starting DOM parce..."); |
94 | debugln("starting DOM parce..."); |
160 | text.start = DOM.start; |
95 | text.start = DOM_start; |
161 | for (DOM_pos=DOM.start; DOM_pos |
96 | for (DOM_pos=DOM_start; DOM_pos |
162 | { |
97 | { |
Line 232... | Line 167... | ||
232 | if (list.count < list.visible) list.count = list.visible; |
167 | if (list.count < list.visible) list.count = list.visible; |
233 | label.size.height = list.count+5*list.item_h; |
168 | label.size.height = list.count+5*list.item_h; |
234 | label.raw_size = 0; |
169 | label.raw_size = 0; |
235 | } |
170 | } |
236 | free(DOM.start); |
171 | free(DOM_start); |
237 | }>>>=>>')>>>> |