Subversion Repositories Kolibri OS

Rev

Rev 1714 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1714 Rev 1717
1
;
1
;
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ­ã¦­ë¥ ¤«ï ᮧ¤ ­¨ï ¨
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ­ã¦­ë¥ ¤«ï ᮧ¤ ­¨ï ¨
3
; à ¡®âë ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
3
; à ¡®âë ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
4
;
4
;
5
 
5
 
6
prop_edits_top equ 25
6
prop_edits_top equ 25
7
prop_edits_height equ 18
7
prop_edits_height equ 18
8
prop_wnd_width equ 520 ;è¨à¨­  ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
8
prop_wnd_width equ 520 ;è¨à¨­  ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
9
 
9
 
10
prop_wnd_run db 0 ;¯¥à¥¬¥­­ ï á«¥¤ïé ï §  ⥬ çâ®-¡ë ­¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª­  ᮠ᢮©á⢠¬¨ ®¤­®¢à¥¬¥­­®
10
prop_wnd_run db 0 ;¯¥à¥¬¥­­ ï á«¥¤ïé ï §  ⥬ çâ®-¡ë ­¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª­  ᮠ᢮©á⢠¬¨ ®¤­®¢à¥¬¥­­®
11
 
11
 
12
;¤ ­®¥ ®ª­® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï ä㭪樥© on_file_object_select
12
;¤ ­®¥ ®ª­® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï ä㭪樥© on_file_object_select
13
align 4
13
align 4
14
prop_start:
14
prop_start:
15
pushad
15
pushad
16
	mcall 40,0x27 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
16
	mcall 40,0x27 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
-
 
17
 
-
 
18
	call init_obj_count_txt_props ;¯®«ãç ¥¬ ç¨á«® ¨á¯®«ì§ã¥¬ëå ¯®«¥©
17
 
19
 
18
	; ­ áâனª  ⥪á⮢ëå ¯®«¥©
20
	; ­ áâனª  ⥪á⮢ëå ¯®«¥©
19
	xor ebx,ebx
21
	xor ebx,ebx
20
	mov edi,edit2
22
	mov edi,edit2
21
	@@:
23
	@@:
22
		stdcall set_obj_win_param, ebx,edi
24
		stdcall set_obj_win_param, ebx,edi
23
		inc ebx
25
		inc ebx
24
		add edi,ed_struc_size
26
		add edi,ed_struc_size
25
		cmp edi,prop_wnd_edits_end
27
		cmp edi,prop_wnd_edits_end
26
		jl @b
28
		jl @b
27
 
29
 
28
	; ­ áâனª  ᯨ᪠ ®¡ê¥ªâ®¢, ®¯à¥¤¥«ïîé¨å â¨¯ë ¯¥à¥¬¥­­ëå
30
	; ­ áâனª  ᯨ᪠ ®¡ê¥ªâ®¢, ®¯à¥¤¥«ïîé¨å â¨¯ë ¯¥à¥¬¥­­ëå
29
	stdcall dword[tl_data_init], tree3
31
	stdcall dword[tl_data_init], tree3
30
	cmp byte[err_ini0],1
32
	cmp byte[err_ini0],1
31
	je @f
33
	je @f
32
		mov dword[tree3.data_img],bmp_icon
34
		mov dword[tree3.data_img],bmp_icon
33
	@@:
35
	@@:
34
	mov eax,dword[icon_tl_sys]
36
	mov eax,dword[icon_tl_sys]
35
	mov dword[tree3.data_img_sys],eax
37
	mov dword[tree3.data_img_sys],eax
36
 
38
 
37
	mov edx,[foc_obj]
39
	mov edx,[foc_obj]
38
	cmp byte[edx],C_VAR
40
	cmp dword[edx],C_VAR
39
	jne .sel_end
41
	jne .sel_end
40
 
42
 
41
	stdcall [tl_node_poi_get_info], 0,tree2
43
	stdcall [tl_node_poi_get_info], 0,tree2
42
	pop edx
44
	pop edx
43
	@@:
