;------------------------------------------------------------- create_new_file: call clear_file_buffer mov edi, edit1 mov ed_size, dword 0 mov ed_pos, dword 0 default_box mov [create_dir_name],byte 0 mcall 66, 1, 0 jmp .red .red_1: call draw_window .red: call draw_create_file .still: mcall 10 cmp eax,1 je .red_1 cmp eax,2 je .key_create cmp eax,3 je .button_create mouse_edit_box create_editboxes jmp .still ;------------------------------------------------------------- .button_create: mov eax,17 mcall test ah,ah jz .still cmp ah,160 je .exit_with_create cmp ah,161 je .exit_without_create cmp ah,1 jne .still mcall -1 .exit_with_create: call create_new_file_1 cmp [select_panel_counter],0 jne @f call proc_read_left_folder jmp .exit_without_create @@: call proc_read_right_folder .exit_without_create: mcall 66, 1, 1 jmp red ;------------------------------------------------------------- .key_create: mov eax,2 mcall cmp ah,13 je .exit_with_create cmp ah,27 je .exit_without_create key_edit_box create_editboxes jmp .still ;------------------------------------------------------------- draw_create_file: mov ecx,[window_high] mov ebx,[window_width] shr ecx,1 shr ebx,1 sub ecx,30 sub ebx,87 shl ecx,16 shl ebx,16 mov cx,60 mov bx,174 mcall 13, , ,0x6060ff ;0xff pusha shr ebx,16 add ebx,10 shr ecx,16 add ecx,17 mov eax,create_editboxes mov dword [eax+4],ebx mov dword [eax+8],ecx draw_edit_box create_editboxes popa pusha add ebx,70 shl 16 add ecx,37 shl 16 mov cx,15 mov bx,40 mov esi,0xffffff mov edx,0x40000000+160 mov eax,8 mcall add ebx,50 shl 16 inc edx mcall popa push ebx ecx add ebx,70 shl 16 add ecx,37 shl 16 mov bx,40 mov cx,15 mov edx,0 push ebx ecx sub ecx,1 shl 16 sub ebx,1 shl 16 mov bx,42 mov cx,17 mcall add ebx,50 shl 16 mcall pop ecx ebx mov edx,0xff7700 mcall mov edx,0xaa00 add ebx,50 shl 16 mcall pop ecx ebx shr ecx,16 mov bx,cx add ebx,30 shl 16+1 mcall 4, ,0x90ffffff,create_file ;[confirmation_type] add ebx,48 shl 16+36 mov edx,type_yes mcall add ebx,56 shl 16 mov edx,type_no mcall ret ;------------------------------------------------------------- create_new_file_1: mov edx,create_dir_name cmp [select_panel_counter],0 jne @f mov esi,read_folder_name jmp .start @@: mov esi,read_folder_1_name .start: mov edi,start_parameter xor eax,eax @@: cld lodsb stosb test eax,eax jnz @b mov [edi-1], byte '/' mov esi,edx mov [error_pointer], edx ;start_file_data.name @@: cld lodsb stosb test eax,eax jnz @b call write_file cmp eax,0 je @f ; mov ebx,0 ; sub ebx,eax ; mov eax,ebx call start_error_window_thread @@: ; call create_directory_f70 ret ;------------------------------------------------------------- ;clear_file_buffer: ; xor eax,eax ; mov edi,create_dir_name ; mov ecx,256/4 ; cld ; rep stosd ; ret ;-------------------------------------------------------------