28#include "from_ownship.h" 
   30extern int g_iDashDistanceUnit;
 
   37DashboardInstrument_FromOwnship::DashboardInstrument_FromOwnship(
 
   38    wxWindow* pparent, wxWindowID 
id, wxString title,
 
   40    DASH_CAP cap_flag3, DASH_CAP cap_flag4)
 
   42  m_cap_flag.set(cap_flag2);
 
   43  m_cap_flag.set(cap_flag3);
 
   44  m_cap_flag.set(cap_flag4);
 
   47  m_cap_flag1 = cap_flag1;
 
   48  m_cap_flag2 = cap_flag2;
 
   49  m_cap_flag3 = cap_flag3;
 
   50  m_cap_flag4 = cap_flag4;
 
   55void DashboardInstrument_FromOwnship::Draw(wxGCDC* dc) {
 
   59  x1 = x2 = m_DataMargin;
 
   61  if (m_DataRightAlign) {
 
   63    dc->GetTextExtent(m_data1, &w, &h, 0, 0);
 
   64    x1 = GetClientSize().GetWidth() - w - m_DataMargin;
 
   65    dc->GetTextExtent(m_data2, &w, &h, 0, 0);
 
   66    x2 = GetClientSize().GetWidth() - w - m_DataMargin;
 
   69  dc->DrawText(m_data1, x1, m_DataTop);
 
   70  dc->DrawText(m_data2, x2, m_DataTop + m_DataTextHeight);
 
   73void DashboardInstrument_FromOwnship::SetData(DASH_CAP st, 
double data,
 
   75  if (st == m_cap_flag1) {
 
   77  } 
else if (st == m_cap_flag2) {
 
   79  } 
else if (st == m_cap_flag3) {
 
   81  } 
else if (st == m_cap_flag4) {
 
   85  if (s_lat < 99999999 && s_lon < 99999999) {
 
   88        (m_Properties ? (m_Properties->m_ShowUnit == 1) : g_bShowUnit);
 
   91      m_data1.Printf(_T(
"%03d ") + DEGREE_SIGN, (
int)brg);
 
   92      m_data2.Printf(_T(
"%3.2f %s"),
 
   96      m_data1.Printf(_T(
"%03d"), (
int)brg);
 
   97      m_data2.Printf(_T(
"%3.2f"),
 
  105wxSize DashboardInstrument_FromOwnship::GetSize(
int orient, wxSize hint) {
 
  111  if (m_Properties ? (m_Properties->m_ShowUnit == 1) : g_bShowUnit) {
 
  112    sampleText = _T(
"000.00 NMi");
 
  114    sampleText = _T(
"000.00");
 
  116  InitDataTextHeight(sampleText, w);
 
  119      m_DataTextHeight * 2 + m_DataTextHeight * g_TitleVerticalOffset;
 
  120  InitTitleAndDataPosition(drawHeight);
 
  121  int h = GetFullHeight(drawHeight);
 
  123  if (orient == wxHORIZONTAL) {
 
  124    return wxSize(wxMax(w + m_DataMargin, DefaultWidth), wxMax(hint.y, h));
 
  126    return wxSize(wxMax(hint.x, wxMax(w + m_DataMargin, DefaultWidth)), h);
 
wxString getUsrDistanceUnit_Plugin(int unit)
Gets display string for user's preferred distance unit.
 
double toUsrDistance_Plugin(double nm_distance, int unit)
Converts nautical miles to user's preferred distance unit.
 
void DistanceBearingMercator_Plugin(double lat0, double lon0, double lat1, double lon1, double *brg, double *dist)
Calculates bearing and distance between two points using Mercator projection.