Subversion Repositories Kolibri OS

Rev

Rev 6766 | Go to most recent revision | 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
255
        dd      0
256
        dd      0
257
aOpenDialog_Init	db 'OpenDialog_init',0
258
aOpenDialog_Start	db 'OpenDialog_start',0
259
;aOpenDialog_Version	db 'Version_OpenDialog',0
260
;---------------------------------------------------------------------
261
align 4
262
Box_lib_import:
263
;init_lib		dd a_init
264
;version_lib		dd a_version
1098 Lrz 265
 
1608 mario79 266
edit_box_draw		dd aEdit_box_draw
267
edit_box_key		dd aEdit_box_key
268
edit_box_mouse		dd aEdit_box_mouse
6766 IgorA 269
edit_box_set_text	dd aEdit_box_set_text
1608 mario79 270
;version_ed		dd aVersion_ed
1098 Lrz 271
 
1685 lrz 272
init_checkbox		dd aInit_checkbox
1608 mario79 273
check_box_draw		dd aCheck_box_draw
1685 lrz 274
check_box_mouse 	dd aCheck_box_mouse
275
;version_ch	dd	aVersion_ch
276
 
1608 mario79 277
option_box_draw	dd aOption_box_draw
278
option_box_mouse	dd aOption_box_mouse
279
;version_op		dd aVersion_op
1098 Lrz 280
 
1608 mario79 281
PathShow_prepare	dd sz_PathShow_prepare
282
PathShow_draw		dd sz_PathShow_draw
283
;Version_path_show	dd szVersion_path_show
6763 IgorA 284
			dd 0,0
1608 mario79 285
 
286
;a_init			db 'lib_init',0
287
;a_version		db 'version',0
288
 
289
aEdit_box_draw		db 'edit_box',0
290
aEdit_box_key		db 'edit_box_key',0
1685 lrz 291
aEdit_box_mouse		db 'edit_box_mouse',0
6766 IgorA 292
aEdit_box_set_text	db 'edit_box_set_text',0
1608 mario79 293
;aVersion_ed		db 'version_ed',0
294
 
1685 lrz 295
 
296
aInit_checkbox	 db 'init_checkbox2',0
297
aCheck_box_draw  db 'check_box_draw2',0
298
aCheck_box_mouse db 'check_box_mouse2',0
299
;aVersion_ch	 db 'version_ch2',0
300
 
1608 mario79 301
aOption_box_draw	db 'option_box_draw',0
302
aOption_box_mouse	db 'option_box_mouse',0
303
;aVersion_op		db 'version_op',0
304
 
305
sz_PathShow_prepare	db 'PathShow_prepare',0
306
sz_PathShow_draw	db 'PathShow_draw',0
307
;szVersion_path_show	db 'version_PathShow',0
308
;---------------------------------------------------------------------
6763 IgorA 309
align 4
310
import_libimg:
311
	dd alib_init1
312
	img_is_img  dd aimg_is_img
313
	img_info    dd aimg_info
314
	img_from_file dd aimg_from_file
315
	img_to_file dd aimg_to_file
316
	img_from_rgb dd aimg_from_rgb
317
	img_to_rgb  dd aimg_to_rgb
318
	img_to_rgb2 dd aimg_to_rgb2
319
	img_decode  dd aimg_decode
320
	img_encode  dd aimg_encode
321
	img_create  dd aimg_create
322
	img_destroy dd aimg_destroy
323
	img_destroy_layer dd aimg_destroy_layer
324
	img_count   dd aimg_count
325
	img_lock_bits dd aimg_lock_bits
326
	img_unlock_bits dd aimg_unlock_bits
327
	img_flip    dd aimg_flip
328
	img_flip_layer dd aimg_flip_layer
329
	img_rotate  dd aimg_rotate
330
	img_rotate_layer dd aimg_rotate_layer
331
	img_draw    dd aimg_draw
332
dd 0,0
333
	alib_init1   db 'lib_init',0
334
	aimg_is_img  db 'img_is_img',0
335
	aimg_info    db 'img_info',0
336
	aimg_from_file db 'img_from_file',0
337
	aimg_to_file db 'img_to_file',0
338
	aimg_from_rgb db 'img_from_rgb',0
339
	aimg_to_rgb  db 'img_to_rgb',0
340
	aimg_to_rgb2 db 'img_to_rgb2',0
341
	aimg_decode  db 'img_decode',0
342
	aimg_encode  db 'img_encode',0
343
	aimg_create  db 'img_create',0
344
	aimg_destroy db 'img_destroy',0
345
	aimg_destroy_layer db 'img_destroy_layer',0
346
	aimg_count   db 'img_count',0
347
	aimg_lock_bits db 'img_lock_bits',0
348
	aimg_unlock_bits db 'img_unlock_bits',0
349
	aimg_flip    db 'img_flip',0
350
	aimg_flip_layer db 'img_flip_layer',0
351
	aimg_rotate  db 'img_rotate',0
352
	aimg_rotate_layer db 'img_rotate_layer',0
353
	aimg_draw    db 'img_draw',0
354
;---------------------------------------------------------------------
1228 Lrz 355
;width,left,top,color,shift_color,focus_border_color,\
356
;       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1098 Lrz 357
 
310 heavyiron 358
rect_input:
6766 IgorA 359
.left   edit_box 35,95,5, cl_white,0,0,0,0,5,rect_input_buffer.left,  mouse_dd1,ed_figure_only ;+ed_focus
360
.top    edit_box 35,95,25,cl_white,0,0,0,0,5,rect_input_buffer.top,   mouse_dd1,ed_figure_only
361
.width  edit_box 35,95,45,cl_white,0,0,0,0,5,rect_input_buffer.width, mouse_dd1,ed_figure_only
362
.height edit_box 35,95,65,cl_white,0,0,0,0,5,rect_input_buffer.height,mouse_dd1,ed_figure_only
310 heavyiron 363
rect_input_end:
1214 Lrz 364
mouse_dd1	rd 1
310 heavyiron 365
rect_input_labels:
6763 IgorA 366
.left   label 10,10,0,rect_input_labels_text.left
367
.top    label 10,30,0,rect_input_labels_text.top
368
.width  label 10,50,0,rect_input_labels_text.width
310 heavyiron 369
.height label 10,70,0,rect_input_labels_text.height
370
rect_input_labels_end:
371
 
372
rect_input_labels_text:
6763 IgorA 373
if lang eq ru
310 heavyiron 374
.left db 'Отступ слева:',0
375
.top  db 'Отступ сверху:',0
1098 Lrz 376
.width  db 'Ширина:',0
310 heavyiron 377
.height db 'Высота:',0
6763 IgorA 378
else
379
.left db 'Left:',0
380
.top  db 'Top:',0
381
.width  db 'Width:',0
382
.height db 'Height:',0
383
end if
310 heavyiron 384
 
385
riw_check_boxes:
3181 hidnplayr 386
use_rect_active_window check_box2 (10 shl 16)+10,(85 shl 16) +10,5,cl_white,0,0,\
3182 hidnplayr 387
riw_check_boxes_text, ch_flag_bottom
310 heavyiron 388
riw_check_boxes_end:
389
 
6763 IgorA 390
if lang eq ru
391
riw_check_boxes_text db 'Использовать область активного окна',0
392
riw_grab_text db 'Координаты и размеры области:',0
393
else
394
riw_check_boxes_text db 'Use area of the active window',0
395
riw_grab_text db 'Coordinates and size of the field:',0
396
end if