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 |
|
|
;--------------------------------------------------------------------- |
;--------------------------------------------------------------------- |