forked from KolibriOS/kolibrios
HTMLv 0.94: general code update
git-svn-id: svn://kolibrios.org@2810 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b409bc1b4a
commit
e50cde95f6
@ -21,10 +21,10 @@ char URL[4096],
|
|||||||
page_links[12000],
|
page_links[12000],
|
||||||
header[512];
|
header[512];
|
||||||
|
|
||||||
int max_kolvo_strok, //lines_visible
|
int lines_visible,
|
||||||
max_kolvo_stolbcov,
|
lines_all,
|
||||||
count, //lines_all
|
lines_first,
|
||||||
za_kadrom, //lines_first
|
lines_column_max,
|
||||||
mouse_dd;
|
mouse_dd;
|
||||||
|
|
||||||
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,248,#editURL,#mouse_dd,2,19,19};
|
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,248,#editURL,#mouse_dd,2,19,19};
|
||||||
@ -42,7 +42,7 @@ void main()
|
|||||||
{
|
{
|
||||||
int btn;
|
int btn;
|
||||||
byte key;
|
byte key;
|
||||||
int scroll_size;
|
int half_scroll_size;
|
||||||
|
|
||||||
mem_Init();
|
mem_Init();
|
||||||
load_dll2(libio, #libio_init,1);
|
load_dll2(libio, #libio_init,1);
|
||||||
@ -50,9 +50,9 @@ void main()
|
|||||||
load_dll2(boxlib, #edit_box_draw,0);
|
load_dll2(boxlib, #edit_box_draw,0);
|
||||||
load_dll2(#abox_lib, #boxlib_init,0);
|
load_dll2(#abox_lib, #boxlib_init,0);
|
||||||
|
|
||||||
if (param) copystr(#param,#URL);
|
if (param) strcpy(#URL, #param);
|
||||||
else copystr("/sys/index.htm",#URL);
|
else strcpy(#URL, "/sys/index.htm");
|
||||||
copystr(#URL,#editURL);
|
strcpy(#editURL, #URL);
|
||||||
|
|
||||||
OpenPage();
|
OpenPage();
|
||||||
|
|
||||||
@ -64,9 +64,9 @@ void main()
|
|||||||
{
|
{
|
||||||
CASE evMouse:
|
CASE evMouse:
|
||||||
/*scrollbar_v_mouse (#scroll1); //êîí÷åíûé ñêðîëë ïðèòîðìàæèìàåò, èä¸ì "ñâîèì ïóò¸ì"
|
/*scrollbar_v_mouse (#scroll1); //êîí÷åíûé ñêðîëë ïðèòîðìàæèìàåò, èä¸ì "ñâîèì ïóò¸ì"
|
||||||
if (za_kadrom <> scroll1.position)
|
if (lines_first <> scroll1.position)
|
||||||
{
|
{
|
||||||
za_kadrom = scroll1.position;
|
lines_first = scroll1.position;
|
||||||
WB1.ParseHTML(buf, filesize);
|
WB1.ParseHTML(buf, filesize);
|
||||||
//break;
|
//break;
|
||||||
};*/
|
};*/
|
||||||
@ -85,33 +85,32 @@ void main()
|
|||||||
|
|
||||||
IF (m.vert==65535) //ïðîêðóòêà êîë¸ñèêîì
|
IF (m.vert==65535) //ïðîêðóòêà êîë¸ñèêîì
|
||||||
{
|
{
|
||||||
IF (za_kadrom==0) break;
|
IF (lines_first==0) break;
|
||||||
IF (za_kadrom>3) za_kadrom-=2; ELSE za_kadrom=1;
|
IF (lines_first>3) lines_first-=2; ELSE lines_first=1;
|
||||||
WB1.Scan(ID1);
|
WB1.Scan(ID1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
IF (m.vert==1)
|
IF (m.vert==1)
|
||||||
{
|
{
|
||||||
IF(max_kolvo_strok+za_kadrom+3>=count) WB1.Scan(181);
|
IF(lines_visible+lines_first+3>=lines_all) WB1.Scan(181);
|
||||||
ELSE {
|
ELSE {
|
||||||
za_kadrom+=2;
|
lines_first+=2;
|
||||||
WB1.Scan(ID2);
|
WB1.Scan(ID2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
IF (count<max_kolvo_strok) break;
|
IF (lines_all<lines_visible) break;
|
||||||
scroll_size = WB1.height - 16 * max_kolvo_strok / count - 3;
|
half_scroll_size = WB1.height - 16 * lines_visible / lines_all - 3 /2;
|
||||||
if (m.x>=WB1.width-14) && (m.x<=WB1.width+6)
|
if (m.x>=WB1.width-14) && (m.x<=WB1.width+6)
|
||||||
&& (m.y>WB1.top+16) && (m.y<WB1.top+WB1.height-16)
|
&& (m.y>WB1.top+16) && (m.y<WB1.top+WB1.height-16)
|
||||||
&& (count>max_kolvo_strok) while (m.lkm)
|
&& (lines_all>lines_visible) while (m.lkm)
|
||||||
{
|
{
|
||||||
IF (scroll_size/2+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+WB1.top; //åñëè êóðñîð íàä îêíîì
|
IF (half_scroll_size/2+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=half_scroll_size/2+WB1.top; //åñëè êóðñîð íàä îêíîì
|
||||||
btn=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
|
btn=lines_first; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
|
||||||
j= scroll_size/2;
|
lines_first = m.y -half_scroll_size -WB1.top * lines_all / WB1.height;
|
||||||
za_kadrom = m.y -j -WB1.top * count / WB1.height;
|
IF (lines_visible+lines_first>lines_all) lines_first=lines_all-lines_visible;
|
||||||
IF (max_kolvo_strok+za_kadrom>count) za_kadrom=count-max_kolvo_strok;
|
IF (btn<>lines_first) WB1.ParseHTML(buf, filesize); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
|
||||||
IF (btn<>za_kadrom) WB1.ParseHTML(buf, filesize); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
|
|
||||||
m.get();
|
m.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,10 +146,10 @@ void main()
|
|||||||
{
|
{
|
||||||
if (GetProcessSlot(downloader_id)<>0) break;
|
if (GetProcessSlot(downloader_id)<>0) break;
|
||||||
downloader_id=0;
|
downloader_id=0;
|
||||||
|
lines_first = lines_all = 0;
|
||||||
ReadHtml();
|
ReadHtml();
|
||||||
if (filesize) wintodos(buf);
|
if (filesize) wintodos(buf);
|
||||||
Draw_Window();
|
Draw_Window();
|
||||||
//WB1.ShowPage(#URL);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -159,16 +158,17 @@ void main()
|
|||||||
|
|
||||||
void Draw_Window()
|
void Draw_Window()
|
||||||
{
|
{
|
||||||
|
int j;
|
||||||
DefineAndDrawWindow(215,100,640,480,0x73,0x00E4DFE1,0,0,0);
|
DefineAndDrawWindow(215,100,640,480,0x73,0x00E4DFE1,0,0,0);
|
||||||
|
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
IF (Form.status_window>2) //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
if (Form.status_window>2) //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
||||||
{
|
{
|
||||||
DrawTitle(#header);
|
DrawTitle(#header);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
IF (Form.height<120) MoveSize(OLD,OLD,OLD,120);
|
if (Form.height<120) MoveSize(OLD,OLD,OLD,120);
|
||||||
IF (Form.width<280) MoveSize(OLD,OLD,280,OLD);
|
if (Form.width<280) MoveSize(OLD,OLD,280,OLD);
|
||||||
|
|
||||||
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
||||||
if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10);
|
if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10);
|
||||||
@ -176,7 +176,7 @@ void Draw_Window()
|
|||||||
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //çàêðàøèâàåì ôîí ïîä òóëáàðîì
|
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //çàêðàøèâàåì ôîí ïîä òóëáàðîì
|
||||||
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //âûïóêëîñòü
|
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //âûïóêëîñòü
|
||||||
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //âûïóêëîñòü
|
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //âûïóêëîñòü
|
||||||
FOR (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0x00E4DFE1);
|
for (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0x00E4DFE1);
|
||||||
PutImage(#URLgoto,40,19,onLeft(57,0),14);
|
PutImage(#URLgoto,40,19,onLeft(57,0),14);
|
||||||
DefineButton(onLeft(37,0),15, 18, 16, GOTOURL+BT_HIDE, 0xE4DFE1);
|
DefineButton(onLeft(37,0),15, 18, 16, GOTOURL+BT_HIDE, 0xE4DFE1);
|
||||||
DefineButton(onLeft(56,0),15, 17, 16, SEARCHWEB+BT_HIDE, 0xE4DFE1);
|
DefineButton(onLeft(56,0),15, 17, 16, SEARCHWEB+BT_HIDE, 0xE4DFE1);
|
||||||
@ -187,8 +187,8 @@ void Draw_Window()
|
|||||||
WB1.top=44;
|
WB1.top=44;
|
||||||
WB1.width=Form.width-13;
|
WB1.width=Form.width-13;
|
||||||
WB1.height=onTop(43,5);
|
WB1.height=onTop(43,5);
|
||||||
max_kolvo_stolbcov = WB1.width - 30 / 6;
|
lines_column_max = WB1.width - 30 / 6;
|
||||||
max_kolvo_strok = WB1.height - 3 / 10 - 2;
|
lines_visible = WB1.height - 3 / 10 - 2;
|
||||||
|
|
||||||
WB1.ShowPage(#URL);
|
WB1.ShowPage(#URL);
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
|
|
||||||
int downloader_id;
|
int downloader_id;
|
||||||
|
|
||||||
dword j,
|
dword
|
||||||
buf,
|
buf,
|
||||||
filesize,
|
filesize,
|
||||||
blink = 400;
|
blink;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
char download_path[]="/rd/1/.download";
|
char download_path[]="/rd/1/.download";
|
||||||
char search_path[]="http://nigma.ru/index.php?s=";
|
char search_path[]="http://nigma.ru/index.php?s=";
|
||||||
char version[]=" Text-based Browser 0.93e";
|
char version[]=" Text-based Browser 0.94";
|
||||||
|
|
||||||
|
|
||||||
struct TWebBrowser {
|
struct TWebBrowser {
|
||||||
@ -60,20 +60,18 @@ void TWebBrowser::Scan(int id)
|
|||||||
//#1
|
//#1
|
||||||
if (URL[0] == '#')
|
if (URL[0] == '#')
|
||||||
{
|
{
|
||||||
copystr(#URL+find_symbol(#URL, '#'), #anchor);
|
strcpy(#anchor, #URL+find_symbol(#URL, '#'));
|
||||||
|
|
||||||
copystr(BrowserHistory.CurrentUrl(), #URL);
|
strcpy(#URL, BrowserHistory.CurrentUrl());
|
||||||
//copystr(#editURL, #URL + strlen(#URL));
|
|
||||||
//copystr(#URL, #editURL);
|
|
||||||
|
|
||||||
za_kadrom=count-max_kolvo_strok;
|
lines_first=lines_all-lines_visible;
|
||||||
ShowPage(#URL);
|
ShowPage(#URL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//liner.ru#1
|
//liner.ru#1
|
||||||
if (find_symbol(#URL, '#')<>-1)
|
if (find_symbol(#URL, '#')<>-1)
|
||||||
{
|
{
|
||||||
copystr(#URL+find_symbol(#URL, '#'), #anchor);
|
strcpy(#anchor, #URL+find_symbol(#URL, '#'));
|
||||||
URL[find_symbol(#URL, '#')-1] = 0x00; //çàãëóøêà
|
URL[find_symbol(#URL, '#')-1] = 0x00; //çàãëóøêà
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +80,7 @@ void TWebBrowser::Scan(int id)
|
|||||||
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
|
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
|
||||||
{
|
{
|
||||||
RunProgram("/sys/media/kiv", #URL);
|
RunProgram("/sys/media/kiv", #URL);
|
||||||
copystr(BrowserHistory.CurrentUrl(), #URL);
|
strcpy(#URL, BrowserHistory.CurrentUrl());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +88,7 @@ void TWebBrowser::Scan(int id)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IF(count < max_kolvo_strok) SWITCH(id) //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
|
IF(lines_all < lines_visible) SWITCH(id) //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
|
||||||
{ CASE 183: CASE 184: CASE 180: CASE 181: return; }
|
{ CASE 183: CASE 184: CASE 180: CASE 181: return; }
|
||||||
|
|
||||||
switch (id)
|
switch (id)
|
||||||
@ -127,7 +125,7 @@ void TWebBrowser::Scan(int id)
|
|||||||
Draw_Window();
|
Draw_Window();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
anchor_line_num=za_kadrom; //âåñ¸ëûé êîñòûëü :Ð
|
anchor_line_num=lines_first; //âåñ¸ëûé êîñòûëü :Ð
|
||||||
anchor[0]='|';
|
anchor[0]='|';
|
||||||
OpenPage();
|
OpenPage();
|
||||||
return;
|
return;
|
||||||
@ -139,44 +137,44 @@ void TWebBrowser::Scan(int id)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case HOME:
|
case HOME:
|
||||||
copystr("http://kolibri-os.narod.ru", #editURL);
|
strcpy(#editURL, "http://kolibri-os.narod.ru");
|
||||||
case GOTOURL:
|
case GOTOURL:
|
||||||
case 0x0D: //enter
|
case 0x0D: //enter
|
||||||
copystr(#editURL, #URL);
|
strcpy(#URL, #editURL);
|
||||||
OpenPage();
|
OpenPage();
|
||||||
return;
|
return;
|
||||||
case 173: //ctrl+enter
|
case 173: //ctrl+enter
|
||||||
case SEARCHWEB:
|
case SEARCHWEB:
|
||||||
copystr(#search_path, #URL);
|
strcpy(#URL, #search_path);
|
||||||
copystr(#editURL, #URL + strlen(#URL));
|
strcat(#URL, #editURL);
|
||||||
OpenPage();
|
OpenPage();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID1: //ìîòàåì ââåðõ
|
case ID1: //ìîòàåì ââåðõ
|
||||||
IF(za_kadrom <= 0) return;
|
IF(lines_first <= 0) return;
|
||||||
za_kadrom--;
|
lines_first--;
|
||||||
break;
|
break;
|
||||||
case ID2: //ìîòàåì âíèç
|
case ID2: //ìîòàåì âíèç
|
||||||
IF(max_kolvo_strok + za_kadrom >= count) return;
|
IF(lines_visible + lines_first >= lines_all) return;
|
||||||
za_kadrom++;
|
lines_first++;
|
||||||
break;
|
break;
|
||||||
case 183: //PgDown
|
case 183: //PgDown
|
||||||
IF(za_kadrom == count - max_kolvo_strok) return;
|
IF(lines_first == lines_all - lines_visible) return;
|
||||||
za_kadrom += max_kolvo_strok + 2;
|
lines_first += lines_visible + 2;
|
||||||
IF(max_kolvo_strok + za_kadrom > count) za_kadrom = count - max_kolvo_strok;
|
IF(lines_visible + lines_first > lines_all) lines_first = lines_all - lines_visible;
|
||||||
BREAK;
|
BREAK;
|
||||||
case 184: //PgUp
|
case 184: //PgUp
|
||||||
IF(za_kadrom == 0) RETURN;
|
IF(lines_first == 0) RETURN;
|
||||||
za_kadrom -= max_kolvo_strok - 2;
|
lines_first -= lines_visible - 2;
|
||||||
IF(za_kadrom < 0) za_kadrom = 0;
|
IF(lines_first < 0) lines_first = 0;
|
||||||
BREAK;
|
BREAK;
|
||||||
case 180: //home
|
case 180: //home
|
||||||
IF(za_kadrom == 0) RETURN;
|
IF(lines_first == 0) RETURN;
|
||||||
za_kadrom = 0;
|
lines_first = 0;
|
||||||
BREAK;
|
BREAK;
|
||||||
case 181: //end
|
case 181: //end
|
||||||
IF (za_kadrom == count - max_kolvo_strok) RETURN;
|
IF (lines_first == lines_all - lines_visible) RETURN;
|
||||||
za_kadrom = count - max_kolvo_strok;
|
lines_first = lines_all - lines_visible;
|
||||||
BREAK;
|
BREAK;
|
||||||
default:
|
default:
|
||||||
RETURN;
|
RETURN;
|
||||||
@ -187,12 +185,12 @@ void TWebBrowser::Scan(int id)
|
|||||||
|
|
||||||
|
|
||||||
void GetNewUrl(){
|
void GetNewUrl(){
|
||||||
IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+2,#URL); //èãíîðèì :)
|
IF (!strcmp(get_URL_part(2),"./")) strcpy(#URL, #URL+2); //èãíîðèì :)
|
||||||
|
|
||||||
if (URL[0] <> '/')
|
if (URL[0] <> '/')
|
||||||
&& (strcmp(get_URL_part(5),"http:")<>0) && (strcmp(get_URL_part(5),"mailt")<>0) && (strcmp(get_URL_part(5),"ftp:/")<>0)
|
&& (strcmp(get_URL_part(5),"http:")<>0) && (strcmp(get_URL_part(5),"mailt")<>0) && (strcmp(get_URL_part(5),"ftp:/")<>0)
|
||||||
{
|
{
|
||||||
copystr(BrowserHistory.CurrentUrl(), #editURL); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
strcpy(#editURL, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
||||||
|
|
||||||
_CUT_ST_LEVEL_MARK:
|
_CUT_ST_LEVEL_MARK:
|
||||||
|
|
||||||
@ -203,14 +201,14 @@ void GetNewUrl(){
|
|||||||
|
|
||||||
IF (!strcmp(get_URL_part(3),"../")) //íà óðîâåíü ââåðõ
|
IF (!strcmp(get_URL_part(3),"../")) //íà óðîâåíü ââåðõ
|
||||||
{
|
{
|
||||||
copystr(#URL+3,#URL);
|
strcpy(#URL,#URL+3);
|
||||||
editURL[find_symbol(#editURL, '/')-1] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
editURL[find_symbol(#editURL, '/')-1] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||||
goto _CUT_ST_LEVEL_MARK;
|
goto _CUT_ST_LEVEL_MARK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editURL[strlen(#editURL)-1]<>'/') copystr("/", #editURL + strlen(#editURL));
|
if (editURL[strlen(#editURL)-1]<>'/') strcat(#editURL, "/");
|
||||||
copystr(#URL, #editURL + strlen(#editURL)); //êëåèì íîâûé àäðåñ
|
strcat(#editURL, #URL); //êëåèì íîâûé àäðåñ
|
||||||
copystr(#editURL, #URL);
|
strcpy(#URL, #editURL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,12 +237,10 @@ void OpenPage()
|
|||||||
{
|
{
|
||||||
if (GetProcessSlot(downloader_id)<>0) PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
if (GetProcessSlot(downloader_id)<>0) PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
||||||
KillProcess(downloader_id);
|
KillProcess(downloader_id);
|
||||||
copystr(#URL, #editURL);
|
strcpy(#editURL, #URL);
|
||||||
BrowserHistory.AddUrl();
|
BrowserHistory.AddUrl();
|
||||||
za_kadrom = count = 0;
|
|
||||||
if (!strcmp(get_URL_part(5),"http:")))
|
if (!strcmp(get_URL_part(5),"http:")))
|
||||||
{
|
{
|
||||||
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]='';
|
||||||
@ -262,6 +258,7 @@ void OpenPage()
|
|||||||
Draw_Window();
|
Draw_Window();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
lines_first = lines_all = 0;
|
||||||
ReadHtml();
|
ReadHtml();
|
||||||
if (filesize) wintodos(buf);
|
if (filesize) wintodos(buf);
|
||||||
WB1.ShowPage(#URL);
|
WB1.ShowPage(#URL);
|
||||||
@ -294,25 +291,29 @@ void TWebBrowser::ShowPage(dword adress)
|
|||||||
|
|
||||||
void TWebBrowser::ParseHTML(dword bword, fsize){
|
void TWebBrowser::ParseHTML(dword bword, fsize){
|
||||||
word bukva[1];
|
word bukva[1];
|
||||||
|
int j;
|
||||||
byte ignor_param = 0;
|
byte ignor_param = 0;
|
||||||
char temp[768];
|
char temp[768];
|
||||||
stroka = -za_kadrom;
|
|
||||||
|
stroka = -lines_first;
|
||||||
stolbec = 0;
|
stolbec = 0;
|
||||||
FOR(j = 400; j < blink + 1; j++;) DeleteButton(j);
|
|
||||||
|
for (j = 400; j < blink + 1; j++;) DeleteButton(j);
|
||||||
|
blink = 400;
|
||||||
|
|
||||||
b_text = i_text = u_text = s_text = pre_text = blq_text = body_present =
|
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;
|
bg_color = 0xFFFFFF;
|
||||||
blink = 400;
|
|
||||||
line = '';
|
line = '';
|
||||||
copystr("|", #page_links);
|
strcpy(#page_links,"|");
|
||||||
copystr(#version, #header);
|
strcpy(#header,#version);
|
||||||
IF(!strcmp(#URL + strlen(#URL) - 4, ".txt"))
|
if (!strcmp(#URL + strlen(#URL) - 4, ".txt"))
|
||||||
{
|
{
|
||||||
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||||
pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà
|
pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà
|
||||||
}
|
}
|
||||||
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
|
if (!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
|
||||||
for (bword = buf; buf + fsize > bword; bword++;) {
|
for (bword = buf; buf + fsize > bword; bword++;) {
|
||||||
bukva = ESBYTE[bword];
|
bukva = ESBYTE[bword];
|
||||||
switch (bukva) {
|
switch (bukva) {
|
||||||
@ -328,7 +329,7 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
|
|||||||
tab_len=strlen(#line)/8;
|
tab_len=strlen(#line)/8;
|
||||||
tab_len=tab_len*8;
|
tab_len=tab_len*8;
|
||||||
tab_len=8+tab_len-strlen(#line);
|
tab_len=8+tab_len-strlen(#line);
|
||||||
for (i=0; i<tab_len; i++;) copystr(" ", #line + strlen(#line));
|
for (i=0; i<tab_len; i++;) strcat(#line," ");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x0d:
|
case 0x0d:
|
||||||
@ -336,114 +337,116 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
|
|||||||
goto DEFAULT_MARK;
|
goto DEFAULT_MARK;
|
||||||
case '<':
|
case '<':
|
||||||
bword++; //ïðîìîòàåì ñèìâîë <
|
bword++; //ïðîìîòàåì ñèìâîë <
|
||||||
IF(ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
|
if (ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
|
||||||
{
|
{
|
||||||
bword++;
|
bword++;
|
||||||
IF(ESBYTE[bword] == '-') {
|
if (ESBYTE[bword] == '-') {
|
||||||
HH_: do {
|
HH_: do {
|
||||||
bword++;
|
bword++;
|
||||||
IF(bword >= buf + fsize) break 1;
|
IF(bword >= buf + fsize) break 1;
|
||||||
} while (ESBYTE[bword] <>'-');
|
} while (ESBYTE[bword] <>'-');
|
||||||
bword++;
|
bword++;
|
||||||
IF(ESBYTE[bword] <>'-') GOTO HH_;
|
if (ESBYTE[bword] <>'-') goto HH_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WHILE (ESBYTE[bword] <>'>') && (bword < buf + fsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
|
while (ESBYTE[bword] <>'>') && (bword < buf + fsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
|
||||||
{
|
{
|
||||||
bukva = ESBYTE[bword];
|
bukva = ESBYTE[bword];
|
||||||
IF(bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
|
if (bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
|
||||||
IF(!ignor_param) && (bukva <>' ') copystr(#bukva, #tag + strlen(#tag));
|
if (!ignor_param) && (bukva <>' ') strcat(#tag, #bukva);
|
||||||
ELSE {
|
else
|
||||||
|
{
|
||||||
ignor_param = true;
|
ignor_param = true;
|
||||||
copystr(#bukva, #tagparam + strlen(#tagparam));
|
strcat(#tagparam, #bukva);
|
||||||
}
|
}
|
||||||
bword++;
|
bword++;
|
||||||
}
|
}
|
||||||
lowcase(#tag);
|
lowcase(#tag);
|
||||||
lowcase(#tagparam);
|
lowcase(#tagparam);
|
||||||
|
|
||||||
IF (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //íåáîëüøîé ôèêñ äëÿ ðàáîòû ñ XHTML-òåãàìè òèïà br/
|
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //íåáîëüøîé ôèêñ äëÿ ðàáîòû ñ XHTML-òåãàìè òèïà br/
|
||||||
IF(strlen(#tagparam) > 0) && (strlen(#tagparam) < 4000) GetNextParam();
|
if (strlen(#tagparam) > 0) && (strlen(#tagparam) < 4000) GetNextParam();
|
||||||
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ
|
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ
|
||||||
|
|
||||||
line = tag = parametr = tagparam = ignor_param = 0; //âñ¸ îáíóëÿåì
|
line = tag = parametr = tagparam = ignor_param = 0; //âñ¸ îáíóëÿåì
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7
|
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7
|
||||||
IF(strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK;
|
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK;
|
||||||
|
|
||||||
bword++;
|
bword++;
|
||||||
bukva=ESBYTE[bword];
|
bukva=ESBYTE[bword];
|
||||||
copystr(#bukva, #temp);
|
strcpy(#temp,#bukva);
|
||||||
|
|
||||||
bword++;
|
bword++;
|
||||||
bukva=ESBYTE[bword];
|
bukva=ESBYTE[bword];
|
||||||
copystr(#bukva, #temp + strlen(#temp));
|
strcat(#temp,#bukva);
|
||||||
|
|
||||||
bukva=Hex2Symb(#temp);
|
bukva=Hex2Symb(#temp);
|
||||||
IF (bukva) goto DEFAULT_MARK;
|
if (bukva) goto DEFAULT_MARK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '&': //îáðàáîòêà òåãîâ òèïà
|
case '&': //îáðàáîòêà òåãîâ òèïà
|
||||||
IF(ignor_text) break;
|
if (ignor_text) break;
|
||||||
bword++;
|
bword++;
|
||||||
tag='';
|
tag='';
|
||||||
FOR (j=0; (ESBYTE[bword] <>';') && (j < 7); j++; bword++;)
|
for (j=0; (ESBYTE[bword] <>';') && (j < 7); j++, bword++;)
|
||||||
{
|
{
|
||||||
bukva = ESBYTE[bword];
|
bukva = ESBYTE[bword];
|
||||||
copystr(#bukva, #tag + strlen(#tag));
|
strcat(#tag, #bukva);
|
||||||
}
|
}
|
||||||
|
|
||||||
FOR (j=0; unicode_tags[j]!=0; j+=2;)
|
for (j=0; unicode_tags[j]!=0; j+=2;)
|
||||||
{
|
{
|
||||||
IF(!strcmp(#tag, unicode_tags[j]))
|
if (!strcmp(#tag, unicode_tags[j]))
|
||||||
{
|
{
|
||||||
copystr(unicode_tags[j+1], #line + strlen(#line));
|
strcat(#line, unicode_tags[j+1]);
|
||||||
break 1;
|
break 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rez = StrToInt(#tag + 1) - 1040;
|
rez = StrToInt(#tag + 1) - 1040;
|
||||||
IF(tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5)
|
if (tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5)
|
||||||
{
|
{
|
||||||
bukva = unicode_chars[rez];
|
bukva = unicode_chars[rez];
|
||||||
GOTO DEFAULT_MARK; //îáðàáàòûâàåì áóêâó
|
GOTO DEFAULT_MARK; //îáðàáàòûâàåì áóêâó
|
||||||
}
|
}
|
||||||
|
|
||||||
//WriteDebug(#tag); //òýã íå íàéäåí - âûâîäèì íà äîñêó îòëàäêè
|
//debug(#tag); //òýã íå íàéäåí - âûâîäèì íà äîñêó îòëàäêè
|
||||||
copystr(#tag, #line + strlen(#line)); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò
|
strcat(#line,#tag); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DEFAULT_MARK:
|
DEFAULT_MARK:
|
||||||
IF(ignor_text) break;
|
IF(ignor_text) break;
|
||||||
IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue;
|
IF(!pre_text) && (bukva == ' ') && (!strcmp(#line + strlen(#line) - 1, " ")) continue;
|
||||||
//
|
//
|
||||||
if (stolbec + strlen(#line) > max_kolvo_stolbcov)
|
if (stolbec + strlen(#line) >lines_column_max)
|
||||||
{
|
{
|
||||||
copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì
|
strcpy(#temp, #line + find_symbol(#line, ' ')); //ïåðåíîñ ïî ñëîâàì
|
||||||
line[find_symbol(#line, ' ')] = 0x00;
|
line[find_symbol(#line, ' ')] = 0x00;
|
||||||
NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì...
|
NEXT_MARK:
|
||||||
|
IF(stroka - 1 > lines_visible) && (lines_first <>0) break 1; //óõîäèì...
|
||||||
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè
|
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè
|
||||||
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
|
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
|
||||||
copystr(#temp, #line);
|
strcpy(#line, #temp);
|
||||||
}
|
}
|
||||||
IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) CONTINUE;
|
if (!pre_text) && (bukva == ' ') && (!stolbec) && (!line) CONTINUE;
|
||||||
copystr(#bukva, #line + strlen(#line));
|
strcat(#line, #bukva);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strcmp(#URL + strlen(#URL) - 4, ".txt")<>0) && (body_present==0)
|
if (strcmp(#URL + strlen(#URL) - 4, ".txt")<>0) && (!body_present)
|
||||||
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó åñëè êàêîé-òî ðàõèò íå ñîçäàë òåã áîäè
|
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó åñëè êàêîé-òî ðàõèò íå ñîçäàë òåã áîäè
|
||||||
|
|
||||||
if (max_kolvo_strok * 10 + 25 <= height)
|
if (lines_visible * 10 + 25 <= height)
|
||||||
DrawBar(left, max_kolvo_strok * 10 + top + 25, width - 15, -max_kolvo_strok * 10 + height - 25, bg_color);
|
DrawBar(left, lines_visible * 10 + top + 25, width - 15, -lines_visible * 10 + height - 25, bg_color);
|
||||||
if (stroka * 10 + 15 <= height)
|
if (stroka * 10 + 15 <= height)
|
||||||
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, bg_color); //çàêðàøèâàåì âñ¸ äî êîíöà
|
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, bg_color); //çàêðàøèâàåì âñ¸ äî êîíöà
|
||||||
if (za_kadrom == 0) count = stroka;
|
if (lines_first == 0) lines_all = stroka;
|
||||||
|
|
||||||
if (anchor)
|
if (anchor)
|
||||||
{
|
{
|
||||||
anchor[0]='';
|
anchor='';
|
||||||
za_kadrom=anchor_line_num;
|
lines_first=anchor_line_num;
|
||||||
ParseHTML(buf, filesize);
|
ParseHTML(buf, filesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -466,15 +469,15 @@ void GetNextParam()
|
|||||||
IF (kavichki)
|
IF (kavichki)
|
||||||
{
|
{
|
||||||
i=find_symbol(#tagparam, kavichki);
|
i=find_symbol(#tagparam, kavichki);
|
||||||
copystr(#tagparam + i, #options);
|
strcpy(#options, #tagparam + i);
|
||||||
}
|
}
|
||||||
ELSE
|
ELSE
|
||||||
{
|
{
|
||||||
WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=find_symbol(#tagparam, '=')+1;
|
WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=find_symbol(#tagparam, '=')+1;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
copystr(#tagparam + i, #options); //êîïèðóåì îïöèþ
|
strcpy(#options, #tagparam + i); //êîïèðóåì îïöèþ
|
||||||
WHILE (options[0] == ' ') copystr(#options + 1, #options);
|
WHILE (options[0] == ' ') strcpy(#options, #options+1);
|
||||||
}
|
}
|
||||||
tagparam[i] = 0x00;
|
tagparam[i] = 0x00;
|
||||||
|
|
||||||
@ -487,7 +490,7 @@ void GetNextParam()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
copystr(#tagparam + i + 1, #parametr); //êîïèðóåì ïàðàìåòð
|
strcpy(#parametr, #tagparam + i + 1); //êîïèðóåì ïàðàìåòð
|
||||||
tagparam[i] = 0x00;
|
tagparam[i] = 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,13 +502,13 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
|
|
||||||
dword image=0;
|
dword image=0;
|
||||||
char temp[4096];
|
char temp[4096];
|
||||||
int w, h, img_za_kadrom=0;
|
int w, h, img_lines_first=0;
|
||||||
|
|
||||||
//ïðîâåðÿåì òåã îòêðûâàåòñÿ èëè çàêðûâàåòñÿ
|
//ïðîâåðÿåì òåã îòêðûâàåòñÿ èëè çàêðûâàåòñÿ
|
||||||
IF(tag[0] == '/')
|
IF(tag[0] == '/')
|
||||||
{
|
{
|
||||||
rez = 0;
|
rez = 0;
|
||||||
copystr(#tag + 1, #tag);
|
strcpy(#tag, #tag+1);
|
||||||
}
|
}
|
||||||
ELSE
|
ELSE
|
||||||
rez = 1;
|
rez = 1;
|
||||||
@ -519,9 +522,9 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
|
|
||||||
if(!chTag("title")) && (!rez)
|
if(!chTag("title")) && (!rez)
|
||||||
{
|
{
|
||||||
copystr(#line, #header);
|
strcpy(#header, #line);
|
||||||
copystr(" -", #header + strlen(#header));
|
strcat(#header, " -");
|
||||||
copystr(#version, #header + strlen(#header));
|
strcat(#header, #version);
|
||||||
if (stroka==0) DrawTitle(#header);
|
if (stroka==0) DrawTitle(#header);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -530,10 +533,10 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
IF(!chTag("q")) copystr("\"", #line + strlen(#line));
|
IF(!chTag("q")) strcat(#line, "\"");
|
||||||
|
|
||||||
//âûâîä íà ýêðàí
|
//âûâîä íà ýêðàí
|
||||||
if (stroka >= 0) && (stroka - 2 < max_kolvo_strok) && (line) && (!anchor)
|
if (stroka >= 0) && (stroka - 2 < lines_visible) && (line) && (!anchor)
|
||||||
{
|
{
|
||||||
WriteText(stolbec * 6 + left1, top1, 0x80, text_colors[text_color_index], #line, 0); //ìîæåò òóò ðèñîâàòü áåëóþ ñòðîêó?
|
WriteText(stolbec * 6 + left1, top1, 0x80, text_colors[text_color_index], #line, 0); //ìîæåò òóò ðèñîâàòü áåëóþ ñòðîêó?
|
||||||
IF (b_text) { $add ebx, 1<<16 $int 0x40 }
|
IF (b_text) { $add ebx, 1<<16 $int 0x40 }
|
||||||
@ -553,7 +556,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
{
|
{
|
||||||
if (!strcmp(#anchor, #options))
|
if (!strcmp(#anchor, #options))
|
||||||
{
|
{
|
||||||
anchor_line_num=za_kadrom+stroka;
|
anchor_line_num=lines_first+stroka;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,20 +595,20 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
_A_MARK:
|
_A_MARK:
|
||||||
if (!strcmp(#parametr, "href="))
|
if (!strcmp(#parametr, "href="))
|
||||||
{
|
{
|
||||||
if (stroka - 1 > max_kolvo_strok) || (stroka < -2) return;
|
if (stroka - 1 > lines_visible) || (stroka < -2) return;
|
||||||
if (link == 1) text_color_index--; //åñëè êàêîé-òî äîëáî¸á íå çàêðûë òýã
|
if (link == 1) text_color_index--; //åñëè êàêîé-òî äîëáî¸á íå çàêðûë òýã
|
||||||
link = 1;
|
link = 1;
|
||||||
blink++;
|
blink++;
|
||||||
text_color_index++;
|
text_color_index++;
|
||||||
text_colors[text_color_index] = link_color;
|
text_colors[text_color_index] = link_color;
|
||||||
copystr(#options, #page_links + strlen(#page_links));
|
strcat(#page_links, #options);
|
||||||
copystr("|", #page_links + strlen(#page_links));
|
strcat(#page_links, "|");
|
||||||
}
|
}
|
||||||
if (anchor) && (!strcmp(#parametr, "name="))
|
if (anchor) && (!strcmp(#parametr, "name="))
|
||||||
{
|
{
|
||||||
if (!strcmp(#anchor, #options))
|
if (!strcmp(#anchor, #options))
|
||||||
{
|
{
|
||||||
anchor_line_num=za_kadrom+stroka;
|
anchor_line_num=lines_first+stroka;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tagparam)
|
if (tagparam)
|
||||||
@ -623,7 +626,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
/////////////////////////
|
/////////////////////////
|
||||||
if (!chTag("font"))
|
if (!chTag("font"))
|
||||||
{
|
{
|
||||||
IF (stroka - 1 > max_kolvo_strok) return;
|
IF (stroka - 1 > lines_visible) return;
|
||||||
COL_MARK:
|
COL_MARK:
|
||||||
if (strcmp(#parametr, "color=") == 0) //&& (parametr[1] == '#')
|
if (strcmp(#parametr, "color=") == 0) //&& (parametr[1] == '#')
|
||||||
{
|
{
|
||||||
@ -638,34 +641,37 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
IF(!chTag("tr")) || (!chTag("br")) {
|
if(!chTag("tr")) || (!chTag("br")) {
|
||||||
TextGoDown(left1, top1, width1);
|
TextGoDown(left1, top1, width1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
IF(!chTag("div")) {
|
if (!chTag("div")) {
|
||||||
IF(oldtag[0] <>'h') TextGoDown(left1, top1, width1);
|
IF(oldtag[0] <>'h') TextGoDown(left1, top1, width1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
IF(!chTag("p")) {
|
if (!chTag("p")) {
|
||||||
IF(oldtag[0] == 'h') return;
|
IF(oldtag[0] == 'h') return;
|
||||||
TextGoDown(left1, top1, width1);
|
TextGoDown(left1, top1, width1);
|
||||||
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
IF(!chTag("h1")) || (!chTag("h2")) || (!chTag("h3")) || (!chTag("h4")) {
|
if (!chTag("h1")) || (!chTag("h2")) || (!chTag("h3")) || (!chTag("h4")) {
|
||||||
TextGoDown(left1, top1, width1);
|
TextGoDown(left1, top1, width1);
|
||||||
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
||||||
b_text = rez;
|
b_text = rez;
|
||||||
copystr(#tag, #oldtag);
|
strcpy(#oldtag, #tag);
|
||||||
return;
|
return;
|
||||||
} ELSE copystr("", #oldtag);
|
}
|
||||||
IF(!chTag("b")) || (!chTag("strong")) || (!chTag("big")) {
|
else
|
||||||
|
oldtag='';
|
||||||
|
|
||||||
|
if (!chTag("b")) || (!chTag("strong")) || (!chTag("big")) {
|
||||||
b_text = rez;
|
b_text = rez;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
IF(!chTag("i")) || (!chTag("em")) || (!chTag("subtitle")) {
|
if(!chTag("i")) || (!chTag("em")) || (!chTag("subtitle")) {
|
||||||
i_text = rez;
|
i_text = rez;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -683,7 +689,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
li_text = rez;
|
li_text = rez;
|
||||||
IF(rez == 0) return;
|
IF(rez == 0) return;
|
||||||
TextGoDown(left1, top1, width1);
|
TextGoDown(left1, top1, width1);
|
||||||
IF(stroka > -1) && (stroka - 2 < max_kolvo_strok) DrawBar(li_tab * 5 * 6 + left1 - 5, top1 + 12, 2, 2, 0);
|
IF(stroka > -1) && (stroka - 2 < lines_visible) DrawBar(li_tab * 5 * 6 + left1 - 5, top1 + 12, 2, 2, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
@ -711,9 +717,9 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
IMG_TAG:
|
IMG_TAG:
|
||||||
IF (strcmp(#parametr,"src=")==0) //íàäî îáúåäèíèòü ñ GetNewUrl()
|
IF (strcmp(#parametr,"src=")==0) //íàäî îáúåäèíèòü ñ GetNewUrl()
|
||||||
{
|
{
|
||||||
copystr(BrowserHistory.CurrentUrl(), #temp); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
strcpy(#temp, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
||||||
temp[find_symbol(#temp, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
temp[find_symbol(#temp, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||||
copystr(#options,#temp+strlen(#temp));
|
strcat(#temp, #options);
|
||||||
image=load_image(#temp);
|
image=load_image(#temp);
|
||||||
|
|
||||||
w=DSWORD[image+4];
|
w=DSWORD[image+4];
|
||||||
@ -735,19 +741,19 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
|
|
||||||
if (top1<WB1.top) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó
|
if (top1<WB1.top) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó
|
||||||
{
|
{
|
||||||
img_za_kadrom=WB1.top-top1;
|
img_lines_first=WB1.top-top1;
|
||||||
h=h-img_za_kadrom;
|
h=h-img_lines_first;
|
||||||
top1=WB1.top;
|
top1=WB1.top;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (top1>WB1.top+WB1.height-h-15) //åñëè ÷àñòü èçîáðàæåíèÿ ñíèçó IF (stroka - 2 < max_kolvo_strok)
|
if (top1>WB1.top+WB1.height-h-15) //åñëè ÷àñòü èçîáðàæåíèÿ ñíèçó IF (stroka - 2 < lines_visible)
|
||||||
{
|
{
|
||||||
h=WB1.top+WB1.height-top1-15;
|
h=WB1.top+WB1.height-top1-15;
|
||||||
}
|
}
|
||||||
|
|
||||||
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_lines_first);
|
||||||
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color);
|
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color);
|
||||||
IF (link)
|
IF (link)
|
||||||
{
|
{
|
||||||
@ -767,7 +773,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
META:
|
META:
|
||||||
if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content=")) || (!strcmp(#parametr, "encoding="))
|
if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content=")) || (!strcmp(#parametr, "encoding="))
|
||||||
{
|
{
|
||||||
copystr(#options[find_symbol(#options, '=')],#options); //ïîèñê â content=
|
strcpy(#options, #options[find_symbol(#options, '=')]); //ïîèñê â content=
|
||||||
|
|
||||||
IF (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8"))
|
IF (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8"))
|
||||||
{
|
{
|
||||||
@ -784,7 +790,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
|||||||
ReadHtml();
|
ReadHtml();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
IF(tagparam)
|
if (tagparam)
|
||||||
{
|
{
|
||||||
GetNextParam();
|
GetNextParam();
|
||||||
goto META;
|
goto META;
|
||||||
@ -800,16 +806,16 @@ 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) && (!anchor) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, bg_color);
|
IF(stroka >= 0) && (stroka - 2 < lines_visible) && (!anchor) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, bg_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//ñêðîëë
|
//ñêðîëë
|
||||||
void TWebBrowser::DrawScroller() //íå îïòèìàëüíàÿ îòðèñîâêà, íî çàòî â îäíîì ìåñòå
|
void TWebBrowser::DrawScroller() //íå îïòèìàëüíàÿ îòðèñîâêà, íî çàòî â îäíîì ìåñòå
|
||||||
{
|
{
|
||||||
scroll1.max_area = count;
|
scroll1.max_area = lines_all;
|
||||||
scroll1.cur_area = max_kolvo_strok;
|
scroll1.cur_area = lines_visible;
|
||||||
scroll1.position = za_kadrom;
|
scroll1.position = lines_first;
|
||||||
|
|
||||||
scroll1.all_redraw=1;
|
scroll1.all_redraw=1;
|
||||||
scroll1.start_x=Form.width-28; //left + width - 15
|
scroll1.start_x=Form.width-28; //left + width - 15
|
||||||
|
@ -30,11 +30,11 @@ void UrlsHistory::AddUrl() //
|
|||||||
history_current/=2;
|
history_current/=2;
|
||||||
for (i=0; i<history_current; i++;)
|
for (i=0; i<history_current; i++;)
|
||||||
{
|
{
|
||||||
copystr(#history_list[MAX_HISTORY_NUM-i].Item, #history_list[i].Item);
|
strcpy(#history_list[i].Item, #history_list[MAX_HISTORY_NUM-i].Item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
history_current++;
|
history_current++;
|
||||||
copystr(#URL,#history_list[history_current].Item);
|
strcpy(#history_list[history_current].Item, #URL);
|
||||||
history_num=history_current;
|
history_num=history_current;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ byte UrlsHistory::GoBack()
|
|||||||
if (history_current<=1) return 0;
|
if (history_current<=1) return 0;
|
||||||
|
|
||||||
history_current--;
|
history_current--;
|
||||||
copystr(#history_list[history_current].Item,#URL);
|
strcpy(#URL, #history_list[history_current].Item);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,6 +53,6 @@ byte UrlsHistory::GoForward()
|
|||||||
{
|
{
|
||||||
if (history_current==history_num) return 0;
|
if (history_current==history_num) return 0;
|
||||||
history_current++;
|
history_current++;
|
||||||
copystr(#history_list[history_current].Item,#URL);
|
strcpy(#URL, #history_list[history_current].Item);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
dword get_URL_part(byte len) {
|
dword get_URL_part(byte len) {
|
||||||
char temp1[1000];
|
char temp1[1000];
|
||||||
copystr(#URL, #temp1);
|
strcpy(#temp1, #URL);
|
||||||
temp1[len] = 0x00;
|
temp1[len] = 0x00;
|
||||||
return #temp1;
|
return #temp1;
|
||||||
}
|
}
|
||||||
@ -27,14 +27,14 @@ inline byte chTag(dword text) {return strcmp(#tag,text);}
|
|||||||
|
|
||||||
void GetURLfromPageLinks(int id)
|
void GetURLfromPageLinks(int id)
|
||||||
{
|
{
|
||||||
j = 0;
|
int j = 0;
|
||||||
for (i = 0; i <= id - 401; i++)
|
for (i = 0; i <= id - 401; i++)
|
||||||
{
|
{
|
||||||
do j++;
|
do j++;
|
||||||
while (page_links[j] <>'|');
|
while (page_links[j] <>'|');
|
||||||
}
|
}
|
||||||
page_links[j] = 0x00;
|
page_links[j] = 0x00;
|
||||||
copystr(#page_links[find_symbol(#page_links, '|')], #URL);
|
strcpy(#URL, #page_links[find_symbol(#page_links, '|')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,9 +30,10 @@ char program_path[4096];
|
|||||||
#define false 0
|
#define false 0
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
struct mouse{
|
struct mouse
|
||||||
dword x,y,lkm,pkm,hor,vert;
|
{
|
||||||
void get();
|
dword x,y,lkm,pkm,hor,vert;
|
||||||
|
void get();
|
||||||
};
|
};
|
||||||
|
|
||||||
void mouse::get()
|
void mouse::get()
|
||||||
@ -65,10 +66,12 @@ void mouse::get()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct system_colors{
|
struct system_colors
|
||||||
|
{
|
||||||
dword frame,grab,grab_button,grab_button_text,grab_text,work,work_button,work_button_text,work_text,work_graph;
|
dword frame,grab,grab_button,grab_button_text,grab_text,work,work_button,work_button_text,work_text,work_graph;
|
||||||
void get();
|
void get();
|
||||||
};
|
};
|
||||||
|
|
||||||
void system_colors::get()
|
void system_colors::get()
|
||||||
{
|
{
|
||||||
EAX = 48;
|
EAX = 48;
|
||||||
@ -80,22 +83,25 @@ void system_colors::get()
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
inline fastcall dword WaitEvent(){
|
inline fastcall dword WaitEvent()
|
||||||
|
{
|
||||||
$mov eax,10
|
$mov eax,10
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall dword CheckEvent(){
|
inline fastcall dword CheckEvent()
|
||||||
|
{
|
||||||
$mov eax,11
|
$mov eax,11
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall dword WaitEventTimeout(dword EBX){
|
inline fastcall dword WaitEventTimeout( EBX)
|
||||||
|
{
|
||||||
$mov eax,23
|
$mov eax,23
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall SetEventMask(dword EBX)
|
inline fastcall SetEventMask( EBX)
|
||||||
{
|
{
|
||||||
$mov eax,40
|
$mov eax,40
|
||||||
$int 0x40
|
$int 0x40
|
||||||
@ -109,7 +115,8 @@ inline fastcall ScancodesGeting(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall word GetKey(){ //Gluk fix
|
inline fastcall word GetKey() //+Gluk fix
|
||||||
|
{
|
||||||
$push edx
|
$push edx
|
||||||
@getkey:
|
@getkey:
|
||||||
$mov eax,2
|
$mov eax,2
|
||||||
@ -127,21 +134,24 @@ inline fastcall word GetKey(){ //Gluk fix
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall Pause(dword EBX)
|
inline fastcall Pause( EBX)
|
||||||
{ //<2F> 㧠, ¢ á®âëå ¤®«ïå ᥪã¤ë EBX = value
|
{
|
||||||
$mov eax, 5
|
$mov eax, 5
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
//==================================================================
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
inline fastcall word GetButtonID(){
|
inline fastcall word GetButtonID()
|
||||||
|
{
|
||||||
$mov eax,17
|
$mov eax,17
|
||||||
$int 0x40
|
$int 0x40
|
||||||
$shr eax,8
|
$shr eax,8
|
||||||
}
|
}
|
||||||
|
|
||||||
struct proc_info{
|
struct proc_info
|
||||||
|
{
|
||||||
|
#define SelfInfo -1
|
||||||
dword use_cpu;
|
dword use_cpu;
|
||||||
word pos_in_stack,num_slot,rezerv1;
|
word pos_in_stack,num_slot,rezerv1;
|
||||||
char name[11];
|
char name[11];
|
||||||
@ -150,18 +160,17 @@ struct proc_info{
|
|||||||
word status_slot,rezerv3;
|
word status_slot,rezerv3;
|
||||||
dword work_left,work_top,work_width,work_height;
|
dword work_left,work_top,work_width,work_height;
|
||||||
char status_window;
|
char status_window;
|
||||||
void GetInfo(dword ECX);
|
void GetInfo( ECX);
|
||||||
byte reserved[1024-71];
|
byte reserved[1024-71];
|
||||||
#define SelfInfo -1
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void GetProcessInfo(dword EBX, ECX)
|
void GetProcessInfo( EBX, ECX)
|
||||||
{
|
{
|
||||||
$mov eax,9;
|
$mov eax,9;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetProcessSlot(ECX) //ECX = process ID
|
int GetProcessSlot( ECX) //ECX = process ID
|
||||||
{
|
{
|
||||||
EAX = 18;
|
EAX = 18;
|
||||||
EBX = 21;
|
EBX = 21;
|
||||||
@ -176,28 +185,30 @@ inline fastcall int ActiveProcess()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall ExitProcess(){
|
inline fastcall ExitProcess()
|
||||||
|
{
|
||||||
$mov eax,-1;
|
$mov eax,-1;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall int KillProcess(dword ECX){
|
inline fastcall int KillProcess( ECX)
|
||||||
|
{
|
||||||
$mov eax,18;
|
$mov eax,18;
|
||||||
$mov ebx,18;
|
$mov ebx,18;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
//==================================================================
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
//eax = ÿçûê ñèñòåìû (1=eng, 2=fi, 3=ger, 4=rus)
|
//eax = ÿçûê ñèñòåìû (1=eng, 2=fi, 3=ger, 4=rus)
|
||||||
inline fastcall int GetSystemLanguage(){
|
inline fastcall int GetSystemLanguage()
|
||||||
EAX = 26;
|
{
|
||||||
EBX = 5;
|
EAX = 26;
|
||||||
$int 0x40
|
EBX = 5;
|
||||||
RETURN EAX;
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall void DrawTitle(dword ECX)
|
inline fastcall void DrawTitle( ECX)
|
||||||
{
|
{
|
||||||
EAX = 71;
|
EAX = 71;
|
||||||
EBX = 1;
|
EBX = 1;
|
||||||
@ -228,13 +239,13 @@ inline fastcall dword GetScreenWidth()
|
|||||||
$and eax,0x0000FFFF
|
$and eax,0x0000FFFF
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall MoveSize(dword EBX,ECX,EDX,ESI)
|
inline fastcall MoveSize( EBX,ECX,EDX,ESI)
|
||||||
{
|
{
|
||||||
EAX = 67;
|
EAX = 67;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall dword LoadLibrary(dword ECX)
|
inline fastcall dword LoadLibrary( ECX)
|
||||||
{
|
{
|
||||||
$mov eax, 68
|
$mov eax, 68
|
||||||
$mov ebx, 19
|
$mov ebx, 19
|
||||||
@ -242,32 +253,55 @@ inline fastcall dword LoadLibrary(dword ECX)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
inline fastcall dword strlen(dword EDI){
|
inline fastcall dword strlen( EDI)
|
||||||
|
{
|
||||||
EAX=0;
|
EAX=0;
|
||||||
ECX=-1;
|
ECX=-1;
|
||||||
$REPNE $SCASB
|
$REPNE $SCASB
|
||||||
EAX-=2+ECX;
|
EAX-=2+ECX;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall copystr(dword ESI,EDI)
|
|
||||||
|
inline fastcall strcpy( EDI, ESI)
|
||||||
{
|
{
|
||||||
$cld
|
$cld
|
||||||
l1:
|
l2:
|
||||||
$lodsb
|
$lodsb
|
||||||
$stosb
|
$stosb
|
||||||
$test al,al
|
$test al,al
|
||||||
$jnz l1
|
$jnz l2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fastcall strcat( EDI, ESI)
|
||||||
byte fastcall TestBit(EAX, CL)
|
|
||||||
{
|
{
|
||||||
$shr eax,cl
|
asm {
|
||||||
$and eax,1
|
MOV EBX, EDI
|
||||||
|
XOR ECX, ECX
|
||||||
|
XOR EAX, EAX
|
||||||
|
DEC ECX
|
||||||
|
REPNE SCASB
|
||||||
|
DEC EDI
|
||||||
|
MOV EDX, EDI
|
||||||
|
MOV EDI, ESI
|
||||||
|
XOR ECX, ECX
|
||||||
|
XOR EAX, EAX
|
||||||
|
DEC ECX
|
||||||
|
REPNE SCASB
|
||||||
|
XOR ECX, 0FFFFFFFFH
|
||||||
|
MOV EDI, EDX
|
||||||
|
MOV EDX, ECX
|
||||||
|
MOV EAX, EDI
|
||||||
|
SHR ECX, 2
|
||||||
|
REP MOVSD
|
||||||
|
MOV ECX, EDX
|
||||||
|
AND ECX, 3
|
||||||
|
REP MOVSB
|
||||||
|
MOV EAX, EBX
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[11]="";
|
char buffer[11]="";
|
||||||
inline fastcall dword IntToStr(dword ESI)
|
inline fastcall dword IntToStr( ESI)
|
||||||
{
|
{
|
||||||
$mov edi, #buffer
|
$mov edi, #buffer
|
||||||
$mov ecx, 10
|
$mov ecx, 10
|
||||||
@ -310,7 +344,7 @@ inline fastcall dword StrToInt()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall int strcmp(ESI, EDI)
|
inline fastcall int strcmp( ESI, EDI)
|
||||||
{
|
{
|
||||||
loop()
|
loop()
|
||||||
{
|
{
|
||||||
@ -322,7 +356,7 @@ inline fastcall int strcmp(ESI, EDI)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall unsigned int find_symbol(ESI,BL)
|
inline fastcall unsigned int find_symbol( ESI,BL)
|
||||||
{
|
{
|
||||||
int jj=0, last=-1;
|
int jj=0, last=-1;
|
||||||
do{
|
do{
|
||||||
@ -334,7 +368,7 @@ inline fastcall unsigned int find_symbol(ESI,BL)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall dword upcase(dword ESI)
|
inline fastcall dword upcase( ESI)
|
||||||
{
|
{
|
||||||
do{
|
do{
|
||||||
AL=DSBYTE[ESI];
|
AL=DSBYTE[ESI];
|
||||||
@ -343,7 +377,7 @@ inline fastcall dword upcase(dword ESI)
|
|||||||
}while(AL!=0);
|
}while(AL!=0);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall lowcase(ESI)
|
inline fastcall lowcase( ESI)
|
||||||
{
|
{
|
||||||
do{
|
do{
|
||||||
$LODSB
|
$LODSB
|
||||||
@ -355,6 +389,15 @@ inline fastcall lowcase(ESI)
|
|||||||
}while(AL!=0);
|
}while(AL!=0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
byte fastcall TestBit( EAX, CL)
|
||||||
|
{
|
||||||
|
$shr eax,cl
|
||||||
|
$and eax,1
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI)
|
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI)
|
||||||
{
|
{
|
||||||
@ -375,14 +418,14 @@ void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaC
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline fastcall int CreateThread(dword ECX,EDX)
|
inline fastcall int CreateThread( ECX,EDX)
|
||||||
{
|
{
|
||||||
EAX = 51;
|
EAX = 51;
|
||||||
EBX = 1;
|
EBX = 1;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall int GetSlot(dword ECX)
|
inline fastcall int GetSlot( ECX)
|
||||||
{
|
{
|
||||||
EAX = 18;
|
EAX = 18;
|
||||||
EBX = 21;
|
EBX = 21;
|
||||||
@ -430,7 +473,8 @@ void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI)
|
|||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall void PutPixel(dword EBX,ECX,EDX){
|
inline fastcall void PutPixel( EBX,ECX,EDX)
|
||||||
|
{
|
||||||
EAX=1;
|
EAX=1;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
@ -455,7 +499,7 @@ void DefineButton(dword x,y,w,h,EDX,ESI)
|
|||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall void DeleteButton(dword EDX)
|
inline fastcall void DeleteButton( EDX)
|
||||||
{
|
{
|
||||||
EAX = 8;
|
EAX = 8;
|
||||||
EDX += BT_DEL;
|
EDX += BT_DEL;
|
||||||
@ -500,7 +544,7 @@ void DrawFlatButton(dword x,y,width,height,id,color,text)
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
inline fastcall void debug(dword EDX)
|
inline fastcall void debug( EDX)
|
||||||
{
|
{
|
||||||
$push ebx
|
$push ebx
|
||||||
$push ecx
|
$push ecx
|
||||||
|
Loading…
Reference in New Issue
Block a user