Rev 7755 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7592 | leency | 1 | |
2 | |||
3 | |||
4 | #include "..\lib\gui.h" |
||
5 | #include "..\lib\draw_buf.h" |
||
6 | #include "..\lib\list_box.h" |
||
7 | #include "..\lib\cursor.h" |
||
8 | #include "..\lib\collection.h" |
||
9 | #include "..\lib\random.h" |
||
10 | #include "..\lib\clipboard.h" |
||
11 | |||
12 | |||
13 | #include "..\lib\obj\box_lib.h" |
||
14 | #include "..\lib\obj\libio.h" |
||
15 | #include "..\lib\obj\libimg.h" |
||
16 | #include "..\lib\obj\http.h" |
||
17 | #include "..\lib\obj\iconv.h" |
||
18 | |||
19 | |||
20 | #include "..\lib\patterns\http_downloader.h" |
||
21 | |||
22 | |||
23 | |||
24 | |||
25 | char page_not_found[] = FROM "html\\page_not_found_en.htm""\0"; |
||
26 | |||
27 | |||
28 | char accept_language[]= "Accept-Language: en\n"; |
||
29 | |||
30 | |||
31 | |||
32 | |||
33 | |||
34 | |||
35 | |||
36 | dword STATUSBAR_H = 0; |
||
37 | |||
38 | |||
7752 | leency | 39 | |
7592 | leency | 40 | dword panel_color = 0xE3E2E2; |
41 | dword border_color = 0x8C8C8C; |
||
42 | |||
43 | |||
44 | |||
45 | |||
46 | |||
47 | |||
48 | REFRESH_BUTTON, |
||
49 | EDIT_SOURCE, |
||
50 | }; |
||
51 | |||
52 | |||
7752 | leency | 53 | #include "..\TWB\TWB.c" |
7592 | leency | 54 | #include "show_src.h" |
55 | |||
56 | |||
7756 | leency | 57 | char editURL[URL_SIZE+1]; |
58 | int mouse_twb; |
||
7592 | leency | 59 | edit_box address_box = {250,60,30,0xffffff,0x94AECE,0xffffff,0xffffff,0x10000000,URL_SIZE-2,#editURL,#mouse_twb,2,19,19}; |
7752 | leency | 60 | |
7592 | leency | 61 | |
62 | |||
63 | |||
64 | { |
||
65 | int i; |
||
66 | int id; |
||
67 | load_dll(boxlib, #box_lib_init,0); |
||
68 | load_dll(libio, #libio_init,1); |
||
69 | load_dll(libimg, #libimg_init,1); |
||
70 | load_dll(iconv_lib, #iconv_open,0); |
||
71 | if (param) strcpy(#URL, #param); else strcpy(#URL, URL_SERVICE_HOME); |
||
72 | WB1.list.SetFont(8, 14, 10011000b); |
||
73 | WB1.list.no_selection = true; |
||
74 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
||
75 | loop() switch(WaitEvent()) |
||
76 | { |
||
77 | case evMouse: |
||
78 | edit_box_mouse stdcall (#address_box); |
||
79 | mouse.get(); |
||
80 | if (WB1.list.MouseScroll(mouse.vert)) WB1.DrawPage(); |
||
81 | scrollbar_v_mouse (#scroll_wv); |
||
82 | if (WB1.list.first != scroll_wv.position) |
||
83 | { |
||
84 | WB1.list.first = scroll_wv.position; |
||
85 | WB1.DrawPage(); |
||
86 | break; |
||
87 | } |
||
88 | break; |
||
89 | |||
90 | |||
91 | id=GetButtonID(); |
||
92 | if (1==id) ExitProcess(); |
||
93 | break; |
||
94 | |||
95 | |||
96 | GetKeys(); |
||
97 | |||
98 | |||
99 | OpenPage(); |
||
100 | } |
||
101 | if (SCAN_CODE_F3 == key_scancode) { |
||
102 | RunProgram("/rd/1/tinypad", #URL); |
||
103 | } |
||
104 | |||
105 | |||
106 | { |
||
107 | if (key_ascii == ASCII_KEY_ENTER) EventGoToPage(); |
||
108 | else { |
||
109 | EAX = key_editbox; |
||
110 | edit_box_key stdcall(#address_box); |
||
111 | } |
||
112 | } |
||
113 | else |
||
114 | { |
||
115 | #define KEY_SCROLL_N 11 |
||
116 | if (SCAN_CODE_UP == key_scancode) for (i=0;i |
||
117 | if (SCAN_CODE_DOWN == key_scancode) for (i=0;i |
||
118 | if (WB1.list.ProcessKey(key_scancode)) WB1.DrawPage(); |
||
119 | } |
||
120 | break; |
||
121 | |||
122 | |||
123 | DefineAndDrawWindow(GetScreenWidth()-800/2-random(80),GetScreenHeight()-600/2-random(80),800,600,0x73,col_bg,0,0); |
||
124 | GetProcessInfo(#Form, SelfInfo); |
||
125 | if (Form.status_window>2) { DrawTitle(#header); break; } |
||
126 | if (Form.height<120) { MoveSize(OLD,OLD,OLD,120); break; } |
||
127 | if (Form.width<280) { MoveSize(OLD,OLD,280,OLD); break; } |
||
128 | Draw_Window(); |
||
129 | break; |
||
130 | } |
||
131 | } |
||
132 | |||
133 | |||
134 | { |
||
135 | address_box.top = TOOLBAR_H/2-10; |
||
136 | basic_line_h = calc(WB1.list.font_h * 130) / 100; |
||
137 | address_box.left = address_box.top; |
||
138 | address_box.width = Form.cwidth - address_box.left - address_box.left -14; |
||
139 | WB1.list.SetSizes(0, TOOLBAR_H, Form.width - 10 - scroll_wv.size_x, |
||
140 | Form.cheight - TOOLBAR_H - STATUSBAR_H, basic_line_h); |
||
141 | WB1.list.wheel_size = 7 * basic_line_h; |
||
142 | WB1.list.column_max = WB1.list.w - scroll_wv.size_x / WB1.list.font_w; |
||
143 | WB1.list.visible = WB1.list.h; |
||
144 | if (WB1.list.w!=WB1.DrawBuf.bufw) { |
||
145 | WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, 32700); |
||
146 | OpenPage(); |
||
147 | } |
||
148 | } |
||
149 | |||
150 | |||
151 | { |
||
152 | DrawBar(0,0, Form.cwidth,TOOLBAR_H-2, panel_color); |
||
153 | DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, 0xD7D0D3); |
||
154 | DrawBar(0,TOOLBAR_H-1, Form.cwidth,1, border_color); |
||
155 | SetElementSizes(); |
||
156 | DrawRectangle(address_box.left-3, address_box.top-3, address_box.width+4, 25,border_color); |
||
157 | DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,STATUSBAR_H, col_bg); |
||
158 | DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,1, border_color); |
||
159 | DrawEditBoxWebView(); |
||
160 | if (!header) |
||
161 | OpenPage(); |
||
162 | else { |
||
163 | WB1.DrawPage(); |
||
164 | DrawEditBoxWebView(); |
||
165 | } |
||
166 | DrawRectangle(scroll_wv.start_x, scroll_wv.start_y, scroll_wv.size_x, scroll_wv.size_y-1, scroll_wv.bckg_col); |
||
167 | } |
||
168 | |||
169 | |||
170 | { |
||
171 | if (!editURL[0]) { |
||
172 | strcpy(#URL, URL_SERVICE_HOME); |
||
173 | } |
||
174 | else |
||
175 | { |
||
176 | strcpy(#URL, #editURL); |
||
177 | } |
||
178 | OpenPage(); |
||
179 | } |
||
180 | |||
181 | |||
182 | |||
183 | { |
||
184 | strncpy(#header, #version, sizeof(header)-1); |
||
7752 | leency | 185 | WB1.list.count = WB1.list.first = 0; |
7592 | leency | 186 | cur_encoding = CH_NULL; |
187 | } |
||
188 | |||
189 | |||
190 | { |
||
191 | char getUrl[URL_SIZE+1]; |
||
7755 | leency | 192 | strcpy(#editURL, #URL); |
7592 | leency | 193 | history.add(#URL); |
194 | if (!strncmp(#URL,"CodeView:",8)) |
||
195 | { |
||
196 | SetPageDefaults(); |
||
197 | if (!strcmp(#URL, URL_SERVICE_HOME)) LoadInternalPage(#homepage, sizeof(homepage)); |
||
7750 | leency | 198 | DrawEditBoxWebView(); |
7592 | leency | 199 | return; |
200 | } |
||
201 | else |
||
202 | { |
||
203 | file_size stdcall (#URL); |
||
204 | bufsize = EBX; |
||
205 | if (bufsize) |
||
206 | { |
||
207 | free(bufpointer); |
||
208 | bufpointer = malloc(bufsize); |
||
209 | SetPageDefaults(); |
||
210 | ReadFile(0, bufsize, bufpointer, #URL); |
||
211 | ShowCodeSource(); |
||
212 | LoadInternalPage(bufpointer, bufsize); |
||
7750 | leency | 213 | } |
7592 | leency | 214 | ShowPage(); |
215 | } |
||
216 | } |
||
217 | |||
218 | |||
219 | { |
||
220 | int skin_x_offset; |
||
221 | DrawBar(address_box.left-2, address_box.top-2, address_box.width+3, 2, address_box.color); |
||
222 | DrawBar(address_box.left-2, address_box.top, 2, 22, address_box.color); |
||
223 | address_box.size = address_box.pos = address_box.shift = address_box.shift_old = strlen(#editURL); |
||
224 | address_box.offset = 0; |
||
225 | edit_box_draw stdcall(#address_box); |
||
226 | skin_x_offset = 51; |
||
227 | img_draw stdcall(skin.image, address_box.left+address_box.width+1, address_box.top-3, 17, skin.h, skin_x_offset, SKIN_Y); |
||
228 | } |
||
229 | |||
230 | |||
7750 | leency | 231 | bufsize = in_filesize; |
232 | bufpointer = bufpos; |
||
233 | ShowPage(); |
||
234 | } |
||
235 | |||
7592 | leency | 236 | |
237 | { |
||
238 | DrawEditBoxWebView(); |
||
239 | if (!bufsize) LoadInternalPage(#page_not_found, sizeof(page_not_found)); |
||
7750 | leency | 240 | WB1.ParseHtml(); |
7752 | leency | 241 | WB1.DrawPage(); |
7755 | leency | 242 | } |
7592 | leency | 243 | |
244 | |||
245 | void EventClickLink() {return;}; |
||
7742 | leency | 246 | void EventShowLinkMenu() {return;}; |
7592 | leency | 247 | |
248 | |||
249 | |||
250 | |||
251 |