Subversion Repositories Kolibri OS

Rev

Rev 4492 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4491 leency 1
struct array_link {
2
	dword link, text;
3
	int x,y,w,h;
4
};
4488 leency 5
 
6
struct LinksArray
7
{
4493 leency 8
	array_link links[200];
9
	char page_links[64000];
4491 leency 10
	dword buflen;
11
	int count, active;
12
 
13
	void Hover();
14
	void AddLink();
15
	void AddText();
4488 leency 16
	dword GetURL();
17
	void Clear();
4491 leency 18
};
4488 leency 19
 
4491 leency 20
void LinksArray::AddLink(dword new_link, int link_x, link_y)
4488 leency 21
{
4491 leency 22
	links[count].x = link_x;
23
	links[count].y = link_y;
24
 
25
	links[count].link = buflen;
26
	strcpy(buflen, new_link);
27
	buflen += strlen(new_link)+1;
28
	count++;
4488 leency 29
}
30
 
4491 leency 31
void LinksArray::AddText(dword new_text, int link_w, link_h)
32
{
33
	if (count<1) return;
34
	links[count-1].w = link_w;
35
	links[count-1].h = link_h;
36
 
37
	links[count-1].text = buflen;
38
	strcpy(buflen, new_text);
39
	buflen += strlen(new_text)+1;
40
}
41
 
4488 leency 42
dword LinksArray::GetURL(int id)
43
{
4491 leency 44
	return links[id].link;
45
}
46
 
47
void LinksArray::Clear()
48
{
4493 leency 49
	int i;
50
	for (i=0; i<=count; i++) DeleteButton(i+400);
4491 leency 51
	buflen = #page_links;
52
	count = 0;
53
	active = -1;
54
}
55
 
4492 leency 56
void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
4491 leency 57
{
58
	int i;
59
	if (active>=0)
4488 leency 60
	{
4492 leency 61
		//WriteText(links[active].x,links[active].y, 0x80, link_col_in, links[active].text);
4491 leency 62
		DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
63
		active = -1;
64
	}
65
	for (i=0; i
66
	{
67
		if (mx>links[i].x) && (my>links[i].y) && (mx
4488 leency 68
		{
4492 leency 69
			//WriteText(links[i].x,links[i].y, 0x80, link_col_a, links[i].text);
70
			DrawBar(links[i].x,links[i].y+8,links[i].w,1, bg_col);
4491 leency 71
			active = i;
72
			return;
4488 leency 73
		}
74
	}
75
}
76
 
4491 leency 77
 
4493 leency 78
LinksArray PageLinks;
79
 
80
 
81
/*
82
------------------ Подфункция 4 - загрузить курсор -------------------
83
Параметры:
84
  * eax = 37 - номер функции
85
  * ebx = 4 - номер подфункции
86
  * dx = источник данных:
87
  * dx = LOAD_FROM_FILE = 0 - данные в файле
88
    * ecx = указатель на полный путь к файлу курсора
89
    * файл курсора должен быть в формате .cur, стандартном для
90
      MS Windows, причём размером 32*32 пикселя
91
  * dx = LOAD_FROM_MEM = 1 - данные файла уже загружены в память
92
    * ecx = указатель на данные файла курсора
93
    * формат данных такой же, как и в предыдущем случае
94
  * dx = LOAD_INDIRECT = 2 - данные в памяти
95
    * ecx = указатель на образ курсора в формате ARGB 32*32 пикселя
96
    * edx = 0xXXYY0002, где
97
      * XX = x-координата "горячей точки" курсора
98
      * YY = y-координата
99
      * 0 <= XX, YY <= 31
100
Возвращаемое значение:
101
  * eax = 0 - неудача
102
  * иначе eax = хэндл курсора
103
 
104
------------------ Подфункция 5 - установить курсор ------------------
105
Устанавливает новый курсор для окна текущего потока.
106
Параметры:
107
  * eax = 37 - номер функции
108
  * ebx = 5 - номер подфункции
109
  * ecx = хэндл курсора
110
Возвращаемое значение:
111
  * eax = хэндл предыдущего установленного курсора
112
Замечания:
113
  * Если передан некорректный хэндл, то функция восстановит курсор
114
    по умолчанию (стандартную стрелку). В частности, к восстановлению
115
    курсора по умолчанию приводит передача ecx=0.
116
 
117
------------------- Подфункция 6 - удалить курсор --------------------
118
Параметры:
119
  * eax = 37 - номер функции
120
  * ebx = 6 - номер подфункции
121
  * ecx = хэндл курсора
122
Возвращаемое значение:
123
  * eax разрушается
124
Замечания:
125
  * Курсор должен был быть ранее загружен текущим потоком
126
    (вызовом подфункции 4). Функция не удаляет системные курсоры и
127
    курсоры, загруженные другими приложениями.
128
  * Если удаляется активный (установленный подфункцией 5) курсор, то
129
    восстанавливается курсор по умолчанию (стандартная стрелка).
130
 
131
*/