Subversion Repositories Kolibri OS

Rev

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

Rev 4146 Rev 4336
1
idbChange	equ 2
1
idbChange	equ 2
2
idbCreate	equ 3
2
idbCreate	equ 3
3
idbLeft 	equ 4
3
idbLeft 	equ 4
4
idbRight	equ 5
4
idbRight	equ 5
5
idbCancel	equ 1
5
idbCancel	equ 1
6
 
6
 
7
DlgAdd:
7
DlgAdd:
8
DlgProp:
8
DlgProp:
9
 
9
 
10
	mov	eax,[SelIcon]
10
	mov	eax,[SelIcon]
11
	mov	[DlgSelIcon],eax
11
	mov	[DlgSelIcon],eax
12
	cmp	eax,-1
12
	cmp	eax,-1
13
	jne	SetProp
13
	jne	SetProp
14
 
14
 
15
    ;-----------
15
    ;-----------
16
	mov	eax,[MouseX]
16
	mov	eax,[MouseX]
17
	mov	ebx,[MouseY]
17
	mov	ebx,[MouseY]
18
 
18
 
19
	cmp	ax,[wsX]
19
	cmp	ax,[wsX]
20
	jae	@f
20
	jae	@f
21
	mov	ax,[wsX]
21
	mov	ax,[wsX]
22
      @@:
22
      @@:
23
 
23
 
24
	cmp	bx,[wsY]
24
	cmp	bx,[wsY]
25
	jae	@f
25
	jae	@f
26
	mov	bx,[wsY]
26
	mov	bx,[wsY]
27
      @@:			    ;eax,ebx - ॠ«ì­ ï ª®®à¤¨­ â . ‚ᥠª®®à¤¨­ âë ¢ ¯à®£¥ ®â­®á¨â¥«ì­® «¥¢®£® ¢¥àå­¥£® 㣫  à ¡®ç¥© ®¡« áâ¨
27
      @@:			    ;eax,ebx - ðåàëüíàÿ êîîðäèíàòà. Âñå êîîðäèíàòû â ïðîãå îòíîñèòåëüíî ëåâîãî âåðõíåãî óãëà ðàáî÷åé îáëàñòè
28
 
28
 
29
	xor	edx,edx
29
	xor	edx,edx
30
	mov	dx,[wsXe]
30
	mov	dx,[wsXe]
31
	sub	edx,ICON_SIZE
31
	sub	edx,ICON_SIZE
32
	cmp	eax,edx
32
	cmp	eax,edx
33
	jbe	@f
33
	jbe	@f
34
	mov	eax,edx
34
	mov	eax,edx
35
      @@:
35
      @@:
36
 
36
 
37
	mov	dx,[wsYe]
37
	mov	dx,[wsYe]
38
	sub	edx,ICON_SIZE
38
	sub	edx,ICON_SIZE
39
	cmp	ebx,edx
39
	cmp	ebx,edx
40
	jbe	@f
40
	jbe	@f
41
	mov	ebx,edx
41
	mov	ebx,edx
42
      @@:
42
      @@:
43
 
43
 
44
	xor	edx,edx 	     ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â­®á¨â¥«ì­ë¥
44
	xor	edx,edx 	     ;ïðåîáðàçîâûâàåì â îòíîñèòåëüíûå
45
	mov	dx,[wsW]
45
	mov	dx,[wsW]
46
	shr	edx,1
46
	shr	edx,1
47
	add	dx,[wsX]
47
	add	dx,[wsX]
48
	cmp	eax,edx
48
	cmp	eax,edx
49
	jbe	@f
49
	jbe	@f
50
	sub	ax,[wsXe]
50
	sub	ax,[wsXe]
51
	inc	ax
51
	inc	ax
52
	jmp	.dlg1
52
	jmp	.dlg1
53
      @@:
53
      @@:
54
	sub	ax,[wsX]
54
	sub	ax,[wsX]
55
    .dlg1:
55
    .dlg1:
56
 
56
 
57
	xor	edx,edx
57
	xor	edx,edx
58
	mov	dx,[wsH]
58
	mov	dx,[wsH]
59
	shr	edx,1
59
	shr	edx,1
60
	add	dx,[wsY]
60
	add	dx,[wsY]
61
	cmp	ebx,edx
61
	cmp	ebx,edx
62
	jbe	@f
62
	jbe	@f
63
	sub	bx,[wsYe]
63
	sub	bx,[wsYe]
64
	inc	bx
64
	inc	bx
65
	jmp	.dlg2
65
	jmp	.dlg2
66
      @@:
66
      @@:
67
	sub	bx,[wsY]
67
	sub	bx,[wsY]
68
    .dlg2:
68
    .dlg2:
69
 
69
 
70
	mov	[AddX],eax
70
	mov	[AddX],eax
71
	mov	[AddY],ebx
71
	mov	[AddY],ebx
72
    ;-----------
72
    ;-----------
73
 
73
 
74
	mov	ecx,NAME_LENGTH
74
	mov	ecx,NAME_LENGTH
75
	mov	edi,DAreaName
75
	mov	edi,DAreaName
76
	xor	al,al
76
	xor	al,al
77
	rep	stosb
77
	rep	stosb
78
	mov	dword[edtName.size],0
78
	mov	dword[edtName.size],0
79
	mov	dword[edtName.pos],0
79
	mov	dword[edtName.pos],0
80
 
80
 
81
	mov	ecx,256
81
	mov	ecx,256
82
	mov	edi,DAreaPath
82
	mov	edi,DAreaPath
83
	rep	stosb
83
	rep	stosb
84
	mov	dword[edtExePath.size],0
84
	mov	dword[edtExePath.size],0
85
	mov	dword[edtExePath.pos],0
85
	mov	dword[edtExePath.pos],0
86
 
86
 
87
	mov	ecx,256
87
	mov	ecx,256
88
	mov	edi,DAreaParams
88
	mov	edi,DAreaParams
89
	rep	stosb
89
	rep	stosb
90
	mov	dword[edtParams.size],0
90
	mov	dword[edtParams.size],0
