Subversion Repositories Kolibri OS

Rev

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

Rev 5425 Rev 5439
1
ICON_STRIP	equ '/rd/1/icons32.png'
1
ICON_STRIP	equ '/rd/1/icons32.png'
2
ICON_INI	equ '/rd/1/settings/icon.ini'
2
ICON_INI	equ '/rd/1/settings/icon.ini'
3
ICON_SIZE	equ 68	  ;à §¬¥à ®¡« á⨠¤«ï ¨ª®­ª¨ á ­ ¤¯¨áìî
3
ICON_SIZE	equ 68	  ;à §¬¥à ®¡« á⨠¤«ï ¨ª®­ª¨ á ­ ¤¯¨áìî
4
IMG_SIZE	equ 32	  ;à §¬¥à ¨ª®­®ª
4
IMG_SIZE	equ 32	  ;à §¬¥à ¨ª®­®ª
5
TEXT_BOTTOM_Y	equ 14	  ;®âáâ㯠¯® Y ⥪áâ  ®â ­¨§  ¨ª®­ª¨
5
TEXT_BOTTOM_Y	equ 14	  ;®âáâ㯠¯® Y ⥪áâ  ®â ­¨§  ¨ª®­ª¨
6
IMAGE_TOP_Y	equ 10	  ;>=1 Š®®à¤¨­ â  Y ¨ª®­ª¨ ¢ ®¡« á⨠¤«ï ¤ ­­®© ¨ª®­ª¨
6
IMAGE_TOP_Y	equ 10	  ;>=1 Š®®à¤¨­ â  Y ¨ª®­ª¨ ¢ ®¡« á⨠¤«ï ¤ ­­®© ¨ª®­ª¨
7
ALIGN_SIZE	equ 68	  ;à §¬¥à á¥âª¨ ¢ëà ¢­¨¢ ­¨ï
7
ALIGN_SIZE	equ 68	  ;à §¬¥à á¥âª¨ ¢ëà ¢­¨¢ ­¨ï
8
NAME_LENGTH	equ 11	 ;¤«¨­  ¨¬¥­¨ ¨ª®­ª¨
8
NAME_LENGTH	equ 11	 ;¤«¨­  ¨¬¥­¨ ¨ª®­ª¨
9
MIN_NO_MOVING	equ 8	 ;ç¥à¥§ á⮫쪮 ¯¨ªá¥«¥© ᤢ¨£  ¬ëè¨ ­ ç¨­ ¥âáï â áª ­¨¥ ¨ª®­ª¨
9
MIN_NO_MOVING	equ 8	 ;ç¥à¥§ á⮫쪮 ¯¨ªá¥«¥© ᤢ¨£  ¬ëè¨ ­ ç¨­ ¥âáï â áª ­¨¥ ¨ª®­ª¨
10
 
10
 
11
		     ;--------¤«ï ¤¨ «®£  ᮧ¤ ­¨ï/। ªâ¨à®¢ ­¨ï
11
		     ;--------¤«ï ¤¨ «®£  ᮧ¤ ­¨ï/। ªâ¨à®¢ ­¨ï
12
ICONSX		equ 20
12
ICONSX		equ 20
13
ICONSY		equ 80
13
ICONSY		equ 80
14
ICONS_DRAW_COUNTW equ 10  ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ è¨à¨­ã
14
ICONS_DRAW_COUNTW equ 10  ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ è¨à¨­ã
15
ICONS_DRAW_COUNTH equ 2   ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ ¢ëá®âã
15
ICONS_DRAW_COUNTH equ 4   ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ ¢ëá®âã
16
SPCW		equ 3	  ;¯à®¡¥« ¬¥¦¤ã ¨ª®­ª ¬¨ ¯® £®à¨§®­â «¨
16
SPCW		equ 3	  ;¯à®¡¥« ¬¥¦¤ã ¨ª®­ª ¬¨ ¯® £®à¨§®­â «¨
17
SPCH		equ 3
17
SPCH		equ 3
18
END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
18
END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
19
END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
19
END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
20
 
20
 
21
 
21
 
22
 
22
 
23
SizeData	equ bufStdIco+32
23
SizeData	equ bufStdIco+32
24
BegData 	equ fiStdIco.point
24
BegData 	equ fiStdIco.point
25
;------------------------------------------------------------------------------
25
;------------------------------------------------------------------------------
26
	use32
26
	use32
27
	org 0x0
27
	org 0x0
28
	db 'MENUET01'	; 8 byte id
28
	db 'MENUET01'	; 8 byte id
29
	dd 0x01 	; header version
29
	dd 0x01 	; header version
30
	dd START	; start of code
30
	dd START	; start of code
31
	dd I_END	; size of image
31
	dd I_END	; size of image
32
	dd ENDMEM	; memory for app
32
	dd ENDMEM	; memory for app
33
	dd stack_main	; esp
33
	dd stack_main	; esp
34
	dd 0		; boot parameters
34
	dd 0		; boot parameters
35
	dd 0		; path
35
	dd 0		; path
36
;------------------------------------------------------------------------------
36
;------------------------------------------------------------------------------
37
include 'lang.inc'
37
include 'lang.inc'
38
include '../../macros.inc'
38
include '../../macros.inc'
39
include '../../proc32.inc'
39
include '../../proc32.inc'
40
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
40
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
41
include '../../dll.inc'
41
include '../../dll.inc'
42
;include '../../debug.inc'
42
;include '../../debug.inc'
43
;------------------------------------------------------------------------------
43
;------------------------------------------------------------------------------
44
START:		; start of execution
44
START:		; start of execution
45
	mcall	68,11
45
	mcall	68,11
46
	stdcall dll.Load,IMPORTS
46
	stdcall dll.Load,IMPORTS
47
	test	eax,eax
47
	test	eax,eax
48
	jnz	ErrLoadLibs
48
	jnz	ErrLoadLibs
49
 
49
 
50
; unpack deflate
50
; unpack deflate
51
	mov	eax,[unpack_DeflateUnpack2]
51
	mov	eax,[unpack_DeflateUnpack2]
52
	mov	[deflate_unpack],eax
52
	mov	[deflate_unpack],eax
53
;---------------------------------------------------------------------
53
;---------------------------------------------------------------------
54
; get size of file icons32.png
54
; get size of file icons32.png
55
	mcall	70,fiStdIco
55
	mcall	70,fiStdIco
56
	test	eax,eax
56
	test	eax,eax
57
	jnz	ErrorStrp
57
	jnz	ErrorStrp
58
; get memory for icons32.png
58
; get memory for icons32.png
59
	mov	ecx,dword[bufStdIco+32]
59
	mov	ecx,dword[bufStdIco+32]
60
	mov	[fiStdIco.size],ecx
60
	mov	[fiStdIco.size],ecx
61
	mov	[img_size],ecx
61
	mov	[img_size],ecx
62
	mcall	68,12
62
	mcall	68,12
63
	mov	[fiStdIco.point],eax
63
	mov	[fiStdIco.point],eax
64
	mov	[image_file],eax
64
	mov	[image_file],eax
65
; load icons32.png
65
; load icons32.png
66
	mov	dword[fiStdIco],0
66
	mov	dword[fiStdIco],0
67
	mcall	70,fiStdIco
67
	mcall	70,fiStdIco
68
	test	eax,eax
68
	test	eax,eax
69
	jnz	close
69
	jnz	close
70
; convert PNG to RAW
70
; convert PNG to RAW
71
	xor	eax,eax
71
	xor	eax,eax
72
	mov	[return_code],eax
72
	mov	[return_code],eax
73
;int3
73
;int3
74
 
74
 
75
	push	image_file
75
	push	image_file
76
	call	[cnv_png_import.Start]
76
	call	[cnv_png_import.Start]
77
 
77
 
78
	mov	eax,[raw_pointer]
78
	mov	eax,[raw_pointer]
79
	mov	ebx,[eax+32]
79
	mov	ebx,[eax+32]
80
	mov	[strip_file_size],ebx
80
	mov	[strip_file_size],ebx
81
	mov	eax,[eax+28]
81
	mov	eax,[eax+28]
82
	add	eax,[raw_pointer]
82
	add	eax,[raw_pointer]
83
	mov	[strip_file],eax
83
	mov	[strip_file],eax
84
; back memory to system
84
; back memory to system
85
	mcall	68,13,[fiStdIco.point]
85
	mcall	68,13,[fiStdIco.point]
86
 
86
 
87
	mov	eax,[raw_pointer]
87
	mov	eax,[raw_pointer]
88
	mov	eax,[eax+8]
88
	mov	eax,[eax+8]
89
	shr	eax,5
89
	shr	eax,5
90
	mov	[icon_count],eax
90
	mov	[icon_count],eax
91
 
91
 
92
	and	eax,0x7
92
	and	eax,0x7
93
	mov	[cur_band_compensation],eax
93
	mov	[cur_band_compensation],eax
94
 
94
 
95
;########## § £à㦠¥¬ ¤ ­­ë¥ ¨ª®­®ª ¢ ¯ ¬ïâì ##########################
95
;########## § £à㦠¥¬ ¤ ­­ë¥ ¨ª®­®ª ¢ ¯ ¬ïâì ##########################
96
 
96
 
97
	mcall	70,fiIni		     ;¢ë¤¥«ï¥¬ ¯ ¬ïâì, ¤®áâ â®ç­®© ¤«ï åà ­¥­¨ï ini ä ©« .
97
	mcall	70,fiIni		     ;¢ë¤¥«ï¥¬ ¯ ¬ïâì, ¤®áâ â®ç­®© ¤«ï åà ­¥­¨ï ini ä ©« .
98
	test	eax,eax 		;…ñ â®ç­® 墠â¨â ¤«ï åà ­¥­¨ï ¤ ­­ëå ®¡ ¨ª®­ª å
98
	test	eax,eax 		;…ñ â®ç­® 墠â¨â ¤«ï åà ­¥­¨ï ¤ ­­ëå ®¡ ¨ª®­ª å
99
	jnz	ErrorIni
99
	jnz	ErrorIni
100
 
100
 
101
	cmp	dword[bufIni+32],0
101
	cmp	dword[bufIni+32],0
102
	je	ErrorIni
102
	je	ErrorIni
103
	mcall	68,12,dword[bufIni+32]
103
	mcall	68,12,dword[bufIni+32]
104
	mov	dword[BegData],eax
104
	mov	dword[BegData],eax
105
	jmp	NoErrIni
105
	jmp	NoErrIni
106
 
106
 
107
  ErrorIni:
107
  ErrorIni:
108
	mcall	70,fiRunProg
108
	mcall	70,fiRunProg
109
	mcall	-1
109
	mcall	-1
110
 
110
 
111
  NoErrIni:
111
  NoErrIni:
112
	m2m	[PIcoDB],[BegData]
112
	m2m	[PIcoDB],[BegData]
113
 
113
 
114
 
114
 
115
 
115
 
116
	mov	edi,IconsID
116
	mov	edi,IconsID
117
	xor	eax,eax
117
	xor	eax,eax
118
	mov	ecx,100h/4
118
	mov	ecx,100h/4
119
	rep stosd
119
	rep stosd
120
	mov	[nLoadIcon],0
120
	mov	[nLoadIcon],0
121
	stdcall [ini_enum_sections],IconIni,LoadIconsData
121
	stdcall [ini_enum_sections],IconIni,LoadIconsData
122
;int3
122
;int3
123
	mov	eax,dword[PIcoDB]
123
	mov	eax,dword[PIcoDB]
124
	sub	eax,[BegData]
124
	sub	eax,[BegData]
125
	mov	dword[SizeData],eax
125
	mov	dword[SizeData],eax
126
	mov	eax,[BegData]
126
	mov	eax,[BegData]
127
	cmp	eax,[PIcoDB]
127
	cmp	eax,[PIcoDB]
128
	jne	@f
128
	jne	@f
129
	mov	dword[eax],0
129
	mov	dword[eax],0
130
	mov	dword[SizeData],0
