void CGUIControlSpinExSetting::FillControl() { m_pSpin->Clear(); const std::string &controlFormat = m_pSetting->GetControl()->GetFormat(); if (controlFormat == "number") { CSettingNumber *pSettingNumber = (CSettingNumber *)m_pSetting; m_pSpin->SetType(SPIN_CONTROL_TYPE_FLOAT); m_pSpin->SetFloatRange((float)pSettingNumber->GetMinimum(), (float)pSettingNumber->GetMaximum()); m_pSpin->SetFloatInterval((float)pSettingNumber->GetStep()); m_pSpin->SetFloatValue((float)pSettingNumber->GetValue()); } else if (controlFormat == "integer") { m_pSpin->SetType(SPIN_CONTROL_TYPE_TEXT); FillIntegerSettingControl(); } else if (controlFormat == "string") { m_pSpin->SetType(SPIN_CONTROL_TYPE_TEXT); if (m_pSetting->GetType() == SettingTypeInteger) FillIntegerSettingControl(); else if (m_pSetting->GetType() == SettingTypeString) { CSettingString *pSettingString = (CSettingString *)m_pSetting; if (pSettingString->GetOptionsType() == SettingOptionsTypeDynamic) { DynamicStringSettingOptions options = pSettingString->UpdateDynamicOptions(); for (std::vector< std::pair<std::string, std::string> >::const_iterator option = options.begin(); option != options.end(); ++option) m_pSpin->AddLabel(option->first, option->second); m_pSpin->SetStringValue(pSettingString->GetValue()); } } } }
bool CGUIControlListSetting::GetItems(CSetting *setting, CFileItemList &items) { switch (setting->GetControl().GetFormat()) { case SettingControlFormatInteger: return GetIntegerItems(setting, items); case SettingControlFormatString: { if (setting->GetType() == SettingTypeInteger) return GetIntegerItems(setting, items); else if (setting->GetType() == SettingTypeString) { CSettingString *pSettingString = (CSettingString *)setting; if (pSettingString->GetOptionsType() == SettingOptionsTypeDynamic) { DynamicStringSettingOptions options = pSettingString->UpdateDynamicOptions(); for (DynamicStringSettingOptions::const_iterator option = options.begin(); option != options.end(); ++option) { CFileItemPtr pItem = GetItem(option->first, option->second); if (StringUtils::EqualsNoCase(option->second, pSettingString->GetValue())) pItem->Select(true); items.Add(pItem); } } } break; } default: return false; } return true; }