Subversion Repositories Kolibri OS

Rev

Rev 8346 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6766 IgorA 1
align 4
310 heavyiron 2
set_rect_window:
1098 Lrz 3
        mov     ebx,set_rect_window_procinfo
4
        call    get_slot_n
310 heavyiron 5
 
1098 Lrz 6
        mov     [set_rect_window_slot],ecx
310 heavyiron 7
 
1098 Lrz 8
        set_events_mask (evm_redraw+evm_key+evm_button+evm_mouse)
6766 IgorA 9
        call    init_rect
10
        edit_boxes_set_sys_color rect_input,rect_input_end,sc
310 heavyiron 11
.red:
1098 Lrz 12
        labels_set_sys_color rect_input_labels,rect_input_labels_end,sc
3181 hidnplayr 13
        check_boxes_set_sys_color2 riw_check_boxes,riw_check_boxes_end,sc
1098 Lrz 14
        call    .draw_window
6766 IgorA 15
align 4
310 heavyiron 16
.still:
1098 Lrz 17
        wait_event .red,.key,.button,.mouse
310 heavyiron 18
 
19
.key:
1098 Lrz 20
        get_key
310 heavyiron 21
 
6763 IgorA 22
        stdcall    [edit_box_key], rect_input.left
23
        stdcall    [edit_box_key], rect_input.top
24
        stdcall    [edit_box_key], rect_input.width
25
        stdcall    [edit_box_key], rect_input.height
310 heavyiron 26
 
1098 Lrz 27
        call    read_rect
28
        call    draw_rect_on_screen
29
 
30
        jmp     .still
31
 
310 heavyiron 32
.button:
1098 Lrz 33
        get_pressed_button
310 heavyiron 34
 
1098 Lrz 35
        cmp     ah,1
36
        jne     @f
37
        btr     dword [flags],3
38
        jmp     close
310 heavyiron 39
@@:
40
 
1098 Lrz 41
        jmp     .still
310 heavyiron 42
 
43
.mouse:
1098 Lrz 44
        get_active_window
45
        cmp     eax,[set_rect_window_slot]
46
        jne     .still
310 heavyiron 47
 
6763 IgorA 48
        stdcall    [edit_box_mouse], rect_input.left
49
        stdcall    [edit_box_mouse], rect_input.top
50
        stdcall    [edit_box_mouse], rect_input.width
51
        stdcall    [edit_box_mouse], rect_input.height
310 heavyiron 52
 
1098 Lrz 53
;;;;;;;;;;;;;;;;;;;;;;
6763 IgorA 54
        stdcall    [check_box_mouse], use_rect_active_window
1098 Lrz 55
 
56
        jmp     .still
57
 
8346 IgorA 58
align 4
310 heavyiron 59
.draw_window:
1098 Lrz 60
        start_draw_window
310 heavyiron 61
 
1098 Lrz 62
        mov     edx,[sc.work]
63
        add     edx,0x33000000
64
        mov     edi,riw_grab_text
65
        xor     esi,esi
6763 IgorA 66
        mcall   SF_CREATE_WINDOW, 100*65536+250, 100*65536+130
310 heavyiron 67
 
1098 Lrz 68
        draw_labels rect_input_labels,rect_input_labels_end
310 heavyiron 69
 
6763 IgorA 70
        stdcall    [edit_box_draw], rect_input.left
71
        stdcall    [edit_box_draw], rect_input.top
72
        stdcall    [edit_box_draw], rect_input.width
73
        stdcall    [edit_box_draw], rect_input.height
1098 Lrz 74
;;;;;;;;;;;;;;;;;;;;;;
6763 IgorA 75
        stdcall    [check_box_draw], use_rect_active_window
1098 Lrz 76
 
77
        call    read_rect
78
        call    draw_rect_on_screen
79
 
80
        stop_draw_window
310 heavyiron 81
ret
82
 
6766 IgorA 83
align 4
84
init_rect:
85
        bt      dword [use_rect_active_window.flags],1
86
        jc      init_rect_from_active_window
87
pushad
88
        mov     edi,rect_input_buffer.left
89
        movsx   eax,word[rect.left]
90
		mov     ecx,rect_input.left
91
		call    init_editbox
92
        mov     edi,rect_input_buffer.top
93
        movsx   eax,word[rect.top]
94
		mov     ecx,rect_input.top
95
		call    init_editbox
96
        mov     edi,rect_input_buffer.width
