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 $int 0x40
} }
inline fastcall dword WaitEventTimeout(EBX) inline dword WaitEventTimeout(dword time)
{ {
EAX = 23; EAX = 23;
EBX = time;
$int 0x40 $int 0x40
} }
@ -667,4 +668,4 @@ ______STOP______:
#ifndef INCLUDE_IPC_H #ifndef INCLUDE_IPC_H
#include "../lib/ipc.h" #include "../lib/ipc.h"
#endif #endif

View File

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