91
	mov	dword[edtParams.pos],0
91
	mov	dword[edtParams.pos],0
92
 
92
 
93
	mov	ecx,256
93
	mov	ecx,256
94
	mov	edi,DAreaIcon
94
	mov	edi,DAreaIcon
95
	rep	stosb
95
	rep	stosb
96
	mov	dword[edtIcon.size],0
96
	mov	dword[edtIcon.size],0
97
	mov	dword[edtIcon.pos],0
97
	mov	dword[edtIcon.pos],0
98
 
98
 
99
	jmp	startDlg
99
	jmp	startDlg
100
    ;--------
100
    ;--------
101
SetProp:
101
SetProp:
102
	mov	esi,[IconsOffs+eax*4]
102
	mov	esi,[IconsOffs+eax*4]
103
	mov	edi,DAreaName
103
	mov	edi,DAreaName
104
	xor	ecx,ecx
104
	xor	ecx,ecx
105
     @@:
105
     @@:
106
	lodsb
106
	lodsb
107
	stosb
107
	stosb
108
	inc	ecx
108
	inc	ecx
109
	test	al,al
109
	test	al,al
110
	jnz	@b
110
	jnz	@b
111
	dec	ecx
111
	dec	ecx
112
	mov	dword[edtName.size],ecx
112
	mov	dword[edtName.size],ecx
113
	mov	dword[edtName.pos],ecx
113
	mov	dword[edtName.pos],ecx
114
 
114
 
115
	xor	ecx,ecx
115
	xor	ecx,ecx
116
	mov	edi,DAreaPath
116
	mov	edi,DAreaPath
117
     @@:
117
     @@:
118
	lodsb
118
	lodsb
119
	stosb
119
	stosb
120
	inc	ecx
120
	inc	ecx
121
	test	al,al
121
	test	al,al
122
	jnz	@b
122
	jnz	@b
123
	dec	ecx
123
	dec	ecx
124
	mov	dword[edtExePath.size],ecx
124
	mov	dword[edtExePath.size],ecx
125
	mov	dword[edtExePath.pos],ecx
125
	mov	dword[edtExePath.pos],ecx
126
 
126
 
127
	xor	ecx,ecx
127
	xor	ecx,ecx
128
	mov	edi,DAreaParams
128
	mov	edi,DAreaParams
129
     @@:
129
     @@:
130
	lodsb
130
	lodsb
131
	stosb
131
	stosb
132
	inc	ecx
132
	inc	ecx
133
	test	al,al
133
	test	al,al
134
	jnz	@b
134
	jnz	@b
135
	dec	ecx
135
	dec	ecx
136
	mov	dword[edtParams.size],ecx
136
	mov	dword[edtParams.size],ecx
137
	mov	dword[edtParams.pos],ecx
137
	mov	dword[edtParams.pos],ecx
138
 
138
 
139
	xor	ecx,ecx
139
	xor	ecx,ecx
140
	mov	edi,DAreaIcon
140
	mov	edi,DAreaIcon
141
     @@:
141
     @@:
142
	lodsb
142
	lodsb
143
	stosb
143
	stosb
144
	inc	ecx
144
	inc	ecx
145
	test	al,al
145
	test	al,al
146
	jnz	@b
146
	jnz	@b
147
	dec	ecx
147
	dec	ecx
148
	mov	dword[edtIcon.size],ecx
148
	mov	dword[edtIcon.size],ecx
149
	mov	dword[edtIcon.pos],ecx
149
	mov	dword[edtIcon.pos],ecx
150
 
150
 
151
 
151
 
152
startDlg:
152
startDlg:
153
	mcall	9,RBProcInfo,-1
153
	mcall	9,RBProcInfo,-1
154
	mcall	18,21,dword[RBProcInfo+30]
154
	mcall	18,21,dword[RBProcInfo+30]
155
	mov	[slotDlgAdd],eax
155
	mov	[slotDlgAdd],eax
156
 
156
 
157
	or	[edtName.flags],ed_focus
157
	or	[edtName.flags],ed_focus
158
 
158
 
159
	mcall	40,100111b	;SetMaskMessage 100111b
159
	mcall	40,100111b	;SetMaskMessage 100111b
160
	xor	eax,eax
160
	xor	eax,eax
161
	mov	dword[MaxPage],0
161
	mov	dword[MaxPage],0
162
      @@:
162
      @@:
163
	add	eax,ICONS_DRAW_COUNTW
163
	add	eax,ICONS_DRAW_COUNTW
164
	inc	dword[MaxPage]
164
	inc	dword[MaxPage]
165
	cmp	eax,[icon_count]
165
	cmp	eax,[icon_count]
166
	jb	@b
166
	jb	@b
167
	dec	dword[MaxPage]
167
	dec	dword[MaxPage]
168
	cmp	dword[MaxPage],0
168
	cmp	dword[MaxPage],0
169
	jne	@f
169
	jne	@f
170
	mov	dword[MaxPage],1
170
	mov	dword[MaxPage],1
171
      @@:
171
      @@:
172
 
172
 
173
DReDraw:
173
DReDraw:
174
	mcall	48,3,sc,40
174
	mcall	48,3,sc,40
175
 
175
 
176
	mov	eax,[sc.work]
176
	mov	eax,[sc.work]
177
	rol	eax,16
177
	rol	eax,16
178
	add	al,9
178
	add	al,9
179
	jnc	@f
179
	jnc	@f
180
	mov	al,0FFh
180
	mov	al,0FFh
181
      @@:
181
      @@:
182
	rol	eax,16
182
	rol	eax,16
183
	add	al,9
183
	add	al,9
184
	jnc	@f
184
	jnc	@f
185
	mov	al,0FFh
185
	mov	al,0FFh
186
      @@:
186
      @@:
187
	add	ah,9
187
	add	ah,9
188
	jnc	@f
188
	jnc	@f
189
	mov	ah,0FFh
189
	mov	ah,0FFh
190
      @@:
190
      @@:
191
 
191
 
192
	mov	[sbIcons.bckg_col],eax