97
        movsx   eax,word[rect.width]
98
		mov     ecx,rect_input.width
99
		call    init_editbox
100
        mov     edi,rect_input_buffer.height
101
        movsx   eax,word[rect.height]
102
		mov     ecx,rect_input.height
103
		call    init_editbox
104
popad
105
ret
106
 
107
align 4
108
init_rect_from_active_window:
109
 
110
ret
111
 
112
align 4
113
init_editbox:
114
		push    edi
115
		push    ecx
116
		xor     ebx,ebx
117
		inc     ebx
118
		cmp     eax,10
119
		jl @f
120
		inc     ebx
121
		@@:
122
		cmp     eax,100
123
		jl @f
124
		inc     ebx
125
		@@:
126
		cmp     eax,1000
127
		jl @f
128
		inc     ebx
129
		@@:
130
		call    int_to_str
131
		call    [edit_box_set_text] ;ecx,edi
132
ret
310 heavyiron 133
;--------------------------------------------------------------------
8346 IgorA 134
;--- Считывание области ---------------------------------------------
310 heavyiron 135
;--------------------------------------------------------------------
8346 IgorA 136
align 4
310 heavyiron 137
read_rect:
1098 Lrz 138
        bt      dword [use_rect_active_window.flags],1
139
        jc      read_rect_from_active_window
310 heavyiron 140
 
1098 Lrz 141
        mov     edi,rect_input_buffer.left
142
        call    zstr_to_int
143
        cmp     ax,[scr.width]
144
        jb      @f
145
        mov     ax,[scr.width]
310 heavyiron 146
@@:
1098 Lrz 147
        mov     [rect.left],ax
310 heavyiron 148
 
1098 Lrz 149
        mov     edi,rect_input_buffer.top
150
        call    zstr_to_int
151
        cmp     ax,[scr.height]
152
        jb      @f
153
        mov     ax,[scr.height]
310 heavyiron 154
@@:
1098 Lrz 155
        mov     [rect.top],ax
310 heavyiron 156
 
1098 Lrz 157
        mov     edi,rect_input_buffer.width
158
        call    zstr_to_int
159
        mov     bx,[scr.width]
160
        sub     bx,[rect.left]
161
        cmp     ax,bx
162
        jb      @f
163
        mov     ax,bx
310 heavyiron 164
@@:
1098 Lrz 165
        mov     [rect.width],ax
310 heavyiron 166
 
1098 Lrz 167
        mov     edi,rect_input_buffer.height
168
        call    zstr_to_int
169
        mov     bx,[scr.height]
170
        sub     bx,[rect.top]
171
        cmp     ax,bx
172
        jb      @f
173
        mov     ax,bx
310 heavyiron 174
@@:
1098 Lrz 175
        mov     [rect.height],ax
310 heavyiron 176
ret
177
 
8346 IgorA 178
align 4
310 heavyiron 179
read_rect_from_active_window:
1098 Lrz 180
        call    get_active_window_info
310 heavyiron 181
 
1098 Lrz 182
        mov     eax,[active_app.left]
183
        mov     [rect.left],ax
184
        mov     eax,[active_app.top]
185
        mov     [rect.top],ax
186
        mov     eax,[active_app.width]
187
        inc     eax
188
        mov     [rect.width],ax
189
        mov     eax,[active_app.height]
190
        inc     eax
191
        mov     [rect.height],ax
310 heavyiron 192
ret
193
 
8346 IgorA 194
align 4
310 heavyiron 195
draw_rect_on_screen:
196
 
1098 Lrz 197
        xor     edx,edx
6763 IgorA 198
        mcall   SF_DRAW_RECT, 150*65536+80, 5*65536+60
310 heavyiron 199
 
1098 Lrz 200
        ;movzx   eax,word [rect.left]
201
        ;mul     word [scr.width]
202
        xor     edx,edx
203
        movzx   eax,word [scr.width]
204
        mov     ebx,80
205
        div     ebx
206
        mov     ebx,eax
310 heavyiron 207
 
1098 Lrz 208
        xor     edx,edx
209
        movzx   eax,word [rect.height]
210
        div     ebx
211
        push    ax
310 heavyiron 212
 
1098 Lrz 213
        xor     edx,edx
214
        movzx   eax,word [rect.width]
215
        div     ebx
216
        push    ax
310 heavyiron 217
 
1098 Lrz 218
        xor     edx,edx
