Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. define  @Menuet@OpenFileDialog$qr22Menuet@TOpenFileStruct
  2.   push ebx
  3.   push esi
  4.   push edi
  5.   push ebp
  6.   call @Menuet@GetThreadData$qv
  7.   mov  ebp,eax
  8.   mov  ebx,[esp+20]
  9.   cmp  dword [ebx+4],0
  10.   jnz  Menuet_open_file_dlg_str
  11.   mov  esi,7
  12.   jmp  Menuet_open_file_dlg_alloc
  13. Menuet_open_file_dlg_str:
  14.   cld
  15.   mov  edi,[ebx+4]
  16.   mov  ecx,-1
  17.   xor  al,al
  18.   repnz scas byte [edi]
  19.   not  ecx
  20.   mov  esi,ecx
  21. Menuet_open_file_dlg_alloc:
  22.   push esi
  23.   call @@Menuet@Alloc$qui
  24.   pop  ecx
  25.   test eax,eax
  26.   jz   Menuet_open_file_dlg_ret
  27.   mov  ecx,esi
  28.   dec  ecx
  29.   push esi
  30.   push ecx
  31.   push eax
  32.   mov  dword [ebx],-1
  33.   cmp  dword [ebx+4],0
  34.   jnz  Menuet_open_file_dlg_copy
  35.   mov  dword [eax],0x2F64722F
  36.   mov  word [eax+4],0x2F31
  37.   jmp  Menuet_open_file_dlg_redraw
  38. Menuet_open_file_dlg_copy:
  39.   cld
  40.   mov  ecx,esi
  41.   mov  esi,[ebx+4]
  42.   mov  edi,eax
  43.   rep movs byte [edi],[esi]
  44. Menuet_open_file_dlg_redraw:
  45.   mov  eax,12
  46.   mov  ebx,1
  47.   int  0x40
  48.   xor  eax,eax
  49.   mov  ebx,[ebp+MENUET_THREAD_DATA_X*4]
  50.   mov  ecx,[ebp+MENUET_THREAD_DATA_Y*4]
  51.   mov  edx,[ebp+MENUET_THREAD_DATA_C_WINDOW*4]
  52.   mov  esi,[ebp+MENUET_THREAD_DATA_C_HEADER*4]
  53.   mov  edi,[ebp+MENUET_THREAD_DATA_C_BORDER*4]
  54.   int  0x40
  55.   mov  eax,4
  56.   mov  ebx,0x00070007
  57.   mov  ecx,[ebp+MENUET_THREAD_DATA_C_TITLE*4]
  58.   mov  edx,Menuet_open_file_dlg_name
  59.   mov  esi,Menuet_open_file_dlg_name_end - Menuet_open_file_dlg_name
  60.   int  0x40
  61.   mov  eax,4
  62.   mov  ebx,0x000C001E
  63.   xor  ecx,ecx
  64.   mov  edx,[esp]
  65.   mov  esi,[esp+4]
  66.   int  0x40
  67.   mov  eax,12
  68.   mov  ebx,2
  69.   int  0x40
  70. Menuet_open_file_dlg_loop:
  71.   mov  eax,10
  72.   int  0x40
  73.   dec  eax
  74.   jz   Menuet_open_file_dlg_redraw
  75.   dec  eax
  76.   jz   Menuet_open_file_dlg_key
  77.   dec  eax
  78.   jz   Menuet_open_file_dlg_end
  79.   jmp  Menuet_open_file_dlg_loop
  80. Menuet_open_file_dlg_key:
  81.   xor  edi,edi
  82. Menuet_open_file_dlg_key_loop:
  83.   mov  eax,2
  84.   int  0x40
  85.   test al,al
  86.   jnz  Menuet_open_file_dlg_key_end
  87.   cmp  ah,27
  88.   jz   Menuet_open_file_dlg_end
  89.   cmp  ah,13
  90.   jz   Menuet_open_file_dlg_apply
  91.   cmp  ah,8
  92.   jz   Menuet_open_file_dlg_key_bsp
  93.   cmp  ah,32
  94.   jna  Menuet_open_file_dlg_key_loop
  95.   mov  ebx,[esp+4]
  96.   cmp  ebx,[esp+8]
  97.   jb   Menuet_open_file_dlg_key_any
  98.   lea  esi,[ebx+2*ebx]
  99.   shr  esi,1
  100.   inc  esi
  101.   push eax
  102.   push esi
  103.   push dword [esp+8]
  104.   call @@Menuet@ReAlloc$qpvui
  105.   add  esp,8
  106.   mov  ecx,eax
  107.   pop  eax
  108.   test ecx,ecx
  109.   jz   Menuet_open_file_dlg_key
  110.   mov  [esp+8],esi
  111.   mov  [esp],ecx
  112. Menuet_open_file_dlg_key_any:
  113.   mov  esi,ebx
  114.   add  esi,[esp]
  115.   mov  byte [esi],ah
  116.   inc  ebx
  117.   mov  edi,1
  118.   mov  [esp+4],ebx
  119.   jmp  Menuet_open_file_dlg_key_loop
  120. Menuet_open_file_dlg_key_bsp:
  121.   mov  eax,[esp+4]
  122.   test eax,eax
  123.   jz   Menuet_open_file_dlg_key_loop
  124.   dec  eax
  125.   mov  edi,1
  126.   mov  [esp+4],eax
  127.   jmp  Menuet_open_file_dlg_key_loop
  128. Menuet_open_file_dlg_key_end:
  129.   test edi,edi
  130.   jnz  Menuet_open_file_dlg_redraw
  131.   jmp  Menuet_open_file_dlg_loop
  132. Menuet_open_file_dlg_apply:
  133.   mov  eax,[esp+4]
  134.   inc  eax
  135.   mov  [esp+8],eax
  136.   push eax
  137.   push dword [esp+4]
  138.   call @@Menuet@ReAlloc$qpvui
  139.   add  esp,8
  140.   test eax,eax
  141.   jz   Menuet_open_file_dlg_end
  142.   mov  eax,[esp]
  143.   mov  esi,eax
  144.   add  eax,[esp+4]
  145.   mov  byte [eax],0
  146.   add  esp,12
  147.   mov  ebx,[esp+20]
  148.   mov  dword [ebx],2
  149.   push dword [ebx+4]
  150.   call @@Menuet@Free$qpv
  151.   pop  ecx
  152.   mov  [ebx+4],esi
  153.   jmp  Menuet_open_file_dlg_invalidate
  154. Menuet_open_file_dlg_end:
  155.   call @@Menuet@Free$qpv
  156.   add  esp,12
  157.   mov  ebx,[esp+20]
  158.   mov  dword [ebx],1
  159. Menuet_open_file_dlg_invalidate:
  160.   push ebp
  161.   push dword 1
  162.   call @@Menuet@Invalidate$qippv
  163.   add  esp,8
  164. Menuet_open_file_dlg_ret:
  165.   pop  ebp
  166.   pop  edi
  167.   pop  esi
  168.   pop  ebx
  169.   ret
  170. Menuet_open_file_dlg_name:
  171.   db   'Open file'
  172. Menuet_open_file_dlg_name_end:
  173. enddef
  174.