X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fpanel.hxx;h=b99889ce1628f26788f8ffb033bc1a3480998e4b;hb=897f295988b446d50b099a51d81df20df88a3a60;hp=af1c073ae3d2ad3d5a7fcc2bdf7ad5ca0598a09e;hpb=45f3eb7f99b4eced8c95887c7a6fe9e3b2737bca;p=flightgear.git diff --git a/src/Cockpit/panel.hxx b/src/Cockpit/panel.hxx index af1c073ae..b99889ce1 100644 --- a/src/Cockpit/panel.hxx +++ b/src/Cockpit/panel.hxx @@ -30,28 +30,24 @@ # 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 SG_USING_STD(vector); @@ -132,7 +128,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: @@ -172,11 +168,11 @@ public: // X-offset virtual void setXOffset (int offset); - virtual int getXOffset () const { return _x_offset; } + virtual int getXOffset () const { return _x_offset->getIntValue(); } // Y-offset. virtual void setYOffset (int offset); - virtual int getYOffset () const { return _y_offset; } + virtual int getYOffset () const { return _y_offset->getIntValue(); } // View height. virtual void setViewHeight (int height) { _view_height = height; } @@ -190,7 +186,6 @@ private: void setupVirtualCockpit(); void cleanupVirtualCockpit(); - mutable bool _visibility; mutable bool _mouseDown; mutable int _mouseButton, _mouseX, _mouseY; mutable int _mouseDelay; @@ -198,11 +193,13 @@ private: typedef vector instrument_list_type; int _width; int _height; - int _x_offset; - int _y_offset; int _view_height; - float _jitter; - bool _flipx; + + SGPropertyNode * _visibility; + SGPropertyNode * _x_offset; + SGPropertyNode * _y_offset; + SGPropertyNode * _jitter; + SGPropertyNode * _flipx; const SGPropertyNode * _xsize_node; const SGPropertyNode * _ysize_node; @@ -227,7 +224,7 @@ private: * or joystick, but they are tied to specific mouse actions in * rectangular areas of the panel. */ -class FGPanelAction : public FGConditional +class FGPanelAction : public SGConditional { public: FGPanelAction (); @@ -287,7 +284,7 @@ private: /** * A transformation for a layer. */ -class FGPanelTransformation : public FGConditional +class FGPanelTransformation : public SGConditional { public: @@ -326,7 +323,7 @@ public: * on current FGFS instrument readings: for example, a texture * representing a needle can rotate to show the airspeed. */ -class FGInstrumentLayer : public FGConditional +class FGInstrumentLayer : public SGConditional { public: @@ -368,7 +365,7 @@ protected: * may show up in the future (some complex instruments could be * entirely hand-coded, for example). */ -class FGPanelInstrument : public FGConditional +class FGPanelInstrument : public SGConditional { public: FGPanelInstrument (); @@ -442,7 +439,7 @@ public: virtual void draw (); // transfer pointer ownership virtual void addLayer (FGInstrumentLayer * layer); -private: +protected: vector _layers; }; @@ -490,12 +487,13 @@ public: DOUBLE_VALUE }; - class Chunk : public FGConditional + class Chunk : public SGConditional { 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: @@ -504,6 +502,8 @@ public: const SGPropertyNode * _node; string _fmt; float _mult; + float _offs; + bool _trunc; mutable char _buf[1024]; }; @@ -536,25 +536,18 @@ private: /** - * A layer that switches between two other layers. + * A group layer that switches among its children. * - * The usefulness of this layer is questionable now that all layers - * can have conditions, and it may be deprecated soon. + * The first layer that passes its condition will be drawn, and + * any following layers will be ignored. */ -class FGSwitchLayer : public FGInstrumentLayer +class FGSwitchLayer : public FGGroupLayer { public: // Transfer pointers!! - FGSwitchLayer (int w, int h, const SGPropertyNode * node, - FGInstrumentLayer * layer1, - FGInstrumentLayer * layer2); - virtual ~FGSwitchLayer (); - + FGSwitchLayer (); virtual void draw (); -private: - const SGPropertyNode * _node; - FGInstrumentLayer * _layer1, * _layer2; }; @@ -570,14 +563,6 @@ private: bool fgPanelVisible (); - -//////////////////////////////////////////////////////////////////////// -// The current panel, if any. -//////////////////////////////////////////////////////////////////////// - -extern FGPanel * current_panel; // TODO: move to globals - - #endif // __PANEL_HXX