219
        movzx   eax,word [rect.top]
220
        div     ebx
221
        push    ax
310 heavyiron 222
 
1098 Lrz 223
        xor     edx,edx
224
        movzx   eax,word [rect.left]
225
        div     ebx
226
        push    ax
310 heavyiron 227
 
1098 Lrz 228
        pop     bx
229
        add     bx,150
230
        shl    ebx,16
310 heavyiron 231
 
1098 Lrz 232
        pop     cx
233
        add     cx,5
234
        shl     ecx,16
310 heavyiron 235
 
1098 Lrz 236
        pop     bx
237
        pop     cx
310 heavyiron 238
 
6763 IgorA 239
        mcall   SF_DRAW_RECT,,,0xffffff
310 heavyiron 240
ret
241
 
1098 Lrz 242
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
243
;DATA данные
1608 mario79 244
 
245
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
246
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
6763 IgorA 247
system_dir_LibImg   db '/sys/lib/libimg.obj',0
1608 mario79 248
 
249
;---------------------------------------------------------------------
250
align 4
251
ProcLib_import:
252
OpenDialog_Init		dd aOpenDialog_Init
253
OpenDialog_Start	dd aOpenDialog_Start
254
;OpenDialog__Version	dd aOpenDialog_Version
9568 IgorA 255
        dd      0,0
1608 mario79 256
aOpenDialog_Init	db 'OpenDialog_init',0
257
aOpenDialog_Start	db 'OpenDialog_start',0
258
;aOpenDialog_Version	db 'Version_OpenDialog',0
259
;---------------------------------------------------------------------
260
align 4
261
Box_lib_import:
262
;init_lib		dd a_init
263
;version_lib		dd a_version
1098 Lrz 264
 
1608 mario79 265
edit_box_draw		dd aEdit_box_draw
266
edit_box_key		dd aEdit_box_key
267
edit_box_mouse		dd aEdit_box_mouse
6766 IgorA 268
edit_box_set_text	dd aEdit_box_set_text
1608 mario79 269
;version_ed		dd aVersion_ed
1098 Lrz 270
 
1685 lrz 271
init_checkbox		dd aInit_checkbox
1608 mario79 272
check_box_draw		dd aCheck_box_draw
1685 lrz 273
check_box_mouse 	dd aCheck_box_mouse
274
;version_ch	dd	aVersion_ch
275
 
1608 mario79 276
option_box_draw	dd aOption_box_draw
277
option_box_mouse	dd aOption_box_mouse
278
;version_op		dd aVersion_op
1098 Lrz 279
 
1608 mario79 280
PathShow_prepare	dd sz_PathShow_prepare
281
PathShow_draw		dd sz_PathShow_draw
282
;Version_path_show	dd szVersion_path_show
6763 IgorA 283
			dd 0,0
1608 mario79 284
 
285
;a_init			db 'lib_init',0
286
;a_version		db 'version',0
287
 
9568 IgorA 288
aEdit_box_draw		db 'edit_box_draw',0
1608 mario79 289
aEdit_box_key		db 'edit_box_key',0
1685 lrz 290
aEdit_box_mouse		db 'edit_box_mouse',0
6766 IgorA 291
aEdit_box_set_text	db 'edit_box_set_text',0
1608 mario79 292
;aVersion_ed		db 'version_ed',0
293
 
1685 lrz 294
 
295
aInit_checkbox	 db 'init_checkbox2',0
296
aCheck_box_draw  db 'check_box_draw2',0
297
aCheck_box_mouse db 'check_box_mouse2',0
298
;aVersion_ch	 db 'version_ch2',0
299
 
1608 mario79 300
aOption_box_draw	db 'option_box_draw',0
301
aOption_box_mouse	db 'option_box_mouse',0
302
;aVersion_op		db 'version_op',0
303
 
304
sz_PathShow_prepare	db 'PathShow_prepare',0
305
sz_PathShow_draw	db 'PathShow_draw',0
306
;szVersion_path_show	db 'version_PathShow',0
307
;---------------------------------------------------------------------
6763 IgorA 308
align 4
309
import_libimg:
310
	dd alib_init1
311
	img_is_img  dd aimg_is_img
312
	img_info    dd aimg_info
313
	img_from_file dd aimg_from_file
314
	img_to_file dd aimg_to_file
315
	img_from_rgb dd aimg_from_rgb
316
	img_to_rgb  dd aimg_to_rgb
