Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1999 → Rev 2000

/programs/media/zsea/backgrnd.inc
0,0 → 1,43
;---------------------------------------------------------------------
; ÓÑÒÀÍÎÂÈÒÜ ÔÎÍ
background:
cmp [soi],0
je .end
cmp [bgrmode],dword 2
jbe @f
jmp .end
@@:
mov ecx,[img_width] ; øèðèíà
test ecx,ecx
jz .end
mov edx,[img_high] ; âûñîòà 
test edx,edx
jz .end
mcall 15,1 ; set size
 
mov esi,ecx
imul esi,edx
lea esi,[esi*3]
mov ecx,[soi]
 
xor edx,edx
 
cmp [img_resolution],24
je @f
push dword image_file
call [convert_Conv_24b]
mov ecx,[raw_pointer_2]
mcall 15,5 ;15,5 set data
mov ecx,[raw_pointer_2]
mcall 68,13
jmp .set_mode
@@:
mcall 15,5 ; 15,5 set data
.set_mode:
mov ecx,[bgrmode]
mcall 15,4 ; 15,4 set mode
dec ebx ; 15,3 redraw background
mcall
.end:
ret
;---------------------------------------------------------------------
/programs/media/zsea/clr_bcgr.inc
1,6 → 1,6
;---------------------------------------------------------------------
clear_thread:
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [clear_thread_stack],eax
mcall 51, 1, clear_thread_start ;, clear_thread_stack
ret
/programs/media/zsea/data.inc
38,7 → 38,7
db 0
;---------------------------------------------------------------------
Authors_text:
.1: db 'zSea version: 1.00 RC3 Date: 14/06/2011',0
.1: db 'zSea version: 1.00 RC3 Date: 07/07/2011',0
.2: db 'Authors:',0
.3: db 'Marat Zakiyanov aka Mario(Mario79)',0
.4: db 'zSea program, modules: cnv_bmp.obj,',0
860,6 → 860,8
; option_boxes_bcgr:
op1 option_box option_group1,60,40,6,12,0xFFFFFF,0,0xffffff,op_text.1,op_text.e1-op_text.1
op2 option_box option_group1,60,55,6,12,0xFFFFFF,0,0xffffff,op_text.2,op_text.e2-op_text.2
op3 option_box option_group1,60,70,6,12,0xFFFFFF,0,0xffffff,op_text.3,op_text.e3-op_text.3
op4 option_box option_group1,60,85,6,12,0xFFFFFF,0,0xffffff,op_text.4,op_text.e4-op_text.4
option_boxes_bcgr_end:
 
op_text:
867,10 → 869,14
.e1:
.2 db 'Stretch'
.e2:
.3 db 'Stretch + V crop'
.e3:
.4 db 'Stretch + H crop'
.e4:
 
option_group1 dd op1
 
option_boxes_bcgr: dd op1, op2,0
option_boxes_bcgr: dd op1,op2,op3,op4,0
;---------------------------------------------------------------------
align 4
;option_boxes_sort:
/programs/media/zsea/w_about.inc
4,9 → 4,9
jnz still
or dword [status],4
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_3],eax
mcall 51,1,thread3 ;,thread_stack_3
mcall 51,1,thread3 ;thread_stack_3
jmp still
;---------------------------------------------------------------------
thread3: ; start of bgrd thread
14,115 → 14,74
mov eax,[ebx+30]
mov [PID3],eax
mcall 40, 0x7
;------------------------------
.red:
call .draw_window
 
;------------------------------
.still:
 
mov eax,10 ; wait here for event
mcall
 
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
 
cmp eax,2 ; key in buffer ?
je .close ;.key
 
cmp eax,3 ; button in buffer ?
je .button
 
jmp .still
 
;---------------------------------------------------------------------
; .key:
; mcall
; cmp ah,27
; je .close
; jmp .still
 
 
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
 
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
je .close
cmp ah,2
jne .still ;noclose3
.close:
; btr dword [status],3
; bts dword [status],2
xor dword [status],4
xor eax,eax
mov [PID3],eax
mcall 68,13,[thread_stack_3]
mov eax,-1 ; close this program
mcall
; .noclose:
; jmp still3
 
 
 
 
mcall -1 ; close this program
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
 
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
 
; DRAW WINDOW
mcall 12,1
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+240 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
 
