CHANGED: #1471 CViewText no longer depends on CInterfaceManager.

--HG--
branch : gui-refactoring
This commit is contained in:
dfighter1985 2012-06-17 02:08:21 +02:00
parent f4823200fc
commit 7acd93ff7c
18 changed files with 144 additions and 133 deletions

View file

@ -252,6 +252,7 @@ namespace NLGUI
bool isGroupContainer() const { return _IsGroupContainer; }
bool isGroupScrollText() const{ return _IsGroupScrollText; }
bool isGroupInScene() const{ return _IsGroupInScene; }
bool isGroupList() const{ return _IsGroupList; }
CInterfaceGroup* getEnclosingContainer();
@ -354,6 +355,7 @@ namespace NLGUI
bool _IsGroupContainer : 1; // faster than a virual call
bool _IsGroupScrollText : 1;
bool _IsGroupInScene : 1;
bool _IsGroupList : 1;
bool _NeedFrameUpdatePos : 1; // typically For CGroupInScene
sint32 _ResizeFromChildWMargin;
sint32 _ResizeFromChildHMargin;

View file

@ -22,6 +22,8 @@
#include "nel/misc/debug.h"
#include "nel/misc/smart_ptr.h"
#include "nel/misc/rgba.h"
#include "libxml/globals.h"
#include "nel/misc/xml_auto_ptr.h"
namespace NL3D
{

View file

@ -578,6 +578,8 @@ namespace NLGUI
static NL3D::UTextContext *textcontext;
public:
static NL3D::UTextContext* getTextContext(){ return textcontext; }
static std::set< std::string > *hwCursors;
static float hwCursorScale;

View file

@ -25,6 +25,7 @@
#include "nel/misc/rgba.h"
#include "nel/misc/types_nl.h"
#include "nel/gui/interface_common.h"
#include "nel/gui/interface_options.h"
namespace NLMISC
{
@ -302,6 +303,45 @@ namespace NLGUI
// Get the User DblClick Delay (according to save...), in milisecond
uint getUserDblClickDelay();
/// \name Global Interface Options
// @{
// List of system options
enum TSystemOption{
OptionCtrlSheetGrayColor=0,
OptionCtrlTextGrayColor,
OptionCtrlSheetRedifyColor,
OptionCtrlTextRedifyColor,
OptionCtrlSheetGreenifyColor,
OptionCtrlTextGreenifyColor,
OptionViewTextOverBackColor,
OptionFont,
OptionAddCoefFont,
OptionMulCoefAnim,
OptionTimeoutBubbles,
OptionTimeoutMessages,
OptionTimeoutContext,
OptionTimeoutContextHtml,
NumSystemOptions
};
void setupOptions();
/** Get a system option by its enum (faster than getOptions() and getVal())
* NB: array updated after each parseInterface()
*/
const CInterfaceOptionValue &getSystemOption( TSystemOption o ) const{ return _SystemOptions[ o ]; }
// @}
CInterfaceElement* getOverExtendViewText(){ return _OverExtendViewText; }
NLMISC::CRGBA& getOverExtendViewTextBackColor(){ return _OverExtendViewTextBackColor; }
// For single lined ViewText that are clipped: on over of viewText too big, the text is drawn on top. A CRefPtr is kept
void setOverExtendViewText( CInterfaceElement *vt, NLMISC::CRGBA backGround ){
_OverExtendViewText = vt;
_OverExtendViewTextBackColor = backGround;
}
static IParser *parser;
private:
@ -345,6 +385,13 @@ namespace NLGUI
NLMISC::CCDBNodeLeaf *_AProp;
bool _MouseHandlingEnabled;
// System Options
CInterfaceOptionValue _SystemOptions[ NumSystemOptions ];
// The next ViewText to draw for Over
NLMISC::CRefPtr< CInterfaceElement > _OverExtendViewText;
NLMISC::CRGBA _OverExtendViewTextBackColor;
};
}

View file

@ -60,6 +60,7 @@ namespace NLGUI
_IsGroupContainer = false;
_IsGroupScrollText = false;
_IsGroupInScene = false;
_IsGroupList = false;
_AHOnActive = NULL;
_AHOnDeactive = NULL;
_AHOnLeftClick = NULL;