192
	mov	[sbIcons.bckg_col],eax
193
	m2m	[sbIcons.frnt_col],[sc.work]
193
	m2m	[sbIcons.frnt_col],[sc.work]
194
	m2m	[sbIcons.line_col],[sc.work_graph]
194
	m2m	[sbIcons.line_col],[sc.work_graph]
195
 
195
 
196
	edit_boxes_set_sys_color edtName,edtExePath,sc
196
	edit_boxes_set_sys_color edtName,edtExePath,sc
197
	edit_boxes_set_sys_color edtExePath,edtParams,sc
197
	edit_boxes_set_sys_color edtExePath,edtParams,sc
198
	edit_boxes_set_sys_color edtParams,edtIcon,sc
198
	edit_boxes_set_sys_color edtParams,edtIcon,sc
199
	;edit_boxes_set_sys_color edtIcon,endEdits,sc
199
	;edit_boxes_set_sys_color edtIcon,endEdits,sc
200
 
200
 
201
	call	DRedrawWin
201
	call	DRedrawWin
202
 
202
 
203
DMessages:
203
DMessages:
204
	mcall	10		;WaitMessage
204
	mcall	10		;WaitMessage
205
 
205
 
206
	dec	eax
206
	dec	eax
207
	jz	DReDraw
207
	jz	DReDraw
208
	dec	eax
208
	dec	eax
209
	jz	DKey
209
	jz	DKey
210
	dec	eax
210
	dec	eax
211
	jz	DButton
211
	jz	DButton
212
	sub	eax,3
212
	sub	eax,3
213
	jz	DMouse
213
	jz	DMouse
214
 
214
 
215
	jmp  DMessages
215
	jmp  DMessages
216
 
216
 
217
 
217
 
218
;---------------------------------------------------------------------
218
;---------------------------------------------------------------------
219
DKey:
219
DKey:
220
	mcall	2		;GetKeyPressed
220
	mcall	2		;GetKeyPressed
221
	cmp	ah,1Bh
221
	cmp	ah,1Bh
222
	je	DExit
222
	je	DExit
223
	cmp	ah,9  ;Tab
223
	cmp	ah,9  ;Tab
224
	je	DNextEdit
224
	je	DNextEdit
225
	stdcall [edit_box_key],edtName
225
	stdcall [edit_box_key],edtName
226
	stdcall [edit_box_key],edtExePath
226
	stdcall [edit_box_key],edtExePath
227
	stdcall [edit_box_key],edtParams
227
	stdcall [edit_box_key],edtParams
228
	;stdcall [edit_box_key],edtIcon
228
	;stdcall [edit_box_key],edtIcon
229
 
229
 
230
	jmp	DMessages
230
	jmp	DMessages
231
 
231
 
232
 
232
 
233
DNextEdit:
233
DNextEdit:
234
	test	[edtName.flags],ed_focus
234
	test	[edtName.flags],ed_focus
235
	jne	 .DNE1
235
	jne	 .DNE1
236
	test	[edtExePath.flags],ed_focus
236
	test	[edtExePath.flags],ed_focus
237
	jne	 .DNE2
237
	jne	 .DNE2
238
	test	[edtParams.flags],ed_focus
238
	test	[edtParams.flags],ed_focus
239
	jne	 .DNE3
239
	jne	 .DNE3
240
	;test    [edtIcon.flags],ed_focus
240
	;test    [edtIcon.flags],ed_focus
241
	;jne      .DNE4
241
	;jne      .DNE4
242
	jmp	DMessages
242
	jmp	DMessages
243
 
243
 
244
    .DNE1:
244
    .DNE1:
245
	and	[edtName.flags],not ed_focus
245
	and	[edtName.flags],not ed_focus
246
	or	[edtExePath.flags],ed_focus
246
	or	[edtExePath.flags],ed_focus
247
	stdcall [edit_box_draw],edtName
247
	stdcall [edit_box_draw],edtName
248
	stdcall [edit_box_draw],edtExePath
248
	stdcall [edit_box_draw],edtExePath
249
	jmp	DMessages
249
	jmp	DMessages
250
 
250
 
251
    .DNE2:
251
    .DNE2:
252
	and	[edtExePath.flags],not ed_focus
252
	and	[edtExePath.flags],not ed_focus
253
	or	[edtParams.flags],ed_focus
253
	or	[edtParams.flags],ed_focus
254
	stdcall [edit_box_draw],edtExePath
254
	stdcall [edit_box_draw],edtExePath
255
	stdcall [edit_box_draw],edtParams
255
	stdcall [edit_box_draw],edtParams
256
	jmp	DMessages
256
	jmp	DMessages
257
 
257
 
258
    .DNE3:
258
    .DNE3:
259
	and	[edtParams.flags],not ed_focus
259
	and	[edtParams.flags],not ed_focus
260
	or	[edtName.flags],ed_focus
260
	or	[edtName.flags],ed_focus
261
	stdcall [edit_box_draw],edtParams
261
	stdcall [edit_box_draw],edtParams
262
	stdcall [edit_box_draw],edtName
262
	stdcall [edit_box_draw],edtName
263
	jmp	DMessages
263
	jmp	DMessages
264
 
264
 
265
    ;.DNE4:
265
    ;.DNE4:
266
    ;    and     [edtIcon.flags],not ed_focus
266
    ;    and     [edtIcon.flags],not ed_focus
267
    ;    or      [edtName.flags],ed_focus
267
    ;    or      [edtName.flags],ed_focus
268
    ;    stdcall [edit_box_draw],edtName
268
    ;    stdcall [edit_box_draw],edtName
269
    ;    stdcall [edit_box_draw],edtIcon
269
    ;    stdcall [edit_box_draw],edtIcon
270
    ;    jmp     DMessages
270
    ;    jmp     DMessages
271
;---------------------------------------------------------------------
271
;---------------------------------------------------------------------
272
DButton:
272
DButton:
273
	mcall	17		;GetButtonPressed
273
	mcall	17		;GetButtonPressed
274
	cmp	ah, idbCancel
274
	cmp	ah, idbCancel
