CtrlDemo, EditboxEx, TooltipDemo: - code cleaning, library import optimization Reviewed-on: #242 Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com> Reviewed-by: Ivan B <dunkaist@noreply.localhost> Co-authored-by: IgorA <aie85playm@gmail.com> Co-committed-by: IgorA <aie85playm@gmail.com>
157 lines
4.8 KiB
NASM
157 lines
4.8 KiB
NASM
; <20>à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
|
||
; ®§¢ã稢 ¥â ª®¤ ¦ ⮩ ª« ¢¨è¨
|
||
; - ¯¥à¥¤¥« ª ª ¯à¨¬¥à ¨á¯®«ì§®¢ ¨ï tooltip
|
||
|
||
use32 ; ¢ª«îç¨âì 32-¡¨âë© à¥¦¨¬ áᥬ¡«¥à
|
||
org 0 ; ¤à¥á æ¨ï á ã«ï
|
||
|
||
db 'MENUET01' ; 8-¡ ©âë© ¨¤¥â¨ä¨ª â®à MenuetOS
|
||
dd 1 ; ¢¥àá¨ï § £®«®¢ª (¢á¥£¤ 1)
|
||
dd START ; ¤à¥á ¯¥à¢®© ª®¬ ¤ë
|
||
dd CODE_END ; à §¬¥à ¯à®£à ¬¬ë
|
||
dd DATA_END ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
|
||
dd STACK_END ; ¤à¥á ¢¥àè¨ë áâíª
|
||
dd 0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢
|
||
dd cur_dir_path ; 㪠§ â¥«ì ¤à¥á, ªã¤ ¯®¬¥é ¥âáï áâப , ᮤ¥à¦ é ï ¯ãâì ¤® ¯à®£à ¬¬ë ¢ ¬®¬¥â § ¯ã᪠.
|
||
|
||
include '../../../../../proc32.inc'
|
||
include '../../../../../macros.inc'
|
||
include '../../../../../KOSfuncs.inc'
|
||
include '../../../../../dll.inc' ; malloc fn
|
||
include '../../trunk/box_lib.mac'
|
||
include '../../../../../load_lib.mac'
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
;--- <20>€—€‹Ž <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||
;---------------------------------------------------------------------
|
||
; íâ®â ¬ ªà®á ®¡ï§ ⥫¥ ¤«ï ¢á¥å ª®¬¯®¥â®¢, ¨á¯®«ì§ãîé¨å heap
|
||
; ªà®¬¥ ⮣®, ®¡ï§ â¥«ì® ¨¬®àâ¨à®¢ âì lib_init - ¯à¨ ¨¬¯®à⥠®¯à¥¤¥«ïîâáï
|
||
; äãªæ¨¨ 娯 ¤«ï ¡¨¡«¨®â¥ª¨
|
||
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||
|
||
START:
|
||
;---------------------------------------------------------------------
|
||
;--- ˆ<>ˆ–ˆ€‹ˆ‡€–ˆŸ ----------------------------------------
|
||
;---------------------------------------------------------------------
|
||
mcall SF_SYS_MISC, SSF_HEAP_INIT
|
||
|
||
mcall SF_SET_EVENTS_MASK, $C0000027 ; ¬ ᪠ᮡë⨩ - ¬ëèì ⮫쪮 ¢ ªâ¨¢®¬ ®ª¥
|
||
|
||
sys_load_library lib_name, lib_path, sys_path, import_box_lib
|
||
test eax,eax
|
||
jz @f
|
||
mcall SF_TERMINATE_PROCESS
|
||
@@:
|
||
|
||
|
||
invoke tooltip_init, redbox_tt ; only begin of list
|
||
|
||
red: ; ¯¥à¥à¨á®¢ âì ®ª®
|
||
|
||
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª
|
||
|
||
;---------------------------------------------------------------------
|
||
;--- –ˆŠ‹ Ž<><C5BD>€<EFBFBD>Ž’Šˆ ‘Ž<E28098>›’ˆ‰ ----------------------------------------
|
||
;---------------------------------------------------------------------
|
||
|
||
still:
|
||
mcall SF_WAIT_EVENT_TIMEOUT, 5 ; ¦¤ âì ᮡëâ¨ï ¥ ¡®«¥¥ 祬 0.05á
|
||
test eax, eax ; ¥â ᮡë⨩ - ¯à®¢¥à¨âì à¨á®¢ ¨¥ âã«â¨¯®¢ ¯® â ©¬¥àã
|
||
je yield
|
||
cmp eax,EV_REDRAW
|
||
je red ; ¥á«¨ ¤ - ¬¥âªã red
|
||
cmp eax,EV_KEY
|
||
je key ; ¥á«¨ ¤ - key
|
||
cmp eax,EV_BUTTON
|
||
je button ; ¥á«¨ ¤ - button
|
||
cmp eax,EV_MOUSE
|
||
je mouse ; ¥á«¨ ¤ - mouse
|
||
|
||
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横«
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
yield:
|
||
invoke tooltip_test_show, redbox_tt
|
||
jmp still ; ¢¥àãâìáï ª ç «ã æ¨ª«
|
||
|
||
mouse:
|
||
invoke tooltip_mouse, redbox_tt
|
||
jmp still ; ¢¥àãâìáï ª ç «ã æ¨ª«
|
||
|
||
key: ; ¦ â ª« ¢¨è ª« ¢¨ âãà¥
|
||
mcall SF_GET_KEY ; áç¨â âì ª®¤ ᨬ¢®« (¢ ah)
|
||
|
||
jmp still ; ¢¥àãâìáï ª ç «ã æ¨ª«
|
||
|
||
;---------------------------------------------------------------------
|
||
|
||
button:
|
||
mcall SF_GET_BUTTON ; ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨
|
||
|
||
cmp ah, 1 ; ¥á«¨ <20>… ¦ â ª®¯ª á ®¬¥à®¬ 1,
|
||
jne still ; ¢¥àãâìáï
|
||
|
||
pexit:
|
||
invoke tooltip_delete, redbox_tt ; ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
|
||
mcall SF_TERMINATE_PROCESS
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
;--- Ž<><C5BD>…„…‹…<E280B9>ˆ… ˆ Ž’<C5BD>ˆ‘ނЀ ŽŠ<C5BD>€ ----------------------------------
|
||
;---------------------------------------------------------------------
|
||
|
||
draw_window:
|
||
|
||
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||
|
||
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors
|
||
|
||
mov edx, [sc.work] ; 梥â ä®
|
||
or edx, 0x33000000 ; ¨ ⨯ ®ª 3
|
||
mcall SF_CREATE_WINDOW, <200,300>, <200,150>, , ,title
|
||
|
||
; ¢ë¢®¤ ª¢ ¤à ⨪®¢
|
||
mcall SF_DRAW_RECT, <60,50>, <50,50>, $FF0000
|
||
mcall SF_DRAW_RECT, <140,50>, <50,50>, $FF
|
||
|
||
|
||
mcall SF_REDRAW, SSF_END_DRAW
|
||
|
||
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
|
||
|
||
|
||
CODE_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë; --------------------------------------------;
|
||
|
||
; ---------------------------------------------------------------------------- ;
|
||
;---------------------------------------------------------------------
|
||
;--- „€<E2809E><E282AC>›… <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||
;---------------------------------------------------------------------
|
||
|
||
sys_path db '/sys/lib/'
|
||
;sys_path db '/tmp0/1/'
|
||
lib_name db 'box_lib.obj',0
|
||
cur_dir_path rb 4096
|
||
lib_path rb 4096
|
||
|
||
include '../../import.inc' ;import_box_lib
|
||
|
||
|
||
;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
|
||
redbox_tt tooltip redboxtxt, blubox_tt, 60, 50, 50, 50, 0, $FFF473, 100
|
||
blubox_tt tooltip bluboxtxt, 0, 140, 50, 50, 50, $110000FF, $FFF473, 100
|
||
|
||
redboxtxt db 'Red Box Tooltip', 13, 'May be multilined', 13, 13, 'Even with empty lines', 0
|
||
bluboxtxt db 'Blue Box Tooltip', 0
|
||
|
||
sc system_colors
|
||
|
||
title db 'Toooltip demo',0
|
||
|
||
; stack----------------------------------------------------------------------- ;
|
||
rb 4096
|
||
STACK_END dd ?
|
||
|
||
DATA_END: ; ¬¥âª ª®æ ¤ ëå ¯à®£à ¬¬ë; ------------------------------------ ;
|