X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fpanel.hxx;h=9c110d0722d7a8e898782f76aec23a840b7f7e2a;hb=4bfd1722df24f5be89459b25010e5d7352720a7b;hp=9f1d42445580d1c53691398b161d857fb0e43857;hpb=3c7bdc31d9b0556430d75d75dffe780e5be96daa;p=flightgear.git diff --git a/src/Cockpit/panel.hxx b/src/Cockpit/panel.hxx index 9f1d42445..9c110d072 100644 --- a/src/Cockpit/panel.hxx +++ b/src/Cockpit/panel.hxx @@ -30,33 +30,31 @@ # include #endif -#include - -#ifdef HAVE_WINDOWS_H +#ifdef HAVE_WINDOWS_H # include #endif -#include GLUT_H - -#include +#include -#include +#include #include +#include +#include #include #include #include #include -#include -#include
#include
- #include +#include SG_USING_STD(vector); SG_USING_STD(map); + +class ssgTexture; class FGPanelInstrument; @@ -132,7 +130,7 @@ private: * redraw themselves when necessary, and will pass mouse clicks on to * the appropriate instruments for processing. */ -class FGPanel : public FGSubsystem +class FGPanel : public SGSubsystem { public: @@ -186,6 +184,8 @@ public: virtual bool doMouseAction (int button, int updown, int x, int y); virtual bool doLocalMouseAction(int button, int updown, int x, int y); + virtual void setDepthTest (bool enable); + private: void setupVirtualCockpit(); void cleanupVirtualCockpit(); @@ -212,6 +212,7 @@ private: ssgTexture * _mbg[8]; // List of instruments in panel. instrument_list_type _instruments; + bool _enable_depth_test; }; @@ -417,7 +418,7 @@ public: // Transfer pointer ownership!! virtual int addLayer (FGInstrumentLayer *layer); - virtual int addLayer (FGCroppedTexture &texture, int w = -1, int h = -1); + virtual int addLayer (const FGCroppedTexture &texture, int w = -1, int h = -1); // Transfer pointer ownership!! virtual void addTransformation (FGPanelTransformation * transformation); @@ -428,6 +429,28 @@ protected: }; +/** + * An empty-shell instrument that exists soley in + * order to redirect commands from the panel to a + * complex instrument inherited from SGSubsystem. + * + * Currently the only complex instrument is the KLN89, + * which we've hardwired this to for now. + */ +class FGSpecialInstrument : public FGPanelInstrument +{ +public: + FGSpecialInstrument(DCLGPS* sb); + //FGSpecialInstrument (int x, int y, int w, int h); + virtual ~FGSpecialInstrument (); + + virtual void draw (); + +protected: + DCLGPS* complex; +}; + + /** * An instrument layer containing a group of sublayers. * @@ -467,11 +490,11 @@ public: virtual void setTexture (const FGCroppedTexture &texture) { _texture = texture; } - virtual FGCroppedTexture &getTexture () { return _texture; } virtual const FGCroppedTexture &getTexture () const { return _texture; } + virtual FGCroppedTexture *getTexture() { return &_texture; } private: - mutable FGCroppedTexture _texture; + FGCroppedTexture _texture; }; @@ -496,7 +519,8 @@ public: public: Chunk (const string &text, const string &fmt = "%s"); Chunk (ChunkType type, const SGPropertyNode * node, - const string &fmt = "", float mult = 1.0); + const string &fmt = "", float mult = 1.0, float offs = 0.0, + bool truncation = false); const char * getValue () const; private: @@ -505,6 +529,8 @@ public: const SGPropertyNode * _node; string _fmt; float _mult; + float _offs; + bool _trunc; mutable char _buf[1024]; };