/programs/network/htmlv/browser/History.txt |
---|
1,3 → 1,7 |
14.06.12 -- v0.93 |
- çàðàáîòàëè ÿêîðÿ; |
- óëó÷øåíî ìåíþ. |
13.06.12 -- v0.92 |
- áàçîâîå ìåíþ ÏÊÌ; |
- óáðàíà ïîñòîÿííàÿ çàãðóçêà ñòðàíèöû ïðè ïåðåðèñîâêå îêíà; |
/programs/network/htmlv/browser/TWB.h |
---|
9,15 → 9,18 |
char download_path[]="/rd/1/.download"; |
char search_path[]="http://nigma.ru/index.php?s="; |
char version[]=" Text-based Browser 0.92"; |
char version[]=" Text-based Browser 0.93"; |
char tinypad_path[]="/sys/tinypad"; |
char t_edit_path[]="/sys/develop/t_edit"; |
struct TWebBrowser { |
int left, top, width, height; |
void DrawScroller(); |
void ShowPage(); |
void ParseHTML(dword, dword); |
void Scan(dword); |
void Scan(int); |
void WhatTextStyle(int left1, top1, width1); |
}; |
26,7 → 29,7 |
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[30], |
text_color_index, |
link_color, |
bg_color; |
41,7 → 44,10 |
parametr[1200], |
options[1000]; |
char anchor[256]; |
int anchor_line_num; |
#include "include\history.h" |
#include "include\colors.h" |
#include "include\unicode_tags.h" |
48,19 → 54,30 |
#include "include\some_code.h" |
void TWebBrowser::Scan(dword id) { |
void TWebBrowser::Scan(int id) { |
if (id > 399) |
{ |
GetURLfromPageLinks(id); |
//ýòó âñþ õðåíü íóæíî â GetNewUrl() ïåðåìåñòèòü |
if (URL[0] == '#') { //ìû íå óìååì ïåðåõîäèòü ïî ññûëêå âíóòðè äîêóìåíòà. Ïîêà ÷òî... |
copystr(BrowserHistory.CurrentUrl(), #editURL); |
copystr(#URL, #editURL + strlen(#editURL)); |
//#1 |
if (URL[0] == '#') |
{ |
copystr(#URL+find_symbol(#URL, '#'), #anchor); |
copystr(BrowserHistory.CurrentUrl(), #URL); |
//copystr(#editURL, #URL + strlen(#URL)); |
//copystr(#URL, #editURL); |
za_kadrom=count-max_kolvo_strok; |
ShowPage(#URL); |
return; |
} |
URL[find_symbol(#URL, '#')-1] = 0x00; //çàãëóøêà, íî ýòî íå ñîâñåì ïðàâèëüíî - â åäèòóðë äîëæíî îñòàâàòüñÿ |
//liner.ru#1 |
if (find_symbol(#URL, '#')<>-1) |
{ |
copystr(#URL+find_symbol(#URL, '#'), #anchor); |
URL[find_symbol(#URL, '#')-1] = 0x00; //çàãëóøêà |
} |
GetNewUrl(); |
117,8 → 134,12 |
return; |
case 052: //Íàæàòà F3 |
IF(edit1.flags <> 66) |
IF (strcmp(get_URL_part(5),"http:")<>0) RunProgram("tinypad", #URL); ELSE RunProgram("tinypad", #download_path); |
IF (!strcmp(get_URL_part(5),"http:")) RunProgram(#tinypad_path, #download_path); ELSE RunProgram(#tinypad_path, #URL); |
return; |
case 053: //Íàæàòà F4 |
IF(edit1.flags <> 66) |
IF (!strcmp(get_URL_part(5),"http:")) RunProgram(#t_edit_path, #download_path); ELSE RunProgram(#t_edit_path, #URL); |
return; |
case HOME: |
copystr("http://kolibri-os.narod.ru", #editURL); |
349,6 → 370,7 |
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ |
line = tag = parametr = tagparam = ignor_param = 0; //âñ¸ îáíóëÿåì |
break; |
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7 |
IF(strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK; |
420,6 → 442,14 |
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; |
if (anchor) |
{ |
anchor[0]=''; |
za_kadrom=anchor_line_num; |
ParseHTML(buf, filesize); |
} |
DrawScroller(); //ðèñóåì ñêðîëë |
} |
522,6 → 552,14 |
IF(!tag) return; |
stolbec += strlen(#line); |
if (anchor) && (!strcmp(#parametr, "id=")) //î÷åíü ïëîõî!!! ïîòîìó ÷òî åñëè íå ïîñëåäíèé òåã, ðàáîòàòü íå áóäåò |
{ |
if (!strcmp(#anchor, #options)) |
{ |
anchor_line_num=za_kadrom+stroka; |
} |
} |
if (!chTag("body")) |
{ |
BODY_MARK: |
550,11 → 588,15 |
return; |
} |
////////////////////////// |
if (!chTag("a")) { |
IF (stroka - 1 > max_kolvo_strok) || (stroka < -2) return; |
if (rez) { |
HREF: IF(strcmp(#parametr, "href=") == 0) { |
IF(link == 1) text_color_index--; //åñëè êàêîé-òî äîëáî¸á íå çàêðûë òýã |
if (!chTag("a")) |
{ |
if (rez) |
{ |
_A_MARK: |
if (!strcmp(#parametr, "href=")) |
{ |
if (stroka - 1 > max_kolvo_strok) || (stroka < -2) return; |
if (link == 1) text_color_index--; //åñëè êàêîé-òî äîëáî¸á íå çàêðûë òýã |
link = 1; |
blink++; |
text_color_index++; |
562,9 → 604,17 |
copystr(#options, #page_links + strlen(#page_links)); |
copystr("|", #page_links + strlen(#page_links)); |
} |
IF(tagparam) { |
if (anchor) && (!strcmp(#parametr, "name=")) |
{ |
if (!strcmp(#anchor, #options)) |
{ |
anchor_line_num=za_kadrom+stroka; |
} |
} |
if (tagparam) |
{ |
GetNextParam(); |
GOTO HREF; |
GOTO _A_MARK; |
} |
} |
ELSE { |
/programs/network/htmlv/browser/include/acid_0.1.htm |
---|
57,8 → 57,8 |
<hr color="grey"> |
<p><a href='index.htm'>Íà ãëàâíóþ ñòðàíèöó index.htm</a></p> |
<p><a href="index.htm#home" id="#end">index.htm#home</a></p> |
<p><a href="#home">#home</a></p> |
<p><a href="index.htm#2.1.4">index.htm#2.1.4</a></p> |
<p><a href="#2.1.4">#2.1.4</a></p> |
<p><a href="background.gif">Ôîíîâàÿ êàðòèíêà</a></p> |
</body> |
/programs/network/htmlv/browser/include/menu_rmb.h |
---|
4,7 → 4,8 |
#define ITEM_WIDTH 138 |
char *ITEMS_LIST[]={ |
"View html code F3", |
"View in Tinypad F3", |
"View in TextEdit F4", |
"--------------------", //ñäåëàòü îïðåäåëåíèå òàêèõ ëèíèé è ðèñîâàòü èõ |
"KOI-8 Ctrl+K", |
"UTF Ctrl+U", |
17,8 → 18,8 |
{ |
mouse mm; |
int items_num; |
int id, letitclose=0; |
int items_num, items_cur; |
byte id, key; |
SetEventMask(100111b); |
25,38 → 26,62 |
loop() switch(CheckEvent()) |
{ |
case evMouse: |
/*mm.get(); |
//êóëüíî |
if (mm.x>85) && (mm.x<155) && (mm.y>190) && (mm.y<190+22) |
if (mm.lkm) {DrawRegion_3D(86,191,68,20,0xC7C7C7,0xFFFFFF); letitclose=1;} |
ELSE {IF (letitclose) {DrawRegion_3D(86,191,68,20,0xFFFFFF,0xC7C7C7); Pause(7); ExitProcess();}} |
ELSE IF (letitclose) {letitclose=0; DrawRegion_3D(86,191,68,20,0xFFFFFF,0xC7C7C7);}*/ |
mm.get(); |
id=mm.y/ITEM_HEIGHT; |
if (id<0) || (id+1>items_num) break; |
if (items_cur<>id) |
{ |
items_cur=id; |
goto _ITEMS_DRAW; |
} |
break; |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
_BUTTON_MARK: |
if (id==10) WB1.Scan(52); //View html code |
if (id==11) break; |
if (id==12) WB1.Scan(11); //KOI |
if (id==13) WB1.Scan(21); //UTF |
if (id==11) WB1.Scan(53); //View html code |
if (id==12) break; |
if (id==13) WB1.Scan(11); //KOI |
if (id==14) WB1.Scan(21); //UTF |
ExitProcess(); |
break; |
case evKey: |
if (GetKey()==27) ExitProcess(); |
key = GetKey(); |
if (key==27) ExitProcess(); |
if (key==178) && (items_cur) |
{ |
items_cur--; |
goto _ITEMS_DRAW; |
} |
if (key==177) && (items_cur+1<items_num) |
{ |
items_cur++; |
goto _ITEMS_DRAW; |
} |
if (key==13) |
{ |
id=items_cur+10; |
//WriteDebug(IntToStr(id)); |
goto _BUTTON_MARK; |
} |
break; |
case evReDraw: |
for (items_num=0; ITEMS_LIST[items_num]<>0; items_num++;) {}; |
DefineAndDrawWindow(Form.left+m.x,Form.top+m.y+GetSkinWidth()+3,ITEM_WIDTH,items_num*ITEM_HEIGHT,0x01,0x10FFFFFF,0,0,0); |
DefineAndDrawWindow(Form.left+m.x,Form.top+m.y+GetSkinWidth()+3,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,0x10FFFFFF,0,0,0); |
DrawRegion(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT,0x777777); //îáîäîê |
DrawBar(1,1,ITEM_WIDTH-1,items_num*ITEM_HEIGHT-1,0xFFFFFF); //ôîí |
DrawRegion(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x777777); //îáîäîê |
_ITEMS_DRAW: |
for (i=0; i<items_num; i++;) |
{ |
DefineButton(0, i*ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT, i+10+BT_HIDE, 0xFFFFFF); |
if (i<>items_cur) EDX=0xFFFFFF; else EDX=0x94AECE; |
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, ITEM_HEIGHT, EDX); |
WriteText(8,i*ITEM_HEIGHT+6,0x80,0x000000,ITEMS_LIST[i],0); |
} |
default: |
/programs/network/htmlv/browser/include/some_code.h |
---|
25,7 → 25,7 |
inline byte chTag(dword text) {return strcmp(#tag,text);} |
void GetURLfromPageLinks(int id) //ñòîëüêî áðåäà, ïîòîìó ÷òî íåëüçÿ ñîçäàòü ìàññèâ ñòðèíãîâ |
void GetURLfromPageLinks(int id) |
{ |
j = 0; |
for (i = 0; i <= id - 401; i++) |
38,28 → 38,23 |
} |
//Ó íàñ íåò íàêëîííûõ øðèôòîâ, ïîýòîìó äåëàåì êîñòûëü èç |
//ïàëî÷åê äëÿ ìîðîæåíîãî è æåâàòåëüíîé ðåçèíêè: |
//Ñíèìàåì îáëàñòü ýêðàíà è âûâîäèì å¸ îáðàòíî ïîëîñêàìè ñî ñìåùåíèåì, |
//÷òî äà¸ò ïåðåêîñ êàðòèíêè |
//Ïðè íàëè÷èè ôîíà è ò.ï. ïðîÿâèòñÿ âñÿ êîñòûëüíîñòü ðåøåíèÿ :) |
// á ¥â ª«®ëå èà¨ä⮢, ¯®í⮬㠤¥« ¥¬ ª®áâë«ì ¨§ |
//¯ «®ç¥ª ¤«ï ¬®à®¦¥®£® ¨ ¦¥¢ ⥫쮩 १¨ª¨: |
//¨¬ ¥¬ ®¡« áâì íªà ¨ ¢ë¢®¤¨¬ ¥ñ ®¡à â® ¯®«®áª ¬¨ ᮠᬥ饨¥¬, |
//çâ® ¤ ñâ ¯¥à¥ª®á ª à⨪¨ |
//ਠ«¨ç¨¨ ä® ¨ â.¯. ¯à®ï¢¨âáï ¢áï ª®áâë«ì®áâì à¥è¥¨ï :) |
//ç áâì ¤ ëå 㦥 ¯®«ãç¥ ¢ TBW - skin_width, Form.top, ¯®¤ª«î票¥ memory |
inline void Skew(dword x,y,w,h) |
{ |
dword italic_buf; |
int tile_height=2,//¡ã¤¥¬ ¢ë¢®¤¨âì ¤¢ã寨ªá¥«ì묨 ¯®«®áª ¬¨ |
i, skin_width, |
shift=-2; |
int tile_height=2, //áóäåì âûâîäèòü äâóõïèêñåëüíûìè ïîëîñêàìè |
shift=-2, //ñ äâóõïèêñåëüíûì ñìåùåíèåì |
i; |
italic_buf = mem_Alloc(w*h*3); |
skin_width = GetSkinWidth(); |
CopyScreen(italic_buf, x+Form.left+2, GetSkinWidth()+y+Form.top, w, h); |
CopyScreen(italic_buf, x+Form.left+2, y+Form.top+skin_width, w, h); |
FOR (i=0;i*tile_height<h;i++){ |
PutImage(w*3*tile_height*i+italic_buf,w,tile_height,x+shift-i+1,i*tile_height+y); |
} |