30 #ifndef MFDHUDDRAWER_HPP
31 #define MFDHUDDRAWER_HPP
33 #include "Orbitersdk.h"
34 #include "IMFDDrawsHUD.hpp"
67 static void FocusChanged(OBJHANDLE new_focus, OBJHANDLE old_focus);
78 virtual void clbkSetClassCaps (FILEHANDLE cfg) {};
79 virtual void clbkSaveState (FILEHANDLE scn) {};
80 virtual void clbkLoadStateEx (FILEHANDLE scn,
void *status) {};
81 virtual void clbkSetStateEx (
const void *status) {};
82 virtual void clbkPostCreation () {};
83 virtual void clbkFocusChanged (
bool getfocus, OBJHANDLE hNewVessel, OBJHANDLE hOldVessel) {};
84 virtual void clbkPreStep (
double simt,
double simdt,
double mjd) {};
85 virtual void clbkPostStep (
double simt,
double simdt,
double mjd) {};
86 virtual bool clbkPlaybackEvent (
double simt,
double event_t,
const char *event_type,
const char *event) {
return 0;};
87 virtual void clbkVisualCreated (VISHANDLE vis,
int refcount) {};
88 virtual void clbkVisualDestroyed (VISHANDLE vis,
int refcount) {};
90 virtual void clbkDrawHUD (
int mode,
const HUDPAINTSPEC *hps, HDC hDC);
92 virtual void clbkRCSMode (
int mode) {};
93 virtual void clbkADCtrlMode (DWORD mode) {};
94 virtual void clbkHUDMode (
int mode) {};
95 virtual void clbkMFDMode (
int mfd,
int mode) {};
96 virtual void clbkNavMode (
int mode,
bool active) {};
97 virtual void clbkDockEvent (
int dock, OBJHANDLE mate) {};
98 virtual void clbkAnimate (
double simt) {};
99 virtual int clbkConsumeDirectKey (
char *keystate) {
return 0;};
100 virtual int clbkConsumeBufferedKey (DWORD key,
bool down,
char *keystate) {
return 0;};
101 virtual bool clbkLoadGenericCockpit () {
return 0;};
102 virtual bool clbkLoadPanel (
int id) {
return 0;};
103 virtual bool clbkPanelMouseEvent (
int id,
int event,
int mx,
int my) {
return 0;};
104 virtual bool clbkPanelRedrawEvent (
int id,
int event, SURFHANDLE surf) {
return 0;};
105 virtual bool clbkLoadVC (
int id) {
return 0;};
106 virtual bool clbkVCMouseEvent (
int id,
int event, VECTOR3 &p) {
return 0;};
107 virtual bool clbkVCRedrawEvent (
int id,
int event, SURFHANDLE surf) {
return 0;};
109 virtual bool clbkPanelMouseEvent (
int id,
int event,
int mx,
int my,
void *context) {
return true;}
110 virtual bool clbkPanelRedrawEvent (
int id,
int event, SURFHANDLE surf,
void *context) {
return true;}
111 virtual int clbkGeneric (
int msgid=0,
int prm=0,
void *context=NULL) {
return 0;}
112 virtual bool clbkLoadPanel2D (
int id, PANELHANDLE hPanel, DWORD viewW, DWORD viewH) {
return true;}
114 virtual bool clbkDrawHUD (
int mode,
const HUDPAINTSPEC *hps, oapi::Sketchpad * skp );
116 virtual void clbkRenderHUD (
int mode,
const HUDPAINTSPEC *hps, SURFHANDLE hDefaultTex) {}
117 virtual void clbkGetRadiationForce (
const VECTOR3 &mflux, VECTOR3 &F, VECTOR3 &pos) {}
119 virtual void OldclbkSetClassCaps (FILEHANDLE cfg) {};
120 virtual void OldclbkSaveState (FILEHANDLE scn) {};
121 virtual void OldclbkLoadStateEx (FILEHANDLE scn,
void *status) {};
122 virtual void OldclbkSetStateEx (
const void *status) {};
123 virtual void OldclbkPostCreation () {};
124 virtual void OldclbkFocusChanged (
bool getfocus, OBJHANDLE hNewVessel, OBJHANDLE hOldVessel) {};
125 virtual void OldclbkPreStep (
double simt,
double simdt,
double mjd) {};
126 virtual void OldclbkPostStep (
double simt,
double simdt,
double mjd) {};
127 virtual bool OldclbkPlaybackEvent (
double simt,
double event_t,
const char *event_type,
const char *event) {
return 0;};
128 virtual void OldclbkVisualCreated (VISHANDLE vis,
int refcount) {};
129 virtual void OldclbkVisualDestroyed (VISHANDLE vis,
int refcount) {};
130 virtual void OldclbkDrawHUD (
int mode,
const HUDPAINTSPEC *hps, HDC hDC);
131 virtual void OldclbkRCSMode (
int mode) {};
132 virtual void OldclbkADCtrlMode (DWORD mode) {};
133 virtual void OldclbkHUDMode (
int mode) {};
134 virtual void OldclbkMFDMode (
int mfd,
int mode) {};
135 virtual void OldclbkNavMode (
int mode,
bool active) {};
136 virtual void OldclbkDockEvent (
int dock, OBJHANDLE mate) {};
137 virtual void OldclbkAnimate (
double simt) {};
138 virtual int OldclbkConsumeDirectKey (
char *keystate) {
return 0;};
139 virtual int OldclbkConsumeBufferedKey (DWORD key,
bool down,
char *keystate) {
return 0;};
140 virtual bool OldclbkLoadGenericCockpit () {
return 0;};
141 virtual bool OldclbkLoadPanel (
int id) {
return 0;};
142 virtual bool OldclbkPanelMouseEvent (
int id,
int event,
int mx,
int my) {
return 0;};
143 virtual bool OldclbkPanelRedrawEvent (
int id,
int event, SURFHANDLE surf) {
return 0;};
144 virtual bool OldclbkLoadVC (
int id) {
return 0;};
145 virtual bool OldclbkVCMouseEvent (
int id,
int event, VECTOR3 &p) {
return 0;};
146 virtual bool OldclbkVCRedrawEvent (
int id,
int event, SURFHANDLE surf) {
return 0;};
149 virtual bool OldclbkPanelMouseEvent (
int id,
int event,
int mx,
int my,
void *context) {
return true;}
150 virtual bool OldclbkPanelRedrawEvent (
int id,
int event, SURFHANDLE surf,
void *context) {
return true;}
151 virtual int OldclbkGeneric (
int msgid=0,
int prm=0,
void *context=NULL) {
return 0;}
152 virtual bool OldclbkLoadPanel2D (
int id, PANELHANDLE hPanel, DWORD viewW, DWORD viewH) {
return true;}
153 virtual bool OldclbkDrawHUD (
int mode,
const HUDPAINTSPEC *hps, oapi::Sketchpad * skp );
154 virtual void OldclbkRenderHUD (
int mode,
const HUDPAINTSPEC *hps, SURFHANDLE hDefaultTex) {}
155 virtual void OldclbkGetRadiationForce (
const VECTOR3 &mflux, VECTOR3 &F, VECTOR3 &pos) {}
164 static void OnMFDDestruction();
165 static bool IsVesselCompatible( VESSEL * v );
167 static void TryHook( OBJHANDLE old_focus );
168 static void TryUnHook( OBJHANDLE new_focus );
175 #endif // MFDHUDDRAWER_HPP