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 getGlobalContainerAlpha() const { return _GlobalContainerAlpha; }
uint8 getGlobalRolloverFactorContent() const { return _GlobalRolloverFactorContent; } uint8 getGlobalRolloverFactorContent() const { return _GlobalRolloverFactorContent; }
uint8 getGlobalRolloverFactorContainer() const { return _GlobalRolloverFactorContainer; } uint8 getGlobalRolloverFactorContainer() const { return _GlobalRolloverFactorContainer; }
uint8 getContextHelpContentAlpha() const { return _ContextHelpContentAlpha; }
uint8 getContextHelpContainerAlpha() const { return _ContextHelpContainerAlpha; }
void updateGlobalAlphas(); void updateGlobalAlphas();
void resetGlobalAlphasProps(); void resetGlobalAlphasProps();
@ -608,12 +610,16 @@ namespace NLGUI
NLMISC::CCDBNodeLeaf *_GlobalContainerAlphaDB; NLMISC::CCDBNodeLeaf *_GlobalContainerAlphaDB;
NLMISC::CCDBNodeLeaf *_GlobalContentRolloverFactorDB; NLMISC::CCDBNodeLeaf *_GlobalContentRolloverFactorDB;
NLMISC::CCDBNodeLeaf *_GlobalContainerRolloverFactorDB; NLMISC::CCDBNodeLeaf *_GlobalContainerRolloverFactorDB;
NLMISC::CCDBNodeLeaf * _ContextHelpContentAlphaDB;
NLMISC::CCDBNodeLeaf * _ContextHelpContainerAlphaDB;
uint8 _ContainerAlpha; uint8 _ContainerAlpha;
uint8 _GlobalContentAlpha; uint8 _GlobalContentAlpha;
uint8 _GlobalContainerAlpha; uint8 _GlobalContainerAlpha;
uint8 _GlobalRolloverFactorContent; uint8 _GlobalRolloverFactorContent;
uint8 _GlobalRolloverFactorContainer; uint8 _GlobalRolloverFactorContainer;
uint8 _ContextHelpContentAlpha;
uint8 _ContextHelpContainerAlpha;
bool _MouseHandlingEnabled; 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 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 * If this is the case, we just disable it, unless the tooltip was generated by the current modal window
*/ */
bool draw = false;
if ( hasModal() ) if ( hasModal() )
{ {
CInterfaceGroup *mw = getModal().ModalWindow; CInterfaceGroup *mw = getModal().ModalWindow;
if (mw && mw->isIn(*groupContextHelp)) if (mw && mw->isIn(*groupContextHelp))
{ {
if (_CurCtrlContextHelp->isSonOf(mw)) if (_CurCtrlContextHelp->isSonOf(mw))
{ draw = true;
groupContextHelp->executeLuaScriptOnDraw();
groupContextHelp->draw ();
// flush layers
CViewRenderer::getInstance()->flush();
} }
else
draw = true;
} }
else 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)
{ {
groupContextHelp->executeLuaScriptOnDraw(); CViewBase *pVB = vs[i];
groupContextHelp->draw (); pVB->setAlpha(_ContextHelpContentAlpha);
// flush layers
CViewRenderer::getInstance()->flush();
} }
// 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);
} }
else }
}
}
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->executeLuaScriptOnDraw();
groupContextHelp->draw (); groupContextHelp->draw ();
// flush layers // flush layers
@ -3338,11 +3374,17 @@ namespace NLGUI
nlassert(_GlobalContentRolloverFactorDB); nlassert(_GlobalContentRolloverFactorDB);
_GlobalContainerRolloverFactorDB = CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ROLLOVER_FACTOR"); _GlobalContainerRolloverFactorDB = CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ROLLOVER_FACTOR");
nlassert(_GlobalContainerRolloverFactorDB); 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(); _GlobalContentAlpha = (uint8)_GlobalContentAlphaDB->getValue32();
_GlobalContainerAlpha = (uint8)_GlobalContainerAlphaDB->getValue32(); _GlobalContainerAlpha = (uint8)_GlobalContainerAlphaDB->getValue32();
_GlobalRolloverFactorContent = (uint8)_GlobalContentRolloverFactorDB->getValue32(); _GlobalRolloverFactorContent = (uint8)_GlobalContentRolloverFactorDB->getValue32();
_GlobalRolloverFactorContainer = (uint8)_GlobalContainerRolloverFactorDB->getValue32(); _GlobalRolloverFactorContainer = (uint8)_GlobalContainerRolloverFactorDB->getValue32();
_ContextHelpContentAlpha = (uint8)_ContextHelpContentAlphaDB->getValue32();
_ContextHelpContainerAlpha = (uint8)_ContextHelpContainerAlphaDB->getValue32();
} }
void CWidgetManager::resetGlobalAlphasProps() void CWidgetManager::resetGlobalAlphasProps()
@ -3351,6 +3393,8 @@ namespace NLGUI
_GlobalContainerAlphaDB = NULL; _GlobalContainerAlphaDB = NULL;
_GlobalContentRolloverFactorDB = NULL; _GlobalContentRolloverFactorDB = NULL;
_GlobalContainerRolloverFactorDB = NULL; _GlobalContainerRolloverFactorDB = NULL;
_ContextHelpContentAlphaDB = NULL;
_ContextHelpContainerAlphaDB = NULL;
} }
void CWidgetManager::registerNewScreenSizeHandler( INewScreenSizeHandler *handler ) void CWidgetManager::registerNewScreenSizeHandler( INewScreenSizeHandler *handler )
@ -3884,6 +3928,8 @@ namespace NLGUI
_GlobalRolloverFactorContent = 255; _GlobalRolloverFactorContent = 255;
_GlobalRolloverFactorContainer = 255; _GlobalRolloverFactorContainer = 255;
_AlphaRolloverSpeedDB = NULL; _AlphaRolloverSpeedDB = NULL;
_ContextHelpContentAlpha = 255;
_ContextHelpContainerAlpha = 255;
_MouseHandlingEnabled = true; _MouseHandlingEnabled = true;
_MouseOverWindow = false; _MouseOverWindow = false;

Loading…
Cancel
Save