Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1713 → Rev 1714

/programs/develop/kol_f_edit/kol_f_edit.asm
16,10 → 16,11
include 'mem.inc'
include 'dll.inc'
include 'strlen.inc'
include 'obj_codes.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
 
hed db 'kol_f_edit 29.11.10',0
hed db 'kol_f_edit 08.12.10',0
 
sizeof.TreeList equ 20 ;need for element 'tree_list'
 
33,39 → 34,38
buf2d_color equ dword[edi+16] ;梥â ä®­  ¡ãä¥à 
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
 
MAX_LEN_OBJ_TXT equ 200
 
MAX_CED_OBJECTS equ 200
MAX_OPT_FIELDS equ 11
MAX_OBJ_TYPES equ 18
MAX_OBJ_TYPES equ 18 ;¬ ªá¨¬ «ì­®¥ ç¨á«® ®¡ê¥ªâ®¢
MAX_OBJ_CAPTIONS equ 1000 ;à §¬¥à ¤®¯®«­¨â¥«ì­ëå ¯®¤¯¨á¥© ¯®¤¯¨á¥©
WND_CAPT_COLOR equ 0xb0d0ff
BUF_SIZE equ 1000
 
C_TD equ 't' ;typedef
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code)
C_ST equ 's' ;struct
C_IN equ '#' ;include
C_TT equ 'd' ;¡«®ª ª®¤  (¤ ­­ëå)
C_VR equ '-' ;¯¥à¥¬¥­­ ï
C_CO equ ';' ;ª®¬¬¥­â à¨©
C_WI equ 'w' ;®ª­®
C_CB equ 'c' ;CheckBox
C_OP equ 'o' ;OptionBox
C_ED equ 'e' ;EditBox
C_BU equ 'b' ;Button
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª
C_KE equ 'k' ;ª« ¢¨ âãà 
C_LIB equ 'l'
C_IFN equ 'f'
 
;modif
CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨
BIT_MOD_ACM equ 1 ;ᮡëâ¨ï ¬ëè¨
CPP_MOD_ACI equ 4 ; ¢ª«î祭¨ï
BIT_MOD_ACI equ 2 ; ¢ª«î祭¨ï
CPP_MOD_ACD equ 8 ;¤ ­­ë¥ ®¡ê¥ªâ®¢
BIT_MOD_ACD equ 3 ;¤ ­­ë¥ ®¡ê¥ªâ®¢
CPP_MOD_ABU equ 16 ;á¢ï§ë¢ ­¨¥ ª­®¯®ª
BIT_MOD_ABU equ 4 ;á¢ï§ë¢ ­¨¥ ª­®¯®ª
 
CPP_MOD_WI_CA equ 16 ; áâ¨«ì ®ª­  ¯®¤¯¨áì
CPP_MOD_WI_AO equ 32 ; áâ¨«ì ®ª­  ª®®à¤¨­ âë ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
CPP_MOD_WI_RD equ 64 ; áâ¨«ì ®ª­  ¯¥à¥à¨á®¢ª  ®ª­ 
CPP_MOD_WI_GR equ 128 ; áâ¨«ì ®ª­  £à ¤¨¥­â
CPP_MOD_CHE equ 512 ; ch_flag_en - ¢ë¡à ­ CheckBox
CPP_MOD_TXT_ASCII_0 equ 1 ; ⥪áâ § ª ­ç¨¢. 0
CPP_MOD_TXT_TRAN equ 4 ; ⥪á⠯஧à ç­ë©
CPP_MOD_TXT_CHAR2 equ 2 ; ⥪áâ 2-¬ èà¨ä⮬
CPP_MOD_EDIT_FOC equ 1 ; EditBox ¢ 䮪ãá¥
CPP_MOD_EDIT_FIO equ 2 ;
CPP_MOD_RE_GR equ 1 ; £à ¤¨¥­â­ë© ¯àאַ㣮«ì­¨ª
CPP_MOD_BUT_NFON equ 1 ; á⨫ì Button ­¥ à¨á®¢ âì ª­®¯ªã
CPP_MOD_BUT_NBORD equ 2 ; á⨫ì Button ­¥ à¨á®¢ âì £à ­¨æã
 