mov ebx,120*65536+40
mov ecx,210*65536+20
mov edx,2
mov esi,0xdddddd
mcall 8
pusha
mcall 4,<20,30>,0x80000000,Authors_text.1
xor esi,esi
mcall ,<100,300>,<100,240>,0x13eeeeee,,labelt3
mcall 8,<120,40>,<210,20>,2,0xdddddd
add ebx,15 shl 16
shr ecx,16
mov bx,cx
add ebx,6
xor ecx,ecx
mcall 4,,,ok_btn,ok_btn.size
mcall ,<20,30>,0x80000000,Authors_text.1
mcall ,<30,45>, ,Authors_text.2
 
mcall ,<30,60>, ,Authors_text.3
mcall ,<60,70>, ,Authors_text.4
mcall ,<60,80>, ,Authors_text.5
mcall ,<60,90>, ,Authors_text.6
mcall ,<60,100>, ,Authors_text.7
 
mcall ,<30,115>, ,Authors_text.8
mcall ,<60,125>, ,Authors_text.9
mcall ,<60,135>, ,Authors_text.10
 
mcall ,<30,150>, ,Authors_text.11
mcall ,<60,160>, ,Authors_text.12
 
mcall ,<30,175>, ,Authors_text.13
mcall ,<60,185>, ,Authors_text.14
popa
add ebx,15 shl 16
shr ecx,16
mov bx,cx
add ebx,6
mov ecx,0
mov edx, ok_btn
mov esi, ok_btn.size ;2
mcall 4
; WINDOW LABEL
mcall 71,1, labelt3
; mcall 47,0x80000,[PID3],<200, 5>,0xffffff
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
 
mcall 12,2
ret
;---------------------------------------------------------------------
;---------------------------------------------------------------------
/programs/media/zsea/w_error.inc
1,15 → 1,19
;---------------------------------------------------------------------
error_window:
test dword [status],32
jnz still
or dword [status],32
mcall 9, procinfo, -1
mov eax,[ebx+46]
test eax,eax
jnz @f
mov eax,100
mov [error_window_y+2],ax
mov [error_window_x+2],ax
jmp .end
;---------------------------------------------------------------------
@@:
shr eax,1
add eax,[ebx+38]
21,9 → 25,9
sub eax,150
mov [error_window_x+2],ax
.end:
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_6],eax
mcall 51,1,thread6 ;,thread_stack_6
mcall 51,1,thread6 ; thread_stack_6
ret
;---------------------------------------------------------------------
thread6:
32,27 → 36,35
mov [PID6],eax
mcall 40, 0x7
mov [error_pointer],string
;--------------------------------------
.red:
call .draw_error_window
;--------------------------------------
.still:
mcall 10
cmp eax,1
je .red
 
cmp eax,2 ; key in buffer ?
je .key
 
cmp eax,3
je .button
 
jmp .still
;---------------------------------------------------------------------
.key: ; key
.button:
xor dword [status],32
xor eax,eax
mov [PID6],eax
 
mcall 68,13,[thread_stack_6]
mcall -1
jmp .still
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_error_window:
mcall 12, 1
mcall 0,[error_window_x] ,[error_window_y], 0x03ff0000
60,18 → 72,24
mcall 4,<10,30>,0x80ffffff,[error_pointer]
cmp [return_code],0
je .continue
 
cmp [return_code],1
jne @f
 
mcall 4,<10,50>,0x90ffffff,error_not_supported_file
jmp .end
;---------------------------------------------------------------------
@@:
cmp [return_code],2
jne @f
mcall 4,<10,50>,0x90ffffff,error_not_enough_memory
jmp .end
;---------------------------------------------------------------------
@@:
mcall 4,<10,50>,0x90ffffff,error_unknown
jmp .end
;---------------------------------------------------------------------
.continue:
mcall 4,<10,50>,0x90ffffff,error_type
mcall 47,0x800a0000,[error_fs],<140,50>,0x10ffffff
78,8 → 96,10
mov edx,[error_fs]
cmp edx,0
jb .end
cmp edx,11
ja .end
shl edx,2
add edx,error_fs_text_pointers
mov edx,[edx]
/programs/media/zsea/win_bcgr.inc
4,7 → 4,7
jnz still
or dword [status],8
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_4],eax
mcall 51,1,thread4 ;, thread_stack_4
jmp still
16,22 → 16,24
mcall 40, 0x27
.red:
call .draw_window
 