130
	mov	dword[SizeData],0
131
   @@:
131
   @@:
132
;######################################################################
132
;######################################################################
133
	call	FillIconsOffs		       ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
133
	call	FillIconsOffs		       ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
134
 
134
 
135
;¨­¨æ¨ «¨§ æ¨ï IPC ¡ãä¥à 
135
;¨­¨æ¨ «¨§ æ¨ï IPC ¡ãä¥à 
136
	mov	dword[IPCbuffer],0
136
	mov	dword[IPCbuffer],0
137
	mov	dword[IPCbuffer+4],8
137
	mov	dword[IPCbuffer+4],8
138
	mcall	60,1,IPCbuffer,1024
138
	mcall	60,1,IPCbuffer,1024
139
 
139
 
140
	mcall	40,01100000b		 ;­ã¦­ë ⮫쪮 ᮡëâ¨ï ¬ëè¨ ¨ IPC,
140
	mcall	40,01100000b		 ;­ã¦­ë ⮫쪮 ᮡëâ¨ï ¬ëè¨ ¨ IPC,
141
					 ;¯¥à¥à¨á®¢ª  ¨ª®­®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥
141
					 ;¯¥à¥à¨á®¢ª  ¨ª®­®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥
142
	mov	eax,[icon_count]
142
	mov	eax,[icon_count]
143
	mov	bl,ICONS_DRAW_COUNTH
143
	mov	bl,ICONS_DRAW_COUNTH
144
	div	bl
144
	div	bl
145
	test	ah,ah
145
	test	ah,ah
146
	jz	@f
146
	jz	@f
147
	inc	al
147
	inc	al
148
     @@:
148
     @@:
149
	and	eax,0FFh
149
	and	eax,0FFh
150
	mov	[sbIcons.max_area],eax
150
	mov	[sbIcons.max_area],eax
151
 
151
 
152
	mcall	51,1,BGRedrawThread,stack_bredraw	;§ ¯ã᪠¥¬ ¯®â®ª ¯¥à¥à¨á®¢ª¨ ¨ª®­®ª
152
	mcall	51,1,BGRedrawThread,stack_bredraw	;§ ¯ã᪠¥¬ ¯®â®ª ¯¥à¥à¨á®¢ª¨ ¨ª®­®ª
153
	stdcall [OpenDialog_Init],OpenDialog_data
153
	stdcall [OpenDialog_Init],OpenDialog_data
154
 
154
 
155
;dph [MaxNumIcon]
155
;dph [MaxNumIcon]
156
 
156
 
157
messages:
157
messages:
158
	mcall	10
158
	mcall	10
159
	sub	eax,6
159
	sub	eax,6
160
	jz	MSGMouse
160
	jz	MSGMouse
161
	dec	eax
161
	dec	eax
162
	jz	MSGIPC
162
	jz	MSGIPC
163
	jmp	messages
163
	jmp	messages
164
 
164
 
165
MSGIPC:
165
MSGIPC:
166
	call	IPCCreateIcon
166
	call	IPCCreateIcon
167
	jmp	messages
167
	jmp	messages
168
 
168
 
169
MSGMouse:
169
MSGMouse:
170
	mcall	37,0	;GetMousePos
170
	mcall	37,0	;GetMousePos
171
	xor	ebx,ebx
171
	xor	ebx,ebx
172
	mov	bx,ax
172
	mov	bx,ax
173
	shr	eax,16
173
	shr	eax,16
174
	mov	ecx,ebx
174
	mov	ecx,ebx
175
	mov	ebx,eax
175
	mov	ebx,eax
176
 
176
 
177
	mcall	34
177
	mcall	34
178
	cmp	eax,1
178
	cmp	eax,1
179
	jne	messages
179
	jne	messages
180
 
180
 
181
	cmp	[RButtonActiv],1
181
	cmp	[RButtonActiv],1
182
	je	messages
182
	je	messages
183
 
183
 
184
	mov	[MouseY],ecx
184
	mov	[MouseY],ecx
185
	mov	[MouseX],ebx
185
	mov	[MouseX],ebx
186
 
186
 
187
 
187
 
188
	mcall	37,2
188
	mcall	37,2
189
	test	al,001b
189
	test	al,001b
190
	jnz	LButtonPress
190
	jnz	LButtonPress
191
	test	al,010b
191
	test	al,010b
192
	jnz	RButtonPress
192
	jnz	RButtonPress
193
	jmp	messages
193
	jmp	messages
194
 
194
 
195
ErrLoadLibs:
195
ErrLoadLibs:
196
	;dps     '¥ 㤠«®áì § £à㧨âì ­¥®¡å®¤¨¬ë¥ ¡¨¡«¨®â¥ª¨'
196
	;dps     '¥ 㤠«®áì § £à㧨âì ­¥®¡å®¤¨¬ë¥ ¡¨¡«¨®â¥ª¨'
197
	;debug_newline
197
	;debug_newline
198
	jmp	close
198
	jmp	close
199
ErrorStrp:
199
ErrorStrp:
200
	;dps     'Žè¨¡ª  ®âªàëâ¨ï icons32.png'
200
	;dps     'Žè¨¡ª  ®âªàëâ¨ï icons32.png'
201
	;debug_newline
201
	;debug_newline
202
close:
202
close:
203
	mcall	-1
203
	mcall	-1
204
 
204
 
205
LButtonPress:
205
LButtonPress:
206
 
206
 
207
	stdcall GetNumIcon,[MouseX],[MouseY],-1
207
	stdcall GetNumIcon,[MouseX],[MouseY],-1
208
;int3
208
;int3
209
	cmp	eax,-1
209
	cmp	eax,-1
210
	jnz	@f
210
	jnz	@f
211
 
211
 
212
    WaitLB1:
212
    WaitLB1:
213
	mcall	37,2
213
	mcall	37,2
214
	test	al,001b
214
	test	al,001b
215
	jz	messages
215
	jz	messages
216
	;Yield
216
	;Yield
217
	mcall	5,1
217
	mcall	5,1
218
	jmp	WaitLB1
218
	jmp	WaitLB1
219
 
219
 
220
 
220
 
221
     @@:
221
     @@:
222
	push	eax
222
	push	eax
223
	stdcall DrawIcon,eax,1
223
	stdcall DrawIcon,eax,1
224
   WaitLB:
224
   WaitLB:
225
	mcall	37,2
225
	mcall	37,2
226
	test	al,001b
226
	test	al,001b
227
	jz	endWaitLB
227
	jz	endWaitLB
228
 
228
 
229
	mcall	37,0
229
	mcall	37,0
230
	xor	ebx,ebx
230
	xor	ebx,ebx
231
	mov	bx,ax
231
	mov	bx,ax
232
	shr	eax,16
232
	shr	eax,16
233
	sub	eax,[MouseX]
233
	sub	eax,[MouseX]
234
	jns	@f
234
	jns	@f
235
	neg	eax
235
	neg	eax
236
      @@:
236
      @@:
237
	sub	ebx,[MouseY]
237
	sub	ebx,[MouseY]
238
	jns	@f
238
	jns	@f
239
	neg	ebx
239
	neg	ebx
240
      @@:
240
      @@:
241
	cmp	[bFixIcons],0
241
	cmp	[bFixIcons],0
242
	jne	@f
242
	jne	@f
243
	cmp	eax,MIN_NO_MOVING
243
	cmp	eax,MIN_NO_MOVING
244
	ja	MovingIcon
244
	ja	MovingIcon
245
	cmp	ebx,MIN_NO_MOVING
245
	cmp	ebx,MIN_NO_MOVING
246
	ja	MovingIcon
246
	ja	MovingIcon
247
      @@:
247
      @@:
248
	;Yield
248
	;Yield
249
	mcall	5,1	;Sleep   1
249
	mcall	5,1	;Sleep   1
250
 
250
 
251
	jmp	WaitLB
251
	jmp	WaitLB
252
   endWaitLB:
252
   endWaitLB:
253
 
253
 
254
	mcall	37,0
254
	mcall	37,0
255
	xor	ebx,ebx
255
	xor	ebx,ebx
256
	mov	bx,ax
256
	mov	bx,ax
257
	shr	eax,16
257
	shr	eax,16
258
	mov	ecx,ebx
258
	mov	ecx,ebx
259
	mov	ebx,eax
259
	mov	ebx,eax
260
	mov	[MouseX],ebx
260
	mov	[MouseX],ebx
261
	mov	[MouseY],ecx
261
	mov	[MouseY],ecx
262
 
262
 
263
	stdcall GetNumIcon,[MouseX],[MouseY],-1
263
	stdcall GetNumIcon,[MouseX],[MouseY],-1
264
	cmp	eax,[esp]	;[esp] = ­®¬¥à ¨ª®­ª¨
264
	cmp	eax,[esp]	;[esp] = ­®¬¥à ¨ª®­ª¨
265
	jne	@f
265
	jne	@f
266
 
266
 
267
	mov	edi,[IconsOffs+eax*4]
267
	mov	edi,[IconsOffs+eax*4]
268
	or	ecx,-1
268
	or	ecx,-1
269
	xor	al,al
269
	xor	al,al
270
	repne	scasb
270
	repne	scasb
271
	mov	ebx,edi
271
	mov	ebx,edi
272
	repne	scasb
272
	repne	scasb
273
			     ;run program
273
			     ;run program
274
	mov	dword[fiRunProg+8],edi
274
	mov	dword[fiRunProg+8],edi
275
	mov	dword[fiRunProg+21],ebx
275
	mov	dword[fiRunProg+21],ebx
276
	mcall	70,fiRunProg
276
	mcall	70,fiRunProg
277
	test	eax,80000000h
277
	test	eax,80000000h
278
	jz	@f
278
	jz	@f
279
 
279
 
280
	mov	dword[fiRunProg+8],ErrRunProg
280
	mov	dword[fiRunProg+8],ErrRunProg
281
	mov	dword[fiRunProg+21],pthNotify
281
	mov	dword[fiRunProg+21],pthNotify
282
	mcall	70,fiRunProg
282
	mcall	70,fiRunProg
283
 
283
 
284
     @@:
284
     @@:
285
	pop	eax
285
	pop	eax
286
	stdcall RestoreBackgrnd,eax
286
	stdcall RestoreBackgrnd,eax
287
	jmp	messages
287
	jmp	messages
288
 
288
 
289
;-------------------------------------------------------------------------------
289
;-------------------------------------------------------------------------------
290
MovingIcon:
290
MovingIcon:
291
	stdcall GetNumIcon,[MouseX],[MouseY],-1
291
	stdcall GetNumIcon,[MouseX],[MouseY],-1
292
	mov	[SelIcon],eax
292
	mov	[SelIcon],eax
293
	mov	[IconNoDraw],eax
293
	mov	[IconNoDraw],eax
294
	stdcall RestoreBackgrnd,[SelIcon]
294
	stdcall RestoreBackgrnd,[SelIcon]
295
 
295
 
296
;        mov     ecx,[MaxNumIcon]
296
;        mov     ecx,[MaxNumIcon]
297
;        xor     ebx,ebx
297
;        xor     ebx,ebx
298
;   .MI: push    ecx
298
;   .MI: push    ecx
299
;        cmp     ebx,[SelIcon]
299
;        cmp     ebx,[SelIcon]
300
;        je      @f
300
;        je      @f
301
;        stdcall DrawIcon,ebx,0
301
;        stdcall DrawIcon,ebx,0
302
;      @@:
302
;      @@:
303
;        inc     ebx
303
;        inc     ebx
304
;        pop     ecx
304
;        pop     ecx
305
;        loop    .MI
305
;        loop    .MI
306
 
306
 
307
 
307
 
308
 
308
 