macro load_image_file path,buf,size ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
{
copy_path path,sys_path,fp_icon,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
116,7 → 116,7
ends
 
struct ObjOpt
c db ?
db ?
bl_type db ?
graph db ?
info rb 30
123,6 → 123,7
caption rb 200
Col rw MAX_OPT_FIELDS
img rw MAX_OPT_FIELDS ;¨­¤¥ªáë ª à⨭®ª (¢ ä ©«¥ 'icon.bmp')
bit_prop dd 0 ;¡¨â®¢ë¥ ᢮©á⢠
ends
 
SKIN_H equ 22
151,6 → 152,7
fn_syntax db 'asm.syn',0 ;¨¬ï § £à㦠¥¬®£® ä ©«  ᨭ⠪á¨á 
 
include 'ced_wnd_m.inc'
include 'ced_wnd_prop.inc' ;ä ©« á äã­ªæ¨ï¬¨ ®ª­  ᢮©á⢠®¡ê¥ªâ 
include 'ced_constr.inc' ;ä ©« á äã­ªæ¨ï¬¨ ®ª­  ª®­áâàãªâ®à 
include 'ced_code_g.inc' ;ä ©« á äã­ªæ¨ï¬¨ £¥­¥à¨à®¢ ­¨ï ª®¤®¢
 
180,17 → 182,15
mcall -1 ;exit not correct
@@:
 
mov eax,[wndObjI.top]
add eax,[recMain.top]
inc eax
mov ebx,[wndObjI.left]
add ebx,16+6 ;è¨à¨­  ¨ª®­ª¨ + ®âáâã¯ë
;§ ¤ ­¨¥ à §¬¥à®¢ ¯®«¥© ᮠ᢮©á⢠¬¨
mov eax,prop_edits_top
mov ebx,16+6 ;è¨à¨­  ¨ª®­ª¨ + ®âáâã¯ë
mov edi,edit2
@@:
mov ed_top,eax ;®âáâ㯠ᢥàåã
mov ed_left,ebx ;®âáâ㯠᫥¢ 
add edi,ed_struc_size
add eax,[recMain.height]
add eax,prop_edits_height
cmp edi,prop_wnd_edits_end
jl @b
 
226,8 → 226,9
load_image_file fn_icon_tl_sys, icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE
;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
m2m dword[tree1.data_img_sys],dword[icon_tl_sys]
m2m dword[tree2.data_img_sys],dword[icon_tl_sys]
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
mov dword[tree2.data_img_sys],eax
 
;1-© ä ©« ᪨­ 
load_image_file fn_skin_1, icon_font_s1,IMAGE_FILE_SKIN1_SIZE
254,7 → 255,7
;load options file
mov eax,70
mov [run_file_70.Position], 0
mov [run_file_70.Count], sizeof.ObjOpt*MAX_OBJ_TYPES
mov [run_file_70.Count], sizeof.ObjOpt*MAX_OBJ_TYPES+MAX_OBJ_CAPTIONS
mov [run_file_70.Buffer], obj_opt
mov [run_file_70.FileName], fp_obj_opt
mov ebx,run_file_70
271,7 → 272,7
cmp bl,0
je @f
;xor ecx,ecx ;¢ ecx ¡ã¤¥â ¨­¤¥ªá ¨ª®­ª¨
mov cx,word[eax+sizeof.ObjOpt-2*MAX_OPT_FIELDS]
mov cx,word[eax+obj_opt.img-obj_opt]
cmp cx,0
jge .zero
xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
454,21 → 455,15
int 0x40
@@:
 
cmp [err_ini0],1
je err_init_icon
cmp [err_ini1],1
je err_init_icon
call draw_obj_info ;®ª­® । ªâ¨à®¢ ­¨ï ¢ë¡à ­­®£® ®¡ê¥ªâ 
err_init_icon:
 
stdcall [edit_box_draw], dword edit1
stdcall [edit_box_draw], dword edit_sav
 
mov dword[w_scr_t1.all_redraw],1
;stdcall [scrollbar_ver_draw],dword w_scr_t1
stdcall [tl_draw],dword tree1
mov dword[w_scr_t1.all_redraw],1
stdcall [scrollbar_ver_draw],dword w_scr_t1
mov dword[w_scr_t2.all_redraw],1
;stdcall [scrollbar_ver_draw],dword w_scr_t2
stdcall [tl_draw],dword tree2
mov dword[w_scr_t2.all_redraw],1
stdcall [scrollbar_ver_draw],dword w_scr_t2
 
cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª­  ª®­áâàãªâ®à 
jne @f
485,14 → 480,6
align 4
mouse:
stdcall [edit_box_mouse], dword edit1
push edi
mov edi,edit2
.cycle:
stdcall [edit_box_mouse], edi
add edi,ed_struc_size
cmp edi,prop_wnd_edits_end
jl .cycle
pop edi
stdcall [edit_box_mouse], dword edit_sav
stdcall [tl_mouse], dword tree1
stdcall [tl_mouse], dword tree2
507,27 → 494,10
key:
mcall 2
stdcall [edit_box_key], dword edit1
push edi
mov edi,edit2
.cycle:
stdcall [edit_box_key], edi
add edi,ed_struc_size
cmp edi,prop_wnd_edits_end
jl .cycle
pop edi
stdcall [edit_box_key], dword edit_sav
stdcall [tl_key], dword tree1
stdcall [tl_key], dword tree2
; cmp ah,178 ;Up
; jne @f
; cmp [cur_y],0
; je @f
; dec [cur_y]
; call get_obj_pos
; call draw_window
; @@:
 
jmp still
 
align 4
541,10 → 511,10
jne @f
call but_save_proj
@@:
cmp ah,10
jne @f
call but_element_change
@@:
;cmp ah,10
;jne @f
;call but_element_change
;@@:
cmp ah,11
jne @f
call but_show_constructor
653,7 → 623,7
 
call find_obj_in_opt ;edi = pointer to ObjOpt struct
 
mov cx,word[edi+sizeof.ObjOpt-2*MAX_OPT_FIELDS]
mov cx,word[edi+obj_opt.img-obj_opt]
cmp cx,0
jge .zero
xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
743,6 → 713,8
ret
 
;¡¥à¥â ­®¬¥à ¯® ¯®à浪㠯® 㪠§ â¥«î ­  áâàãªâãàã ®¡ê¥ªâ 
;output:
; eax - ­®¬¥à ®¡ê¥ªâ 
align 4
proc get_obj_npp, p_obj_str:dword
mov eax,2
820,22 → 792,19
;äã­ªæ¨ï ®¡à â­ ï ª ¤ ­­®© but_element_change
align 4
on_file_object_select:
cmp byte[prop_wnd_run],0
jne @f
mov byte[prop_wnd_run],1
stdcall [tl_node_get_data], tree2
pop dword[foc_obj]
cmp dword[foc_obj],0
je @f
push ebx edi
xor ebx,ebx
mov edi,edit2
.cycle:
stdcall set_obj_win_param, ebx,edi
inc ebx
add edi,ed_struc_size
cmp edi,prop_wnd_edits_end
jl .cycle
pop edi ebx
pushad
;¢á¥ ¤¥©áâ¢¨ï ¯® ­ áâனª¥ í«¥¬¥­â®¢ ã¯à ¢«¥­¨ï ¢ë¯®«­ïîâáï ¢ ®ª­¥ ᮠ᢮©á⢠¬¨
mcall 51,1,prop_start,prop_thread
popad
@@:
call draw_window
;call draw_window
ret
 
align 4
944,9 → 913,9
show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
txtErrIni1 db '¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
err_opn db 0
err_ini0 db 0 ;???
err_ini1 db 0
err_opn db 0 ;१. ®âªàëâ¨ï ä ©«  ¯à®íªâ 
err_ini0 db 0 ;१. ®âªàëâ¨ï ä ©«  á ¨ª®­ª ¬¨
err_ini1 db 0 ;१. ®âªàëâ¨ï ä ©«  á ®¯æ¨ï¬¨
 
edit1 edit_box 210, 10, 5, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
 
987,7 → 956,7
el_focus dd tree1
;¤¥à¥¢® ᮠᯨ᪮¬ ¢®§¬®¦­ëå ⨯®¢ ®¡ê¥ªâ®¢
tree1 tree_list sizeof.ObjOpt,20+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,50,125,100, 0,3,0, el_focus,\
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,50,125,280, 0,3,0, el_focus,\
w_scr_t1,on_add_object
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
tree2 tree_list sizeof.object,MAX_CED_OBJECTS+2, tl_draw_par_line,\
1187,15 → 1156,13
 
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
 
recMain BOX 3,20,16,18 ;ª®®à¤¨­ âë: 1,2 - ®âáâã¯ë; 3,4 - à §¬¥à
ced_info object 0 ;on start == 0
rb sizeof.object*(MAX_CED_OBJECTS-1)
 
wndObjI BOX 5,155,125+16,175
text_buffer db BUF_SIZE dup(0)
fn_obj_opt db 'ob_o.opt',0
obj_opt ObjOpt
rb sizeof.ObjOpt*(MAX_OBJ_TYPES-1)
rb sizeof.ObjOpt*(MAX_OBJ_TYPES-1)+MAX_OBJ_CAPTIONS
db 0 ;eof options
 
cur_x dd 0
1308,6 → 1275,10
edit_box_mouse dd aEdit_box_mouse
edit_box_set_text dd aEdit_box_set_text
 
init_checkbox dd aInit_checkbox
check_box_draw dd aCheck_box_draw
check_box_mouse dd aCheck_box_mouse
 
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_hor_draw dd aScrollbar_hor_draw
 
1370,6 → 1341,10
aEdit_box_mouse db 'edit_box_mouse',0
aEdit_box_set_text db 'edit_box_set_text',0
 
aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
 
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
1508,6 → 1483,8
fp_icon rb 1024 ;icon file path
fp_obj_opt rb 1024 ;obj options file patch
rb 1024
prop_thread:
rb 1024
thread: ;¢¢¥àåã ¤®ç¥à­¨© á⥪ ¤«ï ®ª­  á®®¡é¥­¨ï
rb 1024
stacktop: ;¢¢¥àåã á⥪ ®á­®¢­®© ¯à®£à ¬¬ë