From 7d3a3c409c6492db6a3caabc7e9037b79ae7422d Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 28 Nov 2000 14:52:15 +0000 Subject: More complex tests --- dnn/test.cc | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'dnn') diff --git a/dnn/test.cc b/dnn/test.cc index e4c1b25..2697f1f 100644 --- a/dnn/test.cc +++ b/dnn/test.cc @@ -1,5 +1,12 @@ +#include "ccu.h" #include "dnn.h" +#include +#include "Loop.h" +#include "Disposable.h" + +#if 0 +#if 0 class A { public: void foo (DnnEvent&); @@ -10,3 +17,71 @@ main () A a; DnnReactionOf r (a, &A::foo); } + +#else + +DnnEventFeature evf [] = {{"X", sizeof (int)}, {"Y", sizeof (int)}}; +DnnEventType click ("click", 2, evf); + +class DnnClickEvent : public DnnEvent { +public: + int X, Y; + inline DnnClickEvent (int x, int y) : DnnEvent (&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 () +{ + DnnEvent 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); + DnnClickEvent 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 DnnDisposable { +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 (); + DnnStop (); + } + i++; +} + + +main () +{ + DnnOpen (); + a = new A; + DnnMpx->AddHook (foo); + DnnLoop (); + DnnClose (); +} + +#endif -- cgit v1.1