inline void AirspaceFilterWidget::Update() { WndProperty &direction_control = GetControl(DIRECTION); DataFieldEnum &direction_df = *(DataFieldEnum *) direction_control.GetDataField(); TCHAR buffer[64]; direction_df.replaceEnumText(0, GetHeadingString(buffer)); direction_control.RefreshDisplay(); }
static void FillDirectionEnum(DataFieldEnum &df) { TCHAR buffer[64]; df.AddChoice(WILDCARD, _T("*")); df.AddChoice(0, GetHeadingString(buffer)); static constexpr unsigned directions[] = { 360, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330 }; for (unsigned i = 0; i < ARRAY_SIZE(directions); ++i) df.AddChoice(directions[i], FormatBearing(directions[i]).c_str()); df.Set(WILDCARD); }
static void OnTimerNotify(gcc_unused WndForm &Sender) { if (direction_filter == 0 && !CommonInterface::Calculated().circling) { Angle a = last_heading - CommonInterface::Calculated().heading; if (a.AsDelta().AbsoluteDegrees() >= fixed(10)) { last_heading = CommonInterface::Calculated().heading; UpdateList(); DataFieldEnum &df = *(DataFieldEnum *)wpDirection->GetDataField(); TCHAR buffer[64]; df.replaceEnumText(0, GetHeadingString(buffer)); wpDirection->RefreshDisplay(); } } }
static void OnGPSUpdate(const MoreData &basic) { if (dialog_state.direction == 0 && !CommonInterface::Calculated().circling) { const Angle heading = basic.attitude.heading; Angle a = last_heading - heading; if (a.AsDelta().AbsoluteDegrees() >= fixed(10)) { last_heading = heading; UpdateList(); DataFieldEnum &df = *(DataFieldEnum *)direction_control->GetDataField(); TCHAR buffer[64]; df.replaceEnumText(0, GetHeadingString(buffer)); direction_control->RefreshDisplay(); } } }