forked from KolibriOS/kolibrios
HTMLv: History or URLs & cached images (available from menu), Page not found custom
git-svn-id: svn://kolibrios.org@4544 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a54c8a7ac9
commit
1db99aa26a
@ -632,7 +632,7 @@ void TWebBrowser::TextGoDown(int left1, top1, width1)
|
|||||||
DrawBuf.Fill(bg_color);
|
DrawBuf.Fill(bg_color);
|
||||||
}
|
}
|
||||||
stroka++;
|
stroka++;
|
||||||
if (blq_text) stolbec = 8; else stolbec = 0;
|
if (blq_text) stolbec = 6; else stolbec = 0;
|
||||||
if (li_text) stolbec = li_tab * 5;
|
if (li_text) stolbec = li_tab * 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,59 +1,59 @@
|
|||||||
struct UrlsHistory {
|
|
||||||
dword CurrentUrl();
|
|
||||||
void AddUrl();
|
|
||||||
byte GoBack();
|
|
||||||
byte GoForward();
|
|
||||||
};
|
|
||||||
|
|
||||||
UrlsHistory BrowserHistory;
|
|
||||||
|
|
||||||
struct path_string {
|
struct path_string {
|
||||||
char Item[4096];
|
char Item[4096];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_HISTORY_NUM 40
|
#define MAX_HISTORY_NUM 40
|
||||||
path_string history_list[MAX_HISTORY_NUM];
|
path_string history_list[MAX_HISTORY_NUM];
|
||||||
int history_num;
|
|
||||||
int history_current;
|
|
||||||
|
|
||||||
dword UrlsHistory::CurrentUrl()
|
struct UrlsHistory {
|
||||||
{
|
int links_count;
|
||||||
return #history_list[history_current].Item;
|
int current;
|
||||||
|
dword CurrentUrl();
|
||||||
|
dword GetUrl();
|
||||||
|
void AddUrl();
|
||||||
|
byte GoBack();
|
||||||
|
byte GoForward();
|
||||||
|
};
|
||||||
|
|
||||||
|
dword UrlsHistory::CurrentUrl() {
|
||||||
|
return #history_list[current].Item;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UrlsHistory::AddUrl() //òóò íóæåí ââîäèìûé ýëåìåíò - äëÿ óíèâåðñàëüíîñòè
|
dword UrlsHistory::GetUrl(int id) {
|
||||||
{
|
return #history_list[id].Item;
|
||||||
int i;
|
}
|
||||||
if (history_num>0) && (!strcmp(#URL,#history_list[history_current].Item)) return;
|
|
||||||
|
|
||||||
if (history_current>=MAX_HISTORY_NUM-1)
|
void UrlsHistory::AddUrl() {
|
||||||
|
int i;
|
||||||
|
if (links_count>0) && (!strcmp(#URL,#history_list[current].Item)) return;
|
||||||
|
|
||||||
|
if (current>=MAX_HISTORY_NUM-1)
|
||||||
{
|
{
|
||||||
history_current/=2;
|
current/=2;
|
||||||
for (i=0; i<history_current; i++;)
|
for (i=0; i<current; i++;)
|
||||||
{
|
{
|
||||||
strlcpy(#history_list[i].Item, #history_list[MAX_HISTORY_NUM-i].Item, sizeof(history_list[0].Item));
|
strlcpy(#history_list[i].Item, #history_list[MAX_HISTORY_NUM-i].Item, sizeof(history_list[0].Item));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
history_current++;
|
current++;
|
||||||
strlcpy(#history_list[history_current].Item, #URL, sizeof(history_list[0].Item));
|
strlcpy(#history_list[current].Item, #URL, sizeof(history_list[0].Item));
|
||||||
history_num=history_current;
|
links_count=current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
byte UrlsHistory::GoBack()
|
byte UrlsHistory::GoBack() {
|
||||||
{
|
if (current<=1) return 0;
|
||||||
if (history_current<=1) return 0;
|
current--;
|
||||||
|
strlcpy(#URL, #history_list[current].Item, sizeof(URL));
|
||||||
history_current--;
|
|
||||||
strlcpy(#URL, #history_list[history_current].Item, sizeof(URL));
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
byte UrlsHistory::GoForward()
|
byte UrlsHistory::GoForward() {
|
||||||
{
|
if (current==links_count) return 0;
|
||||||
if (history_current==history_num) return 0;
|
current++;
|
||||||
history_current++;
|
strlcpy(#URL, #history_list[current].Item, sizeof(URL));
|
||||||
strlcpy(#URL, #history_list[history_current].Item, sizeof(URL));
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UrlsHistory BrowserHistory;
|
@ -9,7 +9,7 @@ s_image pics[100]; //pics = mem_Alloc( 100*sizeof(s_image) );
|
|||||||
struct ImageCache {
|
struct ImageCache {
|
||||||
int pics_count;
|
int pics_count;
|
||||||
void Free();
|
void Free();
|
||||||
int GetImage();
|
int GetImageNumber();
|
||||||
void Images();
|
void Images();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ void ImageCache::Free()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ImageCache::GetImage(dword i_path)
|
int ImageCache::GetImageNumber(dword i_path)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i=0; i<pics_count; i++) if (!strcmp(#pics[i].path, i_path)) return i; //image exists
|
for (i=0; i<pics_count; i++) if (!strcmp(#pics[i].path, i_path)) return i; //image exists
|
||||||
@ -55,7 +55,7 @@ void ImageCache::Images(int left1, top1, width1)
|
|||||||
img_path[strrchr(#img_path, '/')] = '\0';
|
img_path[strrchr(#img_path, '/')] = '\0';
|
||||||
strcat(#img_path, #options);
|
strcat(#img_path, #options);
|
||||||
}
|
}
|
||||||
cur_pic = GetImage(#img_path);
|
cur_pic = GetImageNumber(#img_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!strcmp(#parametr,"alt="))
|
if (!strcmp(#parametr,"alt="))
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
?define T_WALLPAPERS " Wallpappers"
|
?define T_WALLPAPERS " Wallpappers"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned char icons[sizeof(file "icons.raw")]= FROM "icons.raw";
|
unsigned char icons[]= FROM "icons.raw";
|
||||||
|
|
||||||
|
|
||||||
#define PANEL_H 30
|
#define PANEL_H 30
|
||||||
|
@ -30,19 +30,17 @@
|
|||||||
#include "img\URLgoto.txt";
|
#include "img\URLgoto.txt";
|
||||||
|
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
char version[]=" ’¥ªáâ®¢ë© ¡à 㧥à 0.99.65";
|
char version[]=" ’¥ªáâ®¢ë© ¡à 㧥à 0.99.66";
|
||||||
?define IMAGES_CACHE_CLEARED "Šíè ª à⨮ª ®ç¨é¥"
|
?define IMAGES_CACHE_CLEARED "Šíè ª à⨮ª ®ç¨é¥"
|
||||||
?define T_LAST_SLIDE "<EFBFBD>â® ¯®á«¥¤¨© á« ©¤"
|
?define T_LAST_SLIDE "<EFBFBD>â® ¯®á«¥¤¨© á« ©¤"
|
||||||
char loading[] = "Loading...";
|
char loading[] = "‡ £à㧪 áâà ¨æë...";
|
||||||
char page_not_found[] = "‘âà ¨æ ¥ ©¤¥ . ‚®¬®¦®, URL ᮤ¥à¦¨â ®è¨¡ªã.";
|
unsigned char page_not_found[] = FROM "html\page_not_found_ru.htm";
|
||||||
char page_not_found_no_internet[] = "‘âà ¨æ ¥ ©¤¥ . ‚®¬®¦®, URL ᮤ¥à¦¨â ®è¨¡ªã.<br>ˆ«¨ ¥â ¤®áâ㯠¢ ˆâ¥à¥âë.";
|
|
||||||
#else
|
#else
|
||||||
char version[]=" Text-based Browser 0.99.65";
|
char version[]=" Text-based Browser 0.99.66";
|
||||||
?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...";
|
char loading[] = "Loading...";
|
||||||
char page_not_found[] = "Page not found. Maybe, URL contains some errors.";
|
unsigned char page_not_found[] = FROM "html\page_not_found_en.htm";
|
||||||
char page_not_found_no_internet[] = "Page not found. Maybe, URL contains some errors.<br>Or Internet unavailable for your configuration.";
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
proc_info Form;
|
proc_info Form;
|
||||||
@ -67,6 +65,7 @@ char editURL[sizeof(URL)];
|
|||||||
int mouse_twb;
|
int mouse_twb;
|
||||||
edit_box address_box= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(URL),#editURL,#mouse_twb,2,19,19};
|
edit_box address_box= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(URL),#editURL,#mouse_twb,2,19,19};
|
||||||
|
|
||||||
|
#define URL_HISTORY "WebView://history"
|
||||||
|
|
||||||
enum { BACK=300, FORWARD, REFRESH, HOME, NEWTAB, GOTOURL, SEARCHWEB, INPUT_CH, INPUT_BT, BTN_UP, BTN_DOWN };
|
enum { BACK=300, FORWARD, REFRESH, HOME, NEWTAB, GOTOURL, SEARCHWEB, INPUT_CH, INPUT_BT, BTN_UP, BTN_DOWN };
|
||||||
|
|
||||||
@ -284,6 +283,11 @@ void Scan(int id)
|
|||||||
WB1.ParseHTML(bufpointer);
|
WB1.ParseHTML(bufpointer);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case 008: //history
|
||||||
|
strcpy(#URL, URL_HISTORY);
|
||||||
|
OpenPage();
|
||||||
|
return;
|
||||||
|
|
||||||
case BACK:
|
case BACK:
|
||||||
if (!BrowserHistory.GoBack()) return;
|
if (!BrowserHistory.GoBack()) return;
|
||||||
OpenPage();
|
OpenPage();
|
||||||
@ -350,14 +354,14 @@ void Scan(int id)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case 178:
|
case 178:
|
||||||
case BTN_UP: //ìîòàåì ââåðõ
|
case BTN_UP:
|
||||||
if (WB1.list.first <= 0) return;
|
if (WB1.list.first <= 0) return;
|
||||||
WB1.list.first--;
|
WB1.list.first--;
|
||||||
WB1.ParseHTML(bufpointer);
|
WB1.ParseHTML(bufpointer);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 177:
|
case 177:
|
||||||
case BTN_DOWN: //ìîòàåì âíèç
|
case BTN_DOWN:
|
||||||
if (WB1.list.visible + WB1.list.first >= WB1.list.count) return;
|
if (WB1.list.visible + WB1.list.first >= WB1.list.count) return;
|
||||||
WB1.list.first++;
|
WB1.list.first++;
|
||||||
WB1.ParseHTML(bufpointer);
|
WB1.ParseHTML(bufpointer);
|
||||||
@ -379,7 +383,6 @@ void Scan(int id)
|
|||||||
void ProcessLinks(int id)
|
void ProcessLinks(int id)
|
||||||
{
|
{
|
||||||
strcpy(#URL, PageLinks.GetURL(id-401));
|
strcpy(#URL, PageLinks.GetURL(id-401));
|
||||||
|
|
||||||
//$1 - Condition Script
|
//$1 - Condition Script
|
||||||
if (URL[0] == '$')
|
if (URL[0] == '$')
|
||||||
{
|
{
|
||||||
@ -460,6 +463,7 @@ void ShowPage()
|
|||||||
address_box.offset=0;
|
address_box.offset=0;
|
||||||
edit_box_draw stdcall(#address_box);
|
edit_box_draw stdcall(#address_box);
|
||||||
|
|
||||||
|
if (strcmp(#URL, URL_HISTORY)==0) ShowHistory(); else
|
||||||
if (!bufsize)
|
if (!bufsize)
|
||||||
{
|
{
|
||||||
PageLinks.Clear();
|
PageLinks.Clear();
|
||||||
@ -469,19 +473,11 @@ void ShowPage()
|
|||||||
WB1.ParseHTML(#loading);
|
WB1.ParseHTML(#loading);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
if (strncmp(#URL,"http:",5)==0)
|
|
||||||
{
|
|
||||||
bufsize = sizeof(page_not_found_no_internet);
|
|
||||||
WB1.ParseHTML(#page_not_found_no_internet);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
bufsize = sizeof(page_not_found);
|
bufsize = sizeof(page_not_found);
|
||||||
WB1.ParseHTML(#page_not_found);
|
WB1.ParseHTML(#page_not_found);
|
||||||
}
|
}
|
||||||
}
|
bufsize = 0;
|
||||||
//return;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
WB1.ParseHTML(bufpointer);
|
WB1.ParseHTML(bufpointer);
|
||||||
@ -490,5 +486,34 @@ void ShowPage()
|
|||||||
if (!strcmp(#version, #header)) DrawTitle(#header);
|
if (!strcmp(#version, #header)) DrawTitle(#header);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ShowHistory()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
static int history_pointer;
|
||||||
|
|
||||||
|
free(history_pointer);
|
||||||
|
history_pointer = malloc(64000);
|
||||||
|
strcat(history_pointer, "<h1>History</h1>");
|
||||||
|
strcat(history_pointer, "<h2>Visited pages</h2><blockquote><br>");
|
||||||
|
for (i=1; i<BrowserHistory.links_count; i++)
|
||||||
|
{
|
||||||
|
strcat(history_pointer, "<a href='");
|
||||||
|
strcat(history_pointer, BrowserHistory.GetUrl(i));
|
||||||
|
strcat(history_pointer, "'>");
|
||||||
|
strcat(history_pointer, BrowserHistory.GetUrl(i));
|
||||||
|
strcat(history_pointer, "</a><br>");
|
||||||
|
}
|
||||||
|
strcat(history_pointer, "</blockquote><h2>Cached images</h2><br>");
|
||||||
|
for (i=1; i<ImgCache.pics_count; i++)
|
||||||
|
{
|
||||||
|
strcat(history_pointer, "<img src='");
|
||||||
|
strcat(history_pointer, #pics[i].path);
|
||||||
|
strcat(history_pointer, "' /><br>");
|
||||||
|
}
|
||||||
|
bufsize = strlen(history_pointer);
|
||||||
|
bufpointer = history_pointer;
|
||||||
|
WB1.ParseHTML(history_pointer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
|
@ -1,4 +1,14 @@
|
|||||||
15.10.13 - 0.99.08
|
20.11.2013 - 0.99.6
|
||||||
|
- переделаны ссылки, курсор превращается в руку при наведении
|
||||||
|
|
||||||
|
29.12.2013 - 0.99.5
|
||||||
|
- Condition Script
|
||||||
|
|
||||||
|
27.12.2013 - 0.99.4
|
||||||
|
- отделение TWB компонента от браузера
|
||||||
|
|
||||||
|
15.10.13 - 0.99.1
|
||||||
|
- поддержка тегов <center>, <right> и параметра align="center/right" для тегов h1..h4
|
||||||
- ףכףקרוםםמו לום
|
- ףכףקרוםםמו לום
|
||||||
- לףכ<D7A3>עט<D7A2>ח<EFBFBD>קםמסע<D7A1>
|
- לףכ<D7A3>עט<D7A2>ח<EFBFBD>קםמסע<D7A1>
|
||||||
|
|
||||||
|
@ -8,9 +8,11 @@ char *ITEMS_LIST[]={
|
|||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
"ˆá室¨ª áâà ¨æë F3",52,
|
"ˆá室¨ª áâà ¨æë F3",52,
|
||||||
"Žç¨áâ¨âì ªíè ª à⨮ª" ,02,
|
"Žç¨áâ¨âì ªíè ª à⨮ª" ,02,
|
||||||
|
"ˆáâ®à¨ï" ,08,
|
||||||
#else
|
#else
|
||||||
"View source F3",52,
|
"View source F3",52,
|
||||||
"Free image cache" ,09,
|
"Free image cache" ,09,
|
||||||
|
"History" ,08,
|
||||||
#endif
|
#endif
|
||||||
0};
|
0};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user