forked from KolibriOS/kolibrios
c2fbdf929c
git-svn-id: svn://kolibrios.org@1805 a494cfbc-eb01-0410-851d-a64ba20cac60
75 lines
2.6 KiB
PHP
75 lines
2.6 KiB
PHP
;#***************
|
|
;#* BNC.MAIN()
|
|
;#***************
|
|
cTxt equ 0x10000000
|
|
cTxtW equ 0x10FFFFFF
|
|
|
|
macro main_loop
|
|
{
|
|
draw_window:
|
|
redraw_begin
|
|
;------------------------------
|
|
;--- MainWindow
|
|
mcall 0,100*65536+250,100*65536+250,0x02FFFFFF ,0x808899AA ,0xFFAAcc
|
|
;--- MainWindow TitleBar
|
|
mcall 4,8*65536+8,0x00224422,header,20
|
|
;--- Button - Close MainWindow
|
|
mcall 8,230*65536+12, 5*65536+12, 100 ,0xFF6611
|
|
;--- Button - "New" ...
|
|
mcall 8,190*65536+50,25*65536+15, 200 ,0xAA66CC
|
|
mcall 4,205*65536+30,cTxtW,new,3
|
|
;--- Button - "Turn" ...
|
|
;mcall 8,190*65536+50,50*65536+15, 150 ,0x116611
|
|
;-----------------------------1234-secret-number---show
|
|
; mcall 4, 50*65536+30,cTxt ,nA,4
|
|
;-----------------------------9-lines-
|
|
call paint_list
|
|
redraw_end
|
|
;=============================
|
|
event_wait:
|
|
mcall 23,100
|
|
;-------------------------------------------------------------------------------
|
|
; event in eax - and what will happen
|
|
;-------------------------------------------------------------------------------
|
|
EventIs EV_REDRAW,draw_window ; redraw window
|
|
EventIs EV_KEY,key ; pressed key
|
|
EventIs EV_BUTTON,button ; one clicks button
|
|
jmp event_wait ; returns at point of waiting for
|
|
;-------------------------------------------------------------------------------
|
|
; Events handler
|
|
;-------------------------------------------------------------------------------
|
|
key: ;
|
|
mov eax,2 ; key code in ah.
|
|
int 0x40 ;
|
|
cmp ah,27 ; ESC?
|
|
je close ; exit on ESC
|
|
|
|
call input ; input 0-9,Enter,<_BackSpace
|
|
|
|
jmp draw_window ; event_wait ;
|
|
button: ;
|
|
mov eax,17 ; button ID in ah
|
|
int 0x40 ;
|
|
;-------------------------------------------------------------------------------
|
|
; Buttons handler
|
|
;-------------------------------------------------------------------------------
|
|
cmp ah,100 ; id=100("Close window")?
|
|
jne noclose ;
|
|
close: ;
|
|
mov eax,-1 ; CLOSE all
|
|
int 0x40 ;
|
|
noclose: ;
|
|
cmp ah,150 ; id=150 "Turn"
|
|
je @F
|
|
call rnew ; id=200 "New" ->nA
|
|
|
|
call clears
|
|
jmp draw_window ;event_wait
|
|
|
|
@@:
|
|
call paint_list
|
|
jmp event_wait
|
|
;
|
|
}
|
|
|