// C++ code Copyright (C) David R. Evans G4AMJ/NQ0I

#ifndef EVENTH
#define EVENTH

// event manipulator class

#include <defines.h>

#include <suntool/sunview.h>

class event
{ Event* e;
  
public:
  event(void);
  event(Event*);
  
  ~event(void) { destroy(e); };

// get values
  int code(void) { return event_id(e); }
  int flags(void) { return event_flags(e); }
  int shiftmask(void) { return event_shiftmask(e); }
  int x(void) { return event_x(e); }
  int y(void) { return event_y(e); }

// set values
  event& code(int n) { event_set_id(e, n); return *this; } 
  event& shiftmask(int n) { event_set_shiftmask(e, n); return *this; } 
  event& x(int n) { event_set_x(e, n); return *this; }
  event& y(int n) { event_set_y(e, n); return *this; }
  event& sec(int n) { e->ie_time.tv_sec = n; return *this; }
  event& usec(int n) { e->ie_time.tv_usec = n; return *this; }
  operator Event*() { return e; }
};

#endif
