forked from KolibriOS/kolibrios
WebView 2.8 beta
git-svn-id: svn://kolibrios.org@8336 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
60c3243924
commit
7a2c280f29
@ -31,7 +31,7 @@ struct _style {
|
|||||||
struct TWebBrowser {
|
struct TWebBrowser {
|
||||||
llist list;
|
llist list;
|
||||||
_style style;
|
_style style;
|
||||||
_img page_img;
|
_img img;
|
||||||
dword draw_y, stolbec;
|
dword draw_y, stolbec;
|
||||||
int zoom;
|
int zoom;
|
||||||
dword o_bufpointer;
|
dword o_bufpointer;
|
||||||
@ -129,7 +129,7 @@ void TWebBrowser::SetPageDefaults()
|
|||||||
DrawBuf.Fill(0, page_bg);
|
DrawBuf.Fill(0, page_bg);
|
||||||
links.clear();
|
links.clear();
|
||||||
anchors.clear();
|
anchors.clear();
|
||||||
page_img.clear();
|
img.clear();
|
||||||
text_colors.drop();
|
text_colors.drop();
|
||||||
text_colors.add(0);
|
text_colors.add(0);
|
||||||
header = NULL;
|
header = NULL;
|
||||||
@ -254,10 +254,11 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
|
|
||||||
ignor_param=false;
|
ignor_param=false;
|
||||||
while (ESBYTE[bufpos] !='>') && (bufpos < bufpointer + bufsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
|
while (ESBYTE[bufpos] !='>') && (bufpos < bufpointer + bufsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
|
||||||
|
//&& (!chrnum(#tag.params,'\"') % 2) //<a title="<small>ATI</small><br>9800xt" href="vgamuseum.ru/9800xt">
|
||||||
{
|
{
|
||||||
bukva = ESBYTE[bufpos];
|
bukva = ESBYTE[bufpos];
|
||||||
if (__isWhite(bukva)) bukva = ' ';
|
if (__isWhite(bukva)) bukva = ' ';
|
||||||
if (!ignor_param) && (bukva <>' ') {
|
if (!ignor_param) && (bukva!=' ') {
|
||||||
if (strlen(#tag.name)+1<sizeof(tag.name)) chrcat(#tag.name, bukva);
|
if (strlen(#tag.name)+1<sizeof(tag.name)) chrcat(#tag.name, bukva);
|
||||||
} else {
|
} else {
|
||||||
ignor_param = true;
|
ignor_param = true;
|
||||||
@ -450,6 +451,50 @@ void TWebBrowser::SetStyle() {
|
|||||||
}
|
}
|
||||||
if (tag.is("img")) {
|
if (tag.is("img")) {
|
||||||
value = tag.get_value_of("src=");
|
value = tag.get_value_of("src=");
|
||||||
|
if (!value) goto NOIMG;
|
||||||
|
|
||||||
|
strlcpy(#img_path, value, sizeof(img_path)-1);
|
||||||
|
get_absolute_url(#img_path, history.current());
|
||||||
|
|
||||||
|
if (cache.has(#img_path))
|
||||||
|
{
|
||||||
|
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||||
|
if (!EAX) goto NOIMG;
|
||||||
|
|
||||||
|
EDI = EAX;
|
||||||
|
img.w.add(ESDWORD[EDI+4]);
|
||||||
|
img.h.add(ESDWORD[EDI+8]);
|
||||||
|
free(EDI);
|
||||||
|
|
||||||
|
img.url.add(#img_path);
|
||||||
|
|
||||||
|
if (img.w.get_last() / 6 + 1 + stolbec > list.column_max) {
|
||||||
|
NewLine();
|
||||||
|
}
|
||||||
|
img.x.add(stolbec*list.font_w+3);
|
||||||
|
img.y.add(draw_y);
|
||||||
|
|
||||||
|
stolbec += img.w.get_last() / 6 + 1;
|
||||||
|
|
||||||
|
if (img.h.get_last() > list.item_h) {
|
||||||
|
draw_y += img.h.get_last() - list.item_h;
|
||||||
|
NewLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (link) links.add_text(
|
||||||
|
img.x.get_last() + list.x,
|
||||||
|
img.y.get_last() + list.y,
|
||||||
|
img.w.get_last(),
|
||||||
|
img.h.get_last(),
|
||||||
|
0);
|
||||||
|
|
||||||
|
//debugval(img.url.get_last(), img.y.get_last());
|
||||||
|
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
img.url.add(#img_path);
|
||||||
|
}
|
||||||
|
NOIMG:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (streqrp(value, "data:")) {
|
if (streqrp(value, "data:")) {
|
||||||
@ -460,30 +505,6 @@ void TWebBrowser::SetStyle() {
|
|||||||
base64_decode stdcall (#pass_b64, value, strlen(value));
|
base64_decode stdcall (#pass_b64, value, strlen(value));
|
||||||
} else
|
} else
|
||||||
*/
|
*/
|
||||||
strlcpy(#img_path, value, sizeof(img_path)-1);
|
|
||||||
|
|
||||||
if (!img_path) { line=0; return; }
|
|
||||||
|
|
||||||
value = page_img.add_pos(#img_path, stolbec+1*list.font_w+3, draw_y);
|
|
||||||
|
|
||||||
if (cache.has(value)) {
|
|
||||||
if (page_img.set_size(page_img.url.count-1, cache.current_buf, cache.current_size)) {
|
|
||||||
|
|
||||||
if (link) links.add_text(
|
|
||||||
stolbec * list.font_w + BODY_MARGIN + list.x,
|
|
||||||
draw_y + list.y,
|
|
||||||
page_img.xywh.get(page_img.url.count-1*4+2),
|
|
||||||
page_img.xywh.get(page_img.url.count-1*4+3),
|
|
||||||
0);
|
|
||||||
|
|
||||||
stolbec += page_img.xywh.get(page_img.url.count-1*4+2) / 6 + 1;
|
|
||||||
//if (stolbec > list.column_max) NewLine();
|
|
||||||
value = page_img.xywh.get(page_img.url.count-1*4+3);
|
|
||||||
if (value > list.item_h) {draw_y += value - list.item_h; NewLine();}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value = tag.get_value_of("title=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
if (value = tag.get_value_of("title=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
||||||
if (value = tag.get_value_of("alt=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
if (value = tag.get_value_of("alt=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
||||||
@ -587,7 +608,7 @@ void TWebBrowser::SetStyle() {
|
|||||||
value += strrchr(value, '='); //search in content=
|
value += strrchr(value, '='); //search in content=
|
||||||
if (ESBYTE[value] == '"') value++;
|
if (ESBYTE[value] == '"') value++;
|
||||||
strlwr(value);
|
strlwr(value);
|
||||||
if (streqrp(value,"utf-8")) || (streqrp(value,"utf8")) { ChangeEncoding(CH_UTF8); debugln("UTF"); }
|
if (streqrp(value,"utf-8")) || (streqrp(value,"utf8")) ChangeEncoding(CH_UTF8);
|
||||||
else if (streqrp(value,"windows-1251")) || (streqrp(value,"windows1251")) ChangeEncoding(CH_CP1251);
|
else if (streqrp(value,"windows-1251")) || (streqrp(value,"windows1251")) ChangeEncoding(CH_CP1251);
|
||||||
else if (streqrp(value,"dos")) || (streqrp(value,"cp-866")) ChangeEncoding(CH_CP866);
|
else if (streqrp(value,"dos")) || (streqrp(value,"cp-866")) ChangeEncoding(CH_CP866);
|
||||||
else if (streqrp(value,"iso-8859-5")) || (streqrp(value,"iso8859-5")) ChangeEncoding(CH_ISO8859_5);
|
else if (streqrp(value,"iso-8859-5")) || (streqrp(value,"iso8859-5")) ChangeEncoding(CH_ISO8859_5);
|
||||||
@ -648,7 +669,16 @@ void TWebBrowser::NewLine()
|
|||||||
//============================================================================================
|
//============================================================================================
|
||||||
void TWebBrowser::DrawPage()
|
void TWebBrowser::DrawPage()
|
||||||
{
|
{
|
||||||
|
int i, img_y;
|
||||||
PutPaletteImage(list.first * DrawBuf.bufw * 4 + buf_data+8, DrawBuf.bufw, list.h, DrawBuf.bufx, DrawBuf.bufy, 32, 0);
|
PutPaletteImage(list.first * DrawBuf.bufw * 4 + buf_data+8, DrawBuf.bufw, list.h, DrawBuf.bufx, DrawBuf.bufy, 32, 0);
|
||||||
page_img.draw_all(list.x, list.y, list.w, list.h, list.first);
|
|
||||||
DrawScroller();
|
DrawScroller();
|
||||||
|
//img.draw_all(list.x, list.y, list.w, list.h, list.first);
|
||||||
|
|
||||||
|
for (i=0; i<img.url.count; i++)
|
||||||
|
{
|
||||||
|
img_y = img.y.get(i);
|
||||||
|
|
||||||
|
if (img_y + img.h.get(i) > list.first) && (img_y - list.h < list.first)
|
||||||
|
&& (cache.has(img.url.get(i))) img.draw(list.x, list.y, list.w, list.h, list.first, i);
|
||||||
|
}
|
||||||
}
|
}
|
@ -2,15 +2,10 @@
|
|||||||
struct _img
|
struct _img
|
||||||
{
|
{
|
||||||
collection url;
|
collection url;
|
||||||
collection_int xywh;
|
collection_int x,y,w,h;
|
||||||
int getid;
|
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
dword add_pos();
|
void add();
|
||||||
bool set_size();
|
|
||||||
|
|
||||||
dword current_url();
|
|
||||||
bool next_url();
|
|
||||||
|
|
||||||
void draw_all();
|
void draw_all();
|
||||||
bool draw();
|
bool draw();
|
||||||
@ -19,80 +14,55 @@ struct _img
|
|||||||
void _img::clear()
|
void _img::clear()
|
||||||
{
|
{
|
||||||
url.drop();
|
url.drop();
|
||||||
xywh.drop();
|
x.drop();
|
||||||
getid = 0;
|
y.drop();
|
||||||
|
w.drop();
|
||||||
|
h.drop();
|
||||||
}
|
}
|
||||||
|
|
||||||
dword _img::add_pos(dword _path, _x, _y)
|
void _img::add(dword _path, _x, _y, _w, _h)
|
||||||
{
|
{
|
||||||
char full_path[URL_SIZE];
|
url.add(_path);
|
||||||
strncpy(#full_path, _path, URL_SIZE);
|
x.add(_x);
|
||||||
get_absolute_url(#full_path, history.current());
|
y.add(_y);
|
||||||
|
w.add(_w);
|
||||||
url.add(#full_path);
|
h.add(_h);
|
||||||
xywh.add(_x);
|
|
||||||
xywh.add(_y);
|
|
||||||
xywh.add(NULL);
|
|
||||||
xywh.add(NULL);
|
|
||||||
return #full_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool _img::set_size(dword _id, _buf, _size)
|
|
||||||
{
|
|
||||||
img_decode stdcall (_buf, _size, 0);
|
|
||||||
if (EAX) {
|
|
||||||
EDI = EAX;
|
|
||||||
xywh.set(_id*4+2, ESDWORD[EDI+4]);
|
|
||||||
xywh.set(_id*4+3, ESDWORD[EDI+8]);
|
|
||||||
free(EDI);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//DELTE!!!!!11111111111111111111111111111111111111
|
|
||||||
dword _img::current_url()
|
|
||||||
{
|
|
||||||
return url.get(getid);
|
|
||||||
}
|
|
||||||
|
|
||||||
//DELTE!!!!!11111111111111111111111111111111111111
|
|
||||||
bool _img::next_url()
|
|
||||||
{
|
|
||||||
if (getid < url.count-1) {
|
|
||||||
getid++;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
void _img::draw_all(int _x, _y, _w, _h, _start)
|
void _img::draw_all(int _x, _y, _w, _h, _start)
|
||||||
{
|
{
|
||||||
int i, img_y;
|
int i, img_y;
|
||||||
|
|
||||||
for (i=0; i<url.count; i++)
|
for (i=0; i<url.count; i++)
|
||||||
{
|
{
|
||||||
img_y = xywh.get(i*4 + 1);
|
img_y = y.get(i);
|
||||||
|
|
||||||
if (img_y > _start) && (img_y < _start + _h)
|
if (img_y + h.get(i) > _start) && (img_y - _h < _start)
|
||||||
&& (cache.has(url.get(i))) draw(_x, _y, _w, _h, _start, i);
|
&& (cache.has(url.get(i))) draw(_x, _y, _w, _h, _start, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
bool _img::draw(int _x, _y, _w, _h, _start, i)
|
bool _img::draw(int _x, _y, _w, _h, _start, i)
|
||||||
{
|
{
|
||||||
int img_x, img_y, img_w, img_h;
|
int img_x, img_y, img_w, img_h, invisible_h=0;
|
||||||
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||||
if (EAX) {
|
if (EAX) {
|
||||||
EDI = EAX;
|
EDI = EAX;
|
||||||
|
|
||||||
img_x = xywh.get(i*4+0);
|
img_x = x.get(i);
|
||||||
img_y = xywh.get(i*4+1);
|
img_y = y.get(i);
|
||||||
img_w = math.min(xywh.set(getid*4+2, ESDWORD[EDI+4]), _w - img_x);
|
img_w = math.min(w.set(i, ESDWORD[EDI+4]), _w - img_x);
|
||||||
img_h = math.min(xywh.set(getid*4+3, ESDWORD[EDI+8]), _h + _start - img_y);
|
img_h = math.min(h.set(i, ESDWORD[EDI+8]), _h + _start - img_y);
|
||||||
|
|
||||||
|
if (_start > img_y) {
|
||||||
|
invisible_h = _start - img_y;
|
||||||
|
img_y = _start;
|
||||||
|
}
|
||||||
|
|
||||||
img_draw stdcall(EDI, img_x + _x, img_y - _start + _y, img_w, img_h, 0, 0);
|
img_draw stdcall(EDI, img_x + _x, img_y - _start + _y, img_w, img_h - invisible_h, 0, invisible_h);
|
||||||
free(EDI);
|
free(EDI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,17 +33,18 @@
|
|||||||
#include "..\lib\patterns\toolbar_button.h"
|
#include "..\lib\patterns\toolbar_button.h"
|
||||||
#include "..\lib\patterns\restart_process.h"
|
#include "..\lib\patterns\restart_process.h"
|
||||||
|
|
||||||
|
#include "const.h"
|
||||||
|
#include "cache.h"
|
||||||
|
#include "show_src.h"
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// DATA //
|
// DATA //
|
||||||
// //
|
// //
|
||||||
//===================================================//
|
//===================================================//
|
||||||
|
char version[]="WebView 2.8 BETA";
|
||||||
|
|
||||||
char version[]="WebView 2.8 ALPHA PREVIEW";
|
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||||
|
|
||||||
#include "const.h"
|
|
||||||
#include "cache.h"
|
|
||||||
#include "show_src.h"
|
|
||||||
|
|
||||||
bool debug_mode = false;
|
bool debug_mode = false;
|
||||||
bool show_images = false;
|
bool show_images = false;
|
||||||
@ -72,10 +73,13 @@ progress_bar prbar;
|
|||||||
char stak[4096];
|
char stak[4096];
|
||||||
proc_info Form;
|
proc_info Form;
|
||||||
|
|
||||||
int menu_id=NULL;
|
|
||||||
|
|
||||||
#include "tabs.h"
|
#include "tabs.h"
|
||||||
|
|
||||||
|
dword cur_img_url;
|
||||||
|
dword shared_url;
|
||||||
|
dword http_get_type;
|
||||||
|
int menu_id=NULL;
|
||||||
|
|
||||||
char default_dir[] = "/rd/1";
|
char default_dir[] = "/rd/1";
|
||||||
od_filter filter2 = { 22, "TXT\0HTM\0HTML\0DOCX\0\0" };
|
od_filter filter2 = { 22, "TXT\0HTM\0HTML\0DOCX\0\0" };
|
||||||
|
|
||||||
@ -83,10 +87,6 @@ char editURL[URL_SIZE+1];
|
|||||||
edit_box omnibox_edit = {, PADDING+TSZE*2+PADDING+6, PADDING+3, 0xffffff,
|
edit_box omnibox_edit = {, PADDING+TSZE*2+PADDING+6, PADDING+3, 0xffffff,
|
||||||
0x94AECE, 0xffffff, 0xffffff,0x10000000,URL_SIZE-2,#editURL,0,,19,19};
|
0x94AECE, 0xffffff, 0xffffff,0x10000000,URL_SIZE-2,#editURL,0,,19,19};
|
||||||
|
|
||||||
dword shared_url;
|
|
||||||
|
|
||||||
dword http_get_type;
|
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// CODE //
|
// CODE //
|
||||||
@ -108,7 +108,7 @@ void LoadLibraries()
|
|||||||
void HandleParam()
|
void HandleParam()
|
||||||
{
|
{
|
||||||
if (!param) {
|
if (!param) {
|
||||||
history.add(URL_SERVICE_HOMEPAGE);
|
history.add(DEFAULT_URL);
|
||||||
} else {
|
} else {
|
||||||
if (!strncmp(#param, "-source ", 8)) {
|
if (!strncmp(#param, "-source ", 8)) {
|
||||||
source_mode = true;
|
source_mode = true;
|
||||||
@ -203,8 +203,16 @@ void main()
|
|||||||
case evNetwork:
|
case evNetwork:
|
||||||
if (http.transfer <= 0) break;
|
if (http.transfer <= 0) break;
|
||||||
http.receive();
|
http.receive();
|
||||||
if (http_get_type==PAGE) CheckContentType();
|
|
||||||
EventUpdateProgressBar();
|
if (http_get_type==PAGE) {
|
||||||
|
CheckContentType();
|
||||||
|
prbar.max = http.content_length;
|
||||||
|
if (prbar.value != http.content_received) {
|
||||||
|
prbar.value = http.content_received;
|
||||||
|
DrawProgress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (http.receive_result != 0) break;
|
if (http.receive_result != 0) break;
|
||||||
if (http.status_code >= 300) && (http.status_code < 400)
|
if (http.status_code >= 300) && (http.status_code < 400)
|
||||||
{
|
{
|
||||||
@ -226,9 +234,8 @@ void main()
|
|||||||
LoadInternalPage(http.content_pointer, http.content_received);
|
LoadInternalPage(http.content_pointer, http.content_received);
|
||||||
}
|
}
|
||||||
else if (http_get_type==IMG) {
|
else if (http_get_type==IMG) {
|
||||||
cache.add(WB1.page_img.current_url(), http.content_pointer, http.content_received, IMG);
|
cache.add(cur_img_url, http.content_pointer, http.content_received, IMG);
|
||||||
WB1.page_img.set_size(WB1.page_img.getid, http.content_pointer, http.content_received);
|
GetImg(false);
|
||||||
GetImg();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -300,6 +307,7 @@ bool ProcessKeyEvent()
|
|||||||
case SCAN_CODE_RIGHT: ProcessButtonClick(FORWARD_BUTTON); return true;
|
case SCAN_CODE_RIGHT: ProcessButtonClick(FORWARD_BUTTON); return true;
|
||||||
case SCAN_CODE_KEY_W: EventCloseActiveTab(); return true;
|
case SCAN_CODE_KEY_W: EventCloseActiveTab(); return true;
|
||||||
case SCAN_CODE_TAB: EventActivateNextTab(); return true;
|
case SCAN_CODE_TAB: EventActivateNextTab(); return true;
|
||||||
|
case SCAN_CODE_F5: EventClearCache(); return;
|
||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -493,17 +501,20 @@ bool GetLocalFileData(dword _path)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetUrl(dword _http_url)
|
bool GetUrl(dword _http_url)
|
||||||
{
|
{
|
||||||
char new_url_full[URL_SIZE+1];
|
char new_url_full[URL_SIZE+1];
|
||||||
|
|
||||||
if (!strncmp(_http_url,"http:",5)) {
|
if (!strncmp(_http_url,"http:",5)) {
|
||||||
http.get(_http_url);
|
http.get(_http_url);
|
||||||
|
return true;
|
||||||
} else if (!strncmp(_http_url,"https://",8)) {
|
} else if (!strncmp(_http_url,"https://",8)) {
|
||||||
strcpy(#new_url_full, "http://gate.aspero.pro/?site=");
|
strcpy(#new_url_full, "http://gate.aspero.pro/?site=");
|
||||||
strncat(#new_url_full, _http_url, URL_SIZE);
|
strncat(#new_url_full, _http_url, URL_SIZE);
|
||||||
http.get(#new_url_full);
|
http.get(#new_url_full);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenPage(dword _open_URL)
|
void OpenPage(dword _open_URL)
|
||||||
@ -537,7 +548,8 @@ void OpenPage(dword _open_URL)
|
|||||||
|
|
||||||
if (cache.has(#new_url)) {
|
if (cache.has(#new_url)) {
|
||||||
//CACHED PAGE
|
//CACHED PAGE
|
||||||
LoadInternalPage(cache.current_buf, cache.current_size);
|
if (cache.current_type==PAGE) LoadInternalPage(cache.current_buf, cache.current_size);
|
||||||
|
else {EventOpenDownloader(#new_url);return;}
|
||||||
|
|
||||||
} else if (!strncmp(#new_url,"WebView:",8)) {
|
} else if (!strncmp(#new_url,"WebView:",8)) {
|
||||||
//INTERNAL PAGE
|
//INTERNAL PAGE
|
||||||
@ -708,7 +720,7 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){
|
|||||||
} else {
|
} else {
|
||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
}
|
}
|
||||||
GetImg();
|
GetImg(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,7 +735,7 @@ void DrawProgress()
|
|||||||
dword pct;
|
dword pct;
|
||||||
if (!http.transfer) return;
|
if (!http.transfer) return;
|
||||||
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
||||||
if (http_get_type==IMG) pct = WB1.page_img.getid * 70 / WB1.page_img.url.count + 30;
|
if (http_get_type==IMG) pct = prbar.value * 70 / prbar.max + 30;
|
||||||
DrawBar(omnibox_edit.left-1, omnibox_edit.top+20, pct*omnibox_edit.width+16/100, 2, 0x72B7EB);
|
DrawBar(omnibox_edit.left-1, omnibox_edit.top+20, pct*omnibox_edit.width+16/100, 2, 0x72B7EB);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -766,16 +778,6 @@ void ProcessMenuClick()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventUpdateProgressBar()
|
|
||||||
{
|
|
||||||
prbar.max = http.content_length;
|
|
||||||
if (prbar.value != http.content_received)
|
|
||||||
{
|
|
||||||
prbar.value = http.content_received;
|
|
||||||
DrawProgress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventSeachWeb()
|
void EventSeachWeb()
|
||||||
{
|
{
|
||||||
char new_url[URL_SIZE+1];
|
char new_url[URL_SIZE+1];
|
||||||
@ -890,9 +892,7 @@ void DrawOmnibox()
|
|||||||
|
|
||||||
void SetOmniboxText(dword _text)
|
void SetOmniboxText(dword _text)
|
||||||
{
|
{
|
||||||
strcpy(#editURL, _text);
|
edit_box_set_text stdcall (#omnibox_edit, _text);
|
||||||
omnibox_edit.flags=0;
|
|
||||||
DrawOmnibox();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dword GetAbsoluteActiveURL()
|
dword GetAbsoluteActiveURL()
|
||||||
@ -929,16 +929,22 @@ void HandleRedirect()
|
|||||||
else if (http_get_type==IMG) GetUrl(#redirect_url);
|
else if (http_get_type==IMG) GetUrl(#redirect_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
dword GetImg()
|
dword GetImg(bool _new)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
if (!show_images) return;
|
if (!show_images) return;
|
||||||
while (WB1.page_img.next_url()) {
|
|
||||||
DrawProgress();
|
|
||||||
if (cache.has(WB1.page_img.current_url())) continue;
|
|
||||||
http_get_type = IMG;
|
http_get_type = IMG;
|
||||||
GetUrl(WB1.page_img.current_url());
|
|
||||||
return;
|
for (i = 0; i < WB1.img.url.count; i++)
|
||||||
|
{
|
||||||
|
cur_img_url = WB1.img.url.get(i);
|
||||||
|
if (cache.has(cur_img_url)==false) {
|
||||||
|
prbar.max = WB1.img.url.count;
|
||||||
|
prbar.value = i;
|
||||||
|
if (GetUrl(cur_img_url)) {DrawProgress(); return;}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (_new) return;
|
||||||
DrawOmnibox();
|
DrawOmnibox();
|
||||||
WB1.ParseHtml(WB1.o_bufpointer, WB1.bufsize);
|
WB1.ParseHtml(WB1.o_bufpointer, WB1.bufsize);
|
||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
|
@ -6,6 +6,7 @@ struct _cache
|
|||||||
{
|
{
|
||||||
dword current_buf;
|
dword current_buf;
|
||||||
dword current_size;
|
dword current_size;
|
||||||
|
dword current_type;
|
||||||
collection url;
|
collection url;
|
||||||
collection_int data;
|
collection_int data;
|
||||||
collection_int size;
|
collection_int size;
|
||||||
@ -34,6 +35,7 @@ bool _cache::has(dword _link)
|
|||||||
if (pos != -1) {
|
if (pos != -1) {
|
||||||
current_buf = data.get(pos);
|
current_buf = data.get(pos);
|
||||||
current_size = size.get(pos);
|
current_size = size.get(pos);
|
||||||
|
current_type = type.get(pos);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -188,15 +188,13 @@ void properties_dialog()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetFileInfo(#file_path, #file_info_general);
|
GetFileInfo(#file_path, #file_info_general);
|
||||||
strcpy(#file_name2, #file_name);
|
edit_box_set_text stdcall (#file_name_ed, #file_name);
|
||||||
EditBox_UpdateText(#file_name_ed, 0);
|
|
||||||
if(itdir) dir_size.get(#file_path);
|
if(itdir) dir_size.get(#file_path);
|
||||||
ch_read_only.checked = file_info_general.readonly;
|
ch_read_only.checked = file_info_general.readonly;
|
||||||
ch_hidden.checked = file_info_general.hidden;
|
ch_hidden.checked = file_info_general.hidden;
|
||||||
ch_system.checked = file_info_general.system;
|
ch_system.checked = file_info_general.system;
|
||||||
}
|
}
|
||||||
strcpy(#path_to_file, #path);
|
edit_box_set_text stdcall (#path_to_file_ed, #path);
|
||||||
path_to_file_ed.size = strlen(#path_to_file);
|
|
||||||
|
|
||||||
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||||
loop() switch(WaitEvent())
|
loop() switch(WaitEvent())
|
||||||
|
Loading…
Reference in New Issue
Block a user