From 99341c5016229347e4d2e78a161c2794e1d3b3f6 Mon Sep 17 00:00:00 2001 From: IgorA Date: Sat, 26 Nov 2016 22:57:24 +0000 Subject: [PATCH] fix bugs git-svn-id: svn://kolibrios.org@6766 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/media/scrshoot/scrshoot.asm | 19 +++----- programs/media/scrshoot/srectwin.inc | 65 +++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 17 deletions(-) diff --git a/programs/media/scrshoot/scrshoot.asm b/programs/media/scrshoot/scrshoot.asm index 22107f2e3c..de3141baca 100644 --- a/programs/media/scrshoot/scrshoot.asm +++ b/programs/media/scrshoot/scrshoot.asm @@ -44,6 +44,7 @@ use32 dd cmdstr dd cur_dir_path +include 'lang.inc' include '../../dll.inc' align 4 @@ -51,12 +52,11 @@ align 4 use_txt_button ; | use_label ; |-- GUI компоненты и некоторые процедуры use_text_work ; / + include 'scrwin.inc' ; вставляем код окна прдпросмотра include 'scrsavef.inc'; вставляем процедуру сохранения файла - include 'gp.inc' include 'srectwin.inc' -include 'lang.inc' macro get_sys_colors col_buf { @@ -198,7 +198,6 @@ key: mov [PrintScreen],0 jmp still @@: -; key_edit_boxes editboxes,editboxes_end ; stdcall [edit_box_key], edit1 stdcall [edit_box_key], edit2 stdcall [edit_box_key], edit3 @@ -223,8 +222,6 @@ mouse: ;---------------------------------- checkboxes_mouse2 check_boxes,check_boxes_end ;----------------------------------- -; mouse_check_boxes check_boxes,check_boxes_end -; mouse_edit_boxes editboxes,editboxes_end jmp still ipc: cmp word [app_ipc+8],2 @@ -310,7 +307,6 @@ start_draw_window ; call dr_st draw_labels labels,labels_end ; метки -; draw_edit_boxes editboxes,editboxes_end ; edit_box ;------ show check editbox ----------- ; stdcall [edit_box_draw], edit1 stdcall [edit_box_draw], edit2 @@ -321,7 +317,6 @@ start_draw_window ; call draw_PathShow draw_txt_buttons buttons,buttons_end ; кнопки -; draw_check_boxes check_boxes,check_boxes_end ; флажки ;------ check all checkbox --------- checkboxes_draw2 check_boxes,check_boxes_end @@ -432,7 +427,7 @@ get_mem_for_shoot: mov [scr_buf.end_ptr],ecx ret -;--- содать окно проедпросмотра --- +;--- содать окно предпросмотра --- show_scr_window: pusha bt dword [flags],0 @@ -903,10 +898,10 @@ set_rect_window_slot dd ? ;--------------------------------------------------------------------- align 4 rect_input_buffer: -.left rb 6 -.top rb 6 -.width rb 6 -.height rb 6 +.left rb 8 +.top rb 8 +.width rb 8 +.height rb 8 cmdstr rb 257 ;--------------------------------------------------------------------- diff --git a/programs/media/scrshoot/srectwin.inc b/programs/media/scrshoot/srectwin.inc index 92413acc6c..6fc1e5e521 100644 --- a/programs/media/scrshoot/srectwin.inc +++ b/programs/media/scrshoot/srectwin.inc @@ -1,3 +1,4 @@ +align 4 set_rect_window: mov ebx,set_rect_window_procinfo call get_slot_n @@ -5,11 +6,13 @@ set_rect_window: mov [set_rect_window_slot],ecx set_events_mask (evm_redraw+evm_key+evm_button+evm_mouse) -.red: + call init_rect edit_boxes_set_sys_color rect_input,rect_input_end,sc +.red: labels_set_sys_color rect_input_labels,rect_input_labels_end,sc check_boxes_set_sys_color2 riw_check_boxes,riw_check_boxes_end,sc call .draw_window +align 4 .still: wait_event .red,.key,.button,.mouse @@ -76,6 +79,56 @@ set_rect_window: stop_draw_window ret +align 4 +init_rect: + bt dword [use_rect_active_window.flags],1 + jc init_rect_from_active_window +pushad + mov edi,rect_input_buffer.left + movsx eax,word[rect.left] + mov ecx,rect_input.left + call init_editbox + mov edi,rect_input_buffer.top + movsx eax,word[rect.top] + mov ecx,rect_input.top + call init_editbox + mov edi,rect_input_buffer.width + movsx eax,word[rect.width] + mov ecx,rect_input.width + call init_editbox + mov edi,rect_input_buffer.height + movsx eax,word[rect.height] + mov ecx,rect_input.height + call init_editbox +popad +ret + +align 4 +init_rect_from_active_window: + +ret + +align 4 +init_editbox: + push edi + push ecx + xor ebx,ebx + inc ebx + cmp eax,10 + jl @f + inc ebx + @@: + cmp eax,100 + jl @f + inc ebx + @@: + cmp eax,1000 + jl @f + inc ebx + @@: + call int_to_str + call [edit_box_set_text] ;ecx,edi +ret ;-------------------------------------------------------------------- ;--- Считывание облати ---------------------------------------------- ;-------------------------------------------------------------------- @@ -235,6 +288,7 @@ Box_lib_import: edit_box_draw dd aEdit_box_draw edit_box_key dd aEdit_box_key edit_box_mouse dd aEdit_box_mouse +edit_box_set_text dd aEdit_box_set_text ;version_ed dd aVersion_ed init_checkbox dd aInit_checkbox @@ -257,6 +311,7 @@ PathShow_draw dd sz_PathShow_draw aEdit_box_draw db 'edit_box',0 aEdit_box_key db 'edit_box_key',0 aEdit_box_mouse db 'edit_box_mouse',0 +aEdit_box_set_text db 'edit_box_set_text',0 ;aVersion_ed db 'version_ed',0 @@ -323,10 +378,10 @@ dd 0,0 ; blur_border_color,text_color,max,text,mouse_variable,flags,size,pos rect_input: -.left edit_box 35,95,5, cl_white,0,0,0,5,rect_input_buffer.left, mouse_dd1,ed_figure_only+ed_focus -.top edit_box 35,95,25,cl_white,0,0,0,5,rect_input_buffer.top, mouse_dd1,ed_figure_only -.width edit_box 35,95,45,cl_white,0,0,0,5,rect_input_buffer.width, mouse_dd1,ed_figure_only -.height edit_box 35,95,65,cl_white,0,0,0,5,rect_input_buffer.height,mouse_dd1,ed_figure_only +.left edit_box 35,95,5, cl_white,0,0,0,0,5,rect_input_buffer.left, mouse_dd1,ed_figure_only ;+ed_focus +.top edit_box 35,95,25,cl_white,0,0,0,0,5,rect_input_buffer.top, mouse_dd1,ed_figure_only +.width edit_box 35,95,45,cl_white,0,0,0,0,5,rect_input_buffer.width, mouse_dd1,ed_figure_only +.height edit_box 35,95,65,cl_white,0,0,0,0,5,rect_input_buffer.height,mouse_dd1,ed_figure_only rect_input_end: mouse_dd1 rd 1 rect_input_labels: