27extern int g_iDashDistanceUnit;
34DashboardInstrument_FromOwnship::DashboardInstrument_FromOwnship(
35 wxWindow* pparent, wxWindowID
id, wxString title,
39 m_cap_flag.set(cap_flag2);
40 m_cap_flag.set(cap_flag3);
41 m_cap_flag.set(cap_flag4);
44 m_cap_flag1 = cap_flag1;
45 m_cap_flag2 = cap_flag2;
46 m_cap_flag3 = cap_flag3;
47 m_cap_flag4 = cap_flag4;
54void DashboardInstrument_FromOwnship::Draw(wxGCDC* dc) {
58 x1 = x2 = m_DataMargin;
60 if (m_DataRightAlign) {
62 dc->GetTextExtent(m_data1, &w, &h,
nullptr,
nullptr);
63 x1 = GetClientSize().GetWidth() - w - m_DataMargin;
64 dc->GetTextExtent(m_data2, &w, &h,
nullptr,
nullptr);
65 x2 = GetClientSize().GetWidth() - w - m_DataMargin;
68 dc->DrawText(m_data1, x1, m_DataTop);
69 dc->DrawText(m_data2, x2, m_DataTop + m_DataTextHeight);
72void DashboardInstrument_FromOwnship::SetData(
DASH_CAP st,
double data,
74 if (st == m_cap_flag1) {
76 }
else if (st == m_cap_flag2) {
78 }
else if (st == m_cap_flag3) {
80 }
else if (st == m_cap_flag4) {
84 if (s_lat < 99999999 && s_lon < 99999999) {
87 (m_Properties ? (m_Properties->m_ShowUnit == 1) : g_bShowUnit);
90 m_data1.Printf(
"%03d " + DEGREE_SIGN, (
int)brg);
91 m_data2.Printf(
"%3.2f %s",
95 m_data1.Printf(
"%03d", (
int)brg);
103wxSize DashboardInstrument_FromOwnship::GetSize(
int orient, wxSize hint) {
109 if (m_Properties ? (m_Properties->m_ShowUnit == 1) : g_bShowUnit) {
110 sampleText =
"000.00 NMi";
112 sampleText =
"000.00";
114 InitDataTextHeight(sampleText, w);
116 int drawHeight =
static_cast<int>(m_DataTextHeight * 2 +
117 m_DataTextHeight * g_TitleVerticalOffset);
118 InitTitleAndDataPosition(drawHeight);
119 int h = GetFullHeight(drawHeight);
121 if (orient == wxHORIZONTAL) {
122 return wxSize(wxMax(w + m_DataMargin, DefaultWidth), wxMax(hint.y, h));
124 return wxSize(wxMax(hint.x, wxMax(w + m_DataMargin, DefaultWidth)), h);
Dashboard own ship data instrument.
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.