Subversion Repositories Kolibri OS

Rev

Rev 451 | Rev 600 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
308 Lrz 1
; 01.02.07 - обновлён editbox
2
; 31.01.07 - исправлена некорректная отрисовка при большом значении высоты скина
3
;            выравнивание снизу относительно рабочей области экрана
4
window_y=67
205 heavyiron 5
;window_x=320
308 Lrz 6
window_x=640
493 Lrz 7
;--- другие макросы ---
8
include '../../../develop/examples/editbox/trunk/editbox.inc'
9
;include 'editbox.inc'
10
include 'txtbut.inc'
11
include '../../../macros.inc'
12
;include 'macros.inc'
13
include 'run.mac'
309 heavyiron 14
include 'lang.inc'
493 Lrz 15
        meos_app_start
16
        use_edit_box procinfo,22,5
17
        use_txt_button
18
        code
19
        cmp     [par],byte 0
20
        jne     read_par
21
        mcall   40,EVM_MOUSE+EVM_BUTTON+EVM_KEY+EVM_REDRAW
205 heavyiron 22
red:
493 Lrz 23
        mcall   48,3,sc,40
24
        set_sys_colors_txt_button run_but,sc
25
        push    dword [sc.work_graph]
26
        pop     [input_fn.focus_border_color]
27
        call    draw_window
205 heavyiron 28
still:
493 Lrz 29
        mcall   10
30
        cmp al,0x1    ;если изменилось положение окна
31
        jz red
32
        cmp al,0x2    ;если нажата клавиша то перейти
33
        jz key
34
        cmp al,0x3    ;если нажата кнопка то перейти
35
        jz button
36
        mouse_edit_box input_fn
37
        jmp still    ;если ничего из перечисленного то снова в цикл
205 heavyiron 38
key:
493 Lrz 39
        mcall   2
40
        cmp     ah,13
41
        je      run
42
        key_edit_box input_fn
43
        jmp     still
205 heavyiron 44
button:
493 Lrz 45
        mcall   17
46
        dec     ah
47
        jz      close
48
        dec     ah
49
        jz      run
50
        jmp     still
31 halyavin 51
 
205 heavyiron 52
read_par:
493 Lrz 53
        mov     esi,par
54
        mov     edi,fn
55
        mov     ecx,256
56
        rep     movsb
205 heavyiron 57
run:
493 Lrz 58
        xor     eax,eax
59
        mov     edi,file_info.name
60
        mov     ecx,512
61
        rep     stosb
62
        mov     edi,run_par
63
        mov     ecx,256
64
        rep     stosb
31 halyavin 65
 
493 Lrz 66
        mov     esi,fn
67
        mov     edi,file_info.name
68
        cmp     [esi],byte '"'
69
        je      copy_fn_with_spaces
205 heavyiron 70
copy_fn:
493 Lrz 71
        cmp     [esi],byte ' '
72
        je      .stop
73
        cmp     [esi],byte 0
74
        je      .stop
75
        mov     al,[esi]
76
        mov     [edi],al
77
        inc     esi
78
        inc     edi
79
        jmp     copy_fn
205 heavyiron 80
.stop:
31 halyavin 81
 
493 Lrz 82
        jmp     copy_par
31 halyavin 83
 
205 heavyiron 84
copy_fn_with_spaces:
493 Lrz 85
        inc     esi
205 heavyiron 86
@@:
493 Lrz 87
        cmp     [esi],byte '"'
88
        je      .stop
89
        cmp     [esi],byte 0
90
        je      .stop
91
        mov     al,[esi]
92
        mov     [edi],al
93
        inc     esi
94
        inc     edi
95
        jmp     @b
205 heavyiron 96
.stop:
31 halyavin 97
 
205 heavyiron 98
copy_par:
99
@@:
493 Lrz 100
        inc     esi
101
        cmp     [esi],byte ' '
102
        je      @b
103
        mov     edi,run_par
205 heavyiron 104
@@:
493 Lrz 105
        cmp     [esi],byte 0
106
        je      .stop
107
        mov     al,[esi]
108
        mov     [edi],al
109
        inc     esi
110
        inc     edi
111
        jmp     @b
205 heavyiron 112
.stop:
493 Lrz 113
        mcall   70,file_info
31 halyavin 114
 
493 Lrz 115
        cmp     eax,0
116
        jl      error
117
        mov     [status],run_ok
118
        call    draw_status
119
        jmp     still
205 heavyiron 120
close:
493 Lrz 121
        mcall -1
31 halyavin 122
 
205 heavyiron 123
error:
493 Lrz 124
        neg     eax
125
        cmp_err 3,bad_file_sys
126
        cmp_err 5,file_not_find
127
        cmp_err 9,bad_fat_table
128
        cmp_err 10,acces_denyied
129
        cmp_err 11,device_error
130
        cmp_err 30,out_of_memory
131
        cmp_err 31,file_not_executable
132
        cmp_err 32,many_processes
31 halyavin 133
 
493 Lrz 134
        call    draw_status
135
        jmp     still
