Subversion Repositories Kolibri OS

Rev

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