From af9f746fc1ea2cc128f4b5cf89380cf5d7e70734 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 7 Mar 2012 22:51:05 +0000 Subject: [PATCH] HTMLv 0.78 git-svn-id: svn://kolibrios.org@2433 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/HTMLv.c-- | 7 ++++- programs/network/htmlv/browser/History.txt | 4 +++ programs/network/htmlv/browser/TWB.h | 28 +++++++++++++------ .../network/htmlv/browser/include/history.h | 2 ++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/programs/network/htmlv/browser/HTMLv.c-- b/programs/network/htmlv/browser/HTMLv.c-- index e9196a4d88..dbcad2b134 100644 --- a/programs/network/htmlv/browser/HTMLv.c-- +++ b/programs/network/htmlv/browser/HTMLv.c-- @@ -1,5 +1,5 @@ //HTML Viewer in C-- -//Copyright 2007-20012 by Veliant & Leency +//Copyright 2007-2012 by Veliant & Leency //Asper, Lrz, Nable, lev. #include "..\lib\kolibri.h--" @@ -56,6 +56,8 @@ void main() copystr(#URL,#editURL); if (!strcmp(get_URL_part(5),"http:"))) HttpLoad(); + //Draw_Window(); //shis is right + //WB1.ShowPage(#URL); //shis is right SetEventMask(0x27); loop() @@ -144,10 +146,13 @@ void Draw_Window() DrawRegion_3D(205,14,onLeft(58,205),18,0x94AECE,0x94AECE); //ободок полосы адреса DrawRegion_3D(206,15,onLeft(59,205),16,0xE4ECF3,0xE4ECF3); edit1.width=Form.width-266; + //edit_box_draw stdcall(#edit1); //рисуем строку адреса //shis is right + WB1.top=44; WB1.width=Form.width-11; WB1.height=onTop(43,5); WB1.ShowPage(#URL); + //WB1.ParseHTML(buf, filesize); //shis is right } int onLeft(dword right,left) {return Form.width-right-left;} diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt index eb05a11743..c3c903accc 100644 --- a/programs/network/htmlv/browser/History.txt +++ b/programs/network/htmlv/browser/History.txt @@ -2,6 +2,10 @@ - поддержка "bgcolor=" и "text="; - обработка перехода вверх "../"; - jpg, gif, png открываются через kiv. +- теперь изображения легко могут быть ссылками; +- 2 небольших фикса для изображений, кнопки BackSpace; +- чуток улучшена обработка урлов, содержащих #. + 29.02.12 -- v0.76 -- 11.3 diff --git a/programs/network/htmlv/browser/TWB.h b/programs/network/htmlv/browser/TWB.h index 3e4942475a..8e77dd32f4 100644 --- a/programs/network/htmlv/browser/TWB.h +++ b/programs/network/htmlv/browser/TWB.h @@ -1,11 +1,9 @@ -//Web-component, Leency & Veliant 2007-20012 -//lev - //идея - левые файлы открывать соответствующими прогами //ol - циферки //из хттп-лоад в реадхтмл + int downloader_id; dword j, @@ -17,7 +15,7 @@ dword j, char download_path[]="/rd/1/.download"; //char search_path[]="http://nova.rambler.ru/search?words="; char search_path[]="http://nigma.ru/index.php?s="; - char version[]=" Text-based Browser 0.77"; + char version[]=" Text-based Browser 0.78"; struct TWebBrowser { @@ -66,11 +64,18 @@ void TWebBrowser::Scan(dword id) { //эту всю хрень нужно в GetNewUrl() переместить IF (URL[0] == '#') { //мы не умеем переходить по ссылке внутри документа. Пока что... - copystr(#editURL, #URL); + copystr(BrowserHistory.CurrentUrl(), #editURL); + copystr(#URL, #editURL + strlen(#editURL)); + + //edit1.size = edit1.pos = strlen(#editURL); + //edit_box_draw stdcall(#edit1); //рисуем строку адреса + + copystr(BrowserHistory.CurrentUrl(), #URL); + ShowPage(#URL); return; } - URL[find_symbol(#URL, '#')-1] = 0x00; //заглушка, лучше, чем ничего (хабр, например, будет работать) + URL[find_symbol(#URL, '#')-1] = 0x00; //заглушка, лучше, чем ничего (хабр, например, будет работать) //это не совсем правильно - в едитурл должно оставаться GetNewUrl(); @@ -78,7 +83,7 @@ void TWebBrowser::Scan(dword id) { if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg")) { RunProgram("/sys/media/kiv", #URL); - copystr(#editURL, #URL); + copystr(BrowserHistory.CurrentUrl(), #URL); return; } @@ -183,7 +188,7 @@ void TWebBrowser::Scan(dword id) { } void GetNewUrl(){ - IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+2,#URL); + IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+2,#URL); //игнорим :) if (URL[0] <> '/') && (strcmp(get_URL_part(5),"http:")<>0) && (strcmp(get_URL_part(5),"mailt")<>0) && (strcmp(get_URL_part(5),"ftp:/")<>0) @@ -681,7 +686,7 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { { img_za_kadrom=WB1.top-top1; h=h-img_za_kadrom; - top1=WB1.top-5; + top1=WB1.top; } if (top1>WB1.top+WB1.height-h-10) //если часть изображения снизу IF (stroka - 2 < max_kolvo_strok) @@ -693,6 +698,11 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { img_draw stdcall (image,left1-5,top1+10,w, h,0,img_za_kadrom); DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color); + IF (link) + { + DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9); + } + } /*else { diff --git a/programs/network/htmlv/browser/include/history.h b/programs/network/htmlv/browser/include/history.h index 05c42338a5..fade61a20f 100644 --- a/programs/network/htmlv/browser/include/history.h +++ b/programs/network/htmlv/browser/include/history.h @@ -14,7 +14,9 @@ void UrlsHistory::GoBack() UrlHistory[j] = 0x00; j = find_symbol(#UrlHistory, '|'); //предыдущая страница -> она нам и нужна copystr(#UrlHistory + j, #URL); + copystr(#URL, #editURL); + za_kadrom = count = 0; if (!strcmp(get_URL_part(5),"http:"))) HttpLoad(); WB1.ShowPage(#URL); }