View file

@ -17,7 +17,6 @@
#include "nel/gui/interface_element.h"
#include "nel/misc/xml_auto_ptr.h"
#include "nel/gui/interface_options.h"
using namespace std;

View file

@ -1419,8 +1419,32 @@ namespace NLGUI
uint dbclickDelay = (uint)(DOUBLE_CLICK_MIN + (DOUBLE_CLICK_MAX-DOUBLE_CLICK_MIN) * (float)nVal / 100.0f);
return dbclickDelay;
}
// ------------------------------------------------------------------------------------------------
void CWidgetManager::setupOptions()
{
// After parsing options and templates node -> init system options.
CInterfaceOptions *opt = getOptions( "system" );
if( opt != NULL )
{
// List here all Special options
_SystemOptions[OptionCtrlSheetGrayColor]= opt->getValue("ctrl_sheet_gray_color");
_SystemOptions[OptionCtrlTextGrayColor]= opt->getValue("ctrl_text_gray_color");
_SystemOptions[OptionCtrlSheetRedifyColor]= opt->getValue("ctrl_sheet_redify_color");
_SystemOptions[OptionCtrlTextRedifyColor]= opt->getValue("ctrl_text_redify_color");
_SystemOptions[OptionCtrlSheetGreenifyColor]= opt->getValue("ctrl_sheet_greenify_color");
_SystemOptions[OptionCtrlTextGreenifyColor]= opt->getValue("ctrl_text_greenify_color");
_SystemOptions[OptionViewTextOverBackColor]= opt->getValue("text_over_back_color");
_SystemOptions[OptionFont]= opt->getValue("font");
_SystemOptions[OptionAddCoefFont]= opt->getValue("add_coef_font");
_SystemOptions[OptionMulCoefAnim]= opt->getValue("mul_coef_anim");
_SystemOptions[OptionTimeoutBubbles]= opt->getValue("bubbles_timeout");
_SystemOptions[OptionTimeoutMessages]= opt->getValue("messages_timeout");
_SystemOptions[OptionTimeoutContext]= opt->getValue("context_timeout");
_SystemOptions[OptionTimeoutContextHtml]= opt->getValue("context_html_timeout");
}
}
CWidgetManager::CWidgetManager()
{

View file

@ -2108,8 +2108,8 @@ void CDBCtrlSheet::drawSheet (sint32 x, sint32 y, bool draging, bool showSelecti
curNoSheetColor= CRGBA(255,255,255, CWidgetManager::getInstance()->getGlobalColorForContent().A);
// The gray color
CRGBA grayColor= pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetGrayColor).getValColor();
CRGBA redifyColor= pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetRedifyColor).getValColor();
CRGBA grayColor= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetGrayColor).getValColor();
CRGBA redifyColor= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetRedifyColor).getValColor();
// The color of the number.
CRGBA numberColor;

View file

@ -89,34 +89,34 @@ void CDBGroupListSheetMission::CSheetChildMission::updateViewText(CDBGroupListSh
if (CachePreReqState == MISSION_DESC::PreReqFail)
{
// If mission prerequesits failed for miscellaneaous reasons : COLOR RED
CRGBA color = pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetRedifyColor).getValColor();
CRGBA color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetRedifyColor).getValColor();
Ctrl->setGrayed(true);
Ctrl->setSheetColor(color);
color = pIM->getSystemOption(CInterfaceManager::OptionCtrlTextRedifyColor).getValColor();
color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextRedifyColor).getValColor();
Text->setColor(color);
}
else if (CachePreReqState == MISSION_DESC::PreReqFailAlreadyDone)
{
// If mission prerequesits failed because mission is already done : COLOR GREEN
CRGBA color = pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetGreenifyColor).getValColor();
CRGBA color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetGreenifyColor).getValColor();
Ctrl->setGrayed(true);
Ctrl->setSheetColor(color);
color = pIM->getSystemOption(CInterfaceManager::OptionCtrlTextGreenifyColor).getValColor();
color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextGreenifyColor).getValColor();
Text->setColor(color);
}
else if (CachePreReqState == MISSION_DESC::PreReqFailRunning)
{
// If mission prerequesits failed because the mission is in progress : COLOR GRAY
CRGBA color = pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetGrayColor).getValColor();
CRGBA color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetGrayColor).getValColor();
Ctrl->setGrayed(true);
Ctrl->setSheetColor(color);
color = pIM->getSystemOption(CInterfaceManager::OptionCtrlTextGrayColor).getValColor();
color = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextGrayColor).getValColor();
Text->setColor(color);
}
else

