|
|
@ -114,6 +114,19 @@ namespace NLGUI
|
|
|
|
OldShadowColorGrayed.A = OldColorGrayed.A = (uint8)a;
|
|
|
|
OldShadowColorGrayed.A = OldColorGrayed.A = (uint8)a;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
void CViewTextMenu::setActive (bool state)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_ParentMenu)
|
|
|
|
|
|
|
|
_ParentMenu->setActive(state);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (_Active != state)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_Active = state;
|
|
|
|
|
|
|
|
invalidateCoords();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
|
|
// CGroupSubMenu
|
|
|
|
// CGroupSubMenu
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
|
@ -290,6 +303,9 @@ namespace NLGUI
|
|
|
|
if (cond) strCond = (const char*)cond;
|
|
|
|
if (cond) strCond = (const char*)cond;
|
|
|
|
CXMLAutoPtr params((const char*) xmlGetProp (cur, (xmlChar*)"params"));
|
|
|
|
CXMLAutoPtr params((const char*) xmlGetProp (cur, (xmlChar*)"params"));
|
|
|
|
if (params) strParams = (const char*)params;
|
|
|
|
if (params) strParams = (const char*)params;
|
|
|
|
|
|
|
|
CXMLAutoPtr icon((const char*) xmlGetProp (cur, (xmlChar*)"icon"));
|
|
|
|
|
|
|
|
if (icon)
|
|
|
|
|
|
|
|
strTexture = (const char*)icon;
|
|
|
|
CXMLAutoPtr strCheckable((const char*) xmlGetProp (cur, (xmlChar*)"checkable"));
|
|
|
|
CXMLAutoPtr strCheckable((const char*) xmlGetProp (cur, (xmlChar*)"checkable"));
|
|
|
|
bool bCheckable = false;
|
|
|
|
bool bCheckable = false;
|
|
|
|
if (strCheckable) bCheckable = convertBool (strCheckable);
|
|
|
|
if (strCheckable) bCheckable = convertBool (strCheckable);
|
|
|
@ -393,11 +409,11 @@ namespace NLGUI
|
|
|
|
pVB->setSerializable( false );
|
|
|
|
pVB->setSerializable( false );
|
|
|
|
pVB->setParent (this);
|
|
|
|
pVB->setParent (this);
|
|
|
|
pVB->setParentPos (parentPos);
|
|
|
|
pVB->setParentPos (parentPos);
|
|
|
|
pVB->setParentPosRef (Hotspot_ML);
|
|
|
|
pVB->setParentPosRef (Hotspot_BL);
|
|
|
|
pVB->setPosRef (Hotspot_MR);
|
|
|
|
pVB->setPosRef (Hotspot_BR);
|
|
|
|
pVB->setTexture(texture);
|
|
|
|
pVB->setTexture(texture);
|
|
|
|
pVB->setModulateGlobalColor(false);
|
|
|
|
pVB->setModulateGlobalColor(false);
|
|
|
|
pVB->setX (-2);
|
|
|
|
pVB->setX (MENU_WIDGET_X);
|
|
|
|
addView (pVB);
|
|
|
|
addView (pVB);
|
|
|
|
return pVB;
|
|
|
|
return pVB;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -639,12 +655,14 @@ namespace NLGUI
|
|
|
|
|
|
|
|
|
|
|
|
// *** Update Text Positions
|
|
|
|
// *** Update Text Positions
|
|
|
|
// sint32 currX = 0;
|
|
|
|
// sint32 currX = 0;
|
|
|
|
|
|
|
|
sint32 maxTextW = 0;
|
|
|
|
for(k = 0; k < _Lines.size(); ++k)
|
|
|
|
for(k = 0; k < _Lines.size(); ++k)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (_Lines[k].ViewText)
|
|
|
|
if (_Lines[k].ViewText)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Setup Y
|
|
|
|
// Setup Y
|
|
|
|
_Lines[k].ViewText->setY(_Lines[k].TextDY);
|
|
|
|
_Lines[k].ViewText->setY(_Lines[k].TextDY);
|
|
|
|
|
|
|
|
maxTextW = max(maxTextW, _Lines[k].ViewText->getW());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -658,10 +676,12 @@ namespace NLGUI
|
|
|
|
|
|
|
|
|
|
|
|
// *** Setup SubMenus and CheckBoxes Positions
|
|
|
|
// *** Setup SubMenus and CheckBoxes Positions
|
|
|
|
sint32 maxViewW = 0;
|
|
|
|
sint32 maxViewW = 0;
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 1; i < _Views.size(); ++i)
|
|
|
|
for (i = 1; i < _Views.size(); ++i)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
CViewBitmap *pVB = dynamic_cast<CViewBitmap *>(_Views[i]);
|
|
|
|
CViewBitmap *pVB = dynamic_cast<CViewBitmap *>(_Views[i]);
|
|
|
|
if (pVB == NULL) continue;
|
|
|
|
if (pVB == NULL) continue;
|
|
|
|
|
|
|
|
|
|
|
|
if (pVB->getId() == ID_MENU_SUBMENU)
|
|
|
|
if (pVB->getId() == ID_MENU_SUBMENU)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Look for the next line of the menu that contains a sub menu
|
|
|
|
// Look for the next line of the menu that contains a sub menu
|
|
|
@ -1250,6 +1270,7 @@ namespace NLGUI
|
|
|
|
_GroupList->addChild (pV);
|
|
|
|
_GroupList->addChild (pV);
|
|
|
|
|
|
|
|
|
|
|
|
CViewBitmap *checkBox = NULL;
|
|
|
|
CViewBitmap *checkBox = NULL;
|
|
|
|
|
|
|
|
CViewBitmap *icon = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
if (checkable)
|
|
|
|
if (checkable)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1258,15 +1279,6 @@ namespace NLGUI
|
|
|
|
pV->setCheckBox(checkBox);
|
|
|
|
pV->setCheckBox(checkBox);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CViewBitmap *icon = NULL;
|
|
|
|
|
|
|
|
if (!texture.empty())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_GroupList->getNumChildren() == 1)
|
|
|
|
|
|
|
|
pV->setX(20);
|
|
|
|
|
|
|
|
icon = createIcon(pV, texture);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tmp.ViewText = pV;
|
|
|
|
tmp.ViewText = pV;
|
|
|
|
tmp.Separator = NULL;
|
|
|
|
tmp.Separator = NULL;
|
|
|
|
tmp.AHName = ah;
|
|
|
|
tmp.AHName = ah;
|
|
|
@ -1281,11 +1293,38 @@ namespace NLGUI
|
|
|
|
|
|
|
|
|
|
|
|
pV->setId(_GroupMenu->getId()+":"+tmp.Id);
|
|
|
|
pV->setId(_GroupMenu->getId()+":"+tmp.Id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
typedef std::pair<std::string, std::string> TTmplParams;
|
|
|
|
|
|
|
|
std::vector<TTmplParams> vparams;
|
|
|
|
|
|
|
|
uint lineIndex = _Lines.size()-1;
|
|
|
|
|
|
|
|
vparams.push_back(TTmplParams("id", toString("icon%d", lineIndex)));
|
|
|
|
|
|
|
|
vparams.push_back(TTmplParams("sizeref", ""));
|
|
|
|
|
|
|
|
vparams.push_back(TTmplParams("icon_texture", texture.c_str()));
|
|
|
|
|
|
|
|
//vparams.push_back(TTmplParams("icon_color", options.ColorNormal.toString()));
|
|
|
|
|
|
|
|
string lineId = toString("%s:icon%d", _GroupMenu->getId().c_str(), lineIndex);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CInterfaceGroup *pUGLeft = CWidgetManager::getInstance()->getParser()->createGroupInstance("menu_row_icon", lineId, vparams);
|
|
|
|
|
|
|
|
if (pUGLeft)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tmp.UserGroupLeft = pUGLeft;
|
|
|
|
|
|
|
|
tmp.UserGroupLeftOwnership = true;
|
|
|
|
|
|
|
|
addGroup(pUGLeft);
|
|
|
|
|
|
|
|
pUGLeft->setParent(this);
|
|
|
|
|
|
|
|
pUGLeft->setParentPos(this);
|
|
|
|
|
|
|
|
pUGLeft->setParentPosRef (Hotspot_BL);
|
|
|
|
|
|
|
|
pUGLeft->setPosRef (Hotspot_BL);
|
|
|
|
|
|
|
|
pUGLeft->setX(LEFT_MENU_WIDGET_X);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Lines.push_back (tmp);
|
|
|
|
_Lines.push_back (tmp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Add an empty sub menu by default
|
|
|
|
// Add an empty sub menu by default
|
|
|
|
_SubMenus.push_back (NULL);
|
|
|
|
_SubMenus.push_back (NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_GroupMenu->invalidateCoords();
|
|
|
|
_GroupMenu->invalidateCoords();
|
|
|
|
|
|
|
|
|
|
|
|
return pV;
|
|
|
|
return pV;
|
|
|
|