Subversion Repositories Kolibri OS

Rev

Rev 5158 | Rev 6766 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5158 Rev 6763
Line 1... Line 1...
1
;
1
;
2
;   Screenshooter for Kolibri
2
;   Screenshooter for Kolibri
3
;
3
;
-
 
4
;---------------------------------------------------------------------
-
 
5
; €¢â®à ¯à®£à ¬¬ë …¢â¨å®¢ Œ ªá¨¬ (Maxxxx32)
-
 
6
;
-
 
7
; 26.11.16 - IgorA á­¨¬ª¨ á®åà ­ïîâìáï ¢ ä®à¬ â¥ *.png
-
 
8
; 02.11.10 - ˆá¯®«ì§ã¥âáï checkbox ¢¥àᨨ 2
-
 
9
;
4
; version:	1.2
10
; version:	1.2
5
; last update:  08/09/2010
11
; last update:  08/09/2010
6
; written by:   Marat Zakiyanov aka Mario79, aka Mario
12
; written by:   Marat Zakiyanov aka Mario79, aka Mario
7
; changes:      select path for save with OpenDialog,
13
; changes:      select path for save with OpenDialog,
8
;               bag fix for threads stacks
14
;               bag fix for threads stacks
9
;---------------------------------------------------------------------
-
 
10
; 01.06.09 - Š®¬¯®­¥­âë ¡¥àãâìáï ¨§ á¨á⥬­®© ¡¨¡«¨®â¥ª¨ 
15
; 01.06.09 -  ª®¬¯®­¥­âë ¡¥àãâìáï ¨§ á¨á⥬­®© ¡¨¡«¨®â¥ª¨
11
; €¢â®à ¯à®£à ¬¬ë …¢â¨å®¢ Œ ªá¨¬ (Maxxxx32)
-
 
12
; 24.07.2008  ®¡­®¢«¥­ editbox
16
; 24.07.08 -  ®¡­®¢«¥­ editbox
13
; 01.02.07 - ®¡­®¢«ñ­ editbox
17
; 01.02.07 - ®¡­®¢«ñ­ editbox
14
; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
18
; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
15
; 02.11.10 - ˆá¯®«ì§ã¥âáï checkbox ¢¥àᨨ 2
-
 
-
 
19
 
Line 16... Line 20...
16
 
20
 
Line 17... Line 21...
17
format binary as ""
21
format binary as ""
18
 
22
 
19
title equ 'Screenshooter v 1.2' ; ‡ £®«®¢®ª ®ª­ 
23
title equ 'Screenshooter v 1.2' ; ‡ £®«®¢®ª ®ª­ 
20
include '../../develop/libraries/box_lib/load_lib.mac'
-
 
21
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
24
include '../../develop/libraries/box_lib/load_lib.mac'
-
 
25
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
22
;include '../../develop/examples/editbox/trunk/editbox.inc'
26
include '../../config.inc'		;for nightbuild
-
 
27
include '../../proc32.inc'
-
 
28
include '../../macros.inc'
23
include '../../config.inc'		;for nightbuild
29
include '../../KOSfuncs.inc'
24
include '../../macros.inc'
30
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
25
include 'txtbut.inc'
31
include 'txtbut.inc'
26
include 'label.inc'
32
include 'label.inc'
Line 27... Line -...
27
include 'textwork.inc'
-
 
28
include 'scrshoot.mac'
-
 
29
 
33
include 'textwork.inc'
30
;include 'macros.inc'  ; ¢áâ ¢«ï¥¬ ¬ ªà®áë
34
include 'scrshoot.mac'
31
;        meos_header  cmdstr ; ¢áâ ¢«ï¥¬ § £®«®¢®ª ¯à®£à ¬¬ë
35
 
32
use32		     
36
use32		     
33
    org 0x0
37
    org 0x0
Line 38... Line 42...
38
    dd i_end
42
    dd i_end
39
    dd stacktop
43
    dd stacktop
40
    dd cmdstr
44
    dd cmdstr
41
    dd cur_dir_path
45
    dd cur_dir_path
Line -... Line 46...
-
 
46
 
-
 
47
include '../../dll.inc'
42
 
48
 
43
align 4
49
align 4
44
	@use_library
50
	@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
45
	use_txt_button				;  |
51
	use_txt_button				;  |
46
	use_label				;  |-- GUI ª®¬¯®­¥­âë ¨ ­¥ª®â®àë¥ ¯à®æ¥¤ãàë
52
	use_label				;  |-- GUI ª®¬¯®­¥­âë ¨ ­¥ª®â®àë¥ ¯à®æ¥¤ãàë
47
	use_text_work				; /
53
	use_text_work				; /
48
include 'scrwin.inc'  ; ¢áâ ¢«ï¥¬ ª®¤ ®ª­  ¯à¤¯à®á¬®âà 
54
include 'scrwin.inc'  ; ¢áâ ¢«ï¥¬ ª®¤ ®ª­  ¯à¤¯à®á¬®âà 
Line 52... Line 58...
52
include 'srectwin.inc'
58
include 'srectwin.inc'
53
include 'lang.inc'
59
include 'lang.inc'
Line 54... Line 60...
54
 
60
 
55
macro get_sys_colors col_buf
61
macro get_sys_colors col_buf
56
{
-
 
57
	;mov     eax,48
-
 
58
	push	48
-
 
59
	pop	eax
-
 
60
	;mov     ebx,3
-
 
61
	push	3
-
 
62
	pop	ebx
62
{
63
	;mov     ecx,col_buf
-
 
64
	push	col_buf
-
 
65
	pop	ecx
-
 
66
	;mov     edx,40
-
 
67
	push	40
-
 
68
	pop	edx
-
 
69
	mcall
63
	mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, col_buf, 40
Line 70... Line 64...
70
}
64
}
71
 
65
 
72
;--- ­ ç «® ¯à®£à ¬¬ë ---
66
;--- ­ ç «® ¯à®£à ¬¬ë ---
73
align 4
-
 
74
start:
-
 
Line 75... Line 67...
75
;sys_load_library  library_name, cur_dir_path, library_path, system_path, \
67
align 4
Line 76... Line 68...
76
;err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
68
start:
77
 
69
 
78
load_libraries l_libs_start,end_l_libs
70
load_libraries l_libs_start,end_l_libs
79
 
71
 
80
;if return code =-1 then exit, else nornary work
72
;if return code =-1 then exit, else nornary work
81
;        cmp     eax,-1
73
;        cmp     eax,-1
82
	inc	eax
-
 
83
	test	eax,eax
74
	inc	eax
84
	jz	close
-
 
85
;;;;;;;;;;;;;;;; init memory 68/11
75
	test	eax,eax
86
	mov	eax,68
76
	jz	close
Line 87... Line 77...
87
	mov	ebx,11
77
;;;;;;;;;;;;;;;; init memory 68/11
88
	mcall
78
	mcall SF_SYS_MISC, SSF_HEAP_INIT
Line 110... Line 100...
110
	stosb
100
	stosb
111
	test	eax,eax
101
	test	eax,eax
112
	jnz	@b
102
	jnz	@b
Line 113... Line 103...
113
	
103
	
114
;OpenDialog	initialisation
-
 
115
	push    dword OpenDialog_data
104
;OpenDialog	initialisation
Line 116... Line 105...
116
	call    [OpenDialog_Init]
105
	stdcall    [OpenDialog_Init], OpenDialog_data
117
 
-
 
118
; prepare for PathShow
106
 
119
	push	dword PathShow_data_1
107
; prepare for PathShow
120
	call	[PathShow_prepare]
108
	stdcall	[PathShow_prepare], PathShow_data_1
121
;---------------------------------------------------------------------	
109
;---------------------------------------------------------------------	
122
	;mov     al,[gs:1280*4*1024]
-
 
123
		    ; ãáâ ­ ¢«¨¢ ¥¬ ipc ¡ãää¥à
-
 
124
	push	60
-
 
125
	pop	eax
110
	;mov     al,[gs:1280*4*1024]
126
	;mov     ebx,1
111
		    ; ãáâ ­ ¢«¨¢ ¥¬ ipc ¡ãää¥à
127
	xor	ebx,ebx
112
	xor	ebx,ebx
128
	inc	ebx
-
 
129
	mov	ecx,app_ipc
-
 
Line 130... Line 113...
130
	mov	edx,32
113
	inc	ebx
131
	mcall
-
 
132
 
-
 
133
	push	66   ; ãáâ ­ ¢«¨¢ ¥¬ £«®¡ «ì­ãî £®àïçãî ª« ¢¨èã
-
 
134
	pop	eax
114
	mcall SF_IPC,, app_ipc, 32
135
	push	eax
115
 
136
	mov	ebx,4
116
	; ãáâ ­ ¢«¨¢ ¥¬ £«®¡ «ì­ãî £®àïçãî ª« ¢¨èã
Line 137... Line 117...
137
	mov	cl,55	 ; 55 - PrintScrn
117
	mov	cl,55	 ; 55 - PrintScrn
138
	xor	edx,edx
118
	xor	edx,edx
139
	mcall
119
	mcall SF_KEYBOARD, SSF_SET_SYS_HOTKEY
Line 154... Line 134...
154
 
134
 
155
	; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢
135
	; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢
156
	txt_but_set_sys_color buttons,buttons_end,sc		 ; \
136
	txt_but_set_sys_color buttons,buttons_end,sc		 ; \
157
	labels_set_sys_color labels,labels_end,sc		 ; |
137
	labels_set_sys_color labels,labels_end,sc		 ; |
158
	check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc; |
-
 
159
;	check_boxes_set_sys_color check_boxes,check_boxes_end,sc ; |
138
	check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc; |
Line 160... Line 139...
160
	edit_boxes_set_sys_color editboxes,editboxes_end,sc	 ; /
139
	edit_boxes_set_sys_color editboxes,editboxes_end,sc	 ; /
161
 
140
 
162
	get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥
141
	get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥
Line 179... Line 158...
179
 
158
 
180
	call	shoot
159
	call	shoot
181
	jmp	close
160
	jmp	close
182
;------------------------------------------------------------------------------	
161
;------------------------------------------------------------------------------	
183
draw_window_direct:
162
draw_window_direct:
184
	mcall	12,1
163
	mcall SF_REDRAW, SSF_BEGIN_DRAW
185
	mcall	14
164
	mcall SF_GET_SCREEN_SIZE
186
; eax = [xsize]*65536 + [ysize]
165
; eax = [xsize]*65536 + [ysize]
187
	mov	ebx,eax
166
	mov	ebx,eax
188
	shr	ebx,17
167
	shr	ebx,17
189
	sub	ebx,100
168
	sub	ebx,100
Line 193... Line 172...
193
	and	ecx,0xffff
172
	and	ecx,0xffff
194
	shr	ecx,1
173
	shr	ecx,1
195
	sub	ecx,50
174
	sub	ecx,50
196
	shl	ecx,16
175
	shl	ecx,16
197
	mov	cx,100
176
	mov	cx,100
198
	xor	eax,eax
-
 
199
	xor	esi,esi
177
	xor	esi,esi
200
	mcall	,,,0x34ffffff,,grab_text
178
	mcall SF_CREATE_WINDOW,,,0x34ffffff,,grab_text
Line 201... Line 179...
201
 
179
 
Line 202... Line 180...
202
	mcall	4,<10,30>,0x90000000,saving
180
	mcall SF_DRAW_TEXT, <10,30>,0x90000000,saving
203
	
181
	
204
	mcall	12,2
182
	mcall SF_REDRAW, SSF_END_DRAW
205
	ret
183
	ret
206
;------------------------------------------------------------------------------	
184
;------------------------------------------------------------------------------	
207
no_boot:
185
no_boot:
Line 219... Line 197...
219
	call	shoot
197
	call	shoot
220
	mov	[PrintScreen],0
198
	mov	[PrintScreen],0
221
	jmp	still
199
	jmp	still
222
@@:
200
@@:
223
;        key_edit_boxes editboxes,editboxes_end
201
;        key_edit_boxes editboxes,editboxes_end
224
;	push	dword edit1
-
 
225
;	call	[edit_box_key]
202
;	stdcall	[edit_box_key], edit1
226
 
-
 
227
	push	dword edit2
-
 
228
	call	[edit_box_key]
203
	stdcall	[edit_box_key], edit2
229
 
-
 
230
	push	dword edit3
-
 
231
	call	[edit_box_key]
204
	stdcall	[edit_box_key], edit3
232
 
-
 
233
	push	dword edit4
-
 
234
	call	[edit_box_key]
205
	stdcall	[edit_box_key], edit4
Line 235... Line 206...
235
 
206
 
236
	jmp	still
207
	jmp	still
237
button:
208
button:
238
	get_pressed_button
209
	get_pressed_button
Line 243... Line 214...
243
mouse:
214
mouse:
244
	get_active_window
215
	get_active_window
245
	cmp	eax,[slot_n]
216
	cmp	eax,[slot_n]
246
	jne	still
217
	jne	still
247
;----------------------------------
218
;----------------------------------
248
;	push	dword edit1
-
 
249
;	call	[edit_box_mouse]
219
;	stdcall	[edit_box_mouse], edit1
250
	push	dword edit2
-
 
251
	call	[edit_box_mouse]
220
	stdcall	[edit_box_mouse], edit2
252
	push	dword edit3
-
 
253
	call	[edit_box_mouse]
221
	stdcall	[edit_box_mouse], edit3
254
	push	dword edit4
-
 
255
	call	[edit_box_mouse]
222
	stdcall	[edit_box_mouse], edit4
256
;----------------------------------
223
;----------------------------------
257
	checkboxes_mouse2	check_boxes,check_boxes_end
224
	checkboxes_mouse2	check_boxes,check_boxes_end
258
;	push	dword ch1
-
 
259
;	call	[check_box_mouse]
-
 
260
;	push	dword ch2
-
 
261
;	call	[check_box_mouse]
-
 
262
;	push	dword ch3
-
 
263
;	call	[check_box_mouse]
-
 
264
;	push	dword ch4
-
 
265
;	call	[check_box_mouse]
-
 
266
;	push	dword ch5
-
 
267
;	call	[check_box_mouse]
-
 
268
;	push	dword ch6
-
 
269
;	call	[check_box_mouse]
-
 
270
;	push	dword use_rect
-
 
271
;	call	[check_box_mouse]
-
 
272
;-----------------------------------
225
;-----------------------------------
273
;        mouse_check_boxes check_boxes,check_boxes_end
226
;        mouse_check_boxes check_boxes,check_boxes_end
274
;        mouse_edit_boxes editboxes,editboxes_end
227
;        mouse_edit_boxes editboxes,editboxes_end
275
	jmp	still
228
	jmp	still
276
ipc:
229
ipc:
Line 299... Line 252...
299
p_close:
252
p_close:
300
	btr	dword [flags],1
253
	btr	dword [flags],1
Line 301... Line 254...
301
 
254
 