45
	@@:
44
		cmp edx,0
46
		cmp edx,0
45
		je @f
47
		je @f
46
		stdcall [tl_node_poi_get_data], edx,tree2
48
		stdcall [tl_node_poi_get_data], edx,tree2
47
		pop esi ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
49
		pop esi ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
48
;------ ¤®¡ ¢«¥­¨¥ ®¡ê¥ªâ  ¢ ᯨ᮪ -------------------------------------------
50
;------ ¤®¡ ¢«¥­¨¥ ®¡ê¥ªâ  ¢ ᯨ᮪ -------------------------------------------
49
		mov ebx,[foc_obj]
51
		mov ebx,[foc_obj]
50
		cmp ebx,esi
52
		cmp ebx,esi
51
		je .add_end ;¨§¡¥£ ¥¬ 横«¨ç¥áª®© áá뫪¨
53
		je .add_end ;¨§¡¥£ ¥¬ 横«¨ç¥áª®© áá뫪¨
52
		mov bl,[esi]
54
		mov ebx,dword[esi]
53
		cmp bl,C_TDF
55
		cmp ebx,C_TDF
54
		je .add_beg
56
		je .add_beg
55
		cmp bl,C_STR
57
		cmp ebx,C_STR
56
		je .add_beg
58
		je .add_beg
57
			jmp .add_end
59
			jmp .add_end
58
		.add_beg:
60
		.add_beg:
59
			stdcall get_obj_id,esi
61
			stdcall get_obj_id,esi
60
			mov edi,u_object
62
			mov edi,u_object
61
			mov dword[edi],eax
63
			mov dword[edi],eax
62
			add edi,4
64
			add edi,4
63
			inc esi ;¯¥à¥å®¤¨¬ ­  ¨¬ï ®¡ê¥ªâ 
65
			add esi,u_object.txt-u_object ;¯¥à¥å®¤¨¬ ­  ¨¬ï ®¡ê¥ªâ 
64
			mov ecx,MAX_LEN_OBJ_TXT
66
			mov ecx,MAX_LEN_OBJ_TXT
65
			cld
67
			cld
66
			rep movsb
68
			rep movsb
67
 
69
 
68
			call find_obj_in_opt ;edi = pointer to ObjOpt struct
70
			call find_obj_in_opt ;edi = pointer to ObjOpt struct
69
			mov cx,word[edi+obj_opt.img-obj_opt]
71
			mov cx,word[edi+obj_opt.img-obj_opt]
70
			cmp cx,0
72
			cmp cx,0
71
			jge .zero
73
			jge .zero
72
				xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
74
				xor cx,cx ;çâ®-¡ë ­¥ £«î稫® á ®âà¨æ â¥«ì­ë¬ ¨­¤¥ªá®¬
73
			.zero:
75
			.zero:
74
			shl ecx,16 ;¢ ecx ¨­¤¥ªá ¨ª®­ª¨
76
			shl ecx,16 ;¢ ecx ¨­¤¥ªá ¨ª®­ª¨
75
 
77
 
76
			stdcall dword[tl_node_add], u_object, ecx, tree3 ;áâàãªâãà  u_object ¢ ¤ ­­®¬ á«ãç ¥ ­¥ ᮡ«î¤ ¥âáï, ®­  ­ã¦­  ¯à®áâ® ª ª ¯ ¬ïâì ¤«ï ¢áâ ¢ª¨
78
			stdcall dword[tl_node_add], u_object, ecx, tree3 ;áâàãªâãà  u_object ¢ ¤ ­­®¬ á«ãç ¥ ­¥ ᮡ«î¤ ¥âáï, ®­  ­ã¦­  ¯à®áâ® ª ª ¯ ¬ïâì ¤«ï ¢áâ ¢ª¨
77
			stdcall dword[tl_cur_next], tree3 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª
79
			stdcall dword[tl_cur_next], tree3 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª
78
		.add_end:
80
		.add_end:
79
;-------
81
;-------
80
		stdcall [tl_node_poi_get_next_info], edx,tree2
