forked from KolibriOS/kolibrios
'box_lib.obj': update function open file in element 't_edit'
'voxel_editor': small update git-svn-id: svn://kolibrios.org@2808 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7af0b1d2b1
commit
195ca78286
@ -1,6 +1,6 @@
|
||||
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj
|
||||
; í«¥¬¥â TextEditor ¤«ï Kolibri OS
|
||||
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 22.08.2011 IgorA
|
||||
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.06.2012 IgorA
|
||||
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï
|
||||
|
||||
;input:
|
||||
@ -2339,15 +2339,60 @@ endp
|
||||
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â
|
||||
align 4
|
||||
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©«
|
||||
push edi
|
||||
push ecx edx edi
|
||||
mov edi,dword[edit]
|
||||
|
||||
; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ¥ å¢ â ¥â ⮠㢥«¨ç¨¢ ¥¬ ***
|
||||
;¯à®¡ã¥¬ ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«¥
|
||||
mov eax,70
|
||||
mov ebx,dword[file]
|
||||
mov dword[ebx], 5
|
||||
mov dword[ebx+4], 0
|
||||
mov dword[ebx+8], 0
|
||||
mov dword[ebx+12], 0
|
||||
m2m dword[ebx+16], ted_tex
|
||||
mov byte[ebx+20], 0
|
||||
push dword[f_name]
|
||||
pop dword[ebx+21]
|
||||
int 0x40
|
||||
cmp eax,0
|
||||
je .end_0
|
||||
mov edx,ted_max_chars
|
||||
cmp eax,2 ;äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë
|
||||
je @f
|
||||
jmp .ret_f
|
||||
.end_0:
|
||||
;¯à®¢¥à塞 å¢ â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©«
|
||||
mov ecx,ted_max_chars
|
||||
sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì
|
||||
mov edx,ted_tex
|
||||
mov edx,dword[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å
|
||||
cmp edx,ecx
|
||||
jl @f
|
||||
;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ¥ å¢ â¨«®
|
||||
mov ecx,edx ;¯ ¬ïâì ¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©«
|
||||
add ecx,2 ;¯ ¬ïâì ¤«ï á«ã¦¥¡ëå ç «ì®£® ¨ ª®¥ç®£® ᨬ¢®«®¢
|
||||
add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ¨ï ä ©«
|
||||
mov ted_max_chars,ecx
|
||||
imul ecx,sizeof.symbol
|
||||
invoke mem.realloc, ted_tex,ecx
|
||||
mov ted_tex,eax
|
||||
mov ted_tex_1,eax
|
||||
add ted_tex_1,sizeof.symbol
|
||||
add eax,ecx
|
||||
mov ted_tex_end,eax
|
||||
mov ecx,ted_tex_1
|
||||
add ecx,sizeof.symbol
|
||||
mov ted_ptr_free_symb,ecx
|
||||
@@:
|
||||
|
||||
; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
|
||||
mov eax,70
|
||||
mov ebx,dword[file]
|
||||
mov dword[ebx], 0
|
||||
mov dword[ebx+4], 0
|
||||
mov dword[ebx+8], 0
|
||||
m2m dword[ebx+12], ted_max_chars ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©«
|
||||
m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©« (¥ ¡®«ìè¥ ç¥¬ ted_max_chars)
|
||||
m2m dword[ebx+16], ted_tex
|
||||
mov byte[ebx+20], 0
|
||||
push dword[f_name]
|
||||
@ -2365,7 +2410,7 @@ proc ted_open_file, edit:dword, file:dword, f_name:dword ;
|
||||
;if open file
|
||||
call ted_on_open_file
|
||||
.ret_f:
|
||||
pop edi
|
||||
pop edi edx ecx
|
||||
ret
|
||||
endp
|
||||
|
||||
|
Binary file not shown.
@ -17,7 +17,7 @@ include 'dll.inc'
|
||||
include 'vox_draw.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||
caption db 'Voxel editor 12.06.12',0 ;¯®¤¯¨áì ®ª
|
||||
caption db 'Voxel editor 19.06.12',0 ;¯®¤¯¨áì ®ª
|
||||
|
||||
struct FileInfoBlock
|
||||
Function dd ?
|
||||
@ -474,13 +474,13 @@ draw_pok:
|
||||
mov edi,[sc.work_button]
|
||||
int 0x40 ;¬ áèâ ¡
|
||||
mov ecx,[v_cur_x]
|
||||
add edx,(6*2)*65536+9
|
||||
int 0x40 ;
|
||||
add edx,9
|
||||
int 0x40 ;ªãàá®à x
|
||||
mov ecx,[v_cur_y]
|
||||
add edx,(6*0)*65536+9
|
||||
int 0x40 ;
|
||||
add edx,9
|
||||
int 0x40 ;ªãàá®à y
|
||||
mov ecx,[n_plane]
|
||||
add edx,(6*0)*65536+9
|
||||
add edx,9
|
||||
int 0x40 ;®¬¥à á¥ç¥¨ï
|
||||
|
||||
mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ
|
||||
@ -914,7 +914,8 @@ push edi
|
||||
mov ebx,[scaled_zoom]
|
||||
sub eax,ebx
|
||||
inc ebx
|
||||
stdcall [buf2d_vox_obj_draw_3g_scaled], buf_r_img, buf_r_z, buf_vox, [open_file_vox], 0,0, 0, ebx, [cam_x],[cam_y],[cam_z],eax, 0xd080d0
|
||||
stdcall [buf2d_vox_obj_draw_3g_scaled], buf_r_img, buf_r_z, buf_vox,\
|
||||
[open_file_vox], 0,0, 0, ebx, [cam_x],[cam_y],[cam_z],eax, [sc.work_graph]
|
||||
bt dword[mode_light],0
|
||||
jnc @f
|
||||
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_r_img, buf_r_z, buf_vox, 0,0, 0, ebx, 3
|
||||
@ -1038,14 +1039,66 @@ draw_objects:
|
||||
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_0, buf_0z, buf_vox, 0,0, 0, [scaled_zoom], 3
|
||||
.end_2:
|
||||
.end_0:
|
||||
|
||||
pop ecx ebx eax
|
||||
|
||||
call draw_vox_cursor
|
||||
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
||||
stdcall [buf2d_draw], buf_pl ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
||||
.end_f:
|
||||
ret
|
||||
|
||||
;à¨á®¢ ¨¥ ªãàá®à
|
||||
align 4
|
||||
draw_vox_cursor:
|
||||
pushad
|
||||
mov ecx,[v_zoom]
|
||||
cmp ecx,[scaled_zoom]
|
||||
jle @f
|
||||
mov ecx,[scaled_zoom]
|
||||
@@:
|
||||
xor edx,edx
|
||||
inc edx
|
||||
shl edx,cl
|
||||
|
||||
mov eax,[v_cur_x]
|
||||
cmp eax,edx
|
||||
jge .end_f ;ªãàá®à § ¯à¥¤¥« ¬¨ ¯®«ï
|
||||
mov edi,TILE_SIZE
|
||||
imul eax,edi
|
||||
add eax,OT_MAP_X
|
||||
mov ebx,edx
|
||||
dec ebx
|
||||
sub ebx,[v_cur_y]
|
||||
imul ebx,edi
|
||||
add ebx,OT_MAP_Y
|
||||
inc eax
|
||||
inc ebx
|
||||
sub edi,2
|
||||
stdcall [buf2d_rect_by_size], buf_pl, eax,ebx, edi,edi,[sc.work_graph]
|
||||
dec ebx
|
||||
add edi,2
|
||||
|
||||
;£®à¨§®â «ìë¥ «¨¨¨
|
||||
sub eax,2
|
||||
mov ecx,edi
|
||||
imul edi,edx
|
||||
shr ecx,1
|
||||
add ebx,ecx ;æ¥â஢ª ¯® á¥à¥¤¨¥ ª«¥âª¨
|
||||
mov ecx,OT_MAP_X
|
||||
add edi,ecx
|
||||
stdcall [buf2d_line], buf_pl, ecx,ebx, eax,ebx,[sc.work_graph]
|
||||
add eax,TILE_SIZE
|
||||
inc eax
|
||||
cmp eax,edi
|
||||
jge @f ;¥á«¨ ªãàá®à ªà î ¯®«ï
|
||||
dec edi
|
||||
stdcall [buf2d_line], buf_pl, eax,ebx, edi,ebx,[sc.work_graph]
|
||||
@@:
|
||||
|
||||
.end_f:
|
||||
popad
|
||||
ret
|
||||
|
||||
if 0
|
||||
;input:
|
||||
; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥
|
||||
|
@ -76,16 +76,10 @@ table
|
||||
<td>подсветка заранее зашита в программу</td><td>подсветка берется из файлов, которые может указать пользователь. Также есть возможность получать справку по подсвечиваемым словам (если она есть в файлах подсветки, навести курсор на слово и нажать F1).</td></tr>
|
||||
<tr><td>Многократная отмена/повтор действий</td>
|
||||
<td>нет</td><td>есть</td></tr>
|
||||
<tr><td>Ограничения на размер файлов</td>
|
||||
<td>нет</td><td>есть при открытии файлов, при редактировании нет</td></tr>
|
||||
</table>
|
||||
|
||||
<h2>Некоторые недоработки</h2>
|
||||
<ul>
|
||||
<li>Если открыть большой файл, размер которого больше чем:
|
||||
maxChars equ 100002 ;(...+2)
|
||||
он откроется не весь, а первые maxChars-2 символов из файла
|
||||
(о чем выдается сообщение).</li>
|
||||
<li>При сохранении программа не спрашивает о замене существ. файла.</li>
|
||||
<li>Срабатывали кнопки под меню, потому я их сдвинул влево.</li>
|
||||
</ul>
|
||||
|
Loading…
Reference in New Issue
Block a user