.still:
 
mov eax,10 ; wait here for event
mcall
 
cmp eax,1 ; redraw request ?
je .red
 
cmp eax,2 ; key in buffer ?
je .key
 
cmp eax,3 ; button in buffer ?
je .button
 
cmp eax,6 ; mouse in buffer ?
je .mouse
 
jmp .still
 
;---------------------------------------------------------------------
.mouse:
push dword option_boxes_bcgr
call [option_box_mouse]
40,27 → 42,33
jne @f
mov [bgrmode],dword 1
jmp .still
;---------------------------------------------------------------------
@@:
mov [bgrmode],dword 2
jmp .still
 
;---------------------------------------------------------------------
.key:
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,178 ;up
jne .nofup
cmp dword [bgrmode],1
je .fdn
.fup:
dec dword [bgrmode]
jmp .flagcont
;---------------------------------------------------------------------
.nofup:
cmp ah,177 ;down
jne .still
cmp dword [bgrmode],2
cmp dword [bgrmode],4
je .fup
.fdn:
inc dword [bgrmode]
67,15 → 75,32
.flagcont:
cmp [bgrmode],dword 1
jne @f
mov [option_group1],op1
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 2
jne @f
mov [option_group1],op2
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 3
jne @f
 
 
mov [option_group1],op3
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
mov [option_group1],op4
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
94,47 → 119,23
.kok:
call background
jmp .close
 
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
mcall 12,1
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+100 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
 
mov eax,8
mov ebx,70*65536+40
mov ecx,70*65536+20
mov edx,4
mov esi,0xdddddd
mcall
 
; WINDOW LABEL
mcall 71,1, labelt4
 
mov eax,4 ; function 4 : write text to window
mov ebx,46*65536+28 ; [x start] *65536 + [y start]
mov ecx,0xffffff
mov edx, bgrdtext
mov esi, bgrdtext.size
mcall
add ebx,40*65536+48
mov edx, ok_btn
mov esi, ok_btn.size ;2
mov ecx,0
mcall
 
xor eax,eax
xor esi,esi
mcall ,<100,200>,<100,200>,0x13909090,,labelt4
mcall 8,<70,40>,<110,20>,4,0xdddddd
mcall 4,<46,28>,0xffffff,bgrdtext,bgrdtext.size
add ebx,40*65536+88
xor ecx,ecx
mcall ,,,ok_btn,ok_btn.size
call .draw_opt_boxes
; mcall 47,0x80000,[PID4],<200, 5>,0xffffff
mcall 12,2
 
ret
;---------------------------------------------------------------------
.draw_opt_boxes:
/programs/media/zsea/win_file.inc
5,14 → 5,12
or dword [status],1
 
call load_directory.copy_dir_path
 
; call get_filter_data
cmp [OpenDialog_path],dword 'NoKe'
je @f
mov [OpenDialog_data.start_path],dword OpenDialog_path
jmp .start_OpenDialog
;---------------------------------------------------------------------
@@:
mov ebx,open_dialog_name
mov esi,path
20,81 → 18,43
call copy_file_path
.start_OpenDialog:
;start_OpenDialog OpenDialog_data
push dword OpenDialog_data
call [OpenDialog_Start]
 
call clear_control_key_flag
 
cmp [OpenDialog_data.status],2
je thread1_start
cmp [OpenDialog_data.status],1
jne @f
xor dword [status],1
jmp kopen_1
;---------------------------------------------------------------------
@@:
xor dword [status],1
jmp still
;---------------------------------------------------------------------
thread1_start:
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack],eax
mcall 51,1,thread1 ;, thread_stack
mcall 51,1,thread1 ; thread_stack
jmp still
;---------------------------------------------------------------------
get_filter_data:
mov edi,Filter+4
xor eax,eax
mov ecx,10
cld
@@:
mov esi,10
sub esi,ecx
lea esi,[esi+esi*2] ; x 3
shl esi,3 ; x 8
add esi,dword Convert_plugin_0.Assoc
mov esi,[esi]
add esi,4
 
test esi,esi
jz @f
call .start
dec ecx
jnz @r
@@:
mov [edi],byte 0
mov eax,Filter
sub edi,eax
mov [eax],edi
 
ret
.start:
@@:
lodsb
stosb
test eax,eax
jnz @r
cmp [esi],ah
jne @r
ret
;---------------------------------------------------------------------
thread1: ; start of thread1
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID1],eax
mcall 40, 0x27
 