82
		stdcall [tl_node_poi_get_next_info], edx,tree2
81
		pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
83
		pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
82
		jmp @b
84
		jmp @b
83
	@@:
85
	@@:
84
 
86
 
85
	;áâ ¢¨¬ ªãàá®à ­  ­ã¦­ãî ¯®§¨æ¨î
87
	;áâ ¢¨¬ ªãàá®à ­  ­ã¦­ãî ¯®§¨æ¨î
86
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
88
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
87
	cmp edx,0
89
	cmp edx,0
88
	je .sel_end
90
	je .sel_end
89
		mov edx,dword[edx+u_object.typid-u_object]
91
		mov edx,dword[edx+u_object.typid-u_object]
90
		stdcall [tl_cur_beg],tree3
92
		stdcall [tl_cur_beg],tree3
91
		@@:
93
		@@:
92
			stdcall [tl_node_get_data],tree3
94
			stdcall [tl_node_get_data],tree3
93
			pop eax
95
			pop eax
94
			cmp eax,0
96
			cmp eax,0
95
			je .sel_end
97
			je .sel_end
96
			cmp dword[eax],edx
98
			cmp dword[eax],edx
97
			je .sel_end ;¥á«¨ ­ è«¨ 㪠§ â¥«ì
99
			je .sel_end ;¥á«¨ ­ è«¨ 㪠§ â¥«ì
98
			stdcall [tl_cur_next],tree3
100
			stdcall [tl_cur_next],tree3
99
		jmp @b
101
		jmp @b
100
	.sel_end:
102
	.sel_end:
101
 
103
 
102
	;ç¨á⪠ ¯®¤¯¨á¥©
104
	;ç¨á⪠ ¯®¤¯¨á¥©
103
	mov dword[ch1.text],ch_text
105
	mov dword[ch1.text],ch_text
104
	mov dword[ch2.text],ch_text
106
	mov dword[ch2.text],ch_text
105
	mov dword[ch3.text],ch_text
107
	mov dword[ch3.text],ch_text
106
	mov dword[ch4.text],ch_text
108
	mov dword[ch4.text],ch_text
107
 
109
 
108
	;ãáâ ­®¢ª  ­®¢ëå ¯®¤¯¨á¥©
110
	;ãáâ ­®¢ª  ­®¢ëå ¯®¤¯¨á¥©
109
	mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
111
	mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
110
	mov bl,byte[esi]
112
	mov ebx,dword[esi]
111
	call find_obj_in_opt
113
	call find_obj_in_opt
112
	mov edi,dword[edi+obj_opt.bit_prop-obj_opt]
114
	mov edi,dword[edi+obj_opt.bit_prop-obj_opt]
113
	cmp edi,0
115
	cmp edi,0
114
	je .no_bit_capts ;¥á«¨ 1-¥ ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥, â® ¢ 横« ­¥ § å®¤¨¬
116
	je .no_bit_capts ;¥á«¨ 1-¥ ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥, â® ¢ 横« ­¥ § å®¤¨¬
115
	mov edx,ch1.text
117
	mov edx,ch1.text
116
	xor al,al ;0 - ᨬ¢®« ª®­æ  áâப¨
118
	xor al,al ;0 - ᨬ¢®« ª®­æ  áâப¨
117
	add edi,obj_opt
119
	add edi,obj_opt
118
	@@:
120
	@@:
119
		mov [edx],edi ;§ ¯¨á뢠¥¬ ⥪áâ ¢ check_box
121
		mov [edx],edi ;§ ¯¨á뢠¥¬ ⥪áâ ¢ check_box
120
		xor ecx,ecx
122
		xor ecx,ecx
121
		dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
123
		dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
122
		cld
124
		cld
123
		repne scasb ;¨é¥¬ ª®­¥æ áâப¨ (al=0)
125
		repne scasb ;¨é¥¬ ª®­¥æ áâப¨ (al=0)
124
		cmp byte[edi],0
126
		cmp byte[edi],0
