16 using namespace swift::misc::aviation;
17 using namespace swift::misc::simulation;
19 using namespace swift::core::context;
23 CCockpitTransponderModeLedsComponent::CCockpitTransponderModeLedsComponent(QWidget *parent)
34 Q_ASSERT_X(
sGui, Q_FUNC_INFO,
"Need sGui");
36 &CCockpitTransponderModeLedsComponent::onAircraftCockpitChanged);
39 void CCockpitTransponderModeLedsComponent::onAircraftCockpitChanged(
const CSimulatedAircraft &aircraft,
46 void CCockpitTransponderModeLedsComponent::onLedClicked()
48 QWidget *w = qobject_cast<QWidget *>(QObject::sender());
52 if (m_ledStandby.data() == w) { mode = CTransponder::StateStandby; }
53 else if (m_ledIdent.data() == w) { mode = CTransponder::StateIdent; }
54 else if (m_ledModes.data() == w) { mode = CTransponder::ModeC; }
57 if (ownAircraft.getTransponderMode() == mode) {
return; }
70 void CCockpitTransponderModeLedsComponent::init(
bool horizontal)
72 QBoxLayout *ledLayout =
nullptr;
73 if (horizontal) { ledLayout =
new QHBoxLayout(
this); }
74 else { ledLayout =
new QVBoxLayout(
this); }
76 ledLayout->setContentsMargins(0, 0, 0, 0);
77 ledLayout->addWidget(m_ledStandby.data());
78 ledLayout->addWidget(m_ledModes.data());
79 ledLayout->addWidget(m_ledIdent.data());
80 connect(m_ledIdent.data(), &
CLedWidget::clicked,
this, &CCockpitTransponderModeLedsComponent::onLedClicked);
81 connect(m_ledModes.data(), &
CLedWidget::clicked,
this, &CCockpitTransponderModeLedsComponent::onLedClicked);
82 connect(m_ledStandby.data(), &
CLedWidget::clicked,
this, &CCockpitTransponderModeLedsComponent::onLedClicked);
83 this->setLayout(ledLayout);
91 if (!force && m_mode == mode) {
return; }
92 m_ledStandby->setOn(
false);
93 m_ledModes->setOn(
false);
94 m_ledIdent->setOn(
false);
98 case CTransponder::ModeA:
99 case CTransponder::ModeC:
100 case CTransponder::ModeS:
101 case CTransponder::ModeMil1:
102 case CTransponder::ModeMil2:
103 case CTransponder::ModeMil3:
104 case CTransponder::ModeMil4:
105 case CTransponder::ModeMil5: m_ledModes->setOn(
true);
break;
106 case CTransponder::StateIdent:
107 m_ledModes->setOn(
true);
108 m_ledIdent->setOn(
true);
111 case CTransponder::StateStandby: m_ledStandby->setOn(
true);
break;
115 CTransponder CCockpitTransponderModeLedsComponent::getOwnTransponder()
const
const context::IContextOwnAircraft * getIContextOwnAircraft() const
Direct access to contexts if a CCoreFacade has been initialized.
bool isShuttingDown() const
Is application shutting down?
virtual swift::misc::simulation::CSimulatedAircraft getOwnAircraft() const =0
Get own aircraft.
virtual bool updateCockpit(const swift::misc::aviation::CComSystem &com1, const swift::misc::aviation::CComSystem &com2, const swift::misc::aviation::CTransponder &transponder, const swift::misc::CIdentifier &originator)=0
Update own cockpit.
void setMode(swift::misc::aviation::CTransponder::TransponderMode mode, bool force=false)
Set the mode.
Base class with a member CIdentifier to be inherited by a class which has an identity in the environm...
bool isMyIdentifier(const CIdentifier &otherIdentifier) const
My identifier?
const CIdentifier & identifier() const
Get identifier.
Value object encapsulating information identifying a component of a modular distributed swift process...
bool setTransponderMode(TransponderMode mode)
Set transponder mode.
TransponderMode
Transponder codes.
Comprehensive information of an aircraft.
aviation::CTransponder::TransponderMode getTransponderMode() const
Get transponder mode.
const aviation::CTransponder & getTransponder() const
Get transponder.
SWIFT_GUI_EXPORT swift::gui::CGuiApplication * sGui
Single instance of GUI application object.
Backend services of the swift project, like dealing with the network or the simulators.
High level reusable GUI components.
Free functions in swift::misc.