本文整理汇总了C++中CGUIControl::SetWidth方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIControl::SetWidth方法的具体用法?C++ CGUIControl::SetWidth怎么用?C++ CGUIControl::SetWidth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIControl
的用法示例。
在下文中一共展示了CGUIControl::SetWidth方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddSetting
void CGUIDialogVisualisationSettings::AddSetting(VisSetting &setting, float width, int iControlID)
{
CGUIControl *pControl = NULL;
if (setting.type == VisSetting::CHECK)
{
pControl = new CGUIRadioButtonControl(*m_pOriginalRadioButton);
if (!pControl) return ;
((CGUIRadioButtonControl *)pControl)->SetLabel(setting.name);
pControl->SetWidth(width);
((CGUIRadioButtonControl *)pControl)->SetSelected(setting.current == 1);
}
else if (setting.type == VisSetting::SPIN && setting.entry.size() > 0)
{
pControl = new CGUISpinControlEx(*m_pOriginalSpin);
if (!pControl) return ;
pControl->SetWidth(width);
((CGUISpinControlEx *)pControl)->SetText(setting.name);
pControl->SetWidth(width);
for (unsigned int i = 0; i < setting.entry.size(); i++)
((CGUISpinControlEx *)pControl)->AddLabel(setting.entry[i], i);
((CGUISpinControlEx *)pControl)->SetValue(setting.current);
}
if (!pControl) return;
pControl->SetID(iControlID);
pControl->SetVisible(true);
CGUIControlGroupList *group = (CGUIControlGroupList *)GetControl(CONTROL_GROUP_LIST);
if (group)
{
pControl->AllocResources();
group->AddControl(pControl);
}
else
delete pControl;
}
示例2: EnlargeWidth
void CGUIListGroup::EnlargeWidth(float difference)
{
// Alters the width of the controls that have an ID of 1
for (iControls it = m_children.begin(); it != m_children.end(); it++)
{
CGUIControl *child = *it;
if (child->GetID() >= 1 && child->GetID() <= 14)
{
if (child->GetID() == 1) // label
{
child->SetWidth(child->GetWidth() + difference - 10);
child->SetVisible(child->GetWidth() > 10); ///
}
else
{
child->SetWidth(child->GetWidth() + difference);
}
}
}
SetInvalid();
}
示例3: SetupButtons
void CGUIDialogContextMenu::SetupButtons()
{
if (!m_buttons.size())
return;
// disable the template button control
CGUIButtonControl *pButtonTemplate = (CGUIButtonControl *)GetFirstFocusableControl(BUTTON_TEMPLATE);
if (!pButtonTemplate) pButtonTemplate = (CGUIButtonControl *)GetControl(BUTTON_TEMPLATE);
if (!pButtonTemplate)
return;
pButtonTemplate->SetVisible(false);
CGUIControlGroupList* pGroupList = NULL;
{
const CGUIControl* pControl = GetControl(GROUP_LIST);
if (pControl && pControl->GetControlType() == GUICONTROL_GROUPLIST)
pGroupList = (CGUIControlGroupList*)pControl;
}
// add our buttons
for (unsigned int i = 0; i < m_buttons.size(); i++)
{
CGUIButtonControl *pButton = new CGUIButtonControl(*pButtonTemplate);
if (pButton)
{ // set the button's ID and position
int id = BUTTON_START + i;
pButton->SetID(id);
pButton->SetVisible(true);
pButton->SetLabel(m_buttons[i].second);
if (pGroupList)
{
pButton->SetPosition(pButtonTemplate->GetXPosition(), pButtonTemplate->GetYPosition());
pGroupList->AddControl(pButton);
}
#if PRE_SKIN_VERSION_11_COMPATIBILITY
else
{
pButton->SetPosition(pButtonTemplate->GetXPosition(), i*(pButtonTemplate->GetHeight() + SPACE_BETWEEN_BUTTONS));
pButton->SetNavigation(id - 1, id + 1, id, id);
AddControl(pButton);
}
#endif
}
}
CGUIControl *pControl = NULL;
#if PRE_SKIN_VERSION_11_COMPATIBILITY
if (!pGroupList)
{
// if we don't have grouplist update the navigation of the first and last buttons
pControl = (CGUIControl *)GetControl(BUTTON_START);
if (pControl)
pControl->SetNavigation(BUTTON_END, pControl->GetControlIdDown(), pControl->GetControlIdLeft(), pControl->GetControlIdRight());
pControl = (CGUIControl *)GetControl(BUTTON_END);
if (pControl)
pControl->SetNavigation(pControl->GetControlIdUp(), BUTTON_START, pControl->GetControlIdLeft(), pControl->GetControlIdRight());
}
#endif
// fix up background images placement and size
pControl = (CGUIControl *)GetControl(BACKGROUND_IMAGE);
if (pControl)
{
// first set size of background image
if (pGroupList)
{
if (pGroupList->GetOrientation() == VERTICAL)
{
// keep gap between bottom edges of grouplist and background image
pControl->SetHeight(pControl->GetHeight() - pGroupList->Size() + pGroupList->GetHeight());
}
else
{
// keep gap between right edges of grouplist and background image
pControl->SetWidth(pControl->GetWidth() - pGroupList->Size() + pGroupList->GetWidth());
}
}
#if PRE_SKIN_VERSION_11_COMPATIBILITY
else
pControl->SetHeight(m_buttons.size() * (pButtonTemplate->GetHeight() + SPACE_BETWEEN_BUTTONS));
if (pGroupList && pGroupList->GetOrientation() == HORIZONTAL)
{
// if there is grouplist control with horizontal orientation - adjust width of top and bottom background
CGUIControl* pControl2 = (CGUIControl *)GetControl(BACKGROUND_TOP);
if (pControl2)
pControl2->SetWidth(pControl->GetWidth());
pControl2 = (CGUIControl *)GetControl(BACKGROUND_BOTTOM);
if (pControl2)
pControl2->SetWidth(pControl->GetWidth());
}
else
{
// adjust position of bottom background
CGUIControl* pControl2 = (CGUIControl *)GetControl(BACKGROUND_BOTTOM);
if (pControl2)
pControl2->SetPosition(pControl2->GetXPosition(), pControl->GetYPosition() + pControl->GetHeight());
}
#endif
//.........这里部分代码省略.........
示例4: SetupButtons
void CGUIDialogContextMenu::SetupButtons()
{
if (!m_buttons.size())
return;
// disable the template button control
CGUIButtonControl *pButtonTemplate = dynamic_cast<CGUIButtonControl *>(GetFirstFocusableControl(BUTTON_TEMPLATE));
if (!pButtonTemplate)
pButtonTemplate = dynamic_cast<CGUIButtonControl *>(GetControl(BUTTON_TEMPLATE));
if (!pButtonTemplate)
return;
pButtonTemplate->SetVisible(false);
CGUIControlGroupList* pGroupList = dynamic_cast<CGUIControlGroupList *>(GetControl(GROUP_LIST));
// add our buttons
for (unsigned int i = 0; i < m_buttons.size(); i++)
{
CGUIButtonControl *pButton = new CGUIButtonControl(*pButtonTemplate);
if (pButton)
{ // set the button's ID and position
int id = BUTTON_START + i;
pButton->SetID(id);
pButton->SetVisible(true);
pButton->SetLabel(m_buttons[i].second);
if (pGroupList)
{
pButton->SetPosition(pButtonTemplate->GetXPosition(), pButtonTemplate->GetYPosition());
// try inserting context buttons at position specified by template
// button, if template button is not in grouplist fallback to adding
// new buttons at the end of grouplist
if (!pGroupList->InsertControl(pButton, pButtonTemplate))
pGroupList->AddControl(pButton);
}
}
}
// fix up background images placement and size
CGUIControl *pControl = (CGUIControl *)GetControl(BACKGROUND_IMAGE);
if (pControl)
{
// first set size of background image
if (pGroupList)
{
if (pGroupList->GetOrientation() == VERTICAL)
{
// keep gap between bottom edges of grouplist and background image
pControl->SetHeight(m_backgroundImageSize - pGroupList->Size() + pGroupList->GetHeight());
}
else
{
// keep gap between right edges of grouplist and background image
pControl->SetWidth(m_backgroundImageSize - pGroupList->Size() + pGroupList->GetWidth());
}
}
}
// update our default control
if (pGroupList)
m_defaultControl = pGroupList->GetID();
}
示例5: CreateControls
//.........这里部分代码省略.........
{
pControl = new CGUIRadioButtonControl(*pOriginalRadioButton);
if (!pControl) return;
((CGUIRadioButtonControl *)pControl)->SetLabel(label);
((CGUIRadioButtonControl *)pControl)->SetSelected(m_settings.Get(id) == "true");
}
else if (strcmpi(type, "enum") == 0 || strcmpi(type, "labelenum") == 0)
{
vector<CStdString> valuesVec;
vector<CStdString> entryVec;
pControl = new CGUISpinControlEx(*pOriginalSpin);
if (!pControl) return;
((CGUISpinControlEx *)pControl)->SetText(label);
if (!lvalues.IsEmpty())
CUtil::Tokenize(lvalues, valuesVec, "|");
else
CUtil::Tokenize(values, valuesVec, "|");
if (!entries.IsEmpty())
CUtil::Tokenize(entries, entryVec, "|");
for (unsigned int i = 0; i < valuesVec.size(); i++)
{
int iAdd = i;
if (entryVec.size() > i)
iAdd = atoi(entryVec[i]);
if (!lvalues.IsEmpty())
{
CStdString replace = g_localizeStringsTemp.Get(atoi(valuesVec[i]));
if (replace.IsEmpty())
replace = g_localizeStrings.Get(atoi(valuesVec[i]));
((CGUISpinControlEx *)pControl)->AddLabel(replace, iAdd);
}
else
((CGUISpinControlEx *)pControl)->AddLabel(valuesVec[i], iAdd);
}
if (strcmpi(type, "labelenum") == 0)
{ // need to run through all our settings and find the one that matches
((CGUISpinControlEx*) pControl)->SetValueFromLabel(m_settings.Get(id));
}
else
((CGUISpinControlEx*) pControl)->SetValue(atoi(m_settings.Get(id)));
}
else if (strcmpi(type, "fileenum") == 0)
{
pControl = new CGUISpinControlEx(*pOriginalSpin);
if (!pControl) return;
((CGUISpinControlEx *)pControl)->SetText(label);
//find Folders...
CFileItemList items;
CStdString enumpath;
CUtil::AddFileToFolder(basepath, values, enumpath);
CStdString mask;
if (setting->Attribute("mask"))
mask = setting->Attribute("mask");
if (!mask.IsEmpty())
CDirectory::GetDirectory(enumpath, items, mask);
else
CDirectory::GetDirectory(enumpath, items);
int iItem = 0;
for (int i = 0; i < items.Size(); ++i)
{
CFileItemPtr pItem = items[i];
if ((mask.Equals("/") && pItem->m_bIsFolder) || !pItem->m_bIsFolder)
{
((CGUISpinControlEx *)pControl)->AddLabel(pItem->GetLabel(), iItem);
if (pItem->GetLabel().Equals(m_settings.Get(id)))
((CGUISpinControlEx *)pControl)->SetValue(iItem);
iItem++;
}
}
}
else if (strcmpi(type, "lsep") == 0 && pOriginalLabel)
{
pControl = new CGUILabelControl(*pOriginalLabel);
if (pControl)
((CGUILabelControl *)pControl)->SetLabel(label);
}
else if ((strcmpi(type, "sep") == 0 || strcmpi(type, "lsep") == 0) && pOriginalImage)
pControl = new CGUIImage(*pOriginalImage);
}
if (pControl)
{
pControl->SetWidth(group->GetWidth());
pControl->SetVisible(true);
pControl->SetID(controlId);
pControl->AllocResources();
group->AddControl(pControl);
pControl = NULL;
}
setting = setting->NextSiblingElement("setting");
controlId++;
}
EnableControls();
}
示例6: AddSetting
void CGUIDialogSettings::AddSetting(SettingInfo &setting, float width, int iControlID)
{
CGUIControl *pControl = NULL;
if (setting.type == SettingInfo::BUTTON_DIALOG && m_pOriginalSettingsButton)
{
pControl = new CGUIButtonControl(*m_pOriginalSettingsButton);
if (!pControl) return ;
((CGUIButtonControl *)pControl)->SetLabel(setting.name);
pControl->SetWidth(width);
if (setting.data) ((CGUIButtonControl *)pControl)->SetLabel2(*(CStdString *)setting.data);
}
else if (setting.type == SettingInfo::BUTTON && m_pOriginalSettingsButton)
{
pControl = new CGUIButtonControl(*m_pOriginalSettingsButton);
if (!pControl) return ;
((CGUIButtonControl *)pControl)->SetLabel(setting.name);
if (setting.formatFunction)
((CGUIButtonControl *)pControl)->SetLabel2(setting.formatFunction(*(float *)setting.data, setting.interval));
pControl->SetWidth(width);
}
else if (setting.type == SettingInfo::EDIT && m_pOriginalEdit)
{
pControl = new CGUIEditControl(*m_pOriginalEdit);
if (!pControl) return ;
((CGUIEditControl *)pControl)->SetLabel(setting.name);
pControl->SetWidth(width);
if (setting.data) ((CGUIEditControl *)pControl)->SetLabel2(*(CStdString *)setting.data);
}
else if (setting.type == SettingInfo::EDIT_NUM && m_pOriginalEditNum)
{
pControl = new CGUIEditControl(*m_pOriginalEditNum);
if (!pControl) return ;
((CGUIEditControl *)pControl)->SetLabel(setting.name);
pControl->SetWidth(width);
((CGUIEditControl *)pControl)->SetInputType(CGUIEditControl::INPUT_TYPE_NUMBER, 0);
if (setting.data) {
CStdString strIndex;
strIndex.Format("%i", *(int *)setting.data);
((CGUIEditControl *)pControl)->SetLabel2(strIndex);
}
}
else if (setting.type == SettingInfo::SEPARATOR && m_pOriginalSeparator)
{
pControl = new CGUIImage(*m_pOriginalSeparator);
if (!pControl) return ;
pControl->SetWidth(width);
}
else if (setting.type == SettingInfo::CHECK || setting.type == SettingInfo::CHECK_UCHAR)
{
if (!m_pOriginalRadioButton) return;
pControl = new CGUIRadioButtonControl(*m_pOriginalRadioButton);
if (!pControl) return ;
((CGUIRadioButtonControl *)pControl)->SetLabel(setting.name);
pControl->SetWidth(width);
if (setting.data) ((CGUIRadioButtonControl *)pControl)->SetSelected(*(bool *)setting.data == 1);
}
else if (setting.type == SettingInfo::SPIN && setting.entry.size() > 0 && m_pOriginalSpin)
{
pControl = new CGUISpinControlEx(*m_pOriginalSpin);
if (!pControl) return ;
pControl->SetWidth(width);
((CGUISpinControlEx *)pControl)->SetText(setting.name);
pControl->SetWidth(width);
for (unsigned int i = 0; i < setting.entry.size(); i++)
((CGUISpinControlEx *)pControl)->AddLabel(setting.entry[i].second, setting.entry[i].first);
if (setting.data) ((CGUISpinControlEx *)pControl)->SetValue(*(int *)setting.data);
}
else if (setting.type == SettingInfo::SLIDER)
{
if (!m_pOriginalSlider) return;
pControl = new CGUISettingsSliderControl(*m_pOriginalSlider);
if (!pControl) return ;
pControl->SetWidth(width);
((CGUISettingsSliderControl *)pControl)->SetText(setting.name);
if (setting.formatFunction)
((CGUISettingsSliderControl *)pControl)->SetTextValue(setting.formatFunction(*(float *)setting.data, setting.interval));
((CGUISettingsSliderControl *)pControl)->SetType(SPIN_CONTROL_TYPE_FLOAT);
((CGUISettingsSliderControl *)pControl)->SetFloatRange(setting.min, setting.max);
((CGUISettingsSliderControl *)pControl)->SetFloatInterval(setting.interval);
if (setting.data) ((CGUISettingsSliderControl *)pControl)->SetFloatValue(*(float *)setting.data);
}
if (!pControl) return;
pControl->SetID(iControlID);
pControl->SetVisible(true);
pControl->SetEnabled(setting.enabled);
CGUIControlGroupList *group = (CGUIControlGroupList *)GetControl(CONTROL_GROUP_LIST);
if (group)
{
pControl->AllocResources();
group->AddControl(pControl);
}
else
delete pControl;
}
示例7: CreateControls
//.........这里部分代码省略.........
if (StringUtils::EqualsNoCase(items[i], m_settings[id]))
((CGUISpinControlEx *)pControl)->SetValue(i);
}
}
// Sample: <setting id="mysettingname" type="rangeofnum" label="30000" rangestart="0" rangeend="100" elements="11" valueformat="30001" default="0" />
// in strings.xml: <string id="30001">%2.0f mp</string>
// creates 11 piece, text formated number labels from 0 to 100
else if (type == "rangeofnum" && !id.empty())
{
pControl = new CGUISpinControlEx(*pOriginalSpin);
if (!pControl)
return;
((CGUISpinControlEx *)pControl)->SetText(label);
((CGUISpinControlEx *)pControl)->SetFloatValue(1.0f);
double rangestart = 0, rangeend = 1;
setting->Attribute("rangestart", &rangestart);
setting->Attribute("rangeend", &rangeend);
int elements = 2;
setting->Attribute("elements", &elements);
std::string valueformat;
if (setting->Attribute("valueformat"))
valueformat = m_addon->GetString(atoi(setting->Attribute("valueformat")));
for (int i = 0; i < elements; i++)
{
std::string valuestring;
if (elements < 2)
valuestring = StringUtils::Format(valueformat.c_str(), rangestart);
else
valuestring = StringUtils::Format(valueformat.c_str(), rangestart+(rangeend-rangestart)/(elements-1)*i);
((CGUISpinControlEx *)pControl)->AddLabel(valuestring, i);
}
((CGUISpinControlEx *)pControl)->SetValue(atoi(m_settings[id].c_str()));
}
// Sample: <setting id="mysettingname" type="slider" label="30000" range="5,5,60" option="int" default="5"/>
// to make ints from 5-60 with 5 steps
else if (type == "slider" && !id.empty())
{
pControl = new CGUISettingsSliderControl(*pOriginalSlider);
if (!pControl) return;
((CGUISettingsSliderControl *)pControl)->SetText(label);
float fMin = 0.0f;
float fMax = 100.0f;
float fInc = 1.0f;
vector<std::string> range = StringUtils::Split(XMLUtils::GetAttribute(setting, "range"), ',');
if (range.size() > 1)
{
fMin = (float)atof(range[0].c_str());
if (range.size() > 2)
{
fMax = (float)atof(range[2].c_str());
fInc = (float)atof(range[1].c_str());
}
else
fMax = (float)atof(range[1].c_str());
}
std::string option = XMLUtils::GetAttribute(setting, "option");
int iType=0;
if (option.empty() || StringUtils::EqualsNoCase(option, "float"))
iType = SLIDER_CONTROL_TYPE_FLOAT;
else if (StringUtils::EqualsNoCase(option, "int"))
iType = SLIDER_CONTROL_TYPE_INT;
else if (StringUtils::EqualsNoCase(option, "percent"))
iType = SLIDER_CONTROL_TYPE_PERCENTAGE;
((CGUISettingsSliderControl *)pControl)->SetType(iType);
((CGUISettingsSliderControl *)pControl)->SetFloatRange(fMin, fMax);
((CGUISettingsSliderControl *)pControl)->SetFloatInterval(fInc);
((CGUISettingsSliderControl *)pControl)->SetFloatValue((float)atof(m_settings[id].c_str()));
}
else if (type == "lsep")
{
pControl = new CGUILabelControl(*pOriginalLabel);
if (pControl)
((CGUILabelControl *)pControl)->SetLabel(label);
}
else if (type == "sep")
pControl = new CGUIImage(*pOriginalImage);
}
if (pControl)
{
pControl->SetWidth(group->GetWidth());
pControl->SetVisible(true);
pControl->SetID(controlId);
pControl->AllocResources();
group->AddControl(pControl);
pControl = NULL;
}
setting = setting->NextSiblingElement("setting");
controlId++;
}
EnableControls();
}