/programs/cmm/TWB/TWB.c |
---|
64,6 → 64,7 |
if (!header) |
{ |
ChangeCharset("UTF-8", "CP866", #line); |
strcpy(#header, #line); |
strcat(#header, " -"); |
strcat(#header, #version); |
585,8 → 586,11 |
{ |
strcpy(bufpointer, o_bufpointer); |
} |
//bufpointer = ChangeCharset(charsets[set_new_encoding], "CP866", bufpointer); |
if (set_new_encoding == CH_CP1251) |
{ |
bufpointer = ChangeCharset("CP1251", "UTF-8", bufpointer); |
} |
} |
void TWebBrowser::DrawScroller() |
/programs/cmm/TWB/acid_0.1.htm |
---|
1,14 → 1,14 |
<!--doctype html public "-//w3c//dtd html 4.0 transitional//ru"--> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> |
<title>Òåñò Acid 0.1</title> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
<title>Тест Acid 0.1</title> |
</head> |
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF"> |
<h1 align=center>Ýòî òåñòîâàÿ ñòðàíèöà äëÿ ïðîâåðêè WebViewer</h1> |
<h1 align=center>Это тестовая страница для проверки WebViewer</h1> |
<br /> |
<p>WebViewer ÿâëÿåòñÿ òåêñòîâûì áðàóçåðîì è ïîääåðæèâàåò âñå ïîïóëÿðíûå êîäèðîâêè (cp1251, koi-8, cp866, unicode) |
è íåêîòîðûå òåãè. Ïîääåðæêà òàáëèèö (<table>), CSS, Javascript'a è Êîíòàêòèêà ïîêà íå ðåàëèçîâàíà :) |
<p>WebViewer является текстовым браузером и поддерживает все популярные кодировки (cp1251, koi-8, cp866, unicode) |
и некоторые теги. Поддержка таблииц (<table>), CSS, Javascript'a и Контактика пока не реализована :) |
</p> |
<br /> |
34,33 → 34,33 |
<br> |
<p> |
Íåáîëüøîé ñïèñîê:<ol> |
<li><q>Ýòîò òåêñò â êàâû÷êàõ</q></li> |
<li><u>Ýòî ïîä÷åðêíóòûé òåêñò</u></li> |
<li><s>Ýòî ïåðå÷åðêíóòûé òåêñò</s></li> |
<li><i>Ýòî íàêëîííûé òåêñò</i></li> |
<li><strong>Ýòî òåêñò ñ óñèëåííûì âûäåëåíèåì</strong></li> |
<li><b><u><s><font color="#777444">Ìíîãî òåãîâ</font></s></u></b></ol> |
Небольшой список:<ol> |
<li><q>Этот текст в кавычках</q></li> |
<li><u>Это подчеркнутый текст</u></li> |
<li><s>Это перечеркнутый текст</s></li> |
<li><i>Это наклонный текст</i></li> |
<li><strong>Это текст с усиленным выделением</strong></li> |
<li><b><u><s><font color="#777444">Много тегов</font></s></u></b></ol> |
</p> |
<br> |
<pre> |
"Îñåíü óæå ïðèøëà!"- |
Øåïíóë ìíå íà óõî âåòåð, |
Ïîäêðàâøèñü ê ïîäóøêå ìîåé. |
"Осень уже пришла!"- |
Шепнул мне на ухо ветер, |
Подкравшись к подушке моей. |
Áàñå |
Басе |
</pre> |
<!-- êîììåíòàðèé: ýòîãî òåêñòà çäåñü <íåò> --> |
<!-- комментарий: этого текста здесь <нет> --> |
<br> |
<a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Îòêðûòü</a><br> |
<a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Открыть</a><br> |
<br> |
<br> |
<a href='./index.htm'>./index.htm</a><br> |
<a href='/sys/index.htm'>Íåçàêðûòûé òåã à - index.htm<br> |
<a href='/sys/index.htm'>Незакрытый тег а - index.htm<br> |
<a href="/sys/kernel.mnt">kernel.mnt</a><br> |
<a href="#2.1.4">#2.1.4</a><br> |
<a href="http://bash.im">http://bash.im</a><br> |
68,20 → 68,20 |
<br> |
<br> |
 ýòîì òåêñòå åñòü ïåðåõîä íà ñëåäóþùóþ ñòðîêó, íî áðàóçåð |
åãî äîëæåí ïðîèãíîðèðîâàòü. Åùå ìíîãî ïðîáåëîâ. À òóò åñòü |
òàáû. Êîå-êàêèå ñèìâîëû: " & < > • |
© ® „ “ — ¯æà÷îê ³íøîãî áîêó ð. ªâôðàò ç'¿â ´ðóíò òà ºâðåéñüêèé ´åðáàëàéô. |
В этом тексте есть переход на следующую строку, но браузер |
его должен проигнорировать. Еще много пробелов. А тут есть |
табы. Кое-какие символы: " & < > • |
© ® „ “ — Їжачок іншого боку р. Євфрат з'їв ґрунт та єврейський ґербалайф. |
<condition show_if=1> |
<p>61055, г. |
Харьков, ул. Краснознаменная, 16</SPAN>, радиофизический |
корпус на территории НТУ «ХПИ» |
корпус на территории НТУ «ХПИ» |
</p> |
</condition> |
<hr color="#758999"> |
<center>Zhitomyr 2008-2014</center> |
<center>Zhitomyr 2008-2015</center> |
</body> |
/programs/cmm/TWB/img_cache.h |
---|
9,7 → 9,7 |
struct ImageCache { |
int pics_count; |
void Free(); |
int GetImageNumber(); |
int GetImage(); |
void Images(); |
}; |
22,7 → 22,7 |
} |
} |
int ImageCache::GetImageNumber(dword i_path) |
int ImageCache::GetImage(dword i_path) |
{ |
int i; |
for (i=0; i<=pics_count; i++) if (!strcmp(#pics[i].path, i_path)) return i; //image exists |
43,10 → 43,15 |
do{ |
if (!strcmp(#parametr,"src=")) //íàäî îáúåäèíèòü ñ GetNewUrl() |
{ |
if (http_transfer<>0) strcpy(#img_path, #history_list[BrowserHistory.current-1].Item); else |
if (http_transfer!=0) |
strcpy(#img_path, #history_list[BrowserHistory.current-1].Item); |
else |
{ |
//if (strcmp(#options)) |
strcpy(#img_path, #options); |
} |
PageLinks.GetAbsoluteURL(#img_path); |
cur_pic = GetImageNumber(#img_path); |
cur_pic = GetImage(#img_path); |
} |
if (!strcmp(#parametr,"alt=")) |
{ |
67,17 → 72,17 |
imgh = DSWORD[pics[cur_pic].image+8]; |
if (imgw > width1) imgw = width1; |
if (stroka==0) DrawBar(WB1.list.x, WB1.list.y, WB1.list.w-15, 5, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
if (stroka==0) DrawBar(WB1.list.x, WB1.list.y, WB1.list.w-15, 5, bg_color); //fill first line |
stroka += imgh / WB1.list.line_h; |
if (imgh % WB1.list.line_h) stroka++; |
if (top1+imgh<WB1.list.y) || (top1>WB1.list.y+WB1.list.h-10) return; //åñëè ÂѨ èçîáðàæåíèå óøëî ÂÅÐÕ èëè ÂÍÈÇ |
if (top1<WB1.list.y) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó |
if (top1+imgh<WB1.list.y) || (top1>WB1.list.y+WB1.list.h-10) return; //if all image is out of visible area |
if (top1<WB1.list.y) //if image partly visible (at the top) |
{ |
img_lines_first=WB1.list.y-top1; |
imgh=imgh-img_lines_first; |
top1=WB1.list.y; |
} |
if (top1>WB1.list.y+WB1.list.h-imgh-5) //åñëè ÷àñòü èçîáðàæåíèÿ ñíèçó |
if (top1>WB1.list.y+WB1.list.h-imgh-5) //if image partly visible (at the bottom) |
{ |
imgh=WB1.list.y+WB1.list.h-top1-5; |
} |
87,7 → 92,7 |
img_draw stdcall (pics[cur_pic].image, left1-5, top1, imgw, imgh,0,img_lines_first); |
DrawBar(left1+imgw - 5, top1, WB1.list.w-imgw, imgh, bg_color); |
DrawBar(WB1.list.x, top1+imgh, WB1.list.w, -imgh % WB1.list.line_h + WB1.list.line_h, bg_color); |
IF (link) |
if (link) |
{ |
UnsafeDefineButton(left1 - 5, top1, imgw, imgh-1, PageLinks.count + 400 + BT_HIDE, 0xB5BFC9); |
PageLinks.AddText(0, imgw, imgh-1, NOLINE); |
/programs/cmm/TWB/links.h |
---|
24,7 → 24,8 |
dword GetURL(); |
void Clear(); |
void GetAbsoluteURL(); |
}; |
int UrlAbsolute(); |
} PageLinks; |
void LinksArray::AddLink(dword new_link, int link_x, link_y) |
{ |
98,18 → 99,33 |
} |
} |
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", |
"/kolibrios/", "/rd/", "/bd", "/hd", "/cd", "/tmp", "/usbhd", "WebView:", 0}; |
void LinksArray::GetAbsoluteURL(dword in_URL){ |
int i, len; |
int LinksArray::UrlAbsolute(dword in_URL) |
{ |
if(!strncmp(in_URL,"http:",5)) return 1; |
if(!strncmp(in_URL,"https:",6)) return 1; |
if(!strncmp(in_URL,"mailto:",7)) return 1; |
if(!strncmp(in_URL,"ftp:",4)) return 1; |
if(!strncmp(in_URL,"WebView:",8)) return 1; |
if(!strncmp(in_URL,"/sys/",5)) return 1; |
if(!strncmp(in_URL,"/hd/",4)) return 1; |
if(!strncmp(in_URL,"/fd/",4)) return 1; |
if(!strncmp(in_URL,"/rd/",4)) return 1; |
if(!strncmp(in_URL,"/tmp/",5)) return 1; |
if(!strncmp(in_URL,"/cd/",4)) return 1; |
if(!strncmp(in_URL,"/bd/",4)) return 1; |
if(!strncmp(in_URL,"/usbhd/",7)) return 1; |
if(!strncmp(in_URL,"/kolibrios/",11)) return 1; |
return 0; |
} |
void LinksArray::GetAbsoluteURL(dword in_URL) |
{ |
int i; |
dword orig_URL = in_URL; |
char newurl[sizeof(URL)]; |
for (i=0; ABSOLUTE_LINKS[i]; i++) |
{ |
len=strlen(ABSOLUTE_LINKS[i]); |
if (!strcmpn(in_URL, ABSOLUTE_LINKS[i], len)) return; |
} |
if (UrlAbsolute(in_URL)) return; |
IF (!strcmpn(in_URL,"./", 2)) in_URL+=2; |
strcpy(#newurl, BrowserHistory.CurrentUrl()); |
141,5 → 157,3 |
} |
LinksArray PageLinks; |