Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4686 → Rev 4685

/programs/cmm/TWB/TWB.c
1,3 → 1,5
#include "..\TWB\links.h"
 
dword bufpointer;
dword o_bufpointer;
dword bufsize;
11,6 → 13,7
struct TWebBrowser {
llist list;
DrawBufer DrawBuf;
void GetNewUrl();
void Prepare();
void Parse();
void SetTextStyle();
17,8 → 20,10
void DrawPage();
void DrawScroller();
void NewLine();
} WB1;
};
 
TWebBrowser WB1;
 
byte b_text, i_text, u_text, s_text, pre_text, blq_text, li_text, li_tab,
link, ignor_text, cur_encoding, text_align, t_html, t_body;
byte condition_text_active, condition_text_val, condition_href, condition_max;
46,7 → 51,6
char anchor[256];
 
#include "..\TWB\history.h"
#include "..\TWB\links.h"
#include "..\TWB\colors.h"
#include "..\TWB\unicode_tags.h"
#include "..\TWB\img_cache.h"
94,6 → 98,48
//=======================================================================
 
 
 
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", "/kolibrios/", "/rd/", "/bd", "/hd", "/cd", "/tmp", "/usbhd", 0};
void TWebBrowser::GetNewUrl(){
int i, len;
char newurl[4096];
for (i=0; ABSOLUTE_LINKS[i]; i++)
{
len=strlen(ABSOLUTE_LINKS[i]);
if (!strcmpn(#URL, ABSOLUTE_LINKS[i], len)) return;
}
IF (!strcmpn(#URL,"./", 2)) strcpy(#URL, #URL+2);
strcpy(#newurl, BrowserHistory.CurrentUrl());
 
if (URL[0] == '/')
{
i = strchr(#newurl+8, '/');
if (i>0) newurl[i+7]=0;
strcpy(#URL, #URL+1);
}
_CUT_ST_LEVEL_MARK:
if (newurl[strrchr(#newurl, '/')-2]<>'/')
{
newurl[strrchr(#newurl, '/')] = 0x00;
}
IF (!strncmp(#URL,"../",3))
{
strcpy(#URL,#URL+3);
newurl[strrchr(#newurl, '/')-1] = 0x00;
goto _CUT_ST_LEVEL_MARK;
}
if (newurl[strlen(#newurl)-1]<>'/') strcat(#newurl, "/");
strcat(#newurl, #URL);
strcpy(#URL, #newurl);
}
 
void BufEncode(int set_new_encoding)
{
int bufpointer_realsize;
167,7 → 213,6
case 0x0a:
if (pre_text)
{
chrcat(#line, ' ');
bukva = temp = NULL;
goto NEXT_MARK;
}
279,12 → 324,12
NEXT_MARK:
perenos_num = strrchr(#line, ' ');
if (!perenos_num) && (strlen(#line)>list.column_max) perenos_num=list.column_max;
strcpy(#temp, #line + perenos_num);
strcpy(#temp, #line + perenos_num); //ïåðåíîñ ïî ñëîâàì
line[perenos_num] = 0x00;
if (stroka-1 > list.visible) && (list.first <>0) break 1;
if (stroka-1 > list.visible) && (list.first <>0) break 1; //óõîäèì...
DrawPage();
strcpy(#line, #temp);
NewLine(list.x + 5, stroka * 10 + list.y + 5);
NewLine(list.x + 5, stroka * 10 + list.y + 5); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
}
}
}
328,7 → 373,7
return;
}
 
if (isTag("script")) || (isTag("style")) || (isTag("binary")) || (isTag("select")) ignor_text = opened;
if (isTag("script")) || (isTag("style")) || (isTag("binary")) ignor_text = opened;
 
if(isTag("title"))
{
436,7 → 481,7
NewLine(left1, top1);
return;
}
if (isTag("div")) || (isTag("header")) || (isTag("article")) || (isTag("footer")) {
if (isTag("div")) || (isTag("header")) || (isTag("footer")) {
IF(oldtag[0] <>'h') NewLine(left1, top1);
return;
}
/programs/cmm/TWB/links.h
23,7 → 23,6
void AddText();
dword GetURL();
void Clear();
void GetAbsoluteURL();
};
 
void LinksArray::AddLink(dword new_link, int link_x, link_y)
64,7 → 63,7
CursorPointer.Restore();
}
 
char temp[sizeof(URL)];
char temp[4096];
PathShow_data status_text = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, 0, #temp, 0};
 
void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
98,48 → 97,5
}
}
 
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/",
"/kolibrios/", "/rd/", "/bd", "/hd", "/cd", "/tmp", "/usbhd", "WebView:", 0};
void LinksArray::GetAbsoluteURL(dword in_URL){
int i, len;
dword orig_URL = in_URL;
char newurl[sizeof(URL)];
for (i=0; ABSOLUTE_LINKS[i]; i++)
{
len=strlen(ABSOLUTE_LINKS[i]);
if (!strcmpn(in_URL, ABSOLUTE_LINKS[i], len)) return;
}
IF (!strcmpn(in_URL,"./", 2)) in_URL+=2;
strcpy(#newurl, BrowserHistory.CurrentUrl());
 
if (ESBYTE[in_URL] == '/')
{
i = strchr(#newurl+8, '/');
if (i>0) newurl[i+7]=0;
in_URL+=1;
}
_CUT_ST_LEVEL_MARK:
if (newurl[strrchr(#newurl, '/')-2]<>'/')
{
newurl[strrchr(#newurl, '/')] = 0x00;
}
IF (!strncmp(in_URL,"../",3))
{
in_URL+=3;
newurl[strrchr(#newurl, '/')-1] = 0x00;
goto _CUT_ST_LEVEL_MARK;
}
if (newurl[strlen(#newurl)-1]<>'/') strcat(#newurl, "/");
strcat(#newurl, in_URL);
strcpy(orig_URL, #newurl);
}
 
 
 
LinksArray PageLinks;
/programs/cmm/browser/WebView.c
29,7 → 29,7
char homepage[] = FROM "html\homepage.htm";
 
#ifdef LANG_RUS
char version[]=" ’¥ªáâ®¢ë© ¡à ã§¥à 1.0 Beta 2";
char version[]=" ’¥ªáâ®¢ë© ¡à ã§¥à 1.0 Beta 1";
?define IMAGES_CACHE_CLEARED "Šíè ª à⨭®ª ®ç¨é¥­"
?define T_LAST_SLIDE "â® ¯®á«¥¤­¨© á« ©¤"
char loading[] = "‡ £à㧪  áâà ­¨æë...<br>";
36,7 → 36,7
char page_not_found[] = FROM "html\page_not_found_ru.htm";
char accept_language[]= "Accept-Language: ru\n";
#else
char version[]=" Text-based Browser 1.0 Beta 2";
char version[]=" Text-based Browser 1.0 Beta 1";
?define IMAGES_CACHE_CLEARED "Images cache cleared"
?define T_LAST_SLIDE "This slide is the last"
char loading[] = "Loading...<br>";
67,7 → 67,7
dword panel_color = 0xF1F1F1;
dword border_color = 0x9F9F9F;
 
pb progress_bar = {0, 10, 83, 150, 12, 0, 0, 100, 0xeeeEEE, 8072B7EBh, 0x9F9F9F};
pb progress_bar = {0, 10, 83, 150, 13, 0, 0, 100, 0xeeeEEE, 8072B7EBh, 0x9F9F9F};
 
#include "..\TWB\TWB.c"
#include "menu_rmb.h"
89,30 → 89,19
int LoadSkin()
{
skin.image = load_image(abspath("wv_skin.png"));
if (!skin.image) notify("WebView skin file 'wv_skin.png' not found, program will terminate");
skin.w = DSWORD[skin.image+4];
skin.h = DSWORD[skin.image+8];
}
 
void DrawProgress()
{
unsigned long btn;
//progressbar_draw stdcall(#progress_bar);
progress_bar.width = progress_bar.left = 0;
if (http_transfer == 0) return;
if (progress_bar.max) btn = address_box.width*progress_bar.value/progress_bar.max; else btn = 30;
DrawBar(address_box.left-1, address_box.top+14, btn, 2, progress_bar.progress_color);
}
 
void main()
{
unsigned long key, btn;
int key, btn;
int half_scroll_size;
int scroll_used=0, show_menu;
mem_Init();
CursorPointer.Load(#CursorFile);
if (load_dll2(boxlib, #box_lib_init,0)!=0) notify("System Error: library doesn't exists /rd/1/lib/box_lib.obj");
if (load_dll2(boxlib, #box_lib_init,0)!=0) {notify("System Error: library doesn't exists /rd/1/lib/box_lib.obj"); ExitProcess();}
if (load_dll2(libio, #libio_init,1)!=0) notify("Error: library doesn't exists - libio");
if (load_dll2(libimg, #libimg_init,1)!=0) notify("Error: library doesn't exists - libimg");
if (load_dll2(libHTTP, #http_lib_init,1)!=0) notify("Error: library doesn't exists - http");
203,11 → 192,8
$push EAX
ESI = http_transfer;
progress_bar.max = ESI.http_msg.content_length;
if (progress_bar.value != ESI.http_msg.content_received)
{
progress_bar.value = ESI.http_msg.content_received;
DrawProgress();
}
progressbar_draw stdcall(#progress_bar);
$pop EAX
if (EAX == 0) {
ESI = http_transfer;
242,13 → 228,13
{
http_free stdcall (http_transfer);
http_transfer=0;
PageLinks.GetAbsoluteURL(#URL);
WB1.GetNewUrl();
strcpy(#editURL, #URL);
BrowserHistory.current--;
OpenPage();
}
else
{
BrowserHistory.AddUrl();
ESI = http_transfer;
bufpointer = ESI.http_msg.content_ptr;
bufsize = ESI.http_msg.content_received;
288,8 → 274,7
// }
DrawBar(TAB_W,0, Form.cwidth-TAB_W,TAB_H, col_bg);
DrawBar(TAB_W-1,TAB_H, Form.cwidth-TAB_W+1,1, border_color);
DrawBar(0,TAB_H+1, Form.cwidth,TOOLBAR_H-TAB_H-3, panel_color);
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, 0xe9e9e9);
DrawBar(0,TAB_H+1, Form.cwidth,TOOLBAR_H-TAB_H-2, panel_color);
DrawBar(0,TOOLBAR_H-1, Form.cwidth,1, border_color);
img_draw stdcall(skin.image, TAB_W-13, 0, 30, skin.h, 101, 0);
 
314,7 → 299,7
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,STATUSBAR_H, col_bg);
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,1, border_color);
progress_bar.top = Form.cheight - STATUSBAR_H + 4;
DrawProgress();
progressbar_draw stdcall(#progress_bar);
}
 
 
493,7 → 478,7
URL[strrchr(#URL, '#')-1] = 0x00;
}
PageLinks.GetAbsoluteURL(#URL);
WB1.GetNewUrl();
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
{
548,6 → 533,7
{
StopLoading();
strcpy(#editURL, #URL);
BrowserHistory.AddUrl();
if (strncmp(#URL,"WebView:",8)==0) return;
if (strncmp(#URL,"http:",5)==0)
{
565,7 → 551,6
}
else
{
BrowserHistory.AddUrl();
file_size stdcall (#URL);
bufsize = EBX;
if (bufsize)
/programs/cmm/browser/wv_skin.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/cmm/lib/figures.h
60,7 → 60,7
}
}
 
:void DrawProgressBar(dword st_x, st_y, st_w, st_h, col_fon, col_border, col_fill, col_text, progress_percent)
:void DrawProgressBar(dword st_x, st_y, st_w, st_h, col_fon, col_border, col_fill, col_text, progress_percent, status_text)
{
int progress_w;
static int fill_old;
77,7 → 77,14
DrawBar(st_x+2, st_y+2, progress_w, st_h-3, col_fill);
DrawBar(st_x+2+progress_w, st_y+2, st_w-progress_w-3, st_h-3, 0xFFFfff);
}
if (status_text)
{
DrawBar(st_x+st_w+15, st_h/2-4+st_y, fill_old, 9, col_fon);
WriteText(st_x+st_w+15, st_h/2-4+st_y, 0x80, col_text, status_text);
fill_old = strlen(status_text) * 6;
}
}
 
:void DrawLink(dword x,y,font_type,btn_id, inscription)
{