275
	je	DExit
275
	je	DExit
276
	cmp	ah,idbChange
276
	cmp	ah,idbChange
277
	je	DSetExePath
277
	je	DSetExePath
278
	cmp	ah,idbCreate
278
	cmp	ah,idbCreate
279
	je	DSaveIcon
279
	je	DSaveIcon
280
 
280
 
281
	jmp	DMessages
281
	jmp	DMessages
282
;-------------------------------------------------------------------------------
282
;-------------------------------------------------------------------------------
283
DMouse:
283
DMouse:
284
	stdcall [edit_box_mouse],edtName
284
	stdcall [edit_box_mouse],edtName
285
	stdcall [edit_box_mouse],edtExePath
285
	stdcall [edit_box_mouse],edtExePath
286
	stdcall [edit_box_mouse],edtParams
286
	stdcall [edit_box_mouse],edtParams
287
;        stdcall [edit_box_mouse],edtIcon
287
;        stdcall [edit_box_mouse],edtIcon
288
 
288
 
289
	push	[sbIcons.position]
289
	push	[sbIcons.position]
290
	stdcall [scrollbar_h_mouse],sbIcons
290
	stdcall [scrollbar_h_mouse],sbIcons
291
	pop	eax
291
	pop	eax
292
	cmp	eax,[sbIcons.position]
292
	cmp	eax,[sbIcons.position]
293
	je	@f
293
	je	@f
294
	call	DrawStdIcons
294
	call	DrawStdIcons
295
      @@:
295
      @@:
296
 
296
 
297
	mcall	37,2		;GetMouseKey
297
	mcall	37,2		;GetMouseKey
298
	test	eax,1
298
	test	eax,1
299
	jz	DMessages
299
	jz	DMessages
300
	mcall	37,1		;GetMouseWinPos
300
	mcall	37,1		;GetMouseWinPos
301
 
301
 
302
	test	eax,10001000h
302
	test	eax,10001000h
303
	jne	DMessages
303
	jne	DMessages
304
	xor	edx,edx
304
	xor	edx,edx
305
	mov	dx,ax	  ;y
305
	mov	dx,ax	  ;y
306
	shr	eax,16	  ;x
306
	shr	eax,16	  ;x
307
 
307
 
308
	sub	eax,ICONSX
308
	sub	eax,ICONSX
309
	js	DMessages
309
	js	DMessages
310
	sub	edx,ICONSY
310
	sub	edx,ICONSY
311
	js	DMessages
311
	js	DMessages
312
 
312
 