View file

@ -506,8 +506,8 @@ void CDBGroupListSheetText::checkCoords ()
{
// The gray color
CRGBA normalColor= _TextTemplate.getColor();
CRGBA grayColor= pIM->getSystemOption(CInterfaceManager::OptionCtrlSheetGrayColor).getValColor();
CRGBA redifyColor= pIM->getSystemOption(CInterfaceManager::OptionCtrlTextRedifyColor).getValColor();
CRGBA grayColor= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlSheetGrayColor).getValColor();
CRGBA redifyColor= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextRedifyColor).getValColor();
grayColor.modulateFromColor(grayColor, normalColor);
redifyColor.modulateFromColor(redifyColor, normalColor);

View file

@ -73,7 +73,7 @@ void contextHelp (const std::string &name)
completeURL += "_" + ClientCfg.getHtmlLanguageCode() + ".html";
// Add bubble
InSceneBubbleManager.addContextHelpHTML(completeURL, target,
pIM->getSystemOption(CInterfaceManager::OptionTimeoutContextHtml).getValSInt32());
CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutContextHtml).getValSInt32());
}
// Found one help
@ -565,7 +565,7 @@ void CGroupInSceneBubbleManager::addMessagePopup (const ucstring &message, CRGBA
// default timeout?
if(time==0)
time=pIM->getSystemOption(CInterfaceManager::OptionTimeoutMessages).getValSInt32();
time=CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutMessages).getValSInt32();
// Create a skill popup
string id = "message_popup_"+toString(_PopupCount++);
@ -614,7 +614,7 @@ void CGroupInSceneBubbleManager::addMessagePopupCenter (const ucstring &message,
// default timeout?
if(time==0)
time= pIM->getSystemOption(CInterfaceManager::OptionTimeoutMessages).getValSInt32();
time= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutMessages).getValSInt32();
// Create a skill popup
string id = "message_popup_"+toString(_PopupCount++);
@ -825,7 +825,7 @@ void CGroupInSceneBubbleManager::chatOpen (uint32 nUID, const ucstring &ucsText,
CCharacterCL *pChar = dynamic_cast<CCharacterCL*>(EntitiesMngr.getEntityByCompressedIndex(nUID));
if (pChar == NULL || nUID==CLFECOMMON::INVALID_CLIENT_DATASET_INDEX) return;
if (bubbleTimer == 0) bubbleTimer = pIM->getSystemOption(CInterfaceManager::OptionTimeoutBubbles).getValSInt32();
if (bubbleTimer == 0) bubbleTimer = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutBubbles).getValSInt32();
// Output the message in a bubble
@ -1575,7 +1575,7 @@ class CHandlerCharacterBubble : public IActionHandler
string sTime = getParam (sParams, "time");
uint duration;
if (sTime.empty())
duration = pIM->getSystemOption(CInterfaceManager::OptionTimeoutBubbles).getValSInt32();
duration = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutBubbles).getValSInt32();
else
fromString(sTime, duration);
@ -1602,7 +1602,7 @@ class CHandlerSkillPopup : public IActionHandler
string sTime = getParam (sParams, "time");
uint duration;
if (sTime.empty())
duration = pIM->getSystemOption(CInterfaceManager::OptionTimeoutMessages).getValSInt32();
duration = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutMessages).getValSInt32();
else
fromString(sTime, duration);
@ -1626,7 +1626,7 @@ class CHandlerMessagePopup : public IActionHandler
string sTime = getParam (sParams, "time");
uint duration;
if (sTime.empty())
duration = pIM->getSystemOption(CInterfaceManager::OptionTimeoutMessages).getValSInt32();
duration = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutMessages).getValSInt32();
else
fromString(sTime, duration);
@ -1651,7 +1651,7 @@ class CHandlerContextHelp : public IActionHandler
if (itext.empty())
itext = CI18N::get(text);
InSceneBubbleManager.addContextHelp (itext, targetName, pIM->getSystemOption(CInterfaceManager::OptionTimeoutContext).getValSInt32());
InSceneBubbleManager.addContextHelp (itext, targetName, CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutContext).getValSInt32());
}
};
REGISTER_ACTION_HANDLER( CHandlerContextHelp, "context_help");

View file

@ -53,6 +53,7 @@ CGroupList::CGroupList(const TCtorParam &param)
_Over = false;
_OverColor = CRGBA(255, 255, 255, 32);
_OverElt = -1;
_IsGroupList = true;
}
// ----------------------------------------------------------------------------

View file

@ -685,7 +685,7 @@ void CGroupTree::draw()
}
// will be drawn over all the interface
pIM->setOverExtendViewText(viewTextExtend, col);
CWidgetManager::getInstance()->setOverExtendViewText(viewTextExtend, col);
}
}
}

View file

@ -123,7 +123,7 @@ bool CInterfaceTrack::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup)
{
double dTime;
fromString(k.Time, dTime);
k.Time = toString(dTime * CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionMulCoefAnim).getValFloat());
k.Time = toString(dTime * CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionMulCoefAnim).getValFloat());
}
// Depending on the type of the track read extra values
@ -193,7 +193,7 @@ bool CInterfaceTrack::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup)
float fAnimTime;
fromString((const char*)time, fAnimTime);
TAnimationTime animTime = fAnimTime * CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionMulCoefAnim).getValFloat();
TAnimationTime animTime = fAnimTime * CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionMulCoefAnim).getValFloat();
double animValue;
fromString(value, animValue);
@ -544,7 +544,7 @@ bool CInterfaceAnim::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup)
fromString((const char*)ptr, _Duration);
if (_Duration == 0)
_Duration = 1.0;
_Duration *= CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionMulCoefAnim).getValFloat();
_Duration *= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionMulCoefAnim).getValFloat();
ptr = xmlGetProp (cur, (xmlChar*)"disable_buttons");
if (ptr)

View file

