HTMLv: fix links
git-svn-id: svn://kolibrios.org@4493 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e50945c8bc
commit
de57cc6ce9
@ -6,7 +6,6 @@ int downloader_id;
|
||||
|
||||
dword buf;
|
||||
dword filesize;
|
||||
dword blink;
|
||||
|
||||
#define URL param
|
||||
|
||||
@ -97,8 +96,9 @@ void TWebBrowser::DrawPage()
|
||||
IF (s_text) DrawBuf.DrawBar(start_x, 4, line_length, 1, text_colors[text_color_index]);
|
||||
IF (u_text) DrawBuf.DrawBar(start_x, 8, line_length, 1, text_colors[text_color_index]);
|
||||
IF (link) {
|
||||
UnsafeDefineButton(start_x-2, start_y, line_length + 3, 9, blink + BT_HIDE, 0xB5BFC9);
|
||||
UnsafeDefineButton(start_x-2, start_y, line_length + 3, 9, PageLinks.count + 400 + BT_HIDE, 0xB5BFC9);
|
||||
DrawBuf.DrawBar(start_x, 8, line_length, 1, text_colors[text_color_index]);
|
||||
PageLinks.AddText(#line, line_length, list.line_h);
|
||||
}
|
||||
stolbec += strlen(#line);
|
||||
}
|
||||
@ -179,6 +179,7 @@ void TWebBrowser::ShowPage()
|
||||
address_box.size = address_box.pos = strlen(#editURL);
|
||||
address_box.offset=0;
|
||||
edit_box_draw stdcall(#address_box);
|
||||
PageLinks.Clear();
|
||||
|
||||
if (!filesize)
|
||||
{
|
||||
@ -206,7 +207,6 @@ void TWebBrowser::ParseHTML(dword bword){
|
||||
byte ignor_param;
|
||||
char temp[768];
|
||||
|
||||
if (blink<400) blink=400; else for ( ; blink>400; blink--;) DeleteButton(blink);
|
||||
b_text = i_text = u_text = s_text = blq_text =
|
||||
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab =
|
||||
condition_text_val = condition_text_active = 0; //îáíóëÿåì òåãè
|
||||
@ -216,7 +216,6 @@ void TWebBrowser::ParseHTML(dword bword){
|
||||
link_color_active = 0xFF0000;
|
||||
bg_color = 0xFFFFFF;
|
||||
DrawBuf.Fill(bg_color);
|
||||
PageLinks.Clear();
|
||||
strcpy(#header, #version);
|
||||
stroka = -list.first;
|
||||
stolbec = 0;
|
||||
@ -462,7 +461,6 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
||||
text_colors[text_color_index] = text_colors[text_color_index-1];
|
||||
|
||||
link = 1;
|
||||
blink++;
|
||||
text_colors[text_color_index] = link_color_inactive;
|
||||
PageLinks.AddLink(#options, stolbec*6+left1, top1);
|
||||
}
|
||||
@ -477,7 +475,6 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
||||
}
|
||||
else {
|
||||
link = 0;
|
||||
PageLinks.AddText(#line, strlen(#line)*6, list.line_h);
|
||||
IF(text_color_index > 0) text_color_index--;
|
||||
}
|
||||
return;
|
||||
|
@ -96,7 +96,7 @@ void ImageCache::Images(int left1, top1, width1)
|
||||
|
||||
img_draw stdcall (pics[cur_pic].image, left1-5, top1, w, h,0,img_lines_first);
|
||||
DrawBar(left1+w - 5, top1, WB1.list.w-w, h, bg_color);
|
||||
IF (link) UnsafeDefineButton(left1 - 5, top1, w, h-1, blink + BT_HIDE, 0xB5BFC9);
|
||||
IF (link) UnsafeDefineButton(left1 - 5, top1, w, h-1, PageLinks.count + 400 + BT_HIDE, 0xB5BFC9);
|
||||
}
|
||||
|
||||
ImageCache ImgCache;
|
@ -5,8 +5,8 @@ struct array_link {
|
||||
|
||||
struct LinksArray
|
||||
{
|
||||
array_link links[100];
|
||||
char page_links[12000];
|
||||
array_link links[200];
|
||||
char page_links[64000];
|
||||
dword buflen;
|
||||
int count, active;
|
||||
|
||||
@ -46,6 +46,8 @@ dword LinksArray::GetURL(int id)
|
||||
|
||||
void LinksArray::Clear()
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<=count; i++) DeleteButton(i+400);
|
||||
buflen = #page_links;
|
||||
count = 0;
|
||||
active = -1;
|
||||
@ -73,4 +75,57 @@ void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
|
||||
}
|
||||
|
||||
|
||||
LinksArray PageLinks;
|
||||
LinksArray PageLinks;
|
||||
|
||||
|
||||
/*
|
||||
------------------ Подфункция 4 - загрузить курсор -------------------
|
||||
Параметры:
|
||||
* eax = 37 - номер функции
|
||||
* ebx = 4 - номер подфункции
|
||||
* dx = источник данных:
|
||||
* dx = LOAD_FROM_FILE = 0 - данные в файле
|
||||
* ecx = указатель на полный путь к файлу курсора
|
||||
* файл курсора должен быть в формате .cur, стандартном для
|
||||
MS Windows, причём размером 32*32 пикселя
|
||||
* dx = LOAD_FROM_MEM = 1 - данные файла уже загружены в память
|
||||
* ecx = указатель на данные файла курсора
|
||||
* формат данных такой же, как и в предыдущем случае
|
||||
* dx = LOAD_INDIRECT = 2 - данные в памяти
|
||||
* ecx = указатель на образ курсора в формате ARGB 32*32 пикселя
|
||||
* edx = 0xXXYY0002, где
|
||||
* XX = x-координата "горячей точки" курсора
|
||||
* YY = y-координата
|
||||
* 0 <= XX, YY <= 31
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - неудача
|
||||
* иначе eax = хэндл курсора
|
||||
|
||||
------------------ Подфункция 5 - установить курсор ------------------
|
||||
Устанавливает новый курсор для окна текущего потока.
|
||||
Параметры:
|
||||
* eax = 37 - номер функции
|
||||
* ebx = 5 - номер подфункции
|
||||
* ecx = хэндл курсора
|
||||
Возвращаемое значение:
|
||||
* eax = хэндл предыдущего установленного курсора
|
||||
Замечания:
|
||||
* Если передан некорректный хэндл, то функция восстановит курсор
|
||||
по умолчанию (стандартную стрелку). В частности, к восстановлению
|
||||
курсора по умолчанию приводит передача ecx=0.
|
||||
|
||||
------------------- Подфункция 6 - удалить курсор --------------------
|
||||
Параметры:
|
||||
* eax = 37 - номер функции
|
||||
* ebx = 6 - номер подфункции
|
||||
* ecx = хэндл курсора
|
||||
Возвращаемое значение:
|
||||
* eax разрушается
|
||||
Замечания:
|
||||
* Курсор должен был быть ранее загружен текущим потоком
|
||||
(вызовом подфункции 4). Функция не удаляет системные курсоры и
|
||||
курсоры, загруженные другими приложениями.
|
||||
* Если удаляется активный (установленный подфункцией 5) курсор, то
|
||||
восстанавливается курсор по умолчанию (стандартная стрелка).
|
||||
|
||||
*/
|
Loading…
Reference in New Issue
Block a user