/programs/system/colrdial/color_dialog.asm |
---|
69,11 → 69,14 |
dd I_END |
dd stacktop |
dd param |
dd 0x0 |
dd path |
;--------------------------------------------------------------------- |
include '../../macros.inc' |
include '../../develop/libraries/box_lib/load_lib.mac' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
;include 'lang.inc' |
;include 'debug.inc' |
;include '../../debug.inc' |
@use_library |
;--------------------------------------------------------------------- |
p_start_x = 10 |
p_start_y = 10 |
103,10 → 106,15 |
mcall 68,11 |
mcall 66,1,1 |
mcall 40,0x27 |
; mcall 40,0x7 |
call get_communication_area |
call get_active_pocess |
load_libraries l_libs_start,end_l_libs |
test eax,eax |
jnz button.exit_2 |
xor eax,eax |
mov al,p_size_x |
mov [palette_SIZE_X],eax |
117,6 → 125,7 |
mov eax,0xff0000 |
mov [tone_color],eax |
mov [selected_color],eax |
call prepare_scrollbars_position_from_color |
;-------------------------------------- |
mov ecx,[palette_SIZE_Y] |
imul ecx,[palette_SIZE_X] |
151,7 → 160,12 |
je key |
cmp eax,3 |
jne still |
je button |
cmp eax,6 |
je mouse |
jmp still |
;--------------------------------------------------------------------- |
align 4 |
button: |
195,7 → 209,7 |
shl eax,16 |
add eax,[ecx+46] |
mov [ebx+8],eax |
.exit_2: |
mcall -1 |
;--------------------------------------------------------------------- |
get_window_param: |
222,12 → 236,14 |
; mov [color_dialog_type],ebx |
mov ebx,[eax+4] |
cmp bx,word x_minimal_size ;300 |
jb @f |
; cmp bx,word x_minimal_size ;300 |
; jb @f |
mov bx,420 |
mov [window_x],ebx |
mov ebx,[eax+8] |
cmp bx,word y_minimal_size ;200 |
jb @f |
; cmp bx,word y_minimal_size ;200 |
; jb @f |
mov bx,320 |
mov [window_y],ebx |
@@: |
ret |
256,8 → 272,10 |
mov eax,[eax] |
mov [tone_color],eax |
mov [selected_color],eax |
call prepare_scrollbars_position_from_color |
call create_and_draw_tone |
call draw_selected_color |
call draw_scrollbars |
jmp still |
;--------------------------------------------------------------------- |
align 4 |
274,7 → 292,9 |
add eax,[tone_area] |
mov eax,[eax] |
mov [selected_color],eax |
call prepare_scrollbars_position_from_color |
call draw_selected_color |
call draw_scrollbars |
jmp still |
;--------------------------------------------------------------------- |
align 4 |
288,14 → 308,82 |
jmp button.exit_1 |
;--------------------------------------------------------------------- |
align 4 |
prepare_scrollbars_position_from_color: |
; in: eax = selected color |
movzx ebx,al |
mov [scroll_bar_data_blue.position],ebx |
shr eax,8 |
mov bl,al |
mov [scroll_bar_data_green.position],ebx |
shr eax,8 |
mov bl,al |
mov [scroll_bar_data_red.position],ebx |
ret |
;--------------------------------------------------------------------- |
align 4 |
prepare_color_from_scrollbars_position: |
; out: ebx = selected color |
mov eax,[scroll_bar_data_red.position] |
movzx ebx,al |
shl ebx,8 |
mov eax,[scroll_bar_data_green.position] |
mov bl,al |
shl ebx,8 |
mov eax,[scroll_bar_data_blue.position] |
mov bl,al |
ret |
;--------------------------------------------------------------------- |
align 4 |
key: |
mcall 2 |
jmp still |
;--------------------------------------------------------------------- |
align 4 |
mouse: |
cmp [scroll_bar_data_red.delta2],0 |
jne .red |
cmp [scroll_bar_data_green.delta2],0 |
jne .green |
cmp [scroll_bar_data_blue.delta2],0 |
jne .blue |
;-------------------------------------- |
align 4 |
.red: |
push dword scroll_bar_data_red |
call [scrollbar_ver_mouse] |
cmp [scroll_bar_data_red.delta2],0 |
jne @f |
;-------------------------------------- |
align 4 |
.green: |
push dword scroll_bar_data_green |
call [scrollbar_ver_mouse] |
cmp [scroll_bar_data_green.delta2],0 |
jne @f |
;-------------------------------------- |
align 4 |
.blue: |
push dword scroll_bar_data_blue |
call [scrollbar_ver_mouse] |
; cmp [scroll_bar_data_blue.delta2],0 |
; jne @f |
;-------------------------------------- |
align 4 |
@@: |
call prepare_color_from_scrollbars_position |
cmp [selected_color],ebx |
je still |
mov [selected_color],ebx |
call draw_selected_color |
jmp still |
;--------------------------------------------------------------------- |
align 4 |
draw_selected_color: |
mcall 13,<c_start_x,c_size_x>,<c_start_y,c_size_y>,[selected_color] |
mcall 8,<c_start_x,c_size_x>,<c_start_y,c_size_y>,0x60000004 |
mcall 13,<c_start_x+c_size_x+10,c_size_x>,<c_start_y,c_size_y>,0xffffff |
mov ecx,[selected_color] |
and ecx,0xffffff |
mcall 47,0x00060100,,<c_start_x+c_size_x+13,c_start_y+(c_size_y-6)/2>,0 |
ret |
;--------------------------------------------------------------------- |
align 4 |
309,16 → 397,34 |
mcall 65,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>,<t_start_x,t_start_y>,24 |
ret |
;--------------------------------------------------------------------- |
draw_scrollbars: |
push dword scroll_bar_data_red |
call [scrollbar_ver_draw] |
push dword scroll_bar_data_green |
call [scrollbar_ver_draw] |
push dword scroll_bar_data_blue |
call [scrollbar_ver_draw] |
ret |
;--------------------------------------------------------------------- |
align 4 |
draw_window: |
mcall 12,1 |
; mcall 0, <w_start_x,w_size_x>, <w_start_y,w_size_y>, 0x33AABBCC,,title |
mcall 0,[window_x],[window_y], 0x33AABBCC,,title |
xor esi,esi |
mcall 0,[window_x],[window_y], 0x34AABBCC,,title |
mcall 8,<p_start_x,[palette_SIZE_X]>,<p_start_y,[palette_SIZE_Y]>,0x60000002 |
mcall ,<t_start_x,[tone_SIZE_X]>,<t_start_y,[tone_SIZE_Y]>,0x60000003 |
mcall ,<c_start_x,c_size_x>,<c_start_y,c_size_y>,0x60000004 |
xor ebp,ebp |
mcall 65,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>,<p_start_x,p_start_y>,24 |
call draw_tone |
call draw_selected_color |
xor eax,eax |
inc eax |
mov [scroll_bar_data_red.all_redraw],eax |
mov [scroll_bar_data_green.all_redraw],eax |
mov [scroll_bar_data_blue.all_redraw],eax |
call draw_scrollbars |
mcall 12,2 |
ret |
;--------------------------------------------------------------------- |
/programs/system/colrdial/i_data.inc |
---|
9,4 → 9,210 |
window_y: |
.y_size dw 320 |
.y_start dw 10 |
;--------------------------------------------------------------------- |
;plugins_directory db 'plugins/',0 |
plugins_directory db 0 |
system_dir_Boxlib db '/sys/lib/box_lib.obj',0 |
ihead_f_i: |
ihead_f_l db 'System error',0 |
er_message_found_lib db 'box_lib.obj - Not found!',0 |
er_message_import db 'box_lib.obj - Wrong import!',0 |
align 4 |
l_libs_start: |
library01 l_libs system_dir_Boxlib+9,path,file_name,system_dir_Boxlib,\ |
er_message_found_lib,ihead_f_l,Box_lib_import,er_message_import,ihead_f_i,plugins_directory |
end_l_libs: |
;--------------------------------------------------------------------- |
;--------------------------------------------------------------------- |
align 4 |
Box_lib_import: |
;init_lib dd a_init |
;version_lib dd a_version |
;edit_box_draw dd aEdit_box_draw |
;edit_box_key dd aEdit_box_key |
;edit_box_mouse dd aEdit_box_mouse |
;version_ed dd aVersion_ed |
;check_box_draw dd aCheck_box_draw |
;check_box_mouse dd aCheck_box_mouse |
;version_ch dd aVersion_ch |
;option_box_draw dd aOption_box_draw |
;option_box_mouse dd aOption_box_mouse |
;version_op dd aVersion_op |
scrollbar_ver_draw dd aScrollbar_ver_draw |
scrollbar_ver_mouse dd aScrollbar_ver_mouse |
;scrollbar_hor_draw dd aScrollbar_hor_draw |
;scrollbar_hor_mouse dd aScrollbar_hor_mouse |
;version_scrollbar dd aVersion_scrollbar |
;dinamic_button_draw dd aDbutton_draw |
;dinamic_button_mouse dd aDbutton_mouse |
;version_dbutton dd aVersion_dbutton |
;menu_bar_draw dd aMenu_bar_draw |
;menu_bar_mouse dd aMenu_bar_mouse |
;menu_bar_activate dd aMenu_bar_activate |
;version_menu_bar dd aVersion_menu_bar |
;FileBrowser_draw dd aFileBrowser_draw |
;FileBrowser_mouse dd aFileBrowser_mouse |
;FileBrowser_key dd aFileBrowser_key |
;Version_FileBrowser dd aVersion_FileBrowser |
;PathShow_prepare dd sz_PathShow_prepare |
;PathShow_draw dd sz_PathShow_draw |
;Version_path_show dd szVersion_path_show |
dd 0 |
dd 0 |
;a_init db 'lib_init',0 |
;a_version db 'version',0 |
;aEdit_box_draw db 'edit_box',0 |
;aEdit_box_key db 'edit_box_key',0 |
;aEdit_box_mouse db 'edit_box_mouse',0 |
;aVersion_ed db 'version_ed',0 |
;aCheck_box_draw db 'check_box_draw',0 |
;aCheck_box_mouse db 'check_box_mouse',0 |
;aVersion_ch db 'version_ch',0 |
;aOption_box_draw db 'option_box_draw',0 |
;aOption_box_mouse db 'option_box_mouse',0 |
;aVersion_op db 'version_op',0 |
aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
;aScrollbar_hor_draw db 'scrollbar_h_draw',0 |
;aScrollbar_hor_mouse db 'scrollbar_h_mouse',0 |
;aVersion_scrollbar db 'version_scrollbar',0 |
;aDbutton_draw db 'dbutton_draw',0 |
;aDbutton_mouse db 'dbutton_mouse',0 |
;aVersion_dbutton db 'version_dbutton',0 |
;aMenu_bar_draw db 'menu_bar_draw',0 |
;aMenu_bar_mouse db 'menu_bar_mouse',0 |
;aMenu_bar_activate db 'menu_bar_activate',0 |
;aVersion_menu_bar db 'version_menu_bar',0 |
;aFileBrowser_draw db 'FileBrowser_draw',0 |
;aFileBrowser_mouse db 'FileBrowser_mouse',0 |
;aFileBrowser_key db 'FileBrowser_key',0 |
;aVersion_FileBrowser db 'version_FileBrowser',0 |
;sz_PathShow_prepare db 'PathShow_prepare',0 |
;sz_PathShow_draw db 'PathShow_draw',0 |
;szVersion_path_show db 'version_PathShow',0 |
;--------------------------------------------------------------------- |
align 4 |
scroll_bar_data_red: |
.x: |
.size_x dw 15 ;+0 |
.start_x dw t_start_x + p_size_y + 20 |
.y: |
.size_y dw p_size_y + p_start_y - (c_start_y + c_size_y + 10) |
.start_y dw c_start_y + c_size_y + 10 |
.btn_high dd 15 ;+8 |
.type dd 2 ;+12 |
.max_area dd 255 ;+16 |
.cur_area dd 0 ;+20 |
.position dd 128 ;+24 |
.bckg_col dd 0xFFDBDB ;+28 |
.frnt_col dd 0xFF7777 ;0xbbddff ;+32 |
.line_col dd 0 ;+36 |
.redraw dd 0 ;+40 |
.delta dw 0 ;+44 |
.delta2 dw 0 ;+46 |
.run_x: |
.r_size_x dw 0 ;+48 |
.r_start_x dw 0 ;+50 |
.run_y: |
.r_size_y dw 0 ;+52 |
.r_start_y dw 0 ;+54 |
.m_pos dd 0 ;+56 |
.m_pos_2 dd 0 ;+60 |
.m_keys dd 0 ;+64 |
.run_size dd 0 ;+68 |
.position2 dd 0 ;+72 |
.work_size dd 0 ;+76 |
.all_redraw dd 1 ;+80 |
.ar_offset dd 10 ;+84 |
;--------------------------------------------------------------------- |
align 4 |
scroll_bar_data_green: |
.x: |
.size_x dw 15 ;+0 |
.start_x dw t_start_x + p_size_y + 45 |
.y: |
.size_y dw p_size_y + p_start_y - (c_start_y + c_size_y + 10) |
.start_y dw c_start_y + c_size_y + 10 |
.btn_high dd 15 ;+8 |
.type dd 2 ;+12 |
.max_area dd 255 ;+16 |
.cur_area dd 0 ;+20 |
.position dd 128 ;+24 |
.bckg_col dd 0xDBFFDB ;+28 |
.frnt_col dd 0x77FF77 ;0xbbddff ;+32 |
.line_col dd 0 ;+36 |
.redraw dd 0 ;+40 |
.delta dw 0 ;+44 |
.delta2 dw 0 ;+46 |
.run_x: |
.r_size_x dw 0 ;+48 |
.r_start_x dw 0 ;+50 |
.run_y: |
.r_size_y dw 0 ;+52 |
.r_start_y dw 0 ;+54 |
.m_pos dd 0 ;+56 |
.m_pos_2 dd 0 ;+60 |
.m_keys dd 0 ;+64 |
.run_size dd 0 ;+68 |
.position2 dd 0 ;+72 |
.work_size dd 0 ;+76 |
.all_redraw dd 1 ;+80 |
.ar_offset dd 10 ;+84 |
;--------------------------------------------------------------------- |
align 4 |
scroll_bar_data_blue: |
.x: |
.size_x dw 15 ;+0 |
.start_x dw t_start_x + p_size_y + 70 |
.y: |
.size_y dw p_size_y + p_start_y - (c_start_y + c_size_y + 10) |
.start_y dw c_start_y + c_size_y + 10 |
.btn_high dd 15 ;+8 |
.type dd 2 ;+12 |
.max_area dd 255 ;+16 |
.cur_area dd 0 ;+20 |
.position dd 128 ;+24 |
.bckg_col dd 0xDBDBFF ;+28 |
.frnt_col dd 0x7777FF ;0xbbddff ;+32 |
.line_col dd 0 ;+36 |
.redraw dd 0 ;+40 |
.delta dw 0 ;+44 |
.delta2 dw 0 ;+46 |
.run_x: |
.r_size_x dw 0 ;+48 |
.r_start_x dw 0 ;+50 |
.run_y: |
.r_size_y dw 0 ;+52 |
.r_start_y dw 0 ;+54 |
.m_pos dd 0 ;+56 |
.m_pos_2 dd 0 ;+60 |
.m_keys dd 0 ;+64 |
.run_size dd 0 ;+68 |
.position2 dd 0 ;+72 |
.work_size dd 0 ;+76 |
.all_redraw dd 1 ;+80 |
.ar_offset dd 10 ;+84 |
;--------------------------------------------------------------------- |
/programs/system/colrdial/u_data.inc |
---|
44,6 → 44,14 |
rb 256 |
;--------------------------------------------------------------------- |
align 4 |
path: |
rb 4096 |
;--------------------------------------------------------------------- |
align 4 |
file_name: |
rb 4096 |
;--------------------------------------------------------------------- |
align 4 |
rb 4096 |
stacktop: |
;--------------------------------------------------------------------- |