home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C++ Games Programming
/
CPPGAMES.ISO
/
thx
/
include
/
director.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-08
|
3KB
|
93 lines
// ----------- director.h
#ifndef DIRECTOR_H
#define DIRECTOR_H
#include <typeinfo.h>
#include "keyfold.h"
#include "kdfold.h"
#include "timefold.h"
#include "msgfold.h"
#include "mcfold.h"
#include "mmfold.h"
#include "jsfold.h"
#include "netfold.h"
#include "hand.h"
// --- director navigation classes (cannot be instantiated)
class NextDirector { NextDirector() { } };
class PrevDirector { PrevDirector() { } };
class FirstDirector { FirstDirector() { } };
class LastDirector { LastDirector() { } };
class StopDirector { StopDirector() { } };
class Director : public Hand {
void set_keydownmode(int md);
void add_keystroke_cue(Hand*,callback,int);
void del_keystroke_cue(Hand*,callback,int);
void add_keydown_cue(Hand*,callback,int);
void del_keydown_cue(Hand*,callback,int);
void add_timer_cue(Hand*,callback,int);
void del_timer_cue(Hand*,callback,int);
void add_message_cue(Hand*,callback,int);
void del_message_cue(Hand*,callback,int);
void delete_hand(Hand*);
void submit_message(int,int,int);
void add_mouseclick_cue(Hand*,callback,int);
void del_mouseclick_cue(Hand*,callback,int);
void add_mousemove_cue(Hand*,callback);
void del_mousemove_cue(Hand*,callback);
void add_joystickbutton_cue(Hand*,callback,int);
void del_joystickbutton_cue(Hand*,callback,int);
void add_joystickmove_cue(Hand*,callback);
void del_joystickmove_cue(Hand*,callback);
void add_netpack_cue(Hand*,callback,int);
void del_netpack_cue(Hand*,callback,int);
void post_netpacket(p);
KeystrokeFolder keyinfo; // director's key subscriptions
HotkeyFolder kdowninfo; // "hotkey" subscriptions
TimerFolder timeinfo; // timer subscriptions
MessageFolder msginfo; // message subscriptions
MouseclickFolder mouseclickinfo;
MousemoveFolder mousemoveinfo;
JoystickFolder joystickinfo;
NetpackFolder netpackinfo;
int downmode; // flag for keyboard mode
int done; // true while director in control
const Type_info *next_director;
friend class Hand;
friend class Theatrix;
protected:
Director();
virtual ~Director() { }
virtual void take_over();
virtual void display() { }
virtual void hide() { }
virtual void iterate_director() { }
virtual const Type_info& get_next_director()
{
if (next_director)
return *next_director;
return typeid(StopDirector);
}
void set_next_director(const Type_info *dir)
{ next_director = dir; }
int next_director_set()
{ return next_director != 0; }
void quit()
{ done=1; }
};
#endif