Subversion Repositories Kolibri OS

Rev

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

  1. ICON_STRIP      equ '/rd/1/icons32.png'
  2. ICON_INI        equ '/rd/1/settings/icon.ini'
  3. ICON_SIZE       equ 68    ;à §¬¥à ®¡« á⨠¤«ï ¨ª®­ª¨ á ­ ¤¯¨áìî
  4. IMG_SIZE        equ 32    ;à §¬¥à ¨ª®­®ª
  5. TEXT_BOTTOM_Y   equ 14    ;®âáâ㯠¯® Y ⥪áâ  ®â ­¨§  ¨ª®­ª¨
  6. IMAGE_TOP_Y     equ 10    ;>=1 Š®®à¤¨­ â  Y ¨ª®­ª¨ ¢ ®¡« á⨠¤«ï ¤ ­­®© ¨ª®­ª¨
  7. ALIGN_SIZE      equ 68    ;à §¬¥à á¥âª¨ ¢ëà ¢­¨¢ ­¨ï
  8. NAME_LENGTH     equ 11   ;¤«¨­  ¨¬¥­¨ ¨ª®­ª¨
  9. MIN_NO_MOVING   equ 8    ;ç¥à¥§ á⮫쪮 ¯¨ªá¥«¥© ᤢ¨£  ¬ëè¨ ­ ç¨­ ¥âáï â áª ­¨¥ ¨ª®­ª¨
  10.  
  11.                      ;--------¤«ï ¤¨ «®£  ᮧ¤ ­¨ï/। ªâ¨à®¢ ­¨ï
  12. ICONSX          equ 20
  13. ICONSY          equ 90
  14. ICONS_DRAW_COUNTW equ 12  ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ è¨à¨­ã
  15. ICONS_DRAW_COUNTH equ 6   ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ ¢ëá®âã
  16. SPCW            equ 3     ;¯à®¡¥« ¬¥¦¤ã ¨ª®­ª ¬¨ ¯® £®à¨§®­â «¨
  17. SPCH            equ 3
  18. END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
  19. END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
  20.  
  21.  
  22.  
  23. SizeData        equ bufStdIco+32
  24. BegData         equ fiStdIco.point
  25. ;------------------------------------------------------------------------------
  26.         use32
  27.         org 0x0
  28.         db 'MENUET01'   ; 8 byte id
  29.         dd 0x01         ; header version
  30.         dd START        ; start of code
  31.         dd I_END        ; size of image
  32.         dd ENDMEM       ; memory for app
  33.         dd stack_main   ; esp
  34.         dd 0            ; boot parameters
  35.         dd 0            ; path
  36. ;------------------------------------------------------------------------------
  37. include 'lang.inc'
  38. include '../../macros.inc'
  39. include '../../proc32.inc'
  40. include '../../develop/libraries/box_lib/trunk/box_lib.mac'
  41. include '../../dll.inc'
  42. ;include '../../debug.inc'
  43. ;------------------------------------------------------------------------------
  44. START:          ; start of execution
  45.         mcall   68,11
  46.         stdcall dll.Load,IMPORTS
  47.         test    eax,eax
  48.         jnz     ErrLoadLibs
  49.  
  50. ; unpack deflate
  51.         mov     eax,[unpack_DeflateUnpack2]
  52.         mov     [deflate_unpack],eax
  53. ;---------------------------------------------------------------------
  54. ; get size of file icons32.png
  55.         mcall   70,fiStdIco
  56.         test    eax,eax
  57.         jnz     ErrorStrp
  58. ; get memory for icons32.png
  59.         mov     ecx,dword[bufStdIco+32]
  60.         mov     [fiStdIco.size],ecx
  61.         mov     [img_size],ecx
  62.         mcall   68,12
  63.         mov     [fiStdIco.point],eax
  64.         mov     [image_file],eax
  65. ; load icons32.png
  66.         mov     dword[fiStdIco],0
  67.         mcall   70,fiStdIco
  68.         test    eax,eax
  69.         jnz     close
  70. ; convert PNG to RAW
  71.         xor     eax,eax
  72.         mov     [return_code],eax
  73. ;int3
  74.  
  75.         push    image_file
  76.         call    [cnv_png_import.Start]
  77.  
  78.         mov     eax,[raw_pointer]
  79.         mov     ebx,[eax+32]
  80.         mov     [strip_file_size],ebx
  81.         mov     eax,[eax+28]
  82.         add     eax,[raw_pointer]
  83.         mov     [strip_file],eax
  84. ; back memory to system
  85.         mcall   68,13,[fiStdIco.point]
  86.  
  87.         mov     eax,[raw_pointer]
  88.         mov     eax,[eax+8]
  89.         shr     eax,5
  90.         mov     [icon_count],eax
  91.  
  92.         and     eax,0x7
  93.         mov     [cur_band_compensation],eax
  94.  
  95. ;########## § £à㦠¥¬ ¤ ­­ë¥ ¨ª®­®ª ¢ ¯ ¬ïâì ##########################
  96.  
  97.         mcall   70,fiIni                     ;¢ë¤¥«ï¥¬ ¯ ¬ïâì, ¤®áâ â®ç­®© ¤«ï åà ­¥­¨ï ini ä ©« .
  98.         test    eax,eax                 ;…ñ â®ç­® 墠â¨â ¤«ï åà ­¥­¨ï ¤ ­­ëå ®¡ ¨ª®­ª å
  99.         jnz     ErrorIni
  100.  
  101.         cmp     dword[bufIni+32],0
  102.         je      ErrorIni
  103.         mcall   68,12,dword[bufIni+32]
  104.         mov     dword[BegData],eax
  105.         jmp     NoErrIni
  106.  
  107.   ErrorIni:
  108.         mcall   70,fiRunProg
  109.         mcall   -1
  110.  
  111.   NoErrIni:
  112.         m2m     [PIcoDB],[BegData]
  113.  
  114.  
  115.  
  116.         mov     edi,IconsID
  117.         xor     eax,eax
  118.         mov     ecx,100h/4
  119.         rep stosd
  120.         mov     [nLoadIcon],0
  121.         stdcall [ini_enum_sections],IconIni,LoadIconsData
  122. ;int3
  123.         mov     eax,dword[PIcoDB]
  124.         sub     eax,[BegData]
  125.         mov     dword[SizeData],eax
  126.         mov     eax,[BegData]
  127.         cmp     eax,[PIcoDB]
  128.         jne     @f
  129.         mov     dword[eax],0
  130.         mov     dword[SizeData],0
  131.    @@:
  132. ;######################################################################
  133.         call    FillIconsOffs                  ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
  134.  
  135. ;¨­¨æ¨ «¨§ æ¨ï IPC ¡ãä¥à 
  136.         mov     dword[IPCbuffer],0
  137.         mov     dword[IPCbuffer+4],8
  138.         mcall   60,1,IPCbuffer,1024
  139.  
  140.         mcall   40,EVM_MOUSE+EVM_IPC ;­ã¦­ë ⮫쪮 ᮡëâ¨ï ¬ëè¨ ¨ IPC,
  141.                                          ;¯¥à¥à¨á®¢ª  ¨ª®­®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥
  142.         mov     eax,[icon_count]
  143.         mov     bl,ICONS_DRAW_COUNTH
  144.         div     bl
  145.         test    ah,ah
  146.         jz      @f
  147.         inc     al
  148.      @@:
  149.         and     eax,0FFh
  150.         mov     [sbIcons.max_area],eax
  151.  
  152.         mcall   51,1,BGRedrawThread,stack_bredraw       ;§ ¯ã᪠¥¬ ¯®â®ª ¯¥à¥à¨á®¢ª¨ ¨ª®­®ª
  153.         stdcall [OpenDialog_Init],OpenDialog_data
  154.  
  155. ;dph [MaxNumIcon]
  156.  
  157. messages:
  158.         mcall   10
  159.         sub     eax,6
  160.         jz      MSGMouse
  161.         dec     eax
  162.         jz      MSGIPC
  163.         jmp     messages
  164.  
  165. MSGIPC:
  166.         call    IPCCreateIcon
  167.         jmp     messages
  168.  
  169. MSGMouse:
  170.         mcall   37,0    ;GetMousePos
  171.         xor     ebx,ebx
  172.         mov     bx,ax
  173.         shr     eax,16
  174.         mov     ecx,ebx
  175.         mov     ebx,eax
  176.  
  177.         mcall   34
  178.         cmp     eax,1
  179.         jne     messages
  180.  
  181.         cmp     [RButtonActiv],1
  182.         je      messages
  183.  
  184.         mov     [MouseY],ecx
  185.         mov     [MouseX],ebx
  186.  
  187.  
  188.         mcall   37,2
  189.         test    al,001b
  190.         jnz     LButtonPress
  191.         test    al,010b
  192.         jnz     RButtonPress
  193.         jmp     messages
  194.  
  195. ErrLoadLibs:
  196.         ;dps     '¥ 㤠«®áì § £à㧨âì ­¥®¡å®¤¨¬ë¥ ¡¨¡«¨®â¥ª¨'
  197.         ;debug_newline
  198.         jmp     close
  199. ErrorStrp:
  200.         ;dps     'Žè¨¡ª  ®âªàëâ¨ï icons32.png'
  201.         ;debug_newline
  202. close:
  203.         mcall   -1
  204.  
  205. LButtonPress:
  206.  
  207.         stdcall GetNumIcon,[MouseX],[MouseY],-1
  208. ;int3
  209.         cmp     eax,-1
  210.         jnz     @f
  211.  
  212.     WaitLB1:
  213.         mcall   37,2
  214.         test    al,001b
  215.         jz      messages
  216.         ;Yield
  217.         mcall   5,1
  218.         jmp     WaitLB1
  219.  
  220.  
  221.      @@:
  222.         push    eax
  223.         stdcall DrawIcon,eax,1
  224.    WaitLB:
  225.         mcall   37,2
  226.         test    al,001b
  227.         jz      endWaitLB
  228.  
  229.         mcall   37,0
  230.         xor     ebx,ebx
  231.         mov     bx,ax
  232.         shr     eax,16
  233.         sub     eax,[MouseX]
  234.         jns     @f
  235.         neg     eax
  236.       @@:
  237.         sub     ebx,[MouseY]
  238.         jns     @f
  239.         neg     ebx
  240.       @@:
  241.         cmp     [bFixIcons],0
  242.         jne     @f
  243.         cmp     eax,MIN_NO_MOVING
  244.         ja      MovingIcon
  245.         cmp     ebx,MIN_NO_MOVING
  246.         ja      MovingIcon
  247.       @@:
  248.         ;Yield
  249.         mcall   5,1     ;Sleep   1
  250.  
  251.         jmp     WaitLB
  252.    endWaitLB:
  253.  
  254.         mcall   37,0
  255.         xor     ebx,ebx
  256.         mov     bx,ax
  257.         shr     eax,16
  258.         mov     ecx,ebx
  259.         mov     ebx,eax
  260.         mov     [MouseX],ebx
  261.         mov     [MouseY],ecx
  262.  
  263.         stdcall GetNumIcon,[MouseX],[MouseY],-1
  264.         cmp     eax,[esp]       ;[esp] = ­®¬¥à ¨ª®­ª¨
  265.         jne     @f
  266.  
  267.         mov     edi,[IconsOffs+eax*4]
  268.         or      ecx,-1
  269.         xor     al,al
  270.         repne   scasb
  271.         mov     ebx,edi
  272.         repne   scasb
  273.                              ;run program
  274.         mov     dword[fiRunProg+8],edi
  275.         mov     dword[fiRunProg+21],ebx
  276.         mcall   70,fiRunProg
  277.         test    eax,80000000h
  278.         jz      @f
  279.  
  280.         mov     dword[fiRunProg+8],ErrRunProg
  281.         mov     dword[fiRunProg+21],pthNotify
  282.         mcall   70,fiRunProg
  283.  
  284.      @@:
  285.         pop     eax
  286.         stdcall RestoreBackgrnd,eax
  287.         jmp     messages
  288.  
  289. ;-------------------------------------------------------------------------------
  290. MovingIcon:
  291.         stdcall GetNumIcon,[MouseX],[MouseY],-1
  292.         mov     [SelIcon],eax
  293.         mov     [IconNoDraw],eax
  294.         stdcall RestoreBackgrnd,[SelIcon]
  295.  
  296. ;        mov     ecx,[MaxNumIcon]
  297. ;        xor     ebx,ebx
  298. ;   .MI: push    ecx
  299. ;        cmp     ebx,[SelIcon]
  300. ;        je      @f
  301. ;        stdcall DrawIcon,ebx,0
  302. ;      @@:
  303. ;        inc     ebx
  304. ;        pop     ecx
  305. ;        loop    .MI
  306.  
  307.  
  308.  
  309. ;dps 'Moving'
  310. ;debug_newline
  311. ;        mov     edi,[SelIcon]
  312. ;        mov     edi,[IconsOffs+edi*4]
  313. ;        or      ecx,-1
  314. ;        xor     al,al
  315. ;        repne scasb
  316. ;        repne scasb
  317. ;        repne scasb
  318. ;        repne scasb
  319. ;        xor     ebx,ebx
  320. ;        xor     esi,esi
  321. ;        mov     bx,word[edi+2]
  322. ;        mov     si,word[edi]
  323. ;        stdcall GetNumIcon,ebx,esi,[SelIcon]
  324. ;        cmp     eax,-1
  325. ;        je      @f
  326. ;  dps 'Q'
  327. ;        stdcall DrawIcon,eax,0
  328. ;     @@:
  329. ;
  330. ;        add     ebx,ICON_SIZE-1
  331. ;        stdcall GetNumIcon,ebx,esi,[SelIcon]
  332. ;        cmp     eax,-1
  333. ;        je      @f
  334. ;  dps 'Q'
  335. ;        stdcall DrawIcon,eax,0
  336. ;
  337. ;     @@:
  338. ;        add     esi,ICON_SIZE-1
  339. ;        stdcall GetNumIcon,ebx,esi,[SelIcon]
  340. ;        cmp     eax,-1
  341. ;        je      @f
  342. ;  dps 'Q'
  343. ;        stdcall DrawIcon,eax,0
  344. ;
  345. ;     @@:
  346. ;        sub     ebx,ICON_SIZE-1
  347. ;        stdcall GetNumIcon,ebx,esi,[SelIcon]
  348. ;        cmp     eax,-1
  349. ;        je      @f
  350. ;   dps 'Q'
  351. ;        stdcall DrawIcon,eax,0
  352. ;     @@:
  353.  
  354.  
  355. ; Sleep 40
  356.  
  357. ;qweqwe:
  358.  
  359.         mov    [MovingActiv],1
  360.         mcall   51,1,MovingWnd,stack_mov        ;CreateThread MovingWnd,stack_dlg
  361.    .WaitLB:
  362.         mcall   37,2    ;GetMouseKey
  363.         test    al,001b
  364.         jz      .endWaitLB
  365.  
  366.         ;Yield
  367.         mcall   5,1     ;Sleep 1
  368.         jmp     .WaitLB
  369.    .endWaitLB:
  370.  
  371.  
  372.         mcall   37,0            ;GetMousePos
  373.         xor     ebx,ebx
  374.         mov     bx,ax
  375.         shr     eax,16
  376.  
  377.         sub     eax,1+ICON_SIZE/2
  378.         jnc     @f
  379.         xor     eax,eax
  380.       @@:
  381.  
  382.         sub     ebx,ICON_SIZE/2-7
  383.         jnc     @f
  384.         xor     ebx,ebx
  385.       @@:
  386.  
  387.         cmp     ax,[wsX]
  388.         jae     @f
  389.         mov     ax,[wsX]
  390.       @@:
  391.  
  392.         cmp     bx,[wsY]
  393.         jae     @f
  394.         mov     bx,[wsY]
  395.       @@:                           ;eax,ebx - ॠ«ì­ ï ª®®à¤¨­ â . ‚ᥠª®®à¤¨­ âë ¢ ¯à®£¥ ®â­®á¨â¥«ì­® «¥¢®£® ¢¥àå­¥£® 㣫  à ¡®ç¥© ®¡« áâ¨
  396.  
  397.         xor     edx,edx
  398.         mov     dx,[wsXe]
  399.         sub     edx,ICON_SIZE
  400.         cmp     eax,edx
  401.         jbe     @f
  402.         mov     eax,edx
  403.       @@:
  404.  
  405.         mov     dx,[wsYe]
  406.         sub     edx,ICON_SIZE
  407.         cmp     ebx,edx
  408.         jbe     @f
  409.         mov     ebx,edx
  410.       @@:
  411.  
  412.         xor     edx,edx              ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â­®á¨â¥«ì­ë¥
  413.         mov     dx,[wsW]
  414.         shr     edx,1
  415.         add     dx,[wsX]
  416.         cmp     eax,edx
  417.         jbe     @f
  418.         sub     ax,[wsXe]
  419.         inc     ax
  420.         jmp     .mov1
  421.       @@:
  422.         sub     ax,[wsX]
  423.     .mov1:
  424.  
  425.         xor     edx,edx
  426.         mov     dx,[wsH]
  427.         shr     edx,1
  428.         add     dx,[wsY]
  429.         cmp     ebx,edx
  430.         jbe     @f
  431.         sub     bx,[wsYe]
  432.         inc     bx
  433.         jmp     .mov2
  434.       @@:
  435.         sub     bx,[wsY]
  436.     .mov2:
  437.  
  438.         stdcall SetPosition,[SelIcon],eax,ebx
  439.  
  440.         m2m     [PIcoDB],[BegData]
  441.         stdcall [ini_enum_sections],IconIni,Ini_SavePos  ;in RButton.inc
  442.  
  443.         mov     [bNotSave],1
  444.         mov     [IconNoDraw],-1
  445.  
  446.         mov    [MovingActiv],0          ;⮫쪮 ⥯¥àì ®âª«îç ¥¬ ®ª­® á ¬ëèìî
  447.  
  448.         jmp     messages
  449.  
  450. ;-------------------------------------------------------------------------------
  451.  
  452. RButtonPress:
  453.         mov     [RButtonActiv],1
  454.  
  455.      @@:
  456.         mcall   37,2    ;GetMouseKey
  457.         test    al,010b
  458.         jz      @f
  459.         mcall   5,1     ;Yield
  460.         jmp     @b
  461.      @@:
  462.  
  463.         mcall   51,1,RButtonWin,stack_rmenu       ;CreateThread RButtonWin,stack_rmenu
  464.  
  465.         jmp     messages
  466.  
  467.  
  468. ;###############################################################################
  469. ;ret eax = 1/0 = 㤠ç /®è¨¡ª 
  470. proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n
  471. local   IconData:DWORD
  472.         push    ebx edi esi
  473.  
  474.         mov     ecx,ICON_SIZE*ICON_SIZE
  475.         xor     eax,eax
  476.         mov     edi,IconArea
  477.         rep     stosd
  478.  
  479.         mov     eax,[NumIcon]
  480.         cmp     eax,[MaxNumIcon]
  481.         jb      @f
  482.         xor     eax,eax
  483.         pop     esi edi ebx
  484.         ret
  485.       @@:
  486.  
  487.         mov     esi,[IconsOffs+eax*4]
  488.         mov     [IconData],esi
  489.  
  490.                               ;à¨á㥬 ⥪áâ
  491.         mov     edi,esi
  492.         xor     al,al
  493.         or      ecx,-1
  494.         repne scasb
  495.         mov     edx,esi
  496.         mov     eax,edi
  497.         sub     eax,esi
  498.         dec     eax
  499.         shl     eax,1            ;*6
  500.         lea     eax,[eax*2+eax]
  501.         mov     ebx,ICON_SIZE
  502.         sub     ebx,eax
  503.         shr     ebx,1        ;ebx = x ⥪áâ 
  504.         shl     ebx,16
  505.         mov     bx,ICON_SIZE
  506.         sub     bx,TEXT_BOTTOM_Y
  507.         mov     ecx,88000000h
  508.         mov     edi,IconAreaH
  509.         add     ebx,-1*10000h+0
  510.         mcall   4
  511.         add     ebx,2*10000h+0
  512.         mcall   ;4
  513.         add     ebx,-1*10000h-1
  514.         mcall   ;4
  515.         add     ebx,0*10000h+2
  516.         mcall   ;4
  517.         add     ebx,1*10000h+0
  518.         mcall   ;4
  519.         inc     ebx;add     ebx,0*10000h+1
  520.         mcall   ;4
  521.         add     ebx,-1*10000h+0
  522.         mcall   ;4
  523.         add     ebx,0*10000h-2
  524.         mov     ecx,88FFFFFFh
  525.         mcall   ;4
  526.                                     ;à¨á㥬 ª à⨭ªã
  527.  
  528.         mov     edi,esi
  529.         xor     al,al
  530.         or      ecx,-1
  531.         repne   scasb
  532.         repne   scasb
  533.         repne   scasb
  534.         mov     al,[edi]
  535.         cmp     al,'9'
  536.         ja      PathToIcon
  537.         cmp     al,'/'
  538.         jne     GetIconInd
  539.  
  540.    PathToIcon:
  541.         mov     al,30h           ;§ £«ã誠!!!!!!!!!!!!!
  542.         mov     byte[edi+1],0
  543.  
  544.         jmp     CopyToMem
  545.    GetIconInd:
  546.  
  547.         sub     al,30h
  548.         cmp     byte[edi+1],0
  549.         je      @f
  550.         shl     eax,1
  551.         lea     eax,[eax*4+eax]
  552.         xor     edx,edx
  553.         mov     dl,[edi+1]
  554.         sub     dl,30h
  555.         add     eax,edx
  556.      @@:             ;eax=num icon
  557.         cmp     eax,[icon_count]
  558.         jb      @f
  559.         xor     eax,eax
  560.      @@:
  561.         test    eax,eax
  562.         je      DI1
  563.         mov     ecx,eax
  564.         xor     eax,eax
  565.       @@:
  566.         add     eax,IMG_SIZE*IMG_SIZE*4
  567.         loop    @b
  568.      DI1:
  569.         add     eax,[raw_pointer]
  570.         add     eax,0+4*11
  571.         mov     esi,eax
  572.  
  573.   CopyToMem:
  574.         mov     edi,IconArea+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4
  575.  
  576.         mov     eax,IMG_SIZE
  577.         mov     edx,eax
  578.       @@:
  579.         mov     ecx,eax
  580.         rep     movsd
  581.         add     edi,(ICON_SIZE-IMG_SIZE)*4
  582.         dec     edx
  583.         jnz     @b
  584.  
  585. ;-----------------
  586.                                 ;¥á«¨ ­ ¤®, â® à¨á㥬 ®¡¢®¤ªã
  587.         cmp     [Activ],0
  588.         je      .NoSelect
  589.  
  590.         mov     edi,IconArea
  591.         mov     eax,0FF000000h
  592.         mov     ecx,ICON_SIZE
  593.         rep     stosd
  594.         ;mov     edi,IconArea+ICON_SIZE*1
  595.  
  596.         mov     ecx,ICON_SIZE-1
  597.     @@: mov     dword[edi],eax
  598.         add     edi,(ICON_SIZE)*4
  599.         loop    @b
  600.  
  601.         mov     edi,IconArea+ICON_SIZE*2*4-4
  602.         mov     ecx,ICON_SIZE-1
  603.     @@: mov     dword[edi],eax
  604.         add     edi,(ICON_SIZE)*4
  605.         loop    @b
  606.  
  607.         mov     edi,IconArea+ICON_SIZE*(ICON_SIZE-1)*4+4
  608.         mov     ecx,ICON_SIZE-2
  609.         rep     stosd
  610.  
  611.  
  612.         mov     edi,IconArea+ICON_SIZE*4+4
  613.         mov     eax,0FFFFFFFFh
  614.         mov     ecx,ICON_SIZE-2
  615.         rep     stosd
  616.  
  617.         mov     edi,IconArea+ICON_SIZE*4+4
  618.         mov     ecx,ICON_SIZE-2
  619.     @@: mov     dword[edi],eax
  620.         add     edi,(ICON_SIZE)*4
  621.         loop    @b
  622.  
  623.         mov     edi,IconArea+ICON_SIZE*2*4-4*2
  624.         mov     ecx,ICON_SIZE-3
  625.     @@: mov     dword[edi],eax
  626.         add     edi,(ICON_SIZE)*4
  627.         loop    @b
  628.  
  629.         mov     edi,IconArea+ICON_SIZE*(ICON_SIZE-2)*4+4*2
  630.         mov     ecx,ICON_SIZE-3
  631.         rep     stosd
  632. ;--------------
  633.  
  634.    .NoSelect:
  635.         mov     edi,[IconData]
  636.         xor     al,al
  637.         or      ecx,-1
  638.         repne   scasb
  639.         repne   scasb
  640.         repne   scasb
  641.         repne   scasb
  642.         mov     edx,[edi]
  643.  
  644.         test    edx,00008000h
  645.         jz      @f
  646.         add     dx,[wsYe]
  647.         jmp     .DI11
  648.     @@:
  649.         add     dx,[wsY]
  650.    .DI11:
  651.  
  652.         test    edx,80000000h
  653.         jz      @f
  654.         mov     ax,[wsXe]
  655.         shl     eax,16
  656.         add     edx,eax
  657.         jmp     .DI12
  658.     @@:
  659.         mov     ax,[wsX]
  660.         shl     eax,16
  661.         add     edx,eax
  662.    .DI12:
  663.  
  664.         mov     ebx,IconArea
  665.         mov     ecx,ICON_SIZE*10000h+ICON_SIZE
  666.         mcall   25
  667.  
  668. ;        mov     eax,1
  669.         pop     esi edi ebx
  670.         ret
  671. endp
  672.  
  673. proc RestoreBackgrnd,NumIcon:DWORD
  674.         push    ebx edi
  675.         mov     eax,[NumIcon]
  676.         cmp     eax,[MaxNumIcon]
  677.         jb      @f
  678.         xor     eax,eax
  679.         pop     edi ebx
  680.         ret
  681.       @@:
  682.  
  683.         mov     edi,[IconsOffs+eax*4]
  684.         xor     al,al
  685.         or      ecx,-1
  686.         repne   scasb
  687.         repne   scasb
  688.         repne   scasb
  689.         repne   scasb
  690.  
  691.         mov     ax,[edi+2]
  692.         test    ax,8000h
  693.         jz      @f
  694.         add     ax,[wsXe]
  695.         jmp     .rbg1
  696.       @@:
  697.         add     ax,[wsX]
  698.      .rbg1:
  699.  
  700.         mov     bx,[edi]
  701.         test    bx,8000h
  702.         jz      @f
  703.         add     bx,[wsYe]
  704.         jmp     .rbg2
  705.       @@:
  706.         add     bx,[wsY]
  707.      .rbg2:
  708.  
  709.         mov     cx,ax
  710.         shl     ecx,16
  711.         add     ax,ICON_SIZE
  712.         mov     cx,ax
  713.         mov     dx,bx
  714.         shl     edx,16
  715.         add     bx,ICON_SIZE
  716.         mov     dx,bx
  717.         dec     ecx
  718.         dec     edx
  719.         mcall   15,9
  720.         pop     edi ebx
  721.         ret
  722. endp
  723.  
  724.                                  ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
  725. proc FillIconsOffs
  726.         push    ebx edi
  727.         mov     edi,[BegData]
  728.         mov     dword[MaxNumIcon],0
  729.         cmp     dword[edi],0
  730.         jne     @f
  731.         mov     dword[IconsOffs],0
  732.         pop     edi ebx
  733.         ret
  734.     @@:
  735.  
  736.         mov     [IconsOffs],edi
  737.         xor     al,al
  738.         xor     edx,edx
  739.         mov     ebx,dword[SizeData]
  740.         add     ebx,dword[BegData]
  741.         or      ecx,-1
  742.  .CalcNumIc:
  743.  
  744.         repne   scasb
  745.         repne   scasb
  746.         repne   scasb
  747.         repne   scasb
  748.         add     edi,4
  749.         mov     dword[IconsOffs+edx+4],edi
  750.         inc     dword[MaxNumIcon]
  751.         add     edx,4
  752.  
  753.         cmp     edi,ebx
  754.         jae     @f
  755.         jmp     .CalcNumIc
  756.    @@:
  757.  
  758.         mov     dword[IconsOffs+edx],0
  759.  
  760.         pop     edi ebx
  761.         ret
  762. endp
  763.  
  764. proc LoadIconsData stdcall,f_name,sec_name
  765.         push    ebx esi edi
  766.  
  767.         mov     edi,secRButt
  768.         mov     esi,[sec_name]
  769.     @@: lodsb
  770.         scasb
  771.         jnz     .lid1
  772.         test    al,al
  773.         jnz     @b
  774.  
  775.         mov     eax,1
  776.         pop     edi esi ebx
  777.         ret
  778.      .lid1:
  779.  
  780.  
  781.         mov     ebx,[sec_name]          ;ª®¯¨à㥬 ID
  782.         mov     ax,[ebx]
  783.         mov     edi,[nLoadIcon]
  784.         mov     word[edi*4+IconsID],ax
  785.         mov     word[edi*4+IconsID+2],0
  786.  
  787.         mov     edi,[PIcoDB]
  788.         stdcall [ini_get_str],[f_name],[sec_name],keyName,edi,4096,0
  789.         test    eax,eax
  790.         jz      @f
  791.         xor     eax,eax
  792.         pop     edi esi ebx
  793.         ret
  794.      @@:
  795.         xor     al,al
  796.         or      ecx,-1
  797.         repne   scasb
  798.  
  799.  
  800.  
  801.         stdcall [ini_get_str],[f_name],[sec_name],keyPath,edi,4096,0
  802.         test    eax,eax
  803.         jz      @f
  804.         xor     eax,eax
  805.         pop     edi esi ebx
  806.         ret
  807.      @@:
  808.         xor     al,al
  809.         or      ecx,-1
  810.         repne   scasb
  811.  
  812.         stdcall [ini_get_str],[f_name],[sec_name],keyParams,edi,4096,0
  813.         test    eax,eax
  814.         jz      @f
  815.         xor     eax,eax
  816.         pop     edi esi ebx
  817.         ret
  818.      @@:
  819.         xor     al,al
  820.         or      ecx,-1
  821.         repne   scasb
  822.  
  823.         stdcall [ini_get_str],[f_name],[sec_name],keyIco,edi,4096,0
  824.         test    eax,eax
  825.         jz      @f
  826.         xor     eax,eax
  827.         pop     edi esi ebx
  828.         ret
  829.      @@:
  830.         xor     al,al
  831.         or      ecx,-1
  832.         repne   scasb
  833.  
  834.         stdcall [ini_get_int],[f_name],[sec_name],keyX,80000000h
  835.         cmp     eax,80000000h
  836.         jne     @f
  837.         xor     eax,eax
  838.         pop     edi esi ebx
  839.         ret
  840.      @@:
  841.         mov     word[edi+2],ax
  842.  
  843.         stdcall [ini_get_int],[f_name],[sec_name],keyY,80000000h
  844.         cmp     eax,80000000h
  845.         jne     @f
  846.         xor     eax,eax
  847.         pop     edi esi ebx
  848.         ret
  849.      @@:
  850.         mov     word[edi],ax
  851.         add     edi,4
  852.         mov     [PIcoDB],edi
  853.  
  854.         inc     [nLoadIcon]
  855.  
  856.         mov     eax,1
  857.         pop     edi esi ebx
  858.         ret
  859. endp
  860.  
  861. proc GenerateID ;ax = ID
  862.         push    ebx edi
  863.         mov     ebx,[MaxNumIcon]
  864.         test    ebx,ebx
  865.         jnz     @f
  866.         mov     eax,'00'
  867.         pop     edi ebx
  868.         ret
  869.      @@:
  870.  
  871.         mov     eax,dword[IconsID+ebx*4-4]
  872.   .inc:
  873.         inc     ah
  874.         cmp     ah,'9'+1
  875.         jne     @f
  876.         mov     ah,'A'
  877.        @@:
  878.         cmp     ah,'F'+1
  879.         jne     @f
  880.         mov     ah,'0'
  881.         inc     al
  882.        @@:
  883.         cmp     al,'9'+1
  884.         jne     @f
  885.         mov     al,'A'
  886.        @@:
  887.         cmp     al,'F'+1
  888.         jne     @f
  889.         mov     al,'0'
  890.        @@:
  891.  
  892.  
  893.         mov     edi,IconsID
  894.         ;cmp     dword[edi],0
  895.         ;je      @f
  896.         mov     ecx,100h
  897.     @@: scasd
  898.         je      .inc
  899.         cmp     dword[edi],0
  900.         je      @f
  901.         loop    @b
  902.      @@:
  903.  
  904.         pop     edi ebx
  905.         ret
  906. endp
  907.  
  908. ;-------------------------------------------------------------------------------
  909.  
  910.  
  911. ;ä®à¬ â IPC-á®®¡é¥­¨ï
  912. ;dd X
  913. ;dd Y
  914. ;asciiz Icon
  915. ;asciiz Name
  916. ;asciiz Path
  917. ;asciiz Params
  918. ;-------------------------------------------------------------------------------
  919. proc IPCCreateIcon
  920. locals
  921.         ix rd 1
  922.         iy rd 1
  923. endl
  924.  
  925.         mov     eax,IPCbuffer+8
  926.         mov     dword[IPCbuffer],1
  927.         ;mov     edx,dword[IPCbuffer+4]
  928.         lea     edx,[eax+8]
  929.  
  930.         m2m     dword[ix],dword[edx]
  931.         m2m     dword[iy],dword[edx+4]
  932.  
  933.         lea     esi,[edx+8]
  934.  
  935.         mov     ecx,256
  936.         mov     edi,DAreaIcon
  937.     @@: lodsb
  938.         stosb
  939.         test    al,al
  940.         jnz     @b
  941.  
  942.         mov     ecx,NAME_LENGTH+1
  943.         mov     edi,DAreaName
  944.     @@: lodsb
  945.         stosb
  946.         test    al,al
  947.         jz      @f
  948.         loop    @b
  949.     @@:
  950.  
  951.         mov     edi,DAreaPath
  952.     @@: lodsb
  953.         stosb
  954.         test    al,al
  955.         jnz     @b
  956.  
  957.         mov     edi,DAreaParams
  958.     @@: lodsb
  959.         stosb
  960.         test    al,al
  961.         jnz     @b
  962.  
  963.         mov     dword[IPCbuffer+4],8
  964.         mov     dword[IPCbuffer],0
  965.  
  966.         stdcall AddIcon,[ix],[iy],DAreaIcon,DAreaName,DAreaPath,DAreaParams
  967.  
  968.         mcall   15,3
  969.         ret
  970. endp
  971.  
  972.  
  973. include 'iconman.inc'
  974. include 'bgredraw.inc'
  975. include 'RButton.inc'
  976. include 'DlgAdd.inc'
  977. include 'Moving.inc'
  978.  
  979. ;'Eolite',0,'/sys/File managers/eolite',0,'/hd0/3/Muzik',0,'1',0,00010001h
  980. ;-------------------------------------------------------------------------------
  981. ;##### DATA ####################################################################
  982. ;-------------------------------------------------------------------------------
  983. ; not change this section!!!
  984. ; start section
  985. ;------------------------------------------------------------------------------
  986. align 4
  987. image_file     dd 0 ;+0
  988. raw_pointer    dd 0 ;+4
  989. return_code    dd 0 ;+8
  990. img_size       dd 0 ;+12
  991. deflate_unpack dd 0 ;+16        ; not use for scaling
  992. raw_pointer_2  dd 0 ;+20        ; not use for scaling
  993. ;------------------------------------------------------------------------------
  994. ; end section
  995. ;------------------------------------------------------------------------------
  996.  
  997.  
  998. align 4
  999. fiStdIco:
  1000.         dd 5
  1001.         dd 0
  1002.         dd 0
  1003. .size   dd 0
  1004. .point  dd bufStdIco
  1005.         db ICON_STRIP,0
  1006.  
  1007.  
  1008. align 4
  1009. fiRunProg:            ;¤«ï § ¯ã᪠ ¯à®£à ¬¬
  1010.         dd 7
  1011.         dd 0
  1012.         dd 0
  1013.         dd 0
  1014.         dd ErrNotFoundIni
  1015.         db 0
  1016.         dd pthNotify
  1017.  
  1018. fiIni   dd 5           ;¤«ï ini ä ©« 
  1019.         dd 0
  1020.         dd 0
  1021.         dd 0
  1022.         dd bufIni
  1023.         db 0
  1024.         dd IconIni
  1025.  
  1026.  
  1027. IconsFile       db ICON_STRIP,0
  1028.  
  1029. align 4
  1030. MaxNumIcon      dd 0            ;ª®«¨ç¥á⢮ ¨ª®­®ª
  1031. IconNoDraw      dd -1           ;-1 «¨¡® ­®¬¥à ¨ª®­ª¨, ª®â®àãî ­¥ ­ ¤® à¨á®¢ âì( ª®£¤  ¥ñ â áª îâ )
  1032.  
  1033. bFixIcons       dd 1
  1034. bNotSave        dd 0
  1035.  
  1036. LButtonActiv    dd 0
  1037. RButtonActiv    dd 0
  1038. MovingActiv     dd 0
  1039. DlgAddActiv     dd 0
  1040.  
  1041. IconIni         db ICON_INI,0
  1042.  
  1043. pthNotify       db '/rd/1/@notify',0
  1044.  
  1045. keyName         db 'name',0
  1046. keyPath         db 'path',0
  1047. keyParams       db 'param',0
  1048. keyIco          db 'ico',0
  1049. keyX            db 'x',0
  1050. keyY            db 'y',0
  1051.  
  1052. ;-------------------------------------------------------------------------------
  1053. IMPORTS:
  1054. library cnv_png ,'cnv_png.obj',\
  1055.         archiver,'archiver.obj',\
  1056.         box_lib ,'box_lib.obj',\
  1057.         proc_lib,'proc_lib.obj',\
  1058.         libini  ,'libini.obj'
  1059.  
  1060. import  cnv_png,\
  1061.         cnv_png_import.Start    ,'START',\
  1062.         cnv_png_import.Version  ,'version',\
  1063.         cnv_png_import.Check    ,'Check_Header',\
  1064.         cnv_png_import.Assoc    ,'Associations'
  1065.  
  1066. import  archiver,\
  1067.         unpack_DeflateUnpack2   ,'deflate_unpack2'
  1068.  
  1069. import  box_lib,\
  1070.         edit_box_draw           ,'edit_box',\
  1071.         edit_box_key            ,'edit_box_key',\
  1072.         edit_box_mouse          ,'edit_box_mouse',\
  1073.         scrollbar_h_draw        ,'scrollbar_h_draw',\
  1074.         scrollbar_h_mouse       ,'scrollbar_h_mouse'
  1075.  
  1076. import  proc_lib,\
  1077.         OpenDialog_Init         ,'OpenDialog_init',\
  1078.         OpenDialog_Start        ,'OpenDialog_start'
  1079.  
  1080. import  libini,\
  1081.         ini_enum_sections       ,'ini_enum_sections',\
  1082.         ini_enum_keys           ,'ini_enum_keys',\
  1083.         ini_get_str             ,'ini_get_str',\
  1084.         ini_set_str             ,'ini_set_str',\
  1085.         ini_get_color           ,'ini_get_color',\
  1086.         ini_get_int             ,'ini_get_int',\
  1087.         ini_set_int             ,'ini_set_int',\
  1088.         ini_del_section         ,'ini_del_section',\
  1089.         ini_exist_sect          ,'ini_exist_sect'
  1090.  
  1091.  
  1092. ;ini.get_str (f_name, sec_name, key_name, buffer, buf_len, def_val)
  1093. ;ini.set_str (f_name, sec_name, key_name, buffer, buf_len)
  1094.  
  1095.  
  1096. ;-------------------------------------------------------------------------------
  1097. ;----- RButton.inc -------------------------------------------------------------
  1098. ;-------------------------------------------------------------------------------
  1099.  
  1100. if lang eq ru
  1101.  MinRMenuW       dd 18*6+10
  1102. else
  1103.  MinRMenuW       dd 15*6+10
  1104. end if
  1105.  
  1106. secRButt        db 'rbmenu',0
  1107.  
  1108. PredItem        dd -1
  1109.  
  1110. if lang eq ru
  1111.  RMenuRedrawFon db '¥à¥à¨á®¢ âì',0
  1112.  RMenuAlign     db '‚ë஢­ïâì ¯® á¥âª¥',0
  1113.  RMenuOffMoving db '‡ ªà¥¯¨âì ¨ª®­ª¨',0
  1114.  RMenuOnMoving  db 'Žâªà¥¯¨âì ¨ª®­ª¨',0
  1115.  RMenuAdd       db '„®¡ ¢¨âì',0
  1116.  RMenuDel       db '“¤ «¨âì',0
  1117.  RMenuProp      db '‘¢®©á⢠',0
  1118. else
  1119.  RMenuRedrawFon db 'Redraw',0
  1120.  RMenuAlign     db 'Snap to Grid',0
  1121.  RMenuOffMoving db 'Fix the icons',0
  1122.  RMenuOnMoving  db 'Unfix the icons',0
  1123.  RMenuAdd       db 'Add',0
  1124.  RMenuDel       db 'Delete',0
  1125.  RMenuProp      db 'Properties',0
  1126. end if
  1127.  
  1128. if lang eq ru
  1129.  ErrRunProg     db 'Žè¨¡ª  § ¯ã᪠ ¯à®£à ¬¬ë',0
  1130.  WarningSave    db '¥ § ¡ã¤ì⥠á®åà ­¨âì ¨§¬¥­¥­¨ï, § ¯ãáâ¨âì RDSave',0
  1131.  ErrNotFoundIni db '¥ ­ ©¤¥­ icon.ini',0
  1132.  ErrName        db 'ˆ¬ï "rbmenu" § à¥§¥à¢¨à®¢ ­®',0
  1133. else
  1134.  ErrRunProg     db 'Error runing program',0
  1135.  WarningSave    db 'Do not forget to save the changes, run the RDSave',0
  1136.  ErrNotFoundIni db 'icon.ini not found',0
  1137.  ErrName        db 'The name "rbmenu" reserved',0
  1138. end if
  1139.  
  1140. ;-------------------------------------------------------------------------------
  1141. ;------- AddDlg.inc ---------------------------------------------------------------
  1142. ;-------------------------------------------------------------------------------
  1143. if lang eq ru
  1144. DTitleAdd       db '„®¡ ¢¨âì ¨ª®­ªã',0
  1145. DTitleProp      db 'ˆ§¬¥­¨âì ¨ª®­ªã',0
  1146.  
  1147. DCaptName       db '      ˆ¬ï',0
  1148. DCaptPath       db '     ãâì',0
  1149. DCaptParams     db '    Š«îç¨',0
  1150. ;DCaptChange     db '.',0
  1151. DCaptCreate     db '‘®§¤ âì',0
  1152. DCaptProperties db 'ˆ§¬¥­¨âì',0
  1153. DCaptCancel     db 'Žâ¬¥­¨âì',0
  1154.  
  1155. else
  1156. DTitleAdd       db 'Add icon',0
  1157. DTitleProp      db 'Change icon',0
  1158.  
  1159. DCaptName       db '      Name',0
  1160. DCaptPath       db '      Path',0
  1161. DCaptParams     db '    Params',0
  1162. DCaptCreate     db 'Create',0
  1163. DCaptProperties db 'Change',0
  1164. DCaptCancel     db 'Cancel',0
  1165. end if
  1166. DCaptDots       db '...',0
  1167.  
  1168. ;/­¥ ¬¥­ïâì ¯®«®¦¥­¨¥
  1169. edtName    edit_box NAME_LENGTH*8+4,120+IMG_SIZE,6,0FFFFFFh,06F9480h,0FFh,0h,0x90000000,NAME_LENGTH,\
  1170.                 DAreaName,mouse_dd,0,0,0
  1171. edtExePath edit_box END_ICONS_AREAW-120-IMG_SIZE-40,120+IMG_SIZE,30,0FFFFFFh,06F9480h,\
  1172.         0FFh,0h,0x90000000,255, DAreaPath,mouse_dd,0,0,0
  1173. edtParams  edit_box END_ICONS_AREAW-120-IMG_SIZE,   120+IMG_SIZE,54,0FFFFFFh,06F9480h,\
  1174.         0FFh,0h,0x90000000,255, DAreaParams,mouse_dd,0,0,0
  1175. edtIcon    edit_box 28,24,62,0FFFFFFh,0FFFFFFh,0FFh,0h,0x90000000,3,\
  1176.                 DAreaIcon,0,0,0,0
  1177. endEdits:
  1178. ;\
  1179.  
  1180. sbIcons:
  1181.              dw END_ICONS_AREAW-ICONSX
  1182.              dw ICONSX
  1183.              dw 15
  1184.              dw END_ICONS_AREAH+3
  1185.              dd 0
  1186.              dd 1
  1187.  .max_area   dd 0
  1188.  .cur_area   dd ICONS_DRAW_COUNTW
  1189.  .position   dd 0
  1190.  .bckg_col   dd 0
  1191.  .frnt_col   dd 0
  1192.  .line_col   dd 0
  1193.  .redraw     dd 0
  1194.  .delta      dd 0
  1195.  .delta2     dd 0
  1196.  .r_size_x   dw 0
  1197.  .r_start_x  dw 0
  1198.  .r_size_y   dw 0
  1199.  
  1200.  .r_start_y  dw 0
  1201.  .m_pos      dd 0
  1202.  .m_pos2     dd 0
  1203.  .m_keys     dd 0
  1204.  .run_size   dd 0
  1205.  .position2  dd 0
  1206.  .work_size  dd 0
  1207.  .all_redraw dd 0
  1208.  .ar_offset  dd 0
  1209.  
  1210. ;-------------------------------------------------------------------------------
  1211. OpenDialog_data:
  1212. .type                   dd 0
  1213. .procinfo               dd RBProcInfo       ;+4
  1214. .com_area_name          dd communication_area_name      ;+8
  1215. .com_area               dd 0    ;+12
  1216. .opendir_pach           dd temp_dir_pach        ;+16
  1217. .dir_default_pach       dd communication_area_default_pach      ;+20
  1218. .start_path             dd open_dialog_path     ;+24
  1219. .draw_window            dd DRedrawWin;draw_window_for_OD   ;+28
  1220. .status                 dd 0    ;+32
  1221. .openfile_pach          dd DAreaPath;fname_Info   ;+36
  1222. .filename_area          dd 0;DAreaPath        ;+40
  1223. .filter_area            dd Filter
  1224. .x:
  1225. .x_size                 dw 420 ;+48 ; Window X size
  1226. .x_start                dw 100 ;+50 ; Window X position
  1227. .y:
  1228. .y_size                 dw 320 ;+52 ; Window y size
  1229. .y_start                dw 100 ;+54 ; Window Y position
  1230.  
  1231. communication_area_name:
  1232.         db 'FFFFFFFF_open_dialog',0
  1233. open_dialog_path:
  1234.         db '/sys/File managers/opendial',0
  1235.  
  1236. communication_area_default_pach:
  1237.         db '/sys',0
  1238.  
  1239. Filter  dd 0
  1240.  
  1241. ;open_dialog     db 0
  1242. ;-------------------------------------------------------------------------------
  1243.  
  1244. ;/­¥ à §¤¥«ïâì
  1245. align 4
  1246. IconAreaH       dd ICON_SIZE,ICON_SIZE
  1247. I_END:
  1248. ;##### UDATA ###################################################################
  1249. IconArea        rb 4*ICON_SIZE*ICON_SIZE
  1250. ;\
  1251.  
  1252. sc              system_colors
  1253. sc.workL        rd 1
  1254. sc.workH        rd 1
  1255.  
  1256.  
  1257. align 4
  1258. IPCbuffer       rb 1024
  1259.  
  1260. align 4
  1261.  
  1262. ScreenW         rw 1
  1263. ScreenH         rw 1
  1264. wsX             rw 1
  1265. wsY             rw 1
  1266. wsXe            rw 1
  1267. wsYe            rw 1
  1268. wsW             rw 1
  1269. wsH             rw 1
  1270.  
  1271.  
  1272. MouseX          rd 1
  1273. MouseY          rd 1
  1274.  
  1275. RBSlot          rd 1
  1276. AddX            rd 1
  1277. AddY            rd 1
  1278.  
  1279. SelIcon         rd 1
  1280. DlgSelIcon      rd 1
  1281. slotDlgAdd      rd 1
  1282. DlgBufImg       rb IMG_SIZE*IMG_SIZE*3
  1283.  
  1284. align 4
  1285. bufStdIco       rb 40
  1286. IconsOffs       rd 100          ;â ¡«¨æ  á 㪠§ â¥«ï¬¨ ­  ª®­ªà¥â­ë¥ ¨ª®­ª¨(¤«ï ã᪮७¨ï)
  1287. PIcoDB          rd 1
  1288. nLoadIcon       rd 1            ;­®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®­ª¨
  1289. IconsID         rd 100          ;ID ¨ª®­®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢­¨¢ î騩 ¡ ©â - áâப  á 2¬ï è¥á­ ¤æ¥â¨à¨ç­ë¬¨ æ¨äà ¬¨
  1290.  
  1291. nameSection     rb 4
  1292.  
  1293. align 4
  1294. icon_count      rd 1
  1295. strip_file      rd 1
  1296. strip_file_size rd 1
  1297.  
  1298. cur_band_compensation rd 1
  1299.  
  1300. ;---- RButton -----------------------------------------------------------------------
  1301.  
  1302. bufIni          rb 40
  1303. NumMenuButt     rd 1
  1304. RBMenuCP        rd MAX_USER_BUTTONS*2         ;㪠§ â¥«¨ ­  ¯®¤¯¨áì ¨ ¯ãâì á ¯à®£®© (Caption(dd), Path(dd)) ¨ § ¯ á­®© (dd) ¤«ï § ¢¥àè î饣® ­ã«ï
  1305. RMenuW          rw 1
  1306. RMenuH          rw 1
  1307.  
  1308. MaxPage         rd 1
  1309. mouse_dd        rd 1
  1310.  
  1311. DAreaName       rb NAME_LENGTH+1
  1312. DAreaPath       rb 255+1
  1313. DAreaParams     rb 255+1
  1314. DAreaIcon       rb 255+1
  1315.  
  1316. align 4
  1317. RBProcInfo      rb 1024
  1318. align 4
  1319.  
  1320.  
  1321. ;------ OpenDialog -------------------------------
  1322. temp_dir_pach   rb 1024
  1323. fname_Info      rb 1024
  1324.  
  1325. ;-------------------------------------------------------------------------------
  1326.                 rb 512
  1327. stack_mov:                      ;®¤­®¢à¥¬¥­­® â áª âì ¨ ¤¥à¦ âì ®âªàëâë¬ ¬¥­îèªã ­¥¢®§¬®¦­®
  1328. stack_rmenu:
  1329.                 rb 512
  1330. stack_dlg:
  1331.                 rb 512
  1332. stack_bredraw:
  1333.                 rb 512
  1334. stack_main:
  1335. ;------------------------------------------------------------------------------
  1336. ENDMEM: