fix error and add new example

git-svn-id: svn://kolibrios.org@8043 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pavelyakov 2020-06-25 10:18:33 +00:00
parent 860d73816e
commit ffa28fc962
3 changed files with 57 additions and 14 deletions

View File

@ -0,0 +1,42 @@
#define MEMSIZE 4096*10
#include "../lib/io.h"
#include "../lib/window.h"
#include "../lib/timers.h"
window win1=0;
dword timeID = 0;
int t = 0;
void intervalTest()
{
t++;
if (t==10) clearInterval(timeID);
DrawBar(100, 70, 100, 100, 0xDED7CE);
WriteText(100,70,0x90,0,itoa(t));
}
void main()
{
word id=0;
timeID = setInterval(#intervalTest, 100); // 100 => 1s
loop()
{
switch(WaitEventTimeout(1))
{
case evButton:
id=GetButtonID();
IF (id==1) ExitProcess();
break;
case evKey:
GetKeys();
break;
case evReDraw:
DefineAndDrawWindow(20,30,500,600,WINDOW_NORMAL,0xDED7CE,"Window",0);
if (!t) WriteText(100,70,0x90,0,"Start!");
break;
}
Timer.revise();
}
}

View File

@ -94,9 +94,10 @@ inline fastcall dword CheckEvent()
$int 0x40
}
inline fastcall dword WaitEventTimeout(EBX)
inline dword WaitEventTimeout(dword time)
{
EAX = 23;
EBX = time;
$int 0x40
}
@ -667,4 +668,4 @@ ______STOP______:
#ifndef INCLUDE_IPC_H
#include "../lib/ipc.h"
#endif
#endif

View File

@ -12,13 +12,13 @@
:struct Timers
{
dword time;
dword alloc;
dword count;
dword size;
void revise(void);
void getTime(void);
dword set(dword,dword,byte);
dword clear(dword);
dword alloc;
dword count;
dword size;
void revise(void);
void getTime(void);
dword set(dword,dword,byte);
dword clear(dword);
};
void Timers::getTime(void)
{
@ -88,20 +88,20 @@ dword Timers::clear(dword id)
}
// Analogs JS Functions
:Timers Time = {0};
:Timers Timer = {0};
inline dword setTimeout(dword function, time)
{
RETURN Time.set(function, time, 0);
RETURN Timer.set(function, time, 0);
}
inline dword setInterval(dword function, time)
{
RETURN Time.set(function, time, 1);
RETURN Timer.set(function, time, 1);
}
inline dword clearTimeout(dword id)
{
RETURN Time.clear(id);
RETURN Timer.clear(id);
}
inline dword clearInterval(dword id)
{
RETURN Time.clear(id);
RETURN Timer.clear(id);
}