Subversion Repositories Kolibri OS

Rev

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

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