forked from KolibriOS/kolibrios
Docky v.0.5.3 - color selection!!!!
git-svn-id: svn://kolibrios.org@4198 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
03daac695f
commit
2671910c07
@ -4,7 +4,7 @@ location=1
|
|||||||
[Eolite]
|
[Eolite]
|
||||||
path=file managers/eolite
|
path=file managers/eolite
|
||||||
param=
|
param=
|
||||||
icon=1
|
icon=2
|
||||||
|
|
||||||
[KFAR]
|
[KFAR]
|
||||||
path=file managers/kfar
|
path=file managers/kfar
|
||||||
@ -65,4 +65,11 @@ icon=11
|
|||||||
[PCI DE]
|
[PCI DE]
|
||||||
path=pcidev
|
path=pcidev
|
||||||
param=
|
param=
|
||||||
icon=28
|
icon=28
|
||||||
|
|
||||||
|
$=1
|
||||||
|
|
||||||
|
[Settings]
|
||||||
|
path=dockycfg
|
||||||
|
param=
|
||||||
|
icon=10
|
@ -1,13 +1,3 @@
|
|||||||
set_img:
|
|
||||||
db 0, 0, 1, 0, 0, 0
|
|
||||||
db 0, 0, 0, 1, 0, 0
|
|
||||||
db 1, 0, 0, 1, 0, 0
|
|
||||||
db 0, 1, 1, 1, 0, 0
|
|
||||||
db 0, 0, 0, 0, 1, 0
|
|
||||||
db 0, 0, 0, 0, 0, 1
|
|
||||||
;-------------------------------------------------------------------------------
|
|
||||||
cfg_app:
|
|
||||||
db "dockycfg", 0
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
img_data:
|
img_data:
|
||||||
.file_name:
|
.file_name:
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
rb 1024
|
rb 1024
|
||||||
__stackend:
|
__stackend:
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
|
sel_img:
|
||||||
|
rb 32 * 32 * 3
|
||||||
|
;-------------------------------------------------------------------------------
|
||||||
error:
|
error:
|
||||||
rb 0
|
rb 0
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
@ -13,6 +16,7 @@ color:
|
|||||||
rd 1
|
rd 1
|
||||||
.bg:
|
.bg:
|
||||||
rd 1
|
rd 1
|
||||||
|
.bt:
|
||||||
rd 1
|
rd 1
|
||||||
rd 1
|
rd 1
|
||||||
.text:
|
.text:
|
||||||
@ -57,6 +61,8 @@ win:
|
|||||||
rb 1
|
rb 1
|
||||||
.button_index:
|
.button_index:
|
||||||
rd 1
|
rd 1
|
||||||
|
.prev_index:
|
||||||
|
rd 1
|
||||||
|
|
||||||
.isvert:
|
.isvert:
|
||||||
rb 1
|
rb 1
|
||||||
|
@ -35,10 +35,12 @@
|
|||||||
|
|
||||||
.bottom:
|
.bottom:
|
||||||
mov eax, [win.y_opn]
|
mov eax, [win.y_opn]
|
||||||
sub eax, 16
|
sub eax, 17
|
||||||
mov [nwin.y], eax
|
mov [nwin.y], eax
|
||||||
|
|
||||||
mov dword[nwin.bgx], 1
|
mov dword[nwin.bgx], 1
|
||||||
|
mov eax, [nwin.height]
|
||||||
|
|
||||||
mov eax, [nwin.height]
|
mov eax, [nwin.height]
|
||||||
mov [nwin.bgy], eax
|
mov [nwin.bgy], eax
|
||||||
|
|
||||||
@ -46,7 +48,7 @@
|
|||||||
|
|
||||||
.right:
|
.right:
|
||||||
mov eax, [win.x_opn]
|
mov eax, [win.x_opn]
|
||||||
sub eax, 67
|
sub eax, 68
|
||||||
mov [nwin.x], eax
|
mov [nwin.x], eax
|
||||||
|
|
||||||
mov eax, [nwin.width]
|
mov eax, [nwin.width]
|
||||||
|
@ -216,7 +216,6 @@ main:
|
|||||||
mov ebx, [dock_items.count]
|
mov ebx, [dock_items.count]
|
||||||
imul eax, ebx
|
imul eax, ebx
|
||||||
dec eax
|
dec eax
|
||||||
add eax, 12
|
|
||||||
mov [win.height_opn], eax
|
mov [win.height_opn], eax
|
||||||
mov [win.height_hdn], eax
|
mov [win.height_hdn], eax
|
||||||
|
|
||||||
@ -281,6 +280,10 @@ main_loop:
|
|||||||
jmp main_loop
|
jmp main_loop
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
event_redraw:
|
event_redraw:
|
||||||
|
call DRAW_WINDOW
|
||||||
|
jmp main_loop
|
||||||
|
;-------------------------------------------------------------------------------
|
||||||
|
DRAW_WINDOW:
|
||||||
mcall 12, 1
|
mcall 12, 1
|
||||||
|
|
||||||
mov esi, [color.bg]
|
mov esi, [color.bg]
|
||||||
@ -324,11 +327,11 @@ event_redraw:
|
|||||||
add ebx, 12
|
add ebx, 12
|
||||||
dec ebx
|
dec ebx
|
||||||
shl ebx, 16
|
shl ebx, 16
|
||||||
add ebx, 1
|
add ebx, 2
|
||||||
|
|
||||||
cmp byte[win.isvert], 1
|
cmp byte[win.isvert], 1
|
||||||
je .vert_draw_sep
|
je .vert_draw_sep
|
||||||
mcall , , <4, 36>, [color.frame]
|
mcall , , <4, 36>, [color.frame]
|
||||||
jmp .end_inner_sep
|
jmp .end_inner_sep
|
||||||
.vert_draw_sep:
|
.vert_draw_sep:
|
||||||
sub ebx, 12 shl 16
|
sub ebx, 12 shl 16
|
||||||
@ -364,63 +367,9 @@ event_redraw:
|
|||||||
jmp @b
|
jmp @b
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
; ==== DRAW SETTINGS ====
|
|
||||||
cmp byte[win.isvert], 1
|
|
||||||
je .cfg_vert
|
|
||||||
|
|
||||||
mov ebx, [win.width]
|
|
||||||
sub ebx, 10
|
|
||||||
shl ebx, 16
|
|
||||||
add ebx, 8
|
|
||||||
mcall 8, , <2, BUTTON_SIZE - 4>, 0x60000003
|
|
||||||
jmp @f
|
|
||||||
|
|
||||||
.cfg_vert:
|
|
||||||
mov ecx, [win.height]
|
|
||||||
sub ecx, 10
|
|
||||||
shl ecx, 16
|
|
||||||
add ecx, 8
|
|
||||||
mcall 8, <2, BUTTON_SIZE - 4>, , 0x60000003
|
|
||||||
@@:
|
|
||||||
|
|
||||||
; ==== cfg image ====
|
|
||||||
mov edi, 0
|
|
||||||
@@:
|
|
||||||
cmp byte[set_img + edi], 0
|
|
||||||
je .notdraw
|
|
||||||
|
|
||||||
mov eax, edi
|
|
||||||
mov edx, 0
|
|
||||||
mov ebx, 6
|
|
||||||
div ebx
|
|
||||||
mov ebx, edx
|
|
||||||
mov ecx, eax
|
|
||||||
|
|
||||||
add ebx, [win.width]
|
|
||||||
cmp byte[win.isvert], 0
|
|
||||||
je .cfg_hoz
|
|
||||||
sub ebx, [win.width]
|
|
||||||
add ebx, [win.height]
|
|
||||||
.cfg_hoz:
|
|
||||||
sub ebx, 10
|
|
||||||
add ecx, 18
|
|
||||||
|
|
||||||
cmp byte[win.isvert], 0
|
|
||||||
je .cfg_draw
|
|
||||||
|
|
||||||
xchg ebx, ecx
|
|
||||||
|
|
||||||
.cfg_draw:
|
|
||||||
mcall 1, , , [color.frame]
|
|
||||||
|
|
||||||
.notdraw:
|
|
||||||
inc edi
|
|
||||||
cmp edi, 36
|
|
||||||
jne @b
|
|
||||||
|
|
||||||
mcall 12, 2
|
mcall 12, 2
|
||||||
|
|
||||||
jmp main_loop
|
ret
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
event_button:
|
event_button:
|
||||||
mcall 17
|
mcall 17
|
||||||
@ -431,9 +380,6 @@ event_button:
|
|||||||
cmp ah, 2
|
cmp ah, 2
|
||||||
je .button_dock
|
je .button_dock
|
||||||
|
|
||||||
cmp ah, 3
|
|
||||||
je .button_cfg
|
|
||||||
|
|
||||||
jmp @f
|
jmp @f
|
||||||
|
|
||||||
.button_close:
|
.button_close:
|
||||||
@ -462,22 +408,11 @@ event_button:
|
|||||||
|
|
||||||
jmp wnd_hide
|
jmp wnd_hide
|
||||||
|
|
||||||
.button_cfg:
|
|
||||||
mov dword[fi.p00], 7
|
|
||||||
mov dword[fi.p21], cfg_app
|
|
||||||
mcall 70, fi
|
|
||||||
|
|
||||||
mov ecx, eax
|
|
||||||
mcall 18, 21
|
|
||||||
and eax, 0xFFFF
|
|
||||||
mov [win.psid], eax
|
|
||||||
|
|
||||||
jmp wnd_hide
|
|
||||||
|
|
||||||
@@:
|
@@:
|
||||||
jmp main_loop
|
jmp main_loop
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
event_mouse:
|
event_mouse:
|
||||||
|
; ==== IS MOUSE INNER ====
|
||||||
mcall 37, 1
|
mcall 37, 1
|
||||||
mov edi, eax
|
mov edi, eax
|
||||||
mov esi, eax
|
mov esi, eax
|
||||||
@ -495,6 +430,8 @@ event_mouse:
|
|||||||
cmp esi, [win.height]
|
cmp esi, [win.height]
|
||||||
jg wnd_hide
|
jg wnd_hide
|
||||||
|
|
||||||
|
; ==== COUNT INDEX ====
|
||||||
|
|
||||||
mov eax, [dock_items.location]
|
mov eax, [dock_items.location]
|
||||||
and eax, 1b
|
and eax, 1b
|
||||||
cmp eax, 1
|
cmp eax, 1
|
||||||
@ -523,8 +460,14 @@ event_mouse:
|
|||||||
cmp [win.button_index], eax
|
cmp [win.button_index], eax
|
||||||
je .nxt2
|
je .nxt2
|
||||||
|
|
||||||
|
push dword[win.button_index]
|
||||||
|
pop dword[win.prev_index]
|
||||||
|
|
||||||
mov [win.button_index], eax
|
mov [win.button_index], eax
|
||||||
|
|
||||||
|
; ==== DRAW SELECTION ====
|
||||||
|
call DRAW_SELECTION
|
||||||
|
|
||||||
.nxt2:
|
.nxt2:
|
||||||
mov eax, [win.button_index]
|
mov eax, [win.button_index]
|
||||||
imul eax, BUTTON_SIZE
|
imul eax, BUTTON_SIZE
|
||||||
@ -543,6 +486,7 @@ event_mouse:
|
|||||||
mcall 13, <[win.width], 1>, <0, [win.height]>, [color.frame]
|
mcall 13, <[win.width], 1>, <0, [win.height]>, [color.frame]
|
||||||
.vert_end:
|
.vert_end:
|
||||||
|
|
||||||
|
; ==== OPEN/CLOSE WINDOW ====
|
||||||
cmp byte[win.state], 1
|
cmp byte[win.state], 1
|
||||||
je main_loop
|
je main_loop
|
||||||
|
|
||||||
@ -573,7 +517,9 @@ event_mouse:
|
|||||||
|
|
||||||
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
||||||
|
|
||||||
jmp event_redraw
|
call DRAW_WINDOW
|
||||||
|
call DRAW_SELECTION
|
||||||
|
jmp main_loop
|
||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
wnd_hide:
|
wnd_hide:
|
||||||
@ -601,7 +547,99 @@ wnd_hide:
|
|||||||
|
|
||||||
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
mcall 67, [win.x], [win.y], [win.width], [win.height]
|
||||||
|
|
||||||
jmp event_redraw
|
call DRAW_WINDOW
|
||||||
|
jmp main_loop
|
||||||
|
;-------------------------------------------------------------------------------
|
||||||
|
DRAW_SELECTION:
|
||||||
|
mov ebx, [win.prev_index]
|
||||||
|
imul ebx, BUTTON_SIZE
|
||||||
|
add ebx, 14
|
||||||
|
shl ebx, 16
|
||||||
|
add ebx, 40
|
||||||
|
mov ecx, 0x00020028
|
||||||
|
|
||||||
|
cmp byte[win.isvert], 1
|
||||||
|
jne @f
|
||||||
|
xchg ebx, ecx
|
||||||
|
sub ecx, 0x000C0000
|
||||||
|
@@:
|
||||||
|
|
||||||
|
mcall 13, , , [color.bg]
|
||||||
|
|
||||||
|
mov edx, ebx
|
||||||
|
shr ecx, 16
|
||||||
|
mov dx, cx
|
||||||
|
add edx, 0x00040004
|
||||||
|
|
||||||
|
mov ebx, [win.prev_index]
|
||||||
|
imul ebx, 4
|
||||||
|
add ebx, dock_items.icon
|
||||||
|
mov ebx, [ebx]
|
||||||
|
imul ebx, ICON_SIZE_BGR
|
||||||
|
add ebx, [img_data.rgb_object]
|
||||||
|
|
||||||
|
mcall 7, , <32, 32>
|
||||||
|
|
||||||
|
mov ebx, [win.button_index]
|
||||||
|
imul ebx, BUTTON_SIZE
|
||||||
|
add ebx, 14
|
||||||
|
shl ebx, 16
|
||||||
|
add ebx, 40
|
||||||
|
mov ecx, 0x00020028
|
||||||
|
|
||||||
|
cmp byte[win.isvert], 1
|
||||||
|
jne @f
|
||||||
|
xchg ebx, ecx
|
||||||
|
sub ecx, 0x000C0000
|
||||||
|
@@:
|
||||||
|
|
||||||
|
mcall 13, , , [color.bt]
|
||||||
|
|
||||||
|
mov edx, ebx
|
||||||
|
shr ecx, 16
|
||||||
|
mov dx, cx
|
||||||
|
add edx, 0x00040004
|
||||||
|
|
||||||
|
mov ecx, [win.button_index]
|
||||||
|
imul ecx, 4
|
||||||
|
add ecx, dock_items.icon
|
||||||
|
mov ecx, [ecx]
|
||||||
|
imul ecx, ICON_SIZE_BGR
|
||||||
|
add ecx, [img_data.rgb_object]
|
||||||
|
|
||||||
|
mov ebx, sel_img
|
||||||
|
|
||||||
|
mov edi, 0
|
||||||
|
@@:
|
||||||
|
mov al, byte[ecx + 2]
|
||||||
|
shl eax, 8
|
||||||
|
mov al, byte[ecx + 1]
|
||||||
|
shl eax, 8
|
||||||
|
mov al, byte[ecx + 0]
|
||||||
|
|
||||||
|
or eax, 0x10000000
|
||||||
|
cmp eax, [color.bg]
|
||||||
|
jne .notbg
|
||||||
|
mov eax, [color.bt]
|
||||||
|
.notbg:
|
||||||
|
|
||||||
|
mov byte[ebx + 0], al
|
||||||
|
shr eax, 8
|
||||||
|
mov byte[ebx + 1], al
|
||||||
|
shr eax, 8
|
||||||
|
mov byte[ebx + 2], al
|
||||||
|
|
||||||
|
add ebx, 3
|
||||||
|
add ecx, 3
|
||||||
|
|
||||||
|
add edi, 3
|
||||||
|
|
||||||
|
cmp edi, 1024 * 3
|
||||||
|
jne @b
|
||||||
|
|
||||||
|
mcall 7, sel_img, <32, 32>
|
||||||
|
|
||||||
|
ret
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
proc sections_callback, _file_name, _section_name
|
proc sections_callback, _file_name, _section_name
|
||||||
mov eax, [_section_name]
|
mov eax, [_section_name]
|
||||||
|
Loading…
Reference in New Issue
Block a user