home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Zone / VRZONE.ISO / mac / PC / PCGLOVE / GLOVE / OBJGLV.ZIP / INCLUDE / WINGEST.HPP < prev    next >
C/C++ Source or Header  |  1993-05-11  |  3KB  |  94 lines

  1. //
  2. // WinGest.hpp:
  3. //    Interface Definition of classes TGestureDialog and winGestureActor.
  4. //    Example use of Object Glove and Court Jesture.
  5. //
  6. // Purpose:
  7. //    Outputs the names of Gestures into a Windows window (actually
  8. //    a dialog box).
  9. //
  10. // Compatibility:
  11. //    Windows only!
  12. //
  13. // Copyright 1993   Mark Thomas Pflaging
  14. //
  15. // Date:    3/22/93 (Release 3.0)
  16. //
  17. #ifndef __WINGEST_HPP
  18. #define __WINGEST_HPP
  19.  
  20. #include <owl.h>
  21. #include <static.h>
  22. #include <hashtbl.h>
  23.  
  24. #include "gestset.hpp"
  25. #include "namenumb.hpp"
  26. #include "winres.h"
  27. #include "instance.hpp"
  28.  
  29. #define NUM_GEST_SPOTS        4
  30.  
  31. class winGestureActor;
  32.  
  33. _CLASSDEF(TGestureDialog)
  34. class TGestureDialog : public TDialog {
  35.     TStatic *Spots[NUM_GEST_SPOTS];
  36.         winGestureActor * where;
  37. public:
  38.     TGestureDialog(PTWindowsObject AParent, int ResourceID, PTModule AModule, winGestureActor * where_arg);
  39.     ~TGestureDialog();
  40.     void infoDisplay(char * name, Boolean onOrOff);
  41.     void draw(char ** strings);
  42. };
  43.  
  44. _CLASSDEF(TDemoWindow)
  45.  
  46. class winNameGest : public NamedGesture
  47. {
  48.     static HashTable * table;
  49. public:
  50.     winNameGest(char * name = NULL) : NamedGesture(name) {}
  51.     virtual void Register(Boolean onOrOff);
  52.     static void setTable(HashTable * table_arg) { table = table_arg; }
  53. };
  54.  
  55. class CntNamedGestAct : public InstanceCounter<NamedGestSet> {
  56. public:
  57.     CntNamedGestAct(char * name = NULL) {
  58.         GestureSet::setName(name);
  59.     }
  60. };
  61.  
  62. // MAX_NUM_SOUNDS must be a prime number!
  63. #define MAX_NUM_SOUNDS    1103
  64.  
  65. class winGestureActor : public CntNamedGestAct, public HashTable {
  66.     TDemoWindow * where;
  67.     PTGestureDialog DataPlace1;
  68.     static Boolean addSound(Key & which, void * gset);
  69.     char * strings[NUM_GEST_SPOTS];
  70.  
  71. public:
  72.     winGestureActor(InitFile & ini, char * gest_section, char * sound_section, TDemoWindow & arg);
  73.     winGestureActor(InitFile & ini, char * gest_section, char * sound_section);
  74.     void InitTable(InitFile & ini, char * gest_section, char * sound_section);
  75.     void setWindow(TDemoWindow & arg) { where = &arg; }
  76.     void displayDataBox();
  77.     void closeDataBox();
  78.     void Setup() {
  79.         displayDataBox();
  80.         }
  81.     virtual void Register(Gesture & found, Boolean offOrOn) {
  82.         if (DataPlace1) DataPlace1->infoDisplay(((NamedGesture &)found).getName(), offOrOn);
  83.         else infoDisplay(((NamedGesture &)found).getName(), offOrOn);
  84.         winNameGest::setTable(this);
  85.         NamedGestSet::Register(found, offOrOn);
  86.     }
  87.     virtual Gesture & CreateElement(Key & which) {
  88.         return *(new winNameGest(which.getName()));
  89.         }
  90.     char ** infoDisplay(char * name, Boolean onOrOff);
  91. };
  92.  
  93. #endif
  94.