or ecx,-1 ; get information about me
call getappinfo
 
mov esi,string
;-------------------------------------
cld
@@:
cld
lodsb
test al,al
jne @r
;-------------------------------------
sub esi,string
mov eax,esi
dec eax
101,95 → 61,65
mov edi, edit1
mov [edi+48], eax ;ed_size
mov [edi+52], eax ;ed_pos
;-------------------------------------
.red:
call .draw_window
 
;-------------------------------------
.still:
 
mcall 10 ; wait here for event
 
cmp eax,1 ; redraw request ?
je .red
 
cmp eax,2 ; key in buffer ?
je .key
 
cmp eax,3 ; button in buffer ?
je .button
 
push dword name_editboxes
call [edit_box_mouse]
; mouse_edit_box name_editboxes
; mouse_menubar menu_data_2
jmp .still
 
;---------------------------------------------------------------------
.key: ; key
mcall 2
mcall
cmp ah,13
je .close_with_open_file
 
cmp ah,27
je .close
push dword name_editboxes
call [edit_box_key]
; key_edit_box name_editboxes
jmp .still
 
;---------------------------------------------------------------------
.close_with_open_file:
mov [open_file_flag],byte 1
jmp .close
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
 
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .still
.close:
; bts dword [status],2
; btr dword [status],0
xor dword [status],1
xor eax,eax
mov [PID1],eax
mcall 68,13,[thread_stack]
mov eax,-1 ; close this program
mcall
 
mcall -1 ; close this program
jmp .still
 
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
 
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
 
; DRAW WINDOW
mcall 12,1
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+80 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
 
; WINDOW LABEL
mcall 71,1, labelt1
 
xor esi,esi
mcall ,<100,300>,<100,80>,0x13eeeeee,,labelt1
push dword name_editboxes
call [edit_box_draw]
; draw_edit_box name_editboxes
; mcall 47,0x80000,[PID1],<200, 5>,0xffffff
; mcall 71,1, proverka
; mcall 47,0x80001,0,<300, 5>,0xffffff
; draw_menu_bar menu_data_2
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
 
mcall 12,2
ret
 
;---------------------------------------------------------------------
;---------------------------------------------------------------------
/programs/media/zsea/win_info.inc
4,7 → 4,7
jnz still
or dword [status],2
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_2],eax
mcall 51,1,thread2 ;, thread_stack_2
jmp still
15,70 → 15,42
mov [PID2],eax
mcall 40, 0x7
call load_directory.copy_dir_path
;---------------------------------------------------------------------
.red:
call .draw_window
 
;---------------------------------------------------------------------
.still:
 
mov eax,10 ; wait here for event
mcall
 
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
 
cmp eax,2 ; key in buffer ?
je .close
 
cmp eax,3 ; button in buffer ?
je .button
 
jmp .still
 
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
 
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .still ;.noclose
.close:
; btr dword [status],1
; bts dword [status],2
xor dword [status],2
xor eax,eax
mov [PID2],eax
mcall 68,13,[thread_stack_2]
mov eax,-1 ; close this program
mcall
;.noclose:
; jmp .still
 
 
 
 
mcall -1 ; close this program
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
 
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
 
; DRAW WINDOW
mcall 12,2
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+330 ; [x start] *65536 + [x size]
mov ecx,100*65536+120 ;290 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
 
; WINDOW LABEL
mcall 71,1, labelt2
 
; mov ecx,0x80000000 ; font 1 & color ( 0xF0RRGGBB )
; mov ebx,120*65536+30
; mov edx,file_name ;string
; mov esi,1 ;43
xor esi,esi
mcall ,<100,330>,<100,120>,0x13eeeeee,,labelt2
mcall 4,<120,30>,0x80000000,file_name
mov edx,fitext
mov esi,14
90,180 → 62,23
add edx,esi
cmp ebx,10*65536+80
jbe @r
mov eax,47
mov edx,120*65536+40
mov esi,ecx
mov ecx, [img_size]
mov ebx,0x800a0000
mcall
mcall 47,0x800a0000,[img_size],<120,40>
add edx,10
mov ecx,[img_width_2]
mcall
mcall ,,[img_width_2]
add edx,10
mov ecx,[img_high_2]
mcall
mcall ,,[img_high_2]
add edx,10
mov ecx,[img_resolution_2]
mcall
mcall ,,[img_resolution_2]
add edx,10
mov ecx,[Total_Repeat_N]
mcall
 
; add edx,10
; mov ecx,[communication_area]
; mov ecx,[ecx+4096]
; mcall
 
; add edx,10
; mov ecx,[communication_area]
; mov ecx,[ecx+4096+4]
; mcall
; add edx,10+10
; mov ecx,[zoom_auto_factor]
; mcall
 
; add edx,10+10
; mov ecx,[scroll_bar_data_vertical.max_area] ;[img_resolution]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_vertical.cur_area] ;[return_code]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_vertical.position]
; mcall
; add edx,10
; xor ecx,ecx
; mov cx,[scroll_bar_data_vertical.size_y]
; mcall
 
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_Init]
 
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_Start]
 
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_data.com_area]
 
; add edx,10+10
; mcall 47,0x80000,I_END
 
; add edx,10+10
; mov ecx,[scroll_bar_data_horizontal.max_area] ;[img_resolution]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_horizontal.cur_area] ;[return_code]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_horizontal.position]
; mcall
; add edx,10
; xor ecx,ecx
; mov cx,[scroll_bar_data_horizontal.size_x]
; mcall
 
; add edx,10
; mov ecx,[raw_pointer] ;[deflate_unpack]
; mcall
 
; add edx,10+10
; mov ebp,test1 ;raw_pointer_2
; mov ecx,[ebp]
; mcall
; add edx,10+10
; mov ebp,size_before_open_dir ;lib_init ;test1 ;raw_pointer_2
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[version_lib_ini]
;; mov ecx,[ecx]
; mcall
 
; add edx,10
; movzx ecx,word [image_draw_size.x]
; mcall
; add edx,10
; movzx ecx,word [image_draw_size.y]
; mcall
; add edx,10+10
; movzx ecx,word [wa_width]
; mcall
; add edx,10
; movzx ecx,word [wa_high]
; mcall
; add edx,10
; movzx ecx,word [wa_width_1]
; mcall
; add edx,10
; movzx ecx,word [wa_width_2]
; mcall
; add edx,10
; movzx ecx,word [wa_high_1]
; mcall
; add edx,10
; movzx ecx,word [wa_high_2]
; mcall
 
; add edx,10+10
; mov ecx,[window_width]
; mcall
; add edx,10
; mov ecx,[window_high]
; mcall
; add edx,10
; xor ecx,ecx
; mov cl,[Disposal_Method]
; mcall
; add edx,10
; mov ecx,[soi]
; mcall
mcall ,,[Total_Repeat_N]
; mcall 47,0x80000,[PID2],<200, 5>,0xffffff
; mcall 47,0x800a0000,[error_locate],<140,5>,0x10ffffff
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
 
mcall 12,2
ret
;---------------------------------------------------------------------
;--------------------------------------------------------------------
/programs/media/zsea/win_opti.inc
4,12 → 4,12
jnz still
or dword [status],64
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_7],eax
mcall 51,1,thread7 ;,thread_stack_7
mcall 51,1,thread7 ; thread_stack_7
jmp still
;---------------------------------------------------------------------
get_memory_for_tread_stack:
get_memory_for_thread_stack:
mcall 68,12,4096
mov edx,eax
add edx,4096
31,24 → 31,27
xor eax,eax
mov [option_pointer],eax
call .set_pointers
;-----------------------------------------
.red:
call .draw_window
 
;-----------------------------------------
.still:
mcall 10 ; wait here for event
 
mov eax,10 ; wait here for event
mcall
 
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
je .button
cmp eax,6 ; mouse in buffer ?
je .mouse
jmp .still
 
;---------------------------------------------------------------------
.mouse:
mov ebx,[check1+32]
and ebx,10b
58,10 → 61,12
and eax,10b
cmp ebx,eax
je @f ;.still
mov [option_pointer],2
call .set_pointers
call .draw_all_options_values
jmp .still
;---------------------------------------------------------------------
@@:
mov ebx,[check2+32]
and ebx,10b
71,6 → 76,7
and eax,10b
cmp ebx,eax
je .still
mov [option_pointer],3
call .set_pointers
call .draw_all_options_values
80,26 → 86,37
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,32
je .select_space
cmp ah,56 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,43 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,61 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,54 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,45 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,95 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,178 ;up arrow
je .up_arrow
cmp ah,177 ;down arrow
je .down_arrow
jmp .still
;---------------------------------------------------------------------
.button: ; button
120,6 → 137,7
 
