HTML: trying to divide network code form GUI and various fixes

git-svn-id: svn://kolibrios.org@5685 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2015-08-05 15:30:25 +00:00
parent 88b64ba405
commit 507d835895
7 changed files with 116 additions and 81 deletions

View File

@ -30,14 +30,14 @@
char homepage[] = FROM "html\\homepage.htm"; char homepage[] = FROM "html\\homepage.htm";
#ifdef LANG_RUS #ifdef LANG_RUS
char version[]=" ’¥ªáâ®¢ë© ¡à ã§¥à 1.14"; char version[]=" ’¥ªáâ®¢ë© ¡à ã§¥à 1.15";
?define IMAGES_CACHE_CLEARED "Šíè ª à⨭®ª ®ç¨é¥­" ?define IMAGES_CACHE_CLEARED "Šíè ª à⨭®ª ®ç¨é¥­"
?define T_LAST_SLIDE "<EFBFBD>â® ¯®á«¥¤­¨© á« ©¤" ?define T_LAST_SLIDE "<EFBFBD>â® ¯®á«¥¤­¨© á« ©¤"
char loading[] = "‡ £à㧪  áâà ­¨æë...<br>"; char loading[] = "‡ £à㧪  áâà ­¨æë...<br>";
char page_not_found[] = FROM "html\page_not_found_ru.htm"; char page_not_found[] = FROM "html\page_not_found_ru.htm";
char accept_language[]= "Accept-Language: ru\n"; char accept_language[]= "Accept-Language: ru\n";
#else #else
char version[]=" Text-based Browser 1.12"; char version[]=" Text-based Browser 1.15";
?define IMAGES_CACHE_CLEARED "Images cache cleared" ?define IMAGES_CACHE_CLEARED "Images cache cleared"
?define T_LAST_SLIDE "This slide is the last" ?define T_LAST_SLIDE "This slide is the last"
char loading[] = "Loading...<br>"; char loading[] = "Loading...<br>";
@ -77,6 +77,7 @@ byte souce_mode = false;
#include "menu_rmb.h" #include "menu_rmb.h"
#include "history.h" #include "history.h"
#include "show_src.h" #include "show_src.h"
#include "network_get.h"
#include "downloader.h" #include "downloader.h"
char editURL[sizeof(URL)]; char editURL[sizeof(URL)];

View File

