Subversion Repositories Kolibri OS

Rev

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