@ -1343,36 +1343,17 @@ void CInterfaceManager::updateFrameViews(NL3D::UCamera camera)
}
// ------------------------------------------------------------------------------------------------
void CInterfaceManager::setupOptions()
{
// After parsing options and templates node -> init system options.
CInterfaceOptions *opt= CWidgetManager::getInstance()->getOptions("system");
if(opt)
{
// List here all Special options
_SystemOptions[OptionCtrlSheetGrayColor]= opt->getValue("ctrl_sheet_gray_color");
_SystemOptions[OptionCtrlTextGrayColor]= opt->getValue("ctrl_text_gray_color");
_SystemOptions[OptionCtrlSheetRedifyColor]= opt->getValue("ctrl_sheet_redify_color");
_SystemOptions[OptionCtrlTextRedifyColor]= opt->getValue("ctrl_text_redify_color");
_SystemOptions[OptionCtrlSheetGreenifyColor]= opt->getValue("ctrl_sheet_greenify_color");
_SystemOptions[OptionCtrlTextGreenifyColor]= opt->getValue("ctrl_text_greenify_color");
_SystemOptions[OptionViewTextOverBackColor]= opt->getValue("text_over_back_color");
_SystemOptions[OptionFont]= opt->getValue("font");
_SystemOptions[OptionAddCoefFont]= opt->getValue("add_coef_font");
_SystemOptions[OptionMulCoefAnim]= opt->getValue("mul_coef_anim");
_SystemOptions[OptionTimeoutBubbles]= opt->getValue("bubbles_timeout");
_SystemOptions[OptionTimeoutMessages]= opt->getValue("messages_timeout");
_SystemOptions[OptionTimeoutContext]= opt->getValue("context_timeout");
_SystemOptions[OptionTimeoutContextHtml]= opt->getValue("context_html_timeout");
}
CWidgetManager *wm = CWidgetManager::getInstance();
wm->setupOptions();
// Try to change font if any
string sFont = _SystemOptions[OptionFont].getValStr();
string sFont = wm->getSystemOption( CWidgetManager::OptionFont ).getValStr();
extern void resetTextContext( const char*, bool );
if ((!sFont.empty()) && (driver != NULL))
resetTextContext(sFont.c_str(), true);
// Continue to parse the rest of the interface
}
@ -4029,21 +4010,14 @@ void CInterfaceManager::incLocalSyncActionCounter()
}
// ***************************************************************************
void CInterfaceManager::setOverExtendViewText(CViewText *vt, CRGBA backGround)
{
_OverExtendViewText= vt;
_OverExtendViewTextBackColor= backGround;
}
// ***************************************************************************
void CInterfaceManager::drawOverExtendViewText()
{
// CViewRenderer &rVR= getViewRenderer();
if(_OverExtendViewText)
if( CWidgetManager::getInstance()->getOverExtendViewText() )
{
CViewText *vtSrc= safe_cast<CViewText*>((CInterfaceElement*)_OverExtendViewText);
CViewText *vtSrc= safe_cast<CViewText*>( CWidgetManager::getInstance()->getOverExtendViewText() );
CInterfaceGroup *groupOver = getWindowForActiveMasterGroup("over_extend_view_text");
if(groupOver)
@ -4065,7 +4039,7 @@ void CInterfaceManager::drawOverExtendViewText()
CViewBitmap *pBack= dynamic_cast<CViewBitmap*>(groupOver->getView("midback"));
CViewBitmap *pOutline= dynamic_cast<CViewBitmap*>(groupOver->getView("midoutline"));
if(pBack)
pBack->setColor(_OverExtendViewTextBackColor);
pBack->setColor( CWidgetManager::getInstance()->getOverExtendViewTextBackColor() );
if(pOutline)
{
pOutline->setColor(vtSrc->getColor());
@ -4112,7 +4086,7 @@ void CInterfaceManager::drawOverExtendViewText()
}
// Reset the ptr so at next frame, won't be rendered (but if reset)
_OverExtendViewText= NULL;
CWidgetManager::getInstance()->setOverExtendViewText( NULL, CWidgetManager::getInstance()->getOverExtendViewTextBackColor() );
}
}

View file

