Subversion Repositories Kolibri OS

Rev

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