diff --git a/code/nel/include/nel/gui/interface_factory.h b/code/nel/include/nel/gui/interface_factory.h
new file mode 100644
index 000000000..bd7f8352a
--- /dev/null
+++ b/code/nel/include/nel/gui/interface_factory.h
@@ -0,0 +1,35 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef IFACE_FACTORY
+#define IFACE_FACTORY
+
+#include
+
+namespace NLGUI
+{
+ class CViewBase;
+
+ /// Simple interface element ( widget ) factory
+ class CInterfaceFactory
+ {
+ public:
+ static CViewBase* createClass( const std::string &name );
+ };
+}
+
+
+#endif
diff --git a/code/nel/src/gui/ctrl_text_button.cpp b/code/nel/src/gui/ctrl_text_button.cpp
index 03db2b797..a3a10d93e 100644
--- a/code/nel/src/gui/ctrl_text_button.cpp
+++ b/code/nel/src/gui/ctrl_text_button.cpp
@@ -23,6 +23,7 @@
#include "nel/gui/group_container_base.h"
#include "nel/gui/lua_ihm.h"
#include "nel/gui/widget_manager.h"
+#include "nel/gui/interface_factory.h"
#include "nel/misc/i18n.h"
using namespace std;
@@ -904,7 +905,7 @@ namespace NLGUI
if( _ViewText == NULL )
{
- CViewBase *v = CWidgetManager::getInstance()->getParser()->createClass( "text" );
+ CViewBase *v = CInterfaceFactory::createClass( "text" );
nlassert( v != NULL );
_ViewText = dynamic_cast< CViewText* >( v );
_ViewText->setId( _Id + "_text" );
diff --git a/code/nel/src/gui/group_editbox.cpp b/code/nel/src/gui/group_editbox.cpp
index c18c69134..ba65a07c4 100644
--- a/code/nel/src/gui/group_editbox.cpp
+++ b/code/nel/src/gui/group_editbox.cpp
@@ -27,6 +27,7 @@
#include "nel/gui/widget_manager.h"
#include "nel/gui/view_renderer.h"
#include "nel/gui/db_manager.h"
+#include "nel/gui/interface_factory.h"
#include
using namespace std;
@@ -1543,7 +1544,7 @@ namespace NLGUI
if( editorMode )
{
nlwarning( "Trying to create a new 'edit_text' for %s", getId().c_str() );
- _ViewText = dynamic_cast< CViewText* >( CWidgetManager::getInstance()->getParser()->createClass( "text" ) );
+ _ViewText = dynamic_cast< CViewText* >( CInterfaceFactory::createClass( "text" ) );
if( _ViewText != NULL )
{
_ViewText->setParent( this );
diff --git a/code/nel/src/gui/interface_factory.cpp b/code/nel/src/gui/interface_factory.cpp
new file mode 100644
index 000000000..ec914baa6
--- /dev/null
+++ b/code/nel/src/gui/interface_factory.cpp
@@ -0,0 +1,29 @@
+// Ryzom - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "nel/gui/interface_factory.h"
+#include "nel/gui/view_base.h"
+#include "nel/misc/factory.h"
+
+namespace NLGUI
+{
+ CViewBase* CInterfaceFactory::createClass( const std::string &name )
+ {
+ return NLMISC_GET_FACTORY( CViewBase, std::string ).createObject( std::string( name ) , CViewBase::TCtorParam() );
+ }
+}
+
+