302
	bt	dword [flags],3
255
	bt	dword [flags],3
303
	jnc	@f
-
 
304
	mov    eax,18
-
 
305
	mov	ebx,eax
256
	jnc	@f
306
	mov	ecx,[set_rect_window_pid]
-
 
307
	mcall
257
	mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID, [set_rect_window_pid]
Line 308... Line 258...
308
@@:
258
@@:
309
 
259
 
Line 310... Line 260...
310
close:
260
close:
311
	app_close
261
	app_close
312
 
262
 
313
;---------------------------------------------------------------------
263
;---------------------------------------------------------------------
314
draw_PathShow:
264
draw_PathShow:
315
	pusha
265
	pusha
316
	mcall	13,<4,302>,<35,15>,0xffffff
266
	mcall SF_DRAW_RECT, <4,302>, <35,15>, 0xffffff
317
; draw for PathShow
267
; draw for PathShow
318
	push	dword PathShow_data_1
268
	push	dword PathShow_data_1
Line 324... Line 274...
324
;--------------------------------------------------------------------
274
;--------------------------------------------------------------------
325
draw_window:
275
draw_window:
326
start_draw_window	 ; ­ ç «® ¯¥à¥à¨á®¢ª¨
276
start_draw_window	 ; ­ ç «® ¯¥à¥à¨á®¢ª¨
327
	; ®¯à¥¤¥«ï¥¬ ®ª­®
277
	; ®¯à¥¤¥«ï¥¬ ®ª­®
328
	get_skin_height
278
	get_skin_height
329
	mov	ebx,100*65536+320
-
 
330
	mov	ecx,100*65536+220
279
	mov	ecx,100*65536+220
331
	add	cx,ax
280
	add	cx,ax
332
	mov	edx,[sc.work]
281
	mov	edx,[sc.work]
333
	or	edx,0x34000000;0x33000000
282
	or	edx,0x34000000;0x33000000
334
	xor	esi,esi
283
	xor	esi,esi
335
	;xor     edi,edi
284
	;xor     edi,edi
336
	mov	edi,grab_text
285
	mov	edi,grab_text
337
	xor	eax,eax
-
 
338
	mcall
286
	mcall SF_CREATE_WINDOW, 100*65536+320
Line 339... Line 287...
339
 
287
 
340
	mov	eax,47		   ; ¢ë¢®¤¨¬ ç¨á«  ¢ ®ª­®
288
	; ¢ë¢®¤¨¬ ç¨á«  ¢ ®ª­®
341
	mov	bx,4
-
 
342
	shl	ebx,16
289
	mov	ebx,4 shl 16
343
	movsx	ecx,word [scr.width] ; è¨à¨­  íªà ­ 
290
	movsx	ecx,word [scr.width] ; è¨à¨­  íªà ­ 
344
	mov	dx,95
-
 
345
	shl	edx,16
291
	mov	edx,95 shl 16
346
	mov	dx,[label1.top]
292
	mov	dx,[label1.top]
347
	push	dx
293
	push	dx
348
	mov	esi,[sc.work_text]
294
	mov	esi,[sc.work_text]
349
	mcall
295
	mcall SF_DRAW_NUMBER
350
	movsx	ecx,word [scr.height]	; ¢ëá®â  íªà ­ 
296
	movsx	ecx,word [scr.height]	; ¢ëá®â  íªà ­ 
351
	mov	dx,[label2.top]
297
	mov	dx,[label2.top]
352
	mcall
298
	mcall
353
	mov	bx,2
-
 
354
	shl	ebx,16
299
	mov	ebx,2 shl 16
355
	movsx	ecx,word [scr.bitspp]	; ¡¨â ­  ¯¨ªá¥«ì
300
	movsx	ecx,word [scr.bitspp]	; ¡¨â ­  ¯¨ªá¥«ì
356
	mov	dx,240
-
 
357
	shl	edx,16
301
	mov	edx,240 shl 16
358
	pop	dx
302
	pop	dx
359
	mcall
303
	mcall
360
	mov	bx,6
-
 
361
	shl	ebx,16
304
	mov	ebx,6 shl 16
362
	mov	ecx,[scr.bytesps]	; ¡ ©â ­  áâபã
305
	mov	ecx,[scr.bytesps]	; ¡ ©â ­  áâபã
363
	mov	dx,[label2.top]
306
	mov	dx,[label2.top]
Line 364... Line 307...
364
	mcall
307
	mcall
365
 
308
 
Line 366... Line 309...
366
	call	draw_number	 ; ¯à®à¨á®¢ë¢ ¥¬ ­®¬¥à á­¨¬ª 
309
	call	draw_number	 ; ¯à®à¨á®¢ë¢ ¥¬ ­®¬¥à á­¨¬ª 
367
	call	dr_st
310
	call	dr_st
368
 
311
 
369
	draw_labels labels,labels_end		 ; ¬¥âª¨
-
 
370
;        draw_edit_boxes editboxes,editboxes_end  ; edit_box
312
	draw_labels labels,labels_end		 ; ¬¥âª¨
371
;------ show check editbox -----------
-
 