cmp ah,1 ; button id=1 ?
jne .noclose
;-----------------------------------
.close:
mov eax,[slide_show_delay_old]
mov [slide_show_delay],eax
130,12 → 148,15
mov eax,[filtering_flag_old]
mov [check2+32],eax
jmp .close_all
;---------------------------------------------------------------------
.close_1:
mov eax,[check2+32]
test eax,10b
jz @f
mov [filtering_flag],1
jmp .redraw_flag
;---------------------------------------------------------------------
@@:
mov [filtering_flag],0
.redraw_flag:
144,15 → 165,11
xor dword [status],64
xor eax,eax
mov [PID7],eax
 
mcall 68,13,[thread_stack_7]
 
mov eax,-1 ; close this program
mcall
mcall -1 ; close this program
;---------------------------------------------------------------------
.noclose:
 
.kok:
 
jmp .close_1
;---------------------------------------------------------------------
.select_plus:
167,11 → 184,13
.plus_slide_show_delay:
cmp [option_pointer],0
je @f
mov [option_pointer],0
call .draw_all_options_values
@@:
cmp [slide_show_delay],99990
je .still
add [slide_show_delay],10
call .draw_slide_show_delay
jmp .still
179,11 → 198,13
.minus_slide_show_delay:
cmp [option_pointer],0
je @f
mov [option_pointer],0
call .draw_all_options_values
@@:
cmp [slide_show_delay],0
je .still
sub [slide_show_delay],10
call .draw_slide_show_delay
jmp .still
191,11 → 212,13
.plus_arrows_offset:
cmp [option_pointer],1
je @f
mov [option_pointer],1
call .draw_all_options_values
@@:
cmp [arrows_offset],100
je .still
inc [arrows_offset]
call .draw_arrows_offset
call calculate_arrows_offset
204,11 → 227,13
.minus_arrows_offset:
cmp [option_pointer],1
je @f
mov [option_pointer],1
call .draw_all_options_values
@@:
cmp [arrows_offset],1
je .still
dec [arrows_offset]
call .draw_arrows_offset
call calculate_arrows_offset
217,8 → 242,10
.space_check1:
test [check1+32],dword 10b
jnz @f
or [check1+32],dword 10b
jmp .space_check1_1
;---------------------------------------------------------------------
@@:
xor [check1+32],dword 10b
.space_check1_1:
228,8 → 255,10
.space_check2:
test [check2+32],dword 10b
jnz @f
or [check2+32],dword 10b
jmp .space_check2_1
;---------------------------------------------------------------------
@@:
xor [check2+32],dword 10b
.space_check2_1:
239,6 → 268,7
.down_arrow:
cmp [option_pointer],3
je .still
inc [option_pointer]
.draw_all_points:
call .set_pointers
248,6 → 278,7
.up_arrow:
cmp [option_pointer],0
je .still
dec [option_pointer]
jmp .draw_all_points
;---------------------------------------------------------------------
254,6 → 285,7
.set_pointers:
cmp [option_pointer],0
jne @f
mov [plus_pointer],thread7.plus_slide_show_delay
mov [minus_pointer],thread7.minus_slide_show_delay
mov [space_pointer],thread7.still
261,6 → 293,7
@@:
cmp [option_pointer],1
jne @f
mov [plus_pointer],thread7.plus_arrows_offset
mov [minus_pointer],thread7.minus_arrows_offset
mov [space_pointer],thread7.still
268,6 → 301,7
@@:
cmp [option_pointer],2
jne @f
mov [plus_pointer],thread7.still
mov [minus_pointer],thread7.still
mov [space_pointer],thread7.space_check1
288,17 → 322,11
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
mcall 12,1
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+120 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
 
xor esi,esi
mcall ,<100,300>,<100,120>,0x13909090,,optiontext
mcall 8,<15,10>,<50,11>,2,0xdddddd
inc edx
mcall ,<77,10>
311,43 → 339,21
inc edx
mcall ,<250,40>,<50,20>
;---------------------------------
 
