示例#1
0
// Build the menu items for this class
void CMenuJoystickAxisBase::Build(CClientDE *pClientDE, CMenuBase *pDestMenu)
{		
	if (!pDestMenu)
	{
		return;
	}

	// Get the main menus pointer
	CMainMenus *pMainMenus=pDestMenu->GetMainMenus();
	if (!pMainMenus)
	{
		return;
	}

	// figure out the name of the joystick device
	SetDeviceName(pClientDE);

	// create the array of possible axis
	CreateAxisArray(pClientDE);

	// just a test BLB TEMP!!!
//	FindMouseControls(pClientDE);

	// The axis option
	m_pAxisCtrl=BuildAxisOption(pClientDE, pDestMenu, m_nAxisID, &m_nAxis);

	// The invert axis control
	m_pInvertAxisCtrl=pDestMenu->AddOnOffOption(m_nInvertAxisID, pMainMenus->GetSmallFont(), MENUJOYSTICK_ONOFFOFFSET,
												&m_bInvertAxis);

	// The dead zone control
	m_pDeadZoneCtrl=pDestMenu->AddSliderOption(m_nDeadZoneID, pMainMenus->GetSmallFont(), MENUJOYSTICK_SLIDEROFFSET,
											   pMainMenus->GetSurfaceSliderBar(), pMainMenus->GetSurfaceSliderTab(),
											   &m_nDeadZone);
	if (m_pDeadZoneCtrl)
	{
		m_pDeadZoneCtrl->SetSliderRange(DEADZONESLIDERLOW, DEADZONESLIDERHIGH);
		m_pDeadZoneCtrl->SetSliderIncrement(1);
	}

	// Analog on/off
	m_pAnalogCtrl=pDestMenu->AddOnOffOption(m_nAnalogID, pMainMenus->GetSmallFont(), MENUJOYSTICK_ONOFFOFFSET, &m_bAnalog);

	// The sensitivity control
	m_pSensitivityCtrl=pDestMenu->AddSliderOption(m_nSensitivityID, pMainMenus->GetSmallFont(), MENUJOYSTICK_SLIDEROFFSET,
												  pMainMenus->GetSurfaceSliderBar(), pMainMenus->GetSurfaceSliderTab(),
												  &m_nSensitivity);
	if (m_pSensitivityCtrl)
	{
		m_pSensitivityCtrl->SetSliderRange(SENSITIVITYSLIDERLOW, SENSITIVITYSLIDERHIGH);
		m_pSensitivityCtrl->SetSliderIncrement(1);
	}
	

	// The center offset axis control
	m_pCenterOffsetCtrl=pDestMenu->AddOnOffOption(m_nCenterOffsetID, pMainMenus->GetSmallFont(), MENUJOYSTICK_ONOFFOFFSET,
												  &m_bCenterOffset);	
}
// Build the  items for this class
void CJoystickAxisBase::Build(ILTClient *pClientDE, CBaseFolder *pDestFolder)
{
	if (!pDestFolder)
	{
		return;
	}

	if (g_pLayoutMgr->HasCustomValue(FOLDER_ID_JOYSTICK,"ColumnWidth"))
		kGap = g_pLayoutMgr->GetFolderCustomInt(FOLDER_ID_JOYSTICK,"ColumnWidth");
	if (g_pLayoutMgr->HasCustomValue(FOLDER_ID_JOYSTICK,"SliderWidth"))
		kWidth = g_pLayoutMgr->GetFolderCustomInt(FOLDER_ID_JOYSTICK,"SliderWidth");

	// figure out the name of the joystick device
	SetDeviceName(pClientDE);

	// create the array of possible axis
	CreateAxisArray(pClientDE);

	// The axis option
	m_pAxisCtrl=BuildAxisOption(pClientDE, pDestFolder, m_nAxisID, &m_nAxis);

	// The invert axis control
	m_pInvertAxisCtrl=pDestFolder->AddToggle(m_nInvertAxisID, IDS_HELP_INVERTAXIS,  kGap,
												&m_bInvertAxis, LTFALSE, g_pInterfaceResMgr->GetSmallFont());

	m_pInvertAxisCtrl->SetOnString(IDS_ON);
	m_pInvertAxisCtrl->SetOffString(IDS_OFF);

	// The dead zone control
	m_pDeadZoneCtrl=pDestFolder->AddSlider(m_nDeadZoneID, IDS_HELP_DEADZONE, kGap, kWidth,
											   &m_nDeadZone, LTFALSE, g_pInterfaceResMgr->GetSmallFont());
	if (m_pDeadZoneCtrl)
	{
		m_pDeadZoneCtrl->SetSliderRange(DEADZONESLIDERLOW, DEADZONESLIDERHIGH);
		m_pDeadZoneCtrl->SetSliderIncrement(1);
	}

	// Analog on/off
	m_pAnalogCtrl=pDestFolder->AddToggle(m_nAnalogID, IDS_HELP_ANALOG, kGap, &m_bAnalog, LTFALSE,  g_pInterfaceResMgr->GetSmallFont());
	m_pAnalogCtrl->SetOnString(IDS_ON);
	m_pAnalogCtrl->SetOffString(IDS_OFF);

	// The sensitivity control
	m_pSensitivityCtrl=pDestFolder->AddSlider(m_nSensitivityID, IDS_HELP_JOY_SENSE, kGap, kWidth,
												  &m_nSensitivity, LTFALSE,  g_pInterfaceResMgr->GetSmallFont());
	if (m_pSensitivityCtrl)
	{
		m_pSensitivityCtrl->SetSliderRange(SENSITIVITYSLIDERLOW, SENSITIVITYSLIDERHIGH);
		m_pSensitivityCtrl->SetSliderIncrement(1);
	}


	// The center offset axis control
	m_pCenterOffsetCtrl=pDestFolder->AddToggle(m_nCenterOffsetID, IDS_HELP_JOY_CENTER, kGap,
												  &m_bCenterOffset, LTFALSE, g_pInterfaceResMgr->GetSmallFont());
	m_pCenterOffsetCtrl->SetOnString(IDS_ON);
	m_pCenterOffsetCtrl->SetOffString(IDS_OFF);
}