@ -17,12 +17,9 @@
#endif #endif
proc_info DL_Form; proc_info DL_Form;
char DL_URL[10000];
dword DL_bufpointer, DL_bufsize, DL_http_transfer, DL_http_buffer;
char filepath[4096]; char filepath[4096];
int downloaded_size, full_size;
int mouse_twbi; int mouse_twbi;
edit_box DL_address_box = {250,20,20,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(DL_URL),#DL_URL,#mouse_twbi,2,19,19}; edit_box dl_edit = {250,20,20,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(DL_URL),#DL_URL,#mouse_twbi,2,19,19};
progress_bar DL_progress_bar = {0, 170, 51, 225, 12, 0, 0, 100, 0xFFFfff, 0x74DA00, 0x9F9F9F}; progress_bar DL_progress_bar = {0, 170, 51, 225, 12, 0, 0, 100, 0xFFFfff, 0x74DA00, 0x9F9F9F};
char save_to[4096] = "/tmp0/1/Downloads/"; char save_to[4096] = "/tmp0/1/Downloads/";
@ -30,26 +27,19 @@ byte cleft = 15;
byte downloader_opened; byte downloader_opened;
byte download_state;
enum { STATE_NOT_STARTED, STATE_IN_PROGRESS, STATE_COMPLETED };
void Downloader() void Downloader()
{ {
int key, btn; int key;
char notify_message[4296]; char notify_message[4296];
if (DL_URL[0]) {
StartDownloading();
}
else strcpy(#DL_URL, "http://");
DL_address_box.size = DL_address_box.pos = DL_address_box.shift = DL_address_box.shift_old = strlen(#DL_URL);
downloaded_size = full_size = 0;
downloader_opened = 1; downloader_opened = 1;
SetEventMask(0x27); SetEventMask(0x27);
if (DL_URL[0]) StartDownloading(); else strcpy(#DL_URL, "http://");
dl_edit.size = dl_edit.pos = dl_edit.shift = dl_edit.shift_old = strlen(#DL_URL);
Downloading_SetDefaults();
loop() loop()
{ {
WaitEventTimeout(40); WaitEventTimeout(40);
@ -57,18 +47,17 @@ void Downloader()
{ {
CASE evMouse: CASE evMouse:
if (!CheckActiveProcess(DL_Form.ID)) break; if (!CheckActiveProcess(DL_Form.ID)) break;
if (DL_http_transfer <= 0) edit_box_mouse stdcall (#DL_address_box); edit_box_mouse stdcall (#dl_edit);
break; break;
case evButton: case evButton:
btn=GetButtonID(); DL_Scan(GetButtonID());
DL_Scan(btn);
break; break;
case evKey: case evKey:
key = GetKey(); key = GetKey();
EAX=key<<8; EAX=key<<8;
edit_box_key stdcall(#DL_address_box); edit_box_key stdcall(#dl_edit);
if (key==13) DL_Scan(301); if (key==13) DL_Scan(301);
break; break;
@ -95,28 +84,20 @@ void Downloader()
} }
$pop EAX $pop EAX
if (EAX == 0) { if (EAX == 0) {
ESI = DL_http_transfer; Downloading_Completed();
DL_bufpointer = ESI.http_msg.content_ptr;
DL_bufsize = ESI.http_msg.content_received;
http_free stdcall (DL_http_transfer);
DL_http_transfer=0;
strcpy(#filepath, #save_to); strcpy(#filepath, #save_to);
strcat(#filepath, #DL_URL+strrchr(#DL_URL, '/')); strcat(#filepath, #DL_URL+strrchr(#DL_URL, '/'));
if (WriteFile(DL_bufsize, DL_bufpointer, #filepath)==0) if (WriteFile(DL_bufsize, DL_bufpointer, #filepath)==0)
{ {
strcpy(#notify_message, FILE_SAVED_AS); sprintf(#notify_message, "%s%s%s",FILE_SAVED_AS,#filepath,"' -Dt");
strcat(#notify_message, #filepath);
strcat(#notify_message, "' -Dt");
} }
else else
{ {
strcpy(#notify_message, "'Download manager\nError! Can\96t save file as "); sprintf(#notify_message, "%s%s%s","'Download manager\nError! Can\96t save file as ",#filepath,"' -Et");
strcat(#notify_message, #filepath);
strcat(#notify_message, "' -Et");
} }
notify(#notify_message); notify(#notify_message);
DL_address_box.color = DL_address_box.blur_border_color = DL_address_box.focus_border_color = 0xFFFfff; dl_edit.blur_border_color = 0xFFFfff;
download_state = STATE_COMPLETED; dl_edit.flags = 10b;
DL_Draw_Window(); DL_Draw_Window();
break; break;
} }
@ -149,13 +130,13 @@ void DL_Draw_Window()
DrawCaptButton(cleft+140, 50, 110, 27, 305, system.color.work_button, system.color.work_button_text, SHOW_IN_FOLDER); DrawCaptButton(cleft+140, 50, 110, 27, 305, system.color.work_button, system.color.work_button_text, SHOW_IN_FOLDER);
DrawCaptButton(cleft+260, 50, 120, 27, 306, system.color.work_button, system.color.work_button_text, OPEN_FILE); DrawCaptButton(cleft+260, 50, 120, 27, 306, system.color.work_button, system.color.work_button_text, OPEN_FILE);
} }
WriteText(cleft, DL_address_box.top + 4, 0x80, system.color.work_text, "URL:"); WriteText(cleft, dl_edit.top + 4, 0x80, system.color.work_text, "URL:");
DL_address_box.left = strlen("URL:")*6 + 10 + cleft; dl_edit.left = strlen("URL:")*6 + 10 + cleft;
DL_address_box.width = DL_Form.cwidth - DL_address_box.left - cleft - 3; dl_edit.width = DL_Form.cwidth - dl_edit.left - cleft - 3;
DL_address_box.offset=0; dl_edit.offset=0;
edit_box_draw stdcall(#DL_address_box); edit_box_draw stdcall(#dl_edit);
DrawRectangle(DL_address_box.left-1, DL_address_box.top-1, DL_address_box.width+2, 16, DL_address_box.color); DrawRectangle(dl_edit.left-1, dl_edit.top-1, dl_edit.width+2, 16, dl_edit.blur_border_color);
DrawRectangle(DL_address_box.left-2, DL_address_box.top-2, DL_address_box.width+4, 18, border_color); DrawRectangle(dl_edit.left-2, dl_edit.top-2, dl_edit.width+4, 18, border_color);
} }
@ -191,22 +172,9 @@ void DL_Scan(int id)
void StopDownloading() void StopDownloading()
{ {
download_state = STATE_NOT_STARTED; Downloading_Stop();
if (DL_http_transfer<>0) dl_edit.blur_border_color = 0xFFFfff;
{ dl_edit.flags = 10b;
EAX = DL_http_transfer;
EAX = EAX.http_msg.content_ptr; // get pointer to data
$push EAX // save it on the stack
http_free stdcall (DL_http_transfer); // abort connection
$pop EAX
mem_Free(EAX); // free data
DL_http_transfer=0;
DL_bufsize = 0;
DL_bufpointer = mem_Free(DL_bufpointer);
downloaded_size = full_size = 0;
}
DL_address_box.color = DL_address_box.blur_border_color = 0xFFFfff;
DL_address_box.flags = 10b;
DL_Draw_Window(); DL_Draw_Window();
} }
@ -215,11 +183,9 @@ void StartDownloading()
StopDownloading(); StopDownloading();
if (strncmp(#DL_URL,"http:",5)==0) if (strncmp(#DL_URL,"http:",5)==0)
{ {
download_state = STATE_IN_PROGRESS; Downloading_Start();
DL_address_box.color = DL_address_box.blur_border_color = 0xCACACA; dl_edit.blur_border_color = 0xCACACA;
DL_address_box.flags = 100000000000b; dl_edit.flags = 100000000000b;
http_get stdcall (#DL_URL, 0, 0, #accept_language);
DL_http_transfer = EAX;
DL_progress_bar.value = 0; DL_progress_bar.value = 0;
DL_Draw_Window(); DL_Draw_Window();
if (DL_http_transfer == 0) if (DL_http_transfer == 0)

View File

@ -18,7 +18,7 @@ ShowHistory()
strcat(history_pointer, BrowserHistory.GetUrl(i)); strcat(history_pointer, BrowserHistory.GetUrl(i));
strcat(history_pointer, "</a><br>"); strcat(history_pointer, "</a><br>");
} }
strcat(history_pointer, "</blockquote><h2>Cached images</h2><br>"); strcat(history_pointer, "</blockquote><h2>Cached images</h2>");
for (i=1; i<ImgCache.pics_count; i++) for (i=1; i<ImgCache.pics_count; i++)
{ {
strcat(history_pointer, "<img src='"); strcat(history_pointer, "<img src='");

View File

@ -0,0 +1,51 @@
char DL_URL[10000];
dword DL_bufpointer, DL_bufsize, DL_http_transfer, DL_http_buffer;
int downloaded_size, full_size;
byte download_state;
enum { STATE_NOT_STARTED, STATE_IN_PROGRESS, STATE_COMPLETED };
void Downloading_SetDefaults()
{
downloaded_size = full_size = 0;
}
void Downloading_Stop()
{
download_state = STATE_NOT_STARTED;
if (DL_http_transfer<>0)
{
EAX = DL_http_transfer;
EAX = EAX.http_msg.content_ptr; // get pointer to data
$push EAX // save it on the stack
http_free stdcall (DL_http_transfer); // abort connection
$pop EAX
mem_Free(EAX); // free data
DL_http_transfer=0;
DL_bufsize = 0;
DL_bufpointer = mem_Free(DL_bufpointer);
Downloading_SetDefaults();
}
}
void Downloading_Start()
{
download_state = STATE_IN_PROGRESS;
http_get stdcall (#DL_URL, 0, 0, #accept_language);
DL_http_transfer = EAX;
}
void Downloading_Completed()
{
ESI = DL_http_transfer;
DL_bufpointer = ESI.http_msg.content_ptr;
DL_bufsize = ESI.http_msg.content_received;
http_free stdcall (DL_http_transfer);
DL_http_transfer=0;
download_state = STATE_COMPLETED;
}

View File

@ -103,8 +103,8 @@
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
enum { CREATE_FILE=1, CREATE_FOLDER, RENAME_ITEM }; //NewElement enum { CREATE_FILE=1, CREATE_FOLDER, RENAME_ITEM }; //NewElement
#define TITLE "Eolite File Manager v2.91" #define TITLE "Eolite File Manager v2.92"
#define ABOUT_TITLE "Eolite v2.91" #define ABOUT_TITLE "Eolite 2.92"
dword col_padding, col_selec, col_lpanel; dword col_padding, col_selec, col_lpanel;
int toolbar_buttons_x[7]={9,46,85,134,167,203}; int toolbar_buttons_x[7]={9,46,85,134,167,203};

View File

@ -50,18 +50,18 @@ void about_dialog()
break; break;
case evReDraw: case evReDraw:
DefineAndDrawWindow(Form.left+Form.width/2,Form.top+Form.height/2-114,300,228+GetSkinHeight(),0x34,system.color.work,INTRO_TEXT_1); DefineAndDrawWindow(Form.left+Form.width/2,Form.top+Form.height/2-114,300,248+GetSkinHeight(),0x34,system.color.work,INTRO_TEXT_1);
GetProcessInfo(#about_form, SelfInfo); GetProcessInfo(#about_form, SelfInfo);
if (Form.status_window>2) break; if (Form.status_window>2) break;
DrawBar(0,0,about_form.cwidth,50,0x8494C4); DrawBar(0,0,about_form.cwidth,50,0x8494C4);
PutPaletteImage(#logo,85,85,about_form.width/2-43,7,8,#logo_pal); PutPaletteImage(#logo,85,85,about_form.cwidth/2-43,7,8,#logo_pal);
WriteTextB(about_form.width/2-46,100,0x90,0xBF40BF,ABOUT_TITLE); WriteTextB(about_form.cwidth/2-66,100,0x81,0xBF40BF,ABOUT_TITLE);
WriteTextCenter(0,120,about_form.cwidth,0,INTRO_TEXT_2); WriteTextCenter(0,130,about_form.cwidth,0,INTRO_TEXT_2);
WriteTextCenter(0,130,about_form.cwidth,0,"Leency Veliant PunkJoker Pavelyakov"); WriteTextCenter(0,143,about_form.cwidth,0,"Leency Veliant PunkJoker Pavelyakov");
WriteTextCenter(0,140,about_form.cwidth,0,"KolibriOS Team"); WriteTextCenter(0,156,about_form.cwidth,0,"KolibriOS Team");
WriteTextCenter(0,150,about_form.cwidth,0,"2008-2015"); WriteTextCenter(0,169,about_form.cwidth,0,"2008-2015");
WriteTextCenter(10,170,about_form.width-125,0,INTRO_TEXT_3); WriteTextCenter(10,182,about_form.width-125,0,INTRO_TEXT_3);
DrawLink(about_form.width/2-15,170,0x80,23, "kolibri-n.org"); DrawLink(about_form.cwidth/2-15,182,0x80,23, "kolibri-n.org");
DrawFlatButton(about_form.width/2-35,about_form.height-60,70,22,10,0xE4DFE1, INTRO_TEXT_4); DrawFlatButton(about_form.cwidth/2-35,about_form.cheight-35,70,22,10,0xE4DFE1, INTRO_TEXT_4);
} }
} }

View File

@ -145,8 +145,25 @@ struct menu_data
}; };
struct edit_box{ struct edit_box{
dword width, left, top, color, shift_color, focus_border_color, blur_border_color, dword width,
text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old; left,
top,
color,
shift_color,
focus_border_color,
blur_border_color,
text_color,
max,
text,
mouse_variable,
flags,
size,
pos,
offset,
cl_curs_x,
cl_curs_y,
shift,
shift_old;
}; };
struct checkbox2 struct checkbox2