372
;	push	dword edit1
313
;        draw_edit_boxes editboxes,editboxes_end  ; edit_box
373
;	call	[edit_box_draw]
-
 
374
	push	dword edit2												     
314
;------ show check editbox -----------
375
	call	[edit_box_draw]
-
 
376
	push	dword edit3
315
;	stdcall	[edit_box_draw], edit1
377
	call	[edit_box_draw]
316
	stdcall	[edit_box_draw], edit2
Line 378... Line 317...
378
	push	dword edit4
317
	stdcall	[edit_box_draw], edit3
Line 379... Line 318...
379
	call	[edit_box_draw]
318
	stdcall	[edit_box_draw], edit4
380
;------ end check all editbox -------
319
;------ end check all editbox -------
381
 
320
 
382
	call	draw_PathShow
-
 
383
 
-
 
384
	draw_txt_buttons buttons,buttons_end	 ; ª­®¯ª¨
-
 
385
;        draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨
-
 
386
;------ check all checkbox ---------
-
 
387
;	push	dword ch1
-
 
388
;	call	[check_box_draw]
-
 
389
;	push	dword ch2
-
 
390
;	call	[check_box_draw]	
-
 
391
;	push	dword ch3
-
 
392
;	call	[check_box_draw]
-
 
393
;	push	dword ch4
-
 
394
;	call	[check_box_draw]
-
 
395
;	push	dword ch5
-
 
Line 396... Line 321...
396
;	call	[check_box_draw]
321
	call	draw_PathShow
Line 397... Line 322...
397
;	push	dword ch6
322
 
Line 459... Line 384...
459
	bt	dword [ch5.flags],1  ; ¢ª«î祭® «¨  ¢â®á®åà ­¥­¨¥ ?
384
	bt	dword [ch5.flags],1  ; ¢ª«î祭® «¨  ¢â®á®åà ­¥­¨¥ ?
460
	jnc	@f
385
	jnc	@f
Line 461... Line 386...
461
	
386
	
462
	call	[OpenDialog_data.draw_window]
387
	call	[OpenDialog_data.draw_window]
463
; invoke OpenDialog
-
 
464
	push    dword OpenDialog_data
388
; invoke OpenDialog
465
	call    [OpenDialog_Start]
389
	stdcall    [OpenDialog_Start], OpenDialog_data
466
	cmp	[OpenDialog_data.status],1
390
	cmp	[OpenDialog_data.status],1
467
	je	.1
391
	je	.1
468
	ret
392
	ret
469
.1:
393
.1:
470
; prepare for PathShow
-
 
471
	push	dword PathShow_data_1
394
; prepare for PathShow
Line 472... Line 395...
472
	call	[PathShow_prepare]
395
	stdcall	[PathShow_prepare], PathShow_data_1
Line 473... Line 396...
473
	
396
	
474
	call	[OpenDialog_data.draw_window]
397
	call	[OpenDialog_data.draw_window]
Line 486... Line 409...
486
ret
409
ret
Line 487... Line 410...
487
 
410
 
488
;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï á­¨¬ª  ---
411
;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï á­¨¬ª  ---
489
get_mem_for_shoot:
412
get_mem_for_shoot:
490
;clean memory
413
;clean memory
491
	mov	ecx,dword [scr_buf.ptr]
-
 
492
	mov	ebx,13
-
 
493
	mov	eax,68
-
 
Line 494... Line 414...
494
	mcall
414
	mcall SF_SYS_MISC, SSF_MEM_FREE, [scr_buf.ptr]
495
 
415
 
496
	bt	dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà ­ 
416
	bt	dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà ­ 
497
	jc	.use_area
417
	jc	.use_area
Line 504... Line 424...
504
	movzx	ebx, word [rect.height]
424
	movzx	ebx, word [rect.height]
505
@@:
425
@@:
506
	imul	ecx,ebx
426
	imul	ecx,ebx
507
	lea	ecx,[ecx*3]
427
	lea	ecx,[ecx*3]
508
;        add     ecx,i_end
428
;        add     ecx,i_end
509
	mov	ebx,12
-
 
510
	mov	eax,68
429
	mcall SF_SYS_MISC, SSF_MEM_ALLOC
511
	mcall
-
 
512
	mov	[scr_buf.ptr],eax
430
	mov	[scr_buf.ptr],eax
513
	add	eax,ecx
431
	add	eax,ecx
514
	mov	[scr_buf.end_ptr],ecx
432
	mov	[scr_buf.end_ptr],ecx
515
ret
433
ret
Line 516... Line 434...
516
 
434
 
517
;--- ᮤ âì ®ª­® ¯à®¥¤¯à®á¬®âà  ---
435
;--- ᮤ âì ®ª­® ¯à®¥¤¯à®á¬®âà  ---
518
show_scr_window:
436
show_scr_window:
519
pusha
437
pusha
520
	bt	dword [flags],0
438
	bt	dword [flags],0
521
	jnc	@f
-
 
522
	mov	eax,51
439
	jnc	@f
523
	xor	ebx,ebx