125
		je .no_bit_capts ;¥á«¨ á«¥¤ãî饩 áâப¨ ­¥â ¢ë室 ¨§ 横« 
127
		je .no_bit_capts ;¥á«¨ á«¥¤ãî饩 áâப¨ ­¥â ¢ë室 ¨§ 横« 
126
 
128
 
127
		add edx,ch_struc_size
129
		add edx,ch_struc_size
128
		cmp edx,check_boxes_end
130
		cmp edx,check_boxes_end
129
		jl @b
131
		jl @b
130
	.no_bit_capts:
132
	.no_bit_capts:
131
 
133
 
132
	;ãáâ ­®¢ª  ä« ¦ª®¢
134
	;ãáâ ­®¢ª  ä« ¦ª®¢
133
	mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
135
	mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
134
	mov edx,ch1.flags
136
	mov edx,ch1.flags
135
	xor eax,eax
137
	xor eax,eax
136
	@@:
138
	@@:
137
		bt dword[esi+u_object.modif-u_object],eax
139
		bt dword[esi+u_object.modif-u_object],eax
138
		jc .flag_set
140
		jc .flag_set
139
			btr dword[edx],1 ;á­¨¬ ¥¬ £ «®çªã
141
			btr dword[edx],1 ;á­¨¬ ¥¬ £ «®çªã
140
			jmp .end_set
142
			jmp .end_set
141
		.flag_set:
143
		.flag_set:
142
			bts dword[edx],1 ;áâ ¢¨¬ £ «®çªã (ch_flag_en = 10b = 2^1)
144
			bts dword[edx],1 ;áâ ¢¨¬ £ «®çªã (ch_flag_en = 10b = 2^1)
143
		.end_set:
145
		.end_set:
144
 
146
 
145
		inc eax
147
		inc eax
146
		add edx,ch_struc_size
148
		add edx,ch_struc_size
147
		cmp edx,check_boxes_end
149
		cmp edx,check_boxes_end
148
	jl @b
150
	jl @b
149
 
151
 
150
	init_checkboxes2 check_boxes,check_boxes_end
152
	init_checkboxes2 check_boxes,check_boxes_end
151
	check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
153
	check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
152
popad
154
popad
153
 
155
 
154
align 4
156
align 4
155
prop_red_win:
157
prop_red_win:
156
pushad
158
pushad
157
	mcall 12,1
159
	mcall 12,1
158
 
160
 
159
	xor eax,eax
161
	xor eax,eax
160
	mov edi,hed
162
	mov edi,hed
161
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
163
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
162
	cmp edx,0
164
	cmp edx,0
163
	je @f
165
	je @f
164
		mov bl,[edx]
166
		mov ebx,dword[edx]
165
		call find_obj_in_opt
167
		call find_obj_in_opt
166
		add edi,obj_opt.info-obj_opt ;edi - ¯®¤¯¨áì (­ §¢ ­¨¥ ®¡ê¥ªâ )
168
		add edi,obj_opt.info-obj_opt ;edi - ¯®¤¯¨áì (­ §¢ ­¨¥ ®¡ê¥ªâ )
167
	@@:
169
	@@:
168
	mov ebx,30*65536+prop_wnd_width
170
	mov ebx,30*65536+prop_wnd_width
169
	mov ecx,50*65536+250
171
	mov ecx,50*65536+250
170
	mov edx,0xffffd0
172
	mov edx,0xffffd0
171
	or  edx,0x33000000
173
	or  edx,0x33000000
172
	int 0x40
174
	int 0x40
173
 
175
 
174
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
176
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
175
	cmp edx,0
177
	cmp edx,0
176
	je .exit_fun
178
	je .exit_fun
177
 
179
 
178
		mov eax,8 ;ª­®¯ª  ¤«ï á®åà ­¥­¨ï ¨§¬¥­¥­¨©
180
		mov eax,8 ;ª­®¯ª  ¤«ï á®åà ­¥­¨ï ¨§¬¥­¥­¨©
179
		mov ebx,prop_wnd_width-18-20
181
		mov ebx,prop_wnd_width-18-20