309
;dps 'Moving'
309
;dps 'Moving'
310
;debug_newline
310
;debug_newline
311
;        mov     edi,[SelIcon]
311
;        mov     edi,[SelIcon]
312
;        mov     edi,[IconsOffs+edi*4]
312
;        mov     edi,[IconsOffs+edi*4]
313
;        or      ecx,-1
313
;        or      ecx,-1
314
;        xor     al,al
314
;        xor     al,al
315
;        repne scasb
315
;        repne scasb
316
;        repne scasb
316
;        repne scasb
317
;        repne scasb
317
;        repne scasb
318
;        repne scasb
318
;        repne scasb
319
;        xor     ebx,ebx
319
;        xor     ebx,ebx
320
;        xor     esi,esi
320
;        xor     esi,esi
321
;        mov     bx,word[edi+2]
321
;        mov     bx,word[edi+2]
322
;        mov     si,word[edi]
322
;        mov     si,word[edi]
323
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
323
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
324
;        cmp     eax,-1
324
;        cmp     eax,-1
325
;        je      @f
325
;        je      @f
326
;  dps 'Q'
326
;  dps 'Q'
327
;        stdcall DrawIcon,eax,0
327
;        stdcall DrawIcon,eax,0
328
;     @@:
328
;     @@:
329
;
329
;
330
;        add     ebx,ICON_SIZE-1
330
;        add     ebx,ICON_SIZE-1
331
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
331
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
332
;        cmp     eax,-1
332
;        cmp     eax,-1
333
;        je      @f
333
;        je      @f
334
;  dps 'Q'
334
;  dps 'Q'
335
;        stdcall DrawIcon,eax,0
335
;        stdcall DrawIcon,eax,0
336
;
336
;
337
;     @@:
337
;     @@:
338
;        add     esi,ICON_SIZE-1
338
;        add     esi,ICON_SIZE-1
339
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
339
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
340
;        cmp     eax,-1
340
;        cmp     eax,-1
341
;        je      @f
341
;        je      @f
342
;  dps 'Q'
342
;  dps 'Q'
343
;        stdcall DrawIcon,eax,0
343
;        stdcall DrawIcon,eax,0
344
;
344
;
345
;     @@:
345
;     @@:
346
;        sub     ebx,ICON_SIZE-1
346
;        sub     ebx,ICON_SIZE-1
347
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
347
;        stdcall GetNumIcon,ebx,esi,[SelIcon]
348
;        cmp     eax,-1
348
;        cmp     eax,-1
349
;        je      @f
349
;        je      @f
350
;   dps 'Q'
350
;   dps 'Q'
351
;        stdcall DrawIcon,eax,0
351
;        stdcall DrawIcon,eax,0
352
;     @@:
352
;     @@:
353
 
353
 
354
 
354
 
355
; Sleep 40
355
; Sleep 40
356
 
356
 
357
;qweqwe:
357
;qweqwe:
358
 
358
 
359
	mov    [MovingActiv],1
359
	mov    [MovingActiv],1
360
	mcall	51,1,MovingWnd,stack_mov	;CreateThread MovingWnd,stack_dlg
360
	mcall	51,1,MovingWnd,stack_mov	;CreateThread MovingWnd,stack_dlg
361
   .WaitLB:
361
   .WaitLB:
362
	mcall	37,2	;GetMouseKey
362
	mcall	37,2	;GetMouseKey
363
	test	al,001b
363
	test	al,001b
364
	jz	.endWaitLB
364
	jz	.endWaitLB
365
 
365
 
366
	;Yield
366
	;Yield
367
	mcall	5,1	;Sleep 1
367
	mcall	5,1	;Sleep 1
368
	jmp	.WaitLB
368
	jmp	.WaitLB
369
   .endWaitLB:
369
   .endWaitLB:
370
 
370
 
371
 
371
 
372
	mcall	37,0		;GetMousePos
372
	mcall	37,0		;GetMousePos
373
	xor	ebx,ebx
373
	xor	ebx,ebx
374
	mov	bx,ax
374
	mov	bx,ax
375
	shr	eax,16
375
	shr	eax,16
376
 
376
 
377
	sub	eax,1+ICON_SIZE/2
377
	sub	eax,1+ICON_SIZE/2
378
	jnc	@f
378
	jnc	@f
379
	xor	eax,eax
379
	xor	eax,eax
380
      @@:
380
      @@:
381
 
381
 
382
	sub	ebx,ICON_SIZE/2-7
382
	sub	ebx,ICON_SIZE/2-7
383
	jnc	@f
383
	jnc	@f
384
	xor	ebx,ebx
384
	xor	ebx,ebx
385
      @@:
385
      @@:
386
 
386
 
387
	cmp	ax,[wsX]
387
	cmp	ax,[wsX]
388
	jae	@f
388
	jae	@f
389
	mov	ax,[wsX]
389
	mov	ax,[wsX]
390
      @@:
390
      @@:
391
 
391
 
392
	cmp	bx,[wsY]
392
	cmp	bx,[wsY]
393
	jae	@f
393
	jae	@f
394
	mov	bx,[wsY]
394
	mov	bx,[wsY]
395
      @@:			    ;eax,ebx - ॠ«ì­ ï ª®®à¤¨­ â . ‚ᥠª®®à¤¨­ âë ¢ ¯à®£¥ ®â­®á¨â¥«ì­® «¥¢®£® ¢¥àå­¥£® 㣫  à ¡®ç¥© ®¡« áâ¨
395
      @@:			    ;eax,ebx - ॠ«ì­ ï ª®®à¤¨­ â . ‚ᥠª®®à¤¨­ âë ¢ ¯à®£¥ ®â­®á¨â¥«ì­® «¥¢®£® ¢¥àå­¥£® 㣫  à ¡®ç¥© ®¡« áâ¨
396
 
396
 
397
	xor	edx,edx
397
	xor	edx,edx
398
	mov	dx,[wsXe]
398
	mov	dx,[wsXe]
399
	sub	edx,ICON_SIZE
399
	sub	edx,ICON_SIZE
400
	cmp	eax,edx
400
	cmp	eax,edx
401
	jbe	@f
401
	jbe	@f
402
	mov	eax,edx
402
	mov	eax,edx
403
      @@:
403
      @@:
404
 
404
 
405
	mov	dx,[wsYe]
405
	mov	dx,[wsYe]
406
	sub	edx,ICON_SIZE
406
	sub	edx,ICON_SIZE
407
	cmp	ebx,edx
407
	cmp	ebx,edx
408
	jbe	@f
408
	jbe	@f
409
	mov	ebx,edx
409
	mov	ebx,edx
410
      @@:
410
      @@:
411
 
411
 
412
	xor	edx,edx 	     ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â­®á¨â¥«ì­ë¥
412
	xor	edx,edx 	     ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â­®á¨â¥«ì­ë¥
413
	mov	dx,[wsW]
413
	mov	dx,[wsW]
414
	shr	edx,1
414
	shr	edx,1
415
	add	dx,[wsX]
415
	add	dx,[wsX]
416
	cmp	eax,edx
416
	cmp	eax,edx
417
	jbe	@f
417
	jbe	@f
418
	sub	ax,[wsXe]
418
	sub	ax,[wsXe]
419
	inc	ax
419
	inc	ax
420
	jmp	.mov1
420
	jmp	.mov1
421
      @@:
421
      @@:
422
	sub	ax,[wsX]
422
	sub	ax,[wsX]
423
    .mov1:
423
    .mov1:
424
 
424
 
425
	xor	edx,edx
425
	xor	edx,edx
426
	mov	dx,[wsH]
426
	mov	dx,[wsH]
427
	shr	edx,1
427
	shr	edx,1
428
	add	dx,[wsY]
428
	add	dx,[wsY]
429
	cmp	ebx,edx
429
	cmp	ebx,edx
430
	jbe	@f
430
	jbe	@f
431
	sub	bx,[wsYe]
431
	sub	bx,[wsYe]
432
	inc	bx
432
	inc	bx
433
	jmp	.mov2
433
	jmp	.mov2
434
      @@:
434
      @@:
435
	sub	bx,[wsY]
435
	sub	bx,[wsY]
436
    .mov2:
436
    .mov2:
437
 
437
 
438
	stdcall SetPosition,[SelIcon],eax,ebx
438
	stdcall SetPosition,[SelIcon],eax,ebx
439
 
439
 
440
	m2m	[PIcoDB],[BegData]
440
	m2m	[PIcoDB],[BegData]
441
	stdcall [ini_enum_sections],IconIni,Ini_SavePos  ;in RButton.inc
441
	stdcall [ini_enum_sections],IconIni,Ini_SavePos  ;in RButton.inc
442
 
442
 
443
	mov	[bNotSave],1
443
	mov	[bNotSave],1
444
	mov	[IconNoDraw],-1
444
	mov	[IconNoDraw],-1
445
 
445
 
446
	mov    [MovingActiv],0		;⮫쪮 ⥯¥àì ®âª«îç ¥¬ ®ª­® á ¬ëèìî
446
	mov    [MovingActiv],0		;⮫쪮 ⥯¥àì ®âª«îç ¥¬ ®ª­® á ¬ëèìî
447
 
447
 
448
	jmp	messages
448
	jmp	messages
449
 
449
 
450
;-------------------------------------------------------------------------------
450
;-------------------------------------------------------------------------------
451
 
451
 
452
RButtonPress:
452
RButtonPress:
453
	mov	[RButtonActiv],1
453
	mov	[RButtonActiv],1
454
 
454
 
455
     @@:
455
     @@:
456
	mcall	37,2	;GetMouseKey
456
	mcall	37,2	;GetMouseKey
457
	test	al,010b
457
	test	al,010b
458
	jz	@f
458
	jz	@f
459
	mcall	5,1	;Yield
459
	mcall	5,1	;Yield
460
	jmp	@b
460
	jmp	@b
461
     @@:
461
     @@:
462
 
462
 
463
	mcall	51,1,RButtonWin,stack_rmenu	  ;CreateThread RButtonWin,stack_rmenu
463
	mcall	51,1,RButtonWin,stack_rmenu	  ;CreateThread RButtonWin,stack_rmenu
464
 
464
 
465
	jmp	messages
465
	jmp	messages
466
 
466
 
467
 
467
 
468
;###############################################################################
468
;###############################################################################
469
;ret eax = 1/0 = 㤠ç /®è¨¡ª 
469
;ret eax = 1/0 = 㤠ç /®è¨¡ª 
470
proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n
470
proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n
471
local	IconData:DWORD
471
local	IconData:DWORD
472
	push	ebx edi esi
472
	push	ebx edi esi
473
 
473
 
474
	mov	ecx,ICON_SIZE*ICON_SIZE
474
	mov	ecx,ICON_SIZE*ICON_SIZE
475
	xor	eax,eax
475
	xor	eax,eax
476
	mov	edi,IconArea
476
	mov	edi,IconArea
477
	rep	stosd
477
	rep	stosd
478
 
478
 
479
	mov	eax,[NumIcon]
479
	mov	eax,[NumIcon]
480
	cmp	eax,[MaxNumIcon]
480
	cmp	eax,[MaxNumIcon]
481
	jb	@f
481
	jb	@f
482
	xor	eax,eax
482
	xor	eax,eax
483
	pop	esi edi ebx
483
	pop	esi edi ebx
484
	ret
484
	ret
485
      @@:
485
      @@:
486
 
486
 
487
	mov	esi,[IconsOffs+eax*4]
487
	mov	esi,[IconsOffs+eax*4]
488
	mov	[IconData],esi
488
	mov	[IconData],esi
489
 
489
 
490
			      ;à¨á㥬 ⥪áâ
490
			      ;à¨á㥬 ⥪áâ
491
	mov	edi,esi
491
	mov	edi,esi
492
	xor	al,al
492
	xor	al,al
493
	or	ecx,-1
493
	or	ecx,-1
494
	repne scasb
494
	repne scasb
495
	mov	edx,esi
495
	mov	edx,esi
496
	mov	eax,edi
496
	mov	eax,edi
497
	sub	eax,esi
497
	sub	eax,esi
498
	dec	eax
498
	dec	eax
499
	shl	eax,1		 ;*6
499
	shl	eax,1		 ;*6
