Compare commits

...

3 Commits

Author SHA1 Message Date
bensaine 85a8c956fb fixes 3 years ago
bensaine 1c65914b10 fix: tooltip opacity 3 years ago
bensaine ddb4cce712 initial draft 3 years ago

@ -489,6 +489,8 @@ namespace NLGUI
uint8 getGlobalContainerAlpha() const { return _GlobalContainerAlpha; }
uint8 getGlobalRolloverFactorContent() const { return _GlobalRolloverFactorContent; }
uint8 getGlobalRolloverFactorContainer() const { return _GlobalRolloverFactorContainer; }
uint8 getContextHelpContentAlpha() const { return _ContextHelpContentAlpha; }
uint8 getContextHelpContainerAlpha() const { return _ContextHelpContainerAlpha; }
void updateGlobalAlphas();
void resetGlobalAlphasProps();
@ -608,12 +610,16 @@ namespace NLGUI
NLMISC::CCDBNodeLeaf *_GlobalContainerAlphaDB;
NLMISC::CCDBNodeLeaf *_GlobalContentRolloverFactorDB;
NLMISC::CCDBNodeLeaf *_GlobalContainerRolloverFactorDB;
NLMISC::CCDBNodeLeaf * _ContextHelpContentAlphaDB;
NLMISC::CCDBNodeLeaf * _ContextHelpContainerAlphaDB;
uint8 _ContainerAlpha;
uint8 _GlobalContentAlpha;
uint8 _GlobalContainerAlpha;
uint8 _GlobalRolloverFactorContent;
uint8 _GlobalRolloverFactorContainer;
uint8 _ContextHelpContentAlpha;
uint8 _ContextHelpContainerAlpha;
bool _MouseHandlingEnabled;

@ -1783,29 +1783,65 @@ namespace NLGUI
/** If there's a modal box around, should be sure that the context help doesn't intersect it.
* If this is the case, we just disable it, unless the tooltip was generated by the current modal window
*/
bool draw = false;
if ( hasModal() )
{
CInterfaceGroup *mw = getModal().ModalWindow;
if (mw && mw->isIn(*groupContextHelp))
{
if (_CurCtrlContextHelp->isSonOf(mw))
{
groupContextHelp->executeLuaScriptOnDraw();
groupContextHelp->draw ();
// flush layers
CViewRenderer::getInstance()->flush();
}
draw = true;
}
else
{
groupContextHelp->executeLuaScriptOnDraw();
groupContextHelp->draw ();
// flush layers
CViewRenderer::getInstance()->flush();
}
draw = true;
}
else
{
draw = true;
if (draw) {
// apply opacity settings
const std::vector< CViewBase* > &vs = groupContextHelp->getViews();
// content opacity: only target views or else breaks
for( uint i = 0; i < vs.size(); ++i)
{
CViewBase *pVB = vs[i];
pVB->setAlpha(_ContextHelpContentAlpha);
}
// go into sub groups and apply opacity to views and controls (this is mainly for crystallized_spell_context_help)
const std::vector<CInterfaceGroup*> &rG = groupContextHelp->getGroups();
if (!rG.empty()) {
for(uint i = 0; i < rG.size(); ++i) {
const std::vector< CInterfaceGroup* > &vs = rG[i]->getGroups();
if (!vs.empty()) {
for( uint j = 0; j < vs.size(); ++j)
{
const std::vector< CViewBase* > &vb = vs[j]->getViews();
if (!vb.empty()) {
for( uint k = 0; k < vb.size(); ++k)
{
CViewBase *pVB = vb[k];
pVB->setAlpha(_ContextHelpContentAlpha);
}
}
}
}
const std::vector< CViewBase* > &vb = rG[i]->getViews();
if (!vb.empty()) {
for( uint k = 0; k < vb.size(); ++k)
{
CViewBase *pVB = vb[k];
pVB->setAlpha(_ContextHelpContentAlpha);
}
}
}
}
// container opacity
CInterfaceGroup* container = dynamic_cast<CInterfaceGroup*>(groupContextHelp->findFromShortId("border"));
if (container)
container->setAlpha(_ContextHelpContainerAlpha);
// draw the tooltip
groupContextHelp->executeLuaScriptOnDraw();
groupContextHelp->draw ();
// flush layers
@ -3338,11 +3374,17 @@ namespace NLGUI
nlassert(_GlobalContentRolloverFactorDB);
_GlobalContainerRolloverFactorDB = CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ROLLOVER_FACTOR");
nlassert(_GlobalContainerRolloverFactorDB);
_ContextHelpContentAlphaDB = CDBManager::getInstance()->getDbProp("UI:SAVE:CONTEXT_HELP_CONTENT_ALPHA");
nlassert(_ContextHelpContentAlphaDB);
_ContextHelpContainerAlphaDB = CDBManager::getInstance()->getDbProp("UI:SAVE:CONTEXT_HELP_CONTAINER_ALPHA");
nlassert(_ContextHelpContainerAlphaDB);
}
_GlobalContentAlpha = (uint8)_GlobalContentAlphaDB->getValue32();
_GlobalContainerAlpha = (uint8)_GlobalContainerAlphaDB->getValue32();
_GlobalRolloverFactorContent = (uint8)_GlobalContentRolloverFactorDB->getValue32();
_GlobalRolloverFactorContainer = (uint8)_GlobalContainerRolloverFactorDB->getValue32();
_ContextHelpContentAlpha = (uint8)_ContextHelpContentAlphaDB->getValue32();
_ContextHelpContainerAlpha = (uint8)_ContextHelpContainerAlphaDB->getValue32();
}
void CWidgetManager::resetGlobalAlphasProps()
@ -3351,6 +3393,8 @@ namespace NLGUI
_GlobalContainerAlphaDB = NULL;
_GlobalContentRolloverFactorDB = NULL;
_GlobalContainerRolloverFactorDB = NULL;
_ContextHelpContentAlphaDB = NULL;
_ContextHelpContainerAlphaDB = NULL;
}
void CWidgetManager::registerNewScreenSizeHandler( INewScreenSizeHandler *handler )
@ -3884,6 +3928,8 @@ namespace NLGUI
_GlobalRolloverFactorContent = 255;
_GlobalRolloverFactorContainer = 255;
_AlphaRolloverSpeedDB = NULL;
_ContextHelpContentAlpha = 255;
_ContextHelpContainerAlpha = 255;
_MouseHandlingEnabled = true;
_MouseOverWindow = false;

Loading…
Cancel
Save