; mcall 13,<50,45>,<25,12>,0xffffff
; mov ecx,[ch_flag_en]
; mcall 47,0x800a0000,,<72,27>,0x10000000; 0x40000000,0xffffff
; WINDOW LABEL
mcall 71,1, optiontext
; mov eax,4 ; function 4 : write text to window
; mov ebx,46*65536+28 ; [x start] *65536 + [y start]
; mov ecx,0xffffff
; mov edx, sorttext
; mov esi, sorttext.size
; mcall
; mov ebx,135*65536+57
; mov edx, ok_btn
; mov esi, ok_btn.size ;2
mcall 4,<10,35>,0x80ffffff,slide_show_delay_title
mcall ,<17,53>,0x90000000,slide_show_delay_text
mcall ,<10,75>,0x80ffffff,arrows_offset_title
mcall ,<17,93>,0x90000000,slide_show_delay_text
mcall ,<265,57>, ,ok_btn
call .draw_all_options_values
 
; mcall 47,0x80000,[PID5],<200, 5>,0xffffff
mcall 12,2
 
ret
;---------------------------------------------------------------------
;.draw_opt_boxes:
; draw_option_boxes option_boxes_sort,option_boxes_sort_end
; ret
;---------------------------------------------------------------------
.draw_slide_show_delay:
mov edx,0xffffff
cmp [option_pointer],0
jne @f
mov edx,0xffff80
@@:
mcall 13,<29,45>,<50,12>,
358,6 → 364,7
mov edx,0xffffff
cmp [option_pointer],1
jne @f
mov edx,0xffff80
@@:
mcall 13,<29,45>,<90,12>,
368,6 → 375,7
mov [check1+12],dword 0xffffff
cmp [option_pointer],2
jne @f
mov [check1+12],dword 0xffff80
@@:
push dword check1
378,6 → 386,7
mov [check2+12],dword 0xffffff
cmp [option_pointer],3
jne @f
mov [check2+12],dword 0xffff80
@@:
push dword check2
/programs/media/zsea/win_sort.inc
4,9 → 4,9
jnz still
or dword [status],16
 
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_5],eax
mcall 51, 1, thread5 ;, thread_stack_5
mcall 51,1,thread5 ; thread_stack_5
jmp still
;---------------------------------------------------------------------
thread5: ; start of bgrd thread
17,47 → 17,52
mov eax,[sort_type]
cmp [sort_type],dword 0
jne @f
mov [option_group2],sort0
jmp .thread5
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 2
jne @f
mov [option_group2],sort2
jmp .thread5
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 4
jne @f
mov [option_group2],sort4
jmp .thread5
;---------------------------------------------------------------------
@@:
; cmp [sort_type],dword 6
; jne @f
mov [option_group2],sort6
; jmp .thread5
;@@:
;-----------------------------------
.thread5:
mov [sort_type_old],eax
mov eax,[option_group2]
mov [option_group2_old],eax
;-----------------------------------
.red:
call .draw_window
 
;-----------------------------------
.still:
mcall 10 ; wait here for event
 
mov eax,10 ; wait here for event
mcall
 
cmp eax,1 ; redraw request ?
je .red
 
cmp eax,2 ; key in buffer ?
je .key
 
cmp eax,3 ; button in buffer ?
je .button
 
cmp eax,6 ; mouse in buffer ?
je .mouse
 
jmp .still
 
;---------------------------------------------------------------------
.mouse:
push dword option_boxes_sort
call [option_box_mouse]
64,76 → 69,94
 
cmp [option_group2],sort0
jne @f
mov [sort_type],dword 0
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort2
jne @f
mov [sort_type],dword 2
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort4
jne @f
mov [sort_type],dword 4
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort6
jne @f
mov [sort_type],dword 6
jmp .still
 
;---------------------------------------------------------------------
.key:
mcall
cmp ah,27
je .close
 
cmp ah,13
je .kok
 
cmp ah,177 ;down
je .fdn
 
cmp ah,178 ;up
jne .still
 
cmp [sort_type],0
je .still
sub [sort_type],2
jmp .flagcont
 
;---------------------------------------------------------------------
.fdn:
cmp [sort_type],6
je .still
add [sort_type],2
.flagcont:
cmp [sort_type],dword 0
jne @f
mov [option_group2],sort0
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 2
jne @f
mov [option_group2],sort2
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 4
jne @f
mov [option_group2],sort4
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 6
jne .still ;@f
mov [option_group2],sort6
call .draw_opt_boxes
jmp .still
 
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
 
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .noclose
;-------------------------------
.close:
mov eax,[sort_type_old]
mov [sort_type],eax
143,64 → 166,39
xor dword [status],16
xor eax,eax
mov [PID5],eax
 
