#include "ivl.h" #include "dnn.h" #include #include "Loop.h" #include "Disposable.h" #if 0 #if 0 class A { public: void foo (IvlEvent&); }; main () { A a; IvlReactionOf r (a, &A::foo); } #else IvlEventFeature evf [] = {{"X", sizeof (int)}, {"Y", sizeof (int)}}; IvlEventType click ("click", 2, evf); class IvlClickEvent : public IvlEvent { public: int X, Y; inline IvlClickEvent (int x, int y) : IvlEvent (&click, false), X (x), Y (y) {} inline void SetX (int x) { X = x; } inline void SetY (int y) { Y = y; } inline int GetX () const { return X; } inline int GetY () const { return Y; } }; main () { IvlEvent ev (&click); int x = 3, y = 5; ev.SetFeature (0, &x); ev.SetFeature (1, &y); int x2, y2; ev.GetFeature (0, &x2); ev.GetFeature (1, &y2); printf ("(%d, %d)\n", x2, y2); IvlClickEvent ev2 (3, 5); int x22, y22; ev.GetFeature (0, &x22); ev.GetFeature (1, &y22); printf ("(%d, %d)\n", x22, y22); } #endif #else class A : public IvlDisposable { public: A () { printf ("A::A\n"); } ~A () { printf ("A::~A\n"); } }; A* a; void foo () { static int i = 0; printf ("%d\n", i); if (i >= 5) { a->Trash (); IvlStop (); } i++; } main () { IvlOpen (); a = new A; IvlMpx->AddHook (foo); IvlLoop (); IvlClose (); } #endif