317
	img_to_rgb2 dd aimg_to_rgb2
318
	img_decode  dd aimg_decode
319
	img_encode  dd aimg_encode
320
	img_create  dd aimg_create
321
	img_destroy dd aimg_destroy
322
	img_destroy_layer dd aimg_destroy_layer
323
	img_count   dd aimg_count
324
	img_lock_bits dd aimg_lock_bits
325
	img_unlock_bits dd aimg_unlock_bits
326
	img_flip    dd aimg_flip
327
	img_flip_layer dd aimg_flip_layer
328
	img_rotate  dd aimg_rotate
329
	img_rotate_layer dd aimg_rotate_layer
330
	img_draw    dd aimg_draw
331
dd 0,0
332
	alib_init1   db 'lib_init',0
333
	aimg_is_img  db 'img_is_img',0
334
	aimg_info    db 'img_info',0
335
	aimg_from_file db 'img_from_file',0
336
	aimg_to_file db 'img_to_file',0
337
	aimg_from_rgb db 'img_from_rgb',0
338
	aimg_to_rgb  db 'img_to_rgb',0
339
	aimg_to_rgb2 db 'img_to_rgb2',0
340
	aimg_decode  db 'img_decode',0
341
	aimg_encode  db 'img_encode',0
342
	aimg_create  db 'img_create',0
343
	aimg_destroy db 'img_destroy',0
344
	aimg_destroy_layer db 'img_destroy_layer',0
345
	aimg_count   db 'img_count',0
346
	aimg_lock_bits db 'img_lock_bits',0
347
	aimg_unlock_bits db 'img_unlock_bits',0
348
	aimg_flip    db 'img_flip',0
349
	aimg_flip_layer db 'img_flip_layer',0
350
	aimg_rotate  db 'img_rotate',0
351
	aimg_rotate_layer db 'img_rotate_layer',0
352
	aimg_draw    db 'img_draw',0
353
;---------------------------------------------------------------------
1228 Lrz 354
;width,left,top,color,shift_color,focus_border_color,\
355
;       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1098 Lrz 356
 
310 heavyiron 357
rect_input:
6766 IgorA 358
.left   edit_box 35,95,5, cl_white,0,0,0,0,5,rect_input_buffer.left,  mouse_dd1,ed_figure_only ;+ed_focus
359
.top    edit_box 35,95,25,cl_white,0,0,0,0,5,rect_input_buffer.top,   mouse_dd1,ed_figure_only
360
.width  edit_box 35,95,45,cl_white,0,0,0,0,5,rect_input_buffer.width, mouse_dd1,ed_figure_only
361
.height edit_box 35,95,65,cl_white,0,0,0,0,5,rect_input_buffer.height,mouse_dd1,ed_figure_only
310 heavyiron 362
rect_input_end:
1214 Lrz 363
mouse_dd1	rd 1
310 heavyiron 364
rect_input_labels:
6763 IgorA 365
.left   label 10,10,0,rect_input_labels_text.left
366
.top    label 10,30,0,rect_input_labels_text.top
367
.width  label 10,50,0,rect_input_labels_text.width
310 heavyiron 368
.height label 10,70,0,rect_input_labels_text.height
369
rect_input_labels_end:
370
 
371
rect_input_labels_text:
6763 IgorA 372
if lang eq ru
310 heavyiron 373
.left db 'Отступ слева:',0
374
.top  db 'Отступ сверху:',0
1098 Lrz 375
.width  db 'Ширина:',0
310 heavyiron 376
.height db 'Высота:',0
6763 IgorA 377
else
378
.left db 'Left:',0
379
.top  db 'Top:',0
380
.width  db 'Width:',0
381
.height db 'Height:',0
382
end if
310 heavyiron 383
 
384
riw_check_boxes:
3181 hidnplayr 385
use_rect_active_window check_box2 (10 shl 16)+10,(85 shl 16) +10,5,cl_white,0,0,\
3182 hidnplayr 386
riw_check_boxes_text, ch_flag_bottom
310 heavyiron 387
riw_check_boxes_end:
388
 
6763 IgorA 389
if lang eq ru
390
riw_check_boxes_text db 'Использовать область активного окна',0
391
riw_grab_text db 'Координаты и размеры области:',0
392
else
393
riw_check_boxes_text db 'Use area of the active window',0
394
riw_grab_text db 'Coordinates and size of the field:',0
395
end if