forked from KolibriOS/kolibrios
fix mouse redraw in 'checkbox'
git-svn-id: svn://kolibrios.org@8568 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e594f133e1
commit
aba76d1871
@ -1,4 +1,4 @@
|
|||||||
;Последная модификация 08.12.2020
|
;Последная модификация 02.02.2021
|
||||||
;файл создан 13.02.2009 <Lrz> На код применена GPL2 лицензия
|
;файл создан 13.02.2009 <Lrz> На код применена GPL2 лицензия
|
||||||
;Checkbox
|
;Checkbox
|
||||||
|
|
||||||
@ -107,9 +107,9 @@ align 16
|
|||||||
check_box_mouse: ;обработка мыши
|
check_box_mouse: ;обработка мыши
|
||||||
pushad
|
pushad
|
||||||
mov ebp,dword [esp+36] ;загружаем указатель на структуру, указатель мы передаем в стеке
|
mov ebp,dword [esp+36] ;загружаем указатель на структуру, указатель мы передаем в стеке
|
||||||
mcall SF_MOUSE_GET,SSF_BUTTON ;проверяем состояние клавиш мышки. Было ли событие нажатая клавиша на мышке.
|
mcall SF_MOUSE_GET,SSF_BUTTON_EXT ;проверяем состояние клавиш мышки. Было ли событие нажатая клавиша на мышке.
|
||||||
test eax,eax ;проверка если у нас в eax=0, выйдем
|
and eax, 3 shl 8 ;проверяем левую и правую кнопки
|
||||||
jz .check_box_mouse_end ;обработка закончилась
|
jz .end ;обработка закончилась
|
||||||
; Да событие: нажатие клавиши мышки произошло.
|
; Да событие: нажатие клавиши мышки произошло.
|
||||||
@@:
|
@@:
|
||||||
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;получить координаты курсора относительно окна
|
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;получить координаты курсора относительно окна
|
||||||
@ -119,11 +119,11 @@ pushad
|
|||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
shr ebx,16 ;bx = координата по y
|
shr ebx,16 ;bx = координата по y
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jb .check_box_mouse_end ;указатель мышки меньше начальной координаты по y чем координата по Y у бокса
|
jb .end ;указатель мышки меньше начальной координаты по y чем координата по Y у бокса
|
||||||
;сравнение нижней точки по Y
|
;сравнение нижней точки по Y
|
||||||
add cx,bx ;сложим длинну по y и координату верхней точки по y поличим координату нижней точки по Y
|
add cx,bx ;сложим длинну по y и координату верхней точки по y поличим координату нижней точки по Y
|
||||||
cmp ax,cx
|
cmp ax,cx
|
||||||
ja .check_box_mouse_end ;указатель мышки больше конечной координаты по y чем координата по Y у бокса
|
ja .end ;указатель мышки больше конечной координаты по y чем координата по Y у бокса
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
shr eax,16 ;сместим координату по Х в нижную часть регистра т.е. в ax
|
shr eax,16 ;сместим координату по Х в нижную часть регистра т.е. в ax
|
||||||
;сравнение по начальной точке Х
|
;сравнение по начальной точке Х
|
||||||
@ -131,20 +131,20 @@ pushad
|
|||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
shr ebx,16 ;bx = координата по X
|
shr ebx,16 ;bx = координата по X
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jb .check_box_mouse_end ;указатель мышки меньше начальной координаты по X чем координата по X у бокса
|
jb .end ;указатель мышки меньше начальной координаты по X чем координата по X у бокса
|
||||||
;сравнение конечной точки по X
|
;сравнение конечной точки по X
|
||||||
add bx,cx ;сложим длинну по x и координату точки по х получим координату конечной точки по Х
|
add bx,cx ;сложим длинну по x и координату точки по х получим координату конечной точки по Х
|
||||||
add bx,word ch_sz_str ;добавим длинну строки текста с отступом предвартиельно записав их в момент инициализации
|
add bx,word ch_sz_str ;добавим длинну строки текста с отступом предвартиельно записав их в момент инициализации
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
ja .check_box_mouse_end ;указатель мышки больше конечной координаты по х чем координата по Х у бокса
|
ja .end ;указатель мышки больше конечной координаты по х чем координата по Х у бокса
|
||||||
;если все проверки были успешно пройдены мы обязаны поменять состояние бокса
|
;если все проверки были успешно пройдены мы обязаны поменять состояние бокса
|
||||||
btc dword ch_flags,1 ;перенос 2-го бита в cf и инверсия его
|
btc dword ch_flags,1 ;перенос 2-го бита в cf и инверсия его
|
||||||
jnc .enable_box ;если CF=1 то отобразим включенный бокс и выйдем
|
jnc .enable_box ;если CF=1 то отобразим включенный бокс и выйдем
|
||||||
push dword .check_box_mouse_end ;фокус -покус, вернемся после вызова check_box_clear_ch на метку check_box_mouse_end
|
push dword .end ;фокус-покус, вернемся после вызова check_box_clear_ch на метку check_box_mouse.end
|
||||||
jmp check_box_clear_ch ;выключить чек бокс т.е. на месте закрашенного прямоугольника отобразить цвет фона.
|
jmp check_box_clear_ch ;выключить чек бокс т.е. на месте закрашенного прямоугольника отобразить цвет фона.
|
||||||
|
|
||||||
.enable_box:
|
.enable_box:
|
||||||
call check_box_draw_ch ;отобразить включенный чек бокс
|
call check_box_draw_ch ;отобразить включенный чек бокс
|
||||||
.check_box_mouse_end:
|
.end:
|
||||||
popad ;восстановить регистры из стека
|
popad ;восстановить регистры из стека
|
||||||
ret 4 ;выйти и восстановим стек
|
ret 4 ;выйти и восстановим стек
|
||||||
|
@ -26,24 +26,14 @@ ini_data:
|
|||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
load_lib_start:
|
load_lib_start:
|
||||||
lib1 l_libs img.name, \
|
lib1 l_libs img.name, \
|
||||||
sys_path, \
|
|
||||||
file_name, \
|
file_name, \
|
||||||
img.dir, \
|
img.dir, \
|
||||||
error, \
|
img
|
||||||
error, \
|
|
||||||
img, \
|
|
||||||
error, \
|
|
||||||
error
|
|
||||||
|
|
||||||
lib2 l_libs ini.name, \
|
lib2 l_libs ini.name, \
|
||||||
sys_path, \
|
|
||||||
file_name, \
|
file_name, \
|
||||||
ini.dir, \
|
ini.dir, \
|
||||||
error, \
|
ini
|
||||||
error, \
|
|
||||||
ini, \
|
|
||||||
error, \
|
|
||||||
error
|
|
||||||
load_lib_end:
|
load_lib_end:
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
img:
|
img:
|
||||||
|
@ -7,13 +7,14 @@
|
|||||||
include "../../../macros.inc"
|
include "../../../macros.inc"
|
||||||
include "../../../proc32.inc"
|
include "../../../proc32.inc"
|
||||||
include "../../../dll.inc"
|
include "../../../dll.inc"
|
||||||
include "../../../develop/libraries/box_lib/load_lib.mac"
|
include "../../../KOSfuncs.inc"
|
||||||
|
include "../../../load_lib.mac"
|
||||||
;include "../../../debug.inc"
|
;include "../../../debug.inc"
|
||||||
|
|
||||||
include "DATA.INC"
|
include "DATA.INC"
|
||||||
include "NAME.INC"
|
include "NAME.INC"
|
||||||
|
|
||||||
@use_library_mem \
|
@use_library \
|
||||||
mem.Alloc, \
|
mem.Alloc, \
|
||||||
mem.Free, \
|
mem.Free, \
|
||||||
mem.ReAlloc, \
|
mem.ReAlloc, \
|
||||||
@ -21,10 +22,10 @@
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
main:
|
main:
|
||||||
; ==== Init ====
|
; ==== Init ====
|
||||||
mcall 18, 7
|
mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW
|
||||||
mov [win.psid], eax
|
mov [win.psid], eax
|
||||||
|
|
||||||
mcall 40, EVM_REDRAW+EVM_BUTTON+EVM_MOUSE ;+EVM_DEKSTOP to update colors on skin change
|
mcall SF_SET_EVENTS_MASK, EVM_REDRAW+EVM_BUTTON+EVM_MOUSE ;+EVM_DEKSTOP to update colors on skin change
|
||||||
|
|
||||||
; ==== Load libs ====
|
; ==== Load libs ====
|
||||||
load_libraries load_lib_start, load_lib_end
|
load_libraries load_lib_start, load_lib_end
|
||||||
@ -40,17 +41,17 @@ main:
|
|||||||
invoke ini.sections, ini_data.file_name, sections_callback
|
invoke ini.sections, ini_data.file_name, sections_callback
|
||||||
|
|
||||||
; ==== Load colors ====
|
; ==== Load colors ====
|
||||||
mcall 48, 3, color
|
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, color
|
||||||
or dword[color.bg], 0x10000000
|
or dword[color.bg], 0x10000000
|
||||||
or dword[color.frame], 0x10000000
|
or dword[color.frame], 0x10000000
|
||||||
or dword[color.text], 0x80000000
|
or dword[color.text], 0x80000000
|
||||||
|
|
||||||
; ==== Config LibIMG ====
|
; ==== Config LibIMG ====
|
||||||
mov dword[fi.p00], 5
|
mov dword[fi.p00], SSF_GET_INFO
|
||||||
mov dword[fi.p16], buf_128
|
mov dword[fi.p16], buf_128
|
||||||
mov dword[fi.p21], img_data.file_name
|
mov dword[fi.p21], img_data.file_name
|
||||||
|
|
||||||
mcall 70, fi
|
mcall SF_FILE, fi
|
||||||
|
|
||||||
mov edx, [buf_128 + 32]
|
mov edx, [buf_128 + 32]
|
||||||
imul edx, 10
|
imul edx, 10
|
||||||
@ -58,12 +59,12 @@ main:
|
|||||||
stdcall mem.Alloc, edx
|
stdcall mem.Alloc, edx
|
||||||
mov [img_data.rgb_object], eax
|
mov [img_data.rgb_object], eax
|
||||||
|
|
||||||
mov dword[fi.p00], 0
|
mov dword[fi.p00], SSF_READ_FILE
|
||||||
mov dword[fi.p12], edx
|
mov dword[fi.p12], edx
|
||||||
m2m dword[fi.p16], dword[img_data.rgb_object]
|
m2m dword[fi.p16], dword[img_data.rgb_object]
|
||||||
mov dword[fi.p21], img_data.file_name
|
mov dword[fi.p21], img_data.file_name
|
||||||
|
|
||||||
mcall 70, fi
|
mcall SF_FILE, fi
|
||||||
|
|
||||||
cmp ebx, 0xFFFFFFFF
|
cmp ebx, 0xFFFFFFFF
|
||||||
je @f
|
je @f
|
||||||
@ -153,7 +154,7 @@ main:
|
|||||||
dec eax
|
dec eax
|
||||||
jmp .set_hw
|
jmp .set_hw
|
||||||
@@:
|
@@:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
shr eax, 16
|
shr eax, 16
|
||||||
.set_hw:
|
.set_hw:
|
||||||
mov [win.width_opn], eax
|
mov [win.width_opn], eax
|
||||||
@ -163,7 +164,7 @@ main:
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
.HORZ_X:
|
.HORZ_X:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
shr eax, 17
|
shr eax, 17
|
||||||
mov ecx, [win.width_opn]
|
mov ecx, [win.width_opn]
|
||||||
shr ecx, 1
|
shr ecx, 1
|
||||||
@ -182,7 +183,7 @@ main:
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
.HORZ_Y_BOTTOM:
|
.HORZ_Y_BOTTOM:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
and eax, 0xFFFF
|
and eax, 0xFFFF
|
||||||
dec eax
|
dec eax
|
||||||
mov [win.y_hdn], eax
|
mov [win.y_hdn], eax
|
||||||
@ -212,7 +213,7 @@ main:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
.VERT_X_RIGHT:
|
.VERT_X_RIGHT:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
and eax, 0xFFFF0000
|
and eax, 0xFFFF0000
|
||||||
shr eax, 16
|
shr eax, 16
|
||||||
mov [win.x_hdn], eax
|
mov [win.x_hdn], eax
|
||||||
@ -231,7 +232,7 @@ main:
|
|||||||
dec eax
|
dec eax
|
||||||
jmp .set_vh
|
jmp .set_vh
|
||||||
@@:
|
@@:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
and eax, 0xFFFF
|
and eax, 0xFFFF
|
||||||
.set_vh:
|
.set_vh:
|
||||||
mov [win.height_opn], eax
|
mov [win.height_opn], eax
|
||||||
@ -241,7 +242,7 @@ main:
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
.VERT_Y:
|
.VERT_Y:
|
||||||
mcall 14
|
mcall SF_GET_SCREEN_SIZE
|
||||||
and eax, 0xFFFF
|
and eax, 0xFFFF
|
||||||
shr eax, 1
|
shr eax, 1
|
||||||
|
|
||||||
@ -288,9 +289,9 @@ main:
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
; ==== START ====
|
; ==== START ====
|
||||||
mcall 9, win.procinfo, -1
|
mcall SF_THREAD_INFO, win.procinfo, -1
|
||||||
mov ecx, [win.procinfo + 30]
|
mov ecx, [win.procinfo + 30]
|
||||||
mcall 18, 21
|
mcall SF_SYSTEM, SSF_GET_THREAD_SLOT
|
||||||
and eax, 0xFFFF
|
and eax, 0xFFFF
|
||||||
mov [win.sid], eax
|
mov [win.sid], eax
|
||||||
|
|
||||||
@ -298,11 +299,12 @@ main:
|
|||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
exit:
|
exit:
|
||||||
stdcall mem.Free, [img_data.rgb_object]
|
stdcall mem.Free, [img_data.rgb_object]
|
||||||
mcall 18, 2, [nwin.sid]
|
mcall SF_SYSTEM, SSF_TERMINATE_THREAD, [nwin.sid]
|
||||||
mcall -1
|
mcall SF_TERMINATE_PROCESS
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
main_loop:
|
main_loop:
|
||||||
mcall 10
|
mcall SF_WAIT_EVENT
|
||||||
|
|
||||||
cmp eax, EV_REDRAW
|
cmp eax, EV_REDRAW
|
||||||
je event_redraw
|
je event_redraw
|
||||||
@ -320,19 +322,19 @@ event_redraw:
|
|||||||
jmp main_loop
|
jmp main_loop
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
DRAW_WINDOW:
|
DRAW_WINDOW:
|
||||||
mcall 12, 1
|
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||||||
|
|
||||||
mov esi, [color.bg]
|
mov esi, [color.bg]
|
||||||
or esi, 0x01000000
|
or esi, 0x01000000
|
||||||
mcall 0, <[win.x], [win.width]>, <[win.y], [win.height]>, [color.bg], , [color.frame]
|
mcall SF_CREATE_WINDOW, <[win.x], [win.width]>, <[win.y], [win.height]>, [color.bg], , [color.frame]
|
||||||
|
|
||||||
mov edi, 0
|
xor edi, edi
|
||||||
@@:
|
@@:
|
||||||
cmp edi, [dock_items.count]
|
cmp edi, [dock_items.count]
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
push edi
|
push edi
|
||||||
mov eax, 8
|
mov eax, SF_DEFINE_BUTTON
|
||||||
mov edx, 0x60000002
|
mov edx, 0x60000002
|
||||||
mov esi, [color.bg]
|
mov esi, [color.bg]
|
||||||
imul edi, BUTTON_SIZE
|
imul edi, BUTTON_SIZE
|
||||||
@ -356,12 +358,11 @@ DRAW_WINDOW:
|
|||||||
push ebx
|
push ebx
|
||||||
push ecx
|
push ecx
|
||||||
|
|
||||||
mov eax, 13
|
mov eax, SF_DRAW_RECT
|
||||||
mov ebx, edi
|
mov ebx, edi
|
||||||
imul ebx, BUTTON_SIZE
|
imul ebx, BUTTON_SIZE
|
||||||
add ebx, BUTTON_SIZE
|
add ebx, BUTTON_SIZE
|
||||||
add ebx, 12
|
add ebx, 12-1
|
||||||
dec ebx
|
|
||||||
shl ebx, 16
|
shl ebx, 16
|
||||||
add ebx, 2
|
add ebx, 2
|
||||||
|
|
||||||
@ -397,18 +398,18 @@ DRAW_WINDOW:
|
|||||||
imul ebx, ICON_SIZE_BGR
|
imul ebx, ICON_SIZE_BGR
|
||||||
add ebx, [img_data.rgb_object]
|
add ebx, [img_data.rgb_object]
|
||||||
|
|
||||||
mcall 7, , <32, 32>
|
mcall SF_PUT_IMAGE, , <32, 32>
|
||||||
|
|
||||||
inc edi
|
inc edi
|
||||||
jmp @b
|
jmp @b
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
mcall 12, 2
|
mcall SF_REDRAW, SSF_END_DRAW
|
||||||
|
|
||||||
ret
|
ret
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
event_button:
|
event_button:
|
||||||
mcall 17
|
mcall SF_GET_BUTTON
|
||||||
|
|
||||||
;; it must not be possible to close dock
|
;; it must not be possible to close dock
|
||||||
;cmp ah, 1
|
;cmp ah, 1
|
||||||
@ -426,7 +427,7 @@ event_button:
|
|||||||
mov edi, [win.button_index]
|
mov edi, [win.button_index]
|
||||||
imul edi, 256
|
imul edi, 256
|
||||||
|
|
||||||
mov dword[fi.p00], 7
|
mov dword[fi.p00], SSF_START_APP
|
||||||
|
|
||||||
mov esi, edi
|
mov esi, edi
|
||||||
add esi, dock_items.path
|
add esi, dock_items.path
|
||||||
@ -436,10 +437,10 @@ event_button:
|
|||||||
add esi, dock_items.param
|
add esi, dock_items.param
|
||||||
mov dword[fi.p08], esi
|
mov dword[fi.p08], esi
|
||||||
|
|
||||||
mcall 70, fi
|
mcall SF_FILE, fi
|
||||||
|
|
||||||
mov ecx, eax
|
mov ecx, eax
|
||||||
mcall 18, 21
|
mcall SF_SYSTEM, SSF_GET_THREAD_SLOT
|
||||||
and eax, 0xFFFF
|
and eax, 0xFFFF
|
||||||
mov [win.psid], eax
|
mov [win.psid], eax
|
||||||
|
|
||||||
@ -450,7 +451,7 @@ event_button:
|
|||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
event_mouse:
|
event_mouse:
|
||||||
; ==== IS MOUSE INNER ====
|
; ==== IS MOUSE INNER ====
|
||||||
mcall 37, 1
|
mcall SF_MOUSE_GET, SSF_WINDOW_POSITION
|
||||||
mov edi, eax
|
mov edi, eax
|
||||||
mov esi, eax
|
mov esi, eax
|
||||||
shr edi, 16
|
shr edi, 16
|
||||||
@ -513,14 +514,14 @@ event_mouse:
|
|||||||
add eax, [win.x]
|
add eax, [win.x]
|
||||||
mov [nwin.x], eax
|
mov [nwin.x], eax
|
||||||
mov byte[nwin.change_shape], 1
|
mov byte[nwin.change_shape], 1
|
||||||
mcall 13, <0, [win.width]>, <[win.height], 1>, [color.frame]
|
mcall SF_DRAW_RECT, <0, [win.width]>, <[win.height], 1>, [color.frame]
|
||||||
jmp .vert_end
|
jmp .vert_end
|
||||||
.vert_name:
|
.vert_name:
|
||||||
add eax, [win.y]
|
add eax, [win.y]
|
||||||
add eax, 14
|
add eax, 14
|
||||||
mov [nwin.y], eax
|
mov [nwin.y], eax
|
||||||
mov byte[nwin.change_shape], 1
|
mov byte[nwin.change_shape], 1
|
||||||
mcall 13, <[win.width], 1>, <0, [win.height]>, [color.frame]
|
mcall SF_DRAW_RECT, <[win.width], 1>, <0, [win.height]>, [color.frame]
|
||||||
.vert_end:
|
.vert_end:
|
||||||
|
|
||||||
; ==== OPEN/CLOSE WINDOW ====
|
; ==== OPEN/CLOSE WINDOW ====
|
||||||
@ -529,14 +530,12 @@ event_mouse:
|
|||||||
|
|
||||||
mov edx, esp
|
mov edx, esp
|
||||||
add edx, 512
|
add edx, 512
|
||||||
mcall 51, 1, n_main
|
mcall SF_CREATE_THREAD, 1, n_main
|
||||||
|
|
||||||
mov eax, 18
|
mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW
|
||||||
|
|
||||||
mcall , 7
|
|
||||||
mov [win.psid], eax
|
mov [win.psid], eax
|
||||||
|
|
||||||
mcall 18, 3, [win.sid]
|
mcall SF_SYSTEM, SSF_FOCUS_WINDOW, [win.sid]
|
||||||
|
|
||||||
mov byte[win.state], 1
|
mov byte[win.state], 1
|
||||||
|
|
||||||
@ -555,7 +554,7 @@ event_mouse:
|
|||||||
|
|
||||||
cmp byte[dock_items.ashow],1
|
cmp byte[dock_items.ashow],1
|
||||||
je .change_nothing
|
je .change_nothing
|
||||||
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
mcall SF_CHANGE_WINDOW, [win.x], [win.y], [win.width], [win.height]
|
||||||
|
|
||||||
.change_nothing:
|
.change_nothing:
|
||||||
call DRAW_WINDOW
|
call DRAW_WINDOW
|
||||||
@ -569,7 +568,7 @@ wnd_hide:
|
|||||||
|
|
||||||
mov byte[nwin.close], 1
|
mov byte[nwin.close], 1
|
||||||
|
|
||||||
mcall 18, 3, [win.psid]
|
mcall SF_SYSTEM, SSF_FOCUS_WINDOW, [win.psid]
|
||||||
|
|
||||||
mov byte[win.state], 0
|
mov byte[win.state], 0
|
||||||
mov byte[win.button_index], -1
|
mov byte[win.button_index], -1
|
||||||
@ -589,7 +588,7 @@ wnd_hide:
|
|||||||
mov eax, [win.y_hdn]
|
mov eax, [win.y_hdn]
|
||||||
mov [win.y], eax
|
mov [win.y], eax
|
||||||
|
|
||||||
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
mcall SF_CHANGE_WINDOW, [win.x], [win.y], [win.width], [win.height]
|
||||||
|
|
||||||
.do_no_hide:
|
.do_no_hide:
|
||||||
call DRAW_WINDOW
|
call DRAW_WINDOW
|
||||||
@ -609,7 +608,7 @@ DRAW_SELECTION:
|
|||||||
sub ecx, 0x000C0000
|
sub ecx, 0x000C0000
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
mcall 13, , , [color.bg]
|
mcall SF_DRAW_RECT, , , [color.bg]
|
||||||
|
|
||||||
mov edx, ebx
|
mov edx, ebx
|
||||||
shr ecx, 16
|
shr ecx, 16
|
||||||
@ -623,7 +622,7 @@ DRAW_SELECTION:
|
|||||||
imul ebx, ICON_SIZE_BGR
|
imul ebx, ICON_SIZE_BGR
|
||||||
add ebx, [img_data.rgb_object]
|
add ebx, [img_data.rgb_object]
|
||||||
|
|
||||||
mcall 7, , <32, 32>
|
mcall SF_PUT_IMAGE, , <32, 32>
|
||||||
|
|
||||||
mov ebx, [win.button_index]
|
mov ebx, [win.button_index]
|
||||||
imul ebx, BUTTON_SIZE
|
imul ebx, BUTTON_SIZE
|
||||||
@ -638,7 +637,7 @@ DRAW_SELECTION:
|
|||||||
sub ecx, 0x000C0000
|
sub ecx, 0x000C0000
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
mcall 13, , , [color.bt]
|
mcall SF_DRAW_RECT, , , [color.bt]
|
||||||
|
|
||||||
mov edx, ebx
|
mov edx, ebx
|
||||||
shr ecx, 16
|
shr ecx, 16
|
||||||
@ -682,7 +681,7 @@ DRAW_SELECTION:
|
|||||||
cmp edi, 1024 * 3
|
cmp edi, 1024 * 3
|
||||||
jne @b
|
jne @b
|
||||||
|
|
||||||
mcall 7, sel_img, <32, 32>
|
mcall SF_PUT_IMAGE, sel_img, <32, 32>
|
||||||
|
|
||||||
ret
|
ret
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user