@ -315,39 +315,8 @@ public:
// display a system info string
void displaySystemInfo(const ucstring &str, const std::string &Category = "SYS");
NLMISC::CRGBA getSystemInfoColor(const std::string &Category = "SYS");
/// \name Global Interface Options
// @{
// List of system options
enum TSystemOption
{
OptionCtrlSheetGrayColor=0,
OptionCtrlTextGrayColor,
OptionCtrlSheetRedifyColor,
OptionCtrlTextRedifyColor,
OptionCtrlSheetGreenifyColor,
OptionCtrlTextGreenifyColor,
OptionViewTextOverBackColor,
OptionFont,
OptionAddCoefFont,
OptionMulCoefAnim,
OptionTimeoutBubbles,
OptionTimeoutMessages,
OptionTimeoutContext,
OptionTimeoutContextHtml,
NumSystemOptions,
};
virtual void setupOptions();
/** Get a system option by its enum (faster than getOptions() and getVal())
* NB: array updated after each parseInterface()
*/
const CInterfaceOptionValue &getSystemOption(TSystemOption o) const {return _SystemOptions[o];}
// @}
void setupOptions();
/** Open a MessageBox. this is a simple ModalWindow with a Ok button
* ui:interface:message_box must be defined in xml, with a "text" ViewText son
@ -493,9 +462,6 @@ public:
return fTmp*fTmp*fTmp;
}
// For single lined ViewText that are clipped: on over of viewText too big, the text is drawn on top. A CRefPtr is kept
void setOverExtendViewText(CViewText *vt, NLMISC::CRGBA backGround);
// Item Carac Test, get the value
bool isItemCaracRequirementMet(CHARACTERISTICS::TCharacteristics type, sint32 value)
{
@ -730,9 +696,6 @@ private:
bool isControlInWindow (CCtrlBase *ctrl, CInterfaceGroup *pNewCurrentWnd);
uint getDepth (CCtrlBase *ctrl, CInterfaceGroup *pNewCurrentWnd);
// System Options
CInterfaceOptionValue _SystemOptions[NumSystemOptions];
// Modes
CInterfaceConfig::CDesktopImage _Modes[MAX_NUM_MODES];
uint8 _CurrentMode;
@ -758,9 +721,6 @@ private:
NLMISC::CCDBNodeLeaf *_ErrorColor;
NLMISC::CCDBNodeLeaf *_AlphaRolloverSpeedDB;
// The next ViewText to draw for Over
NLMISC::CRefPtr<CInterfaceElement> _OverExtendViewText;
NLMISC::CRGBA _OverExtendViewTextBackColor;
void drawOverExtendViewText();
CInterfaceGroup *getWindowForActiveMasterGroup(const std::string &windowName);

View file

@ -97,14 +97,14 @@ void addKeyLine (CGroupList *pParent, const ucstring &keyName, const ucstring &s
if (pViewKeyName != NULL)
{
pViewKeyName->setText (keyName);
pViewKeyName->setColor(grayed?pIM->getSystemOption(CInterfaceManager::OptionCtrlTextGrayColor).getValColor():CRGBA::White);
pViewKeyName->setColor(grayed?CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextGrayColor).getValColor():CRGBA::White);
}
CViewText *pViewShortcutName = dynamic_cast<CViewText*>(pKeysLine->getView(TEMPLATE_KEYS_SHORTCUT_NAME));
if (pViewShortcutName != NULL)
{
pViewShortcutName->setText (shortcutName);
pViewShortcutName->setColor(grayed?pIM->getSystemOption(CInterfaceManager::OptionCtrlTextGrayColor).getValColor():CRGBA::White);
pViewShortcutName->setColor(grayed?CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionCtrlTextGrayColor).getValColor():CRGBA::White);
}
pKeysLine->setParent (pParent);

View file

@ -18,13 +18,13 @@
#include "nel/misc/i18n.h"
#include "view_text.h"
#include "interface_manager.h"
#include "nel/gui/view_renderer.h"
#include "nel/gui/widget_manager.h"
#include "nel/gui/group_container_base.h"
#include "nel/gui/ctrl_tooltip.h"
#include "nel/misc/xml_auto_ptr.h"
#include "nel/gui/lua_ihm.h"
#include "nel/gui/view_pointer_base.h"
using namespace std;
using namespace NLMISC;
@ -51,7 +51,8 @@ void CViewText::setupDefault ()
_ParentPosRef = Hotspot_BL;
_PosRef = Hotspot_BL;
_FontSize = 12+CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
_FontSize = 12 +
CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont ).getValSInt32();
_Color = CRGBA(255,255,255,255);
_Shadow = false;
_ShadowColor = CRGBA(0,0,0,255);
@ -109,7 +110,7 @@ CViewText:: CViewText (const std::string& id, const std::string Text, sint FontS
_Id = id;
setupDefault ();
_FontSize = FontSize+CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
_FontSize = FontSize + CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont).getValSInt32();
_Color = Color;
_Shadow = Shadow;
setText(Text);
@ -120,7 +121,7 @@ CViewText:: CViewText (const std::string& id, const std::string Text, sint FontS
CViewText::~CViewText()
{
if (_Index != 0xFFFFFFFF)
CInterfaceManager::getInstance()->getTextContext()->erase (_Index);
CViewRenderer::getTextContext()->erase (_Index);
clearLines();
if (!_Setuped)
@ -134,7 +135,7 @@ CViewText::~CViewText()
CViewText &CViewText::operator=(const CViewText &vt)
{
if (_Index != 0xFFFFFFFF)
CInterfaceManager::getInstance()->getTextContext()->erase (_Index);
CViewRenderer::getTextContext()->erase (_Index);
// Create database entries
_Active = vt._Active;
@ -187,11 +188,11 @@ void CViewText::parseTextOptions (xmlNodePtr cur)
_ModulateGlobalColor= convertBool(prop);
prop = (char*) xmlGetProp( cur, (xmlChar*)"fontsize" );
_FontSize = 12+CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
_FontSize = 12 + CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont).getValSInt32();
if (prop)
{
fromString((const char*)prop, _FontSize);
_FontSize += CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
_FontSize += CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont).getValSInt32();
}
prop = (char*) xmlGetProp( cur, (xmlChar*)"shadow" );
@ -376,7 +377,6 @@ void CViewText::checkCoords ()
}
else
{
CInterfaceManager *pIM = CInterfaceManager::getInstance();
CCtrlBase *pCB = CWidgetManager::getInstance()->getCapturePointerLeft();
if (pCB != NULL)
{
@ -412,7 +412,6 @@ void CViewText::draw ()
{
H_AUTO( RZ_Interface_CViewText_draw )
CInterfaceManager *pIM = CInterfaceManager::getInstance();
CViewRenderer &rVR = *CViewRenderer::getInstance();
// *** Out Of Clip?
@ -430,7 +429,7 @@ void CViewText::draw ()
return;
rVR.getScreenOOSize (oow, ooh);
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
// *** get current color
@ -455,7 +454,7 @@ void CViewText::draw ()
{
if (_Lines.size() == 0) return;
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
@ -645,8 +644,8 @@ void CViewText::draw ()
CGroupContainerBase *gc= dynamic_cast<CGroupContainerBase*>(pIG);
if(!gc || !gc->isMoving())
{
CRGBA col= pIM->getSystemOption(CInterfaceManager::OptionViewTextOverBackColor).getValColor();
pIM->setOverExtendViewText(this, col);
CRGBA col= CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionViewTextOverBackColor).getValColor();
CWidgetManager::getInstance()->setOverExtendViewText(this, col);
}
}
}
@ -716,7 +715,7 @@ void CViewText::setText(const ucstring & text)
// ***************************************************************************
void CViewText::setFontSize (sint nFontSize)
{
_FontSize = nFontSize+CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
_FontSize = nFontSize + CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont).getValSInt32();
computeFontSize ();
invalidateContent();
}
@ -724,7 +723,7 @@ void CViewText::setFontSize (sint nFontSize)
// ***************************************************************************
sint CViewText::getFontSize() const
{
return _FontSize - CInterfaceManager::getInstance()->getSystemOption(CInterfaceManager::OptionAddCoefFont).getValSInt32();
return _FontSize - CWidgetManager::getInstance()->getSystemOption( CWidgetManager::OptionAddCoefFont).getValSInt32();
}
// ***************************************************************************
@ -862,7 +861,7 @@ void CViewText::updateTextContextMultiLine(uint nMaxWidth)
rWidthCurrentLine= max(rWidthCurrentLine, (float)wordFormat.TabX*_FontWidth);
}
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
// Parse the letter
{
@ -1040,7 +1039,7 @@ void CViewText::updateTextContextMultiLineJustified(uint nMaxWidth, bool expandS
// Get the word value.
wordValue = _Text.substr(spaceEnd, wordEnd - spaceEnd);
// compute width of word
si = CInterfaceManager::getInstance()->getTextContext()->getStringInfo(wordValue);
si = CViewRenderer::getTextContext()->getStringInfo(wordValue);
// compute size of spaces/Tab + word
newLineWidth = lineWidth + numSpaces * _SpaceWidth;
@ -1119,7 +1118,7 @@ void CViewText::updateTextContextMultiLineJustified(uint nMaxWidth, bool expandS
for(currChar = 0; currChar < wordValue.length(); ++currChar)
{
oneChar = wordValue[currChar];
si = CInterfaceManager::getInstance()->getTextContext()->getStringInfo(oneChar);
si = CViewRenderer::getTextContext()->getStringInfo(oneChar);
if ((uint) (px + si.StringWidth) > nMaxWidth) break;
px += si.StringWidth;
}
@ -1238,7 +1237,7 @@ void CViewText::updateTextContextMultiLineJustified(uint nMaxWidth, bool expandS
// ***************************************************************************
void CViewText::updateTextContext ()
{
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
@ -1413,7 +1412,7 @@ void CViewText::updateCoords()
{
CInterfaceGroup *parent = _Parent;
// avoid resizing parents to compute the limiter
while (parent && (parent->getResizeFromChildW() || dynamic_cast<CGroupList *>(parent)))
while (parent && (parent->getResizeFromChildW() || parent->isGroupList() ))
{
// NB nico : the dynamic_cast for CGroupList is bad!!
// can't avoid it for now, because, CGroupList implicitly does a "resize from child" in its update coords
@ -1550,7 +1549,7 @@ void CViewText::setColorRGBA(NLMISC::CRGBA col)
void CViewText::getCharacterPositionFromIndex(sint index, bool cursorAtPreviousLineEnd, sint &x, sint &y, sint &height) const
{
NLMISC::clamp(index, 0, (sint) _Text.length());
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setFontSize (_FontSize);
@ -1662,7 +1661,7 @@ static uint getCharacterIndex(const ucstring &textValue, float x)
{
// get character width
singleChar[0] = textValue[i];
si = CInterfaceManager::getInstance()->getTextContext()->getStringInfo(singleChar);
si = CViewRenderer::getTextContext()->getStringInfo(singleChar);
px += si.StringWidth;
// the character is at the i - 1 position
if (px > x)
@ -1679,7 +1678,7 @@ static uint getCharacterIndex(const ucstring &textValue, float x)
// ***************************************************************************
void CViewText::getCharacterIndexFromPosition(sint x, sint y, uint &index, bool &cursorAtPreviousLineEnd) const
{
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
// setup the text context
TextContext->setHotSpot (UTextContext::BottomLeft);
@ -1819,7 +1818,7 @@ void CViewText::setStringSelectionSkipingSpace(uint stringId, const ucstring &te
quadSize--;
}
// select what quad to skip
CInterfaceManager::getInstance()->getTextContext()->setStringSelection(stringId, quadStart, quadSize);
CViewRenderer::getTextContext()->setStringSelection(stringId, quadStart, quadSize);
}
// ***************************************************************************
@ -1911,7 +1910,7 @@ void CViewText::CLine::clear()
for(uint k = 0; k < _Words.size(); ++k)
{
if (_Words[k].Index != 0xffffffff)
CInterfaceManager::getInstance()->getTextContext()->erase(_Words[k].Index);
CViewRenderer::getTextContext()->erase(_Words[k].Index);
}
_Words.clear();
_NumChars = 0;
@ -1932,7 +1931,7 @@ void CViewText::CWord::build(const ucstring &text, uint numSpaces/*=0*/)
{
Text = text;
NumSpaces = numSpaces;
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
Index = TextContext->textPush(text);
Info = TextContext->getStringInfo(Index);
}
@ -1955,7 +1954,7 @@ sint32 CViewText::getMaxUsedW() const
static const ucstring lineFeedStr("\n");
float maxWidth = 0;
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setFontSize (_FontSize);
@ -2039,7 +2038,7 @@ sint32 CViewText::getMinUsedW() const
// If we can't clip the words, return the size of the largest word
else if ((_TextMode == DontClipWord) || (_TextMode == Justified))
{
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setFontSize (_FontSize);
@ -2090,7 +2089,7 @@ void CViewText::onInvalidateContent()
// ***************************************************************************
void CViewText::computeFontSize ()
{
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setFontSize (_FontSize);
@ -2444,7 +2443,7 @@ void CViewText::setSingleLineTextFormatTaged(const ucstring &text)
}
// convert in ULetterColors
NL3D::UTextContext *TextContext = CInterfaceManager::getInstance()->getTextContext();
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext();
ULetterColors * letterColors = TextContext->createLetterColors();
for(uint i=0; i<tempLetterColors.size(); i++)
{