void AirspaceConfigPanel::OnModified(DataField &df) { if (IsDataField(AirspaceDisplay, df)) { const DataFieldEnum &dfe = (const DataFieldEnum &)df; AirspaceDisplayMode mode = (AirspaceDisplayMode)dfe.GetValue(); ShowDisplayControls(mode); } else if (IsDataField(AirspaceWarnings, df)) { const DataFieldBoolean &dfb = (const DataFieldBoolean &)df; ShowWarningControls(dfb.GetAsBoolean()); } }
void AirspaceConfigPanel::Prepare(ContainerWindow &parent, const PixelRect &rc) { const AirspaceComputerSettings &computer = CommonInterface::GetComputerSettings().airspace; const AirspaceRendererSettings &renderer = CommonInterface::GetMapSettings().airspace; const UISettings &ui_settings = CommonInterface::GetUISettings(); RowFormWidget::Prepare(parent, rc); AddEnum(_("Airspace display"), _("Controls filtering of airspace for display and warnings. The airspace filter button also allows filtering of display and warnings independently for each airspace class."), as_display_list, (unsigned)renderer.altitude_mode, this); AddEnum(_("Label visibility"), _("Determines what labels are displayed."), as_label_selection_list, (unsigned)renderer.label_selection); SetExpertRow(AirspaceLabelSelection); AddFloat(_("Clip altitude"), _("For clip airspace mode, this is the altitude below which airspace is displayed."), _T("%.0f %s"), _T("%.0f"), fixed(0), fixed(20000), fixed(100), false, UnitGroup::ALTITUDE, fixed(renderer.clip_altitude)); AddFloat(_("Margin"), _("For auto and all below airspace mode, this is the altitude above/below which airspace is included."), _T("%.0f %s"), _T("%.0f"), fixed(0), fixed(10000), fixed(100), false, UnitGroup::ALTITUDE, fixed(computer.warnings.altitude_warning_margin)); AddBoolean(_("Warnings"), _("Enable/disable all airspace warnings."), computer.enable_warnings, this); AddBoolean(_("Warnings dialog"), _("Enable/disable displaying airspaces warnings dialog."), ui_settings.enable_airspace_warning_dialog, this); SetExpertRow(WarningDialog); AddTime(_("Warning time"), _("This is the time before an airspace incursion is estimated at which the system will warn the pilot."), 10, 1000, 5, computer.warnings.warning_time); SetExpertRow(WarningTime); AddBoolean(_("Repetitive sound"), _("Enable/disable repetitive warning sound when airspaces warnings dialog is displayed."), computer.warnings.repetitive_sound, this); SetExpertRow(RepetitiveSound); AddTime(_("Acknowledge time"), _("This is the time period in which an acknowledged airspace warning will not be repeated."), 10, 1000, 5, computer.warnings.acknowledgement_time); SetExpertRow(AcknowledgeTime); AddBoolean(_("Use black outline"), _("Draw a black outline around each airspace rather than the airspace color."), renderer.black_outline); SetExpertRow(UseBlackOutline); AddEnum(_("Airspace fill mode"), _("Specifies the mode for filling the airspace area."), as_fill_mode_list, (unsigned)renderer.fill_mode); SetExpertRow(AirspaceFillMode); #if defined(HAVE_HATCHED_BRUSH) && defined(HAVE_ALPHA_BLEND) AddBoolean(_("Airspace transparency"), _("If enabled, then airspaces are filled transparently."), renderer.transparency); SetExpertRow(AirspaceTransparency); #endif ShowDisplayControls(renderer.altitude_mode); // TODO make this work the first time ShowWarningControls(computer.enable_warnings); }
void AirspaceConfigPanel::Prepare(ContainerWindow &parent, const PixelRect &rc) { const AirspaceComputerSettings &computer = CommonInterface::GetComputerSettings().airspace; const AirspaceRendererSettings &renderer = CommonInterface::GetMapSettings().airspace; RowFormWidget::Prepare(parent, rc); AddEnum(_("Airspace display"), _("Controls filtering of airspace for display and warnings. The airspace filter button also allows filtering of display and warnings independently for each airspace class."), as_display_list, (unsigned)renderer.altitude_mode, this); AddFloat(_("Clip altitude"), _("For clip airspace mode, this is the altitude below which airspace is displayed."), _T("%.0f %s"), _T("%.0f"), fixed(0), fixed(20000), fixed(100), false, UnitGroup::ALTITUDE, fixed(renderer.clip_altitude)); AddFloat(_("Margin"), _("For auto and all below airspace mode, this is the altitude above/below which airspace is included."), _T("%.0f %s"), _T("%.0f"), fixed(0), fixed(10000), fixed(100), false, UnitGroup::ALTITUDE, fixed(computer.warnings.altitude_warning_margin)); AddBoolean(_("Warnings"), _("Enable/disable all airspace warnings."), computer.enable_warnings, this); AddTime(_("Warning time"), _("This is the time before an airspace incursion is estimated at which the system will warn the pilot."), 10, 1000, 5, computer.warnings.warning_time); SetExpertRow(WarningTime); AddTime(_("Acknowledge time"), _("This is the time period in which an acknowledged airspace warning will not be repeated."), 10, 1000, 5, computer.warnings.acknowledgement_time); SetExpertRow(AcknowledgeTime); AddBoolean(_("Use black outline"), _("Draw a black outline around each airspace rather than the airspace color."), renderer.black_outline); SetExpertRow(UseBlackOutline); AddEnum(_("Airspace fill mode"), _("Specifies the mode for filling the airspace area."), as_fill_mode_list, (unsigned)renderer.fill_mode); SetExpertRow(AirspaceFillMode); #if !defined(ENABLE_OPENGL) && defined(HAVE_ALPHA_BLEND) if (AlphaBlendAvailable()) { AddBoolean(_("Airspace transparency"), _("If enabled, then airspaces are filled transparently."), renderer.transparency); SetExpertRow(AirspaceTransparency); } #endif buttonColors = ConfigPanel::GetExtraButton(1); assert(buttonColors != NULL); buttonMode = ConfigPanel::GetExtraButton(2); assert(buttonMode != NULL); ShowDisplayControls(renderer.altitude_mode); // TODO make this work the first time ShowWarningControls(computer.enable_warnings); }