ROOT logo
// $Id: Spiritio.h 2341 2010-01-24 01:28:32Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef Var1_Spiritio_H
#define Var1_Spiritio_H

#include <Glasses/ZNode.h>
#include <Stones/TimeMakerClient.h>
#include <Stones/KeyHandling.h>
#include <Eye/Ray.h>

class Camera;
class TSPupilInfo;

class Spiritio : public ZNode,
                 public TimeMakerClient
{
  MAC_RNR_FRIENDS(Spiritio);

public:
  enum PrivRayQN_e  { PRQN_offset = RayNS::RQN_user_0,
		      PRQN_release_keys
  };

private:
  void _init();

protected:
  // Do we need pupil-info? Or TSPupilInfo even.
  // Yes, if we want to modify global scene, overlay, ...
  // Or ... to get mouse ray vectors!
  // But heym if/when Camera is done right, the info should be
  // put there!
  ZLink<TSPupilInfo> mPupilInfo; // X{GS} L{}

  // link or virtual to get camera (Camera or ZNode?).
  ZLink<Camera>   mCamera; // X{GS} L{}

  Bool_t          bActive;               // X{G}  7 BoolOut();
  Bool_t          mEatNonBoundKeyEvents; // X{GS} 7 Bool()

  typedef vector<KeyHandling::KeyInfo*> vpKeyInfo_t;
  typedef vpKeyInfo_t::iterator         vpKeyInfo_i;

  vpKeyInfo_t mKeys; //!

  KeyHandling::KeyInfo& RegisterKey(const TString& tag, const TString& desc,
				    KeyHandling::AKeyCallback* foo, Int_t uid=0);

  Int_t FindKey(const TString& tag);

  static UInt_t sDoubleClickTime;

public:
  Spiritio(const Text_t* n="Spiritio", const Text_t* t=0);
  virtual ~Spiritio();

  virtual void Activate();
  virtual void Deactivate();

  virtual void HandleKey(Int_t key_idx, Bool_t downp, UInt_t time_elapsed); // X{E}

  virtual void ReleaseAllKeys(); // X{E}

#include "Spiritio.h7"
  ClassDef(Spiritio, 1);
}; // endclass Spiritio

#endif
 Spiritio.h:1
 Spiritio.h:2
 Spiritio.h:3
 Spiritio.h:4
 Spiritio.h:5
 Spiritio.h:6
 Spiritio.h:7
 Spiritio.h:8
 Spiritio.h:9
 Spiritio.h:10
 Spiritio.h:11
 Spiritio.h:12
 Spiritio.h:13
 Spiritio.h:14
 Spiritio.h:15
 Spiritio.h:16
 Spiritio.h:17
 Spiritio.h:18
 Spiritio.h:19
 Spiritio.h:20
 Spiritio.h:21
 Spiritio.h:22
 Spiritio.h:23
 Spiritio.h:24
 Spiritio.h:25
 Spiritio.h:26
 Spiritio.h:27
 Spiritio.h:28
 Spiritio.h:29
 Spiritio.h:30
 Spiritio.h:31
 Spiritio.h:32
 Spiritio.h:33
 Spiritio.h:34
 Spiritio.h:35
 Spiritio.h:36
 Spiritio.h:37
 Spiritio.h:38
 Spiritio.h:39
 Spiritio.h:40
 Spiritio.h:41
 Spiritio.h:42
 Spiritio.h:43
 Spiritio.h:44
 Spiritio.h:45
 Spiritio.h:46
 Spiritio.h:47
 Spiritio.h:48
 Spiritio.h:49
 Spiritio.h:50
 Spiritio.h:51
 Spiritio.h:52
 Spiritio.h:53
 Spiritio.h:54
 Spiritio.h:55
 Spiritio.h:56
 Spiritio.h:57
 Spiritio.h:58
 Spiritio.h:59
 Spiritio.h:60
 Spiritio.h:61
 Spiritio.h:62
 Spiritio.h:63
 Spiritio.h:64
 Spiritio.h:65
 Spiritio.h:66
 Spiritio.h:67
 Spiritio.h:68
 Spiritio.h:69
 Spiritio.h:70
 Spiritio.h:71
 Spiritio.h:72