void
AirspaceListWidget::OnActivateItem(unsigned i)
{
  if (items.empty()) {
    assert(i == 0);
    return;
  }

  assert(i < items.size());

  dlgAirspaceDetails(items[i].GetAirspace(), airspace_warnings);
}
示例#2
0
static void
OnAirspaceListEnter(unsigned i)
{
    if (AirspaceSelectInfo.empty()) {
        assert(i == 0);
        return;
    }

    assert(i < AirspaceSelectInfo.size());

    dlgAirspaceDetails(*AirspaceSelectInfo[i].airspace, airspace_warnings);
}
示例#3
0
void
AirspaceListDialog::OnActivateItem(unsigned i)
{
  if (airspace_list.empty()) {
    assert(i == 0);
    return;
  }

  assert(i < airspace_list.size());

  dlgAirspaceDetails(airspace_list[i].GetAirspace(), airspace_warnings);
}
示例#4
0
static void
OnPaintListItem(Canvas &canvas, const PixelRect rc, unsigned i)
{
    if (AirspaceSelectInfo.empty()) {
        assert(i == 0);

        canvas.text(rc.left + Layout::FastScale(2),
                    rc.top + Layout::FastScale(2), _("No Match!"));
        return;
    }

    assert(i < AirspaceSelectInfo.size());

    const AbstractAirspace &airspace = *AirspaceSelectInfo[i].airspace;

    int w0, w1, w2, w3, x1, x2, x3;
    w0 = rc.right - rc.left - Layout::FastScale(4);
    w1 = canvas.CalcTextWidth(_T("XXX"));
    w2 = canvas.CalcTextWidth(_T(" 000km"));
    w3 = canvas.CalcTextWidth(_T(" 000")_T(DEG));

    x1 = w0-w1-w2-w3;

    canvas.text_clipped(rc.left + Layout::FastScale(2),
                        rc.top + Layout::FastScale(2),
                        x1 - Layout::FastScale(5), airspace.GetNameText().c_str());

    // left justified
    canvas.text(rc.left + x1, rc.top + Layout::FastScale(2),
                airspace.GetTypeText(true));

    StaticString<12> sTmp;

    // right justified after airspace type
    sTmp.Format(_T("%d%s"),
                (int)AirspaceSelectInfo[i].Distance,
                Units::GetDistanceName());
    x2 = w0 - w3 - canvas.CalcTextWidth(sTmp);
    canvas.text(rc.left + x2, rc.top + Layout::FastScale(2), sTmp);

    // right justified after distance
    FormatBearing(sTmp.buffer(), sTmp.MAX_SIZE, AirspaceSelectInfo[i].Direction);
    x3 = w0 - canvas.CalcTextWidth(sTmp);
    canvas.text(rc.left + x3, rc.top + Layout::FastScale(2), sTmp);
}
void
AirspaceListWidget::OnPaintItem(Canvas &canvas, const PixelRect rc,
                                unsigned i)
{
  if (items.empty()) {
    assert(i == 0);

    canvas.DrawText(rc.left + Layout::GetTextPadding(),
                    rc.top + Layout::GetTextPadding(), _("No Match!"));
    return;
  }

  assert(i < items.size());

  const AbstractAirspace &airspace = items[i].GetAirspace();

  AirspaceListRenderer::Draw(
      canvas, rc, airspace,
      items[i].GetVector(location, airspaces->GetProjection()),
      UIGlobals::GetDialogLook(), UIGlobals::GetMapLook().airspace,
      CommonInterface::GetMapSettings().airspace);
}