forked from KolibriOS/kolibrios
1) Rtfread - now uses OpenDialog
2) Small addition of opendial.mac git-svn-id: svn://kolibrios.org@1418 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
fd97893dd7
commit
8f306c2c3d
@ -71,6 +71,11 @@ od_openfile_pach equ dword [ebp+36] ; Getting path to file
|
|||||||
|
|
||||||
mcall 68,22,od_com_area_name,8192,0x09
|
mcall 68,22,od_com_area_name,8192,0x09
|
||||||
mov od_com_area,eax
|
mov od_com_area,eax
|
||||||
|
|
||||||
|
mov esi,od_openfile_pach
|
||||||
|
mov edi,od_opendir_pach
|
||||||
|
call .copy_dir_path
|
||||||
|
|
||||||
OpenDialog_exit
|
OpenDialog_exit
|
||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
@ -128,6 +133,9 @@ OpenDialog_exit
|
|||||||
mov edi,od_openfile_pach ;string
|
mov edi,od_openfile_pach ;string
|
||||||
call .copy
|
call .copy
|
||||||
mov od_status,1
|
mov od_status,1
|
||||||
|
mov esi,od_openfile_pach
|
||||||
|
mov edi,od_opendir_pach
|
||||||
|
call .copy_dir_path
|
||||||
jmp .3 ;kopen_1
|
jmp .3 ;kopen_1
|
||||||
.2:
|
.2:
|
||||||
mov od_status,0
|
mov od_status,0
|
||||||
@ -147,6 +155,46 @@ OpenDialog_exit
|
|||||||
jnz @b
|
jnz @b
|
||||||
ret
|
ret
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
|
.copy_dir_path:
|
||||||
|
xor eax,eax
|
||||||
|
cmp [esi],al
|
||||||
|
jne @f
|
||||||
|
mov [edi],al
|
||||||
|
mov [ebx],al
|
||||||
|
xor ebx,ebx
|
||||||
|
inc ebx
|
||||||
|
ret
|
||||||
|
@@:
|
||||||
|
cld
|
||||||
|
lodsb
|
||||||
|
stosb
|
||||||
|
test eax,eax
|
||||||
|
jnz @b
|
||||||
|
mov esi,edi
|
||||||
|
dec esi
|
||||||
|
@@:
|
||||||
|
std
|
||||||
|
lodsb
|
||||||
|
cmp al,'/'
|
||||||
|
jnz @b
|
||||||
|
|
||||||
|
; push esi
|
||||||
|
; add esi,2
|
||||||
|
;; mov edi,ebx ;file_name
|
||||||
|
;; xor ebx,ebx
|
||||||
|
;@@:
|
||||||
|
; cld
|
||||||
|
; lodsb
|
||||||
|
;; stosb
|
||||||
|
; inc ebx
|
||||||
|
; test eax,eax
|
||||||
|
; jnz @b
|
||||||
|
; pop esi
|
||||||
|
|
||||||
|
mov [esi+1], byte 0
|
||||||
|
cld
|
||||||
|
ret
|
||||||
|
;----------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
start_open_dialog:
|
start_open_dialog:
|
||||||
.subfunction dd 7
|
.subfunction dd 7
|
||||||
|
@ -53,7 +53,16 @@ syms equ 12
|
|||||||
dd 0x0 ; § १¥à¢¨à®¢ ®
|
dd 0x0 ; § १¥à¢¨à®¢ ®
|
||||||
|
|
||||||
include '..\..\..\MACROS.INC' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢!
|
include '..\..\..\MACROS.INC' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢!
|
||||||
|
include '..\..\..\develop\libraries\box_lib\load_lib.mac'
|
||||||
|
include '..\..\..\develop\libraries\box_lib\asm\trunk\opendial.mac'
|
||||||
|
|
||||||
|
;include 'MACROS.INC'
|
||||||
|
;include 'load_lib.mac'
|
||||||
|
;include 'opendial.mac'
|
||||||
|
|
||||||
include 'debug.inc'
|
include 'debug.inc'
|
||||||
|
|
||||||
|
use_OpenDialog
|
||||||
if ~ RENDER eq PIX
|
if ~ RENDER eq PIX
|
||||||
TOP=TOP+4
|
TOP=TOP+4
|
||||||
include 'bgifont.inc'
|
include 'bgifont.inc'
|
||||||
@ -68,6 +77,10 @@ file 'reader.rtf'
|
|||||||
help_end:
|
help_end:
|
||||||
|
|
||||||
START:
|
START:
|
||||||
|
mcall 68, 11
|
||||||
|
;OpenDialog initialisation
|
||||||
|
init_OpenDialog OpenDialog_data
|
||||||
|
|
||||||
mov [pitch],2
|
mov [pitch],2
|
||||||
if ~ RENDER eq PIX
|
if ~ RENDER eq PIX
|
||||||
mov edx,FONT_NAME
|
mov edx,FONT_NAME
|
||||||
@ -246,6 +259,31 @@ still:
|
|||||||
cmp ah,108 ; L - load
|
cmp ah,108 ; L - load
|
||||||
jne stilld
|
jne stilld
|
||||||
.file_open:
|
.file_open:
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;OpenDialog_start:
|
||||||
|
call get_filter_data
|
||||||
|
; copy_path open_dialog_name,path,library_path,0
|
||||||
|
|
||||||
|
start_OpenDialog OpenDialog_data
|
||||||
|
|
||||||
|
cmp [OpenDialog_data.status],2 ; OpenDialog does not start
|
||||||
|
je .sysxtree ; some kind of alternative, instead OpenDialog
|
||||||
|
cmp [OpenDialog_data.status],1
|
||||||
|
; jne still ; OpenDialog user say cancel
|
||||||
|
; copy path
|
||||||
|
; call draw_window
|
||||||
|
je prep_load
|
||||||
|
|
||||||
|
;.copy_dir_path:
|
||||||
|
; mov esi,fname_buf
|
||||||
|
; mov edi,temp_dir_pach
|
||||||
|
; call copy_dir_path
|
||||||
|
|
||||||
|
jmp still ; OpenDialog user selected the target file
|
||||||
|
; [OpenDialog_data.openfile_pach] pointer of area the target file
|
||||||
|
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
.sysxtree:
|
||||||
or [mode],RTF_OPENING
|
or [mode],RTF_OPENING
|
||||||
opendialog draw_window, prep_load, st_1, fname_buf
|
opendialog draw_window, prep_load, st_1, fname_buf
|
||||||
st_1:
|
st_1:
|
||||||
@ -253,7 +291,23 @@ still:
|
|||||||
jmp still;red
|
jmp still;red
|
||||||
stilld:
|
stilld:
|
||||||
jmp still
|
jmp still
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
get_filter_data:
|
||||||
|
mov edi,[OpenDialog_data.com_area]
|
||||||
|
test edi,edi
|
||||||
|
jnz @f
|
||||||
|
add esp,4
|
||||||
|
jmp still
|
||||||
|
@@:
|
||||||
|
add edi,4096+4
|
||||||
|
mov esi,Filter
|
||||||
|
mov ecx,[esi]
|
||||||
|
inc ecx
|
||||||
|
cld
|
||||||
|
rep movsb
|
||||||
|
mov edi,[OpenDialog_data.com_area]
|
||||||
|
mov [edi+4096],dword 1
|
||||||
|
ret
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
|
||||||
button:
|
button:
|
||||||
@ -503,7 +557,32 @@ if RENDER eq FREE
|
|||||||
db ' Zoom+ Zoom- '
|
db ' Zoom+ Zoom- '
|
||||||
end if
|
end if
|
||||||
btn_end:
|
btn_end:
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
OpenDialog_data:
|
||||||
|
.type dd 0
|
||||||
|
.procinfo dd procinfo ;+4
|
||||||
|
.com_area_name dd communication_area_name ;+8
|
||||||
|
.com_area dd 0 ;+12
|
||||||
|
.opendir_pach dd temp_dir_pach ;+16
|
||||||
|
.dir_default_pach dd communication_area_default_pach ;+20
|
||||||
|
.start_path dd open_dialog_path ;+24
|
||||||
|
.draw_window dd draw_window ;+28
|
||||||
|
.status dd 0 ;+32
|
||||||
|
.openfile_pach dd fname_buf ;+36
|
||||||
|
|
||||||
|
communication_area_name:
|
||||||
|
db 'FFFFFFFF_open_dialog',0
|
||||||
|
open_dialog_path:
|
||||||
|
db '/sys/File Managers/opendial',0
|
||||||
|
communication_area_default_pach:
|
||||||
|
db '/rd/1',0
|
||||||
|
|
||||||
|
Filter:
|
||||||
|
dd Filter.end - Filter
|
||||||
|
db 'RTF',0
|
||||||
|
.end:
|
||||||
|
db 0
|
||||||
|
;---------------------------------------------------------------------
|
||||||
attrinfo:
|
attrinfo:
|
||||||
dd 5
|
dd 5
|
||||||
dd 0
|
dd 0
|
||||||
@ -623,4 +702,8 @@ esp1:
|
|||||||
rb ESPSIZE
|
rb ESPSIZE
|
||||||
sys_mem:
|
sys_mem:
|
||||||
rb ESPSIZE
|
rb ESPSIZE
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
temp_dir_pach:
|
||||||
|
rb 4096
|
||||||
|
;---------------------------------------------------------------------
|
||||||
esp_end:
|
esp_end:
|
||||||
|
Loading…
Reference in New Issue
Block a user