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 |