mcall 68,13,[thread_stack_5]
mov eax,-1 ; close this program
mcall
mcall -1 ; close this program
;---------------------------------------------------------------------
.noclose:
.kok:
mov eax,[load_directory_pointer]
cmp [eax+4],dword 0
je .close_1
call load_directory.copy_dir_path
call load_directory.sort
mov [sort_directory_flag],byte 1
jmp .close_1
 
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; ******** WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
.draw_window:
mcall 12,1
 
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+110 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
 
mov eax,8
mov ebx,120*65536+40
mov ecx,50*65536+20
mov edx,4
mov esi,0xdddddd
mcall
 
; WINDOW LABEL
mcall 71,1, labelt5
mov eax,4 ; function 4 : write text to window
mov ebx,46*65536+28 ; [x start] *65536 + [y start]
mov ecx,0xffffff
mov edx, sorttext
mov esi, sorttext.size
mcall
mov ebx,135*65536+57
mov edx, ok_btn
mov esi, ok_btn.size ;2
mov ecx,0
mcall
 
xor esi,esi
mcall ,<100,300>,<100,110>,0x13909090,,labelt5
mcall 8,<120,40>,<50,20>,4,0xdddddd
mcall 4,<46,28>,0xffffff,sorttext,sorttext.size
xor ecx,ecx
mcall ,<135,57>,,ok_btn,ok_btn.size
call .draw_opt_boxes
; mcall 47,0x80000,[PID5],<200, 5>,0xffffff
mcall 12,2
 
ret
;---------------------------------------------------------------------
.draw_opt_boxes:
push dword option_boxes_sort
call [option_box_draw]
ret
ret
;---------------------------------------------------------------------
/programs/media/zsea/zSea.asm
25,7 → 25,7
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
; v.1.0 rñ3 14.06.2011
; v.1.0 rñ3 07.07.2011
;******************************************************************************
use32
org 0x0
303,6 → 303,42
je slide_show.3 ;still
jmp slide_show
;---------------------------------------------------------------------
get_filter_data:
mov edi,Filter+4
xor eax,eax
mov ecx,10
cld
@@:
mov esi,10
sub esi,ecx
lea esi,[esi+esi*2] ; x 3
shl esi,3 ; x 8
add esi,dword Convert_plugin_0.Assoc
mov esi,[esi]
add esi,4
 
test esi,esi
jz @f
call .start
dec ecx
jnz @r
@@:
mov [edi],byte 0
mov eax,Filter
sub edi,eax
mov [eax],edi
 
ret
.start:
@@:
lodsb
stosb
test eax,eax
jnz @r
cmp [esi],ah
jne @r
ret
;---------------------------------------------------------------------
kopen_1:
 
mov [open_file_flag],0
351,51 → 387,6
mcall
ret
;---------------------------------------------------------------------
; ÓÑÒÀÍÎÂÈÒÜ ÔÎÍ
background:
cmp [soi],0
je .end
mov ecx,[img_width] ; øèðèíà
test ecx,ecx
jz .end
mov edx,[img_high] ; âûñîòà 
test edx,edx
jz .end
mcall 15,1 ; set size
 
mov esi,ecx
imul esi,edx
lea esi,[esi*3]
; mov ebx,5
mov ecx,[soi]
 
xor edx,edx
 
cmp [img_resolution],24
je @f
; mov eax,image_file
push dword image_file
; call [plugin_convert_background]
call [convert_Conv_24b]
mov ecx,[raw_pointer_2]
mcall 15,5 ;15,5 set data
mov ecx,[raw_pointer_2]
mcall 68,13
jmp .set_mode
@@:
 
mcall 15,5 ; 15,5 set data
.set_mode:
; dec ebx ;tile/stretch
mov ecx,[bgrmode]
mcall 15,4 ; 15,4 set mode
 
dec ebx ; 15,3 redraw background
mcall
 
.end:
ret
;---------------------------------------------------------------------
get_window_param:
mcall 9, procinfo, -1
mov eax,[ebx+34]
422,6 → 413,7
; popa
; ret
;---------------------------------------------------------------------
include 'backgrnd.inc'
include 'draw_win.inc'
include 'full_win.inc'
include 'mouse.inc'