diff --git a/programs/network/htmlv/browser/HTMLv.c-- b/programs/network/htmlv/browser/HTMLv.c--
index a7f5bb3c84..5eb223cf3a 100644
--- a/programs/network/htmlv/browser/HTMLv.c--
+++ b/programs/network/htmlv/browser/HTMLv.c--
@@ -2,17 +2,16 @@
//Copyright 2007-2009 by Veliant & Leency
//Asper, Lrz, Nable, lev.
-#include "../lib/kolibri.h--"
-#include "../lib/file_system.h--"
-#include "include/some_code.h--"
-#include "img/toolbar_icons.c--"
-#include "img/URLgoto.txt";
+#include "..\lib\kolibri.h--"
+#include "..\lib\file_system.h--"
+#include "img\toolbar_icons.c"
+#include "img\URLgoto.txt";
//Asper
-#include "../lib/mem.h--"
-#include "../lib/libio_lib.h--"
-#include "../lib/libimg_lib.h--"
-#include "../lib/edit_box_lib.h--"
-#include "../lib/dll.h--"
+#include "..\lib\mem.h--"
+#include "..\lib\libio_lib.h--"
+#include "..\lib\libimg_lib.h--"
+#include "..\lib\edit_box_lib.h--"
+#include "..\lib\dll.h--"
//переменные
char URL[4096]="/sys/index.htm",
@@ -30,12 +29,12 @@ int za_kadrom,
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,248,#editURL,#mouse_dd,2,19,19};
-
-#include "TWB.h--"
-
proc_info Form;
+#include "TWB.h"
+
+
void main()
{
mouse m;
@@ -91,10 +90,14 @@ void main()
IF (btn<>za_kadrom) WB1.ParseHTML(buf, filesize); //чтоб лишний раз не перерисовывать
m.get();
}
- BREAK;
+ break;
case evButton:
btn=GetButtonID();
- IF (btn==1) ExitProcess();
+ IF (btn==1)
+ {
+ KillProcess(downloader_id);
+ ExitProcess();
+ }
ELSE
{
WB1.Scan(btn);
@@ -117,9 +120,7 @@ void main()
void Draw_Window()
{
- WindowRedrawStatus(1);
DefineAndDrawWindow(215,100,640,480,0x73,0x00E4DFE1,0,0,0);
- WindowRedrawStatus(2);
GetProcessInfo(#Form, SelfInfo);
IF (Form.height==GetSkinWidth()+3) //если свернуто в заголовок, ничего не рисуем
@@ -131,6 +132,8 @@ void Draw_Window()
IF (Form.width<280) MoveSize(OLD,OLD,280,OLD);
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
+ if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10);
+
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //закрашиваем фон под тулбаром
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //выпуклость
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //выпуклость
diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt
index 10843f5178..b5481248af 100644
--- a/programs/network/htmlv/browser/History.txt
+++ b/programs/network/htmlv/browser/History.txt
@@ -1,4 +1,11 @@
-24.02.12 -- v0.72 -- 11.? Кб
+27.02.12 -- v0.75 -- 11.? Кб
+- при закрытии HTMLv, downloader тоже завершается;
+- невозможно запустить больше одного downloader'a;
+- отображение процесса загрузки страницы из Интернета через кнопочку "остановить", надпись "Loading...", возможность прервать процесс;
+- обновление страницы из Интернета приводит к её повторной загрузке.
+
+
+24.02.12 -- v0.71 -- 11.? Кб
- просто починил эти самые интернеты.
diff --git a/programs/network/htmlv/browser/ReadMe.txt b/programs/network/htmlv/browser/ReadMe.txt
index 3f7850fe9e..f1d20ae1e2 100644
--- a/programs/network/htmlv/browser/ReadMe.txt
+++ b/programs/network/htmlv/browser/ReadMe.txt
@@ -1,27 +1,22 @@
==О программе HTMLv==
HTMLv - это текстовый браузер, а так же просмотровщик веб-страниц. Пока что
поддерживает только форматирование текста с некоторыми вложеными параметрами.
-Программа написана на языке... среднего уровня C--. Обсуждение программы здесь:
+Программа написана на языке C--. В нём можно писать программы, как на Си, так и на асме, притом их там удобно совмещать.
+Обсуждение программы здесь:
http://board.kolibrios.org/viewtopic.php?f=9&t=1075
-Для поиска нужно в адресную строку ввести запрос, нажать Ctrl+Enter (или кнопку).
==Установка==
-Сама программа может быть запущена откуда угодно.
+Сама программа может быть запущена откуда угодно. Для работы с Интернетом необходим downloader.
==Интернет==
-Если ваша сетевая карта не поддерживается Колибри нативно - не беда.
-Она поддерживается в Qemu и VirtualBox :)
+Если ваша сетевая карта не поддерживается Колибри нативно - не беда:
+она поддерживается в Qemu и VirtualBox.
==Проблемы==
-1. Связаны со строкой адреса.
-box_lib.obj следует положить в /sys/lib/
-2. Страницы из Интернета не хотят загружаться.
-ZEROCONF.INI [настройки сети для Qemu и VBox] положить в /sys/network/
-downloader положить в /sys/
-
+Отписывайтесь в теме, если что-то не так. Ссылка выше.
==Авторы==
Leency - разработка, дизайн.
@@ -30,6 +25,4 @@ Veliant -
Barsuk - программа downloader, код работы с ней.
Lrz - компонент EditBox.
Nable - оптимизации.
-lev - оптимизации, некоторые доработки.
-
-Спасибо за использование :)
\ No newline at end of file
+lev - оптимизации, некоторые доработки.
\ No newline at end of file
diff --git a/programs/network/htmlv/browser/TWB.h-- b/programs/network/htmlv/browser/TWB.h
similarity index 90%
rename from programs/network/htmlv/browser/TWB.h--
rename to programs/network/htmlv/browser/TWB.h
index a216319b94..229d30fae7 100644
--- a/programs/network/htmlv/browser/TWB.h--
+++ b/programs/network/htmlv/browser/TWB.h
@@ -4,6 +4,10 @@
//идея - левые файлы открывать соответствующими прогами
//ol - циферки
+//из хттп-лоад в реадхтмл
+
+//BrowserHistory.AddUrl(); -> проверка не = ли новый адрес старому и добавить поумолчанию везде
+
int downloader_id;
dword j,
@@ -15,7 +19,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.71";
+ char version[]=" Text-based Browser 0.75";
struct TWebBrowser {
@@ -50,29 +54,29 @@ char line[330],
options[1000];
-#include "include\history.h--"
-#include "include\colors.h--"
-#include "include\unicode_tags.h--"
+#include "include\history.h"
+#include "include\colors.h"
+#include "include\unicode_tags.h"
+#include "include\some_code.h"
+
void TWebBrowser::Scan(dword id) {
if (id > 399)
{
- j = 0;
- FOR(i = 0; i <= id - 401; i++) {
- do j++;
- while (page_links[j] <>'|');
- }
- page_links[j] = 0x00;
- copystr(#page_links[find_symbol(#page_links, '|')], #URL);
-
//Lee 21.02 {
IF (URL[0] == '#') { //мы не умеем переходить по ссылке внутри документа. Пока что...
copystr(#editURL, #URL);
return;
}
- URL[find_symbol(#URL, '#')-1] = 0x00; //заглушка, лучше, чем ничего (хабр, например, будет работать)
+ GetURLfromPageLinks(id);
+
+ URL[find_symbol(#URL, '#')-1] = 0x00; //заглушка, лучше, чем ничего (хабр, например, будет работать)
+
GetNewUrl();
+
+ BrowserHistory.AddUrl();
+
if (!strcmp(get_URL_part(5),"http:"))) HttpLoad();
//Lee 21.02 }
@@ -101,8 +105,16 @@ void TWebBrowser::Scan(dword id) {
case 054: //F5
IF(edit1.flags == 66) break;
case REFRESH:
+ if (GetProcessSlot(downloader_id)<>0)
+ {
+ KillProcess(downloader_id);
+ Pause(20);
+ Draw_Window();
+ return;
+ }
copystr(#URL, #editURL);
- Draw_Window();
+ if (!strcmp(get_URL_part(5),"http:"))) HttpLoad();
+ ShowPage(#URL);
return;
case 014: //Ctrl+N новое окно
case 020: //Ctrl+T новая вкладка
@@ -165,6 +177,7 @@ void TWebBrowser::Scan(dword id) {
void GetNewUrl(){
IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+1,#URL);
+
//IF (!strcmp(get_URL_part(3),"../"))
//{
// //DrawTitle(#URL+7);
@@ -185,12 +198,19 @@ void GetNewUrl(){
}
}
+
void HttpLoad()
{
+ za_kadrom = 0;
+ copystr(#URL, #editURL);
+
+
+ KillProcess(downloader_id); //убиваем старый процесс
DeleteFile(#download_path);
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
downloader_id = RunProgram("/sys/network/downloader", #URL);
IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable.");
+ Draw_Window();
}
@@ -202,7 +222,7 @@ void ReadHtml()
file_size stdcall (#URL);
filesize = EBX;
- if (!filesize) /*{Pause(200); ReadHtml();}*/ return; //Lee 22.09
+ if (!filesize) /*{Pause(200); ReadHtml();}*/ return;
mem_Free(buf);
buf = mem_Alloc(filesize);
if (!strcmp(get_URL_part(5),"http:")))
@@ -217,31 +237,28 @@ void TWebBrowser::ShowPage(dword adress) {
max_kolvo_stolbcov = width - 30 / 6;
max_kolvo_strok = height - 3 / 10 - 2;
copystr(#version, #header);
- IF (!WindowRePaint) {
- za_kadrom = 0;
- copystr(#URL, #editURL);
- BrowserHistory.AddUrl();
- }
edit1.size = edit1.pos = strlen(#editURL);
edit_box_draw stdcall(#edit1); //рисуем строку адреса
-
+
//LETS_LOAD
ReadHtml();
-
- IF (!filesize) return; //Lee 22.09
-
- wintodos(buf);
- ParseHTML(buf, filesize);
- IF(!strlen(buf)) {
- IF (strcmp(get_URL_part(5),"http:")==0)
+
+ if (!filesize)
+ {
+ DrawBar(left, top, width+2, height, 0xFFFFFF); //закрашиваем всё донизу
+ if (GetProcessSlot(downloader_id)<>0) WriteText(left + 10, top + 18, 0x80, 0, "Loading...", 0);
+ else
{
- PutImage(#stop_btn, 24, 24, 88, 10);
- WriteText(left + 10, top + 18, 0x80, 0, "Loading...", 0);
- }
- ELSE
WriteText(left + 10, top + 18, 0x80, 0, "Page not found. May be, URL contains some errors.", 0);
+ if (!strcmp(get_URL_part(5),"http:"))) WriteText(left + 10, top + 32, 0x80, 0, "Or Internet unavilable for your configuration.", 0);
+ }
+ DrawTitle(#version); //?
+ return;
}
+ DrawBar(left, top, width-15, 15, 0xFFFFFF); //закрашиваем первую строку
+ wintodos(buf);
+ ParseHTML(buf, filesize);
IF (!strcmp(#version, #header)) DrawTitle(#header);
}
@@ -263,7 +280,6 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //зачётное отображение текста
//IF(!strcmp(#URL + strlen(#URL) - 4, ".rtf")) pre_text = 1;
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
- IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //закрашиваем первую строку
for (; buf + fsize > bword; bword++;) {
bukva = ESBYTE[bword];
switch (bukva) {
@@ -688,6 +704,10 @@ 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, 0xFFFFFF);
}
+ /*else
+ {
+ IF (strcmp(#parametr,"alt=")==0) copystr(#options,#line+strlen(#line));
+ }*/
return;
}
@@ -740,7 +760,7 @@ void TWebBrowser::DrawScroller() {
DrawFlatButton(left + width - 15, top, 16, 16, ID1, 0xE4DFE1, "\x18");
IF(count <= max_kolvo_strok) {
- DrawBar(left + width - 14, top + 17, 16, height - 34, 0xCED0D0);
+ DrawBar(left + width - 14, top, 16, height - 17, 0xCED0D0);
return;
}
diff --git a/programs/network/htmlv/browser/compile.bat b/programs/network/htmlv/browser/compile.bat
index 4ddfd1ea92..b5dd2ac0b6 100644
--- a/programs/network/htmlv/browser/compile.bat
+++ b/programs/network/htmlv/browser/compile.bat
@@ -2,4 +2,4 @@
del HTMLv
rename HTMLv.com HTMLv
..\C--\kpack HTMLv
-pause
+rem pause
diff --git a/programs/network/htmlv/browser/img/toolbar_icons.c-- b/programs/network/htmlv/browser/img/toolbar_icons.c
similarity index 100%
rename from programs/network/htmlv/browser/img/toolbar_icons.c--
rename to programs/network/htmlv/browser/img/toolbar_icons.c
diff --git a/programs/network/htmlv/browser/include/colors.h-- b/programs/network/htmlv/browser/include/colors.h
similarity index 100%
rename from programs/network/htmlv/browser/include/colors.h--
rename to programs/network/htmlv/browser/include/colors.h
diff --git a/programs/network/htmlv/browser/include/fps.h-- b/programs/network/htmlv/browser/include/fps.h--
deleted file mode 100644
index 7a13a4176f..0000000000
--- a/programs/network/htmlv/browser/include/fps.h--
+++ /dev/null
@@ -1,51 +0,0 @@
-int GetTime()
-{
- $mov eax, 26;
- $mov ebx, 9;
- $int 0x40;
- return EAX;
-}
-
-
-/*******************************************************************************
-ФУНКЦИЯ ОПРЕДЕЛЕНИЯ FPS
-x,y - координаты вывода FPS на окно
-возвращает время в сотых долях секунды затрачиваемое на 1 цикл
-*/
-
-int time1=0;
-int time2=0;
-int fps1=0;
-int timerend=0;
-
-int FPS()
-{
- int tr;
-
- time1=GetTime();
-
- if (timerend==0)
- {
- time2=time1;
- timerend=time1;
- }
-
- tr = time1 - timerend;
-
- if (time1 - time2 < 100) //если прошло менее 1 секунды
- { //увеличиваем счетчик fps
- fps1++;
- }
- else
- {
- //выводим число fps
- DrawTitle(IntToStr(fps1));
- fps1=0;
- time2=time1;
- }
-
- timerend=time1;
-
-return tr;
-}
-//******************************************************************************
diff --git a/programs/network/htmlv/browser/include/history.h-- b/programs/network/htmlv/browser/include/history.h
similarity index 90%
rename from programs/network/htmlv/browser/include/history.h--
rename to programs/network/htmlv/browser/include/history.h
index 2b9533412b..70264fa194 100644
--- a/programs/network/htmlv/browser/include/history.h--
+++ b/programs/network/htmlv/browser/include/history.h
@@ -1,4 +1,3 @@
-
struct UrlsHistory {
byte UrlHistory[6000];
void AddUrl();
@@ -10,6 +9,9 @@ UrlsHistory BrowserHistory;
void UrlsHistory::GoBack()
{
+ //WriteDebug(#UrlHistory);
+
+
j = strlen(#UrlHistory);
WHILE(UrlHistory[j] <>'|') && (j > 0) j--;
IF (j > 0) UrlHistory[j] = 0x00;
@@ -28,10 +30,7 @@ void UrlsHistory::AddUrl()
copystr(#URL, #UrlHistory + strlen(#UrlHistory));
}
-
dword UrlsHistory::CurrentUrl()
{
EAX=#UrlHistory + find_symbol(#UrlHistory, '|');
}
-
-
diff --git a/programs/network/htmlv/browser/include/some_code.h-- b/programs/network/htmlv/browser/include/some_code.h
similarity index 79%
rename from programs/network/htmlv/browser/include/some_code.h--
rename to programs/network/htmlv/browser/include/some_code.h
index 4bbcca832a..515a6a745d 100644
--- a/programs/network/htmlv/browser/include/some_code.h--
+++ b/programs/network/htmlv/browser/include/some_code.h
@@ -56,3 +56,15 @@ shift=-2;
}
mem_Free(italic_buf);
}
+
+void GetURLfromPageLinks(int id) //столько бреда, потому что нельзя создать массив стрингов
+{
+ j = 0;
+ for (i = 0; i <= id - 401; i++)
+ {
+ do j++;
+ while (page_links[j] <>'|');
+ }
+ page_links[j] = 0x00;
+ copystr(#page_links[find_symbol(#page_links, '|')], #URL);
+}
\ No newline at end of file
diff --git a/programs/network/htmlv/browser/include/unicode_tags.h-- b/programs/network/htmlv/browser/include/unicode_tags.h
similarity index 100%
rename from programs/network/htmlv/browser/include/unicode_tags.h--
rename to programs/network/htmlv/browser/include/unicode_tags.h