diff --git a/programs/other/planet_v/planet_v.asm b/programs/other/planet_v/planet_v.asm
index a6613aba87..5d6554cc8d 100644
--- a/programs/other/planet_v/planet_v.asm
+++ b/programs/other/planet_v/planet_v.asm
@@ -19,6 +19,8 @@ include 'dll.inc'
include '../../develop/libraries/box_lib/load_lib.mac'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
+include '../../develop/libraries/box_lib/asm/trunk/opendial.mac'
+use_OpenDialog
min_window_w equ 485 ;минимальная ширина окна
min_window_h equ 325 ;минимальная высота окна
@@ -109,19 +111,16 @@ start:
stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1
; init bmp file
- push dword RGB_TILE_SIZE+300 ;300 - запасные байты с учетом заголовка bmp файла
- call mem.Alloc
+ stdcall mem.Alloc, dword RGB_TILE_SIZE+300 ;300 - запасные байты с учетом заголовка bmp файла
mov [bmp_icon],eax
stdcall array_tile_function, tile_00,max_tiles_count,tile_init
stdcall tiles_init_grid, tile_00,max_tiles_count,max_tiles_cols
- push dword TREE_ICON_SYS16_BMP_SIZE
- call mem.Alloc
+ stdcall mem.Alloc, dword TREE_ICON_SYS16_BMP_SIZE
mov [tree_sys_icon],eax
- push dword TREE_ICON_NOD16_BMP_SIZE
- call mem.Alloc
+ stdcall mem.Alloc, dword TREE_ICON_NOD16_BMP_SIZE
mov [tree_nod_icon],eax
copy_path fn_icon1,sys_path,file_name,0x0
@@ -173,10 +172,15 @@ start:
mov byte[file_name],0
+ ; OpenDialog initialisation
+ init_OpenDialog OpenDialog_data
+
+align 4
red_win:
- call draw_win
+ call draw_window
call but_MetLoad
+align 4
still:
mov eax,10
mcall
@@ -201,6 +205,7 @@ still:
jmp still
+align 4
key:
push eax ebx
mcall 2
@@ -212,13 +217,13 @@ key:
push dword tree2
call [tl_key]
- mov ebx,dword[el_focus] ;ўЄю-с√ ърЁЄр эх фтшурырё№ хёыш юъэр treelist т Їюъєёх
+ mov ebx,dword[el_focus] ;что-бы карта не двигалась если окна treelist в фокусе
cmp ebx, dword tree1
je .end_f
cmp ebx, dword tree2
je .end_f
- ;ўЄю-с√ ърЁЄр эх фтшурырё№ хёыш ЄхъёЄют√х яюы т Їюъєёх
+ ;что-бы карта не двигалась если текстовые поля в фокусе
test word[edit1.flags],10b ;ed_focus
jne .end_f
test word[edit2.flags],10b ;ed_focus
@@ -266,7 +271,7 @@ key:
align 4
-draw_win:
+draw_window:
pushad
mcall 12,1
@@ -301,8 +306,7 @@ pushad
stdcall dword[tl_draw],dword tree1
stdcall dword[tl_draw],dword tree2
mov dword[wScrMetki.all_redraw],1
- push dword wScrMetki
- call [scrollbar_ver_draw]
+ stdcall [scrollbar_ver_draw], dword wScrMetki
mov eax,8 ;кнопка
mov ebx,145*65536+20
@@ -316,6 +320,11 @@ pushad
mov edx,5
int 0x40
+ mov ebx,170*65536+40 ;кнопка вызова диалога OpenDial
+ ;mov ecx,5*65536+25
+ mov edx,13
+ int 0x40
+
mov bx,di
shl ebx,16
mov bx,100
@@ -351,7 +360,7 @@ pushad
shl ebx,16
mov bx,30
;mov ebx,405*65536+30
- mov ecx,265*65536+25
+ ;mov ecx,265*65536+25
mov edx,11
int 0x40
@@ -360,7 +369,7 @@ pushad
shl ebx,16
mov bx,30
;mov ebx,370*65536+30
- mov ecx,265*65536+25
+ ;mov ecx,265*65536+25
mov edx,10
int 0x40
@@ -446,11 +455,8 @@ pushad
call draw_tiles
- push dword ch2
- call [check_box_draw]
- push dword ch1
- call [check_box_draw]
-
+ stdcall [check_box_draw], dword ch1
+ stdcall [check_box_draw], dword ch2
stdcall [edit_box_draw], edit1
stdcall [edit_box_draw], edit2
@@ -522,6 +528,10 @@ button:
jne @f
call fun_goto_met
@@:
+ cmp ah,13 ;диалог OpenDialog для поиска папки
+ jne @f
+ call fun_opn_dlg
+ @@:
cmp ah,1
jne still
@@ -531,10 +541,10 @@ button:
stdcall array_tile_function, tile_00,max_tiles_count,tile_destroy
stdcall dword[tl_data_clear], tree1
- mov dword[tree2.data_img_sys],0 ;ўшёЄшь єърчрЄхы№ эр ёшёЄхьэ√х шъюэъш,
- ;Є. ъ. юэш с√ыш єфрыхэ√ тхЁїэхщ ЇєэъЎшхщ tl_data_clear
- ;яютЄюЁэ√щ т√чют tl_data_clear схч ўшёЄъш єърчрЄхы т√чтхЄ ю°шсъє
- mov dword[tree2.data_img],0 ;ўшёЄшь єърчрЄхы№ эр шъюэъш єчыют
+ mov dword[tree2.data_img_sys],0 ;чистим указатель на системные иконки,
+ ;т. к. они были удалены верхней функцией tl_data_clear
+ ;повторный вызов tl_data_clear без чистки указателя вызвет ошибку
+ mov dword[tree2.data_img],0 ;чистим указатель на иконки узлов
stdcall dword[tl_data_clear], tree2
; stdcall dword[img_destroy], dword[data_icon]
@@ -550,7 +560,7 @@ proc img_rgb_wdiv2 data_rgb:dword, size:dword
mov eax,dword[data_rgb]
mov ecx,dword[size] ;ecx = size
imul ecx,3
- @@: ;чрЄхьэхэшх ЎтхЄр яшъёхыхщ
+ @@: ;затемнение цвета пикселей
shr byte[eax],1
and byte[eax],0x7f
inc eax
@@ -559,8 +569,8 @@ proc img_rgb_wdiv2 data_rgb:dword, size:dword
mov eax,dword[data_rgb]
mov ecx,dword[size] ;ecx = size
shr ecx,1
- @@: ;ёыюцхэшх ЎтхЄют яшъёхыхщ
- mov ebx,dword[eax+3] ;ъюяшЁєхь ЎтхЄ ёюёхфэхую яшъёхы
+ @@: ;сложение цветов пикселей
+ mov ebx,dword[eax+3] ;копируем цвет соседнего пикселя
add word[eax],bx
shr ebx,16
add byte[eax+2],bl
@@ -574,8 +584,8 @@ proc img_rgb_wdiv2 data_rgb:dword, size:dword
add ebx,3
mov ecx,dword[size] ;ecx = size
shr ecx,1
- dec ecx ;ыш°эшщ яшъёхы№
- @@: ;яюфцрЄшх яшъёхыхщ
+ dec ecx ;лишний пиксель
+ @@: ;поджатие пикселей
mov edx,dword[ebx]
mov word[eax],dx
shr edx,16
@@ -600,7 +610,7 @@ proc img_rgb_hdiv2, data_rgb:dword, size:dword, size_w:dword
mov eax,dword[data_rgb] ;eax =
mov ecx,dword[size] ;ecx = size
imul ecx,3
- @@: ;чрЄхьэхэшх ЎтхЄр яшъёхыхщ
+ @@: ;затемнение цвета пикселей
shr byte[eax],1
and byte[eax],0x7f
inc eax
@@ -614,8 +624,8 @@ proc img_rgb_hdiv2, data_rgb:dword, size:dword, size_w:dword
mov ecx,dword[size] ;ecx = size
shr ecx,1
xor edi,edi
- @@: ;ёыюцхэшх ЎтхЄют яшъёхыхщ
- mov edx,dword[ebx] ;ъюяшЁєхь ЎтхЄ эшцэхую яшъёхы
+ @@: ;сложение цветов пикселей
+ mov edx,dword[ebx] ;копируем цвет нижнего пикселя
add word[eax],dx
shr edx,16
add byte[eax+2],dl
@@ -636,12 +646,12 @@ proc img_rgb_hdiv2, data_rgb:dword, size:dword, size_w:dword
add eax,esi ;esi = width*3(rgb)
mov ebx,esi
add ebx,eax
- mov ecx,dword[size] ;ecx = size
+ mov ecx,dword[size] ;ecx = size
shr ecx,1
- sub ecx,dword[size_w] ;ыш°э ёЄЁюър яшъёхыхщ
+ sub ecx,dword[size_w] ;лишняя строка пикселей
xor edi,edi
- @@: ;яюфцрЄшх яшъёхыхщ
- mov edx,dword[ebx] ;ъюяшЁєхь ЎтхЄ эшцэхую яшъёхы
+ @@: ;поджатие пикселей
+ mov edx,dword[ebx] ;копируем цвет нижнего пикселя
mov word[eax],dx
shr edx,16
mov byte[eax+2],dl
@@ -835,6 +845,24 @@ proc mem_clear, mem:dword, len:dword
ret
endp
+align 4
+fun_opn_dlg: ;функция для вызова OpenFile диалога
+ pushad
+ copy_path open_dialog_name,sys_path,file_name,0
+ mov [OpenDialog_data.type],2
+ mov dword[plugin_path],0 ;что-бы при открытии диалогового окна путь всегда брался из OpenDialog_data.dir_default_path
+ start_OpenDialog OpenDialog_data
+ cmp [OpenDialog_data.status],2
+ je @f
+ mov esi,[OpenDialog_data.openfile_path]
+ stdcall [str_len],dword[edit1.text],dword[edit1.max]
+ mov [edit1.size],eax
+ mov [edit1.pos],eax
+ stdcall [edit_box_draw], edit1
+ @@:
+ popad
+ ret
+
txt_met_up db 24,0
txt_met_dn db 25,0
txt_met_sh db '*',0
@@ -855,7 +883,7 @@ checkboxes_end:
ch_text1 db 'брать сверху'
ch_text2 db 'брать снизу'
-edit1 edit_box 190, 215, 10, 0xd0ffff, 0xff, 0x80ff, 0, 0xa000, 500, ed_buffer.1, mouse_dd, 0
+edit1 edit_box 190, 215, 10, 0xd0ffff, 0xff, 0x80ff, 0, 0xa000, 4090, openfile_path, mouse_dd, 0
edit2 edit_box 100, 370, 240, 0xd0ffff, 0xff, 0x80ff, 0, 0xa000, 30, ed_buffer.2, mouse_dd, 0
editboxes_end:
@@ -901,7 +929,6 @@ wScrMetki:
.ar_offset dd 1 ;+84
ed_buffer: ;ЄхъёЄ фы edit
- .1: rb 502
.2: rb 32
el_focus dd tree1
@@ -917,20 +944,50 @@ run_file_70 FileInfoBlock
txt_tile_path db 'tile path',0
rb 300
-txt_tile_type dd txt_tile_type_0 ;єърчрЄхы№ эр т√сЁрээ√щ Єшя Їрщыют
+txt_tile_type dd txt_tile_type_0 ;указатель на выбранный тип файлов
txt_tile_type_0 db 0
rb 10
+;---------------------------------------------------------------------
align 4
-map: ;ъююЁфшэрЄ√ ърЁЄ√
- .coord_x dd 0 ;ъююЁфшэрЄр x
- .coord_y dd 0 ;ъююЁфшэрЄр y
- .zoom db 1 ;ьрё°Єрс
+OpenDialog_data:
+.type dd 2
+.procinfo dd procinfo ;+4
+.com_area_name dd communication_area_name ;+8
+.com_area dd 0 ;+12
+.opendir_path dd plugin_path ;+16
+.dir_default_path dd openfile_path ;+20
+.start_path dd file_name ;+24 путь к диалогу открытия файлов
+.draw_window dd draw_window ;+28
+.status dd 0 ;+32
+.openfile_path dd openfile_path ;+36 путь к открываемому файлу
+.filename_area dd filename_area ;+40
+.filter_area dd Filter
+
+communication_area_name:
+ db 'FFFFFFFF_open_dialog',0
+open_dialog_name:
+ db 'opendial',0
+communication_area_default_path:
+ db '/rd/1',0
+
+Filter:
+dd Filter.end - Filter.1
+.1:
+db 'TXT',0
+.end:
+db 0
+
+align 4
+map: ;координаты карты
+ .coord_x dd 0 ;координата x
+ .coord_y dd 0 ;координата y
+ .zoom db 1 ;масштаб
align 4
tile_00 rb size_tile_struc * max_tiles_count
-;¤ЄюЄ ъюф эх ьющ, юэ яЁхюсЁрчєхЄ ўшёыю т ёЄЁюъє
+;этот код не мой, он преобразует число в строку
;input:
; eax = value
; edi = string buffer
@@ -946,32 +1003,39 @@ tl_convert_to_str:
align 4
.str:
- mov ecx,0x0a ;чрфрхЄё ёшёЄхьр ёўшёыхэш шчьхэ ■Єё ЁхушёЄЁ√ ebx,eax,ecx,edx тїюфэ√х ярЁрьхЄЁ√ eax - ўшёыю
- ;яЁхЁхтюф ўшёыр т ASCII ёЄЁюъє тчюфэ√х фрээ√х ecx=ёшёЄхьр ёўшёыхэ edi рфЁхё ъєфр чряшё√трЄ№, сєфхь ёЄЁюъє, яЁшўхь ъюэхЎ яхЁхьхээющ
- cmp eax,ecx ;ёЁртэшЄ№ хёыш т eax ьхэ№°х ўхь т ecx Єю яхЁхщЄш эр @@-1 Є.х. эр pop eax
+ mov ecx,0x0a ;задается система счисления изменяются регистры ebx,eax,ecx,edx входные параметры eax - число
+ ;преревод числа в ASCII строку взодные данные ecx=система счисленя edi адрес куда записывать, будем строку, причем конец переменной
+ cmp eax,ecx ;сравнить если в eax меньше чем в ecx то перейти на @@-1 т.е. на pop eax
jb @f
- xor edx,edx ;юўшёЄшЄ№ edx
- div ecx ;ЁрчфхышЄ№ - юёЄрЄюъ т edx
- push edx ;яюыюцшЄ№ т ёЄхъ
- ;dec edi ;ёьх∙хэшх эхюсїюфшьюх фы чряшёш ё ъюэЎр ёЄЁюъш
- call .str;яхЁхщЄш эр ёрьє ёхс Є.х. т√чтрЄ№ ёрьє ёхс ш Єръ фю Єюую ьюьхэЄр яюър т eax эх ёЄрэхЄ ьхэ№°х ўхь т ecx
+ xor edx,edx ;очистить edx
+ div ecx ;разделить - остаток в edx
+ push edx ;положить в стек
+ ;dec edi ;смещение необходимое для записи с конца строки
+ call .str;перейти на саму себя т.е. вызвать саму себя и так до того момента пока в eax не станет меньше чем в ecx
pop eax
- @@: ;cmp al,10 ;яЁютхЁшЄ№ эх ьхэ№°х ыш чэрўхэшх т al ўхь 10 (фы ёшёЄхь√ ёўшёыхэ 10 фрээр ъюьрэфр - ыш°эр ))
- or al,0x30 ;фрээр ъюьрэфр ъюЁюўх ўхь фтх т√°х
- stosb ;чряшёрЄ№ ¤ыхьхэЄ шч ЁхушёЄЁр al т ўхъє ярь Єш es:edi
- ret ;тхЁэєЄ№ё ўхэ№ шэЄхЁхёэ√щ їюф Є.ъ. яюър т ёЄхъх їЁрэшЄ№ё ъюы-тю т√чютют Єю ёЄюы№ъю Ёрч ь√ ш сєфхь т√ч√трЄ№ё
+ @@: ;cmp al,10 ;проверить не меньше ли значение в al чем 10 (для системы счисленя 10 данная команда - лишная))
+ or al,0x30 ;данная команда короче чем две выше
+ stosb ;записать элемент из регистра al в ячеку памяти es:edi
+ ret ;вернуться чень интересный ход т.к. пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться
-hed db 'Planet viewer 26.03.10',0 ;подпись окна
+hed db 'Planet viewer 27.05.10',0 ;подпись окна
sc system_colors ;системные цвета
mouse_dd dd 0 ;нужно для Shift-а в editbox
- sys_path rb 4096
- file_name:
- rb 4096
i_end:
- procinfo process_information
- rb 1024
+ rb 1024
+ align 16
+ procinfo process_information
stacktop:
+ sys_path rb 4096
+ file_name:
+ rb 4096
+ plugin_path:
+ rb 4096
+ openfile_path:
+ rb 4096
+ filename_area:
+ rb 256
mem:
diff --git a/programs/other/t_edit/readme.htm b/programs/other/t_edit/readme.htm
index 05aa5decf6..c5607e48e5 100644
--- a/programs/other/t_edit/readme.htm
+++ b/programs/other/t_edit/readme.htm
@@ -48,7 +48,7 @@ table
-TextEditor тхЁёш юЄ 29.04.2010
+TextEditor тхЁёш юЄ 27.05.2010
╬ яЁюуЁрььх
╧ЁюуЁрььр фы ЁрсюЄ√ ё ЄхъёЄют√ьш Їрщырьш.
╦шЎхэчш ётюсюфэр .
@@ -77,7 +77,7 @@ table
╠эюуюъЁрЄэр юЄьхэр/яютЄюЁ фхщёЄтшщ |
эхЄ | хёЄ№ |
╬уЁрэшўхэш эр ЁрчьхЁ Їрщыют |
- эхЄ | хёЄ№ |
+ эхЄ | хёЄ№ яЁш юЄъЁ√Єшш Їрщыют, яЁш ЁхфръЄшЁютрэшш эхЄ |
═хъюЄюЁ√х эхфюЁрсюЄъш
@@ -147,7 +147,7 @@ ends
- ┼тЄшїют ╠ръёшь (Maxxxx32) - ¤ыхьхэЄ EditBox.
- └ыхъёхщ ╥хяыют (Lrz) - ¤ыхьхэЄ EditBox, ьръЁюё load_library.
- - Mario79 - ¤ыхьхэЄ ёъЁюыышэу.
+ - Mario79 - ¤ыхьхэЄ√: ёъЁюыышэуш, ьхэ■, OpenDial.
- Diamond - чр яЁюуЁрььє KlbrInWin, ш яюью∙№ яЁш эряшёрэшш яЁюуЁрьь√.
- Insolor - чр ЄхёЄшЁютрэшх яЁюуЁрьь√ эр ю°шсъш.
- Leency ш фЁєушь, ъЄю яюьюуры эр ЇюЁєьх ёютхЄрьш.
diff --git a/programs/other/t_edit/strlen.inc b/programs/other/t_edit/strlen.inc
index f7564b93ad..a67fa15286 100644
--- a/programs/other/t_edit/strlen.inc
+++ b/programs/other/t_edit/strlen.inc
@@ -28,8 +28,7 @@
; destroys : nothing
;********************************************************************
strlen:
- push ecx
- push edi
+ push ecx edi
pushfd
cld ; !
mov ecx,-1
@@ -40,8 +39,7 @@ strlen:
sub eax,esi
dec eax
popfd
- pop edi
- pop ecx
+ pop edi ecx
ret
@@ -51,8 +49,7 @@ strlen:
; Copyright (c) 2009 Igor Afanasiev
linlen:
- push ecx
- push edi
+ push ecx edi
pushfd
cld ; !
mov ecx,eax
@@ -64,8 +61,7 @@ linlen:
sub eax,esi
dec eax
popfd
- pop edi
- pop ecx
+ pop edi ecx
ret
;%endif
diff --git a/programs/other/t_edit/t_button.inc b/programs/other/t_edit/t_button.inc
index 6555ccc5e5..954753c5f8 100644
--- a/programs/other/t_edit/t_button.inc
+++ b/programs/other/t_edit/t_button.inc
@@ -26,7 +26,7 @@ struct symbol
ends
-hed db 'TextEditor 17.05.10',0 ;подпись окна
+hed db 'TextEditor 27.05.10',0 ;подпись окна
sc system_colors
fn_icon db 'te_icon.bmp',0
@@ -126,7 +126,8 @@ but_no_msg_OpenFile:
; функция открытия файла с возможным окном сообщения (о возможности отменить открытие)
align 4
ted_but_open_file:
- push eax ebx
+ pushad
+
stdcall [ted_can_save], tedit0
cmp al,1
jne @f
@@ -134,10 +135,24 @@ ted_but_open_file:
stdcall [mb_setfunctions],msgbox_5_funct
jmp .ret_f
@@:
+
+ copy_path open_dialog_name,sys_path,file_name,0
+ mov [OpenDialog_data.type],0
+ start_OpenDialog OpenDialog_data
+ cmp [OpenDialog_data.status],2
+ jne @f
+ stdcall [mb_create],msgbox_9,thread ;message: error run 'open file dialog'
+ jmp .ret_f
+ @@:
+ mov esi,[OpenDialog_data.openfile_path]
+ call strlen
+ mov [edit1.size],eax
+ mov [edit1.pos],eax
+ stdcall [edit_box_draw], edit1
stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]
call ted_messages_after_open_file
.ret_f:
- pop ebx eax
+ popad
ret
;input:
diff --git a/programs/other/t_edit/t_data.inc b/programs/other/t_edit/t_data.inc
index cdb8221d1b..d3cdf1e54c 100644
--- a/programs/other/t_edit/t_data.inc
+++ b/programs/other/t_edit/t_data.inc
@@ -1,4 +1,3 @@
-;--- фрээ√х яЁюуЁрьь√ ----------------------------------------------
fn_col_option dd def_col_file
fn_syntax_dir db 'info/',0
def_col_file db 'default.syn',0
@@ -11,177 +10,165 @@ msgbox_name db 'msgbox.obj',0
fn_icon_tl_sys db 'tl_sys_16.bmp',0
fn_icon_tl_nod db 'tl_nod_16.bmp',0
-;---------------------------------------------------------------------
-fileinfo:
- dd 5
- dd 0
- dd 0
- dd 0
- dd file_info
-string:
- db 0
- dd file_name
-
-;plugin dd 0
;---------------------------------------------------------------------
align 4
myimport:
-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
+ 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
+ ;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
+ ;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
+ 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
+ ;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
-;version_menu_bar dd aVersion_menu_bar
+ menu_bar_draw dd aMenu_bar_draw
+ menu_bar_mouse dd aMenu_bar_mouse
+ ;version_menu_bar dd aVersion_menu_bar
- tl_data_init dd sz_tl_data_init
- tl_data_clear dd sz_tl_data_clear
- tl_info_clear dd sz_tl_info_clear
- tl_key dd sz_tl_key
- tl_mouse dd sz_tl_mouse
- tl_draw dd sz_tl_draw
- tl_info_undo dd sz_tl_info_undo
- tl_info_redo dd sz_tl_info_redo
- tl_node_add dd sz_tl_node_add
- tl_node_set_data dd sz_tl_node_set_data
- tl_node_get_data dd sz_tl_node_get_data
- tl_node_delete dd sz_tl_node_delete
- tl_cur_beg dd sz_tl_cur_beg
- tl_cur_next dd sz_tl_cur_next
- tl_cur_perv dd sz_tl_cur_perv
- tl_node_close_open dd sz_tl_node_close_open
- tl_node_lev_inc dd sz_tl_node_lev_inc
- tl_node_lev_dec dd sz_tl_node_lev_dec
+ tl_data_init dd sz_tl_data_init
+ tl_data_clear dd sz_tl_data_clear
+ tl_info_clear dd sz_tl_info_clear
+ tl_key dd sz_tl_key
+ tl_mouse dd sz_tl_mouse
+ tl_draw dd sz_tl_draw
+ tl_info_undo dd sz_tl_info_undo
+ tl_info_redo dd sz_tl_info_redo
+ tl_node_add dd sz_tl_node_add
+ tl_node_set_data dd sz_tl_node_set_data
+ tl_node_get_data dd sz_tl_node_get_data
+ tl_node_delete dd sz_tl_node_delete
+ tl_cur_beg dd sz_tl_cur_beg
+ tl_cur_next dd sz_tl_cur_next
+ tl_cur_perv dd sz_tl_cur_perv
+ tl_node_close_open dd sz_tl_node_close_open
+ tl_node_lev_inc dd sz_tl_node_lev_inc
+ tl_node_lev_dec dd sz_tl_node_lev_dec
-ted_but_save_file dd sz_ted_but_save_file
-ted_but_sumb_upper dd sz_ted_but_sumb_upper
-ted_but_sumb_lover dd sz_ted_but_sumb_lover
-ted_can_save dd sz_ted_can_save
-ted_clear dd sz_ted_clear
-ted_delete dd sz_ted_delete
-ted_draw dd sz_ted_draw
-ted_init dd sz_ted_init
-ted_init_scroll_bars dd sz_ted_init_scroll_bars
-ted_init_syntax_file dd sz_ted_init_syntax_file
-ted_is_select dd sz_ted_is_select
-ted_key dd sz_ted_key
-ted_mouse dd sz_ted_mouse
-ted_open_file dd sz_ted_open_file
-ted_text_add dd sz_ted_text_add
-ted_but_select_word dd sz_ted_but_select_word
-ted_but_cut dd sz_ted_but_cut
-ted_but_copy dd sz_ted_but_copy
-ted_but_paste dd sz_ted_but_paste
-ted_but_undo dd sz_ted_but_undo
-ted_but_redo dd sz_ted_but_redo
-ted_but_reverse dd sz_ted_but_reverse
-ted_but_find_next dd sz_ted_but_find_next
-ted_text_colored dd sz_ted_text_colored
-;;;version_text_edit dd sz_ted_version
+ ted_but_save_file dd sz_ted_but_save_file
+ ted_but_sumb_upper dd sz_ted_but_sumb_upper
+ ted_but_sumb_lover dd sz_ted_but_sumb_lover
+ ted_can_save dd sz_ted_can_save
+ ted_clear dd sz_ted_clear
+ ted_delete dd sz_ted_delete
+ ted_draw dd sz_ted_draw
+ ted_init dd sz_ted_init
+ ted_init_scroll_bars dd sz_ted_init_scroll_bars
+ ted_init_syntax_file dd sz_ted_init_syntax_file
+ ted_is_select dd sz_ted_is_select
+ ted_key dd sz_ted_key
+ ted_mouse dd sz_ted_mouse
+ ted_open_file dd sz_ted_open_file
+ ted_text_add dd sz_ted_text_add
+ ted_but_select_word dd sz_ted_but_select_word
+ ted_but_cut dd sz_ted_but_cut
+ ted_but_copy dd sz_ted_but_copy
+ ted_but_paste dd sz_ted_but_paste
+ ted_but_undo dd sz_ted_but_undo
+ ted_but_redo dd sz_ted_but_redo
+ ted_but_reverse dd sz_ted_but_reverse
+ ted_but_find_next dd sz_ted_but_find_next
+ ted_text_colored dd sz_ted_text_colored
+ ;version_text_edit dd sz_ted_version
dd 0,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
+ 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
+ ;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
+ ;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
+ 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
+ ;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
-;aVersion_menu_bar db 'version_menu_bar',0
+ aMenu_bar_draw db 'menu_bar_draw',0
+ aMenu_bar_mouse db 'menu_bar_mouse',0
+ ;aVersion_menu_bar db 'version_menu_bar',0
- sz_tl_data_init db 'tl_data_init',0
- sz_tl_data_clear db 'tl_data_clear',0
- sz_tl_info_clear db 'tl_info_clear',0
- sz_tl_key db 'tl_key',0
- sz_tl_mouse db 'tl_mouse',0
- sz_tl_draw db 'tl_draw',0
- sz_tl_info_undo db 'tl_info_undo',0
- sz_tl_info_redo db 'tl_info_redo',0
- sz_tl_node_add db 'tl_node_add',0
- sz_tl_node_set_data db 'tl_node_set_data',0
- sz_tl_node_get_data db 'tl_node_get_data',0
- sz_tl_node_delete db 'tl_node_delete',0
- sz_tl_cur_beg db 'tl_cur_beg',0
- sz_tl_cur_next db 'tl_cur_next',0
- sz_tl_cur_perv db 'tl_cur_perv',0
- sz_tl_node_close_open db 'tl_node_close_open',0
- sz_tl_node_lev_inc db 'tl_node_lev_inc',0
- sz_tl_node_lev_dec db 'tl_node_lev_dec',0
+ sz_tl_data_init db 'tl_data_init',0
+ sz_tl_data_clear db 'tl_data_clear',0
+ sz_tl_info_clear db 'tl_info_clear',0
+ sz_tl_key db 'tl_key',0
+ sz_tl_mouse db 'tl_mouse',0
+ sz_tl_draw db 'tl_draw',0
+ sz_tl_info_undo db 'tl_info_undo',0
+ sz_tl_info_redo db 'tl_info_redo',0
+ sz_tl_node_add db 'tl_node_add',0
+ sz_tl_node_set_data db 'tl_node_set_data',0
+ sz_tl_node_get_data db 'tl_node_get_data',0
+ sz_tl_node_delete db 'tl_node_delete',0
+ sz_tl_cur_beg db 'tl_cur_beg',0
+ sz_tl_cur_next db 'tl_cur_next',0
+ sz_tl_cur_perv db 'tl_cur_perv',0
+ sz_tl_node_close_open db 'tl_node_close_open',0
+ sz_tl_node_lev_inc db 'tl_node_lev_inc',0
+ sz_tl_node_lev_dec db 'tl_node_lev_dec',0
-sz_ted_but_save_file db 'ted_but_save_file',0
-sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0
-sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0
-sz_ted_can_save db 'ted_can_save',0
-sz_ted_clear db 'ted_clear',0
-sz_ted_delete db 'ted_delete',0
-sz_ted_draw db 'ted_draw',0
-sz_ted_init db 'ted_init',0
-sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
-sz_ted_init_syntax_file db 'ted_init_syntax_file',0
-sz_ted_is_select db 'ted_is_select',0
-sz_ted_key db 'ted_key',0
-sz_ted_mouse db 'ted_mouse',0
-sz_ted_open_file db 'ted_open_file',0
-sz_ted_text_add db 'ted_text_add',0
-sz_ted_but_select_word db 'ted_but_select_word',0
-sz_ted_but_cut db 'ted_but_cut',0
-sz_ted_but_copy db 'ted_but_copy',0
-sz_ted_but_paste db 'ted_but_paste',0
-sz_ted_but_undo db 'ted_but_undo',0
-sz_ted_but_redo db 'ted_but_redo',0
-sz_ted_but_reverse db 'ted_but_reverse',0
-sz_ted_but_find_next db 'ted_but_find_next',0
-sz_ted_text_colored db 'ted_text_colored',0
-;;;sz_ted_version db 'version_text_edit',0
+ sz_ted_but_save_file db 'ted_but_save_file',0
+ sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0
+ sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0
+ sz_ted_can_save db 'ted_can_save',0
+ sz_ted_clear db 'ted_clear',0
+ sz_ted_delete db 'ted_delete',0
+ sz_ted_draw db 'ted_draw',0
+ sz_ted_init db 'ted_init',0
+ sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
+ sz_ted_init_syntax_file db 'ted_init_syntax_file',0
+ sz_ted_is_select db 'ted_is_select',0
+ sz_ted_key db 'ted_key',0
+ sz_ted_mouse db 'ted_mouse',0
+ sz_ted_open_file db 'ted_open_file',0
+ sz_ted_text_add db 'ted_text_add',0
+ sz_ted_but_select_word db 'ted_but_select_word',0
+ sz_ted_but_cut db 'ted_but_cut',0
+ sz_ted_but_copy db 'ted_but_copy',0
+ sz_ted_but_paste db 'ted_but_paste',0
+ sz_ted_but_undo db 'ted_but_undo',0
+ sz_ted_but_redo db 'ted_but_redo',0
+ sz_ted_but_reverse db 'ted_but_reverse',0
+ sz_ted_but_find_next db 'ted_but_find_next',0
+ sz_ted_text_colored db 'ted_text_colored',0
+ ;sz_ted_version db 'version_text_edit',0
;--------------------------------------------------
align 4
msgbox_lib_import:
- mb_create dd amb_create
- mb_reinit dd amb_reinit
- mb_setfunctions dd amb_setfunctions
- dd 0,0
- amb_create db 'mb_create',0
- amb_reinit db 'mb_reinit',0
- amb_setfunctions db 'mb_setfunctions',0
+ mb_create dd amb_create
+ mb_reinit dd amb_reinit
+ mb_setfunctions dd amb_setfunctions
+dd 0,0
+ amb_create db 'mb_create',0
+ amb_reinit db 'mb_reinit',0
+ amb_setfunctions db 'mb_setfunctions',0
;---------------------------------------------------------------------
align 4
wScr:
@@ -192,7 +179,7 @@ wScr:
.size_y dw 300 ; +4
.start_y dw 50 ; +6
.btn_high dd 15 ; +8
-.type dd 1 ;+12
+.type dd 1 ;+12
.max_area dd 100 ;+16
.cur_area dd 30 ;+20
.position dd 0 ;+24
@@ -200,7 +187,7 @@ wScr:
.frnt_col dd 0xbbddff ;+32
.line_col dd 0 ;+36
.redraw dd 0 ;+40
-.delta dw 0 ;+44
+.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
.r_size_x dw 0 ;+48
@@ -208,7 +195,7 @@ wScr:
.run_y:
.r_size_y dw 0 ;+52
.r_start_y dw 0 ;+54
-.m_pos dd 0 ;+56
+.m_pos dd 0 ;+56
.m_pos_2 dd 0 ;+60
.m_keys dd 0 ;+64
.run_size dd 0 ;+68
@@ -252,7 +239,7 @@ hScr:
.ar_offset dd 1 ;+84
;---------------------------------------------------------------------
align 4
-ws_dir_lbox: ;фюўхЁэшщ ёъЁюыышэу фы ¤ыхьхэЄр ListBox
+ws_dir_lbox: ;дочерний скроллинг для элемента ListBox
.x:
.size_x dw 16 ;+0
.start_x dw 0 ;+2
@@ -313,7 +300,7 @@ menu_data_1:
.out_select dd 0 ;+56
.buf_adress dd 0 ;+60
.procinfo dd procinfo ;0 ;+64
-.click dd 0 ;+68
+.click dd 0 ;+68
.cursor dd 0 ;+72
.cursor_old dd 0 ;+76
.interval dd 16 ;+80
@@ -326,14 +313,50 @@ menu_data_1:
.font_height dd 8 ;+108
.cursor_out dd 0 ;+112
.get_mouse_flag dd 0 ;+116
-;-------------------------
-TED_PANEL_NULL equ 0 ;нет открытой панели
-TED_PANEL_FIND equ 1 ;панель поиска
+;---------------------------------------------------------------------
+align 4
+OpenDialog_data:
+.type dd 0
+.procinfo dd procinfo ;+4
+.com_area_name dd communication_area_name ;+8
+.com_area dd 0 ;+12
+.opendir_path dd plugin_path ;+16
+.dir_default_path dd openfile_path ;+20
+.start_path dd file_name ;+24 путь к диалогу открытия файлов
+.draw_window dd draw_window ;+28
+.status dd 0 ;+32
+.openfile_path dd openfile_path ;+36 путь к открываемому файлу
+.filename_area dd filename_area ;+40
+.filter_area dd Filter
+
+communication_area_name:
+ db 'FFFFFFFF_open_dialog',0
+open_dialog_name:
+ db 'opendial',0
+communication_area_default_path:
+ db '/rd/1',0
+
+Filter:
+dd Filter.end - Filter.1
+.1:
+db 'ASM',0
+db 'CPP',0
+db 'INC',0
+db 'INI',0
+db 'TXT',0
+db 'H',0
+db 'HTM',0
+db 'HTML',0
+.end:
+db 0
+
+TED_PANEL_NULL equ 0 ;нет открытой панели
+TED_PANEL_FIND equ 1 ;панель поиска
TED_PANEL_SYNTAX equ 2 ;панель выбора файлов подсветки
TED_PANEL_WIDTH equ 150 ;ширина панели
-count_of_dir_list_files equ 15
+count_of_dir_list_files equ 15 ;максимальное число файлов синтаксиса показываемых в окне элемента tree1
;------------------------------------------------------------------------------
struct TexSelect
@@ -351,26 +374,26 @@ tedit0: ;
.drag_k db 0 ;+33 выделение от клавиатуры
.sel TexSelect 0,0,0,0 ;+34 структура выделения
.seln TexSelect ;+50 дополнительная структура выделения
- .tex dd 0 ;+66 text memory pointer
- .tex_1 dd 0 ;+70 text first symbol pointer
+ .tex dd 0 ;+66 text memory pointer
+ .tex_1 dd 0 ;+70 text first symbol pointer
.tex_end dd 0 ;+74 text end memory pointer
- .cur_x dd 0 ;+78 координата x курсора
- .cur_y dd 0 ;+82 координата y курсора
+ .cur_x dd 0 ;+78 координата x курсора
+ .cur_y dd 0 ;+82 координата y курсора
.max_chars dd maxChars ;+86 максимальное число символов в одном документе
.count_colors_text dd 1 ;+90 колличество цветов текста
.count_key_words dd 0 ;+94 колличество ключевых слов
- .color_cursor dd 0x808080 ;+98 цвет курсора
- .color_wnd_capt dd 0x80 ;+102 цвет полей вокруг окна
- .color_wnd_work dd 0x0 ;+106 цвет фона окна
+ .color_cursor dd 0x808080 ;+98 цвет курсора
+ .color_wnd_capt dd 0x80 ;+102 цвет полей вокруг окна
+ .color_wnd_work dd 0x0 ;+106 цвет фона окна
.color_wnd_bord dd 0xd0d0d0 ;+110 цвет текста на полях
- .color_select dd 0x208080 ;+114 цвет выделения
+ .color_select dd 0x208080 ;+114 цвет выделения
.color_cur_text dd 0xff0000 ;+118 цвет символа под курсором
.color_wnd_text dd 0xffff00 ;+122 цвет текста в окне
- .syntax_file dd 0 ;+126 указатель на начало файла синтаксиса
+ .syntax_file dd 0 ;+126 указатель на начало файла синтаксиса
.syntax_file_size dd maxSyntaxFileSize ;+130 максимальный размер файла синтаксиса
- .text_colors dd 0 ;+134 указатель на массив цветов текста
- .help_text_f1 dd 0 ;+138 указатель на текст справки (по нажатии F1)
- .help_id dd -1 ;+142 идентификатор для справки
+ .text_colors dd 0 ;+134 указатель на массив цветов текста
+ .help_text_f1 dd 0 ;+138 указатель на текст справки (по нажатии F1)
+ .help_id dd -1 ;+142 идентификатор для справки
.key_words_data dd 0 ;+146 указатель на структуры ключевых слов TexColViv
.tim_ch dd ? ;+150 количество изменений в файле
.tim_undo dd ? ;+154 количество отмененных действий
@@ -381,8 +404,8 @@ tedit0: ;
.panel_id db 0 ;+171 номер открытой панели
.key_new db 0 ;+172 символ, который будет добавлятся с клавиатуры
.symbol_new_line db 20 ;+173 символ завершения строки
- .scr_w dd wScr ;+174 вертикальный скроллинг
- .scr_h dd hScr ;+178 горизонтальный скроллинг
+ .scr_w dd wScr ;+174 вертикальный скроллинг
+ .scr_h dd hScr ;+178 горизонтальный скроллинг
.arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов
.buffer dd buf ;+186 указатель на буфер копирования/вставки
.buffer_find dd buf_find ;+190 указатель на буфер для поиска
@@ -391,16 +414,16 @@ tedit0: ;
.mode_invis db 0 ;+196 режим показа непечатаемых символов
.gp_opt db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor
.fun_on_key_ctrl_o dd ted_but_open_file ;+198 указатель на функцию вызываемую при нажатии Ctrl+O (открытие файла)
- .fun_on_key_ctrl_f dd ted_but_find ;+202 ... Ctrl+F (вызова/скрытия панели поиска)
- .fun_on_key_ctrl_n dd ted_but_new_file ;+206 ... Ctrl+N (создание нового документа)
+ .fun_on_key_ctrl_f dd ted_but_find ;+202 ... Ctrl+F (вызова/скрытия панели поиска)
+ .fun_on_key_ctrl_n dd ted_but_new_file ;+206 ... Ctrl+N (создание нового документа)
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
- .buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки
- .fun_find_err dd ted_on_find_err ;+218 указатель на функцию вызываемую если поиск закончился неудачно
+ .buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки
+ .fun_find_err dd ted_on_find_err ;+218 указатель на функцию вызываемую если поиск закончился неудачно
.fun_init_synt_err dd ted_on_init_synt_err ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
.fun_draw_panel_buttons dd draw_but_toolbar ;+226 указатель на функцию рисования панели с кнопками
- .fun_draw_panel_find dd draw_panel_find ;+230 указатель на функцию рисования панели поиска
- .fun_draw_panel_syntax dd draw_panel_syntax ;+234 указатель на функцию рисования панели синтаксиса
- .fun_save_err dd ted_save_err_msg ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
+ .fun_draw_panel_find dd draw_panel_find ;+230 указатель на функцию рисования панели поиска
+ .fun_draw_panel_syntax dd draw_panel_syntax ;+234 указатель на функцию рисования панели синтаксиса
+ .fun_save_err dd ted_save_err_msg ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
.increase_size dd 200 ;+242 число символов на которые будет увечиваться память при нехватке
.ptr_free_symb dd ? ;+246 используется внутри элемента для ускорения вставки текста
;------------------------------------------------------------------------------
@@ -436,7 +459,6 @@ db '
.end:
db 0
-;--------
msgbox_1:
dw 0
db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
@@ -447,7 +469,7 @@ msgbox_1:
db 0
msgbox_2:
db 3,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Сохранить изменения в файле?',0
db 'Сохранить',0
db 'Не сохранять',0
@@ -460,7 +482,7 @@ msgbox_2_funct:
msgbox_3:
db 1,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Ошибка при открытии файла с цветовыми настройками!',13,\
'Потому выделение слов цветом не возможно.',13,\
' (код ошибки ='
@@ -471,7 +493,7 @@ msgbox_3:
msgbox_4:
db 1,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Ошибка при открытии файла!',13,\
'Возможно имя файла введено не правильно.',13,\
' (код ошибки ='
@@ -482,7 +504,7 @@ msgbox_4:
msgbox_5:
db 3,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Сохранить изменения в файле?',0
db 'Не сохранять',0
db 'Отмена',0
@@ -493,7 +515,7 @@ msgbox_5_funct:
msgbox_6:
db 1,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Ошибка при сохранении файла!',13,\
'Возможно имя файла введено не правильно.',13,\
' (код ошибки ='
@@ -503,7 +525,7 @@ msgbox_6:
db 0
msgbox_7:
db 1,0
- db 'Текст не найден',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Текст не найден',0
db 'Достигнут конец документа.',13,\
'Попробуйте перейти в начало документа',13,\
'или изменить запрос и повторить поиск.',0
@@ -511,13 +533,20 @@ msgbox_7:
db 0
msgbox_8:
db 3,0
- db 'Внимание',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Внимание',0
db 'Для выхода завершите работу с файлом.',13,\
'Попробуйте сохранить изменения в файле',13,\
'или начать новый пустой.',0
db 'Отмена',0
db 0
+msgbox_9:
+ db 3,0
+ db 'Внимание',0
+ db 'Не открылся ',39,'диалог открытия файла.',39,0
+ db 'Закрыть',0
+ db 0
+txtFile db 'Файл:',0
txtFindCapt db 'Поиск',0
txtFindNext db 'Найти далее',0
txtFormatCapt db 'Формат',0
@@ -535,7 +564,6 @@ db 'Exit',0
.end:
db 0
-;--------
msgbox_1:
dw 0
db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
@@ -546,7 +574,7 @@ msgbox_1:
db 0
msgbox_2:
db 3,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'Save changes to the file?',0
db 'Save',0
db 'Discard',0
@@ -559,7 +587,7 @@ msgbox_2_funct:
msgbox_3:
db 1,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'Error opening the file with the color settings!',13,\
'Because color selection of words is not possible.',13,\
' (error code ='
@@ -570,7 +598,7 @@ msgbox_3:
msgbox_4:
db 1,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'Error opening file!',13,\
'Maybe the file name is not entered correctly.',13,\
' (error code ='
@@ -581,7 +609,7 @@ msgbox_4:
msgbox_5:
db 3,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'Save changes to the file?',0
db 'Discard',0
db 'Cancel',0
@@ -592,7 +620,7 @@ msgbox_5_funct:
msgbox_6:
db 1,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'Error saving file!',13,\
'Maybe the file name is not entered correctly.',13,\
' (error code ='
@@ -602,7 +630,7 @@ msgbox_6:
db 0
msgbox_7:
db 1,0
- db 'Text not found.',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Text not found.',0
db 'Reached end of the document.',13,\
'Try to go to the beginning of the document',13,\
'or change the query and search again.',0
@@ -610,20 +638,26 @@ msgbox_7:
db 0
msgbox_8:
db 3,0
- db 'Warning',0 ;+2 = +MB_TEXT_OFFSET
+ db 'Warning',0
db 'To quit, quit the file.',13,\
'Try to keep changes to a file',13,\
'or start a new blank file.',0
db 'Cancel',0
db 0
+msgbox_9:
+ db 3,0
+ db 'Warning',0
+ db 'Error run ',39,'open file dialog',39,0
+ db 'Close',0
+ db 0
+txtFile db 'File:',0
txtFindCapt db 'Search',0
txtFindNext db 'Find next',0
txtFormatCapt db 'Format',0
txtFormatApply db 'Apply',0
end if
-;------
KM_SHIFT equ 0x00010000
KM_CTRL equ 0x00020000
diff --git a/programs/other/t_edit/t_edit.asm b/programs/other/t_edit/t_edit.asm
index 35c2c11627..4a995638cc 100644
--- a/programs/other/t_edit/t_edit.asm
+++ b/programs/other/t_edit/t_edit.asm
@@ -25,6 +25,9 @@ include '../../develop/libraries/box_lib/load_lib.mac'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include 'lang.inc'
+include '../../develop/libraries/box_lib/asm/trunk/opendial.mac'
+use_OpenDialog
+
include 't_data.inc'
include 'strlen.inc'
include 't_draw.inc' ;draw main window functions
@@ -47,7 +50,7 @@ start:
mov esi,file_name
call strlen
mov ecx,eax
- mov edi,buf_cmd_lin
+ mov edi,openfile_path
rep movsb ;копируем имя файла в буфер edit1
load_libraries l_libs_start,load_lib_end
@@ -67,7 +70,9 @@ load_libraries l_libs_start,load_lib_end
;---------------------------------------------------------------------
stdcall [ted_init], tedit0
stdcall dword[tl_data_init], tree1
-;---------------------------------------------------------------------
+
+; OpenDialog initialisation
+init_OpenDialog OpenDialog_data
; init bmp file
mov ecx,1200*18
@@ -170,9 +175,9 @@ mov ecx,ebx
stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name
;--- get cmd line ---
- cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin
+ cmp byte[openfile_path+3],0 ;openfile_path
je @f ;if file names exist
- mov esi,buf_cmd_lin
+ mov esi,openfile_path
call strlen ;eax=strlen
mov [edit1.size],eax
call but_no_msg_OpenFile
@@ -180,11 +185,31 @@ mov ecx,ebx
align 4
red_win:
+ call draw_window
+
+align 4
+still:
+ mov eax,10
+ mcall
+
+ cmp al,1 ;изм. положение окна
+ jz red_win
+ cmp al,2
+ jz key
+ cmp al,3
+ jz button
+ cmp al,6
+ jz mouse
+
+ jmp still
+
+align 4
+draw_window:
mcall 12,1
xor eax,eax
mov ebx,10*65536+485
- mov ecx,10*65536+280
+ mov ecx,10*65536+320
mov edx,[sc.work]
or edx,0x73000000
mov edi,hed
@@ -202,6 +227,13 @@ red_win:
inc bx
int 0x40
+ mov eax,4
+ mov ebx,185*65536+9
+ mov ecx,[sc.work_text]
+ or ecx,0x80000000
+ mov edx,txtFile
+ int 0x40
+
stdcall [edit_box_draw], dword edit1
stdcall [menu_bar_draw], dword menu_data_1
@@ -231,23 +263,7 @@ red_win:
@@:
mcall 12,2
-
-align 4
-still:
- mov eax,10
- mcall
-
- cmp al,1 ;изм. положение окна
- jz red_win
- cmp al,2
- jz key
- cmp al,3
- jz button
- cmp al,6
- jz mouse
-
- jmp still
-
+ ret
align 4
mouse:
@@ -490,10 +506,9 @@ button:
txtErrIni0 db 'Не открылся файл с иконками',0
err_ini0 db 0
-edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_cmd_lin, mouse_dd, 0
+edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
-buf_cmd_lin db 302 dup(0)
buf_find db 302 dup(0)
if lang eq ru
@@ -522,10 +537,11 @@ load_lib_end:
i_end:
- align 16
- procinfo process_information
- thread:
- rb 1024
+ rb 1024
+ align 16
+ procinfo process_information
+ thread:
+ rb 1024
stacktop:
sys_path:
rb 4096
@@ -533,6 +549,12 @@ stacktop:
rb 4096
file_name_rez:
rb 4096
+ plugin_path:
+ rb 4096
+ openfile_path:
+ rb 4096
+ filename_area:
+ rb 256
file_info:
rb 40
mem: