00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef GAUGES_H
00030 #define GAUGES_H
00031
00032
00033 #include "FlyLegacy.h"
00034 #include "Utility.h"
00035
00036
00037
00038
00039
00040
00041
00042 #define GAUGE_BASE 'gage'
00043 #define GAUGE_BITMAP 'bgge'
00044 #define GAUGE_NEEDLE 'need'
00045 #define GAUGE_NEEDLE_DUAL '2ned'
00046 #define GAUGE_NEEDLE_TRIPLE '3ned'
00047 #define GAUGE_DIGITAL_NEEDLE 'dned'
00048 #define GAUGE_ALTIMETER 'alti'
00049 #define GAUGE_ALTIMETER_ROLLING 'altr'
00050 #define GAUGE_HORIZON 'hori'
00051 #define GAUGE_HORIZON_FD 'fdhz'
00052 #define GAUGE_HORIZONTAL_BALL 'hbal'
00053 #define GAUGE_AIRSPEED 'aspd'
00054 #define GAUGE_VERTICAL_SPEED 'vspd'
00055 #define GAUGE_DIRECTIONAL_GYRO 'gyro'
00056 #define GAUGE_VACUUM 'vacu'
00057 #define GAUGE_SUCTION 'suct'
00058 #define GAUGE_FUEL 'fuel'
00059 #define GAUGE_FUEL_FLOW 'fflw'
00060 #define GAUGE_OIL_PRESSURE 'oilp'
00061 #define GAUGE_OIL_TEMPERATURE 'oilt'
00062 #define GAUGE_TACHOMETER 'tach'
00063 #define GAUGE_TACHOMETER_DUAL 'dtch'
00064 #define GAUGE_N1_TACHOMETER 'n1ng'
00065 #define GAUGE_EXHAUST_GAS_TEMP 'egtg'
00066 #define GAUGE_BASIC_COMPASS 'comp'
00067 #define GAUGE_AMMETER 'amms'
00068 #define GAUGE_ANALOG_CLOCK 'aclk'
00069 #define GAUGE_DIGITAL_CLOCK_FLYHAWK 'cdcg'
00070 #define GAUGE_DIGITAL_CLOCK_BASIC 'bdcg'
00071 #define GAUGE_ADF_BASIC 'adfg'
00072 #define GAUGE_DIGITAL_READOUT 'dgrg'
00073 #define GAUGE_DIGITS_READOUT 'drog'
00074 #define GAUGE_CABIN_PRESSURE_RATE 'cprk'
00075 #define GAUGE_CABIN_PRESSURE 'cprs'
00076 #define GAUGE_BRAKE_PRESSURE 'brpg'
00077 #define GAUGE_AOA 'aoan'
00078 #define GAUGE_TURN_COORDINATOR 'turn'
00079 #define GAUGE_SLIP_INDICATOR 'slip'
00080 #define GAUGE_HOBBS_METER 'hobb'
00081 #define GAUGE_NAVIGATION 'navg'
00082 #define GAUGE_AUTOPILOT 'atop'
00083 #define GAUGE_NAV_COMM_KX155 'k155'
00084 #define GAUGE_GPS_KLN89 'kl89'
00085 #define GAUGE_XPDR_KT76 'kt76'
00086 #define GAUGE_ADF_KR87 'kr87'
00087 #define GAUGE_AUTOPILOT_KAP140 'ka14'
00088 #define GAUGE_AUTOPILOT_KFC200 'kf20'
00089 #define GAUGE_AUTOPILOT_KFC150 'kf15'
00090 #define GAUGE_AUDIO_KMA26 'kma2'
00091 #define GAUGE_HSI 'hsi_'
00092 #define GAUGE_FLYHAWK_ELT 'selt'
00093 #define GAUGE_NAV_RADIO_GENERIC 'navr'
00094 #define GAUGE_COMM_RADIO_GENERIC 'comr'
00095 #define GAUGE_TRANSPONDER_GENERIC 'xpdr'
00096 #define GAUGE_ADF_GENERIC 'adf_'
00097 #define GAUGE_RMI_NEEDLE 'rmig'
00098 #define GAUGE_NAV_RADIO_GROUP 'ngrp'
00099 #define GAUGE_COM_RADIO_GROUP 'cgrp'
00100 #define GAUGE_NAV_GAUGE_GROUP 'ogrp'
00101 #define GAUGE_TRANSPONDER_RADIO_GROUP 'tgrp'
00102 #define GAUGE_ADF_RADIO_GROUP 'agrp'
00103 #define GAUGE_RADIO_GAUGE_GROUP 'radg'
00104 #define GAUGE_ANNUNCIATOR 'annc'
00105 #define GAUGE_FLYHAWK_ANNUNCIATOR 'shan'
00106 #define GAUGE_FLYHAWK_ANNUNCIATOR_TEST 'shts'
00107 #define GAUGE_FLYHAWK_NAV_GPS_PANEL 'sngp'
00108 #define GAUGE_FLYHAWK_FUEL_SELECTOR 'shfs'
00109 #define GAUGE_FLYHAWK_ELEVATOR_TRIM 'shet'
00110 #define GAUGE_MALIBU_CHT_INDICATOR 'mcht'
00111 #define GAUGE_MALIBU_CHT_BUTTON 'mchb'
00112 #define GAUGE_MALIBU_NAV_GPS_PANEL 'mngp'
00113 #define GAUGE_MALIBU_DIGITAL_CLOCK 'mdcg'
00114 #define GAUGE_MALIBU_FUEL_SELECT 'mfss'
00115 #define GAUGE_MALIBU_ENGINE_MONITOR 'pmem'
00116 #define GAUGE_NAVAJO_FUEL_SELECTOR 'njfs'
00117 #define GAUGE_NAVAJO_AMMETER 'namp'
00118 #define GAUGE_NAVAJO_RADAR_ALTIMETER 'nral'
00119 #define GAUGE_COLLINS_EFIS_SELECTION 'cesp'
00120 #define GAUGE_COLLINS_VSPEED_PANEL 'cvsp'
00121 #define GAUGE_COLLINS_HF_RADIO 'khfr'
00122 #define GAUGE_COLLINS_PFD 'cpfd'
00123 #define GAUGE_COLLINS_ND 'cnvd'
00124 #define GAUGE_COLLINS_RTU 'crtu'
00125 #define GAUGE_COLLINS_AD 'cadd'
00126 #define GAUGE_COLLINS_MND 'cmnd'
00127 #define GAUGE_UNIVERSAL_FMS 'ufms'
00128 #define GAUGE_PILATUS_EFIS_PANEL 'pefs'
00129 #define GAUGE_WALKER_TEMP_AIRSPEED 'hsat'
00130 #define GAUGE_GYRO_SLAVING 'gslv'
00131 #define GAUGE_VERTICAL_RATE 'vert'
00132 #define GAUGE_PROP_SYNC 'sync'
00133 #define GAUGE_DME 'dmei'
00134 #define GAUGE_DME_2 'dme2'
00135 #define GAUGE_WEATHER_RADAR 'wrad'
00136 #define GAUGE_ANALOG_ALT_PRESELECT 'apre'
00137 #define GAUGE_TCAS 'tcas'
00138
00139 #define GAUGE_HOTSPOT 'hspt'
00140 #define GAUGE_SIMPLE_IN_OUT 'sios'
00141 #define GAUGE_LIT_IN_OUT 'lios'
00142 #define GAUGE_SIMPLE_SWITCH 'swit'
00143 #define GAUGE_BATTERY_SWITCH 'batt'
00144 #define GAUGE_TWO_STATE_ELT 'elt_'
00145 #define GAUGE_SWITCH_PAIR 'pair'
00146 #define GAUGE_SIMPLE_FLOAT_SWITCH 'fswi'
00147 #define GAUGE_DUAL_SWITCH 'dswi'
00148 #define GAUGE_PUSH_PULL_KNOB 'knob'
00149 #define GAUGE_PRIMER_KNOB 'prim'
00150 #define GAUGE_FLAP 'flap'
00151 #define GAUGE_LIT_LANDING_GEAR_KNOB 'llgr'
00152 #define GAUGE_MIXTURE_KNOB 'mixt'
00153 #define GAUGE_REVERSIBLE_THROTTLE_KNOB 'revt'
00154 #define GAUGE_DUAL_KNOB 'dual'
00155 #define GAUGE_FLYHAWK_LIGHT_KNOB 'shlk'
00156 #define GAUGE_TURN_KNOB 'tknb'
00157 #define GAUGE_MAGNETO_SWITCH 'magn'
00158 #define GAUGE_COVERED_SWITCH 'cswi'
00159 #define GAUGE_COVERED_LIGHT_BUTTON 'cbtn'
00160 #define GAUGE_VERTICAL_SLIDER 'vsld'
00161 #define GAUGE_TRIM_WHEEL 'twhl'
00162 #define GAUGE_TRIM_WHEEL_INDICATOR 'twhi'
00163 #define GAUGE_INDICATOR 'indi'
00164 #define GAUGE_FLAPS_INDICATOR 'find'
00165 #define GAUGE_PUSHBUTTON 'push'
00166 #define GAUGE_LIGHT_BUTTON 'lbut'
00167 #define GAUGE_TURN_SWITCH 'tswi'
00168 #define GAUGE_MASTER_CAUTION_BUTTON 'mcwb'
00169 #define GAUGE_KINGAIR_FIRE_EXT 'kafe'
00170 #define GAUGE_WALKER_AP_PANEL 'happ'
00171 #define GAUGE_WALKER_FIRE_PANEL 'rhfp'
00172 #define GAUGE_LIGHT_SWITCH_SET 'lssg'
00173 #define GAUGE_ROCKER_SWITCH 'rock'
00174
00175
00176
00177
00178
00179
00180 #define GAUGE_ATTITUDE_INDICATOR 'atti'
00181 #define GAUGE_GHOST 'ghst'
00182 #define GAUGE_NAV_RADIO 'nrdg'
00183 #define GAUGE_NAV_RADIO_KN53 'kn53'
00184 #define GAUGE_NAV_RADIO_KN80 'kn80'
00185 #define GAUGE_COMM_RADIO 'comm'
00186 #define GAUGE_COMM_RADIO_KY96 'ky96'
00187 #define GAUGE_TRANSPONDER_KT79 'kt79'
00188 #define GAUGE_AUTOPILOT 'atop'
00189
00190
00191
00192
00193
00194 typedef struct {
00195 char art[64];
00196 int x, y;
00197 } SArtOffset;
00198
00199
00200
00201
00202
00203 typedef struct {
00204 char art[64];
00205 int x1, y1, x2, y2;
00206 } SArtRectangle;
00207
00208
00209
00210
00211
00212
00213
00214 typedef struct {
00215 int ytop;
00216 int ybtm;
00217 float valu;
00218 char help[64];
00219 } SKnobArea;
00220
00221
00222
00223
00224
00225
00226 class CGaugeNeedle : public CStreamObject {
00227 public:
00228 CGaugeNeedle (void);
00229 virtual ~CGaugeNeedle (void);
00230
00231
00232 virtual int Read (SStream *stream, Tag tag);
00233 virtual void ReadFinished (void);
00234
00235
00236 virtual void Draw (SSurface *surface, float degrees, int cx, int cy);
00237
00238 public:
00239 Tag tag;
00240
00241 protected:
00242 bool shar;
00243 int sizx;
00244 int sizy;
00245 int offx;
00246 int offy;
00247 int mind;
00248 int maxd;
00249 char base[64];
00250
00251 SBitmap *bmap;
00252 int nFrames;
00253
00254
00255 bool readFinished;
00256 };
00257
00258
00259
00260
00261
00262 class CGaugeRectangle : public CStreamObject {
00263 public:
00264 CGaugeRectangle (void);
00265 virtual ~CGaugeRectangle (void) {}
00266
00267
00268 virtual int Read (SStream *stream, Tag tag);
00269
00270 public:
00271 int x1, y1, x2, y2;
00272 };
00273
00274
00275
00276
00277
00278 class CGaugeClickArea : public CGaugeRectangle {
00279 public:
00280 CGaugeClickArea (void);
00281 virtual ~CGaugeClickArea (void);
00282
00283
00284 virtual int Read (SStream *stream, Tag tag);
00285 virtual void ReadFinished (void);
00286
00287
00288 virtual bool IsHit (int x, int y);
00289 virtual void Draw (SSurface *surface, int frame);
00290 virtual ECursorResult MouseMoved (int x, int y);
00291
00292 protected:
00293 char bmap[64];
00294 char curs[64];
00295 Tag cursTag;
00296 char help[64];
00297
00298 SBitmap *bm;
00299 };
00300
00301
00302
00303
00304
00305 class CGaugeKnob : public CGaugeClickArea {
00306 public:
00307 CGaugeKnob (void);
00308 virtual ~CGaugeKnob (void);
00309
00310
00311 int Read (SStream *stream, Tag tag);
00312 void ReadFinished (void);
00313
00314
00315 virtual void Draw (float rotation);
00316 virtual void SetOffset (int offset_x, int offset_y);
00317
00318 public:
00319 char bmap[64];
00320 SBitmap *bmKnob;
00321
00322 int offset_x, offset_y;
00323 SSurface *surf;
00324 };
00325
00326
00327
00328
00329
00330 class CGaugeAnnunciator : public CGaugeClickArea {
00331 public:
00332 CGaugeAnnunciator (void);
00333
00334
00335 int Read (SStream *stream, Tag tag);
00336
00337 protected:
00338 };
00339
00340
00341
00342
00343
00344
00345
00351 class CGauge : public CStreamObject {
00352 public:
00353 CGauge (void);
00354
00355
00356 virtual int Read (SStream *stream, Tag tag);
00357 virtual void ReadFinished (void);
00358
00359
00360 virtual void GetSize (int* x1, int* y1, int*x2, int* y2);
00361 virtual void Update (void);
00362 virtual void Draw (void);
00363 virtual void Blit (int xOffset, int yOffset, int y_isiz);
00364 virtual SSurface* GetSurface (void);
00365 void ClearSurface (void);
00366
00367 virtual EClickResult MouseClick (int x, int y, int buttons);
00368 virtual EClickResult TrackClick (int x, int y, int buttons);
00369 virtual EClickResult StopClick (int x, int y, int buttons);
00370 virtual ECursorResult MouseMoved (int x, int y);
00371
00372 protected:
00373 Tag type;
00374 Tag unid;
00375 char unid_s[8];
00376 int x, y, w, h;
00377 int cx, cy;
00378 SMessage mesg;
00379 float gmin, gmax;
00380 CDataMap gtbl;
00381 Tag lite;
00382 char mask[64];
00383 bool fore;
00384 char curs[64];
00385 Tag cursTag;
00386 char help[64];
00387 char dtyp[64];
00388 char dfmt[64];
00389 bool nomc;
00390 bool igno;
00391
00392 SSurface* surf;
00393
00394 int last_state;
00395 float value;
00396
00397 public:
00398 static int sfx_source;
00399 };
00400
00401
00402
00403
00404
00405 class CBitmapGauge : public CGauge {
00406 public:
00407 CBitmapGauge (void);
00408 virtual ~CBitmapGauge (void);
00409
00410
00411 virtual int Read (SStream *stream, Tag tag);
00412 virtual void ReadFinished (void);
00413
00414
00415 virtual void Draw (void);
00416
00417
00418 virtual void DrawUnderlay (void);
00419 virtual void DrawOverlay (void);
00420
00421
00422 protected:
00423 SArtOffset bmap;
00424 SArtOffset over;
00425
00426 SBitmap *bmUnderlay, *bmOverlay;
00427 };
00428
00429
00430
00431
00432
00433 class CNeedleGauge : public CBitmapGauge {
00434 public:
00435 CNeedleGauge (void);
00436 virtual ~CNeedleGauge (void) {}
00437
00438
00439 virtual int Read (SStream *stream, Tag tag);
00440 virtual void Draw (void);
00441
00442 protected:
00443 int radi;
00444 float sang;
00445 float dunt;
00446 float rang_min;
00447 float rang_max;
00448 int noff_x;
00449 int noff_y;
00450 bool noac;
00451 CGaugeNeedle nedl;
00452 };
00453
00454
00455
00456
00457
00458 class CTwoNeedleGauge : public CBitmapGauge {
00459 public:
00460 CTwoNeedleGauge (void);
00461
00462
00463 int Read (SStream *stream, Tag tag);
00464
00465 protected:
00466 CNeedleGauge ndl1;
00467 CNeedleGauge ndl2;
00468 };
00469
00470
00471
00472
00473
00474 class CThreeNeedleGauge : public CBitmapGauge {
00475 public:
00476 CThreeNeedleGauge (void);
00477
00478
00479 virtual int Read (SStream *stream, Tag tag);
00480
00481 protected:
00482 CNeedleGauge ndl1;
00483 CNeedleGauge ndl2;
00484 CNeedleGauge ndl3;
00485 };
00486
00487
00488
00489
00490
00491 class CDigitalNeedleGauge : public CNeedleGauge {
00492 public:
00493 CDigitalNeedleGauge (void);
00494
00495
00496 int Read (SStream *stream, Tag tag);
00497
00498 protected:
00499 CGaugeNeedle nndl;
00500 SArtOffset nbak;
00501 SMessage powr;
00502 };
00503
00504
00505
00506
00507
00508 class CAltimeterGauge : public CBitmapGauge {
00509 public:
00510 CAltimeterGauge (void);
00511 virtual ~CAltimeterGauge (void);
00512
00513
00514 virtual int Read (SStream *stream, Tag tag);
00515
00516
00517 virtual ECursorResult MouseMoved (int x, int y);
00518
00519 protected:
00520 int psiz_x, psiz_y;
00521 CNeedleGauge *ndl1;
00522 CNeedleGauge *ndl2;
00523 CNeedleGauge *ndl3;
00524 char csrl_csr[64];
00525 char csrr_csr[64];
00526 Tag csrl_tag, csrr_tag;
00527 CGaugeClickArea koll;
00528 int kpxy_x, kpxy_y;
00529 CGaugeKnob knob;
00530 SMessage kmsg;
00531 };
00532
00533
00534
00535
00536
00537 class CRollingAltimeterGauge : public CBitmapGauge {
00538 public:
00539 CRollingAltimeterGauge (void);
00540
00541
00542 int Read (SStream *stream, Tag tag);
00543
00544
00545 virtual ECursorResult MouseMoved (int x, int y);
00546
00547 protected:
00548 int psiz_x, psiz_y;
00549 char zdig_art[64];
00550 char ndig_art[64];
00551 char tdig_art[64];
00552 int digx[4];
00553 int digy;
00554 int dsiz_x, dsiz_y;
00555 CNeedleGauge ndl1;
00556 CGaugeClickArea koll;
00557 CGaugeKnob knob;
00558 SMessage kmsg;
00559 };
00560
00561
00562
00563
00564
00565 class CHorizonGauge : public CBitmapGauge {
00566 public:
00567 CHorizonGauge (void);
00568
00569
00570 int Read (SStream *stream, Tag tag);
00571
00572
00573 virtual ECursorResult MouseMoved (int x, int y);
00574
00575 protected:
00576 SArtOffset foot;
00577 SArtOffset horz;
00578 int hoff;
00579 SArtOffset irim;
00580 SArtOffset orim;
00581 SArtOffset fron;
00582 float pixd;
00583 int moff;
00584 CGaugeKnob knob;
00585 char flag_art[64];
00586 SMessage pich;
00587 SMessage roll;
00588 };
00589
00590
00591
00592
00593
00594 class CFDHorizonGauge : public CHorizonGauge {
00595 public:
00596 CFDHorizonGauge (void);
00597
00598
00599 int Read (SStream *stream, Tag tag);
00600
00601 protected:
00602 SArtOffset bars;
00603 };
00604
00605
00606
00607
00608
00609 class CHorizontalBallGauge : public CBitmapGauge {
00610 public:
00611 CHorizontalBallGauge (void);
00612
00613
00614 int Read (SStream *stream, Tag tag);
00615
00616 protected:
00617 };
00618
00619
00620
00621
00622
00623 class CAirspeedGauge : public CNeedleGauge {
00624 public:
00625 CAirspeedGauge (void);
00626
00627
00628 virtual int Read (SStream *stream, Tag tag);
00629
00630
00631 virtual ECursorResult MouseMoved (int x, int y);
00632
00633 protected:
00634 CGaugeKnob knob;
00635 CNeedleGauge mmo_;
00636 };
00637
00638
00639
00640
00641
00642 class CVerticalSpeedGauge : public CNeedleGauge {
00643 public:
00644 CVerticalSpeedGauge (void);
00645 virtual ~CVerticalSpeedGauge (void);
00646
00647
00648 virtual int Read (SStream *stream, Tag tag);
00649 virtual void ReadFinished (void);
00650
00651
00652 virtual ECursorResult MouseMoved (int x, int y);
00653
00654
00655 virtual void Draw (void);
00656
00657 protected:
00658 SArtOffset vsbg;
00659 CGaugeKnob vskb;
00660 SMessage vmsg;
00661
00662 SBitmap *bmBug;
00663 };
00664
00665
00666
00667
00668
00669 class CDirectionalGyroGauge : public CNeedleGauge {
00670 public:
00671 CDirectionalGyroGauge (void);
00672
00673
00674 int Read (SStream *stream, Tag tag);
00675
00676 protected:
00677 SArtOffset apbg;
00678 SArtRectangle apkb;
00679 SArtRectangle knob;
00680 Tag bias;
00681 };
00682
00683
00684
00685
00686
00687 class CVacuumGauge : public CNeedleGauge {
00688 public:
00689 CVacuumGauge (void);
00690
00691
00692 int Read (SStream *stream, Tag tag);
00693
00694 protected:
00695 };
00696
00697
00698
00699
00700
00701 class CSuctionGauge : public CNeedleGauge {
00702 public:
00703 CSuctionGauge (void);
00704
00705
00706 int Read (SStream *stream, Tag tag);
00707
00708 protected:
00709 };
00710
00711
00712
00713
00714
00715 class CFuelGauge : public CNeedleGauge {
00716 public:
00717 CFuelGauge (void);
00718
00719
00720 int Read (SStream *stream, Tag tag);
00721
00722 protected:
00723 };
00724
00725
00726
00727
00728
00729 class CFuelFlowGauge : public CNeedleGauge {
00730 public:
00731 CFuelFlowGauge (void);
00732
00733
00734 int Read (SStream *stream, Tag tag);
00735
00736 protected:
00737 };
00738
00739
00740
00741
00742
00743 class COilPressureGauge : public CNeedleGauge {
00744 public:
00745 COilPressureGauge (void);
00746
00747
00748 int Read (SStream *stream, Tag tag);
00749
00750 protected:
00751 };
00752
00753
00754
00755
00756
00757 class COilTemperatureGauge : public CNeedleGauge {
00758 public:
00759 COilTemperatureGauge (void);
00760
00761
00762 int Read (SStream *stream, Tag tag);
00763
00764 protected:
00765 };
00766
00767
00768
00769
00770
00771 class CTachometerGauge : public CNeedleGauge {
00772 public:
00773 CTachometerGauge (void);
00774
00775
00776 int Read (SStream *stream, Tag tag);
00777
00778 protected:
00779 bool hobb;
00780 };
00781
00782
00783
00784
00785
00786 class CDualTachometerGauge : public CTwoNeedleGauge {
00787 public:
00788 CDualTachometerGauge (void);
00789
00790
00791 int Read (SStream *stream, Tag tag);
00792
00793 protected:
00794 };
00795
00796
00797
00798
00799
00800 class CN1TachometerGauge : public CTwoNeedleGauge {
00801 public:
00802 CN1TachometerGauge (void);
00803
00804
00805 int Read (SStream *stream, Tag tag);
00806
00807
00808 virtual ECursorResult MouseMoved (int x, int y);
00809
00810 protected:
00811 CGaugeKnob knob;
00812 };
00813
00814
00815
00816
00817
00818 class CExhaustGasTemperatureGauge : public CNeedleGauge {
00819 public:
00820 CExhaustGasTemperatureGauge (void);
00821
00822
00823 int Read (SStream *stream, Tag tag);
00824
00825 protected:
00826 float egtr;
00827 char egtn_art[64];
00828 };
00829
00830
00831
00832
00833
00834 class CBasicCompassGauge : public CBitmapGauge {
00835 public:
00836 CBasicCompassGauge (void);
00837
00838
00839 int Read (SStream *stream, Tag tag);
00840
00841 protected:
00842 char comp_art[64];
00843 int wind;
00844 int orgx;
00845 int nton;
00846 };
00847
00848
00849
00850
00851
00852 class CAnalogClockGauge : public CTwoNeedleGauge {
00853 public:
00854 CAnalogClockGauge (void);
00855
00856
00857 int Read (SStream *stream, Tag tag);
00858
00859 protected:
00860 };
00861
00862
00863
00864
00865
00866 class CAmmeterGauge : public CNeedleGauge {
00867 public:
00868 CAmmeterGauge (void);
00869
00870
00871 int Read (SStream *stream, Tag tag);
00872
00873 protected:
00874 };
00875
00876
00877
00878
00879
00880 class CFlyhawkDigitalClockGauge : public CBitmapGauge {
00881 public:
00882 CFlyhawkDigitalClockGauge (void);
00883
00884
00885 int Read (SStream *stream, Tag tag);
00886
00887
00888 virtual ECursorResult MouseMoved (int x, int y);
00889
00890 protected:
00891 int oatd_x1, oatd_y1, oatd_x2, oatd_y2;
00892 int clkd_x1, clkd_y1, clkd_x2, clkd_y2;
00893 CGaugeClickArea bupp;
00894 CGaugeClickArea bsel;
00895 CGaugeClickArea bcon;
00896 CGaugeClickArea bbot;
00897 bool ft13;
00898 bool noco;
00899 int cgap;
00900 int frgb_r, frgb_g, frgb_b;
00901 };
00902
00903
00904
00905
00906
00907 class CBasicDigitalClockGauge : public CFlyhawkDigitalClockGauge {
00908 public:
00909 CBasicDigitalClockGauge (void);
00910
00911
00912 int Read (SStream *stream, Tag tag);
00913
00914 protected:
00915 int tick_x, tick_y;
00916 int tkut;
00917 int tklt;
00918 int tkft;
00919 int tket;
00920 };
00921
00922
00923
00924
00925
00926 class CBasicADFGauge : public CNeedleGauge {
00927 public:
00928 CBasicADFGauge (void);
00929 virtual ~CBasicADFGauge (void);
00930
00931
00932 int Read (SStream *stream, Tag tag);
00933 void ReadFinished (void);
00934
00935
00936 virtual ECursorResult MouseMoved (int x, int y);
00937 virtual EClickResult MouseClick (int x, int y, int buttons);
00938 virtual void Draw (void);
00939 virtual void Blit (int xOffset, int yOffset, int y_isiz);
00940
00941 protected:
00942 Tag comp_tag;
00943 CGaugeNeedle *comp;
00944 CGaugeKnob *knob;
00945 CGaugeNeedle *hdng;
00946 float compass;
00947 };
00948
00949
00950
00951
00952
00953 class CDigitalReadoutGauge : public CBitmapGauge {
00954 public:
00955 CDigitalReadoutGauge (void);
00956
00957
00958 int Read (SStream *stream, Tag tag);
00959
00960 protected:
00961 int maxd;
00962 char wdig_art[64];
00963 char fdig_art[64];
00964 int digY;
00965 int num_digX;
00966 int *digX;
00967 bool whol;
00968 bool padz;
00969 };
00970
00971
00972
00973
00974
00975 class CDigitsReadoutGauge : public CGauge {
00976 public:
00977 CDigitsReadoutGauge (void);
00978
00979
00980 int Read (SStream *stream, Tag tag);
00981
00982
00983 virtual void Draw (void) {}
00984
00985 protected:
00986 int frgb_r, frgb_g, frgb_b;
00987 char just[64];
00988 };
00989
00990
00991
00992
00993
00994 class CCabinPressureRateKnobGauge : public CBitmapGauge {
00995 public:
00996 CCabinPressureRateKnobGauge (void);
00997
00998
00999 int Read (SStream *stream, Tag tag);
01000
01001
01002 virtual ECursorResult MouseMoved (int x, int y);
01003
01004 protected:
01005 int ofxy_x, ofxy_y;
01006 float alti_min, alti_max;
01007 float rate_min, rate_max;
01008 CGaugeKnob knob;
01009 CGaugeKnob cabn;
01010 char onsf[64];
01011 char ofsf[64];
01012 };
01013
01014
01015
01016
01017
01018 class CCabinPressureGauge : public CNeedleGauge {
01019 public:
01020 CCabinPressureGauge (void);
01021
01022
01023 int Read (SStream *stream, Tag tag);
01024
01025 protected:
01026 CNeedleGauge alti;
01027 CNeedleGauge diff;
01028 CNeedleGauge rate;
01029 };
01030
01031
01032
01033
01034
01035 class CBrakePressureGauge : public CTwoNeedleGauge {
01036 public:
01037 CBrakePressureGauge (void);
01038
01039
01040 int Read (SStream *stream, Tag tag);
01041
01042
01043 virtual ECursorResult MouseMoved (int x, int y);
01044
01045 protected:
01046 CGaugeClickArea left;
01047 CGaugeClickArea rght;
01048 };
01049
01050
01051
01052
01053
01054 class CAOANeedleGauge : public CTwoNeedleGauge {
01055 public:
01056 CAOANeedleGauge (void);
01057
01058
01059 int Read (SStream *stream, Tag tag);
01060
01061
01062 virtual ECursorResult MouseMoved (int x, int y);
01063
01064 protected:
01065 CGaugeKnob knob;
01066 };
01067
01068
01069
01070
01071
01072 class CTurnCoordinatorGauge : public CBitmapGauge {
01073 public:
01074 CTurnCoordinatorGauge (void);
01075
01076
01077 int Read (SStream *stream, Tag tag);
01078
01079 protected:
01080 char plan_art[64];
01081 int poff_x, poff_y;
01082 char ball_art[64];
01083 int boff_x, boff_y;
01084 Tag pcon;
01085 Tag bcon;
01086 int Ltrn;
01087 int Rtrn;
01088 };
01089
01090
01091
01092
01093
01094 class CHSIGauge : public CBitmapGauge {
01095 public:
01096 CHSIGauge (void);
01097
01098
01099 int Read (SStream *stream, Tag tag);
01100
01101
01102 virtual ECursorResult MouseMoved (int x, int y);
01103
01104 protected:
01105 SArtOffset comp;
01106 SArtOffset cour;
01107 SArtOffset devi;
01108 SArtOffset devb;
01109 SArtOffset apbg;
01110 SArtOffset to;
01111 SArtOffset from;
01112 SArtOffset glid;
01113 CGaugeKnob knob;
01114 CGaugeKnob apkb;
01115 SMessage obsm;
01116 SMessage bugm;
01117 SMessage fcs;
01118 Tag radi_tag;
01119 int radi_unit;
01120 float rang_min, rang_max;
01121 float gsdf;
01122 };
01123
01124
01125
01126
01127
01128 class CFlyhawkELTGauge : public CBitmapGauge {
01129 public:
01130 CFlyhawkELTGauge (void);
01131
01132
01133 int Read (SStream *stream, Tag tag);
01134
01135 protected:
01136 char ulit_art[64];
01137 char lit_art[64];
01138 char csru_csr[64];
01139 char csrd_csr[64];
01140 char sfxu_wav[64];
01141 char sfxd_wav[64];
01142 int sfxu_tag;
01143 int sfxd_tag;
01144 };
01145
01146
01147
01148
01149
01150 class CSlipIndicatorGauge : public CBitmapGauge {
01151 public:
01152 CSlipIndicatorGauge (void);
01153
01154
01155 int Read (SStream *stream, Tag tag);
01156
01157 protected:
01158 char ball_art[64];
01159 };
01160
01161
01162
01163
01164
01165 class CHobbsMeterGauge : public CGauge {
01166 public:
01167 CHobbsMeterGauge (void);
01168
01169
01170 int Read (SStream *stream, Tag tag);
01171
01172
01173
01174 protected:
01175 char blak_art[64];
01176 char whit_art[64];
01177 };
01178
01179
01180
01181
01182
01183 class CNavigationGauge : public CBitmapGauge {
01184 public:
01185 CNavigationGauge (void);
01186 virtual ~CNavigationGauge (void);
01187
01188
01189 int Read (SStream *stream, Tag tag);
01190 void ReadFinished ();
01191
01192
01193 EClickResult MouseClick (int x, int y, int buttons);
01194 EClickResult StopClick (int x, int y, int buttons);
01195 void Draw (void);
01196 void Blit (int xOffset, int yOffset, int y_isiz);
01197
01198 protected:
01199 Tag comp_tag;
01200 CGaugeNeedle comp_ndl;
01201 SArtOffset lndl;
01202 SArtOffset gndl;
01203 SArtRectangle obs;
01204 char wtab_art[64];
01205 char ttab_art[64];
01206 char ftab_art[64];
01207 int ntpl_x, ntpl_y;
01208 int gspl_x, gspl_y;
01209 Tag radi_tag;
01210 int radi_unit;
01211 SMessage fcs;
01212
01213 SSurface *surfObsKnob;
01214 SBitmap *bmObsKnob;
01215 int nObsKnobFrames;
01216 SBitmap *bmLocalizer;
01217 int nLocalizerFrames;
01218 float localizerFramesPerDeg;
01219 SBitmap *bmGlideslope;
01220 int nGlideslopeFrames;
01221 float glideslopeFramesPerDeg;
01222 SBitmap *bmWarnTab;
01223 SBitmap *bmToTab;
01224 SBitmap *bmFromTab;
01225
01226 float obsSetting;
01227 int obsRate;
01228 bool obsKnobClick;
01229 float obsKnobTickRate;
01230 float obsKnobTickRateTimer;
01231 float obsKnobLastTick;
01232 };
01233
01234
01235
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245
01246 class CBKKX155ComPresets : public CStreamObject {
01247 public:
01248 CBKKX155ComPresets (void);
01249
01250
01251 virtual int Read (SStream *stream, Tag tag);
01252
01253
01254 void Load (const char *txtFilename);
01255 float GetFreq (int i);
01256 void SetFreq (int i, float freq);
01257
01258 protected:
01259 float freq[32];
01260 };
01261
01262
01263
01264
01265 class CBKNavComKX155Gauge : public CBitmapGauge {
01266 public:
01267 CBKNavComKX155Gauge (void);
01268
01269
01270 int Read (SStream *stream, Tag tag);
01271 void ReadFinished (void);
01272
01273
01274 virtual ECursorResult MouseMoved (int x, int y);
01275 virtual EClickResult MouseClick (int x, int y, int buttons);
01276 virtual void Draw (void);
01277
01278 void IncComChannel (void);
01279 void DecComChannel (void);
01280
01281 protected:
01282 Tag radi_tag;
01283 int radi_unit;
01284 CGaugeClickArea ca01;
01285 CGaugeClickArea ca02;
01286 CGaugeClickArea ca03;
01287 CGaugeClickArea ca04;
01288 CGaugeClickArea ca05;
01289 CGaugeClickArea ca06;
01290 CGaugeClickArea ca07;
01291 CGaugeClickArea ca08;
01292 CGaugeClickArea ca09;
01293 CGaugeClickArea ca10;
01294 CGaugeClickArea ca11;
01295 CGaugeClickArea ca12;
01296 CGaugeClickArea ca13;
01297 CGaugeClickArea ca14;
01298 CGaugeClickArea ca15;
01299 CGaugeClickArea ca16;
01300 CGaugeClickArea ca17;
01301 CGaugeClickArea ca18;
01302 CGaugeClickArea ca19;
01303 CGaugeClickArea ca20;
01304 CGaugeClickArea ca21;
01305
01306 SFont *digi9;
01307
01308
01309 CBKKX155ComPresets presets;
01310
01311
01312 int comChannel;
01313 bool comProgramFlash;
01314 float comProgramTimer;
01315 bool comProgramFreq;
01316 };
01317
01318
01319
01320
01321
01322 class CBKGPSKLN89Gauge : public CBitmapGauge {
01323 public:
01324 CBKGPSKLN89Gauge (void);
01325
01326
01327 int Read (SStream *stream, Tag tag);
01328
01329
01330 virtual ECursorResult MouseMoved (int x, int y);
01331
01332 protected:
01333 Tag radi;
01334 CGaugeClickArea ca01;
01335 CGaugeClickArea ca02;
01336 CGaugeClickArea ca03;
01337 CGaugeClickArea ca04;
01338 CGaugeClickArea ca05;
01339 CGaugeClickArea ca06;
01340 CGaugeClickArea ca07;
01341 CGaugeClickArea ca08;
01342 CGaugeClickArea ca09;
01343 CGaugeClickArea ca10;
01344 CGaugeClickArea ca11;
01345 CGaugeClickArea ca12;
01346 CGaugeClickArea ca13;
01347 CGaugeClickArea ca14;
01348 CGaugeClickArea ca15;
01349 CGaugeClickArea ca16;
01350 CGaugeClickArea ca17;
01351 CGaugeClickArea ca18;
01352 CGaugeClickArea ca19;
01353 CGaugeClickArea ca20;
01354 CGaugeClickArea ca21;
01355 CGaugeClickArea ca22;
01356 };
01357
01358
01359
01360
01361
01362 class CBKXPDRKT76Gauge : public CBitmapGauge {
01363 public:
01364 CBKXPDRKT76Gauge (void);
01365
01366
01367 int Read (SStream *stream, Tag tag);
01368 void ReadFinished (void);
01369
01370
01371 virtual ECursorResult MouseMoved (int x, int y);
01372 virtual EClickResult MouseClick (int x, int y, int buttons);
01373 virtual EClickResult StopClick (int x, int y, int buttons);
01374 virtual void Draw (void);
01375
01376 protected:
01377 Tag radi_tag;
01378 int radi_unit;
01379 CGaugeClickArea ca[17];
01380 int nClickAreas;
01381 int caClicked;
01382 };
01383
01384
01385
01386
01387
01388 class CBKADFKR87Gauge : public CBitmapGauge {
01389 public:
01390 CBKADFKR87Gauge (void);
01391
01392
01393 int Read (SStream *stream, Tag tag);
01394 void ReadFinished (void);
01395
01396
01397 virtual ECursorResult MouseMoved (int x, int y);
01398 virtual EClickResult MouseClick (int x, int y, int buttons);
01399 virtual EClickResult StopClick (int x, int y, int buttons);
01400 virtual void Draw (void);
01401
01402 protected:
01403 Tag radi_tag;
01404 int radi_unit;
01405 CGaugeClickArea ca[16];
01406 int nClickAreas;
01407 int caClicked;
01408 };
01409
01410
01411
01412
01413
01414 class CBKAP140Gauge : public CBitmapGauge {
01415 public:
01416 CBKAP140Gauge (void);
01417
01418
01419 int Read (SStream *stream, Tag tag);
01420
01421
01422 virtual ECursorResult MouseMoved (int x, int y);
01423 virtual void Draw (void);
01424
01425 protected:
01426 CGaugeClickArea ca[7];
01427 int nClickAreas;
01428 int caClicked;
01429 };
01430
01431
01432
01433
01434
01435 class CBKKFC200Gauge : public CBitmapGauge {
01436 public:
01437 CBKKFC200Gauge (void);
01438
01439
01440 int Read (SStream *stream, Tag tag);
01441
01442
01443 virtual ECursorResult MouseMoved (int x, int y);
01444
01445 protected:
01446 CGaugeClickArea ca01;
01447 CGaugeClickArea ca02;
01448 CGaugeClickArea ca03;
01449 CGaugeClickArea ca04;
01450 CGaugeClickArea ca05;
01451 CGaugeClickArea ca06;
01452 CGaugeClickArea ca07;
01453 CGaugeClickArea ca08;
01454 CGaugeClickArea ca09;
01455 CGaugeClickArea ca10;
01456 CGaugeClickArea ca11;
01457 SArtOffset fd;
01458 SArtOffset alt;
01459 SArtOffset hdg;
01460 SArtOffset gs;
01461 SArtOffset nav;
01462 SArtOffset apr;
01463 SArtOffset bc;
01464 SArtOffset trim;
01465 SArtOffset ap;
01466 };
01467
01468
01469
01470
01471
01472 class CBKKFC150Gauge : public CBitmapGauge {
01473 public:
01474 CBKKFC150Gauge (void);
01475
01476
01477 int Read (SStream *stream, Tag tag);
01478
01479
01480 virtual ECursorResult MouseMoved (int x, int y);
01481
01482 protected:
01483 CGaugeClickArea ca01;
01484 CGaugeClickArea ca02;
01485 CGaugeClickArea ca03;
01486 CGaugeClickArea ca04;
01487 CGaugeClickArea ca05;
01488 CGaugeClickArea ca06;
01489 CGaugeClickArea ca07;
01490 CGaugeClickArea ca08;
01491 CGaugeClickArea ca09;
01492 CGaugeClickArea ca10;
01493 CGaugeClickArea ca11;
01494 SArtOffset fd;
01495 SArtOffset alt;
01496 SArtOffset hdg;
01497 SArtOffset gs;
01498 SArtOffset nav;
01499 SArtOffset apr;
01500 SArtOffset bc;
01501 SArtOffset trim;
01502 SArtOffset ap;
01503 };
01504
01505
01506
01507
01508
01509 class CBKAudioKMA26Gauge : public CBitmapGauge {
01510 public:
01511 CBKAudioKMA26Gauge (void);
01512
01513
01514 int Read (SStream *stream, Tag tag);
01515
01516
01517 virtual ECursorResult MouseMoved (int x, int y);
01518
01519 protected:
01520 Tag radi;
01521 CGaugeClickArea ca01;
01522 CGaugeClickArea ca02;
01523 CGaugeClickArea ca03;
01524 CGaugeClickArea ca04;
01525 CGaugeClickArea ca05;
01526 CGaugeClickArea ca06;
01527 CGaugeClickArea ca07;
01528 CGaugeClickArea ca08;
01529 CGaugeClickArea ca09;
01530 CGaugeClickArea ca10;
01531 CGaugeClickArea ca11;
01532 CGaugeClickArea ca12;
01533 CGaugeClickArea ca13;
01534 CGaugeClickArea ca14;
01535 CGaugeClickArea ca15;
01536 };
01537
01538
01539
01540
01541
01542 class CGenericNavRadioGauge : public CBitmapGauge {
01543 public:
01544 CGenericNavRadioGauge (void);
01545
01546
01547 int Read (SStream *stream, Tag tag);
01548
01549
01550 virtual ECursorResult MouseMoved (int x, int y);
01551
01552 protected:
01553 Tag radi_tag;
01554 int radi_unit;
01555 CGaugeClickArea ca01;
01556 CGaugeClickArea ca02;
01557 CGaugeClickArea ca03;
01558 CGaugeClickArea ca04;
01559 CGaugeClickArea ca05;
01560 CGaugeClickArea ca06;
01561 bool sdim;
01562 };
01563
01564
01565
01566
01567
01568 class CGenericCommRadioGauge : public CBitmapGauge {
01569 public:
01570 CGenericCommRadioGauge (void);
01571
01572
01573 int Read (SStream *stream, Tag tag);
01574
01575
01576 virtual ECursorResult MouseMoved (int x, int y);
01577
01578 protected:
01579 Tag radi_tag;
01580 int radi_unit;
01581 CGaugeClickArea ca01;
01582 CGaugeClickArea ca02;
01583 CGaugeClickArea ca03;
01584 CGaugeClickArea ca04;
01585 CGaugeClickArea ca05;
01586 CGaugeClickArea ca06;
01587 bool sdim;
01588 };
01589
01590
01591
01592
01593
01594 class CGenericTransponderGauge : public CBitmapGauge {
01595 public:
01596 CGenericTransponderGauge (void);
01597
01598
01599 int Read (SStream *stream, Tag tag);
01600
01601
01602 virtual ECursorResult MouseMoved (int x, int y);
01603
01604 protected:
01605 Tag radi_tag;
01606 int radi_unit;
01607 CGaugeClickArea tune;
01608 CGaugeClickArea mode;
01609 CGaugeClickArea idnt;
01610 CGaugeClickArea test;
01611 CGaugeClickArea ida1;
01612 CGaugeClickArea ida2;
01613 CGaugeClickArea ida3;
01614 CGaugeClickArea ida4;
01615 CGaugeClickArea idb1;
01616 CGaugeClickArea idb2;
01617 CGaugeClickArea idb3;
01618 CGaugeClickArea idb4;
01619 };
01620
01621
01622
01623
01624
01625 class CGenericADFRadioGauge : public CBitmapGauge {
01626 public:
01627 CGenericADFRadioGauge (void);
01628
01629
01630 int Read (SStream *stream, Tag tag);
01631
01632
01633 virtual ECursorResult MouseMoved (int x, int y);
01634
01635 protected:
01636 Tag radi_tag;
01637 int radi_unit;
01638 CGaugeClickArea dga1;
01639 CGaugeClickArea dga2;
01640 CGaugeClickArea dga3;
01641 CGaugeClickArea dga4;
01642 CGaugeClickArea dga5;
01643 CGaugeClickArea dgb1;
01644 CGaugeClickArea dgb2;
01645 CGaugeClickArea dgb3;
01646 CGaugeClickArea dgb4;
01647 CGaugeClickArea dgb5;
01648 CGaugeClickArea tune;
01649 CGaugeKnob mode;
01650 CGaugeClickArea stor;
01651 CGaugeClickArea test;
01652 bool sdim;
01653 };
01654
01655
01656
01657
01658
01659 class CRMINeedleGauge : public CBitmapGauge {
01660 public:
01661 CRMINeedleGauge (void);
01662
01663
01664 int Read (SStream *stream, Tag tag);
01665
01666
01667 virtual ECursorResult MouseMoved (int x, int y);
01668
01669 protected:
01670 Tag comp_tag;
01671 CGaugeNeedle comp;
01672 int cpxy_x, cpxy_y;
01673 CGaugeNeedle adfn;
01674 int anxy_x, anxy_y;
01675 CGaugeNeedle rmin;
01676 int rnxy_x, rnxy_y;
01677 Tag adf1;
01678 int adf1_unit;
01679 Tag adf2;
01680 int adf2_unit;
01681 Tag nav1;
01682 int nav1_unit;
01683 Tag nav2;
01684 int nav2_unit;
01685 SArtOffset adfa;
01686 SArtOffset vora;
01687 CGaugeClickArea lbtn;
01688 CGaugeClickArea rbtn;
01689 };
01690
01691
01692
01693
01694
01695 class CNavGaugeGroup : public CGauge {
01696 public:
01697 CNavGaugeGroup (void);
01698
01699
01700 int Read (SStream *stream, Tag tag);
01701
01702 protected:
01703 Tag nav1;
01704 Tag nav2;
01705 };
01706
01707
01708
01709
01710
01711 class CRadioGaugeGroup : public CGauge {
01712 public:
01713 CRadioGaugeGroup (void);
01714
01715
01716 int Read (SStream *stream, Tag tag);
01717
01718 protected:
01719 Tag rad1_tag;
01720 Tag rad2_tag;
01721 Tag key_tag;
01722 };
01723
01724
01725
01726
01727
01728 class CAnnunciator : public CBitmapGauge {
01729 public:
01730 CAnnunciator (void);
01731
01732
01733 int Read (SStream *stream, Tag tag);
01734
01735 protected:
01736 };
01737
01738
01739
01740
01741
01742 class CFlyhawkAnnunciator : public CGauge {
01743 public:
01744 CFlyhawkAnnunciator (void);
01745
01746
01747 int Read (SStream *stream, Tag tag);
01748
01749 protected:
01750 char lowf_art[64];
01751 char lowl_art[64];
01752 char lowr_art[64];
01753 char oilp_art[64];
01754 char vacl_art[64];
01755 char vacr_art[64];
01756 char lowv_art[64];
01757 char volt_art[64];
01758 char line_art[64];
01759 };
01760
01761
01762
01763
01764
01765 class CFlyhawkAnnunciatorTest : public CGauge {
01766 public:
01767 CFlyhawkAnnunciatorTest (void);
01768
01769
01770 int Read (SStream *stream, Tag tag);
01771
01772 protected:
01773 char swit_art[64];
01774 char sfxu_wav[64];
01775 char sfxd_wav[64];
01776 int sfxu_tag;
01777 int sfxd_tag;
01778 char csru_csr[64];
01779 char csrd_csr[64];
01780 };
01781
01782
01783
01784
01785
01786 class CFlyhawkNavGpsPanelGauge : public CBitmapGauge {
01787 public:
01788 CFlyhawkNavGpsPanelGauge (void);
01789
01790
01791 int Read (SStream *stream, Tag tag);
01792
01793
01794 virtual ECursorResult MouseMoved (int x, int y);
01795
01796 protected:
01797 CGaugeKnob cnav;
01798 CGaugeKnob capr;
01799 int xnav_x, xnav_y;
01800 int xgps_x, xgps_y;
01801 int xapr_x, xapr_y;
01802 int xmsg_x, xmsg_y;
01803 int xwpt_x, xwpt_y;
01804 };
01805
01806
01807
01808
01809
01810 class CFlyhawkFuelSelectorGauge : public CBitmapGauge {
01811 public:
01812 CFlyhawkFuelSelectorGauge (void);
01813
01814
01815 int Read (SStream *stream, Tag tag);
01816
01817
01818 virtual ECursorResult MouseMoved (int x, int y);
01819
01820 protected:
01821 char swit_art[64];
01822 CGaugeClickArea left;
01823 CGaugeClickArea both;
01824 CGaugeClickArea righ;
01825 SMessage Lmsg;
01826 SMessage Rmsg;
01827 };
01828
01829
01830
01831
01832
01833 class CFlyhawkElevatorTrimGauge : public CBitmapGauge {
01834 public:
01835 CFlyhawkElevatorTrimGauge (void);
01836
01837
01838 int Read (SStream *stream, Tag tag);
01839
01840
01841 virtual ECursorResult MouseMoved (int x, int y);
01842
01843 protected:
01844 SArtOffset trmw;
01845 SArtOffset trmi;
01846 CGaugeClickArea down;
01847 CGaugeClickArea up;
01848 };
01849
01850
01851
01852
01853
01854 class CMalybooCHTIndicatorGauge : public CBitmapGauge {
01855 public:
01856 CMalybooCHTIndicatorGauge (void);
01857
01858
01859 int Read (SStream *stream, Tag tag);
01860
01861 protected:
01862 int xoff[6];
01863 int yoff;
01864 };
01865
01866
01867
01868
01869
01870 class CMalybooCHTButtonGauge : public CBitmapGauge {
01871 public:
01872 CMalybooCHTButtonGauge (void);
01873
01874
01875 int Read (SStream *stream, Tag tag);
01876
01877 protected:
01878 };
01879
01880
01881
01882
01883
01884 class CMalybooNavGpsPanelGauge : public CBitmapGauge {
01885 public:
01886 CMalybooNavGpsPanelGauge (void);
01887
01888
01889 int Read (SStream *stream, Tag tag);
01890
01891 protected:
01892 CGaugeClickArea cnav;
01893 int xnav_x, xnav_y;
01894 int xgps_x, xgps_y;
01895 CGaugeClickArea capr;
01896 int xapr_x, xapr_y;
01897 int xarm_x, xarm_y;
01898 int xact_x, xact_y;
01899 CGaugeClickArea ccrs;
01900 int xcrs_x, xcrs_y;
01901 int xobs_x, xobs_y;
01902 int xleg_x, xleg_y;
01903 CGaugeClickArea cmsg;
01904 int xmsg_x, xmsg_y;
01905 int xwpt_x, xwpt_y;
01906 CGaugeClickArea cyaw;
01907 int xyaw_x, xyaw_y;
01908 };
01909
01910
01911
01912
01913
01914 class CMalybooDigitalClockGauge : public CBitmapGauge {
01915 public:
01916 CMalybooDigitalClockGauge (void);
01917
01918
01919 int Read (SStream *stream, Tag tag);
01920
01921 protected:
01922 int clkd_x1, clkd_y1, clkd_x2, clkd_y2;
01923 CGaugeClickArea mode;
01924 CGaugeClickArea powr;
01925 CGaugeClickArea play;
01926 CGaugeClickArea rec;
01927 CGaugeClickArea set;
01928 };
01929
01930
01931
01932
01933 class CMalybooEngineMonitorGauge : public CBitmapGauge {
01934 public:
01935 CMalybooEngineMonitorGauge (void);
01936
01937
01938 int Read (SStream *stream, Tag tag);
01939
01940 protected:
01941 CGaugeClickArea fuel;
01942 CGaugeClickArea inst;
01943 CGaugeClickArea blk_;
01944 CGaugeClickArea fill;
01945 CGaugeClickArea pwr_;
01946 CGaugeClickArea set_;
01947 CGaugeClickArea MAP_;
01948 CGaugeClickArea RPM_;
01949 CGaugeClickArea TIT;
01950 CGaugeClickArea FF__;
01951 CGaugeClickArea OT__;
01952 CGaugeClickArea OP__;
01953 CGaugeClickArea CHT_;
01954 CGaugeClickArea VAC_;
01955 CGaugeClickArea LQTY;
01956 CGaugeClickArea RQTY;
01957 char rlit_art[64];
01958 char glit_art[64];
01959 char ylit_art[64];
01960 };
01961
01962
01963
01964
01965
01966 class CNavajoFuelSelectorGauge : public CBitmapGauge {
01967 public:
01968 CNavajoFuelSelectorGauge (void);
01969
01970
01971 int Read (SStream *stream, Tag tag);
01972
01973 protected:
01974 char swit[64];
01975 CGaugeClickArea obca;
01976 CGaugeClickArea ofca;
01977 CGaugeClickArea ibca;
01978 SMessage obms;
01979 SMessage ibms;
01980 };
01981
01982
01983
01984
01985
01986 class CNavajoAmmeterGauge : public CNeedleGauge {
01987 public:
01988 CNavajoAmmeterGauge (void);
01989
01990
01991 int Read (SStream *stream, Tag tag);
01992
01993 protected:
01994 SMessage mChg;
01995 SMessage mLtM;
01996 SMessage mRtM;
01997 SMessage mLtS;
01998 SMessage mRtS;
01999 CGaugeClickArea ca01;
02000 CGaugeClickArea ca02;
02001 };
02002
02003
02004
02005
02006
02007 class CNavajoRadarAltimeterGauge : public CNeedleGauge {
02008 public:
02009 CNavajoRadarAltimeterGauge (void);
02010
02011
02012 int Read (SStream *stream, Tag tag);
02013
02014 protected:
02015 SMessage bMsg;
02016 CDataMap dhbt;
02017 SArtOffset bug;
02018 SArtOffset plit;
02019 SMessage dhms;
02020 CGaugeKnob knob;
02021 };
02022
02023
02024
02025
02026
02027 class CCollinsEFISSelectionGauge : public CBitmapGauge {
02028 public:
02029 CCollinsEFISSelectionGauge (void);
02030
02031
02032 int Read (SStream *stream, Tag tag);
02033
02034 protected:
02035 CGaugeClickArea brg_;
02036 CGaugeClickArea brgm;
02037 CGaugeKnob brgk;
02038 CGaugeKnob dh__;
02039 CGaugeClickArea form;
02040 CGaugeClickArea crs_;
02041 CGaugeClickArea crsm;
02042 CGaugeKnob crsk;
02043 CGaugeClickArea wx__;
02044 CGaugeClickArea nav_;
02045 SMessage pfdm;
02046 SMessage ehim;
02047 SMessage mndm;
02048 SMessage adm_;
02049 SMessage aplt;
02050 };
02051
02052
02053
02054
02055
02056 class CCollinsVspeedPanel : public CBitmapGauge {
02057 public:
02058 CCollinsVspeedPanel (void);
02059
02060
02061 int Read (SStream *stream, Tag tag);
02062
02063 protected:
02064 CGaugeClickArea sped;
02065 CGaugeClickArea vsel;
02066 };
02067
02068
02069
02070
02071
02072 class CCollinsHFRadioGauge : public CBitmapGauge {
02073 public:
02074 CCollinsHFRadioGauge (void);
02075
02076
02077 int Read (SStream *stream, Tag tag);
02078
02079 protected:
02080 CGaugeClickArea tel;
02081 CGaugeClickArea am;
02082 CGaugeClickArea usb;
02083 CGaugeClickArea lsb;
02084 CGaugeClickArea mhz;
02085 CGaugeClickArea khz;
02086 CGaugeClickArea stor;
02087 CGaugeClickArea tune;
02088 CGaugeClickArea volu;
02089 CGaugeClickArea dash;
02090 CGaugeClickArea tx;
02091 CGaugeClickArea chan;
02092 bool ft13;
02093 };
02094
02095
02096
02097
02098
02099 class CCollinsPFDGauge : public CBitmapGauge {
02100 public:
02101 CCollinsPFDGauge (void);
02102
02103
02104 int Read (SStream *stream, Tag tag);
02105
02106 protected:
02107 };
02108
02109
02110
02111
02112
02113 class CCollinsNDGauge : public CBitmapGauge {
02114 public:
02115 CCollinsNDGauge (void);
02116
02117
02118 int Read (SStream *stream, Tag tag);
02119
02120 protected:
02121 };
02122
02123
02124
02125
02126
02127 class CCollinsRTUGauge : public CBitmapGauge {
02128 public:
02129 CCollinsRTUGauge (void);
02130
02131
02132 int Read (SStream *stream, Tag tag);
02133
02134 protected:
02135 CGaugeRectangle lin1;
02136 CGaugeRectangle lin2;
02137 CGaugeRectangle lin3;
02138 CGaugeRectangle lin4;
02139 CGaugeRectangle lin5;
02140 CGaugeClickArea btn1;
02141 CGaugeClickArea btn2;
02142 CGaugeClickArea btn3;
02143 CGaugeClickArea btn4;
02144 CGaugeClickArea btn5;
02145 CGaugeClickArea cmaw;
02146 CGaugeClickArea cmaf;
02147 CGaugeClickArea cmsw;
02148 CGaugeClickArea cmsf;
02149 CGaugeClickArea nvaw;
02150 CGaugeClickArea nvaf;
02151 CGaugeClickArea adf1;
02152 CGaugeClickArea adf2;
02153 CGaugeClickArea adf3;
02154 CGaugeClickArea adf4;
02155 CGaugeClickArea adf5;
02156 CGaugeClickArea xpd1;
02157 CGaugeClickArea xpd2;
02158 CGaugeClickArea xpd3;
02159 CGaugeClickArea xpd4;
02160 SMessage rtu_;
02161 SMessage dme1;
02162 SMessage dme2;
02163 SArtOffset dmeH;
02164 SArtOffset repl;
02165 CGaugeClickArea atci;
02166 CGaugeClickArea dmeh;
02167 CGaugeClickArea coms;
02168 CGaugeClickArea atcs;
02169 CGaugeClickArea b1_2;
02170 CGaugeClickArea adft;
02171 int side;
02172 };
02173
02174
02175
02176
02177
02178 class CCollinsAirDataGauge : public CBitmapGauge {
02179 public:
02180 CCollinsAirDataGauge (void);
02181
02182
02183 int Read (SStream *stream, Tag tag);
02184
02185 protected:
02186 CGaugeRectangle scrn;
02187 CGaugeKnob baro;
02188 CGaugeClickArea vs__;
02189 CGaugeClickArea alt_;
02190 CGaugeClickArea in__;
02191 CGaugeClickArea mb__;
02192 };
02193
02194
02195
02196
02197
02198 class CCollinsMNDGauge : public CBitmapGauge {
02199 public:
02200 CCollinsMNDGauge (void);
02201
02202
02203 int Read (SStream *stream, Tag tag);
02204
02205 protected:
02206 SMessage obs_;
02207 SMessage ap__;
02208 CGaugeClickArea frmt;
02209 CGaugeClickArea hdg_;
02210 CGaugeClickArea crs_;
02211 CGaugeClickArea brgt;
02212 };
02213
02214
02215
02216
02217
02218 class CUniversalFMSGauge : public CBitmapGauge {
02219 public:
02220 CUniversalFMSGauge (void);
02221
02222
02223 int Read (SStream *stream, Tag tag);
02224
02225 protected:
02226 CGaugeClickArea scrn;
02227 CGaugeClickArea l1;
02228 CGaugeClickArea l2;
02229 CGaugeClickArea l3;
02230 CGaugeClickArea l4;
02231 CGaugeClickArea l5;
02232 CGaugeClickArea r1;
02233 CGaugeClickArea r2;
02234 CGaugeClickArea r3;
02235 CGaugeClickArea r4;
02236 CGaugeClickArea r5;
02237 CGaugeClickArea data;
02238 CGaugeClickArea nav;
02239 CGaugeClickArea vnav;
02240 CGaugeClickArea dto;
02241 CGaugeClickArea list;
02242 CGaugeClickArea prev;
02243 CGaugeClickArea fuel;
02244 CGaugeClickArea fpl;
02245 CGaugeClickArea perf;
02246 CGaugeClickArea tune;
02247 CGaugeClickArea menu;
02248 CGaugeClickArea next;
02249 CGaugeClickArea key1;
02250 CGaugeClickArea key2;
02251 CGaugeClickArea key3;
02252 CGaugeClickArea key4;
02253 CGaugeClickArea key5;
02254 CGaugeClickArea key6;
02255 CGaugeClickArea key7;
02256 CGaugeClickArea key8;
02257 CGaugeClickArea key9;
02258 CGaugeClickArea back;
02259 CGaugeClickArea key0;
02260 CGaugeClickArea msg;
02261 CGaugeClickArea dim;
02262 CGaugeClickArea plus;
02263 CGaugeClickArea entr;
02264 CGaugeClickArea keyA;
02265 CGaugeClickArea keyB;
02266 CGaugeClickArea keyC;
02267 CGaugeClickArea keyD;
02268 CGaugeClickArea keyE;
02269 CGaugeClickArea keyF;
02270 CGaugeClickArea keyG;
02271 CGaugeClickArea keyH;
02272 CGaugeClickArea keyI;
02273 CGaugeClickArea keyJ;
02274 CGaugeClickArea keyK;
02275 CGaugeClickArea keyL;
02276 CGaugeClickArea keyM;
02277 CGaugeClickArea keyN;
02278 CGaugeClickArea keyO;
02279 CGaugeClickArea keyP;
02280 CGaugeClickArea keyQ;
02281 CGaugeClickArea keyR;
02282 CGaugeClickArea keyS;
02283 CGaugeClickArea keyT;
02284 CGaugeClickArea keyU;
02285 CGaugeClickArea keyV;
02286 CGaugeClickArea keyW;
02287 CGaugeClickArea keyX;
02288 CGaugeClickArea keyY;
02289 CGaugeClickArea keyZ;
02290 };
02291
02292
02293
02294
02295
02296 class CPilatusEFISPanel : public CBitmapGauge {
02297 public:
02298 CPilatusEFISPanel (void);
02299
02300
02301 int Read (SStream *stream, Tag tag);
02302
02303 protected:
02304 SMessage pfdm;
02305 SMessage navm;
02306 CGaugeKnob dh;
02307 CGaugeKnob brt;
02308 CGaugeKnob crs;
02309 CGaugeKnob hdg;
02310 CGaugeKnob hsi;
02311 CGaugeKnob arc;
02312 CGaugeKnob nav;
02313 CGaugeKnob rgup;
02314 CGaugeKnob rgdn;
02315 CGaugeKnob nav1;
02316 CGaugeKnob nav2;
02317 CGaugeKnob k1_2;
02318 };
02319
02320
02321
02322
02323
02324 class CWalkerTempAirspeedGauge : public CBitmapGauge {
02325 public:
02326 CWalkerTempAirspeedGauge (void);
02327
02328
02329 int Read (SStream *stream, Tag tag);
02330
02331 protected:
02332 CGaugeClickArea tat;
02333 CGaugeClickArea sat;
02334 CGaugeClickArea tas;
02335 };
02336
02337
02338
02339
02340
02341 class CGyroSlavingGauge : public CBitmapGauge {
02342 public:
02343 CGyroSlavingGauge (void);
02344
02345
02346 int Read (SStream *stream, Tag tag);
02347 void ReadFinished (void);
02348
02349 protected:
02350 SArtOffset nedl;
02351 SArtOffset slvb;
02352 SArtOffset ccwb;
02353 CGaugeRectangle err;
02354 CGaugeClickArea slav;
02355 CGaugeClickArea free;
02356 CGaugeClickArea mode;
02357 CGaugeClickArea ccw;
02358 CGaugeClickArea cw;
02359 int lrgb_r, lrgb_g, lrgb_b;
02360 char sfxu_wav[64];
02361 char sfxd_wav[64];
02362 int sfxu_tag;
02363 int sfxd_tag;
02364
02365 };
02366
02367
02368
02369
02370
02371 class CVerticalRateGauge : public CBitmapGauge {
02372 public:
02373 CVerticalRateGauge (void);
02374
02375
02376 int Read (SStream *stream, Tag tag);
02377
02378 protected:
02379 CGaugeKnob eng;
02380 CGaugeKnob arm;
02381 CGaugeKnob knob;
02382 CGaugeRectangle led;
02383 Tag avil;
02384 };
02385
02386
02387
02388
02389
02390 class CPropSyncGauge : public CBitmapGauge {
02391 public:
02392 CPropSyncGauge (void);
02393
02394
02395 int Read (SStream *stream, Tag tag);
02396
02397 protected:
02398 };
02399
02400
02401
02402
02403
02404 class CDMEGauge : public CBitmapGauge {
02405 public:
02406 CDMEGauge (void);
02407
02408
02409 int Read (SStream *stream, Tag tag);
02410
02411
02412 virtual ECursorResult MouseMoved (int x, int y);
02413
02414 protected:
02415 bool hold;
02416 int dist_x, dist_y;
02417 int sped_x, sped_y;
02418 int time_x, time_y;
02419 CGaugeKnob knob;
02420 bool tiny;
02421 };
02422
02423
02424
02425
02426
02427 class CDME2Gauge : public CBitmapGauge {
02428 public:
02429 CDME2Gauge (void);
02430
02431
02432 int Read (SStream *stream, Tag tag);
02433
02434
02435 virtual ECursorResult MouseMoved (int x, int y);
02436
02437 protected:
02438 bool hold;
02439 int left_x, left_y;
02440 int rght_x, rght_y;
02441 CGaugeClickArea ch;
02442 CGaugeClickArea sel;
02443 CGaugeClickArea pwr;
02444 };
02445
02446
02447
02448
02449
02450 class CWeatherRadarGauge : public CBitmapGauge {
02451 public:
02452 CWeatherRadarGauge (void);
02453
02454
02455 int Read (SStream *stream, Tag tag);
02456
02457 protected:
02458 CGaugeRectangle scrn;
02459 CGaugeClickArea wx;
02460 CGaugeClickArea vp;
02461 CGaugeClickArea map;
02462 CGaugeClickArea nav;
02463 CGaugeClickArea rngp;
02464 CGaugeClickArea rngm;
02465 CGaugeClickArea trkp;
02466 CGaugeClickArea trkm;
02467 CGaugeKnob mode;
02468 CGaugeKnob tilt;
02469 CGaugeKnob gain;
02470 CGaugeKnob brit;
02471 };
02472
02473
02474
02475
02476
02477 class CAnalogAltPreselectGauge : public CBitmapGauge {
02478 public:
02479 CAnalogAltPreselectGauge (void);
02480
02481
02482 int Read (SStream *stream, Tag tag);
02483
02484 protected:
02485 CGaugeKnob knob;
02486 char fdig_art[64];
02487 char digi_art[64];
02488 char zero_art[64];
02489 int thou_x, thou_y;
02490 int hund_x, hund_y;
02491 int ones_x, ones_y;
02492 int dspc;
02493 int zspc;
02494 CGaugeClickArea aler;
02495 };
02496
02497
02498
02499
02500
02501
02502
02503
02504
02505
02506
02507
02508
02509 class CMomentaryHotSpotGauge : public CBitmapGauge {
02510 public:
02511 CMomentaryHotSpotGauge (void);
02512
02513
02514 int Read (SStream *stream, Tag tag);
02515
02516 protected:
02517 };
02518
02519
02520
02521
02522 class CSimpleInOutStateSwitch : public CBitmapGauge {
02523 public:
02524 CSimpleInOutStateSwitch (void);
02525 virtual ~CSimpleInOutStateSwitch (void);
02526
02527
02528 int Read (SStream *stream, Tag tag);
02529 virtual void ReadFinished (void);
02530
02531
02532 virtual void Draw (void);
02533 virtual EClickResult MouseClick (int x, int y, int buttons);
02534
02535 protected:
02536 char sbmp_art[64];
02537 SBitmap* sbmp;
02538 int onvl;
02539 int ofvl;
02540 bool stat;
02541 char onht[64];
02542 char ofht[64];
02543
02544
02545 char onsf_wav[64];
02546 char ofsf_wav[64];
02547 int onsf_tag, ofsf_tag;
02548
02549 char sstr_off[64];
02550 char sstr_on[64];
02551 bool mmnt;
02552 };
02553
02554
02555
02556
02557
02558 class CLitInOutSwitch : public CSimpleInOutStateSwitch {
02559 public:
02560 CLitInOutSwitch (void);
02561
02562
02563 int Read (SStream *stream, Tag tag);
02564
02565 protected:
02566 SMessage powr;
02567 };
02568
02569
02570
02571
02572
02573 class CSimpleSwitch : public CGauge {
02574 public:
02575 CSimpleSwitch (void);
02576
02577
02578 virtual int Read (SStream *stream, Tag tag);
02579 virtual void ReadFinished (void);
02580
02581
02582 virtual void Draw (void);
02583 virtual ECursorResult MouseMoved (int x, int y);
02584 virtual EClickResult MouseClick (int x, int y, int buttons);
02585
02586 protected:
02587 void DecState (void);
02588 void IncState (void);
02589
02590 protected:
02591 char bmap_art[64];
02592 SBitmap *bmap;
02593
02594
02595 char sfxu_wav[64];
02596 char sfxd_wav[64];
02597 int sfxu_tag;
02598 int sfxd_tag;
02599
02600
02601 char csru_csr[64];
02602 char csrd_csr[64];
02603 Tag csru_tag;
02604 Tag csrd_tag;
02605
02606
02607 int stat_n;
02608 int *stat;
02609 int sstr_n;
02610 char **sstr;
02611 int orie;
02612 int ordr;
02613 int indx;
02614 bool mmnt;
02615 bool mntO;
02616 };
02617
02618
02619
02620
02621
02622 class CBasicBatterySwitch : public CSimpleSwitch {
02623 public:
02624 CBasicBatterySwitch (void);
02625
02626
02627 int Read (SStream *stream, Tag tag);
02628 virtual void Draw (void);
02629 virtual EClickResult MouseClick (int x, int y, int buttons);
02630
02631 protected:
02632 Tag altt;
02633 Tag batt;
02634 SMessage mesgBatt;
02635 SMessage mesgAlt;
02636 bool stateAlt;
02637 bool stateBatt;
02638 };
02639
02640
02641
02642
02643
02644 class CTwoStateELTGauge : public CSimpleSwitch {
02645 public:
02646 CTwoStateELTGauge (void);
02647
02648
02649 int Read (SStream *stream, Tag tag);
02650
02651 protected:
02652 };
02653
02654
02655
02656
02657
02658 class CSwitchPairGauge : public CSimpleSwitch {
02659 public:
02660 CSwitchPairGauge (void);
02661
02662
02663 int Read (SStream *stream, Tag tag);
02664
02665
02666 virtual ECursorResult MouseMoved (int x, int y);
02667
02668 protected:
02669 SMessage s1ms;
02670 SMessage s2ms;
02671 CGaugeClickArea s1of;
02672 CGaugeClickArea s1on;
02673 CGaugeClickArea s2of;
02674 CGaugeClickArea s2on;
02675 };
02676
02677
02678
02679
02680
02681 class CSimpleFloatSwitch : public CGauge {
02682 public:
02683 CSimpleFloatSwitch (void);
02684 virtual ~CSimpleFloatSwitch (void);
02685
02686
02687 int Read (SStream *stream, Tag tag);
02688 void ReadFinished (void);
02689
02690 protected:
02691 char bmap_art[64];
02692
02693
02694 char csru_csr[64];
02695 char csrd_csr[64];
02696 int csru_tag, csrd_tag;
02697
02698
02699 char sfxu_wav[64];
02700 char sfxd_wav[64];
02701 int sfxu_tag, sfxd_tag;
02702
02703 int stat_n;
02704 float *stat;
02705 int sstr_n;
02706 char **sstr;
02707 bool mmnt;
02708 };
02709
02710
02711
02712
02713
02714 class CDualSwitch : public CSimpleSwitch {
02715 public:
02716 CDualSwitch (void);
02717
02718
02719 int Read (SStream *stream, Tag tag);
02720
02721 protected:
02722 int nums;
02723 int orie;
02724 SMessage usrl;
02725 SMessage usrr;
02726 bool mmnt;
02727 };
02728
02729
02730
02731
02732
02733 class CPushPullKnobGauge : public CGauge {
02734 public:
02735 CPushPullKnobGauge (void);
02736 virtual ~CPushPullKnobGauge (void);
02737
02738
02739 int Read (SStream *stream, Tag tag);
02740
02741 protected:
02742 char bmap_art[64];
02743 SMessage mesg;
02744 SMessage lnk1;
02745 int ytop;
02746 int ybtm;
02747 int valu_n;
02748 SKnobArea *valu;
02749 float lowv;
02750 float high;
02751 bool poll;
02752 };
02753
02754
02755
02756
02757
02758 class CPrimerKnobGauge : public CPushPullKnobGauge {
02759 public:
02760 CPrimerKnobGauge (void);
02761
02762
02763 int Read (SStream *stream, Tag tag);
02764
02765 protected:
02766 };
02767
02768
02769 class CFlapsSwitchGauge : public CPushPullKnobGauge {
02770 public:
02771 CFlapsSwitchGauge (void);
02772
02773
02774 int Read (SStream *stream, Tag tag);
02775
02776 protected:
02777 };
02778
02779
02780 class CLitLandingGearKnobGauge : public CPushPullKnobGauge {
02781 public:
02782 CLitLandingGearKnobGauge (void);
02783
02784
02785 int Read (SStream *stream, Tag tag);
02786
02787 protected:
02788 };
02789
02790
02791
02792 class CMixtureKnobGauge : public CPushPullKnobGauge {
02793 public:
02794 CMixtureKnobGauge (void);
02795
02796
02797 int Read (SStream *stream, Tag tag);
02798
02799 protected:
02800 };
02801
02802
02803 class CReversibleThrottleKnobGauge : public CPushPullKnobGauge {
02804 public:
02805 CReversibleThrottleKnobGauge (void);
02806
02807
02808 int Read (SStream *stream, Tag tag);
02809
02810 protected:
02811 SMessage rvsr;
02812 char rbmp_art[64];
02813 int rtop;
02814 int rbtm;
02815 };
02816
02817
02818 class CDualKnobGauge : public CGauge {
02819 public:
02820 CDualKnobGauge (void);
02821
02822
02823 int Read (SStream *stream, Tag tag);
02824
02825
02826 virtual ECursorResult MouseMoved (int x, int y);
02827
02828 protected:
02829 SMessage imsg;
02830 SMessage omsg;
02831 float iinc;
02832 float idec;
02833 float oinc;
02834 float odec;
02835 CGaugeClickArea inca;
02836 CGaugeClickArea ouca;
02837 };
02838
02839
02840 class CFlyhawkLightKnobGauge : public CDualKnobGauge {
02841 public:
02842 CFlyhawkLightKnobGauge (void);
02843
02844
02845 int Read (SStream *stream, Tag tag);
02846
02847 protected:
02848 };
02849
02850
02851 class CTurnKnobGauge : public CGauge {
02852 public:
02853 CTurnKnobGauge (void);
02854
02855
02856 int Read (SStream *stream, Tag tag);
02857
02858 protected:
02859 char bmap_art[64];
02860 float incr;
02861 float decr;
02862 };
02863
02864
02865 class CBasicMagnetoSwitch : public CSimpleSwitch {
02866 public:
02867 CBasicMagnetoSwitch (void);
02868
02869
02870 virtual void Draw (void);
02871
02872
02873 virtual EClickResult MouseClick (int x, int y, int buttons);
02874 virtual EClickResult StopClick (int x, int y, int buttons);
02875
02876 protected:
02877 };
02878
02879
02880 class CCoveredSwitch : public CSimpleSwitch {
02881 public:
02882 CCoveredSwitch (void);
02883
02884
02885 int Read (SStream *stream, Tag tag);
02886
02887 protected:
02888 };
02889
02890
02891 class CCoveredLightButtonGauge : public CCoveredSwitch {
02892 public:
02893 CCoveredLightButtonGauge (void);
02894
02895
02896 int Read (SStream *stream, Tag tag);
02897
02898 protected:
02899 char lbmp_art[64];
02900 SMessage lmsg;
02901 };
02902
02903
02904 class CVerticalSliderGauge : public CGauge {
02905 public:
02906 CVerticalSliderGauge (void);
02907
02908
02909 int Read (SStream *stream, Tag tag);
02910
02911 protected:
02912 };
02913
02914 class CTrimWheelGauge : public CGauge {
02915 public:
02916 CTrimWheelGauge (void);
02917
02918
02919 int Read (SStream *stream, Tag tag);
02920
02921
02922 virtual ECursorResult MouseMoved (int x, int y);
02923
02924 protected:
02925 char bmap_art[64];
02926 CGaugeClickArea down;
02927 CGaugeClickArea up;
02928 };
02929
02930
02931 class CTrimWheelIndicatorGauge : public CTrimWheelGauge {
02932 public:
02933 CTrimWheelIndicatorGauge (void);
02934
02935
02936 int Read (SStream *stream, Tag tag);
02937
02938 protected:
02939 };
02940
02941
02942 class CIndicatorGauge : public CGauge {
02943 public:
02944 CIndicatorGauge (void);
02945
02946
02947 int Read (SStream *stream, Tag tag);
02948
02949 protected:
02950 char bmap_art[64];
02951 float lval;
02952 float hval;
02953 };
02954
02955
02956 class CFlapsIndicatorGauge : public CIndicatorGauge {
02957 public:
02958 CFlapsIndicatorGauge (void);
02959
02960
02961 int Read (SStream *stream, Tag tag);
02962
02963 protected:
02964 };
02965
02966
02967 class CPushButtonGauge : public CGauge {
02968 public:
02969 CPushButtonGauge (void);
02970
02971
02972 int Read (SStream *stream, Tag tag);
02973
02974 protected:
02975 char bmap_art[64];
02976 char curs_csr[64];
02977 bool mmnt;
02978 };
02979
02980
02981 class CLightButtonGauge : public CPushButtonGauge {
02982 public:
02983 CLightButtonGauge (void);
02984
02985
02986 int Read (SStream *stream, Tag tag);
02987
02988 protected:
02989 SMessage lmsg;
02990 int stat_off, stat_on;
02991 char sstr_off[64];
02992 char sstr_on[64];
02993 };
02994
02995
02996 class CTurnSwitchGauge : public CSimpleSwitch {
02997 public:
02998 CTurnSwitchGauge (void);
02999
03000
03001 int Read (SStream *stream, Tag tag);
03002
03003 protected:
03004 };
03005
03006
03007 class CMasterCautionWarningButtonGauge : public CGauge {
03008 public:
03009 CMasterCautionWarningButtonGauge (void);
03010
03011
03012 int Read (SStream *stream, Tag tag);
03013 void ReadFinished (void);
03014
03015 protected:
03016 char bmap_art[64];
03017
03018
03019 char sfx_wav[64];
03020 int sfx_tag;
03021
03022 SMessage smsg;
03023 SMessage lmsg;
03024 };
03025
03026
03027 class CKAFireExtinguisherButton : public CGauge {
03028 public:
03029 CKAFireExtinguisherButton (void);
03030
03031
03032 int Read (SStream *stream, Tag tag);
03033 void ReadFinished (void);
03034
03035 protected:
03036 SArtOffset fire;
03037 SArtOffset ok;
03038 SArtOffset dsch;
03039
03040
03041 char sfx_wav[64];
03042 int sfx_tag;
03043
03044
03045 char curs_csr[64];
03046 int curs_tag;
03047 };
03048
03049
03050 class CWalkerAPPanel : public CGauge {
03051 public:
03052 CWalkerAPPanel (void);
03053
03054
03055 int Read (SStream *stream, Tag tag);
03056
03057 protected:
03058 CGaugeClickArea left;
03059 CGaugeClickArea rght;
03060 CGaugeClickArea up;
03061 CGaugeClickArea down;
03062 CGaugeClickArea xfer;
03063 CGaugeClickArea turb;
03064 CGaugeClickArea ydon;
03065 CGaugeClickArea ydof;
03066 CGaugeClickArea apon;
03067 CGaugeClickArea apof;
03068 char enga_yd_art[64];
03069 char enga_ap_art[64];
03070 char knob_bnk_art[64];
03071 char knob_trm_art[64];
03072 };
03073
03074
03075 class CWalkerFirePanel : public CGauge {
03076 public:
03077 CWalkerFirePanel (void);
03078
03079
03080 int Read (SStream *stream, Tag tag);
03081
03082 protected:
03083 SMessage fir1;
03084 SMessage fir2;
03085 CGaugeKnob ext1;
03086 CGaugeKnob ext2;
03087 CGaugeClickArea bel1;
03088 CGaugeClickArea bel2;
03089 CGaugeRectangle ef1;
03090 CGaugeRectangle ef2;
03091 CGaugeAnnunciator ann1;
03092 CGaugeAnnunciator ann2;
03093 };
03094
03095
03096 class CLightSwitchSetGauge : public CBitmapGauge {
03097 public:
03098 CLightSwitchSetGauge (void);
03099
03100
03101 int Read (SStream *stream, Tag tag);
03102
03103 protected:
03104 SMessage lmsg;
03105 };
03106
03107
03108 class CRockerSwitch : public CSimpleSwitch {
03109 public:
03110 CRockerSwitch (void);
03111
03112
03113 int Read (SStream *stream, Tag tag);
03114 void ReadFinished (void);
03115
03116
03117 virtual ECursorResult MouseMoved (int x, int y);
03118
03119 protected:
03120 CGaugeClickArea one;
03121 CGaugeClickArea two;
03122 SMessage msg1;
03123 SMessage msg2;
03124 char sfx1_wav[64];
03125 char sfx2_wav[64];
03126 int sfx1_tag, sfx2_tag;
03127 };
03128
03129
03130 #endif // GAUGES_H
03131
03132
03133
03134
03135
03136
03137
03138
03139
03140
03141
03142
03143
03144
03145
03146
03147
03148
03149
03150
03151
03152
03153
03154
03155
03156
03157
03158
03159
03160
03161
03162
03163
03164
03165
03166
03167
03168
03169
03170
03171
03172
03173
03174
03175
03176
03177
03178
03179
03180
03181
03182
03183
03184
03185
03186
03187
03188
03189
03190
03191
03192
03193
03194
03195
03196
03197
03198
03199
03200
03201
03202
03203
03204
03205
03206
03207
03208
03209
03210
03211
03212
03213
03214
03215
03216
03217
03218