500
	lea	eax,[eax*2+eax]
500
	lea	eax,[eax*2+eax]
501
	mov	ebx,ICON_SIZE
501
	mov	ebx,ICON_SIZE
502
	sub	ebx,eax
502
	sub	ebx,eax
503
	shr	ebx,1	     ;ebx = x ⥪áâ 
503
	shr	ebx,1	     ;ebx = x ⥪áâ 
504
	shl	ebx,16
504
	shl	ebx,16
505
	mov	bx,ICON_SIZE
505
	mov	bx,ICON_SIZE
506
	sub	bx,TEXT_BOTTOM_Y
506
	sub	bx,TEXT_BOTTOM_Y
507
	mov	ecx,88000000h
507
	mov	ecx,88000000h
508
	mov	edi,IconAreaH
508
	mov	edi,IconAreaH
509
	add	ebx,-1*10000h+0
509
	add	ebx,-1*10000h+0
510
	mcall	4
510
	mcall	4
511
	add	ebx,2*10000h+0
511
	add	ebx,2*10000h+0
512
	mcall	;4
512
	mcall	;4
513
	add	ebx,-1*10000h-1
513
	add	ebx,-1*10000h-1
514
	mcall	;4
514
	mcall	;4
515
	add	ebx,0*10000h+2
515
	add	ebx,0*10000h+2
516
	mcall	;4
516
	mcall	;4
517
	add	ebx,1*10000h+0
517
	add	ebx,1*10000h+0
518
	mcall	;4
518
	mcall	;4
519
	inc	ebx;add     ebx,0*10000h+1
519
	inc	ebx;add     ebx,0*10000h+1
520
	mcall	;4
520
	mcall	;4
521
	add	ebx,-1*10000h+0
521
	add	ebx,-1*10000h+0
522
	mcall	;4
522
	mcall	;4
523
	add	ebx,0*10000h-2
523
	add	ebx,0*10000h-2
524
	mov	ecx,88FFFFFFh
524
	mov	ecx,88FFFFFFh
525
	mcall	;4
525
	mcall	;4
526
				    ;à¨á㥬 ª à⨭ªã
526
				    ;à¨á㥬 ª à⨭ªã
527
 
527
 
528
	mov	edi,esi
528
	mov	edi,esi
529
	xor	al,al
529
	xor	al,al
530
	or	ecx,-1
530
	or	ecx,-1
531
	repne	scasb
531
	repne	scasb
532
	repne	scasb
532
	repne	scasb
533
	repne	scasb
533
	repne	scasb
534
	mov	al,[edi]
534
	mov	al,[edi]
535
	cmp	al,'9'
535
	cmp	al,'9'
536
	ja	PathToIcon
536
	ja	PathToIcon
537
	cmp	al,'/'
537
	cmp	al,'/'
538
	jne	GetIconInd
538
	jne	GetIconInd
539
 
539
 
540
   PathToIcon:
540
   PathToIcon:
541
	mov	al,30h		 ;§ £«ã誠!!!!!!!!!!!!!
541
	mov	al,30h		 ;§ £«ã誠!!!!!!!!!!!!!
542
	mov	byte[edi+1],0
542
	mov	byte[edi+1],0
543
 
543
 
544
	jmp	CopyToMem
544
	jmp	CopyToMem
545
   GetIconInd:
545
   GetIconInd:
546
 
546
 
547
	sub	al,30h
547
	sub	al,30h
548
	cmp	byte[edi+1],0
548
	cmp	byte[edi+1],0
549
	je	@f
549
	je	@f
550
	shl	eax,1
550
	shl	eax,1
551
	lea	eax,[eax*4+eax]
551
	lea	eax,[eax*4+eax]
552
	xor	edx,edx
552
	xor	edx,edx
553
	mov	dl,[edi+1]
553
	mov	dl,[edi+1]
554
	sub	dl,30h
554
	sub	dl,30h
555
	add	eax,edx
555
	add	eax,edx
556
     @@:	     ;eax=num icon
556
     @@:	     ;eax=num icon
557
	cmp	eax,[icon_count]
557
	cmp	eax,[icon_count]
558
	jb	@f
558
	jb	@f
559
	xor	eax,eax
559
	xor	eax,eax
560
     @@:
560
     @@:
561
	test	eax,eax
561
	test	eax,eax
562
	je	DI1
562
	je	DI1
563
	mov	ecx,eax
563
	mov	ecx,eax
564
	xor	eax,eax
564
	xor	eax,eax
565
      @@:
565
      @@:
566
	add	eax,IMG_SIZE*IMG_SIZE*4
566
	add	eax,IMG_SIZE*IMG_SIZE*4
567
	loop	@b
567
	loop	@b
568
     DI1:
568
     DI1:
569
	add	eax,[raw_pointer]
569
	add	eax,[raw_pointer]
570
	add	eax,0+4*11
570
	add	eax,0+4*11
571
	mov	esi,eax
571
	mov	esi,eax
572
 
572
 
573
  CopyToMem:
573
  CopyToMem:
574
	mov	edi,IconArea+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4
574
	mov	edi,IconArea+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4
575
 
575
 
576
	mov	eax,IMG_SIZE
576
	mov	eax,IMG_SIZE
577
	mov	edx,eax
577
	mov	edx,eax
578
      @@:
578
      @@:
579
	mov	ecx,eax
579
	mov	ecx,eax
580
	rep	movsd
580
	rep	movsd
581
	add	edi,(ICON_SIZE-IMG_SIZE)*4
581
	add	edi,(ICON_SIZE-IMG_SIZE)*4
582
	dec	edx
582
	dec	edx
583
	jnz	@b
583
	jnz	@b
584
 
584
 
585
;-----------------
585
;-----------------
586
				;¥á«¨ ­ ¤®, â® à¨á㥬 ®¡¢®¤ªã
586
				;¥á«¨ ­ ¤®, â® à¨á㥬 ®¡¢®¤ªã
587
	cmp	[Activ],0
587
	cmp	[Activ],0
588
	je	.NoSelect
588
	je	.NoSelect
589
 
589
 
590
	mov	edi,IconArea
590
	mov	edi,IconArea
591
	mov	eax,0FF000000h
591
	mov	eax,0FF000000h
592
	mov	ecx,ICON_SIZE
592
	mov	ecx,ICON_SIZE
593
	rep	stosd
593
	rep	stosd
594
	;mov     edi,IconArea+ICON_SIZE*1
594
	;mov     edi,IconArea+ICON_SIZE*1
595
 
595
 
596
	mov	ecx,ICON_SIZE-1
596
	mov	ecx,ICON_SIZE-1
597
    @@: mov	dword[edi],eax
597
    @@: mov	dword[edi],eax
598
	add	edi,(ICON_SIZE)*4
598
	add	edi,(ICON_SIZE)*4
599
	loop	@b
599
	loop	@b
600
 
600
 
601
	mov	edi,IconArea+ICON_SIZE*2*4-4
601
	mov	edi,IconArea+ICON_SIZE*2*4-4
602
	mov	ecx,ICON_SIZE-1
602
	mov	ecx,ICON_SIZE-1
603
    @@: mov	dword[edi],eax
603
    @@: mov	dword[edi],eax
604
	add	edi,(ICON_SIZE)*4
604
	add	edi,(ICON_SIZE)*4
605
	loop	@b
605
	loop	@b
606
 
606
 
607
	mov	edi,IconArea+ICON_SIZE*(ICON_SIZE-1)*4+4
607
	mov	edi,IconArea+ICON_SIZE*(ICON_SIZE-1)*4+4
608
	mov	ecx,ICON_SIZE-2
608
	mov	ecx,ICON_SIZE-2
609
	rep	stosd
609
	rep	stosd
610
 
610
 
611
 
611
 
612
	mov	edi,IconArea+ICON_SIZE*4+4
612
	mov	edi,IconArea+ICON_SIZE*4+4
613
	mov	eax,0FFFFFFFFh
613
	mov	eax,0FFFFFFFFh
614
	mov	ecx,ICON_SIZE-2
614
	mov	ecx,ICON_SIZE-2
615
	rep	stosd
615
	rep	stosd
616
 
616
 
617
	mov	edi,IconArea+ICON_SIZE*4+4
617
	mov	edi,IconArea+ICON_SIZE*4+4
618
	mov	ecx,ICON_SIZE-2
618
	mov	ecx,ICON_SIZE-2
619
    @@: mov	dword[edi],eax
619
    @@: mov	dword[edi],eax
620
	add	edi,(ICON_SIZE)*4
620
	add	edi,(ICON_SIZE)*4
621
	loop	@b
621
	loop	@b
622
 
622
 
623
	mov	edi,IconArea+ICON_SIZE*2*4-4*2
623
	mov	edi,IconArea+ICON_SIZE*2*4-4*2
624
	mov	ecx,ICON_SIZE-3
624
	mov	ecx,ICON_SIZE-3
625
    @@: mov	dword[edi],eax
625
    @@: mov	dword[edi],eax
626
	add	edi,(ICON_SIZE)*4
626
	add	edi,(ICON_SIZE)*4
627
	loop	@b
627
	loop	@b
628
 
628
 
629
	mov	edi,IconArea+ICON_SIZE*(ICON_SIZE-2)*4+4*2
629
	mov	edi,IconArea+ICON_SIZE*(ICON_SIZE-2)*4+4*2
630
	mov	ecx,ICON_SIZE-3
630
	mov	ecx,ICON_SIZE-3
631
	rep	stosd
631
	rep	stosd
632
;--------------
632
;--------------
633
 
633
 
634
   .NoSelect:
634
   .NoSelect:
635
	mov	edi,[IconData]
635
	mov	edi,[IconData]
636
	xor	al,al
636
	xor	al,al
637
	or	ecx,-1
637
	or	ecx,-1
638
	repne	scasb
638
	repne	scasb
639
	repne	scasb
639
	repne	scasb
640
	repne	scasb
640
	repne	scasb
641
	repne	scasb
641
	repne	scasb
642
	mov	edx,[edi]
642
	mov	edx,[edi]
643
 
643
 
644
	test	edx,00008000h
644
	test	edx,00008000h
645
	jz	@f
645
	jz	@f
646
	add	dx,[wsYe]
646
	add	dx,[wsYe]
647
	jmp	.DI11
647
	jmp	.DI11
648
    @@:
648
    @@:
649
	add	dx,[wsY]
649
	add	dx,[wsY]
650
   .DI11:
650
   .DI11:
651
 
651
 
652
	test	edx,80000000h
652
	test	edx,80000000h
653
	jz	@f
653
	jz	@f
654
	mov	ax,[wsXe]
654
	mov	ax,[wsXe]
655
	shl	eax,16
655
	shl	eax,16
656
	add	edx,eax
656
	add	edx,eax
657
	jmp	.DI12
657
	jmp	.DI12
658
    @@:
658
    @@:
659
	mov	ax,[wsX]
659
	mov	ax,[wsX]
660
	shl	eax,16
660
	shl	eax,16
661
	add	edx,eax
661
	add	edx,eax
662
   .DI12:
662
   .DI12:
663
 
663
 
664
	mov	ebx,IconArea
664
	mov	ebx,IconArea
665
	mov	ecx,ICON_SIZE*10000h+ICON_SIZE
665
	mov	ecx,ICON_SIZE*10000h+ICON_SIZE
666
	mcall	25
666
	mcall	25
667
 
667
 
668
;        mov     eax,1
668
;        mov     eax,1
669
	pop	esi edi ebx
669
	pop	esi edi ebx
670
	ret
670
	ret
671
endp
671
endp
672
 
672
 
673
proc RestoreBackgrnd,NumIcon:DWORD
673
proc RestoreBackgrnd,NumIcon:DWORD
674
	push	ebx edi
674
	push	ebx edi
675
	mov	eax,[NumIcon]
675
	mov	eax,[NumIcon]
676
	cmp	eax,[MaxNumIcon]
676
	cmp	eax,[MaxNumIcon]