313
	cmp	eax,(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
313
	cmp	eax,(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
314
	ja	DMessages
314
	ja	DMessages
315
	cmp	edx,(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
315
	cmp	edx,(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
316
	ja	DMessages
316
	ja	DMessages
317
 
317
 
318
	xor	ebx,ebx
318
	xor	ebx,ebx
319
	mov	ecx,[sbIcons.position]
319
	mov	ecx,[sbIcons.position]
320
	test	ecx,ecx
320
	test	ecx,ecx
321
	jz	.DM
321
	jz	.DM
322
     @@:
322
     @@:
323
	add	ebx,ICONS_DRAW_COUNTH
323
	add	ebx,ICONS_DRAW_COUNTH
324
	loop	@b
324
	loop	@b
325
     .DM:
325
     .DM:
326
 
326
 
327
	sub	eax,IMG_SIZE+SPCW
327
	sub	eax,IMG_SIZE+SPCW
328
	js     .DM1
328
	js     .DM1
329
     @@:
329
     @@:
330
	add	ebx,ICONS_DRAW_COUNTH
330
	add	ebx,ICONS_DRAW_COUNTH
331
	sub	eax,IMG_SIZE+SPCW
331
	sub	eax,IMG_SIZE+SPCW
332
	jns	@b
332
	jns	@b
333
     .DM1:
333
     .DM1:
334
 
334
 
335
 
335
 
336
	sub	edx,IMG_SIZE+SPCH
336
	sub	edx,IMG_SIZE+SPCH
337
	js     .DM2
337
	js     .DM2
338
     @@:
338
     @@:
339
	inc	ebx
339
	inc	ebx
340
	sub	edx,IMG_SIZE+SPCH
340
	sub	edx,IMG_SIZE+SPCH
341
	jns	@b
341
	jns	@b
342
     .DM2:
342
     .DM2:
343
 
343
 
344
	mov	eax,ebx
344
	mov	eax,ebx
345
 
345
 
346
	cmp	eax,[icon_count]
346
	cmp	eax,[icon_count]
347
	jae	DMessages
347
	jae	DMessages
348
 
348
 
349
	mov	bl,10
349
	mov	bl,10
350
	div	bl
350
	div	bl
351
 
351
 
352
	add	ah,30h
352
	add	ah,30h
353
	test	al,al
353
	test	al,al
354
	jz	@f
354
	jz	@f
355
 
355
 
356
	add	al,30h
356
	add	al,30h
357
	mov	byte[DAreaIcon],al
357
	mov	byte[DAreaIcon],al
358
	mov	byte[DAreaIcon+1],ah
358
	mov	byte[DAreaIcon+1],ah
359
	mov	byte[DAreaIcon+2],0
359
	mov	byte[DAreaIcon+2],0
360
	mov	dword[edtIcon.size],2
360
	mov	dword[edtIcon.size],2
361
	jmp	.RedrawNum
361
	jmp	.RedrawNum
362
 
362
 
363
      @@:
363
      @@:
364
	mov	byte[DAreaIcon],ah
364
	mov	byte[DAreaIcon],ah
365
	mov	byte[DAreaIcon+1],0
365
	mov	byte[DAreaIcon+1],0
366
	mov	dword[edtIcon.size],1
366
	mov	dword[edtIcon.size],1
367
	jmp	.RedrawNum
367
	jmp	.RedrawNum
368
    .RedrawNum:
368
    .RedrawNum:
369
 
369
 
370
 
370
 
371
      ;  stdcall [edit_box_draw],edtIcon
371
      ;  stdcall [edit_box_draw],edtIcon
372
 
372
 
373
 
373
 
374
	call	DrawSelIcon
374
	call	DrawSelIcon
375
	jmp	DReDraw;DMessages;
375
	jmp	DReDraw;DMessages;
376
;-------------------------------------------------------------------------------
376
;-------------------------------------------------------------------------------
377
DSetExePath:
377
DSetExePath:
378
	stdcall [OpenDialog_Start],OpenDialog_data
378
	stdcall [OpenDialog_Start],OpenDialog_data
379
	mov	edi,DAreaPath
379
	mov	edi,DAreaPath
380
	xor	al,al
380
	xor	al,al
381
	or	ecx,-1
381
	or	ecx,-1
382
	repne	scasb
382
	repne	scasb
383
	sub	edi,DAreaPath
383
	sub	edi,DAreaPath
384
	dec	edi
384
	dec	edi
385
	mov	dword[edtExePath+12*4],edi
385
	mov	dword[edtExePath+12*4],edi
386
 
386
 
387
	jmp	DMessages;DReDraw;
387
	jmp	DMessages;DReDraw;
388
 
388
 
389
DSaveIcon:
389
DSaveIcon:
390
	mov	edi,DAreaName
390
	mov	edi,DAreaName
391
	mov	esi,secRButt
391
	mov	esi,secRButt
392
    @@: lodsb
392
    @@: lodsb
393
	scasb
393
	scasb
394
	jne	@f
394
	jne	@f
395
	test	al,al
395
	test	al,al
396
	jnz	@b
396
	jnz	@b
397
 
397
 
398
	mov	dword[fiRunProg+8],ErrName
398
	mov	dword[fiRunProg+8],ErrName
399
	mov	dword[fiRunProg+21],pthNotify
399
	mov	dword[fiRunProg+21],pthNotify
400
	mcall	70,fiRunProg
400
	mcall	70,fiRunProg
401
 
401
 
402
	jmp	DMessages
402
	jmp	DMessages
403
    @@:
403
    @@:
404
	mov	dword[fiRunProg+8],WarningSave
404
	mov	dword[fiRunProg+8],WarningSave
405
	mov	dword[fiRunProg+21],pthNotify
405
	mov	dword[fiRunProg+21],pthNotify
406
	mcall	70,fiRunProg
406
	mcall	70,fiRunProg
407
 
407
 
408
 
408
 
409
	cmp	[DlgSelIcon],-1
409
	cmp	[DlgSelIcon],-1
410
	je	@f
410
	je	@f
411
		       ;㤠«ï¥¬ ¨§ ini áâ àãî ¨ª®­ªã
-
 
412
	mov	ebx,[DlgSelIcon]
-
 
413
	mov	eax,[IconsOffs+ebx*4]
-
 
414
	stdcall [ini_del_section],IconIni,eax
-
 
415
 
411
		       
-
 
412
	stdcall EditIcon,[DlgSelIcon],DAreaIcon,DAreaName,DAreaPath,DAreaParams
-
 
413
	mov	ebx,[DlgSelIcon]
416
	stdcall EditIcon,[DlgSelIcon],DAreaIcon,DAreaName,DAreaPath,DAreaParams
414
	mov	eax,[IconsID+ebx*4]
417
	jmp	DExitAndSave
415
	jmp	DExitAndSave
-
 
416
     @@:
-
 
417
 
-
 
418
	call	GenerateID
-
 
419
 
-
 
420
	mov	ebx,[MaxNumIcon]
-
 
421
	mov	[IconsID+ebx*4],eax
418
     @@:
422
	push	eax
419
	stdcall AddIcon,[AddX],[AddY],DAreaIcon,DAreaName,DAreaPath,DAreaParams
423
	stdcall AddIcon,[AddX],[AddY],DAreaIcon,DAreaName,DAreaPath,DAreaParams
-
 
424
	pop	eax
420
	;jmp     DExitAndSave
425
 
421
;-------------------------------------------------------------------------------
426
;-------------------------------------------------------------------------------
422
DExitAndSave:
427
DExitAndSave:
423
 
428
 
424
	 stdcall [ini_set_str],IconIni,DAreaName,keyPath,DAreaPath,dword[edtExePath.size]
429
	mov	dword[nameSection],eax
425
	 stdcall [ini_set_str],IconIni,DAreaName,keyParams,DAreaParams,dword[edtParams.size]
430
	stdcall [ini_set_str],IconIni,nameSection,keyName,DAreaName,dword[edtName.size]
426
	 stdcall [ini_set_str],IconIni,DAreaName,keyIco,DAreaIcon,dword[edtIcon.size]
431
	stdcall [ini_set_str],IconIni,nameSection,keyPath,DAreaPath,dword[edtExePath.size]
427
	 stdcall [ini_set_int],IconIni,DAreaName,keyX,[MouseX]
432
	stdcall [ini_set_str],IconIni,nameSection,keyParams,DAreaParams,dword[edtParams.size]
-
 
433
	stdcall [ini_set_str],IconIni,nameSection,keyIco,DAreaIcon,dword[edtIcon.size]
-
 
434
 
-
 
435
	cmp	[DlgSelIcon],-1
-
 
436
	jne	@f
-
 
437
	stdcall [ini_set_int],IconIni,nameSection,keyX,[MouseX]
428
	 stdcall [ini_set_int],IconIni,DAreaName,keyY,[MouseY]
438
	stdcall [ini_set_int],IconIni,nameSection,keyY,[MouseY]
429
 
439
      @@:
430
DExit:
440
DExit:
431
	mov	[DlgAddActiv],0
441
	mov	[DlgAddActiv],0
432
	mov	[slotDlgAdd],0
442
	mov	[slotDlgAdd],0
433
	mcall	-1		;ExitThread
443
	mcall	-1		;ExitThread
434
 
444
 
435
;##################################################################
445
;##################################################################
436
proc DRedrawWin
446
proc DRedrawWin
437
	mcall	12,1		;RedrawWinBeg
447
	mcall	12,1		;RedrawWinBeg
438
	mov	edx,[sc.work]
448
	mov	edx,[sc.work]
439
	or	edx,34000000h
449
	or	edx,34000000h
440
	cmp	[DlgSelIcon],-1
450
	cmp	[DlgSelIcon],-1
441
	jne	 @f
451
	jne	 @f
442
	mov	edi,DTitleAdd
452
	mov	edi,DTitleAdd
443
	jmp	.l1
453
	jmp	.l1
444
      @@:
454
      @@:
445
	mov	edi,DTitleProp
455
	mov	edi,DTitleProp
446
      .l1:
456
      .l1:
447
	mcall	0,<100,400>,<100,(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH+165>,,,
457
	mcall	0,<100,400>,<100,(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH+165>,,,
448
 
458
 
449
	stdcall [edit_box_draw],edtName
459
	stdcall [edit_box_draw],edtName
450
	stdcall [edit_box_draw],edtExePath
460
	stdcall [edit_box_draw],edtExePath
451
	stdcall [edit_box_draw],edtParams
461
	stdcall [edit_box_draw],edtParams
452
;        stdcall [edit_box_draw],edtIcon
462
;        stdcall [edit_box_draw],edtIcon
453
 
463
 
454
	call	DrawStdIcons
464
	call	DrawStdIcons
455
 
465
 
456
 
466
 
457
	stdcall [scrollbar_h_draw],sbIcons
467
	stdcall [scrollbar_h_draw],sbIcons
458
	mcall	38,,\
468
	mcall	38,,\
459
		   ,\
469
		   ,\
460
		[sc.work_graph]
470
		[sc.work_graph]
461
	mcall	  ,,\
471
	mcall	  ,,\
462
		   ,\
472
		   ,\
463
		[sc.work_graph]
473
		[sc.work_graph]
464
 
474
 
465
	mcall	  ,,\
475
	mcall	  ,,\
466
		   ,\
476
		   ,\
467
		[sc.work_graph]
477
		[sc.work_graph]
468
	mcall	  ,,\
478
	mcall	  ,,\
469
		   ,\
479
		   ,\
470
		[sc.work_graph]
480
		[sc.work_graph]
471
 
481
 
472
				  ;BUTTONS
482
				  ;BUTTONS
473
	mcall	8,<250,49>,<30+END_ICONS_AREAH,16>,idbCreate,[sc.work_button]
483
	mcall	8,<250,49>,<30+END_ICONS_AREAH,16>,idbCreate,[sc.work_button]
474
	mcall	 ,<305,54>,			  ,idbCancel
484
	mcall	 ,<305,54>,			  ,idbCancel
475
	mcall	 ,<351,14>,<26,14>	       ,idbChange
485
	mcall	 ,<351,14>,<26,14>	       ,idbChange
476
 
486
 
477
				  ;CAPTIONS
487
				  ;CAPTIONS
478
	mov	ecx,[sc.work_text]
488
	mov	ecx,[sc.work_text]
479
	or	ecx,80000000h
489
	or	ecx,80000000h
480
	mcall	4,<30+IMG_SIZE,10>,,DCaptName
490
	mcall	4,<30+IMG_SIZE,10>,,DCaptName
481
	mcall	 ,<30+IMG_SIZE,30>,,DCaptPath
491
	mcall	 ,<30+IMG_SIZE,30>,,DCaptPath
482
	mcall	 ,<30+IMG_SIZE,50>,,DCaptParams
492
	mcall	 ,<30+IMG_SIZE,50>,,DCaptParams
483
	;mcall    ,<30+IMG_SIZE,70>,,DCaptIcon
493
	;mcall    ,<30+IMG_SIZE,70>,,DCaptIcon
484
 
494
 
485
if lang eq ru
495
if lang eq ru
486
	mov	ecx,[sc.work_button_text]
496
	mov	ecx,[sc.work_button_text]
487
	or	ecx,80000000h
497
	or	ecx,80000000h
488
	mcall	 ,<309,35+END_ICONS_AREAH>,,DCaptCancel
498
	mcall	 ,<309,35+END_ICONS_AREAH>,,DCaptCancel
489
 
499
 
490
	cmp	[DlgSelIcon],-1
500
	cmp	[DlgSelIcon],-1
491
	jne	@f
501
	jne	@f
492
	mpack	ebx,255,35+END_ICONS_AREAH
502
	mpack	ebx,255,35+END_ICONS_AREAH
493
	mov	edx,DCaptCreate
503
	mov	edx,DCaptCreate
494
	jmp	.DRD1
504
	jmp	.DRD1
495
      @@:
505
      @@:
496
	mpack	ebx,252,35+END_ICONS_AREAH
506
	mpack	ebx,252,35+END_ICONS_AREAH
497
	mov	edx,DCaptProperties
507
	mov	edx,DCaptProperties
498
     .DRD1:
508
     .DRD1:
499
else
509
else
500
	mov	ecx,[sc.work_button_text]
510
	mov	ecx,[sc.work_button_text]
501
	or	ecx,80000000h
511
	or	ecx,80000000h
502
	mcall	 ,<315,35+END_ICONS_AREAH>,,DCaptCancel
512
	mcall	 ,<315,35+END_ICONS_AREAH>,,DCaptCancel
503
 
513
 
504
 
514
 
505
	cmp	[DlgSelIcon],-1
515
	cmp	[DlgSelIcon],-1
506
	jne	@f
516
	jne	@f
507
	mpack	ebx,257,35+END_ICONS_AREAH
517
	mpack	ebx,257,35+END_ICONS_AREAH
508
	mov	edx,DCaptCreate
518
	mov	edx,DCaptCreate
509
	jmp	.DRD1
519
	jmp	.DRD1
510
      @@:
520
      @@:
511
	mpack	ebx,257,35+END_ICONS_AREAH
521
	mpack	ebx,257,35+END_ICONS_AREAH
512
	mov	edx,DCaptProperties
522
	mov	edx,DCaptProperties
513
     .DRD1:
523
     .DRD1:
514
end if
524
end if
515
	mcall
525
	mcall
516
 
526
 
517
	mcall	1,351+4  ,26+10,[sc.work_button_text]
527
	mcall	1,351+4  ,26+10,[sc.work_button_text]
518
	mcall	 ,351+4+3,26+10,
528
	mcall	 ,351+4+3,26+10,
519
	mcall	 ,351+4+6,26+10,
529
	mcall	 ,351+4+6,26+10,
520
 
530
 
521
	call DrawSelIcon
531
	call DrawSelIcon
522
 
532
 
523
	mcall	12,2		;RedrawWinEnd
533
	mcall	12,2		;RedrawWinEnd
524
	ret
534
	ret
525
endp
535
endp
526
 
536
 
527
 
537
 
528
proc DrawStdIcons
538
proc DrawStdIcons
529
local IcoX:DWORD,\
539
local IcoX:DWORD,\
530
      IcoY:DWORD,\
540
      IcoY:DWORD,\
531
      iIcon:DWORD
541
      iIcon:DWORD
532
 
542
 
533
	mov	ecx,[sbIcons.position]
543
	mov	ecx,[sbIcons.position]
534
	xor	eax,eax
544
	xor	eax,eax
535
	m2m	dword[iIcon],0
545
	m2m	dword[iIcon],0
536
 
546
 
537
	test	ecx,ecx
547
	test	ecx,ecx
538
	jz	.DST1
548
	jz	.DST1
539
     @@:
549
     @@:
540
	add	[iIcon],ICONS_DRAW_COUNTH
550
	add	[iIcon],ICONS_DRAW_COUNTH
541
	add	eax,IMG_SIZE*IMG_SIZE*4*ICONS_DRAW_COUNTH
551
	add	eax,IMG_SIZE*IMG_SIZE*4*ICONS_DRAW_COUNTH
542
	loop	@b
552
	loop	@b
543
   .DST1:
553
   .DST1:
544
 
554
 
545
	lea	esi,[eax+44]
555
	lea	esi,[eax+44]
546
	add	esi,[raw_pointer]
556
	add	esi,[raw_pointer]
547
 
557
 
548
	mov	[IcoX],ICONSX
558
	mov	[IcoX],ICONSX
549
 
559
 
550
	mov	ecx,ICONS_DRAW_COUNTW
560
	mov	ecx,ICONS_DRAW_COUNTW
551
  .DrawIcons:
561
  .DrawIcons:
552
	push	ecx
562
	push	ecx
553
 
563
 
554
	mov	[IcoY],ICONSY
564
	mov	[IcoY],ICONSY
555
 
565
 
556
	mov	ecx,ICONS_DRAW_COUNTH
566
	mov	ecx,ICONS_DRAW_COUNTH
557
  .DrawIcoStolb:
567
  .DrawIcoStolb:
558
	push	ecx
568
	push	ecx
559
 
569
 
560
	mov	edi,DlgBufImg
570
	mov	edi,DlgBufImg
561
	mov	edx,IMG_SIZE
571
	mov	edx,IMG_SIZE
562
 
572
 
563
    .DrawLine:
573
    .DrawLine:
564
 
574
 
565
 
575
 
566
	mov	ecx,IMG_SIZE
576
	mov	ecx,IMG_SIZE
567
     .DrawPix:
577
     .DrawPix:
568
 
578
 
569
	lodsd
579
	lodsd
570
	test	eax,0FF000000h
580
	test	eax,0FF000000h
571
	jnz	@f
581
	jnz	@f
572
	mov	eax,[sc.work]
582
	mov	eax,[sc.work]
573
     @@:
583
     @@:
574
 
584
 
575
	mov	[edi],ax
585
	mov	[edi],ax
576
	shr	eax,16
586
	shr	eax,16
577
	mov	[edi+2],al
587
	mov	[edi+2],al
578
	add	edi,3
588
	add	edi,3
579
 
589
 
580
	loop	.DrawPix
590
	loop	.DrawPix
581
 
591
 
582
	dec	edx
592
	dec	edx
583
	jnz    .DrawLine
593
	jnz    .DrawLine
584
 
594
 
585
	mov	edx,[IcoX]
595
	mov	edx,[IcoX]
586
	shl	edx,16
596
	shl	edx,16
587
	mov	dx,word[IcoY]
597
	mov	dx,word[IcoY]
588
	mcall	7,DlgBufImg,
598
	mcall	7,DlgBufImg,
589
 
599
 
590
	inc	[iIcon]
600
	inc	[iIcon]
591
	mov	eax,[iIcon]
601
	mov	eax,[iIcon]
592
	cmp	eax,[icon_count]
602
	cmp	eax,[icon_count]
593
	jae	.endDrawIcon
603
	jae	.endDrawIcon
594
 
604
 
595
	add	dword[IcoY],IMG_SIZE+SPCH
605
	add	dword[IcoY],IMG_SIZE+SPCH
596
	pop	ecx
606
	pop	ecx
597
	loop	.DrawIcoStolb
607
	loop	.DrawIcoStolb
598
 
608
 
599
	add	dword[IcoX],IMG_SIZE+SPCW
609
	add	dword[IcoX],IMG_SIZE+SPCW
600
	pop	ecx
610
	pop	ecx
601
	loop	.DrawIcons
611
	loop	.DrawIcons
602
	jmp	.endProc
612
	jmp	.endProc
603
 
613
 
604
    .endDrawIcon:
614
    .endDrawIcon:
605
 
615
 
606
	mov	ecx,IMG_SIZE*IMG_SIZE
616
	mov	ecx,IMG_SIZE*IMG_SIZE
607
	mov	edi,DlgBufImg
617
	mov	edi,DlgBufImg
608
	mov	eax,[sc.work]
618
	mov	eax,[sc.work]
609
	mov	ebx,eax
619
	mov	ebx,eax
610
	shr	ebx,16
620
	shr	ebx,16
611
     @@:
621
     @@:
612
	mov	word[edi],ax
622
	mov	word[edi],ax
613
	mov	[edi+2],bl
623
	mov	[edi+2],bl
614
	add	edi,3
624
	add	edi,3
615
	loop	@b
625
	loop	@b
616
 
626
 
617
				     ;§ â¨à ­¨¥ ­¥ ¨á¯®«ì§®¢ ­ëå ¬¥áâ
627
				     ;çàòèðàíèå íå èñïîëüçîâàíûõ ìåñò
618
	jmp	.Dalee
628
	jmp	.Dalee
619
 
629
 
620
  .DrawIcons2:
630
  .DrawIcons2:
621
	push	ecx
631
	push	ecx
622
 
632
 
623
	mov	[IcoY],ICONSY
633
	mov	[IcoY],ICONSY
624
	mov	ecx,ICONS_DRAW_COUNTH
634
	mov	ecx,ICONS_DRAW_COUNTH
625
  .DrawIcoStolb2:
635
  .DrawIcoStolb2:
626
	push	ecx
636
	push	ecx
627
 
637
 
628
	mov	edx,[IcoX]
638
	mov	edx,[IcoX]
629
	shl	edx,16
639
	shl	edx,16
630
	mov	dx,word[IcoY]
640
	mov	dx,word[IcoY]
631
	mcall	7,DlgBufImg,
641
	mcall	7,DlgBufImg,
632
 
642
 
633
     .Dalee:
643
     .Dalee:
634
	add	dword[IcoY],IMG_SIZE+SPCH
644
	add	dword[IcoY],IMG_SIZE+SPCH
635
	pop	ecx
645
	pop	ecx
636
	loop	.DrawIcoStolb2
646
	loop	.DrawIcoStolb2
637
 
647
 
638
	add	dword[IcoX],IMG_SIZE+SPCW
648
	add	dword[IcoX],IMG_SIZE+SPCW
639
	pop	ecx
649
	pop	ecx
640
	loop	.DrawIcons2
650
	loop	.DrawIcons2
641
 
651
 
642
   .endProc:
652
   .endProc:
643
 
653
 
644
	ret
654
	ret
645
endp
655
endp
646
 
656
 
647
proc DrawSelIcon
657
proc DrawSelIcon
648
	mov	edi,DAreaIcon
658
	mov	edi,DAreaIcon
649
	cmp	byte[edi],0
659
	cmp	byte[edi],0
650
	jne	@f
660
	jne	@f
651
	ret
661
	ret
652
      @@:
662
      @@:
653
 
663
 
654
	mov	al,[edi]
664
	mov	al,[edi]
655
	cmp	al,'9'
665
	cmp	al,'9'
656
	ja	.PathToIcon
666
	ja	.PathToIcon
657
	cmp	al,'/'
667
	cmp	al,'/'
658
	jne	.GetIconInd
668
	jne	.GetIconInd
659
   .PathToIcon:
669
   .PathToIcon:
660
	mov	al,30h		 ;§ £«ã誠!!!!!!!!!!!!!
670
	mov	al,30h		 ;çàãëóøêà!!!!!!!!!!!!!
661
	mov	byte[edi+1],0
671
	mov	byte[edi+1],0
662
   .GetIconInd:
672
   .GetIconInd:
663
;int3
673
;int3
664
	sub	al,30h
674
	sub	al,30h
665
	cmp	byte[edi+1],0
675
	cmp	byte[edi+1],0
666
	je	@f
676
	je	@f
667
	shl	eax,1
677
	shl	eax,1
668
	lea	eax,[eax*4+eax]
678
	lea	eax,[eax*4+eax]
669
	xor	edx,edx
679
	xor	edx,edx
670
	mov	dl,[edi+1]
680
	mov	dl,[edi+1]
671
	sub	dl,30h
681
	sub	dl,30h
672
	add	eax,edx
682
	add	eax,edx
673
     @@:	     ;eax=num icon
683
     @@:	     ;eax=num icon
674
	cmp	eax,[icon_count]
684
	cmp	eax,[icon_count]
675
	jb	@f
685
	jb	@f
676
	xor	eax,eax
686
	xor	eax,eax
677
     @@:
687
     @@:
678
	test	eax,eax
688
	test	eax,eax
679
	je	.DI1
689
	je	.DI1
680
	mov	ecx,eax
690
	mov	ecx,eax
681
	xor	eax,eax
691
	xor	eax,eax
682
      @@:
692
      @@:
683
	add	eax,IMG_SIZE*IMG_SIZE*4
693
	add	eax,IMG_SIZE*IMG_SIZE*4
684
	loop	@b
694
	loop	@b
685
     .DI1:
695
     .DI1:
686
	mov	esi,eax
696
	mov	esi,eax
687
	add	esi,[raw_pointer]
697
	add	esi,[raw_pointer]
688
	add	esi,44
698
	add	esi,44
689
 
699
 
690
	mov	edi,DlgBufImg
700
	mov	edi,DlgBufImg
691
	mov	edx,IMG_SIZE
701
	mov	edx,IMG_SIZE
692
    .DrawLine:
702
    .DrawLine:
693
 
703
 
694
	mov	ecx,IMG_SIZE
704
	mov	ecx,IMG_SIZE
695
     .DrawPix:
705
     .DrawPix:
696
 
706
 
697
	lodsd
707
	lodsd
698
	test	eax,0FF000000h
708
	test	eax,0FF000000h
699
	jnz	@f
709
	jnz	@f
700
	mov	eax,[sc.work]
710
	mov	eax,[sc.work]
701
     @@:
711
     @@:
702
 
712
 
703
	mov	word[edi],ax
713
	mov	word[edi],ax
704
	shr	eax,16
714
	shr	eax,16
705
	mov	[edi+2],al
715
	mov	[edi+2],al
706
	add	edi,3
716
	add	edi,3
707
 
717
 
708
	loop	.DrawPix
718
	loop	.DrawPix
709
 
719
 
710
	dec	edx
720
	dec	edx
711
	jnz	.DrawLine
721
	jnz	.DrawLine
712
 
722
 
713
	mcall	7,DlgBufImg,,<15,15>
723
	mcall	7,DlgBufImg,,<15,15>
714
 
724
 
715
	ret
725
	ret
716
endp
726
endp