180
		shl ebx,16
182
		shl ebx,16
181
		add ebx,18
183
		add ebx,18
182
		mov ecx,3
184
		mov ecx,3
183
		shl ecx,16
185
		shl ecx,16
184
		add ecx,18
186
		add ecx,18
185
		mov edx,10
187
		mov edx,10
186
		mov esi,0xd040
188
		mov esi,0xd040
187
		int 0x40
189
		int 0x40
188
 
190
 
189
		ror ebx,16 ;¢ëç¨á«ï¥¬ ª®®à¤¨­ âë ¤«ï ¨ª®­ª¨
191
		ror ebx,16 ;¢ëç¨á«ï¥¬ ª®®à¤¨­ âë ¤«ï ¨ª®­ª¨
190
		ror ecx,16
192
		ror ecx,16
191
		and ebx,0xffff
193
		and ebx,0xffff
192
		and ecx,0xffff
194
		and ecx,0xffff
193
		inc ebx
195
		inc ebx
194
		inc ecx
196
		inc ecx
195
		stdcall draw_icon, 17,ebx,ecx ;17 - save
197
		stdcall draw_icon, 17,ebx,ecx ;17 - save
196
 
198
 
197
		mov edi,edit2
199
		mov edi,edit2
-
 
200
		mov ecx,[obj_count_txt_props]
-
 
201
		cld
198
		.cycle:
202
		.cycle:
199
			stdcall [edit_box_draw], edi ;à¨á㥬 ¯®«ï ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
203
			stdcall [edit_box_draw], edi
200
			add edi,ed_struc_size
204
			add edi,ed_struc_size
201
			cmp edi,prop_wnd_edits_end
-
 
202
		jl .cycle
205
		loop .cycle
203
 
206
 
204
		cmp [err_ini0],1
207
		cmp [err_ini0],1
205
		je .exit_fun
208
		je .exit_fun
206
		cmp [err_ini1],1
209
		cmp [err_ini1],1
207
		je .exit_fun
210
		je .exit_fun
208
 
211
 
209
		mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
212
		mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
210
		xor ebx,ebx ;­®¬¥à ¯®«ï
213
		xor ebx,ebx ;­®¬¥à ¯®«ï
211
		.draw_column:
214
		.draw_column:
212
			mov eax,ebx
215
			mov eax,ebx
213
			imul eax,prop_edits_height
216
			imul eax,prop_edits_height
214
			add eax,prop_edits_top
217
			add eax,prop_edits_top
215
			stdcall draw_obj_icon,[edx],ebx,eax
218
			stdcall draw_obj_icon,[edx],ebx,eax
216
			stdcall draw_obj_caption,[edx],ebx,eax
219
			stdcall draw_obj_caption,[edx],ebx,eax
217
 
220
 
218
			inc ebx
221
			inc ebx
219
			cmp ebx,MAX_OPT_FIELDS
222
			cmp ebx,MAX_OPT_FIELDS
220
			jl .draw_column
223
			jl .draw_column
221
 
224
 
222
		cmp byte[edx],C_VAR
225
		cmp dword[edx],C_VAR
223
		jne .no_tree
226
		jne .no_tree
224
			mov dword[w_scr_t3.all_redraw],1
227
			mov dword[w_scr_t3.all_redraw],1
225
			stdcall [tl_draw], tree3
228
			stdcall [tl_draw], tree3
226
		.no_tree:
229
		.no_tree:
227
 
230
 
228
		checkboxes_draw2 check_boxes,check_boxes_end
231
		checkboxes_draw2 check_boxes,check_boxes_end
229
 
232
 
230
	.exit_fun:
233
	.exit_fun:
231
	mcall 12,2
234
	mcall 12,2
232
popad
235
popad
-
 
236
 
233
 
237
;­¥ ®âà뢠âì íâã äã­ªæ¨î ®â ¯à¥¤ë¤ã饩
234
align 4
238
align 4
235
prop_still:
239
prop_still:
236
	pushad
240
	pushad
237
	mcall 10
