forked from KolibriOS/kolibrios
HTMLv 0.77: <body> bgcolor= and text= support, fixes
git-svn-id: svn://kolibrios.org@2420 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
26b134521c
commit
febf6bf8c4
@ -1,5 +1,5 @@
|
|||||||
//HTML Viewer in C--
|
//HTML Viewer in C--
|
||||||
//Copyright 2007-2009 by Veliant & Leency
|
//Copyright 2007-20012 by Veliant & Leency
|
||||||
//Asper, Lrz, Nable, lev.
|
//Asper, Lrz, Nable, lev.
|
||||||
|
|
||||||
#include "..\lib\kolibri.h--"
|
#include "..\lib\kolibri.h--"
|
||||||
@ -56,6 +56,8 @@ void main()
|
|||||||
BrowserHistory.AddUrl();
|
BrowserHistory.AddUrl();
|
||||||
copystr(#URL,#editURL);
|
copystr(#URL,#editURL);
|
||||||
|
|
||||||
|
if (!strcmp(get_URL_part(5),"http:"))) HttpLoad();
|
||||||
|
|
||||||
SetEventMask(0x27);
|
SetEventMask(0x27);
|
||||||
loop()
|
loop()
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//Web-component, Leency & Veliant 2007-2009
|
//Web-component, Leency & Veliant 2007-20012
|
||||||
//lev
|
//lev
|
||||||
|
|
||||||
//èäåÿ - ëåâûå ôàéëû îòêðûâàòü ñîîòâåòñòâóþùèìè ïðîãàìè
|
//èäåÿ - ëåâûå ôàéëû îòêðûâàòü ñîîòâåòñòâóþùèìè ïðîãàìè
|
||||||
@ -17,7 +17,7 @@ dword j,
|
|||||||
char download_path[]="/rd/1/.download";
|
char download_path[]="/rd/1/.download";
|
||||||
//char search_path[]="http://nova.rambler.ru/search?words=";
|
//char search_path[]="http://nova.rambler.ru/search?words=";
|
||||||
char search_path[]="http://nigma.ru/index.php?s=";
|
char search_path[]="http://nigma.ru/index.php?s=";
|
||||||
char version[]=" Text-based Browser 0.76";
|
char version[]=" Text-based Browser 0.77";
|
||||||
|
|
||||||
|
|
||||||
struct TWebBrowser {
|
struct TWebBrowser {
|
||||||
@ -34,12 +34,13 @@ struct TWebBrowser {
|
|||||||
|
|
||||||
TWebBrowser WB1;
|
TWebBrowser WB1;
|
||||||
|
|
||||||
byte rez, b_text, i_text, u_text, s_text, pre_text, blq_text, li_text, link, ignor_text, li_tab;
|
byte rez, b_text, i_text, u_text, s_text, pre_text, blq_text, li_text, link, ignor_text, li_tab, body_present;
|
||||||
|
|
||||||
|
|
||||||
dword text_colors[10],
|
dword text_colors[10],
|
||||||
text_color_index = 0,
|
text_color_index = 0,
|
||||||
link_color;
|
link_color,
|
||||||
|
bg_color=0xFFFFFF;
|
||||||
|
|
||||||
int stroka,
|
int stroka,
|
||||||
stolbec,
|
stolbec,
|
||||||
@ -200,6 +201,7 @@ void GetNewUrl(){
|
|||||||
void HttpLoad()
|
void HttpLoad()
|
||||||
{
|
{
|
||||||
//count = 0; ÿ äóìàþ åìó ìåñòî çäåñü
|
//count = 0; ÿ äóìàþ åìó ìåñòî çäåñü
|
||||||
|
copystr(#version, #header);
|
||||||
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ
|
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ
|
||||||
DeleteFile(#download_path);
|
DeleteFile(#download_path);
|
||||||
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
|
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
|
||||||
@ -252,7 +254,6 @@ void TWebBrowser::ShowPage(dword adress) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawBar(left, top, width-15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
|
||||||
wintodos(buf);
|
wintodos(buf);
|
||||||
ParseHTML(buf, filesize);
|
ParseHTML(buf, filesize);
|
||||||
IF (!strcmp(#version, #header)) DrawTitle(#header);
|
IF (!strcmp(#version, #header)) DrawTitle(#header);
|
||||||
@ -267,15 +268,19 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
|
|||||||
stroka = -za_kadrom;
|
stroka = -za_kadrom;
|
||||||
stolbec = 0;
|
stolbec = 0;
|
||||||
FOR(j = 400; j < blink + 1; j++;) DeleteButton(j);
|
FOR(j = 400; j < blink + 1; j++;) DeleteButton(j);
|
||||||
b_text = i_text = u_text = s_text = pre_text = blq_text =
|
b_text = i_text = u_text = s_text = pre_text = blq_text = body_present =
|
||||||
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab = 0; //îáíóëÿåì òåãè
|
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab = 0; //îáíóëÿåì òåãè
|
||||||
link_color = 0x0000FF;
|
link_color = 0x0000FF;
|
||||||
|
bg_color = 0xFFFFFF;
|
||||||
blink = 400;
|
blink = 400;
|
||||||
line = '';
|
line = '';
|
||||||
copystr("|", #page_links);
|
copystr("|", #page_links);
|
||||||
copystr(#version, #header);
|
copystr(#version, #header);
|
||||||
IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà
|
IF(!strcmp(#URL + strlen(#URL) - 4, ".txt"))
|
||||||
//IF(!strcmp(#URL + strlen(#URL) - 4, ".rtf")) pre_text = 1;
|
{
|
||||||
|
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||||
|
pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà
|
||||||
|
}
|
||||||
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
|
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
|
||||||
for (; buf + fsize > bword; bword++;) {
|
for (; buf + fsize > bword; bword++;) {
|
||||||
bukva = ESBYTE[bword];
|
bukva = ESBYTE[bword];
|
||||||
@ -394,11 +399,14 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
|
|||||||
copystr(#bukva, #line + strlen(#line));
|
copystr(#bukva, #line + strlen(#line));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
IF(max_kolvo_strok * 10 + 25 <= height)
|
if (strcmp(#URL + strlen(#URL) - 4, ".txt")<>0) && (body_present==0)
|
||||||
DrawBar(left, max_kolvo_strok * 10 + top + 25, width - 15, -max_kolvo_strok * 10 + height - 25, 0xFFFFFF);
|
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó åñëè êàêîé-òî ðàõèò íå ñîçäàë òåã áîäè
|
||||||
IF(stroka * 10 + 15 <= height)
|
|
||||||
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, 0xFFFFFF); //çàêðàøèâàåì âñ¸ äî êîíöà
|
if (max_kolvo_strok * 10 + 25 <= height)
|
||||||
IF(za_kadrom == 0) count = stroka;
|
DrawBar(left, max_kolvo_strok * 10 + top + 25, width - 15, -max_kolvo_strok * 10 + height - 25, bg_color);
|
||||||
|
if (stroka * 10 + 15 <= height)
|
||||||
|
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, bg_color); //çàêðàøèâàåì âñ¸ äî êîíöà
|
||||||
|
if (za_kadrom == 0) count = stroka;
|
||||||
DrawScroller(); //ðèñóåì ñêðîëë
|
DrawScroller(); //ðèñóåì ñêðîëë
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,7 +508,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
//
|
//
|
||||||
IF(!tag) return;
|
IF(!tag) return;
|
||||||
stolbec += strlen(#line);
|
stolbec += strlen(#line);
|
||||||
////////////////////////// <body bgcolor="#000000" text="#FFFFFF">
|
|
||||||
if (!chTag("body"))
|
if (!chTag("body"))
|
||||||
{
|
{
|
||||||
BODY_MARK:
|
BODY_MARK:
|
||||||
@ -508,22 +516,25 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
if (strcmp(#parametr, "link=") == 0)
|
if (strcmp(#parametr, "link=") == 0)
|
||||||
link_color = GetColor(#options);
|
link_color = GetColor(#options);
|
||||||
|
|
||||||
/*if (strcmp(#parametr, "text=") == 0)
|
if (strcmp(#parametr, "text=") == 0)
|
||||||
{
|
{
|
||||||
text_colors[0]=GetColor(#options);
|
text_colors[0]=GetColor(#options);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(#parametr, "bgcolor=") == 0)
|
if (strcmp(#parametr, "bgcolor=") == 0)
|
||||||
{
|
{
|
||||||
//text_colors[0]=GetColor(#options);
|
bg_color=GetColor(#options);
|
||||||
WriteDebug("bgcolor=");
|
}
|
||||||
WriteDebug(#options);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
IF(tagparam) {
|
IF(tagparam) {
|
||||||
GetNextParam();
|
GetNextParam();
|
||||||
GOTO BODY_MARK;
|
GOTO BODY_MARK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body_present = 1; //åñëè êàëè÷ íå ñîçäàë òåã áîäè íóæíî èçâðàùàòüñÿ
|
||||||
|
|
||||||
|
if (rez) DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
if (!chTag("a")) {
|
if (!chTag("a")) {
|
||||||
@ -669,7 +680,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
IF (h<=0) return;
|
IF (h<=0) return;
|
||||||
|
|
||||||
img_draw stdcall (image,left1-5,top1+10,w, h,0,img_za_kadrom);
|
img_draw stdcall (image,left1-5,top1+10,w, h,0,img_za_kadrom);
|
||||||
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, 0xFFFFFF);
|
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color);
|
||||||
}
|
}
|
||||||
/*else
|
/*else
|
||||||
{
|
{
|
||||||
@ -715,7 +726,7 @@ void TextGoDown(int left1, top1, width1) {
|
|||||||
IF(blq_text == 1) stolbec = 8;
|
IF(blq_text == 1) stolbec = 8;
|
||||||
ELSE stolbec = 0;
|
ELSE stolbec = 0;
|
||||||
IF(li_text == 1) stolbec = li_tab * 5;
|
IF(li_text == 1) stolbec = li_tab * 5;
|
||||||
IF(stroka >= 0) && (stroka - 2 < max_kolvo_strok) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, 0xFFFFFF);
|
IF(stroka >= 0) && (stroka - 2 < max_kolvo_strok) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, bg_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
..\C--\c-- HTMLv.c--
|
..\C--\c-- HTMLv.c--
|
||||||
del HTMLv
|
del HTMLv
|
||||||
rename HTMLv.com HTMLv
|
rename HTMLv.com HTMLv
|
||||||
..\C--\kpack HTMLv
|
rem ..\C--\kpack HTMLv
|
||||||
rem pause
|
rem pause
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<font color="#FFC005">c</font>
|
<font color="#FFC005">c</font>
|
||||||
<font color="red">y</font><br>
|
<font color="red">y</font><br>
|
||||||
</b>
|
</b>
|
||||||
ニ頸黑頏 2008-2011
|
ニ頸黑頏 2008-2012
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Íåáîëüøîé ñïèñîê:<ol>
|
Íåáîëüøîé ñïèñîê:<ol>
|
||||||
|
Loading…
Reference in New Issue
Block a user