677
	jb	@f
677
	jb	@f
678
	xor	eax,eax
678
	xor	eax,eax
679
	pop	edi ebx
679
	pop	edi ebx
680
	ret
680
	ret
681
      @@:
681
      @@:
682
 
682
 
683
	mov	edi,[IconsOffs+eax*4]
683
	mov	edi,[IconsOffs+eax*4]
684
	xor	al,al
684
	xor	al,al
685
	or	ecx,-1
685
	or	ecx,-1
686
	repne	scasb
686
	repne	scasb
687
	repne	scasb
687
	repne	scasb
688
	repne	scasb
688
	repne	scasb
689
	repne	scasb
689
	repne	scasb
690
 
690
 
691
	mov	ax,[edi+2]
691
	mov	ax,[edi+2]
692
	test	ax,8000h
692
	test	ax,8000h
693
	jz	@f
693
	jz	@f
694
	add	ax,[wsXe]
694
	add	ax,[wsXe]
695
	jmp	.rbg1
695
	jmp	.rbg1
696
      @@:
696
      @@:
697
	add	ax,[wsX]
697
	add	ax,[wsX]
698
     .rbg1:
698
     .rbg1:
699
 
699
 
700
	mov	bx,[edi]
700
	mov	bx,[edi]
701
	test	bx,8000h
701
	test	bx,8000h
702
	jz	@f
702
	jz	@f
703
	add	bx,[wsYe]
703
	add	bx,[wsYe]
704
	jmp	.rbg2
704
	jmp	.rbg2
705
      @@:
705
      @@:
706
	add	bx,[wsY]
706
	add	bx,[wsY]
707
     .rbg2:
707
     .rbg2:
708
 
708
 
709
	mov	cx,ax
709
	mov	cx,ax
710
	shl	ecx,16
710
	shl	ecx,16
711
	add	ax,ICON_SIZE
711
	add	ax,ICON_SIZE
712
	mov	cx,ax
712
	mov	cx,ax
713
	mov	dx,bx
713
	mov	dx,bx
714
	shl	edx,16
714
	shl	edx,16
715
	add	bx,ICON_SIZE
715
	add	bx,ICON_SIZE
716
	mov	dx,bx
716
	mov	dx,bx
717
	dec	ecx
717
	dec	ecx
718
	dec	edx
718
	dec	edx
719
	mcall	15,9
719
	mcall	15,9
720
	pop	edi ebx
720
	pop	edi ebx
721
	ret
721
	ret
722
endp
722
endp
723
 
723
 
724
				 ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
724
				 ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
725
proc FillIconsOffs
725
proc FillIconsOffs
726
	push	ebx edi
726
	push	ebx edi
727
	mov	edi,[BegData]
727
	mov	edi,[BegData]
728
	mov	dword[MaxNumIcon],0
728
	mov	dword[MaxNumIcon],0
729
	cmp	dword[edi],0
729
	cmp	dword[edi],0
730
	jne	@f
730
	jne	@f
731
	mov	dword[IconsOffs],0
731
	mov	dword[IconsOffs],0
732
	pop	edi ebx
732
	pop	edi ebx
733
	ret
733
	ret
734
    @@:
734
    @@:
735
 
735
 
736
	mov	[IconsOffs],edi
736
	mov	[IconsOffs],edi
737
	xor	al,al
737
	xor	al,al
738
	xor	edx,edx
738
	xor	edx,edx
739
	mov	ebx,dword[SizeData]
739
	mov	ebx,dword[SizeData]
740
	add	ebx,dword[BegData]
740
	add	ebx,dword[BegData]
741
	or	ecx,-1
741
	or	ecx,-1
742
 .CalcNumIc:
742
 .CalcNumIc:
743
 
743
 
744
	repne	scasb
744
	repne	scasb
745
	repne	scasb
745
	repne	scasb
746
	repne	scasb
746
	repne	scasb
747
	repne	scasb
747
	repne	scasb
748
	add	edi,4
748
	add	edi,4
749
	mov	dword[IconsOffs+edx+4],edi
749
	mov	dword[IconsOffs+edx+4],edi
750
	inc	dword[MaxNumIcon]
750
	inc	dword[MaxNumIcon]
751
	add	edx,4
751
	add	edx,4
752
 
752
 
753
	cmp	edi,ebx
753
	cmp	edi,ebx
754
	jae	@f
754
	jae	@f
755
	jmp	.CalcNumIc
755
	jmp	.CalcNumIc
756
   @@:
756
   @@:
757
 
757
 
758
	mov	dword[IconsOffs+edx],0
758
	mov	dword[IconsOffs+edx],0
759
 
759
 
760
	pop	edi ebx
760
	pop	edi ebx
761
	ret
761
	ret
762
endp
762
endp
763
 
763
 
764
proc LoadIconsData stdcall,f_name,sec_name
764
proc LoadIconsData stdcall,f_name,sec_name
765
	push	ebx esi edi
765
	push	ebx esi edi
766
 
766
 
767
	mov	edi,secRButt
767
	mov	edi,secRButt
768
	mov	esi,[sec_name]
768
	mov	esi,[sec_name]
769
    @@: lodsb
769
    @@: lodsb
770
	scasb
770
	scasb
771
	jnz	.lid1
771
	jnz	.lid1
772
	test	al,al
772
	test	al,al
773
	jnz	@b
773
	jnz	@b
774
 
774
 
775
	mov	eax,1
775
	mov	eax,1
776
	pop	edi esi ebx
776
	pop	edi esi ebx
777
	ret
777
	ret
778
     .lid1:
778
     .lid1:
779
 
779
 
780
 
780
 
781
	mov	ebx,[sec_name]		;ª®¯¨à㥬 ID
781
	mov	ebx,[sec_name]		;ª®¯¨à㥬 ID
782
	mov	ax,[ebx]
782
	mov	ax,[ebx]
783
	mov	edi,[nLoadIcon]
783
	mov	edi,[nLoadIcon]
784
	mov	word[edi*4+IconsID],ax
784
	mov	word[edi*4+IconsID],ax
785
	mov	word[edi*4+IconsID+2],0
785
	mov	word[edi*4+IconsID+2],0
786
 
786
 
787
	mov	edi,[PIcoDB]
787
	mov	edi,[PIcoDB]
788
	stdcall [ini_get_str],[f_name],[sec_name],keyName,edi,4096,0
788
	stdcall [ini_get_str],[f_name],[sec_name],keyName,edi,4096,0
789
	test	eax,eax
789
	test	eax,eax
790
	jz	@f
790
	jz	@f
791
	xor	eax,eax
791
	xor	eax,eax
792
	pop	edi esi ebx
792
	pop	edi esi ebx
793
	ret
793
	ret
794
     @@:
794
     @@:
795
	xor	al,al
795
	xor	al,al
796
	or	ecx,-1
796
	or	ecx,-1
797
	repne	scasb
797
	repne	scasb
798
 
798
 
799
 
799
 
800
 
800
 
801
	stdcall [ini_get_str],[f_name],[sec_name],keyPath,edi,4096,0
801
	stdcall [ini_get_str],[f_name],[sec_name],keyPath,edi,4096,0
802
	test	eax,eax
802
	test	eax,eax
803
	jz	@f
803
	jz	@f
804
	xor	eax,eax
804
	xor	eax,eax
805
	pop	edi esi ebx
805
	pop	edi esi ebx
806
	ret
806
	ret
807
     @@:
807
     @@:
808
	xor	al,al
808
	xor	al,al
809
	or	ecx,-1
809
	or	ecx,-1
810
	repne	scasb
810
	repne	scasb
811
 
811
 
812
	stdcall [ini_get_str],[f_name],[sec_name],keyParams,edi,4096,0
812
	stdcall [ini_get_str],[f_name],[sec_name],keyParams,edi,4096,0
813
	test	eax,eax
813
	test	eax,eax
814
	jz	@f
814
	jz	@f
815
	xor	eax,eax
815
	xor	eax,eax
816
	pop	edi esi ebx
816
	pop	edi esi ebx
817
	ret
817
	ret
818
     @@:
818
     @@:
819
	xor	al,al
819
	xor	al,al
820
	or	ecx,-1
820
	or	ecx,-1
821
	repne	scasb
821
	repne	scasb
822
 
822
 
823
	stdcall [ini_get_str],[f_name],[sec_name],keyIco,edi,4096,0
823
	stdcall [ini_get_str],[f_name],[sec_name],keyIco,edi,4096,0
824
	test	eax,eax
824
	test	eax,eax
825
	jz	@f
825
	jz	@f
826
	xor	eax,eax
826
	xor	eax,eax
827
	pop	edi esi ebx
827
	pop	edi esi ebx
828
	ret
828
	ret
829
     @@:
829
     @@:
830
	xor	al,al
830
	xor	al,al
831
	or	ecx,-1
831
	or	ecx,-1
832
	repne	scasb
832
	repne	scasb
833
 
833
 
834
	stdcall [ini_get_int],[f_name],[sec_name],keyX,80000000h
834
	stdcall [ini_get_int],[f_name],[sec_name],keyX,80000000h
835
	cmp	eax,80000000h
835
	cmp	eax,80000000h
836
	jne	@f
836
	jne	@f
837
	xor	eax,eax
837
	xor	eax,eax
838
	pop	edi esi ebx
838
	pop	edi esi ebx
839
	ret
839
	ret
840
     @@:
840
     @@:
841
	mov	word[edi+2],ax
841
	mov	word[edi+2],ax
842
 
842
 
843
	stdcall [ini_get_int],[f_name],[sec_name],keyY,80000000h
843
	stdcall [ini_get_int],[f_name],[sec_name],keyY,80000000h
844
	cmp	eax,80000000h
844
	cmp	eax,80000000h
845
	jne	@f
845
	jne	@f
846
	xor	eax,eax
846
	xor	eax,eax
847
	pop	edi esi ebx
847
	pop	edi esi ebx
848
	ret
848
	ret
849
     @@:
849
     @@:
850
	mov	word[edi],ax
850
	mov	word[edi],ax
851
	add	edi,4
851
	add	edi,4
852
	mov	[PIcoDB],edi
852
	mov	[PIcoDB],edi
853
 
853
 
854
	inc	[nLoadIcon]
854
	inc	[nLoadIcon]
855
 
855
 
856
	mov	eax,1
856
	mov	eax,1
857
	pop	edi esi ebx
857
	pop	edi esi ebx
858
	ret
858
	ret
859
endp
859
endp
860
 
860
 
861
proc GenerateID ;ax = ID
861
proc GenerateID ;ax = ID
862
	push	ebx edi
862
	push	ebx edi
863
	mov	ebx,[MaxNumIcon]
863
	mov	ebx,[MaxNumIcon]
864
	test	ebx,ebx
864
	test	ebx,ebx
865
	jnz	@f
865
	jnz	@f
866
	mov	eax,'00'
866
	mov	eax,'00'
867
	pop	edi ebx
867
	pop	edi ebx
868
	ret
868
	ret
869
     @@:
869
     @@:
870
 
870
 
871
	mov	eax,dword[IconsID+ebx*4-4]
871
	mov	eax,dword[IconsID+ebx*4-4]
872
  .inc:
872
  .inc:
873
	inc	ah
873
	inc	ah
874
	cmp	ah,'9'+1
874
	cmp	ah,'9'+1
875
	jne	@f
875
	jne	@f
876
	mov	ah,'A'
876
	mov	ah,'A'
877
       @@:
877
       @@:
878
	cmp	ah,'F'+1
878
	cmp	ah,'F'+1
879
	jne	@f
879
	jne	@f
880
	mov	ah,'0'
880
	mov	ah,'0'
881
	inc	al
881
	inc	al
882
       @@:
882
       @@:
883
	cmp	al,'9'+1
883
	cmp	al,'9'+1
884
	jne	@f
884
	jne	@f
885
	mov	al,'A'
885
	mov	al,'A'
886
       @@:
886
       @@:
