From 69abfe5c20ce3a53d43669271c4ab7753e0d8b48 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Mon, 5 Sep 2011 09:18:16 +0000 Subject: [PATCH] htmlv 0.68c: improvements and fixes in showing images, some optimizations git-svn-id: svn://kolibrios.org@2155 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/HTMLv.c-- | 8 +++--- programs/network/htmlv/browser/History.txt | 6 +++-- programs/network/htmlv/browser/TWB.h-- | 31 +++++++++++++++------- programs/network/htmlv/lib/file_system.h-- | 5 ++-- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/programs/network/htmlv/browser/HTMLv.c-- b/programs/network/htmlv/browser/HTMLv.c-- index 71ce765daa..c6f17b4428 100644 --- a/programs/network/htmlv/browser/HTMLv.c-- +++ b/programs/network/htmlv/browser/HTMLv.c-- @@ -127,9 +127,9 @@ void Draw_Window() } IF (Form.height<120) MoveSize(OLD,OLD,OLD,120); IF (Form.width<280) MoveSize(OLD,OLD,280,OLD); - // - PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal); - DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //закрашиваем фон под тулбаром + + PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal); + DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //закрашиваем фон под тулбаром DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //выпуклость 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); @@ -143,7 +143,7 @@ void Draw_Window() WB1.width=Form.width-11; WB1.height=onTop(43,5); WB1.Load(#URL); - // + WindowRedrawStatus(2); } diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt index e0b487751c..34ed9007b6 100644 --- a/programs/network/htmlv/browser/History.txt +++ b/programs/network/htmlv/browser/History.txt @@ -1,8 +1,10 @@ -04.09.11 -- v0.68 -- 11.1 Кб +05.09.11 -- v0.68 -- 11.2 Кб - устранён вылет программы при неправильном параметре color тега - алсо иногда действительно полезно читать маны; - memory.h-- удалён как старый дубликат, все функции работы с памятью отныне - используют mem.h--, написанный Asper'ом. + используют mem.h--, написанный Asper'ом; +- изображения теперь вписываются в окно по ширине; +- устранён частый вылет программы при прокрутке страницы, содержащей изображения. 20.08.11 -- v0.67 -- 11.1 Кб - более адекватная прокрутка изображений; diff --git a/programs/network/htmlv/browser/TWB.h-- b/programs/network/htmlv/browser/TWB.h-- index e3aa7f2b5f..6ecc6409d3 100644 --- a/programs/network/htmlv/browser/TWB.h-- +++ b/programs/network/htmlv/browser/TWB.h-- @@ -7,6 +7,7 @@ //wintodos(buf); -> в парсе хтмл как и все кодировки //ol - циферки +int downloader_id; dword j, buf, @@ -179,13 +180,14 @@ void ReadHtml(byte DO_LOAD) buf = mem_Alloc(1048576); - IF (!strcmp(get_URL_part(5),"http:"))) + if (!strcmp(get_URL_part(5),"http:"))) { IF (DO_LOAD) && (!WindowRePaint) { DeleteFile(#download_path); IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=''; - RunProgram("/sys/network/downloader", #URL); + downloader_id = RunProgram("/sys/network/downloader", #URL); + IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable."); RETURN; } ReadFile(0, 1048576, buf, #download_path); @@ -281,8 +283,6 @@ int stroka, byte ignor_param = 0; - byte rtf_text; - void TWebBrowser::ParseHTML(dword bword, fsize){ word bukva[1]; char temp[768]; @@ -657,6 +657,8 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { GOTO IMG_TAG; } + if (w>width1) w=width1; + if (image) { stroka+=h/10; @@ -676,23 +678,32 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { //WriteDebug(IntToStr(WB1.top)); //WriteDebug(IntToStr(h)); h=WB1.top+WB1.height-top1-10; - } + } + + + //WriteDebug(IntToStr(h)); + //Pause(10); + + IF (h<=0) return; img_draw stdcall (image,left1-5,top1+10,w, h,0,0); + //WriteDebug("Good"); DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, 0xFFFFFF); } + return; } - if (!chTag("meta")) { + if (!chTag("meta")) + { META: if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content=")) { copystr(#options[find_symbol(#options, '=')],#options); //поиск в content= - IF (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8")) + IF (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8")) { ReadHtml(DONT_LOAD); - utf8rutodos(buf); + utf8rutodos(buf); } IF(!strcmp(#options, "koi8-r")) || (!strcmp(#options, "koi8-u")) { @@ -704,10 +715,12 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { ReadHtml(DONT_LOAD); } } - IF(tagparam[0] <>'') { + IF(tagparam[0] <>'') + { GetNextParam(); goto META; } + return; } } diff --git a/programs/network/htmlv/lib/file_system.h-- b/programs/network/htmlv/lib/file_system.h-- index 840a9a0bed..acb84181f5 100644 --- a/programs/network/htmlv/lib/file_system.h-- +++ b/programs/network/htmlv/lib/file_system.h-- @@ -51,7 +51,7 @@ dword GetFileInfo(dword file_name) // Запуск программы // /////////////////////////// f70 run_file_70; -void RunProgram(dword run_path, run_param) +int RunProgram(dword run_path, run_param) { run_file_70.func = 7; run_file_70.param1 = @@ -62,7 +62,8 @@ void RunProgram(dword run_path, run_param) run_file_70.name = run_path; $mov eax,70 $mov ebx,#run_file_70.func - $int 0x40 + $int 0x40 + RETURN EAX; } ///////////////////////////