Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4412 → Rev 4413

/programs/cmm/TWB/TWB.c
1,4 → 1,6
#include "..\lib\list_box.h"
 
 
int downloader_id;
 
dword
12,7 → 14,7
 
struct TWebBrowser {
int left, top, width, height, line_h;
void Scan(int);
llist list;
void GetNewUrl();
void OpenPage();
void ReadHtml(byte);
46,7 → 48,6
options[4096],
anchor[256];
 
#include "..\TWB\history.h"
#include "..\TWB\colors.h"
#include "..\TWB\unicode_tags.h"
#include "..\TWB\img_cache.h"
90,150 → 91,8
}
//=======================================================================
 
void TWebBrowser::Scan(int id)
{
if (id >= 400)
{
GetURLfromPageLinks(id);
//#1
if (URL[0] == '#')
{
strcpy(#anchor, #URL+strrchr(#URL, '#'));
strcpy(#URL, BrowserHistory.CurrentUrl());
lines.first=lines.all-lines.visible;
ShowPage();
return;
}
//liner.ru#1
if (strrchr(#URL, '#')<>-1)
{
strcpy(#anchor, #URL+strrchr(#URL, '#'));
URL[strrchr(#URL, '#')-1] = 0x00; //çàãëóøêà
}
GetNewUrl();
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
{
//if (strstr(#URL,"http:"))
RunProgram("/sys/media/kiv", #URL);
strcpy(#editURL, BrowserHistory.CurrentUrl());
strcpy(#URL, BrowserHistory.CurrentUrl());
return;
}
if (!strcmpn(#URL,"mailto:", 7))
{
RunProgram("@notify", #URL);
strcpy(#editURL, BrowserHistory.CurrentUrl());
strcpy(#URL, BrowserHistory.CurrentUrl());
return;
}
 
OpenPage();
return;
}
IF(lines.all < lines.visible) SWITCH(id) //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
{ CASE 183: CASE 184: CASE 180: CASE 181: return; }
switch (id)
{
case 011: //Ctrk+K
ReadHtml(_KOI);
break;
case 021: //Ctrl+U
ReadHtml(_UTF);
break;
case 004: //Ctrl+D
ReadHtml(_DOS);
break;
case 002: //free img cache
FreeImgCache();
break;
case BACK:
if (!BrowserHistory.GoBack()) return;
OpenPage();
return;
case FORWARD:
if (!BrowserHistory.GoForward()) return;
OpenPage();
return;
case 052: //F3
if (strcmp(get_URL_part(5),"http:")<>0) RunProgram("/rd/1/tinypad", #URL); else RunProgram("/rd/1/tinypad", #download_path);
return;
case 054: //F5
IF(address_box.flags & 0b10) break;
case REFRESH:
if (GetProcessSlot(downloader_id)<>0)
{
KillProcess(downloader_id);
pause(20);
Draw_Window();
return;
}
anchor_line_num=lines.first; //âåñ¸ëûé êîñòûëü :Ð
anchor[0]='|';
OpenPage();
return;
case 014: //Ctrl+N íîâîå îêíî
case 020: //Ctrl+T íîâàÿ âêëàäêà
case NEWTAB:
MoveSize(190,80,OLD,OLD);
RunProgram(#program_path, #URL);
return;
case HOME:
strcpy(#editURL, "http://kolibrios.org/en/index.htm");
case GOTOURL:
case 0x0D: //enter
//ïî÷åìó ttp://? Ãîñïîäà, îòëè÷íûé âîïðîñ. Äåëî â òîì, ÷òî ýòî õàê.
//strstr() åñëè íå íàøëî âîçâðàùàåò 0 è â ñëó÷àå óñïåõà âîçâðàùàåò 0. Òàê ÷òî ýòî õàê.
if ((strstr(#editURL,"ttp://")==0) && (editURL[0]!='/')) strcpy(#URL,"http://"); else URL[0] = 0;
strcat(#URL, #editURL);
OpenPage();
return;
case SEARCHWEB:
strcpy(#URL, #search_path);
strcat(#URL, #editURL);
OpenPage();
return;
 
case ID1: //ìîòàåì ââåðõ
IF(lines.first <= 0) return;
lines.first--;
break;
case ID2: //ìîòàåì âíèç
IF(lines.visible + lines.first >= lines.all) return;
lines.first++;
break;
case 183: //PgDown
IF(lines.first == lines.all - lines.visible) return;
lines.first += lines.visible + 2;
IF(lines.visible + lines.first > lines.all) lines.first = lines.all - lines.visible;
break;
case 184: //PgUp
IF(lines.first == 0) return;
lines.first -= lines.visible - 2;
IF(lines.first < 0) lines.first = 0;
break;
case 180: //home
IF(lines.first == 0) return;
lines.first = 0;
break;
case 181: //end
IF (lines.first == lines.all - lines.visible) return;
lines.first = lines.all - lines.visible;
break;
default:
return;
}
ParseHTML(buf);
}
 
 
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", "/kolibrios/", "/rd/", "/bd", "/hd", "/cd", "/tmp", "/usbhd", 0};
//dword TWebBrowser::GetNewUrl(dword CUR_URL, NEW_URL){
void TWebBrowser::GetNewUrl(){