Exemplo n.º 1
0
//
// LK Infobox list
// Included by lk temporarily, only with CUTIBOX
//
bool SetDataOption( int index, UnitGroup_t UnitGroup, const TCHAR *Description, const TCHAR *Title)
{
	LKASSERT(index<NUMDATAOPTIONS_MAX);
	if (index>=NUMDATAOPTIONS_MAX) return false;

    Data_Options[index] = {
        UnitGroup,
        LKGetText(Description),
        LKGetText(Title)
    };
	if (NumDataOptions<=index) NumDataOptions=index+1; //No. of items = max index+1

	return true;
}
Exemplo n.º 2
0
void ComPort::StatusMessage(MsgType_t type, const TCHAR *caption, const TCHAR *fmt, ...) {
    TCHAR tmp[127];
    va_list ap;
    LKASSERT(fmt!=NULL);

    va_start(ap, fmt);
#ifdef TESTBENCH
    int n = _vsntprintf(tmp, 127, fmt, ap);
#else
    _vsntprintf(tmp, 127, fmt, ap);
#endif
    va_end(ap);

#ifdef TESTBENCH
    LKASSERT(n>=0); // Message to long for "tmp" buffer
#endif


    tmp[126] = _T('\0');

    if (caption) {
        MessageBoxX(tmp, LKGetText(caption), type);
    } else {
        DoStatusMessage(tmp);
    }
}
Exemplo n.º 3
0
void CDevCProbe::OnCompassCalClicked(WndButton* pWnd){
	(void)pWnd;
	if(m_pDevice) {
		if(m_bCompassCalOn) {
			SetCompassCalOff(m_pDevice);
		} else {
			SetCompassCalOn(m_pDevice);

			MessageBoxX(LKGetText(TEXT("_@M2136_")), TEXT("C-Probe"), mbOk, false);

			SetCompassCalOff(m_pDevice);
		}
	}
}
Exemplo n.º 4
0
void CDevCProbe::OnCompassCalClicked(WindowControl * Sender){
	(void)Sender;
	if(m_pDevice) {
		if(m_bCompassCalOn) {
			SetCompassCalOff(m_pDevice);
		} else {
			SetCompassCalOn(m_pDevice);

			MessageBoxX(m_wf->GetHandle(), LKGetText(TEXT("_@M2136_")), TEXT("C-Probe"), MB_OK, false);

			SetCompassCalOff(m_pDevice);
		}
	}
}
Exemplo n.º 5
0
void GetDefaultWindowControlProps(XMLNode *Node, TCHAR *Name, int *X, int *Y, int *Width, int *Height, int *Popup, int *Font, TCHAR *Caption){

  *Popup = StringToIntDflt(Node->getAttribute(TEXT("Popup")), 0); // don't make wndForm block entire screen
  *X = DLGSCALE(StringToIntDflt(Node->getAttribute(TEXT("X")), 0));
  *Y = StringToIntDflt(Node->getAttribute(TEXT("Y")), 0);
  if (*Y>=0) { // not -1
    (*Y) = DLGSCALE(*Y);
  }
  *Width = DLGSCALE(StringToIntDflt(Node->getAttribute(TEXT("Width")), 50));
  *Height = StringToIntDflt(Node->getAttribute(TEXT("Height")), 50);
  if (*Height>=0) {
    (*Height) = DLGSCALE(*Height);
  }
  *Font = StringToIntDflt(Node->getAttribute(TEXT("Font")), -1);
  _tcscpy(Name, StringToStringDflt(Node->getAttribute(TEXT("Name")), TEXT("")));
  _tcscpy(Caption, StringToStringDflt(Node->getAttribute(TEXT("Caption")), TEXT("")));
  _tcscpy(Caption,LKGetText(Caption));

}
Exemplo n.º 6
0
    void OnPair(WndButton* pWnd) {
        CBtHandler* pBtHandler = CBtHandler::Get();
        if (pBtHandler) {
            CBtDevice * SelectedDevice = pBtHandler->GetDevice(ItemIndex);
            if (SelectedDevice && SelectedDevice->m_src == BDSRC_LOOKUP) {
                TCHAR szPin[20] = {0};
                dlgTextEntryShowModal(szPin, 20, false);

                if (!pBtHandler->Pair(SelectedDevice->m_ba, SelectedDevice->GetName().c_str(), szPin)) {
                    StartupStore(_T("Bluetooth pairing <%s> : Failed%s"), SelectedDevice->GetName().c_str(), NEWLINE);
                    MessageBoxX(LKGetText(TEXT("_@M1835_")), TEXT("Bluetooth"), mbOk, false);
                } else {
                    StartupStore(_T("Bluetooth pairing <%s> : success%s"), SelectedDevice->GetName().c_str(), NEWLINE);
                    SelectedDevice->m_src |= BDSRC_REGNAV;
                }
            }
            WndListFrame* BthList = (WndListFrame*) wfBth->FindByName(TEXT("frmBthList"));
            if (BthList) {
                BthList->ResetList();
                BthList->Redraw();
            }
        }
    }
Exemplo n.º 7
0
void AddReservedWaypoints()
{
    WayPointList.resize(NUMRESWP);
    WayPointCalc.resize(NUMRESWP);

	WayPointList[RESWP_TAKEOFF].Number=RESWP_TAKEOFF+1;
	WayPointList[RESWP_TAKEOFF].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TAKEOFF].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TAKEOFF].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TAKEOFF].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_TAKEOFF].Name, LKGetText(TEXT(RESWP_TAKEOFF_NAME)) ); // 100227
	if ( WayPointList[RESWP_TAKEOFF].Comment == NULL)
		WayPointList[RESWP_TAKEOFF].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_TAKEOFF].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_TAKEOFF].Comment,_T("WAITING FOR GPS POSITION"));
	WayPointList[RESWP_TAKEOFF].Reachable=FALSE;
	WayPointList[RESWP_TAKEOFF].AltArivalAGL=0.0;
	WayPointList[RESWP_TAKEOFF].Visible=FALSE;
	WayPointList[RESWP_TAKEOFF].InTask=false;
	WayPointList[RESWP_TAKEOFF].Details=(TCHAR *)NULL;

	WayPointList[RESWP_TAKEOFF].FarVisible=false;
	WayPointList[RESWP_TAKEOFF].FileNum=-1;  // 100219  so it cannot be saved
	WayPointList[RESWP_TAKEOFF].Format= LKW_VIRTUAL;  //@ bugfix 101110

	WayPointList[RESWP_LASTTHERMAL].Number=RESWP_LASTTHERMAL+1;
	WayPointList[RESWP_LASTTHERMAL].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_LASTTHERMAL].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_LASTTHERMAL].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_LASTTHERMAL].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_LASTTHERMAL].Name, LKGetText(TEXT(RESWP_LASTTHERMAL_NAME)) );
	if ( WayPointList[RESWP_LASTTHERMAL].Comment == NULL)
		WayPointList[RESWP_LASTTHERMAL].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	// LKTOKEN _@M1320_ "LAST GOOD THERMAL"
	if (WayPointList[RESWP_LASTTHERMAL].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_LASTTHERMAL].Comment, MsgToken(1320));
	WayPointList[RESWP_LASTTHERMAL].Reachable=FALSE;
	WayPointList[RESWP_LASTTHERMAL].AltArivalAGL=0.0;
	WayPointList[RESWP_LASTTHERMAL].Visible=TRUE; // careful! 100929
	WayPointList[RESWP_LASTTHERMAL].InTask=false;
	WayPointList[RESWP_LASTTHERMAL].Details=(TCHAR *)NULL;
	WayPointList[RESWP_LASTTHERMAL].FarVisible=TRUE; // careful! 100929
	WayPointList[RESWP_LASTTHERMAL].FileNum=-1;

	WayPointCalc[RESWP_LASTTHERMAL].WpType = WPT_TURNPOINT;
	WayPointList[RESWP_LASTTHERMAL].Style = STYLE_THERMAL;
	WayPointCalc[RESWP_LASTTHERMAL].IsLandable = false;
	WayPointCalc[RESWP_LASTTHERMAL].IsAirport = false;
	WayPointCalc[RESWP_LASTTHERMAL].IsOutlanding = false;
	WayPointList[RESWP_LASTTHERMAL].Format= LKW_VIRTUAL;  //@ bugfix 101110

	WayPointList[RESWP_TEAMMATE].Number=RESWP_TEAMMATE+1;
	WayPointList[RESWP_TEAMMATE].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TEAMMATE].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TEAMMATE].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_TEAMMATE].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_TEAMMATE].Name, LKGetText(TEXT(RESWP_TEAMMATE_NAME)) );
	if ( WayPointList[RESWP_TEAMMATE].Comment == NULL)
		WayPointList[RESWP_TEAMMATE].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	// LKTOKEN _@M1321_ "TEAM MATE"
	if (WayPointList[RESWP_TEAMMATE].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_TEAMMATE].Comment, MsgToken(1321));
	WayPointList[RESWP_TEAMMATE].Reachable=FALSE;
	WayPointList[RESWP_TEAMMATE].AltArivalAGL=0.0;
	WayPointList[RESWP_TEAMMATE].Visible=FALSE;
	WayPointList[RESWP_TEAMMATE].InTask=false;
	WayPointList[RESWP_TEAMMATE].Details=(TCHAR *)NULL;
	WayPointList[RESWP_TEAMMATE].FarVisible=false;
	WayPointList[RESWP_TEAMMATE].FileNum=-1;

	WayPointCalc[RESWP_TEAMMATE].WpType = WPT_TURNPOINT;
	WayPointCalc[RESWP_TEAMMATE].IsLandable = false;
	WayPointCalc[RESWP_TEAMMATE].IsAirport = false;
	WayPointCalc[RESWP_TEAMMATE].IsOutlanding = false;
	WayPointList[RESWP_TEAMMATE].Format= LKW_VIRTUAL;  //@ bugfix 101110

	WayPointList[RESWP_FLARMTARGET].Number=RESWP_FLARMTARGET+1;
	WayPointList[RESWP_FLARMTARGET].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FLARMTARGET].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FLARMTARGET].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FLARMTARGET].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_FLARMTARGET].Name, LKGetText(TEXT(RESWP_FLARMTARGET_NAME)) );
	if ( WayPointList[RESWP_FLARMTARGET].Comment == NULL)
		WayPointList[RESWP_FLARMTARGET].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	// LKTOKEN _@M1322_ "FLARM TARGET"
	if (WayPointList[RESWP_FLARMTARGET].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_FLARMTARGET].Comment, MsgToken(1322));
	WayPointList[RESWP_FLARMTARGET].Reachable=FALSE;
	WayPointList[RESWP_FLARMTARGET].AltArivalAGL=0.0;
	WayPointList[RESWP_FLARMTARGET].Visible=FALSE;
	WayPointList[RESWP_FLARMTARGET].InTask=false;
	WayPointList[RESWP_FLARMTARGET].Details=(TCHAR *)NULL;
	WayPointList[RESWP_FLARMTARGET].FarVisible=false;
	WayPointList[RESWP_FLARMTARGET].FileNum=-1;

	WayPointCalc[RESWP_FLARMTARGET].WpType = WPT_TURNPOINT;
	WayPointCalc[RESWP_FLARMTARGET].IsLandable = false;
	WayPointCalc[RESWP_FLARMTARGET].IsAirport = false;
	WayPointCalc[RESWP_FLARMTARGET].IsOutlanding = false;
	WayPointList[RESWP_FLARMTARGET].Format= LKW_VIRTUAL;  //@ bugfix 101110

	WayPointList[RESWP_OPTIMIZED].Number=RESWP_OPTIMIZED+1;
	WayPointList[RESWP_OPTIMIZED].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_OPTIMIZED].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_OPTIMIZED].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_OPTIMIZED].Flags=TURNPOINT;
	// name will be assigned by function dynamically
	_tcscpy(WayPointList[RESWP_OPTIMIZED].Name, _T("OPTIMIZED") );
	if ( WayPointList[RESWP_OPTIMIZED].Comment == NULL)
		WayPointList[RESWP_OPTIMIZED].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_OPTIMIZED].Comment!=NULL)
	       _tcscpy(WayPointList[RESWP_OPTIMIZED].Comment, _T("OPTIMIZED") );

	WayPointList[RESWP_OPTIMIZED].Reachable=FALSE;
	WayPointList[RESWP_OPTIMIZED].AltArivalAGL=0.0;
	WayPointList[RESWP_OPTIMIZED].Visible=FALSE;
	WayPointList[RESWP_OPTIMIZED].InTask=false;
	WayPointList[RESWP_OPTIMIZED].Details=(TCHAR *)NULL;
	WayPointList[RESWP_OPTIMIZED].FarVisible=false;
	WayPointList[RESWP_OPTIMIZED].FileNum=-1;

	WayPointCalc[RESWP_OPTIMIZED].WpType = WPT_TURNPOINT;
	WayPointCalc[RESWP_OPTIMIZED].IsLandable = false;
	WayPointCalc[RESWP_OPTIMIZED].IsAirport = false;
	WayPointCalc[RESWP_OPTIMIZED].IsOutlanding = false;
	WayPointList[RESWP_OPTIMIZED].Format= LKW_VIRTUAL;

	//
	// VIRTUAL FAIOPTIMIZED
	//
	WayPointList[RESWP_FAIOPTIMIZED].Number=RESWP_FAIOPTIMIZED+1;
	WayPointList[RESWP_FAIOPTIMIZED].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FAIOPTIMIZED].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FAIOPTIMIZED].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FAIOPTIMIZED].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_FAIOPTIMIZED].Name, LKGetText(TEXT(RESWP_FAIOPTIMIZED_NAME)) );
	if ( WayPointList[RESWP_FAIOPTIMIZED].Comment == NULL)
		WayPointList[RESWP_FAIOPTIMIZED].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_FAIOPTIMIZED].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_FAIOPTIMIZED].Comment,_T("FAI OPTIMIZED VIRTUAL TURNPOINT"));
	WayPointList[RESWP_FAIOPTIMIZED].Reachable=FALSE;
	WayPointList[RESWP_FAIOPTIMIZED].AltArivalAGL=0.0;
	WayPointList[RESWP_FAIOPTIMIZED].Visible=FALSE;
	WayPointList[RESWP_FAIOPTIMIZED].InTask=false;
	WayPointList[RESWP_FAIOPTIMIZED].Details=(TCHAR *)NULL;

	WayPointList[RESWP_FAIOPTIMIZED].FarVisible=false;
	WayPointList[RESWP_FAIOPTIMIZED].FileNum=-1;
	WayPointList[RESWP_FAIOPTIMIZED].Format= LKW_VIRTUAL;

	//
	// VIRTUAL FREEFLY START
	//
	WayPointList[RESWP_FREEFLY].Number=RESWP_FREEFLY+1;
	WayPointList[RESWP_FREEFLY].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FREEFLY].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FREEFLY].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_FREEFLY].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_FREEFLY].Name, LKGetText(TEXT(RESWP_FREEFLY_NAME)) );
	if ( WayPointList[RESWP_FREEFLY].Comment == NULL)
		WayPointList[RESWP_FREEFLY].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_FREEFLY].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_FREEFLY].Comment,_T("START OF FREEFLIGHT VIRTUAL TURNPOINT"));
	WayPointList[RESWP_FREEFLY].Reachable=FALSE;
	WayPointList[RESWP_FREEFLY].AltArivalAGL=0.0;
	WayPointList[RESWP_FREEFLY].Visible=FALSE;
	WayPointList[RESWP_FREEFLY].InTask=false;
	WayPointList[RESWP_FREEFLY].Details=(TCHAR *)NULL;

	WayPointList[RESWP_FREEFLY].FarVisible=false;
	WayPointList[RESWP_FREEFLY].FileNum=-1;
	WayPointList[RESWP_FREEFLY].Format= LKW_VIRTUAL;

	//
	// VIRTUAL PANPOS
	// This is used as a temporary position while moving a task point
	//
	WayPointList[RESWP_PANPOS].Number=RESWP_PANPOS+1;
	WayPointList[RESWP_PANPOS].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_PANPOS].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_PANPOS].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_PANPOS].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_PANPOS].Name, _T(""));
	if ( WayPointList[RESWP_PANPOS].Comment == NULL)
		WayPointList[RESWP_PANPOS].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_PANPOS].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_PANPOS].Comment,_T("PANPOS VIRTUAL TURNPOINT"));
	WayPointList[RESWP_PANPOS].Reachable=FALSE;
	WayPointList[RESWP_PANPOS].AltArivalAGL=0.0;
	WayPointList[RESWP_PANPOS].Visible=FALSE;
	WayPointList[RESWP_PANPOS].InTask=false;
	WayPointList[RESWP_PANPOS].Details=(TCHAR *)NULL;

	WayPointList[RESWP_PANPOS].FarVisible=false;
	WayPointList[RESWP_PANPOS].FileNum=-1;
	WayPointList[RESWP_PANPOS].Format= LKW_VIRTUAL;

	//
	// VIRTUAL UNUSED (RESERVED FOR NEXT TIME..)
	//
	WayPointList[RESWP_UNUSED].Number=RESWP_UNUSED+1;
	WayPointList[RESWP_UNUSED].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_UNUSED].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_UNUSED].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[RESWP_UNUSED].Flags=TURNPOINT;
	_tcscpy(WayPointList[RESWP_UNUSED].Name, LKGetText(TEXT(RESWP_UNUSED_NAME)) );
	if ( WayPointList[RESWP_UNUSED].Comment == NULL)
		WayPointList[RESWP_UNUSED].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[RESWP_UNUSED].Comment!=NULL)
		_tcscpy(WayPointList[RESWP_UNUSED].Comment,_T("UNUSED VIRTUAL TURNPOINT"));
	WayPointList[RESWP_UNUSED].Reachable=FALSE;
	WayPointList[RESWP_UNUSED].AltArivalAGL=0.0;
	WayPointList[RESWP_UNUSED].Visible=FALSE;
	WayPointList[RESWP_UNUSED].InTask=false;
	WayPointList[RESWP_UNUSED].Details=(TCHAR *)NULL;

	WayPointList[RESWP_UNUSED].FarVisible=false;
	WayPointList[RESWP_UNUSED].FileNum=-1;
	WayPointList[RESWP_UNUSED].Format= LKW_VIRTUAL;

   for (short i=RESWP_FIRST_MARKER; i<=RESWP_LAST_MARKER; i++) {
	WayPointList[i].Number=i+1;
	WayPointList[i].Latitude=RESWP_INVALIDNUMBER;
	WayPointList[i].Longitude=RESWP_INVALIDNUMBER;
	WayPointList[i].Altitude=RESWP_INVALIDNUMBER;
	WayPointList[i].Flags=TURNPOINT;
	_tcscpy(WayPointList[i].Name, _T("LKMARKER"));
	if ( WayPointList[i].Comment == NULL)
		WayPointList[i].Comment = (TCHAR*)malloc((COMMENT_SIZE+1)*sizeof(TCHAR));
	if (WayPointList[i].Comment!=NULL)
		_tcscpy(WayPointList[i].Comment, _T(""));
	WayPointList[i].Reachable=FALSE;
	WayPointList[i].AltArivalAGL=0.0;
	WayPointList[i].Visible=FALSE;
	WayPointList[i].InTask=false;
	WayPointList[i].Details=(TCHAR *)NULL;
	WayPointList[i].FarVisible=FALSE;
	WayPointList[i].FileNum=-1;
	WayPointList[i].Style = STYLE_MARKER;

	WayPointCalc[i].WpType = WPT_UNKNOWN;
	WayPointCalc[i].IsLandable = false;
	WayPointCalc[i].IsAirport = false;
	WayPointCalc[i].IsOutlanding = false;
	WayPointList[i].Format= LKW_VIRTUAL;
   }

}
Exemplo n.º 8
0
static void SetValues(bool first=false) {
  WndProperty* wp;

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishLine"));
  if (wp) {
    DataField* dfe = wp->GetDataField();
    if (first) {
	// LKTOKEN  _@M210_ = "Cylinder" 
      dfe->addEnumText(MsgToken(210));
	// LKTOKEN  _@M393_ = "Line" 
      dfe->addEnumText(MsgToken(393));
	// LKTOKEN  _@M274_ = "FAI Sector" 
      dfe->addEnumText(MsgToken(274));
    }
    dfe->Set(FinishLine);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFinishRadius"));
  if (wp) {
    wp->GetDataField()->SetAsFloat(round(FinishRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING);
    wp->GetDataField()->SetUnits(Units::GetDistanceName());
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartLine"));
  if (wp) {
    DataField* dfe = wp->GetDataField();
    if (first) {
	// LKTOKEN  _@M210_ = "Cylinder" 
      dfe->addEnumText(MsgToken(210));
	// LKTOKEN  _@M393_ = "Line" 
      dfe->addEnumText(MsgToken(393));
	// LKTOKEN  _@M274_ = "FAI Sector" 
      dfe->addEnumText(MsgToken(274));
    }
    dfe->SetDetachGUI(true); // disable call to OnAATEnabled
    dfe->Set(StartLine);
    dfe->SetDetachGUI(false);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskStartRadius"));
  if (wp) {
    wp->GetDataField()->SetAsFloat(round(StartRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING);
    wp->GetDataField()->SetUnits(Units::GetDistanceName());
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskFAISector"));
  if (wp) {
    // 110223 CAN ANYONE PLEASE CHECK WHAT THE HACK IS A BOOL FOR BILL GATES? BECAUSE IF FALSE IS -1 THEN
    // WE HAVE MANY PROBLEMS! I THINK IT IS TIME TO GO BACK TO bool AND GET RID OF MS BOOLS!!
  //  wp->SetVisible((AATEnabled==0) || (twItemIndex >0) );
    DataField* dfe = wp->GetDataField();
    if (first) {
	// LKTOKEN  _@M210_ = "Cylinder" 
      dfe->addEnumText(MsgToken(210));
	// LKTOKEN  _@M274_ = "FAI Sector" 
      dfe->addEnumText(MsgToken(274));
      dfe->addEnumText(LKGetText(TEXT("DAe 0.5/10")));
      	// LKTOKEN  _@M393_ = "Line" 
      dfe->addEnumText(MsgToken(393));
    }
    dfe->SetDetachGUI(true); // disable call to OnAATEnabled
    dfe->Set(SectorType);
    dfe->SetDetachGUI(false);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpTaskSectorRadius"));
  if (wp) {
    wp->SetVisible(AATEnabled==0);
    wp->GetDataField()->SetAsFloat(round(SectorRadius*DISTANCEMODIFY*DISTANCE_ROUNDING)/DISTANCE_ROUNDING);
    wp->GetDataField()->SetUnits(Units::GetDistanceName());
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpAutoAdvance"));
  if (wp) {
    DataField* dfe = wp->GetDataField();
    if (first) {
	// LKTOKEN  _@M418_ = "Manual" 
      dfe->addEnumText(MsgToken(418));
	// LKTOKEN _@M897_ "Auto"
      dfe->addEnumText(MsgToken(897));
	// LKTOKEN  _@M97_ = "Arm" 
      dfe->addEnumText(MsgToken(97));
	// LKTOKEN  _@M96_ = "Arm start" 
      dfe->addEnumText(MsgToken(96));
	// LKTOKEN  _@M1798_ = "Arm TPs" 
      dfe->addEnumText(MsgToken(1798));
    }
    dfe->Set(AutoAdvance);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpMinTime"));
  if (wp) {
    wp->SetVisible(AATEnabled>0 && (!PGOptimizeRoute || !ISPARAGLIDER));
    wp->GetDataField()->SetAsFloat(AATTaskLength);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpEnableMultipleStartPoints"));
  if (wp) {
    wp->SetVisible(!ISPARAGLIDER);
    wp->GetDataField()->Set(EnableMultipleStartPoints);
    wp->RefreshDisplay();
  }

  wp = (WndProperty*)wf->FindByName(TEXT("prpAATEnabled"));
  if (wp) {
	if (ISPARAGLIDER && PGOptimizeRoute) {
		wp->SetVisible(false);
		AATEnabled=true;
		wp->RefreshDisplay(); 
	} else {
		bool aw = (AATEnabled != 0);
		wp->GetDataField()->Set(aw);
		wp->RefreshDisplay(); 
	}
  }

  WndButton* wb;
  wb = (WndButton *)wf->FindByName(TEXT("EditStartPoints"));
  if (wb) {
    wb->SetVisible(EnableMultipleStartPoints!=0 && !ISPARAGLIDER);
  }

}