887
	cmp	al,'F'+1
887
	cmp	al,'F'+1
888
	jne	@f
888
	jne	@f
889
	mov	al,'0'
889
	mov	al,'0'
890
       @@:
890
       @@:
891
 
891
 
892
 
892
 
893
	mov	edi,IconsID
893
	mov	edi,IconsID
894
	;cmp     dword[edi],0
894
	;cmp     dword[edi],0
895
	;je      @f
895
	;je      @f
896
	mov	ecx,100h
896
	mov	ecx,100h
897
    @@: scasd
897
    @@: scasd
898
	je	.inc
898
	je	.inc
899
	cmp	dword[edi],0
899
	cmp	dword[edi],0
900
	je	@f
900
	je	@f
901
	loop	@b
901
	loop	@b
902
     @@:
902
     @@:
903
 
903
 
904
	pop	edi ebx
904
	pop	edi ebx
905
	ret
905
	ret
906
endp
906
endp
907
 
907
 
908
;-------------------------------------------------------------------------------
908
;-------------------------------------------------------------------------------
909
 
909
 
910
 
910
 
911
;ä®à¬ â IPC-á®®¡é¥­¨ï
911
;ä®à¬ â IPC-á®®¡é¥­¨ï
912
;dd X
912
;dd X
913
;dd Y
913
;dd Y
914
;asciiz Icon
914
;asciiz Icon
915
;asciiz Name
915
;asciiz Name
916
;asciiz Path
916
;asciiz Path
917
;asciiz Params
917
;asciiz Params
918
;-------------------------------------------------------------------------------
918
;-------------------------------------------------------------------------------
919
proc IPCCreateIcon
919
proc IPCCreateIcon
920
locals
920
locals
921
	ix rd 1
921
	ix rd 1
922
	iy rd 1
922
	iy rd 1
923
endl
923
endl
924
 
924
 
925
	mov	eax,IPCbuffer+8
925
	mov	eax,IPCbuffer+8
926
	mov	dword[IPCbuffer],1
926
	mov	dword[IPCbuffer],1
927
	;mov     edx,dword[IPCbuffer+4]
927
	;mov     edx,dword[IPCbuffer+4]
928
	lea	edx,[eax+8]
928
	lea	edx,[eax+8]
929
 
929
 
930
	m2m	dword[ix],dword[edx]
930
	m2m	dword[ix],dword[edx]
931
	m2m	dword[iy],dword[edx+4]
931
	m2m	dword[iy],dword[edx+4]
932
 
932
 
933
	lea	esi,[edx+8]
933
	lea	esi,[edx+8]
934
 
934
 
935
	mov	ecx,256
935
	mov	ecx,256
936
	mov	edi,DAreaIcon
936
	mov	edi,DAreaIcon
937
    @@: lodsb
937
    @@: lodsb
938
	stosb
938
	stosb
939
	test	al,al
939
	test	al,al
940
	jnz	@b
940
	jnz	@b
941
 
941
 
942
	mov	ecx,NAME_LENGTH+1
942
	mov	ecx,NAME_LENGTH+1
943
	mov	edi,DAreaName
943
	mov	edi,DAreaName
944
    @@: lodsb
944
    @@: lodsb
945
	stosb
945
	stosb
946
	test	al,al
946
	test	al,al
947
	jz	@f
947
	jz	@f
948
	loop	@b
948
	loop	@b
949
    @@:
949
    @@:
950
 
950
 
951
	mov	edi,DAreaPath
951
	mov	edi,DAreaPath
952
    @@: lodsb
952
    @@: lodsb
953
	stosb
953
	stosb
954
	test	al,al
954
	test	al,al
955
	jnz	@b
955
	jnz	@b
956
 
956
 
957
	mov	edi,DAreaParams
957
	mov	edi,DAreaParams
958
    @@: lodsb
958
    @@: lodsb
959
	stosb
959
	stosb
960
	test	al,al
960
	test	al,al
961
	jnz	@b
961
	jnz	@b
962
 
962
 
963
	mov	dword[IPCbuffer+4],8
963
	mov	dword[IPCbuffer+4],8
964
	mov	dword[IPCbuffer],0
964
	mov	dword[IPCbuffer],0
965
 
965
 
966
	stdcall AddIcon,[ix],[iy],DAreaIcon,DAreaName,DAreaPath,DAreaParams
966
	stdcall AddIcon,[ix],[iy],DAreaIcon,DAreaName,DAreaPath,DAreaParams
967
 
967
 
968
	mcall	15,3
968
	mcall	15,3
969
	ret
969
	ret
970
endp
970
endp
971
 
971
 
972
 
972
 
973
include 'iconman.inc'
973
include 'iconman.inc'
974
include 'bgredraw.inc'
974
include 'bgredraw.inc'
975
include 'RButton.inc'
975
include 'RButton.inc'
976
include 'DlgAdd.inc'
976
include 'DlgAdd.inc'
977
include 'Moving.inc'
977
include 'Moving.inc'
978
 
978
 
979
;'Eolite',0,'/sys/File managers/eolite',0,'/hd0/3/Muzik',0,'1',0,00010001h
979
;'Eolite',0,'/sys/File managers/eolite',0,'/hd0/3/Muzik',0,'1',0,00010001h
980
;-------------------------------------------------------------------------------
980
;-------------------------------------------------------------------------------
981
;##### DATA ####################################################################
981
;##### DATA ####################################################################
982
;-------------------------------------------------------------------------------
982
;-------------------------------------------------------------------------------
983
; not change this section!!!
983
; not change this section!!!
984
; start section
984
; start section
985
;------------------------------------------------------------------------------
985
;------------------------------------------------------------------------------
986
align 4
986
align 4
987
image_file     dd 0 ;+0
987
image_file     dd 0 ;+0
988
raw_pointer    dd 0 ;+4
988
raw_pointer    dd 0 ;+4
989
return_code    dd 0 ;+8
989
return_code    dd 0 ;+8
990
img_size       dd 0 ;+12
990
img_size       dd 0 ;+12
991
deflate_unpack dd 0 ;+16        ; not use for scaling
991
deflate_unpack dd 0 ;+16        ; not use for scaling
992
raw_pointer_2  dd 0 ;+20        ; not use for scaling
992
raw_pointer_2  dd 0 ;+20        ; not use for scaling
993
;------------------------------------------------------------------------------
993
;------------------------------------------------------------------------------
994
; end section
994
; end section
995
;------------------------------------------------------------------------------
995
;------------------------------------------------------------------------------
996
 
996
 
997
 
997
 
998
align 4
998
align 4
999
fiStdIco:
999
fiStdIco:
1000
	dd 5
1000
	dd 5
1001
	dd 0
1001
	dd 0
1002
	dd 0
1002
	dd 0
1003
.size	dd 0
1003
.size	dd 0
1004
.point	dd bufStdIco
1004
.point	dd bufStdIco
1005
	db ICON_STRIP,0
1005
	db ICON_STRIP,0
1006
 
1006
 
1007
 
1007
 
1008
align 4
1008
align 4
1009
fiRunProg:	      ;¤«ï § ¯ã᪠ ¯à®£à ¬¬
1009
fiRunProg:	      ;¤«ï § ¯ã᪠ ¯à®£à ¬¬
1010
	dd 7
1010
	dd 7
1011
	dd 0
1011
	dd 0
1012
	dd 0
1012
	dd 0
1013
	dd 0
1013
	dd 0
1014
	dd ErrNotFoundIni
1014
	dd ErrNotFoundIni
1015
	db 0
1015
	db 0
1016
	dd pthNotify
1016
	dd pthNotify
1017
 
1017
 
1018
fiIni	dd 5	       ;¤«ï ini ä ©« 
1018
fiIni	dd 5	       ;¤«ï ini ä ©« 
1019
	dd 0
1019
	dd 0
1020
	dd 0
1020
	dd 0
1021
	dd 0
1021
	dd 0
1022
	dd bufIni
1022
	dd bufIni
1023
	db 0
1023
	db 0
1024
	dd IconIni
1024
	dd IconIni
1025
 
1025
 
1026
 
1026
 
1027
IconsFile	db ICON_STRIP,0
1027
IconsFile	db ICON_STRIP,0
1028
 
1028
 
1029
align 4
1029
align 4
1030
MaxNumIcon	dd 0		;ª®«¨ç¥á⢮ ¨ª®­®ª
1030
MaxNumIcon	dd 0		;ª®«¨ç¥á⢮ ¨ª®­®ª
1031
IconNoDraw	dd -1		;-1 «¨¡® ­®¬¥à ¨ª®­ª¨, ª®â®àãî ­¥ ­ ¤® à¨á®¢ âì( ª®£¤  ¥ñ â áª îâ )
1031
IconNoDraw	dd -1		;-1 «¨¡® ­®¬¥à ¨ª®­ª¨, ª®â®àãî ­¥ ­ ¤® à¨á®¢ âì( ª®£¤  ¥ñ â áª îâ )
1032
 
1032
 
1033
bFixIcons	dd 1
1033
bFixIcons	dd 1
1034
bNotSave	dd 0
1034
bNotSave	dd 0
1035
 
1035
 
1036
LButtonActiv	dd 0
1036
LButtonActiv	dd 0
1037
RButtonActiv	dd 0
1037
RButtonActiv	dd 0
1038
MovingActiv	dd 0
1038
MovingActiv	dd 0
1039
DlgAddActiv	dd 0
1039
DlgAddActiv	dd 0
1040
 
1040
 
1041
IconIni 	db ICON_INI,0
1041
IconIni 	db ICON_INI,0
1042
 
1042
 
1043
pthNotify	db '/rd/1/@notify',0
1043
pthNotify	db '/rd/1/@notify',0
1044
 
1044
 
1045
keyName 	db 'name',0
1045
keyName 	db 'name',0
1046
keyPath 	db 'path',0
1046
keyPath 	db 'path',0
1047
keyParams	db 'param',0
1047
keyParams	db 'param',0
1048
keyIco		db 'ico',0
1048
keyIco		db 'ico',0
1049
keyX		db 'x',0
1049
keyX		db 'x',0
1050
keyY		db 'y',0
1050
keyY		db 'y',0
1051
 
1051
 
1052
;-------------------------------------------------------------------------------
1052
;-------------------------------------------------------------------------------
1053
IMPORTS:
1053
IMPORTS:
1054
library cnv_png ,'cnv_png.obj',\
1054
library cnv_png ,'cnv_png.obj',\
1055
	archiver,'archiver.obj',\
1055
	archiver,'archiver.obj',\
1056
	box_lib ,'box_lib.obj',\
1056
	box_lib ,'box_lib.obj',\
1057
	proc_lib,'proc_lib.obj',\
1057
	proc_lib,'proc_lib.obj',\
1058
	libini	,'libini.obj'
1058
	libini	,'libini.obj'
1059
 
1059
 
1060
import	cnv_png,\
1060
import	cnv_png,\
1061
	cnv_png_import.Start	,'START',\
1061
	cnv_png_import.Start	,'START',\
1062
	cnv_png_import.Version	,'version',\
1062
	cnv_png_import.Version	,'version',\
1063
	cnv_png_import.Check	,'Check_Header',\
1063
	cnv_png_import.Check	,'Check_Header',\
1064
	cnv_png_import.Assoc	,'Associations'
1064
	cnv_png_import.Assoc	,'Associations'
1065
 
1065
 
1066
import	archiver,\
1066
import	archiver,\
1067
	unpack_DeflateUnpack2	,'deflate_unpack2'
1067
	unpack_DeflateUnpack2	,'deflate_unpack2'
1068
 
1068
 
1069
import	box_lib,\
1069
import	box_lib,\
1070
	edit_box_draw		,'edit_box',\
1070
	edit_box_draw		,'edit_box',\
1071
	edit_box_key		,'edit_box_key',\
1071
	edit_box_key		,'edit_box_key',\
1072
	edit_box_mouse		,'edit_box_mouse',\
1072
	edit_box_mouse		,'edit_box_mouse',\