440
	xor	ebx,ebx
524
	inc	ebx
-
 
525
	mov	ecx,scr_window
441
	inc	ebx
526
	mov	edx,i_end_tread-512
-
 
527
	mcall
442
	mcall SF_CREATE_THREAD,, scr_window, i_end_tread-512
528
@@:
443
@@:
529
popa
444
popa
Line 530... Line 445...
530
ret
445
ret
Line 540... Line 455...
540
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪ã饣® ­®¬¥à  ---
455
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪ã饣® ­®¬¥à  ---
541
draw_number:
456
draw_number:
542
	mov	edi,sign_n_input
457
	mov	edi,sign_n_input
543
	call	zstr_to_int
458
	call	zstr_to_int
544
	mov	[sign_n],al
459
	mov	[sign_n],al
545
	mov	eax,13
-
 
546
	mov	ebx,150*65536+96
-
 
547
	mov	cx,[label9.top]
460
	mov	cx,[label9.top]
548
	shl	ecx,16
461
	shl	ecx,16
549
	mov	cx,10
462
	mov	cx,10
550
	mov	edx,[sc.work]
463
	mov	edx,[sc.work]
551
	mcall
-
 
552
	mov	eax,47
464
	mcall SF_DRAW_RECT, 150*65536+96
553
	movsx	bx,byte [sign_n]
465
	movsx	bx,byte [sign_n]
554
	shl	ebx,16
466
	shl	ebx,16
555
	mov	ecx,[cur_number]
-
 
556
	mov	dx,150
467
	mov	edx,150 shl 16
557
	shl	edx,16
-
 
558
	mov	dx,[label9.top]
468
	mov	dx,[label9.top]
559
	mov	esi,[sc.work_text]
469
	mov	esi,[sc.work_text]
560
	mcall
470
	mcall SF_DRAW_NUMBER,, [cur_number]
561
ret
471
ret
Line 562... Line 472...
562
 
472
 
563
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª  ¢â®áꥬª¨ ---
473
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª  ¢â®áꥬª¨ ---
564
start_autoshoot:
474
start_autoshoot:
565
	bts	dword [flags],1
475
	bts	dword [flags],1
566
	jc	@f
-
 
567
	mov	eax,51
-
 
568
	;mov     ebx,1
476
	jc	@f
569
	xor	ebx,ebx
477
	xor	ebx,ebx
570
	inc	ebx
-
 
571
	mov	ecx,autoshoot
478
	inc	ebx
572
	mov	edx,i_end_tread
-
 
573
	mcall
479
	mcall SF_CREATE_THREAD,, autoshoot, i_end_tread
574
@@:
480
@@:
Line 575... Line 481...
575
ret
481
ret
576
 
482
 
Line 585... Line 491...
585
	mov	ecx,[slot_n]
491
	mov	ecx,[slot_n]
586
	activ_window
492
	activ_window
587
.next:
493
.next:
588
	bt	dword [flags],1
494
	bt	dword [flags],1
589
	jnc	close
495
	jnc	close
590
	mov	eax,60
-
 
591
	mov	ebx,2
-
 
592
	mov	ecx,[app.pid]
-
 
593
	mov	edx,messages.draw_number
-
 
594
	mov	esi,2
496
	mov	esi,2
595
	mcall
497
	mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.draw_number
596
	call	shoot
498
	call	shoot
597
	jmp	autoshoot.next
499
	jmp	autoshoot.next
598
.close:
500
.close:
599
	mov	[autoshoot_flag],0
501
	mov	[autoshoot_flag],0
600
	jmp	close
502
	jmp	close
601
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ áâப¨ á®áâ®ï­¨ï ---
503
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ áâப¨ á®áâ®ï­¨ï ---
602
; (¤®«¦­  ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢­®£® ®ª­ )
504
; (¤®«¦­  ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢­®£® ®ª­ )
603
dr_st:
505
dr_st:
604
	mov	eax,38		    ; ®â१®ª
-
 
605
	mov	ebx,0*65536+310
-
 
606
	mov	ecx,198*65536+198
-
 
607
	mov	edx,[sc.work_graph]
506
	mcall SF_DRAW_LINE, 0*65536+310, 198*65536+198, [sc.work_graph]
608
	mcall
-
 
Line 609... Line -...
609
 
-
 
610
	mov	eax,13		    ; ¯®«®áª 
507
 
611
	mov	bx,310
508
	mov	bx,310
612
	mov	ecx,199*65536+15
509
	mov	ecx,199*65536+15
613
	mov	edx,[sc.work]
510
	mov	edx,[sc.work]
Line 614... Line 511...
614
	mcall
511
	mcall SF_DRAW_RECT ; ¯®«®áª 
615
 
512
 
616
	mov	edi,status
513
	mov	edi,status
Line 617... Line 514...
617
	call	draw_label
514
	call	draw_label
618
ret
515
ret
619
 
516
 
620
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ­®¬¥à  á«®â  ¯®â®ª  ---
517
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ­®¬¥à  á«®â  ¯®â®ª  ---
621
; ¢å®¤ ebx - ¡ãää¥à 1024 ¡ ©â
-
 
