Subversion Repositories Kolibri OS

Rev

Rev 1717 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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