1073
	scrollbar_h_draw	,'scrollbar_h_draw',\
1073
	scrollbar_h_draw	,'scrollbar_h_draw',\
1074
	scrollbar_h_mouse	,'scrollbar_h_mouse'
1074
	scrollbar_h_mouse	,'scrollbar_h_mouse'
1075
 
1075
 
1076
import	proc_lib,\
1076
import	proc_lib,\
1077
	OpenDialog_Init 	,'OpenDialog_init',\
1077
	OpenDialog_Init 	,'OpenDialog_init',\
1078
	OpenDialog_Start	,'OpenDialog_start'
1078
	OpenDialog_Start	,'OpenDialog_start'
1079
 
1079
 
1080
import	libini,\
1080
import	libini,\
1081
	ini_enum_sections	,'ini_enum_sections',\
1081
	ini_enum_sections	,'ini_enum_sections',\
1082
	ini_enum_keys		,'ini_enum_keys',\
1082
	ini_enum_keys		,'ini_enum_keys',\
1083
	ini_get_str		,'ini_get_str',\
1083
	ini_get_str		,'ini_get_str',\
1084
	ini_set_str		,'ini_set_str',\
1084
	ini_set_str		,'ini_set_str',\
1085
	ini_get_color		,'ini_get_color',\
1085
	ini_get_color		,'ini_get_color',\
1086
	ini_get_int		,'ini_get_int',\
1086
	ini_get_int		,'ini_get_int',\
1087
	ini_set_int		,'ini_set_int',\
1087
	ini_set_int		,'ini_set_int',\
1088
	ini_del_section 	,'ini_del_section',\
1088
	ini_del_section 	,'ini_del_section',\
1089
	ini_exist_sect		,'ini_exist_sect'
1089
	ini_exist_sect		,'ini_exist_sect'
1090
 
1090
 
1091
 
1091
 
1092
;ini.get_str (f_name, sec_name, key_name, buffer, buf_len, def_val)
1092
;ini.get_str (f_name, sec_name, key_name, buffer, buf_len, def_val)
1093
;ini.set_str (f_name, sec_name, key_name, buffer, buf_len)
1093
;ini.set_str (f_name, sec_name, key_name, buffer, buf_len)
1094
 
1094
 
1095
 
1095
 
1096
;-------------------------------------------------------------------------------
1096
;-------------------------------------------------------------------------------
1097
;----- RButton.inc -------------------------------------------------------------
1097
;----- RButton.inc -------------------------------------------------------------
1098
;-------------------------------------------------------------------------------
1098
;-------------------------------------------------------------------------------
1099
 
1099
 
1100
if lang eq ru
1100
if lang eq ru
1101
 MinRMenuW	 dd 18*6+10
1101
 MinRMenuW	 dd 18*6+10
1102
else
1102
else
1103
 MinRMenuW	 dd 15*6+10
1103
 MinRMenuW	 dd 15*6+10
1104
end if
1104
end if
1105
 
1105
 
1106
secRButt	db 'rbmenu',0
1106
secRButt	db 'rbmenu',0
1107
 
1107
 
1108
PredItem	dd -1
1108
PredItem	dd -1
1109
 
1109
 
1110
if lang eq ru
1110
if lang eq ru
1111
 RMenuRedrawFon db '¥à¥à¨á®¢ âì',0
1111
 RMenuRedrawFon db '¥à¥à¨á®¢ âì',0
1112
 RMenuAlign	db '‚ë஢­ïâì ¯® á¥âª¥',0
1112
 RMenuAlign	db '‚ë஢­ïâì ¯® á¥âª¥',0
1113
 RMenuOffMoving db '‡ ªà¥¯¨âì ¨ª®­ª¨',0
1113
 RMenuOffMoving db '‡ ªà¥¯¨âì ¨ª®­ª¨',0
1114
 RMenuOnMoving	db 'Žâªà¥¯¨âì ¨ª®­ª¨',0
1114
 RMenuOnMoving	db 'Žâªà¥¯¨âì ¨ª®­ª¨',0
1115
 RMenuAdd	db '„®¡ ¢¨âì',0
1115
 RMenuAdd	db '„®¡ ¢¨âì',0
1116
 RMenuDel	db '“¤ «¨âì',0
1116
 RMenuDel	db '“¤ «¨âì',0
1117
 RMenuProp	db '‘¢®©á⢠',0
1117
 RMenuProp	db '‘¢®©á⢠',0
1118
else
1118
else
1119
 RMenuRedrawFon db 'Redraw',0
1119
 RMenuRedrawFon db 'Redraw',0
1120
 RMenuAlign	db 'Snap to Grid',0
1120
 RMenuAlign	db 'Snap to Grid',0
1121
 RMenuOffMoving db 'Fix the icons',0
1121
 RMenuOffMoving db 'Fix the icons',0
1122
 RMenuOnMoving	db 'Unfix the icons',0
1122
 RMenuOnMoving	db 'Unfix the icons',0
1123
 RMenuAdd	db 'Add',0
1123
 RMenuAdd	db 'Add',0
1124
 RMenuDel	db 'Delete',0
1124
 RMenuDel	db 'Delete',0
1125
 RMenuProp	db 'Properties',0
1125
 RMenuProp	db 'Properties',0
1126
end if
1126
end if
1127
 
1127
 
1128
if lang eq ru
1128
if lang eq ru
1129
 ErrRunProg	db 'Žè¨¡ª  § ¯ã᪠ ¯à®£à ¬¬ë',0
1129
 ErrRunProg	db 'Žè¨¡ª  § ¯ã᪠ ¯à®£à ¬¬ë',0
1130
 WarningSave	db '¥ § ¡ã¤ì⥠á®åà ­¨âì ¨§¬¥­¥­¨ï, § ¯ãáâ¨âì RDSave',0
1130
 WarningSave	db '¥ § ¡ã¤ì⥠á®åà ­¨âì ¨§¬¥­¥­¨ï, § ¯ãáâ¨âì RDSave',0
1131
 ErrNotFoundIni db '¥ ­ ©¤¥­ icon.ini',0
1131
 ErrNotFoundIni db '¥ ­ ©¤¥­ icon.ini',0
1132
 ErrName	db 'ˆ¬ï "rbmenu" § à¥§¥à¢¨à®¢ ­®',0
1132
 ErrName	db 'ˆ¬ï "rbmenu" § à¥§¥à¢¨à®¢ ­®',0
1133
else
1133
else
1134
 ErrRunProg	db 'Error runing program',0
1134
 ErrRunProg	db 'Error runing program',0
1135
 WarningSave	db 'Do not forget to save the changes, run the RDSave',0
1135
 WarningSave	db 'Do not forget to save the changes, run the RDSave',0
1136
 ErrNotFoundIni db 'icon.ini not found',0
1136
 ErrNotFoundIni db 'icon.ini not found',0
1137
 ErrName	db 'The name "rbmenu" reserved',0
1137
 ErrName	db 'The name "rbmenu" reserved',0
1138
end if
1138
end if
1139
 
1139
 
1140
;-------------------------------------------------------------------------------
1140
;-------------------------------------------------------------------------------
1141
;------- AddDlg.inc ---------------------------------------------------------------
1141
;------- AddDlg.inc ---------------------------------------------------------------
1142
;-------------------------------------------------------------------------------
1142
;-------------------------------------------------------------------------------
1143
if lang eq ru
1143
if lang eq ru
1144
DTitleAdd	db '„®¡ ¢¨âì ¨ª®­ªã',0
1144
DTitleAdd	db '„®¡ ¢¨âì ¨ª®­ªã',0
1145
DTitleProp	db 'ˆ§¬¥­¨âì ¨ª®­ªã',0
1145
DTitleProp	db 'ˆ§¬¥­¨âì ¨ª®­ªã',0
1146
 
1146
 
1147
DCaptName	db 'ˆ¬ï',0
1147
DCaptName	db 'ˆ¬ï',0
1148
DCaptPath	db 'ãâì',0
1148
DCaptPath	db 'ãâì',0
1149
DCaptParams	db ' à ¬¥âàë',0
1149
DCaptParams	db ' à ¬¥âàë',0
1150
DCaptIcon	db 'ˆª®­ª ',0
1150
DCaptIcon	db 'ˆª®­ª ',0
1151
;DCaptChange     db '.',0
1151
;DCaptChange     db '.',0
1152
DCaptCreate	db '‘®§¤ âì',0
1152
DCaptCreate	db '‘®§¤ âì',0
1153
DCaptProperties db 'ˆ§¬¥­¨âì',0
1153
DCaptProperties db 'ˆ§¬¥­¨âì',0
1154
DCaptCancel	db 'Žâ¬¥­¨âì',0
1154
DCaptCancel	db 'Žâ¬¥­¨âì',0
1155
 
1155
 
1156
else
1156
else
1157
DTitleAdd	db 'Add icon',0
1157
DTitleAdd	db 'Add icon',0
1158
DTitleProp	db 'Change icon',0
1158
DTitleProp	db 'Change icon',0
1159
 
1159
 
1160
DCaptName	db 'Name',0
1160
DCaptName	db 'Name',0
1161
DCaptPath	db 'Path',0
1161
DCaptPath	db 'Path',0
1162
DCaptParams	db 'Parameters',0
1162
DCaptParams	db 'Parameters',0
1163
DCaptIcon	db 'Icon',0
1163
DCaptIcon	db 'Icon',0
1164
DCaptCreate	db 'Create',0
1164
DCaptCreate	db 'Create',0
1165
DCaptProperties db 'Change',0
1165
DCaptProperties db 'Change',0
1166
DCaptCancel	db 'Cancel',0
1166
DCaptCancel	db 'Cancel',0
1167
end if
1167
end if
1168
 
1168
 
1169
;/­¥ ¬¥­ïâì ¯®«®¦¥­¨¥
1169
;/­¥ ¬¥­ïâì ¯®«®¦¥­¨¥
1170
edtName    edit_box NAME_LENGTH*6+4,70+20+IMG_SIZE,6,0FFFFFFh,06F9480h,0FFh,0h,0,NAME_LENGTH,\
1170
edtName    edit_box NAME_LENGTH*6+4,70+20+IMG_SIZE,6,0FFFFFFh,06F9480h,0FFh,0h,0,NAME_LENGTH,\
1171
		DAreaName,mouse_dd,0,0,0
1171
		DAreaName,mouse_dd,0,0,0
1172
edtExePath edit_box 281-3-20-IMG_SIZE,70+20+IMG_SIZE,26,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
1172
edtExePath edit_box 281-3-20-IMG_SIZE,70+20+IMG_SIZE,26,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
1173
		DAreaPath,mouse_dd,0,0,0
1173
		DAreaPath,mouse_dd,0,0,0
1174
edtParams  edit_box 295-20-IMG_SIZE,70+20+IMG_SIZE,46,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
1174
edtParams  edit_box 295-20-IMG_SIZE,70+20+IMG_SIZE,46,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
1175
		DAreaParams,mouse_dd,0,0,0
1175
		DAreaParams,mouse_dd,0,0,0
1176
edtIcon    edit_box 295-20-IMG_SIZE,70+20+IMG_SIZE,66,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
1176
edtIcon    edit_box 28,24,50,0FFFFFFh,0FFFFFFh,0FFh,0h,0,3,\
1177
		DAreaIcon,mouse_dd,0,0,0
1177
		DAreaIcon,0,0,0,0
1178
endEdits:
1178
endEdits:
1179
;\
1179
;\
1180
 
1180
 
1181
sbIcons:
1181
sbIcons:
1182
	     dw END_ICONS_AREAW-ICONSX
1182
	     dw END_ICONS_AREAW-ICONSX
1183
	     dw ICONSX
1183
	     dw ICONSX
1184
	     dw 15
1184
	     dw 15
1185
	     dw END_ICONS_AREAH+3
1185
	     dw END_ICONS_AREAH+3
1186
	     dd 0
1186
	     dd 0