31 halyavin 136
 
137
draw_window:
493 Lrz 138
        mcall   48,5
139
        mov     si,bx
31 halyavin 140
 
493 Lrz 141
        mcall   12,1
142
        mcall   48,4
143
        mov     dx,ax
144
        mcall   14
145
        xor     ecx,ecx
146
        sub     cx,window_y+2
147
        sub     cx,dx
148
        add     cx,si
149
        shl     ecx,16
150
        mov     cx,dx
151
        add     cx,window_y
152
        shr     eax,16
153
        mov     bx,ax
154
        sub     bx,window_x
155
        shl     ebx,15
156
        mov     bx,window_x
157
        mov     edx,[sc.work]
158
        or      edx,0x33000000
159
        xor     esi,esi
160
        mov     edi,grab_text
161
        mcall   0
31 halyavin 162
 
493 Lrz 163
        mcall   9,procinfo,-1
31 halyavin 164
 
493 Lrz 165
        mov     eax,[procinfo.box.width]
166
        sub     eax,20
167
        mov     [input_fn.width],eax
168
        mov     [run_but.width],ax
31 halyavin 169
 
493 Lrz 170
        xor     bx,bx
171
        shl     ebx,16
172
        mov     bx,ax
173
        add     bx,10
174
        mov     cx,45
175
        push    cx
176
        shl     ecx,16
177
        pop     cx
178
        mov     edx,[sc.work_graph]
179
        mcall   38
180
        draw_edit_box input_fn
181
        draw_txt_button run_but
31 halyavin 182
 
493 Lrz 183
        call    draw_status_text
31 halyavin 184
 
493 Lrz 185
        mcall   12,2
31 halyavin 186
ret
187
 
205 heavyiron 188
draw_status:
493 Lrz 189
        mov     ebx,[procinfo.box.width]
190
        sub     bx,10
191
        mov     ecx,(50)*65536+12
192
        mov     edx,[sc.work]
193
        mcall   13
205 heavyiron 194
draw_status_text:
493 Lrz 195
        mov     edx,[status]
196
        xor     esi,esi
205 heavyiron 197
@@:
493 Lrz 198
        cmp     [edx+esi],byte 0
199
        je      @f
200
        inc     esi
201
        jmp     @b
205 heavyiron 202
@@:
493 Lrz 203
        mov     ecx,[sc.work_text]
204
        mcall   4,5*65536+(50)
31 halyavin 205
ret
206
 
308 Lrz 207
run_but txt_button 0,5,15,25,2,0,0,run_but_text,
493 Lrz 208
input_fn edit_box 0,5,5,0xffffff,0x6a9480,0,0xaaaaaa,0,511,fn,ed_focus+ed_always_focus
209
mouse_flag: dd 0x0
31 halyavin 210
 
309 heavyiron 211
if lang eq ru
205 heavyiron 212
hello db 'Введите полный путь к файлу и нажмите Enter',0
213
bad_file_sys db 'Неизвестная файловая система',0 ; 3
493 Lrz 214
file_not_find db 'Файл не найден',0              ; 5
215
bad_fat_table db 'Таблица FAT разрушена',0       ; 9
216
acces_denyied db 'Доступ запрещен',0             ; 10
217
device_error db 'Ошибка устройства',0            ; 11
218
out_of_memory db 'Недостаточно памяти',0         ; 30
205 heavyiron 219
file_not_executable db 'Файл не является исполняемым',0 ; 31
493 Lrz 220
many_processes db 'Слишком много процессов',0    ; 32
308 Lrz 221
run_ok db 'Программа успешно запущена',0
222
grab_text db 'ЗАПУСК ПРОГРАММЫ',0
309 heavyiron 223
run_but_text db 'ЗАПУСТИТЬ',0
224
else
225
hello db 'Enter full path to file and press ',0
226
bad_file_sys db 'Unknown file system',0                ; 3
227
file_not_find db 'File not found',0                    ; 5
228
bad_fat_table db 'FAT table corrupted',0               ; 9
229
acces_denyied db 'Access denied',0                     ; 10
230
device_error db 'Device error',0                       ; 11
231
out_of_memory db 'Out of memory',0                     ; 30
232
file_not_executable db 'File is not executable',0      ; 31
233
many_processes db 'Too many processes',0               ; 32
234
run_ok db 'The program was started successfully',0
235
grab_text db 'RUN',0
236
run_but_text db 'RUN',0
237
end if
205 heavyiron 238
status dd hello
31 halyavin 239
 
205 heavyiron 240
file_info:
241
.mode dd 7
242
.flags dd 0
243
.par dd run_par
244
dd 0,0
245
.name rb 512
31 halyavin 246
 
205 heavyiron 247
flags dw ?
31 halyavin 248
 
493 Lrz 249
sc system_colors
451 heavyiron 250
 
493 Lrz 251
procinfo process_information
31 halyavin 252
 
205 heavyiron 253
run_par rb 256
254
par rb 256
493 Lrz 255
fn rb 512
256
meos_app_end
257
udata