241
	mcall 10
238
 
242
 
239
	cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
243
	cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
240
	jz prop_red_win
244
	jz prop_red_win
241
	cmp al,2
245
	cmp al,2
242
	jne @f
246
	jne @f
243
		call prop_key
247
		call prop_key
244
	@@:
248
	@@:
245
	cmp al,3
249
	cmp al,3
246
	jz prop_button
250
	jz prop_button
247
	cmp al,6
251
	cmp al,6
248
	jne @f 
252
	jne @f 
249
		call prop_mouse
253
		call prop_mouse
250
	@@:
254
	@@:
251
	popad
255
	popad
252
	jmp prop_still
256
	jmp prop_still
-
 
257
 
-
 
258
;¢ 横«¥ ¯à®¡¥£ ¥¬ ¯® ¢á¥¬ ¯®«ï¬ ᮠ᢮©á⢠¬¨,
-
 
259
;çâ®-¡ë ¯®áç¨â âì ç¨á«® ¨á¯®«ì§ã¥¬ëå ¯®«¥©
-
 
260
align 4
-
 
261
init_obj_count_txt_props:
-
 
262
pushad
-
 
263
	mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ­  ®¡ê¥ªâ
-
 
264
	xor ebx,ebx
-
 
265
	mov edi,edit2
-
 
266
	.cycle:
-
 
267
		stdcall get_obj_text_len_col, edx,ebx ;eax - ¤«¨­­  ¯®«ï
-
 
268
		cmp eax,1
-
 
269
		jl @f ;¢ë室 ¨§ 横«  ¥á«¨ ¯®«¥ ­¥ ¨á¯®«ì§ã¥âìáï
-
 
270
		inc ebx
-
 
271
 
-
 
272
		add edi,ed_struc_size
-
 
273
		cmp edi,prop_wnd_edits_end
-
 
274
		jl .cycle
-
 
275
	@@:
-
 
276
	mov [obj_count_txt_props],ebx
-
 
277
popad
-
 
278
	ret
-
 
279
 
-
 
280
;¢ë¢®¤ ⥪á⮢ëå ¯®¤¯¨á¥© ¤«ï ¯®«¥© ᮠ᢮©á⢠¬¨
-
 
281
align 4
-
 
282
proc draw_obj_caption, o_type:dword,n_col:dword, coord_y:dword
-
 
283
	pushad
-
 
284
	stdcall get_obj_text_len_col, [foc_obj], [n_col] ;eax - ¤«¨­­  ¯®«ï
-
 
285
	cmp eax,1
-
 
286
	jl .no_draw
-
 
287
 
-
 
288
	xor ebx,ebx
-
 
289
	mov ebx,dword[o_type]
-
 
290
	call find_obj_in_opt
-
 
291
 
-
 
292
	mov edx,edi
-
 
293
	add edx,obj_opt.caption-obj_opt
-
 
294
 
-
 
295
	mov eax,[n_col]
-
 
296
	mov ebx,143 ;®âáâ㯠᫥¢ 
-
 
297
	shl ebx,16
-
 
298
	add ebx,dword[coord_y]
-
 
299
	add ebx,3
-
 
300
	mov ecx,0 ;text color
-
 
301
 
-
 
302
	mov esi,edx
-
 
303
	.beg_found:
-
 
304
		cmp byte[esi],0
-
 
305
		je .end_found
-
 
306
		cmp byte[esi],'*'
-
 
307
		je @f
-
 
308
		inc esi
-
 
309
		jmp .beg_found
-
 
310
	@@:
-
 
311
	cmp eax,0
-
 
312
	je .end_found
-
 
313
		dec eax
-
 
314
		inc esi
-
 
315
		mov edx,esi ;¯¥à¥ª«îç ¥¬ ­ ç «® áâப¨ ­  á«¥¤. ¯®¤¯¨áì
-
 
316
		jmp .beg_found
-
 
317
	.end_found:
-
 
318
	cmp esi,edx
-
 
319
	jle .no_draw
-
 
320
		sub esi,edx ;esi = text len