622
; ¢ë室 ecx - ­®¬¥à á«®â 
518
; ¢å®¤ ebx - ¡ãää¥à 1024 ¡ ©â
623
get_slot_n:
519
; ¢ë室 ecx - ­®¬¥à á«®â 
624
	mov	eax,9
520
get_slot_n:
Line 625... Line 521...
625
	xor	ecx,ecx
521
	xor	ecx,ecx
626
	dec	ecx
522
	dec	ecx
627
	mcall
523
	mcall SF_THREAD_INFO
628
 
-
 
629
	mov	edx,[ebx+30]
524
 
630
	xor	ecx,ecx
525
	mov	edx,[ebx+30]
631
@@:
526
	xor	ecx,ecx
632
	mov	eax,9
527
@@:
633
	inc	ecx
528
	inc	ecx
634
	mcall
529
	mcall SF_THREAD_INFO
635
	cmp	[ebx+30],edx
530
	cmp	[ebx+30],edx
Line 644... Line 539...
644
	mov	edx,shoot_esp
539
	mov	edx,shoot_esp
645
	jmp	@f
540
	jmp	@f
646
;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ­ïî騩 á­¨¬®ª ---
541
;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ­ïî騩 á­¨¬®ª ---
647
save_shoot:
542
save_shoot:
648
; invoke OpenDialog
543
; invoke OpenDialog
649
	push    dword OpenDialog_data
-
 
650
	call    [OpenDialog_Start]
544
	stdcall    [OpenDialog_Start], OpenDialog_data
651
	cmp	[OpenDialog_data.status],1
545
	cmp	[OpenDialog_data.status],1
652
	je	.1
546
	je	.1
653
	ret
547
	ret
654
.1:
548
.1:
655
; prepare for PathShow
549
; prepare for PathShow
656
	push	dword PathShow_data_1
-
 
657
	call	[PathShow_prepare]
550
	stdcall	[PathShow_prepare], PathShow_data_1
Line 658... Line 551...
658
 
551
 
Line 659... Line 552...
659
	call	draw_PathShow
552
	call	draw_PathShow
660
 
553
 
Line 664... Line 557...
664
	bts	dword [flags],2
557
	bts	dword [flags],2
665
	jc	.running
558
	jc	.running
666
	bt	dword [flags],1
559
	bt	dword [flags],1
667
	jc	.running
560
	jc	.running
Line 668... Line -...
668
 
-
 
669
	mov	eax,51
-
 
670
	;mov     ebx,1
561
 
671
	xor	ebx,ebx
562
	xor	ebx,ebx
672
	inc	ebx
563
	inc	ebx
673
	mcall
564
	mcall SF_CREATE_THREAD
674
.running:
565
.running:
Line 675... Line 566...
675
ret
566
ret
676
 
567
 
677
;--- ¯®â®ª, ¤¥« î騩 1 á­¨¬®ª ---
568
;--- ¯®â®ª, ¤¥« î騩 1 á­¨¬®ª ---
678
one_shoot_thread:
569
one_shoot_thread:
679
	mov	ecx,[slot_n]
570
	mov	ecx,[slot_n]
680
	activ_window
571
	activ_window
681
	bt	dword [ch1.flags],1   ; ¬¨­¨¬¨§¨à®¢ âì ®ª­® ?
-
 
682
	jnc	 @f
-
 
683
	mov	eax,60
-
 
684
	mov	ebx,2
-
 
685
	mov	ecx,[app.pid]
572
	bt	dword [ch1.flags],1   ; ¬¨­¨¬¨§¨à®¢ âì ®ª­® ?
686
	mov	edx,messages.min_window
573
	jnc	 @f
687
	mov	esi,2
574
	mov	esi,2
688
	mcall
575
	mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.min_window
689
@@:
576
@@:
690
	call	shoot
577
	call	shoot
Line 691... Line 578...
691
	btr	dword [flags],2
578
	btr	dword [flags],2
692
	jmp	close
579
	jmp	close
693
 
580
 
694
;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢­®¬ã ®ª­ã á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥
-
 
695
; áâப¨ á®áâ®ï­¨ï ---
-
 
696
send_draw_status:
-
 
697
	mov	eax,60
-
 
698
	mov	ebx,2
581
;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢­®¬ã ®ª­ã á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥
699
	mov	ecx,[app.pid]
582
; áâப¨ á®áâ®ï­¨ï ---
700
	mov	edx,messages.draw_status
583
send_draw_status:
Line 701... Line 584...
701
	mov	esi,2
584
	mov	esi,2
702
	mcall
585
	mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.draw_status
703
ret
586
ret
Line 712... Line 595...
712
 
595
 
713
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª­  ãáâ ­®¢ª¨ ®¡« á⨠áꥬª¨ ---
596
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª­  ãáâ ­®¢ª¨ ®¡« á⨠áꥬª¨ ---
714
show_set_rect_window:
597
show_set_rect_window:
715
	bts	dword [flags],3
598
	bts	dword [flags],3
716
	jc	@f
-
 
717
	mov	eax,51
599
	jc	@f
718
	xor	ebx,ebx
600
	xor	ebx,ebx
719
	inc	ebx
-
 
720
	mov	ecx,set_rect_window
601
	inc	ebx
721
	mov	edx,set_rect_window_esp
-
 
Line 722... Line 602...
722
	mcall
602
	mcall SF_CREATE_THREAD,, set_rect_window, set_rect_window_esp
723
 
603
 
Line 724... Line 604...
724
	mov	[set_rect_window_pid],eax
604
	mov	[set_rect_window_pid],eax
725
ret
-
 
726
 
-
 
727
@@:
605
ret
728
	mov	eax,18
-
 
729
	mov	ebx,eax
606
 
730
	mov	ecx,[set_rect_window_pid]
607
@@:
Line 731... Line 608...
731
	mcall
608
	mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID, [set_rect_window_pid]
732
	btr	dword [flags],3
609
	btr	dword [flags],3
733
ret
610
ret
734
 
-
 
735
;--- ¯®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ®¡  ªâ¨¢­®¬ ®ª­¥ ---
-
 
Line 736... Line 611...
736
get_active_window_info:
611
 
737
	mov    eax,18
-
 
738
	mov    ebx,7
612
;--- ¯®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ®¡  ªâ¨¢­®¬ ®ª­¥ ---
739
	mcall
-
 
740
 
613
get_active_window_info:
Line 741... Line 614...
741
	mov	ecx,eax
614
	mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW
742
	mov	eax,9
615
 
743
	mov	ebx,active_app
616
	mov	ecx,eax
Line 777... Line 650...
777
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
650
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
Line 778... Line 651...
778
 
651
 
779
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
652
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
Line -... Line 653...
-
 
653
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
-
 
654
 
-
 
655
library03  l_libs system_dir_LibImg+9, cur_dir_path, library_path, system_dir_LibImg, \
780
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
656
err_message_found_lib3, head_f_l, import_libimg, err_message_import3, head_f_i
781
 
657
 
782
end_l_libs:
658
end_l_libs:
783
;---------------------------------------------------------------------
659
;---------------------------------------------------------------------
784
editboxes:
660
editboxes:
Line 956... Line 832...
956
	db '/sys',0
832
	db '/sys',0
Line 957... Line 833...
957
 
833
 
958
Filter:
834
Filter:
959
dd	Filter.end - Filter
835
dd	Filter.end - Filter
960
.1:
836
.1:
961
db	'BMP',0
837
db	'PNG',0
962
.end:
838
.end:
Line 963... Line 839...
963
db	0
839
db	0
Line 964... Line 840...
964
 
840
 
965
start_temp_file_name:	db '1.bmp',0
841
start_temp_file_name:	db '1.png',0
966
 
842
 
Line 977... Line 853...
977
mouse_flag: dd 0x0
853
mouse_flag: dd 0x0
978
;---------------------------------------------------------------------
854
;---------------------------------------------------------------------
979
align 4
855
align 4
Line 980... Line 856...
980
 
856
 
981
ed_buffer:
857
ed_buffer:
982
.1: db '/sys/1.bmp',0
858
.1: db '/sys/1.png',0
983
;rb 287
859
;rb 287
984
.2:
860
.2:
985
	db '100',0
861
	db '100',0
986
	rb 6
862
	rb 6
Line 1059... Line 935...
1059
;---------------------------------------------------------------------
935
;---------------------------------------------------------------------
1060
;        app_end    ; ª®­¥æ ¯à®£à ¬¬ë
936
;        app_end    ; ª®­¥æ ¯à®£à ¬¬ë
1061
mouse_dd	rd 1
937
mouse_dd	rd 1
1062
;---------------------------------------------------------------------
938
;---------------------------------------------------------------------
1063
align 4
939
align 4
1064
cur_dir_path:
940
cur_dir_path   rb 4096
1065
	rb 4096
-
 
1066
;---------------------------------------------------------------------
-
 
1067
library_path:
941
library_path   rb 4096
1068
	rb 4096
-
 
1069
;---------------------------------------------------------------------
-
 
1070
temp_dir_pach:
942
temp_dir_pach  rb 4096
1071
	rb 4096
-
 
1072
;---------------------------------------------------------------------
-
 
1073
text_work_area:
943
text_work_area rb 1024
1074
	rb 1024
-
 
1075
;---------------------------------------------------------------------
-
 
1076
fname_buf:
944
fname_buf      rb 4096
1077
	rb 4096
-
 
1078
;---------------------------------------------------------------------
-
 
1079
procinfo:
945
procinfo       rb 1024
1080
	rb 1024
-
 
1081
;---------------------------------------------------------------------
-
 
1082
filename_area:
946
filename_area  rb  256
1083
	rb 256
-
 
1084
;---------------------------------------------------------------------
947
;---------------------------------------------------------------------
1085
	rb 1024
948
	rb 1024
1086
i_end_tread:
949
i_end_tread:
1087
;---------------------------------------------------------------------
950
;---------------------------------------------------------------------
1088
	rb 1024
951
	rb 1024