Subversion Repositories Kolibri OS

Rev

Rev 4493 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4493 Rev 4497
Line -... Line 1...
-
 
1
CustomCursor CursorPointer;
-
 
2
dword CursorFile = FROM "../TWB/pointer.cur";
-
 
3
 
1
struct array_link {
4
struct array_link {
2
	dword link, text;
5
	dword link, text;
3
	int x,y,w,h;
6
	int x,y,w,h;
4
};
7
};
Line 49... Line 52...
49
	int i;
52
	int i;
50
	for (i=0; i<=count; i++) DeleteButton(i+400);
53
	for (i=0; i<=count; i++) DeleteButton(i+400);
51
	buflen = #page_links;
54
	buflen = #page_links;
52
	count = 0;
55
	count = 0;
53
	active = -1;
56
	active = -1;
-
 
57
	CursorPointer.Restore();
54
}
58
}
Line -... Line 59...
-
 
59
 
55
 
60
 
56
void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
61
void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
57
{
62
{
58
	int i;
-
 
59
	if (active>=0)
-
 
60
	{
-
 
61
		//WriteText(links[active].x,links[active].y, 0x80, link_col_in, links[active].text);
-
 
62
		DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
-
 
63
		active = -1;
-
 
64
	}
63
	int i;
65
	for (i=0; i
64
	for (i=0; i
66
	{
65
	{
67
		if (mx>links[i].x) && (my>links[i].y) && (mx
66
		if (mx>links[i].x) && (my>links[i].y) && (mx
-
 
67
		{
-
 
68
			if (active==i) return;
68
		{
69
			CursorPointer.Set();
69
			//WriteText(links[i].x,links[i].y, 0x80, link_col_a, links[i].text);
70
			DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
70
			DrawBar(links[i].x,links[i].y+8,links[i].w,1, bg_col);
71
			DrawBar(links[i].x,links[i].y+8,links[i].w,1, bg_col);
71
			active = i;
72
			active = i;
72
			return;
73
			return;
73
		}
74
		}
-
 
75
	}
-
 
76
	if (active!=-1)
-
 
77
	{
-
 
78
		CursorPointer.Restore();
-
 
79
		DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
-
 
80
		active = -1;
74
	}
81
	}
Line 75... Line 82...
75
}
82
}
76
 
-
 
77
 
-
 
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
    восстанавливается курсор по умолчанию (стандартная стрелка).
83