1187
	     dd 1
1187
	     dd 1
1188
 .max_area   dd 0
1188
 .max_area   dd 0
1189
 .cur_area   dd ICONS_DRAW_COUNTW
1189
 .cur_area   dd ICONS_DRAW_COUNTW
1190
 .position   dd 0
1190
 .position   dd 0
1191
 .bckg_col   dd 0
1191
 .bckg_col   dd 0
1192
 .frnt_col   dd 0
1192
 .frnt_col   dd 0
1193
 .line_col   dd 0
1193
 .line_col   dd 0
1194
 .redraw     dd 0
1194
 .redraw     dd 0
1195
 .delta      dd 0
1195
 .delta      dd 0
1196
 .delta2     dd 0
1196
 .delta2     dd 0
1197
 .r_size_x   dw 0
1197
 .r_size_x   dw 0
1198
 .r_start_x  dw 0
1198
 .r_start_x  dw 0
1199
 .r_size_y   dw 0
1199
 .r_size_y   dw 0
1200
 
1200
 
1201
 .r_start_y  dw 0
1201
 .r_start_y  dw 0
1202
 .m_pos      dd 0
1202
 .m_pos      dd 0
1203
 .m_pos2     dd 0
1203
 .m_pos2     dd 0
1204
 .m_keys     dd 0
1204
 .m_keys     dd 0
1205
 .run_size   dd 0
1205
 .run_size   dd 0
1206
 .position2  dd 0
1206
 .position2  dd 0
1207
 .work_size  dd 0
1207
 .work_size  dd 0
1208
 .all_redraw dd 0
1208
 .all_redraw dd 0
1209
 .ar_offset  dd 0
1209
 .ar_offset  dd 0
1210
 
1210
 
1211
;-------------------------------------------------------------------------------
1211
;-------------------------------------------------------------------------------
1212
OpenDialog_data:
1212
OpenDialog_data:
1213
.type			dd 0
1213
.type			dd 0
1214
.procinfo		dd RBProcInfo	    ;+4
1214
.procinfo		dd RBProcInfo	    ;+4
1215
.com_area_name		dd communication_area_name	;+8
1215
.com_area_name		dd communication_area_name	;+8
1216
.com_area		dd 0	;+12
1216
.com_area		dd 0	;+12
1217
.opendir_pach		dd temp_dir_pach	;+16
1217
.opendir_pach		dd temp_dir_pach	;+16
1218
.dir_default_pach	dd communication_area_default_pach	;+20
1218
.dir_default_pach	dd communication_area_default_pach	;+20
1219
.start_path		dd open_dialog_path	;+24
1219
.start_path		dd open_dialog_path	;+24
1220
.draw_window		dd DRedrawWin;draw_window_for_OD   ;+28
1220
.draw_window		dd DRedrawWin;draw_window_for_OD   ;+28
1221
.status 		dd 0	;+32
1221
.status 		dd 0	;+32
1222
.openfile_pach		dd DAreaPath;fname_Info   ;+36
1222
.openfile_pach		dd DAreaPath;fname_Info   ;+36
1223
.filename_area		dd 0;DAreaPath        ;+40
1223
.filename_area		dd 0;DAreaPath        ;+40
1224
.filter_area		dd Filter
1224
.filter_area		dd Filter
1225
.x:
1225
.x:
1226
.x_size 		dw 420 ;+48 ; Window X size
1226
.x_size 		dw 420 ;+48 ; Window X size
1227
.x_start		dw 100 ;+50 ; Window X position
1227
.x_start		dw 100 ;+50 ; Window X position
1228
.y:
1228
.y:
1229
.y_size 		dw 320 ;+52 ; Window y size
1229
.y_size 		dw 320 ;+52 ; Window y size
1230
.y_start		dw 100 ;+54 ; Window Y position
1230
.y_start		dw 100 ;+54 ; Window Y position
1231
 
1231
 
1232
communication_area_name:
1232
communication_area_name:
1233
	db 'FFFFFFFF_open_dialog',0
1233
	db 'FFFFFFFF_open_dialog',0
1234
open_dialog_path:
1234
open_dialog_path:
1235
	db '/sys/File managers/opendial',0
1235
	db '/sys/File managers/opendial',0
1236
 
1236
 
1237
communication_area_default_pach:
1237
communication_area_default_pach:
1238
	db '/sys',0
1238
	db '/sys',0
1239
 
1239
 
1240
Filter	dd 0
1240
Filter	dd 0
1241
 
1241
 
1242
;open_dialog     db 0
1242
;open_dialog     db 0
1243
;-------------------------------------------------------------------------------
1243
;-------------------------------------------------------------------------------
1244
 
1244
 
1245
;/­¥ à §¤¥«ïâì
1245
;/­¥ à §¤¥«ïâì
1246
align 4
1246
align 4
1247
IconAreaH	dd ICON_SIZE,ICON_SIZE
1247
IconAreaH	dd ICON_SIZE,ICON_SIZE
1248
I_END:
1248
I_END:
1249
;##### UDATA ###################################################################
1249
;##### UDATA ###################################################################
1250
IconArea	rb 4*ICON_SIZE*ICON_SIZE
1250
IconArea	rb 4*ICON_SIZE*ICON_SIZE
1251
;\
1251
;\
1252
 
1252
 
1253
sc		system_colors
1253
sc		system_colors
1254
sc.workL	rd 1
1254
sc.workL	rd 1
1255
sc.workH	rd 1
1255
sc.workH	rd 1
1256
 
1256
 
1257
 
1257
 
1258
align 4
1258
align 4
1259
IPCbuffer	rb 1024
1259
IPCbuffer	rb 1024
1260
 
1260
 
1261
align 4
1261
align 4
1262
 
1262
 
1263
ScreenW 	rw 1
1263
ScreenW 	rw 1
1264
ScreenH 	rw 1
1264
ScreenH 	rw 1
1265
wsX		rw 1
1265
wsX		rw 1
1266
wsY		rw 1
1266
wsY		rw 1
1267
wsXe		rw 1
1267
wsXe		rw 1
1268
wsYe		rw 1
1268
wsYe		rw 1
1269
wsW		rw 1
1269
wsW		rw 1
1270
wsH		rw 1
1270
wsH		rw 1
1271
 
1271
 
1272
 
1272
 
1273
MouseX		rd 1
1273
MouseX		rd 1
1274
MouseY		rd 1
1274
MouseY		rd 1
1275
 
1275
 
1276
RBSlot		rd 1
1276
RBSlot		rd 1
1277
AddX		rd 1
1277
AddX		rd 1
1278
AddY		rd 1
1278
AddY		rd 1
1279
 
1279
 
1280
SelIcon 	rd 1
1280
SelIcon 	rd 1
1281
DlgSelIcon	rd 1
1281
DlgSelIcon	rd 1
1282
slotDlgAdd	rd 1
1282
slotDlgAdd	rd 1
1283
DlgBufImg	rb IMG_SIZE*IMG_SIZE*3
1283
DlgBufImg	rb IMG_SIZE*IMG_SIZE*3
1284
 
1284
 
1285
align 4
1285
align 4
1286
bufStdIco	rb 40
1286
bufStdIco	rb 40
1287
IconsOffs	rd 100		;â ¡«¨æ  á 㪠§ â¥«ï¬¨ ­  ª®­ªà¥â­ë¥ ¨ª®­ª¨(¤«ï ã᪮७¨ï)
1287
IconsOffs	rd 100		;â ¡«¨æ  á 㪠§ â¥«ï¬¨ ­  ª®­ªà¥â­ë¥ ¨ª®­ª¨(¤«ï ã᪮७¨ï)
1288
PIcoDB		rd 1
1288
PIcoDB		rd 1
1289
nLoadIcon	rd 1		;­®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®­ª¨
1289
nLoadIcon	rd 1		;­®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®­ª¨
1290
IconsID 	rd 100		;ID ¨ª®­®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢­¨¢ î騩 ¡ ©â - áâப  á 2¬ï è¥á­ ¤æ¥â¨à¨ç­ë¬¨ æ¨äà ¬¨
1290
IconsID 	rd 100		;ID ¨ª®­®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢­¨¢ î騩 ¡ ©â - áâப  á 2¬ï è¥á­ ¤æ¥â¨à¨ç­ë¬¨ æ¨äà ¬¨
1291
 
1291
 
1292
nameSection	rb 4
1292
nameSection	rb 4
1293
 
1293
 
1294
align 4
1294
align 4
1295
icon_count	rd 1
1295
icon_count	rd 1
1296
strip_file	rd 1
1296
strip_file	rd 1
1297
strip_file_size rd 1
1297
strip_file_size rd 1
1298
 
1298
 
1299
cur_band_compensation rd 1
1299
cur_band_compensation rd 1
1300
 
1300
 
1301
;---- RButton -----------------------------------------------------------------------
1301
;---- RButton -----------------------------------------------------------------------
1302
 
1302
 
1303
bufIni		rb 40
1303
bufIni		rb 40
1304
NumMenuButt	rd 1
1304
NumMenuButt	rd 1
1305
RBMenuCP	rd MAX_USER_BUTTONS*2	      ;㪠§ â¥«¨ ­  ¯®¤¯¨áì ¨ ¯ãâì á ¯à®£®© (Caption(dd), Path(dd)) ¨ § ¯ á­®© (dd) ¤«ï § ¢¥àè î饣® ­ã«ï
1305
RBMenuCP	rd MAX_USER_BUTTONS*2	      ;㪠§ â¥«¨ ­  ¯®¤¯¨áì ¨ ¯ãâì á ¯à®£®© (Caption(dd), Path(dd)) ¨ § ¯ á­®© (dd) ¤«ï § ¢¥àè î饣® ­ã«ï
1306
RMenuW		rw 1
1306
RMenuW		rw 1
1307
RMenuH		rw 1
1307
RMenuH		rw 1
1308
 
1308
 
1309
MaxPage 	rd 1
1309
MaxPage 	rd 1
1310
mouse_dd	rd 1
1310
mouse_dd	rd 1
1311
 
1311
 
1312
DAreaName	rb NAME_LENGTH+1
1312
DAreaName	rb NAME_LENGTH+1
1313
DAreaPath	rb 255+1
1313
DAreaPath	rb 255+1
1314
DAreaParams	rb 255+1
1314
DAreaParams	rb 255+1
1315
DAreaIcon	rb 255+1
1315
DAreaIcon	rb 255+1
1316
 
1316
 
1317
align 4
1317
align 4
1318
RBProcInfo	rb 1024
1318
RBProcInfo	rb 1024
1319
align 4
1319
align 4
1320
 
1320
 
1321
 
1321
 
1322
;------ OpenDialog -------------------------------
1322
;------ OpenDialog -------------------------------
1323
temp_dir_pach	rb 1024
1323
temp_dir_pach	rb 1024
1324
fname_Info	rb 1024
1324
fname_Info	rb 1024
1325
 
1325
 
1326
;-------------------------------------------------------------------------------
1326
;-------------------------------------------------------------------------------
1327
		rb 512
1327
		rb 512
1328
stack_mov:			;®¤­®¢à¥¬¥­­® â áª âì ¨ ¤¥à¦ âì ®âªàëâë¬ ¬¥­îèªã ­¥¢®§¬®¦­®
1328
stack_mov:			;®¤­®¢à¥¬¥­­® â áª âì ¨ ¤¥à¦ âì ®âªàëâë¬ ¬¥­îèªã ­¥¢®§¬®¦­®
1329
stack_rmenu:
1329
stack_rmenu:
1330
		rb 512
1330
		rb 512
1331
stack_dlg:
1331
stack_dlg:
1332
		rb 512
1332
		rb 512
1333
stack_bredraw:
1333
stack_bredraw:
1334
		rb 512
1334
		rb 512
1335
stack_main:
1335
stack_main:
1336
;------------------------------------------------------------------------------
1336
;------------------------------------------------------------------------------
1337
ENDMEM:
1337
ENDMEM: