示例#1
0
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());
            }
        }
    }
}
示例#2
0
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;
}