diff --git a/code/nel/include/nel/gui/widget_manager.h b/code/nel/include/nel/gui/widget_manager.h
index 8188a68cb..9f6f685c9 100644
--- a/code/nel/include/nel/gui/widget_manager.h
+++ b/code/nel/include/nel/gui/widget_manager.h
@@ -55,6 +55,21 @@ namespace NLGUI
class CWidgetManager{
public:
+ struct SInterfaceTimes
+ {
+ public:
+ sint64 lastFrameMs;
+ sint64 thisFrameMs;
+ sint64 frameDiffMs;
+
+ SInterfaceTimes()
+ {
+ lastFrameMs = 0;
+ thisFrameMs = 0;
+ frameDiffMs = 0;
+ }
+ };
+
// Master groups encapsulate all windows
struct SMasterGroup
{
@@ -341,6 +356,21 @@ namespace NLGUI
_OverExtendViewText = vt;
_OverExtendViewTextBackColor = backGround;
}
+
+ float getAlphaRolloverSpeed();
+ void resetAlphaRolloverSpeed();
+
+ void setContainerAlpha( uint8 alpha );
+ uint8 getContainerAlpha() const { return _ContainerAlpha; }
+ uint8 getGlobalContentAlpha() const { return _GlobalContentAlpha; }
+ uint8 getGlobalContainerAlpha() const { return _GlobalContainerAlpha; }
+ uint8 getGlobalRolloverFactorContent() const { return _GlobalRolloverFactorContent; }
+ uint8 getGlobalRolloverFactorContainer() const { return _GlobalRolloverFactorContainer; }
+
+ void updateGlobalAlphas();
+
+ const SInterfaceTimes& getInterfaceTimes() const{ return interfaceTimes; }
+ void updateInterfaceTimes( const SInterfaceTimes × ){ interfaceTimes = times; }
static IParser *parser;
@@ -383,6 +413,13 @@ namespace NLGUI
NLMISC::CCDBNodeLeaf *_GProp;
NLMISC::CCDBNodeLeaf *_BProp;
NLMISC::CCDBNodeLeaf *_AProp;
+ NLMISC::CCDBNodeLeaf *_AlphaRolloverSpeedDB;
+
+ uint8 _ContainerAlpha;
+ uint8 _GlobalContentAlpha;
+ uint8 _GlobalContainerAlpha;
+ uint8 _GlobalRolloverFactorContent;
+ uint8 _GlobalRolloverFactorContainer;
bool _MouseHandlingEnabled;
@@ -392,6 +429,8 @@ namespace NLGUI
// The next ViewText to draw for Over
NLMISC::CRefPtr< CInterfaceElement > _OverExtendViewText;
NLMISC::CRGBA _OverExtendViewTextBackColor;
+
+ SInterfaceTimes interfaceTimes;
};
}
diff --git a/code/nel/src/gui/group_editbox.cpp b/code/nel/src/gui/group_editbox.cpp
index 062981568..e24649f3c 100644
--- a/code/nel/src/gui/group_editbox.cpp
+++ b/code/nel/src/gui/group_editbox.cpp
@@ -293,7 +293,9 @@ namespace NLGUI
// Display the cursor if needed
if (CWidgetManager::getInstance()->getCaptureKeyboard () == this)
{
- _BlinkTime += 0.0025f;
+ const CWidgetManager::SInterfaceTimes × = CWidgetManager::getInstance()->getInterfaceTimes();
+
+ _BlinkTime += ( static_cast< float >( times.frameDiffMs ) / 1000.0f );
if (_BlinkTime > 0.25f)
{
_BlinkTime = fmodf(_BlinkTime, 0.25f);
diff --git a/code/nel/src/gui/widget_manager.cpp b/code/nel/src/gui/widget_manager.cpp
index 483df5887..f60349a69 100644
--- a/code/nel/src/gui/widget_manager.cpp
+++ b/code/nel/src/gui/widget_manager.cpp
@@ -29,6 +29,8 @@ namespace
{
const uint DOUBLE_CLICK_MIN = 50;
const uint DOUBLE_CLICK_MAX = 750;
+ const float ROLLOVER_MIN_DELTA_PER_MS = 0.28f;
+ const float ROLLOVER_MAX_DELTA_PER_MS = 0.12f;
}
namespace NLGUI
@@ -960,6 +962,8 @@ namespace NLGUI
setCapturePointerRight(NULL);
resetColorProps();
+
+ _AlphaRolloverSpeedDB = NULL;
}
@@ -1445,6 +1449,37 @@ namespace NLGUI
}
}
+
+ // Get the alpha roll over speed
+ float CWidgetManager::getAlphaRolloverSpeed()
+ {
+ if( _AlphaRolloverSpeedDB == NULL )
+ _AlphaRolloverSpeedDB = NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:ALPHA_ROLLOVER_SPEED");
+ float fTmp = ROLLOVER_MIN_DELTA_PER_MS + (ROLLOVER_MAX_DELTA_PER_MS - ROLLOVER_MIN_DELTA_PER_MS) * 0.01f * (100 - _AlphaRolloverSpeedDB->getValue32());
+ return fTmp*fTmp*fTmp;
+ }
+
+ void CWidgetManager::resetAlphaRolloverSpeed()
+ {
+ _AlphaRolloverSpeedDB = NULL;
+ }
+
+ void CWidgetManager::setContainerAlpha(uint8 alpha)
+ {
+ _ContainerAlpha = alpha;
+ // update alpha of global color
+ NLMISC::CRGBA c = getGlobalColor();
+ c.A = alpha;/*(uint8) (( (uint16) _GlobalColor.A * (uint16) _ContainerAlpha) >> 8); */
+ setGlobalColor( c );
+ }
+
+ void CWidgetManager::updateGlobalAlphas()
+ {
+ _GlobalContentAlpha = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTENT_ALPHA")->getValue32();
+ _GlobalContainerAlpha = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ALPHA")->getValue32();
+ _GlobalRolloverFactorContent = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTENT_ROLLOVER_FACTOR")->getValue32();
+ _GlobalRolloverFactorContainer = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ROLLOVER_FACTOR")->getValue32();
+ }
CWidgetManager::CWidgetManager()
{
@@ -1456,6 +1491,12 @@ namespace NLGUI
_GlobalColor = NLMISC::CRGBA(255,255,255,255);
_GlobalColorForContent = _GlobalColor;
_ContentAlpha = 255;
+ _ContainerAlpha = 255;
+ _GlobalContentAlpha = 255;
+ _GlobalContainerAlpha = 255;
+ _GlobalRolloverFactorContent = 255;
+ _GlobalRolloverFactorContainer = 255;
+ _AlphaRolloverSpeedDB = NULL;
_MouseHandlingEnabled = true;
}
diff --git a/code/ryzom/client/src/interface_v3/group_container.cpp b/code/ryzom/client/src/interface_v3/group_container.cpp
index f787a4f9a..d101e968b 100644
--- a/code/ryzom/client/src/interface_v3/group_container.cpp
+++ b/code/ryzom/client/src/interface_v3/group_container.cpp
@@ -14,28 +14,22 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-
-
-// ***************************************************************************
-#include "stdpch.h"
-
#include "group_container.h"
-#include "interface_manager.h"
#include "nel/gui/interface_options.h"
#include "nel/misc/xml_auto_ptr.h"
#include "nel/gui/action_handler.h"
-#include "../time_client.h"
#include "nel/gui/group_editbox.h"
#include "nel/gui/view_text_formated.h"
#include "nel/gui/view_text_id.h"
#include "nel/gui/lua_ihm.h"
-
#include "nel/gui/group_list.h"
#include "nel/gui/ctrl_button.h"
#include "nel/gui/ctrl_scroll.h"
#include "nel/gui/view_text.h"
#include "nel/gui/view_bitmap.h"
-#include "../time_client.h"
+#include "nel/gui/view_renderer.h"
+#include "nel/gui/widget_manager.h"
+#include "nel/gui/view_pointer_base.h"
// ***************************************************************************
@@ -330,7 +324,6 @@ bool CCtrlResizer::handleEvent (const NLGUI::CEventDescriptor &event)
// call resize handler of parent container if any
if (gc && gc->getAHOnResizePtr() != NULL)
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
CAHManager::getInstance()->runActionHandler(gc->getAHOnResize(), gc, gc->getAHOnResizeParams());
}
}
@@ -469,7 +462,6 @@ COptionsContainerInsertion *CCtrlMover::getInsertionOptions()
{
static NLMISC::CRefPtr insertionOptions;
if (insertionOptions) return insertionOptions;
- CInterfaceManager *im = CInterfaceManager::getInstance();
insertionOptions = (COptionsContainerInsertion *) CWidgetManager::getInstance()->getOptions("container_insertion_opt");
return insertionOptions;
}
@@ -483,7 +475,6 @@ void CCtrlMover::draw ()
#endif
// No Op if window is minimized
- CInterfaceManager *pIM= CInterfaceManager::getInstance();
if(CViewRenderer::getInstance()->isMinimized())
return;
@@ -498,7 +489,6 @@ void CCtrlMover::draw ()
uint32 sw, sh;
rVR.getScreenSize(sw, sh);
rVR.setClipWindow (0, 0, (sint32) sw, (sint32) sh);
- CInterfaceManager *im = CInterfaceManager::getInstance();
CViewRenderer &vr = *CViewRenderer::getInstance();
//
CGroupContainer *gc = dynamic_cast(_Parent);
@@ -567,7 +557,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
if (!_Active)
return false;
- CInterfaceManager *pIM= CInterfaceManager::getInstance();
+ const CWidgetManager::SInterfaceTimes × = CWidgetManager::getInstance()->getInterfaceTimes();
if (event.getType() == NLGUI::CEventDescriptor::system)
{
@@ -577,7 +567,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
const NLGUI::CEventDescriptorSetFocus &edsf = (const NLGUI::CEventDescriptorSetFocus &) eds;
if (edsf.hasFocus() == false && _Moving)
{
- stopMove(pIM);
+ stopMove();
return true;
}
}
@@ -664,7 +654,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
gc->setHighLighted(false);
if (_HasMoved || _MovingInParentList)
{
- stopMove(pIM);
+ stopMove();
return true;
}
if (isIn(eventDesc.getX(), eventDesc.getY()))
@@ -674,7 +664,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
{
_WaitToOpenClose = true;
CWidgetManager::getInstance()->registerClockMsgTarget(this);
- _WaitToOpenCloseDate = T1;
+ _WaitToOpenCloseDate = times.thisFrameMs;
}
else
{
@@ -716,7 +706,6 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
CWidgetManager::getInstance()->setTopWindow(_Parent);
if (gc->getAHOnBeginMovePtr())
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
CAHManager::getInstance()->runActionHandler(gc->getAHOnBeginMove(), gc, gc->getAHOnBeginMoveParams());
}
return true;
@@ -728,7 +717,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
// Leave Moving?
if (eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouseleftup )
{
- stopMove(pIM);
+ stopMove();
return true;
}
// Move
@@ -753,7 +742,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
CGroupList *parentList = dynamic_cast(gc->getParent());
if (!parentList) return false;
if (parentList->getNbElement() == 1) return false;
- setMovingInParent(gc, x, y, pIM, eventDesc);
+ setMovingInParent(gc, x, y, eventDesc);
updateInsertionIndex(parentList, eventDesc.getY());
return true;
}
@@ -765,7 +754,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
{
if (abs(x - _Parent->getX()) > DELTA_BEFORE_POPUP || abs(y - _Parent->getY()) > DELTA_BEFORE_POPUP)
{
- setPoped(gc, x, y, pIM, eventDesc);
+ setPoped(gc, x, y, eventDesc);
return true;
}
}
@@ -777,7 +766,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
CGroupList *parentList = dynamic_cast(gc->getParent());
if (!parentList) return false;
if (parentList->getNbElement() == 1) return false;
- setMovingInParent(gc, x, y, pIM, eventDesc);
+ setMovingInParent(gc, x, y, eventDesc);
updateInsertionIndex(parentList, eventDesc.getY());
return true;
}
@@ -785,7 +774,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
//if (_Parent->getX() - x > DELTA_BEFORE_POPUP || x - (_Parent->getX() + _Parent->getWReal()) > DELTA_BEFORE_POPUP)
if (abs(x - _Parent->getX()) > DELTA_BEFORE_POPUP)
{
- setPoped(gc, x, y, pIM, eventDesc);
+ setPoped(gc, x, y, eventDesc);
return true;
}
}
@@ -920,7 +909,7 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
if (_WaitToOpenClose)
{
uint dbclickDelay = CWidgetManager::getInstance()->getUserDblClickDelay();
- if ((T1 - _WaitToOpenCloseDate) > dbclickDelay)
+ if ((times.thisFrameMs - _WaitToOpenCloseDate) > dbclickDelay)
{
CGroupContainer *gc = dynamic_cast(_Parent);
if (!gc) return false;
@@ -951,18 +940,20 @@ bool CCtrlMover::handleEvent (const NLGUI::CEventDescriptor &event)
void CCtrlMover::handleScrolling()
{
const uint pixPerMS = 7; // the number of millisecond to move of one pixel in the parent scrollbar
- CInterfaceManager *im = CInterfaceManager::getInstance();
CGroupContainer *gc = dynamic_cast(_Parent);
if (!gc) return;
CGroupList *gl = gc->getPreviousParentList();
if (!gl) return;
+
+ const CWidgetManager::SInterfaceTimes × = CWidgetManager::getInstance()->getInterfaceTimes();
+
if (_ParentScrollingUp)
{
sint32 topPosY = gl->getChild(0)->getYReal();
// check if we are really at the end of the list, if this is not the case, we should perform scroll on parent container with a scroll bar
if (gc->getYReal() < topPosY)
{
- _ScrollTime += DT64;
+ _ScrollTime += times.frameDiffMs;
sint32 deltaY = (sint32) (_ScrollTime / pixPerMS);
if (deltaY != 0)
{
@@ -996,7 +987,7 @@ void CCtrlMover::handleScrolling()
sint32 bottomPosY = gl->getChild(gl->getNumChildren() - 1)->getYReal() - gl->getChild(gl->getNumChildren() - 1)->getHReal();
if (gc->getYReal() - gc->getHReal() > bottomPosY)
{
- _ScrollTime += DT64;
+ _ScrollTime += times.frameDiffMs;
sint32 deltaY = - (sint32) (_ScrollTime / pixPerMS);
if (deltaY != 0)
{
@@ -1030,7 +1021,6 @@ bool CCtrlMover::runTitleActionHandler()
{
CGroupContainer *gc = dynamic_cast(_Parent);
if (!gc) return false;
- CInterfaceManager *im = CInterfaceManager::getInstance();
CInterfaceGroup *gr = gc->isOpen() ? gc->getHeaderOpened() : gc->getHeaderClosed();
if (gr && !gr->getLeftClickHandler().empty())
{
@@ -1047,7 +1037,7 @@ bool CCtrlMover::runTitleActionHandler()
}
// ***************************************************************************
-void CCtrlMover::setPoped(CGroupContainer *gc, sint32 x, sint32 y, CInterfaceManager *pIM, const NLGUI::CEventDescriptorMouse &eventDesc)
+void CCtrlMover::setPoped(CGroupContainer *gc, sint32 x, sint32 y, const NLGUI::CEventDescriptorMouse &eventDesc)
{
gc->setHighLighted(false);
sint32 deltaX = x - _Parent->getX();
@@ -1089,7 +1079,7 @@ void CCtrlMover::setPoped(CGroupContainer *gc, sint32 x, sint32 y, CInterfaceMan
}
// ***************************************************************************
-void CCtrlMover::setMovingInParent(CGroupContainer *gc, sint32 /* x */, sint32 y, CInterfaceManager *pIM, const NLGUI::CEventDescriptorMouse &eventDesc)
+void CCtrlMover::setMovingInParent(CGroupContainer *gc, sint32 /* x */, sint32 y, const NLGUI::CEventDescriptorMouse &eventDesc)
{
if (!gc) return;
sint32 deltaY = y - gc->getY();
@@ -1134,7 +1124,6 @@ void CCtrlMover::setMovingInParent(CGroupContainer *gc, sint32 /* x */, sint32 y
_MovingInParentList = true;
// register to get time events
-// CInterfaceManager *im = CInterfaceManager::getInstance();
}
// ***************************************************************************
@@ -1162,7 +1151,7 @@ void CCtrlMover::updateInsertionIndex(const CGroupList *gl, sint32 posY)
}
// ***************************************************************************
-void CCtrlMover::stopMove(CInterfaceManager *pIM)
+void CCtrlMover::stopMove()
{
_ParentScrollingUp = false;
_ParentScrollingDown = false;
@@ -1788,8 +1777,8 @@ void CGroupContainer::draw ()
if (_LayerSetup == -1) return;
- CInterfaceManager *pIM = CInterfaceManager::getInstance();
- float speed = pIM->getAlphaRolloverSpeed();
+ float speed = CWidgetManager::getInstance()->getAlphaRolloverSpeed();
+ const CWidgetManager::SInterfaceTimes × = CWidgetManager::getInstance()->getInterfaceTimes();
CRGBA oldGlobalColor = CWidgetManager::getInstance()->getGlobalColor();
CRGBA oldGColForGrayed = CWidgetManager::getInstance()->getGlobalColor();
@@ -1826,7 +1815,7 @@ void CGroupContainer::draw ()
}
_BlinkState = false;
}
- _BlinkDT += std::min((uint) DT64, blinkDuration);
+ _BlinkDT += std::min((uint) times.frameDiffMs, blinkDuration);
}
CGroupContainer *parentGC = NULL;
@@ -1870,7 +1859,7 @@ void CGroupContainer::draw ()
}
else
{
- _CurrentContainerAlpha = _UseGlobalAlpha ? pIM->getGlobalContainerAlpha() : _ContainerAlpha;
+ _CurrentContainerAlpha = _UseGlobalAlpha ? CWidgetManager::getInstance()->getGlobalContainerAlpha() : _ContainerAlpha;
}
// modulate by container alpha color
col.A = (uint8) (((uint16) _CurrentContainerAlpha * (uint16) col.A) >> 8);
@@ -1883,9 +1872,9 @@ void CGroupContainer::draw ()
}
else
{
- uint8 rolloverFactorContent = _UseGlobalAlpha ? (255 - pIM->getGlobalRolloverFactorContent()) : _RolloverAlphaContent;
+ uint8 rolloverFactorContent = _UseGlobalAlpha ? (255 - CWidgetManager::getInstance()->getGlobalRolloverFactorContent()) : _RolloverAlphaContent;
_ICurrentRolloverAlphaContent = (uint8) (255 - rolloverFactorContent + rolloverFactorContent * _CurrentRolloverAlphaContent);
- uint8 rolloverFactorContainer = _UseGlobalAlpha ? (255 - pIM->getGlobalRolloverFactorContainer()) : _RolloverAlphaContainer;
+ uint8 rolloverFactorContainer = _UseGlobalAlpha ? (255 - CWidgetManager::getInstance()->getGlobalRolloverFactorContainer()) : _RolloverAlphaContainer;
_ICurrentRolloverAlphaContainer = (uint8) (255 - rolloverFactorContainer + rolloverFactorContainer * _CurrentRolloverAlphaContainer);
}
// Modulate alpha by rollover alpha
@@ -2120,8 +2109,8 @@ void CGroupContainer::draw ()
}
else
{
- _CurrentContentAlpha = _UseGlobalAlpha ? pIM->getGlobalContentAlpha() : _ContentAlpha;
- _CurrentContainerAlpha = _UseGlobalAlpha ? pIM->getGlobalContainerAlpha() : _ContainerAlpha;
+ _CurrentContentAlpha = _UseGlobalAlpha ? CWidgetManager::getInstance()->getGlobalContentAlpha() : _ContentAlpha;
+ _CurrentContainerAlpha = _UseGlobalAlpha ? CWidgetManager::getInstance()->getGlobalContainerAlpha() : _ContainerAlpha;
}
// set content alpha multiplied by rollover alpha
CWidgetManager::getInstance()->setContentAlpha((uint8) (((uint16) _CurrentContentAlpha * (uint16) _ICurrentRolloverAlphaContent) >> 8));
@@ -2187,7 +2176,7 @@ void CGroupContainer::draw ()
// manage rollover
- CViewPointer *mousePointer = static_cast< CViewPointer* >( CWidgetManager::getInstance()->getPointer() );
+ CViewPointerBase *mousePointer = CWidgetManager::getInstance()->getPointer();
if (mousePointer)
{
bool dontFade = false;
@@ -2227,18 +2216,18 @@ void CGroupContainer::draw ()
}
if (dontFade || isOver)
{
- _CurrentRolloverAlphaContent += (float) (speed * DT64);
+ _CurrentRolloverAlphaContent += (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContent = std::min(1.f, _CurrentRolloverAlphaContent);
- _CurrentRolloverAlphaContainer += (float) (speed * DT64);
+ _CurrentRolloverAlphaContainer += (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContainer = std::min(1.f, _CurrentRolloverAlphaContainer);
}
else
{
- _CurrentRolloverAlphaContent -= (float) (speed * DT64);
+ _CurrentRolloverAlphaContent -= (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContent = std::max(0.f, _CurrentRolloverAlphaContent);
- _CurrentRolloverAlphaContainer -= (float) (speed * DT64);
+ _CurrentRolloverAlphaContainer -= (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContainer = std::max(0.f, _CurrentRolloverAlphaContainer);
}
}
@@ -2322,7 +2311,6 @@ void CGroupContainer::open()
// call action handler if any
if (_AHOnOpen != NULL)
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
CAHManager::getInstance()->runActionHandler(_AHOnOpen, this, _AHOnOpenParams);
}
@@ -2350,7 +2338,6 @@ void CGroupContainer::close()
// call action handler if any
if (_AHOnClose != NULL)
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
CAHManager::getInstance()->runActionHandler(_AHOnClose, this, _AHOnCloseParams);
}
}
@@ -3193,7 +3180,6 @@ void CGroupContainer::launch ()
// ***************************************************************************
void CGroupContainer::setActive (bool state)
{
- CInterfaceManager *pIM = CInterfaceManager::getInstance();
if(state != getActive() && getLayer()==0)
{
if (state)
@@ -3281,7 +3267,6 @@ void CGroupContainer::popupCurrentPos()
_Parent = parent;
_ParentPos = parent;
- CInterfaceManager *im = CInterfaceManager::getInstance();
CWidgetManager::getInstance()->makeWindow(this);
CWidgetManager::getInstance()->setTopWindow(this);
CWidgetManager::getInstance()->clearViewUnders();
@@ -3338,7 +3323,6 @@ void CGroupContainer::popin(sint32 insertPos /* = -1 */, bool putBackInFatherCon
_List->setOfsY(0);
_MovingInParentList = false;
- CInterfaceManager *im = CInterfaceManager::getInstance();
CWidgetManager::getInstance()->unMakeWindow(this);
CWidgetManager::getInstance()->clearViewUnders();
CWidgetManager::getInstance()->clearCtrlsUnders();
@@ -3437,7 +3421,6 @@ COptionsContainerMove *CGroupContainer::getMoveOptions()
{
static NLMISC::CRefPtr moveOptions;
if (moveOptions) return moveOptions;
- CInterfaceManager *im = CInterfaceManager::getInstance();
moveOptions = (COptionsContainerMove *) CWidgetManager::getInstance()->getOptions("container_move_opt");
return moveOptions;
}
@@ -3489,8 +3472,6 @@ public:
if (pIC == NULL) return;
if (pIC->isLocked()) return;
- CInterfaceManager *im = CInterfaceManager::getInstance();
-
// check if the window can be really closed
CGroupContainer::_ValidateCanDeactivate = true;
if (!pIC->getAHOnDeactiveCheck().empty())
@@ -3526,7 +3507,7 @@ public:
//
pIC->popup();
//
- CInterfaceManager *im = CInterfaceManager::getInstance();
+
CWidgetManager::getInstance()->setCapturePointerLeft(NULL);
CWidgetManager::getInstance()->setCapturePointerRight(NULL);
}
@@ -3551,7 +3532,7 @@ public:
pIC->setPopupH(pIC->getH());
//
pIC->popin();
- CInterfaceManager *im = CInterfaceManager::getInstance();
+
CWidgetManager::getInstance()->setCapturePointerLeft(NULL);
CWidgetManager::getInstance()->setCapturePointerRight(NULL);
}
@@ -3587,7 +3568,7 @@ class CICHelp : public IActionHandler
const std::string &helpPage= pIC->getHelpPage();
if(!helpPage.empty())
{
- CInterfaceManager *pIM= CInterfaceManager::getInstance();
+
// open the web browser, and point to the page
CAHManager::getInstance()->runActionHandler("launch_help", NULL, "url=" + helpPage);
}
@@ -3633,15 +3614,17 @@ void CGroupContainer::setOpenable(bool openable)
// ***************************************************************************
void CGroupContainer::rollOverAlphaUp()
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
- CViewPointer *vp = static_cast< CViewPointer* >( CWidgetManager::getInstance()->getPointer() );
- float speed = im->getAlphaRolloverSpeed();
+
+ CViewPointerBase *vp = CWidgetManager::getInstance()->getPointer();
+ float speed = CWidgetManager::getInstance()->getAlphaRolloverSpeed();
if (!isIn(vp->getX(), vp->getY()))
{
- _CurrentRolloverAlphaContainer += (float) (speed * DT64);
+ const CWidgetManager::SInterfaceTimes × = CWidgetManager::getInstance()->getInterfaceTimes();
+
+ _CurrentRolloverAlphaContainer += (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContainer = std::min(1.f, _CurrentRolloverAlphaContainer);
- _CurrentRolloverAlphaContent += (float) (speed * DT64);
+ _CurrentRolloverAlphaContent += (float) (speed * times.frameDiffMs);
_CurrentRolloverAlphaContent = std::min(1.f, _CurrentRolloverAlphaContent);
}
}
@@ -3656,7 +3639,7 @@ void CGroupContainer::forceRolloverAlpha()
// ***************************************************************************
bool CGroupContainer::hasKeyboardFocus() const
{
- CInterfaceManager *im = CInterfaceManager::getInstance();
+
if (CWidgetManager::getInstance()->getCaptureKeyboard() != NULL)
{
const CGroupEditBox *geb = dynamic_cast(CWidgetManager::getInstance()->getCaptureKeyboard());
@@ -3725,7 +3708,6 @@ void CGroupContainer::setTitleColorAsString(const std::string &col)
// ***************************************************************************
void CGroupContainer::setModalParentList (const std::string &name)
{
- CInterfaceManager *pIM = CInterfaceManager::getInstance();
_ModalParentNames = name;
// can have multiple parent
@@ -3933,7 +3915,6 @@ int CGroupContainer::luaSetHeaderColor(CLuaState &ls)
// ***************************************************************************
CRGBA CGroupContainer::getDrawnHeaderColor () const
{
- CInterfaceManager *pIM= CInterfaceManager::getInstance();
CRGBA c = CRGBA(255,255,255,255);
// Display the header in white if we are the last clicked window
diff --git a/code/ryzom/client/src/interface_v3/group_container.h b/code/ryzom/client/src/interface_v3/group_container.h
index 07e2f95ec..fd966aadf 100644
--- a/code/ryzom/client/src/interface_v3/group_container.h
+++ b/code/ryzom/client/src/interface_v3/group_container.h
@@ -37,7 +37,6 @@ namespace NLGUI
}
class CGroupContainer;
-class CInterfaceManager;
// ***************************************************************************
/**
@@ -136,10 +135,10 @@ private:
//
static COptionsContainerInsertion *getInsertionOptions();
private:
- void setPoped(CGroupContainer *gc, sint32 x, sint32 y, CInterfaceManager *pIM, const NLGUI::CEventDescriptorMouse &eventDesc);
- void setMovingInParent(CGroupContainer *gc, sint32 x, sint32 y, CInterfaceManager *pIM, const NLGUI::CEventDescriptorMouse &eventDesc);
+ void setPoped(CGroupContainer *gc, sint32 x, sint32 y, const NLGUI::CEventDescriptorMouse &eventDesc);
+ void setMovingInParent(CGroupContainer *gc, sint32 x, sint32 y, const NLGUI::CEventDescriptorMouse &eventDesc);
void updateInsertionIndex(const CGroupList *gl, sint32 posY);
- void stopMove(CInterfaceManager *pIM);
+ void stopMove();
bool runTitleActionHandler();
void handleScrolling();
diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp
index a3535a109..b7b7e0958 100644
--- a/code/ryzom/client/src/interface_v3/interface_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp
@@ -410,17 +410,11 @@ CInterfaceManager::CInterfaceManager( NL3D::UDriver *driver, NL3D::UTextContext
_ScreenW = _ScreenH = 0;
_LastInGameScreenW = _LastInGameScreenH = 0;
_DescTextTarget = NULL;
- _ContainerAlpha = 255;
- _GlobalContentAlpha = 255;
- _GlobalContainerAlpha = 255;
- _GlobalRolloverFactorContent = 255;
- _GlobalRolloverFactorContainer = 255;
_MouseOverWindow= false;
_ConfigLoaded = false;
_LogState = false;
_KeysLoaded = false;
CWidgetManager::getInstance()->resetColorProps();
- _AlphaRolloverSpeedDB = NULL;
_NeutralColor = NULL;
_WarningColor = NULL;
_ErrorColor = NULL;
@@ -522,7 +516,7 @@ void CInterfaceManager::reset()
_NeutralColor = NULL;
_WarningColor = NULL;
_ErrorColor = NULL;
- _AlphaRolloverSpeedDB = NULL;
+
}
// ------------------------------------------------------------------------------------------------
@@ -1326,7 +1320,7 @@ void CInterfaceManager::uninitInGame1 ()
_NeutralColor = NULL;
_WarningColor = NULL;
_ErrorColor = NULL;
- _AlphaRolloverSpeedDB = NULL;
+ CWidgetManager::getInstance()->resetAlphaRolloverSpeed();
CWidgetManager::getInstance()->resetColorProps();
#ifdef AJM_DEBUG_TRACK_INTERFACE_GROUPS
@@ -1942,12 +1936,10 @@ void CInterfaceManager::drawViews(NL3D::UCamera camera)
c.B = gc.B;
c.A = (uint8) (( (uint16) c.A * (uint16) CWidgetManager::getInstance()->getContentAlpha() ) >> 8);
CWidgetManager::getInstance()->setGlobalColorForContent( c );
-
+
// Update global alphaS from database
- _GlobalContentAlpha = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTENT_ALPHA")->getValue32();
- _GlobalContainerAlpha = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ALPHA")->getValue32();
- _GlobalRolloverFactorContent = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTENT_ROLLOVER_FACTOR")->getValue32();
- _GlobalRolloverFactorContainer = (uint8)NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:CONTAINER_ROLLOVER_FACTOR")->getValue32();
+ CWidgetManager::getInstance()->updateGlobalAlphas();
+
// Update Player characteristics (for Item carac requirement Redifying)
nlctassert(CHARACTERISTICS::NUM_CHARACTERISTICS==8);
@@ -3724,16 +3716,6 @@ void CInterfaceManager::launchContextMenuInGame (const std::string &nameOfCM)
}
}
-// ***************************************************************************
-void CInterfaceManager::setContainerAlpha(uint8 alpha)
-{
- _ContainerAlpha = alpha;
- // update alpha of global color
- CRGBA c = CWidgetManager::getInstance()->getGlobalColor();
- c.A = alpha;/*(uint8) (( (uint16) _GlobalColor.A * (uint16) _ContainerAlpha) >> 8); */
- CWidgetManager::getInstance()->setGlobalColor( c );
-}
-
// ***************************************************************************
void CInterfaceManager::updateGroupContainerImage(CGroupContainer &gc, uint8 mode)
diff --git a/code/ryzom/client/src/interface_v3/interface_manager.h b/code/ryzom/client/src/interface_v3/interface_manager.h
index f0099a46b..507bcb855 100644
--- a/code/ryzom/client/src/interface_v3/interface_manager.h
+++ b/code/ryzom/client/src/interface_v3/interface_manager.h
@@ -51,9 +51,6 @@
#include "../ingame_database_manager.h"
-static const float ROLLOVER_MIN_DELTA_PER_MS = 0.28f;
-static const float ROLLOVER_MAX_DELTA_PER_MS = 0.12f;
-
//the network database node
extern CCDBSynchronised IngameDbMngr;
@@ -295,15 +292,6 @@ public:
void drawContextHelp ();
//void drawContextMenu ();
- void setContainerAlpha(uint8 alpha);
- uint8 getContainerAlpha() const { return _ContainerAlpha; }
-
- // these values are updated from the DB
- uint8 getGlobalContentAlpha() const { return _GlobalContentAlpha; }
- uint8 getGlobalContainerAlpha() const { return _GlobalContainerAlpha; }
- uint8 getGlobalRolloverFactorContent() const { return _GlobalRolloverFactorContent; }
- uint8 getGlobalRolloverFactorContainer() const { return _GlobalRolloverFactorContainer; }
-
/// Update all the elements
void updateAllLocalisedElements ();
@@ -453,15 +441,6 @@ public:
// @}
- // Get the alpha roll over speed
- float getAlphaRolloverSpeed()
- {
- if (!_AlphaRolloverSpeedDB)
- _AlphaRolloverSpeedDB = NLGUI::CDBManager::getInstance()->getDbProp("UI:SAVE:ALPHA_ROLLOVER_SPEED");
- float fTmp = ROLLOVER_MIN_DELTA_PER_MS + (ROLLOVER_MAX_DELTA_PER_MS - ROLLOVER_MIN_DELTA_PER_MS) * 0.01f * (100 - _AlphaRolloverSpeedDB->getValue32());
- return fTmp*fTmp*fTmp;
- }
-
// Item Carac Test, get the value
bool isItemCaracRequirementMet(CHARACTERISTICS::TCharacteristics type, sint32 value)
{
@@ -649,13 +628,6 @@ private:
uint8 _LocalSyncActionCounterMask;
- uint8 _ContainerAlpha;
- //
- uint8 _GlobalContentAlpha;
- uint8 _GlobalContainerAlpha;
- uint8 _GlobalRolloverFactorContent;
- uint8 _GlobalRolloverFactorContainer;
-
/// Constructor
CInterfaceManager( NL3D::UDriver *driver, NL3D::UTextContext *textcontext );
@@ -719,7 +691,6 @@ private:
NLMISC::CCDBNodeLeaf *_NeutralColor;
NLMISC::CCDBNodeLeaf *_WarningColor;
NLMISC::CCDBNodeLeaf *_ErrorColor;
- NLMISC::CCDBNodeLeaf *_AlphaRolloverSpeedDB;
void drawOverExtendViewText();
diff --git a/code/ryzom/client/src/time_client.cpp b/code/ryzom/client/src/time_client.cpp
index f07bfbf49..710edf78a 100644
--- a/code/ryzom/client/src/time_client.cpp
+++ b/code/ryzom/client/src/time_client.cpp
@@ -381,6 +381,14 @@ void updateClientTime()
if(NetMngr.isReplayStarting())
NetMngr.startReplay();
#endif
+
+ CWidgetManager::SInterfaceTimes times;
+ times.lastFrameMs = T0;
+ times.thisFrameMs = T1;
+ times.frameDiffMs = DT64;
+
+ CWidgetManager::getInstance()->updateInterfaceTimes( times );
+
}// updateClientTime //