Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1769 yogev_ezra 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