-
 
321
		mov eax,4
-
 
322
		int 0x40
-
 
323
	.no_draw:
-
 
324
	popad
-
 
325
	ret
-
 
326
endp
-
 
327
 
-
 
328
align 4
-
 
329
proc set_obj_win_param, col:dword, edit:dword
-
 
330
	pushad
-
 
331
		stdcall get_obj_text_col, [foc_obj], [col] ;edx - text
-
 
332
		stdcall get_obj_text_len_col, [foc_obj], [col] ;eax - ¤«¨­­  ¯®«ï
-
 
333
		mov edi,[edit]
-
 
334
		cmp eax,1
-
 
335
		jl @f
-
 
336
			dec eax
-
 
337
			mov ed_max,eax ;ed_max = edi+.max
-
 
338
			mov ed_focus_border_color, dword 0xff
-
 
339
			mov ed_blur_border_color, dword 0x808080
-
 
340
			stdcall [edit_box_set_text], edi,edx ;®¡­®¢«ï¥¬ editbox
-
 
341
			jmp .end_f
-
 
342
		@@:
-
 
343
			mov ed_max,dword MAX_LEN_OBJ_TXT
-
 
344
			;stdcall [edit_box_set_text], edi,txt_null
-
 
345
		.end_f:
-
 
346
	popad
-
 
347
	ret
-
 
348
endp
253
 
349
 
254
align 4
350
align 4
255
prop_key:
351
prop_key:
256
push eax edi
352
push eax ecx edi
257
	mcall 2
353
	mcall 2
-
 
354
	mov edi,edit2
-
 
355
	mov ecx,[obj_count_txt_props]
258
	mov edi,edit2
356
	cld
259
	.cycle:
357
	.cycle:
260
		stdcall [edit_box_key], edi
358
		stdcall [edit_box_key], edi
261
		add edi,ed_struc_size
359
		add edi,ed_struc_size
262
		cmp edi,prop_wnd_edits_end
-
 
263
		jl .cycle
360
	loop .cycle
264
 
361
 
265
	mov edi,[foc_obj]
362
	mov edi,dword[foc_obj]
266
	cmp byte[edi],C_VAR
363
	cmp dword[edi],C_VAR
267
	jne @f
364
	jne @f
268
		stdcall [tl_key], tree3
365
		stdcall [tl_key], tree3
269
	@@:
366
	@@:
270
pop edi eax
367
pop edi ecx eax
271
	ret
368
	ret
272
 
369
 
273
align 4
370
align 4
274
prop_mouse:
371
prop_mouse:
275
	push edi
372
	push ecx edi
276
	mov edi,edit2
373
	mov edi,edit2
-
 
374
	mov ecx,[obj_count_txt_props]
-
 
375
	cld
277
	.cycle:
376
	.cycle:
278
		stdcall [edit_box_mouse], edi
377
		stdcall [edit_box_mouse], edi
279
		add edi,ed_struc_size
378
		add edi,ed_struc_size
280
		cmp edi,prop_wnd_edits_end
-
 
281
		jl .cycle
379
	loop .cycle
282
 
380
 
283
	mov edi,[foc_obj]
381
	mov edi,dword[foc_obj]
284
	cmp byte[edi],C_VAR
382
	cmp dword[edi],C_VAR
285
	jne @f
383
	jne @f
286
		stdcall [tl_mouse], tree3
384
		stdcall [tl_mouse], tree3
287
	@@:
385
	@@:
288
 
386
 
289
	checkboxes_mouse2 check_boxes,check_boxes_end
387
	checkboxes_mouse2 check_boxes,check_boxes_end
290
 
-
 
291
	pop edi
388
	pop edi ecx
292
	ret
389
	ret
293
 
390
 
294
align 4
391
align 4
295
prop_button:
392
prop_button:
296
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
393
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
297
 
394
 
298
	cmp ah,10
395
	cmp ah,10
299
	jne @f
396
	jne @f
300
		call but_element_change
397
		call but_element_change
301
		mov ah,1 ;¤«ï § ªàëâ¨ï ®ª­ 
398
		mov ah,1 ;¤«ï § ªàëâ¨ï ®ª­ 
302
	@@:
399
	@@:
303
 
400
 
304
	cmp ah,1
401
	cmp ah,1
305
	jne prop_still
402
	jne prop_still
306
.exit:
403
.exit:
307
	mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ â¥«¨ ­  ¨ª®­ª¨ çâ®-¡ë ¨å ­¥ 㤠«¨« ¤¥áâàãªâ®à
404
	mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ â¥«¨ ­  ¨ª®­ª¨ çâ®-¡ë ¨å ­¥ 㤠«¨« ¤¥áâàãªâ®à
308
	mov dword[tree3.data_img_sys],0 ;â. ª. ®­¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥­â å
405
	mov dword[tree3.data_img_sys],0 ;â. ª. ®­¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥­â å
309
	stdcall dword[tl_data_clear], tree3
406
	stdcall dword[tl_data_clear], tree3
310
	mov byte[prop_wnd_run],0 ;®¡­ã«ï¥¬ áç¥â稪 ®ª®­
407
	mov byte[prop_wnd_run],0 ;®¡­ã«ï¥¬ áç¥â稪 ®ª®­
311
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
408
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
312
 
409
 
313
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
410
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
314
tree3 tree_list sizeof.object,(MAX_CED_OBJECTS shr 2)+2, tl_key_no_edit+tl_list_box_mode,\
411
tree3 tree_list sizeof.object,(MAX_CED_OBJECTS shr 2)+2, tl_key_no_edit+tl_list_box_mode,\
315
	16,16, 0xffffff,0xb0d0ff,0xd000ff, 320,30,165,125, 0,4,MAX_LEN_OBJ_TXT, el_focus,\
412
	16,16, 0xffffff,0xb0d0ff,0xd000ff, 320,30,165,125, 0,4,MAX_LEN_OBJ_TXT, el_focus,\
316
	w_scr_t3,0
413
	w_scr_t3,0
317
 
414
 
318
align 4
415
align 4
319
w_scr_t3:
416
w_scr_t3:
320
.size_x     dw 16 ;+0
417
.size_x     dw 16 ;+0
321
rb 2+2+2
418
rb 2+2+2
322
.btn_high   dd 15 ;+8
419
.btn_high   dd 15 ;+8
323
.type	    dd 1  ;+12
420
.type	    dd 1  ;+12
324
.max_area   dd 100  ;+16
421
.max_area   dd 100  ;+16
325
rb 4+4
422
rb 4+4
326
.bckg_col   dd 0xeeeeee ;+28
423
.bckg_col   dd 0xeeeeee ;+28
327
.frnt_col   dd 0xbbddff ;+32
424
.frnt_col   dd 0xbbddff ;+32
328
.line_col   dd 0  ;+36
425
.line_col   dd 0  ;+36
329
rb 4+2+2
426
rb 4+2+2
330
.run_x:
427
.run_x:
331
rb 2+2+2+2+4+4+4+4+4+4
428
rb 2+2+2+2+4+4+4+4+4+4
332
.all_redraw dd 0 ;+80
429
.all_redraw dd 0 ;+80
333
.ar_offset  dd 1 ;+84
430
.ar_offset  dd 1 ;+84
334
 
431
 
335
check_boxes:
432
check_boxes:
336
ch1 check_box2 (320 shl 16+11),(160 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
433
ch1 check_box2 (320 shl 16+11),(160 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
337
ch2 check_box2 (320 shl 16+11),(175 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
434
ch2 check_box2 (320 shl 16+11),(175 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
338
ch3 check_box2 (320 shl 16+11),(190 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
435
ch3 check_box2 (320 shl 16+11),(190 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
339
ch4 check_box2 (320 shl 16+11),(205 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
436
ch4 check_box2 (320 shl 16+11),(205 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle
340
check_boxes_end:
437
check_boxes_end:
341
 
438
 
342
ch_text db 0
439
ch_text db 0