Subversion Repositories Kolibri OS

Rev

Rev 1109 | Rev 1228 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ; 01.06.09 - Š®¬¯®­¥­âë ¡¥àãâìáï ¨§ á¨á⥬­®© ¡¨¡«¨®â¥ª¨ <Lrz>
  2. ; €¢â®à ¯à®£à ¬¬ë …¢â¨å®¢ Œ ªá¨¬ (Maxxxx32)
  3. ; 24.07.2008 <Lrz> ®¡­®¢«¥­ editbox
  4. ; 01.02.07 - ®¡­®¢«ñ­ editbox
  5. ; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
  6.  
  7. title equ 'Screenshooter v 0.91' ; ‡ £®«®¢®ª ®ª­ 
  8. include '../../develop/libraries/box_lib/load_lib.mac'
  9. include '../../develop/libraries/box_lib/asm/trunk/editbox_ex.mac'
  10. ;include '../../develop/examples/editbox/trunk/editbox.inc'
  11. include '../../macros.inc'
  12. include 'scrshoot.mac'
  13. include 'txtbut.inc'
  14. include 'label.inc'
  15. include 'textwork.inc'
  16.  
  17. ;include 'macros.inc'  ; ¢áâ ¢«ï¥¬ ¬ ªà®áë
  18. ;        meos_header  cmdstr ; ¢áâ ¢«ï¥¬ § £®«®¢®ª ¯à®£à ¬¬ë
  19. use32                
  20.     org 0x0
  21.     db 'MENUET01'
  22.     dd 0x1
  23.     dd start
  24.     dd i_end
  25.     dd i_end
  26.     dd i_end
  27.     dd cmdstr
  28.     dd cur_dir_path
  29.  
  30. align 4
  31. include 'scrwin.inc'  ; ¢áâ ¢«ï¥¬ ª®¤ ®ª­  ¯à¤¯à®á¬®âà 
  32. include 'scrsavef.inc'; ¢áâ ¢«ï¥¬ ¯à®æ¥¤ãàã á®åà ­¥­¨ï ä ©« 
  33.  
  34.         @use_library
  35.         use_txt_button                          ;  |
  36.         use_label                               ;  |-- GUI ª®¬¯®­¥­âë ¨ ­¥ª®â®àë¥ ¯à®æ¥¤ãàë
  37.         use_text_work                           ; /
  38. include 'gp.inc'
  39. include 'srectwin.inc'
  40. include 'lang.inc'
  41. ;--- ­ ç «® ¯à®£à ¬¬ë ---
  42. align 4
  43. start:
  44. sys_load_library  library_name, cur_dir_path, library_path, system_path, \
  45. err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
  46. ;if return code =-1 then exit, else nornary work
  47. ;        cmp     eax,-1
  48.         inc     eax
  49.         test    eax,eax
  50.         jz      close
  51. ;;;;;;;;;;;;;;;; init memory 68/11
  52.         mov     eax,68
  53.         mov     ebx,11
  54.         mcall
  55.         test    eax,eax
  56.         jz      close
  57.  
  58.         ;mov     al,[gs:1280*4*1024]
  59.                     ; ãáâ ­ ¢«¨¢ ¥¬ ipc ¡ãää¥à
  60.         push    60
  61.         pop     eax
  62.         ;mov     ebx,1
  63.         xor     ebx,ebx
  64.         inc     ebx
  65.         mov     ecx,app_ipc
  66.         mov     edx,32
  67.         mcall
  68.  
  69.         push    66   ; ãáâ ­ ¢«¨¢ ¥¬ £«®¡ «ì­ãî £®àïçãî ª« ¢¨èã
  70.         pop     eax
  71.         push    eax
  72.         mov     ebx,4
  73.         mov     cl,55    ; 55 - PrintScrn
  74.         xor     edx,edx
  75.         mcall
  76.  
  77.         mov     ebx,app
  78.         call    get_slot_n
  79.         mov     [slot_n],ecx
  80.  
  81.         ; ãáâ ­ ¢«¨¢ ¥¬ ¬ áªã ᮡë⨩
  82.         set_events_mask (evm_redraw+evm_key+evm_button+evm_mouse+evm_ipc)
  83.  
  84. ; á ¯à룠¥¬ ¯à¨ ª ¦¤®© ¯¥à¥à¨á®¢ª¥
  85. red:
  86.         get_procinfo app   ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ® ¯à®æ¥áá¥
  87.         get_sys_colors sc  ; ¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
  88.  
  89.         ; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢
  90.         txt_but_set_sys_color buttons,buttons_end,sc             ; \
  91.         labels_set_sys_color labels,labels_end,sc                ; |
  92.         check_boxes_set_sys_color check_boxes,check_boxes_end,sc ; |
  93.         edit_boxes_set_sys_color editboxes,editboxes_end,sc      ; /
  94.  
  95.         get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥
  96.         call    draw_window ; ¯¥à¥à¨á®¢ë¢ ¥¬ ®ª­®
  97. still:
  98.         wait_event red,key,button,mouse,ipc,still ; ¦¤¥¬ ᮡë⨩
  99.  
  100. key:
  101.         get_key
  102.         cmp     al,2
  103.         jne     @f
  104.         cmp     ah,55
  105.         jne     @f
  106.         call    shoot
  107.         jmp     still
  108. @@:
  109. ;        key_edit_boxes editboxes,editboxes_end
  110.         push    dword edit1
  111.         call    [edit_box_key]
  112.  
  113.         push    dword edit2
  114.         call    [edit_box_key]
  115.  
  116.         push    dword edit3
  117.         call    [edit_box_key]
  118.  
  119.         push    dword edit4
  120.         call    [edit_box_key]
  121.  
  122.         jmp     still
  123. button:
  124.         get_pressed_button
  125.         cmp     ah,1
  126.         je      p_close
  127.         txt_but_ev buttons,buttons_end
  128.         jmp     still
  129. mouse:
  130.         get_active_window
  131.         cmp     eax,[slot_n]
  132.         jne     still
  133. ;----------------------------------
  134.         push    dword edit1
  135.         call    [edit_box_mouse]
  136.         push    dword edit2
  137.         call    [edit_box_mouse]
  138.         push    dword edit3
  139.         call    [edit_box_mouse]
  140.         push    dword edit4
  141.         call    [edit_box_mouse]
  142. ;----------------------------------
  143.         push    dword ch1
  144.         call    [check_box_mouse]
  145.         push    dword ch2
  146.         call    [check_box_mouse]
  147.         push    dword ch3
  148.         call    [check_box_mouse]
  149.         push    dword ch4
  150.         call    [check_box_mouse]
  151.         push    dword ch5
  152.         call    [check_box_mouse]
  153.         push    dword ch6
  154.         call    [check_box_mouse]
  155.         push    dword use_rect
  156.         call    [check_box_mouse]
  157. ;-----------------------------------
  158. ;        mouse_check_boxes check_boxes,check_boxes_end
  159. ;        mouse_edit_boxes editboxes,editboxes_end
  160.         jmp     still
  161. ipc:
  162.         cmp     word [app_ipc+8],2
  163.         jne     @f
  164.         min_window
  165.         jmp     .clear_ipc
  166. @@:
  167.         cmp     word [app_ipc+8],3
  168.         jne     @f
  169.         mov     ecx,[slot_n]
  170.         activ_window
  171.         jmp     .clear_ipc
  172. @@:
  173.         call    draw_number
  174.         call    dr_st
  175.  
  176. .clear_ipc:
  177.         cld
  178.         xor     eax,eax
  179.         mov     ecx,32/4
  180.         mov     edi,app_ipc
  181.         rep     stosd
  182.         jmp     still
  183.  
  184. p_close:
  185.         btr     dword [flags],1
  186.  
  187.         bt      dword [flags],3
  188.         jnc     @f
  189.         mov    eax,18
  190.         mov     ebx,eax
  191.         mov     ecx,[set_rect_window_pid]
  192.         mcall
  193. @@:
  194.  
  195. close:
  196.         app_close
  197.  
  198. ;--------------------------------------------------------------------
  199. ;--- ¯à®®æ¥¤ãà  ¯¥à¥à¨á®¢ª¨ £« ¢­®£® ®ª­  ---------------------------
  200. ;--------------------------------------------------------------------
  201. draw_window:
  202. start_draw_window        ; ­ ç «® ¯¥à¥à¨á®¢ª¨
  203.         ; ®¯à¥¤¥«ï¥¬ ®ª­®
  204.         get_skin_height
  205.         mov     ebx,100*65536+320
  206.         mov     ecx,100*65536+220
  207.         add     cx,ax
  208.         mov     edx,[sc.work]
  209.         or      edx,0x34000000;0x33000000
  210.         xor     esi,esi
  211.         ;xor     edi,edi
  212.         mov     edi,grab_text
  213.         xor     eax,eax
  214.         mcall
  215.  
  216.         mov     eax,47             ; ¢ë¢®¤¨¬ ç¨á«  ¢ ®ª­®
  217.         mov     bx,4
  218.         shl     ebx,16
  219.         movsx   ecx,word [scr.width] ; è¨à¨­  íªà ­ 
  220.         mov     dx,95
  221.         shl     edx,16
  222.         mov     dx,[label1.top]
  223.         push    dx
  224.         mov     esi,[sc.work_text]
  225.         mcall
  226.         movsx   ecx,word [scr.height]   ; ¢ëá®â  íªà ­ 
  227.         mov     dx,[label2.top]
  228.         mcall
  229.         mov     bx,2
  230.         shl     ebx,16
  231.         movsx   ecx,word [scr.bitspp]   ; ¡¨â ­  ¯¨ªá¥«ì
  232.         mov     dx,240
  233.         shl     edx,16
  234.         pop     dx
  235.         mcall
  236.         mov     bx,6
  237.         shl     ebx,16
  238.         mov     ecx,[scr.bytesps]       ; ¡ ©â ­  áâபã
  239.         mov     dx,[label2.top]
  240.         mcall
  241.  
  242.         call    draw_number      ; ¯à®à¨á®¢ë¢ ¥¬ ­®¬¥à á­¨¬ª 
  243.         call    dr_st
  244.  
  245.         draw_labels labels,labels_end            ; ¬¥âª¨
  246. ;        draw_edit_boxes editboxes,editboxes_end  ; edit_box
  247. ;------ show check editbox -----------
  248.         push    dword edit1
  249.         call    [edit_box_draw]
  250.         push    dword edit2                                                                                                  
  251.         call    [edit_box_draw]
  252.         push    dword edit3
  253.         call    [edit_box_draw]
  254.         push    dword edit4
  255.         call    [edit_box_draw]
  256. ;------ end check all editbox -------
  257.  
  258.         draw_txt_buttons buttons,buttons_end     ; ª­®¯ª¨
  259. ;        draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨
  260. ;------ check all checkbox ---------
  261.         push    dword ch1
  262.         call    [check_box_draw]
  263.         push    dword ch2
  264.         call    [check_box_draw]        
  265.         push    dword ch3
  266.         call    [check_box_draw]
  267.         push    dword ch4
  268.         call    [check_box_draw]
  269.         push    dword ch5
  270.         call    [check_box_draw]
  271.         push    dword ch6
  272.         call    [check_box_draw]
  273.         push    dword use_rect
  274.         call    [check_box_draw]
  275. ;------ end check all checkbox ------
  276.  
  277. stop_draw_window      ; ª®­¥æ ¯¥à¥à¨á®¢ª¨
  278. ret
  279.  
  280. shoot:
  281.         bt      dword [ch4.flags],1   ; ¢ª«î祭  «¨ § ¤¥à¦ª  ?
  282.         jnc     @f
  283.         draw_status delay_now
  284.         mov     edi,ed_buffer.2
  285.         call    zstr_to_int
  286.         mov     ebx,eax
  287.         delay
  288. @@:
  289.         call    get_mem_for_shoot; ¯®«ãç ¥¬ ¯ ¬ïâì ¤«ï á­¨¬ª 
  290.  
  291.  
  292.         bts     dword [flags],0       ; ­ã«¥¢®© ä« £ - á­¨¬®ª ¥áâì ¢ ¯ ¬ïâ¨
  293.  
  294.         ; ¤¥« ¥¬ á­¨¬®ª
  295.         draw_status shooting
  296.         mov     esi,scr
  297.         mov     edi,[scr_buf.ptr]
  298.         call    copy_screen_to_image
  299.  
  300.         bt      dword [use_rect.flags],1
  301.         jc      .use_rect
  302.         push    dword [scr]
  303.         jmp     @f
  304. .use_rect:
  305.         push    dword [rect.height]
  306. @@:
  307.         pop     dword [scr_buf.size]
  308.  
  309.         bt      dword [ch5.flags],1  ; ¢ª«î祭® «¨  ¢â®á®åà ­¥­¨¥ ?
  310.         jnc     @f
  311.         call    save_file
  312. @@:
  313.         draw_status     shooted_ok
  314.  
  315.         bt      dword [flags],1
  316.         jnc     @f
  317.         ret
  318. @@:
  319.  
  320.         bt      dword [ch2.flags],1  ; ¯®ª § âì ®ª­® ¯à¥¤¯à®á¬®âà  ?
  321.         jnc     @f
  322.  
  323.         call    show_scr_window
  324.         ret
  325. @@:
  326.         bt      word [ch3.flags],1   ; ¢®ááâ ­®¢¨âì ®ª­® ?
  327.         jnc     @f
  328.  
  329.         delay 100
  330.         mov     ecx,[slot_n]
  331.         activ_window
  332. @@:
  333. ret
  334.  
  335. ;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï á­¨¬ª  ---
  336. get_mem_for_shoot:
  337. ;clean memory
  338.         mov     ecx,dword [scr_buf.ptr]
  339.         mov     ebx,13
  340.         mov     eax,68
  341.         mcall
  342.  
  343.         bt      dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà ­ 
  344.         jc      .use_area
  345.         movzx   ecx, word [scr.width]
  346.         movzx   ebx, word [scr.height]
  347.         jmp     @f
  348. .use_area:
  349.         call    read_rect
  350.         movzx   ecx, word [rect.width]
  351.         movzx   ebx, word [rect.height]
  352. @@:
  353.         imul    ecx,ebx
  354.         lea     ecx,[ecx*3]
  355. ;        add     ecx,i_end
  356.         mov     ebx,12
  357.         mov     eax,68
  358.         mcall
  359.         mov     [scr_buf.ptr],eax
  360.         add     eax,ecx
  361.         mov     [scr_buf.end_ptr],ecx
  362. ret
  363.  
  364. ;--- ᮤ âì ®ª­® ¯à®¥¤¯à®á¬®âà  ---
  365. show_scr_window:
  366. pusha
  367.         bt      dword [flags],0
  368.         jnc     @f
  369.         mov     eax,51
  370.         xor     ebx,ebx
  371.         inc     ebx
  372.         mov     ecx,scr_window
  373.         mov     edx,i_end_tread-1000
  374.         mcall
  375. @@:
  376. popa
  377. ret
  378.  
  379. ;--- ¯à®ç¨â âì ¨ ­ à¨á®¢ âì ⥪ã騩 ­®¬¥à ---
  380. apply_number:
  381.         mov     edi,ed_buffer.3
  382.         call    zstr_to_int
  383.         mov     [cur_number],eax
  384.         call    draw_number
  385. ret
  386.  
  387. ;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪ã饣® ­®¬¥à  ---
  388. draw_number:
  389.         mov     edi,sign_n_input
  390.         call    zstr_to_int
  391.         mov     [sign_n],al
  392.         mov     eax,13
  393.         mov     ebx,150*65536+96
  394.         mov     cx,[label9.top]
  395.         shl     ecx,16
  396.         mov     cx,10
  397.         mov     edx,[sc.work]
  398.         mcall
  399.         mov     eax,47
  400.         movsx   bx,byte [sign_n]
  401.         shl     ebx,16
  402.         mov     ecx,[cur_number]
  403.         mov     dx,150
  404.         shl     edx,16
  405.         mov     dx,[label9.top]
  406.         mov     esi,[sc.work_text]
  407.         mcall
  408. ret
  409.  
  410. ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª  ¢â®áꥬª¨ ---
  411. start_autoshoot:
  412.         bts     dword [flags],1
  413.         jc      @f
  414.         mov     eax,51
  415.         ;mov     ebx,1
  416.         xor     ebx,ebx
  417.         inc     ebx
  418.         mov     ecx,autoshoot
  419.         mov     edx,i_end_tread-512
  420.         mcall
  421. @@:
  422. ret
  423.  
  424. ;--- ®áâ ­ ¢«¨¢ ¥â íâ®â ¯®â®ª ---
  425. stop_autoshoot:
  426.         btr     dword [flags],1
  427. ret
  428.  
  429. ;--- 横« ¯®â®ª   ¢â®áꥬª¨ ---
  430. autoshoot:
  431.         mov     ecx,[slot_n]
  432.         activ_window
  433. .next:
  434.         bt      dword [flags],1
  435.         jnc     close
  436.         mov     eax,60
  437.         mov     ebx,2
  438.         mov     ecx,[app.pid]
  439.         mov     edx,messages.draw_number
  440.         mov     esi,2
  441.         mcall
  442.         call    shoot
  443.         jmp     autoshoot.next
  444.  
  445. ;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ áâப¨ á®áâ®ï­¨ï ---
  446. ; (¤®«¦­  ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢­®£® ®ª­ )
  447. dr_st:
  448.         mov     eax,38              ; ®â१®ª
  449.         mov     ebx,0*65536+310
  450.         mov     ecx,198*65536+198
  451.         mov     edx,[sc.work_graph]
  452.         mcall
  453.  
  454.         mov     eax,13              ; ¯®«®áª 
  455.         mov     bx,310
  456.         mov     ecx,199*65536+15
  457.         mov     edx,[sc.work]
  458.         mcall
  459.  
  460.         mov     edi,status
  461.         call    draw_label
  462. ret
  463.  
  464. ;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ­®¬¥à  á«®â  ¯®â®ª  ---
  465. ; ¢å®¤ ebx - ¡ãää¥à 1024 ¡ ©â
  466. ; ¢ë室 ecx - ­®¬¥à á«®â 
  467. get_slot_n:
  468.         mov     eax,9
  469.         xor     ecx,ecx
  470.         dec     ecx
  471.         mcall
  472.  
  473.         mov     edx,[ebx+30]
  474.         xor     ecx,ecx
  475. @@:
  476.         mov     eax,9
  477.         inc     ecx
  478.         mcall
  479.         cmp     [ebx+30],edx
  480.         je      @f
  481.         jmp     @b
  482. @@:
  483. ret
  484.  
  485. ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª, ¤¥« î騩 1 á­¨¬®ª ---
  486. one_shoot:
  487.         mov     ecx,one_shoot_thread
  488.         mov     edx,shoot_esp
  489.         jmp     @f
  490. ;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ­ïî騩 á­¨¬®ª ---
  491. save_shoot:
  492.         mov     ecx,save_shoot_thread
  493.         mov     edx,shoot_esp
  494. @@:
  495.         bts     dword [flags],2
  496.         jc      .running
  497.         bt      dword [flags],1
  498.         jc      .running
  499.  
  500.         mov     eax,51
  501.         ;mov     ebx,1
  502.         xor     ebx,ebx
  503.         inc     ebx
  504.         mcall
  505. .running:
  506. ret
  507.  
  508. ;--- ¯®â®ª, ¤¥« î騩 1 á­¨¬®ª ---
  509. one_shoot_thread:
  510.         mov     ecx,[slot_n]
  511.         activ_window
  512.         bt      dword [ch1.flags],1   ; ¬¨­¨¬¨§¨à®¢ âì ®ª­® ?
  513.         jnc      @f
  514.         mov     eax,60
  515.         mov     ebx,2
  516.         mov     ecx,[app.pid]
  517.         mov     edx,messages.min_window
  518.         mov     esi,2
  519.         mcall
  520. @@:
  521.         call    shoot
  522.         btr     dword [flags],2
  523.         jmp     close
  524.  
  525. ;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢­®¬ã ®ª­ã á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥
  526. ; áâப¨ á®áâ®ï­¨ï ---
  527. send_draw_status:
  528.         mov     eax,60
  529.         mov     ebx,2
  530.         mov     ecx,[app.pid]
  531.         mov     edx,messages.draw_status
  532.         mov     esi,2
  533.         mcall
  534. ret
  535.  
  536. ;--- ¯®â®ª, á®åà ­ï ä ©« ---
  537. save_shoot_thread:
  538.         mov     ecx,[slot_n]
  539.         activ_window
  540.         call    save_file
  541.         btr     dword [flags],2
  542.         jmp     close
  543.  
  544. ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª­  ãáâ ­®¢ª¨ ®¡« á⨠áꥬª¨ ---
  545. show_set_rect_window:
  546.         bts     dword [flags],3
  547.         jc      @f
  548.         mov     eax,51
  549.         xor     ebx,ebx
  550.         inc     ebx
  551.         mov     ecx,set_rect_window
  552.         mov     edx,set_rect_window_esp
  553.         mcall
  554.  
  555.         mov     [set_rect_window_pid],eax
  556. ret
  557.  
  558. @@:
  559.         mov    eax,18
  560.         mov     ebx,eax
  561.         mov     ecx,[set_rect_window_pid]
  562.         mcall
  563.         btr     dword [flags],3
  564. ret
  565.  
  566. ;--- ¯®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ®¡  ªâ¨¢­®¬ ®ª­¥ ---
  567. get_active_window_info:
  568.         mov    eax,18
  569.         mov    ebx,7
  570.         mcall
  571.  
  572.         mov     ecx,eax
  573.         mov     eax,9
  574.         mov     ebx,active_app
  575.         mcall
  576. ret
  577.  
  578. ;====================================================================
  579. ;=== ¤ ­­ë¥ ¯à®£à ¬¬ë ===============================================
  580. ;====================================================================
  581. messages:
  582. .draw_number dw 0
  583. .draw_status dw 1
  584. .min_window  dw 2
  585. .act_window  dw 3
  586.  
  587. grab_text:
  588.         db      title,0
  589.  
  590. labels:
  591. label1 label 5,5,0,text.1   ; è¨à¨­  íªà ­ 
  592. label2 label 5,15,0,text.2   ; ¢ëá®â  íªà ­ 
  593. label3 label 5,25,0,text.3   ; ¢¢¥¤¨â¥ ¨¬ï ä ©« 
  594. label4 label 150,5,0,text.4  ; ¡¨â ­  ¯¨ªá¥«ì
  595. label5 label 150,15,0,text.5  ; ¡ ©â ­  áâபã
  596. label6 label 115,138,0,text.6  ; 100 = 1 ᥪ.
  597. ;label7 label 10,190,0,text.7
  598. ;label8 label 10,225,0,text.8
  599. label9 label 5,52,0,text.9   ; ­®¬¥à ⥪ã饣® ᨬª 
  600. label10 label 5,185,0,text.10
  601. status label 5,201,0,no_shoot
  602. labels_end:
  603.  
  604. editboxes:
  605. edit1 edit_box 300,5,35,cl_white,0xaabbcc,0,0,0,300,ed_buffer.1,mouse_dd,ed_focus,10,10        ; ¯ãâì ª ä ©«ã
  606. edit2 edit_box 35,75,134,cl_white,0xaabbcc,0,0,0,9,ed_buffer.2,mouse_dd,ed_figure_only,3,3         ; § ¤¥à¦ª 
  607. edit3 edit_box 35,165,164,cl_white,0xaabbcc,0,0,0,9,ed_buffer.3,mouse_dd,ed_figure_only    ;  ¢â®­ã¬¥à æ¨ï
  608. edit4 edit_box 16,165,181,cl_white,0xaabbcc,0,0,0,1,sign_n_input,mouse_dd,ed_figure_only,1
  609. editboxes_end:
  610.  
  611. buttons:
  612. but1 txt_button 150,5,15,65,2,0,0,but_text.1,one_shoot             ; ᤥ« âì á­¨¬®ª
  613. but2 txt_button 145,160,15,65,3,0,0,but_text.2,save_shoot          ; á®åà ­¨âì á­¨¬®ª
  614. but3 txt_button 140,115,12,120,4,0,0,but_text.3,show_scr_window    ; ¯®ª § âì á­¨¬®ª
  615. but4 txt_button 80,205,15,163,5,0,0,but_text.4,apply_number        ; ¯à¨¬¥­¨âì ­®¬¥à
  616. but5 txt_button 150,5,15,85,6,0,0,but_text.5,start_autoshoot       ; ­ ç âì  ¢â®áêñ¬ªã
  617. but6 txt_button 145,160,15,85,7,0,0,but_text.6,stop_autoshoot      ; ®áâ ­®¢¨âì  ¢â®áêñ¬ªã
  618. but7 txt_button 40,205,10,150,8,0,0,but_text.7,show_set_rect_window ; § ¤ âì ®¡« áâì
  619. buttons_end:
  620.  
  621. check_boxes:
  622. ch1 check_box 5,105,5,11,cl_white,0,0,ch_text.1,(ch_text.2-ch_text.1),ch_flag_en  ; ᢥà­ãâì ®ª­®
  623. ch2 check_box 5,120,5,11,cl_white,0,0,ch_text.2,(ch_text.3-ch_text.2),ch_flag_en  ; § â¥¬ ᤥ« âì  ªâ¨¢­ë¬
  624. ch3 check_box 145,105,5,11,cl_white,0,0,ch_text.3,(ch_text.4-ch_text.3),ch_flag_en ; ¯®ª § âì á­¨¬®ª
  625. ch4 check_box 5,135,5,11,cl_white,0,0,ch_text.4,(ch_text.5-ch_text.4),ch_flag_en   ; § ¤¥à¦ª 
  626. ch5 check_box 5,150,5,11,cl_white,0,0,ch_text.5,(ch_text.6-ch_text.5)
  627. ch6 check_box 5,165,5,11,cl_white,0,0,ch_text.6,(ch_text.7-ch_text.6),ch_flag_en
  628. use_rect check_box 145,150,5,11,cl_white,0,0,ch_text.7,(ch_text.8-ch_text.7) ; ¨á¯. ®¡« áâì
  629. ;  ¢â®­ã¬¥à æ¨ï
  630. check_boxes_end:
  631.  
  632. if lang eq ru
  633. text:
  634. .2 db '‚ëá®â  íªà ­ :',0
  635. .1 db '˜¨à¨­  íªà ­ :',0
  636. .3 db '‚¢¥¤¨â¥ ¯®«­ë© ¯ãâì ª ä ©«ã:',0
  637. .4 db '¨â ­  ¯¨ªá¥«ì:',0
  638. .5 db ' ©â ­  áâபã:',0
  639. .6 db '100 = 1 ᥪ㭤 ',0
  640. ;.7: db '‚¢¥¤¨â¥ ¨¬ï ä ©« :',0
  641. ;.8: db '‚¬¥áâ® "*" ¢ ¨¬¥­¨ ä ©«  ¡ã¤¥â ¢áâ ¢«ïâìáï ­®¬¥à.',0
  642. .9 db '®¬¥à ⥪ã饣® á­¨¬ª :',0
  643. .10 db 'Š®«¨ç¥á⢮ §­ ª®¢ ¢ ­®¬¥à¥:',0
  644.  
  645. but_text:
  646. .1 db '‘¤¥« âì á­¨¬®ª íªà ­ ',0
  647. .2 db '‘®åà ­¨âì á­¨¬®ª íªà ­ ',0
  648. .3 db '®ª § âì á­¨¬®ª ᥩç á',0
  649. .4 db 'à¨¬¥­¨âì',0
  650. .5 db ' ç âì  ¢â®áꥬªã',0
  651. .6 db 'Žáâ ­®¢¨âì  ¢â®áꥬªã',0
  652. .7 db '§ ¤ âì',0
  653.  
  654. ch_text:
  655. .1 db '‘¢¥à­ãâì ®ª­®';,0
  656. .2 db '®ª § âì á­¨¬®ª';,0
  657. .3 db '§ â¥¬ ᤥ« âì  ªâ¨¢­ë¬';,0
  658. .4 db '‡ ¤¥à¦ª :';,0
  659. .5 db '€¢â®á®åà ­¥­¨¥';,0
  660. .6 db '€¢â®­ã¬¥à æ¨ï, ­ ç¨­ ï á';,0
  661. .7 db 'Ž¡« áâì'
  662. .8:
  663.  
  664. no_shoot db '‘­¨¬®ª ­¥ ᤥ« ­',0
  665. shooting db '”®â®£à ä¨à®¢ ­¨¥...',0
  666. shooted_ok db '‘­¨¬®ª ᤥ« ­',0
  667. saving db '‘®åà ­¥­¨¥...',0
  668. saved_ok db '‘­¨¬®ª á®åà ­¥­',0
  669. delay_now db '‡ ¤¥à¦ª ...',0
  670. bad_file_name db 'ˆ¬ï ä ©«  ¢¢¥¤¥­® ­¥¢¥à­®',0
  671. disk_filled db '„¨áª § ¯®«­¥­',0
  672. bad_fat_table db '’ ¡«¨æ  FAT à §àã襭 ',0
  673. ac_den db '„®áâ㯠§ ¯à¥é¥­',0
  674. device_er db 'Žè¨¡ª  ãáâனá⢠',0
  675. not_shooted db '‘¤¥« ©â¥ á­¨¬®ª !!!',0
  676. no_file_name db '‚¢¥¤¨â¥ ¨¬ï ä ©«  !!!',0
  677. invalid_rect db '¥¤®¯ãáâ¨¬ë¥ à §¬¥àë ®¡« áâ¨',0
  678.  
  679. else
  680. text:
  681. .2 db 'Screen width:',0
  682. .1 db 'Screen height:',0
  683. .3 db 'Enter full path to the file:',0
  684. .4 db 'Bits per pixel:',0
  685. .5 db 'Bytes per line:',0
  686. .6 db '100 = 1 second',0
  687. ;.7: db 'Enter name of file:',0
  688. ;.8: db 'Instead of "*" in filename the number will be included.',0
  689. .9 db 'Current photo number:',0
  690. .10 db 'Amount of digits in number:',0
  691.  
  692. but_text:
  693. .1 db 'Make screen photo',0
  694. .2 db 'Save screen photo',0
  695. .3 db 'Show photo now',0
  696. .4 db 'Apply',0
  697. .5 db 'Start autoshooting',0
  698. .6 db 'Stop autoshooting',0
  699. .7 db 'Set',0
  700.  
  701. ch_text:
  702. .1 db 'Minimize window';,0
  703. .2 db 'Show photo';,0
  704. .3 db 'then make active';,0
  705. .4 db 'Delay:';,0
  706. .5 db 'Autosave';,0
  707. .6 db 'Start numeration from';,0
  708. .7 db 'Area'
  709. .8:
  710.  
  711. no_shoot db 'There is no photo',0
  712. shooting db 'Photographing...',0
  713. shooted_ok db 'Photo created',0
  714. saving db 'Saving...',0
  715. saved_ok db 'Photo saved',0
  716. delay_now db 'Delay...',0
  717. bad_file_name db 'File name is wrong',0
  718. disk_filled db 'Disk is full',0
  719. bad_fat_table db 'FAT table destroyed',0
  720. ac_den db 'Access denied',0
  721. device_er db 'Device error',0
  722. not_shooted db 'Make a photo !!!',0
  723. no_file_name db 'Enter file name !!!',0
  724. invalid_rect db 'Wrong area size',0
  725.  
  726. end if
  727.  
  728. sign_n_input:
  729.         db      '2',0
  730.  
  731. app_ipc ipc_buffer 32
  732. align 4
  733.  
  734. mouse_flag: dd 0x0
  735. structure_of_potock:
  736. rb 100
  737.  
  738. align 4
  739.  
  740. cur_number        dd      ?
  741.  
  742. sign_n        db      ?
  743.  
  744. slot_n        dd ?
  745.  
  746. flags        dd ?
  747.  
  748. scr_buf:
  749. .ptr        dd      ?
  750. .end_ptr        dd      ?
  751. .size:
  752. .height        dw      ?
  753. .width        dw      ?
  754.  
  755. fs_struc:
  756. .funk_n        dd      ?
  757.         dd      ?
  758.         dd      ?
  759. .bytes_to_write  dd      ?
  760. .data_ptr        dd    ?,?
  761. .fn_ptr        dd      ?
  762.  
  763. sf_buf:
  764. .bmp_header   dd      ?
  765. .bmp_area     dd      ?
  766. .end          dd      ?
  767.  
  768. set_rect_window_pid dd ?
  769. set_rect_window_slot dd ?
  770.  
  771. align 4
  772.  
  773. ed_buffer:
  774. .1: db '/sys/*.bmp',0
  775. rb 287
  776. .2: db '100',0
  777.  rb 6
  778. .3:  rb 10
  779.  
  780.  
  781. align 4
  782. rect_input_buffer:
  783. .left rb 6
  784. .top  rb 6
  785. .width  rb 6
  786. .height rb 6
  787.  
  788. cmdstr rb 257
  789.  
  790. align 4
  791.  
  792. file_name:
  793.         rb      1058
  794.  
  795. scr screen_prop
  796. rect:
  797. .left dw ?
  798. .top dw ?
  799. .height dw ?
  800. .width dw ?
  801.  
  802. sc sys_color_table
  803. app procinfo        ; ¨­ä®à¬ æ¨ï ® £« ¢­®¬ ®ª­¥
  804. active_app procinfo ; ¨­ä®à¬ æ¨ï ®¡  ªâ¨¢­®¬ ®ª­¥
  805. set_rect_window_procinfo procinfo  ; ¨­ä®à¬ æ¨ï ®¡ ®ª­¥ ®¡« áâ¨
  806. shoot_esp rb 512                   ; á⥪ ¯®â®ª  ä®âª ­ìï
  807. set_rect_window_esp rb 512         ; á⥪ ®ª­  ®¡« áâ¨
  808. ;        app_end    ; ª®­¥æ ¯à®£à ¬¬ë
  809. mouse_dd        rd 1
  810. align 4
  811. cur_dir_path    rb 4096
  812. library_path    rb 4096
  813. i_end_tread:
  814. rb 1024
  815. align 4
  816. i_end: