Difference between revisions of "Game chat box"

From CEGUI Wiki - Crazy Eddie's GUI System (Open Source)
Jump to: navigation, search
Line 42: Line 42:
 
<pre>
 
<pre>
 
mMainWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout("chat.layout");
 
mMainWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout("chat.layout");
if (mMainWindow) {
+
if (mMainWindow) {
getMainSheet()->addChildWindow(mMainWindow);
+
  getMainSheet()->addChildWindow(mMainWindow);
 
CEGUI::Window* pEditBoxWnd = CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)
 
CEGUI::Window* pEditBoxWnd = CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)
 
"/Chat/Wnd/Edit");
 
"/Chat/Wnd/Edit");
BIND_CEGUI_EVENT(pEditBoxWnd, CEGUI::Editbox::EventTextAccepted, ChatWidget::EditTextAccepted)
+
BIND_CEGUI_EVENT(pEditBoxWnd, CEGUI::Editbox::EventTextAccepted, ChatWidget::EditTextAccepted)
mEditBox = static_cast<CEGUI::Editbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/Edit"));
+
mEditBox = static_cast<CEGUI::Editbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/Edit"));
  
mListBox = static_cast<CEGUI::Listbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/List"));
+
mListBox = static_cast<CEGUI::Listbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/List"));
mListBox->removeChildWindow("/Chat/Wnd/Edit");
+
mListBox->removeChildWindow("/Chat/Wnd/Edit");
mListBox->getParent()->addChildWindow("/Chat/Wnd/Edit");
+
mListBox->getParent()->addChildWindow("/Chat/Wnd/Edit");
 
</pre>
 
</pre>

Revision as of 03:02, 5 July 2005

**4/7/05 - This is still work in progress**

Chat input at bottom = Editbox Chat history at top = Listbox

chat.layout

<?xml version="1.0" ?>
<GUILayout>
<Window Type="TaharezLook/FrameWindow" Name="/Chat">
	<Property Name="Position" Value="x:0.0 y:0.0" />
	<Property Name="Size" Value="w:0.25 h:0.25" />
	<Property Name="Alpha" Value="0.6" />
	<Window Type="DefaultWindow" Name="/Chat/Wnd"> 
  		<Property Name="InheritsAlpha" Value="True" /> 
		<Property Name="Position" Value="x:0.0 y:0.00" />
		<Property Name="Size" Value="w:1 h:1" />
		<Window Type="TaharezLook/Listbox" Name="/Chat/Wnd/List">
			<Property Name="Position" Value="x:0.0 y:0.1" />
			<Property Name="Size" Value="w:1 h:0.77" />
  			<Property Name="InheritsAlpha" Value="True" /> 
			<Property Name="ReadOnly" value = "True" />
		/Window>
	 	<Window Type="TaharezLook/Editbox" Name="/Chat/Wnd/Edit" >
			<Property Name="Position" Value="x:0.01 y:0.87" />
			<Property Name="Size" Value="w:0.98 h:0.12" />
  			<Property Name="InheritsAlpha" Value="True" /> 
		/Window>
	</Window>
</Window>
</GUILayout>

#define Helper

#define BIND_CEGUI_EVENT(window, event, method) window->subscribeEvent
(event, CEGUI::Event::Subscriber(&method, this)); 

Initialise()

mMainWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout("chat.layout");
if (mMainWindow) {
  getMainSheet()->addChildWindow(mMainWindow);
CEGUI::Window* pEditBoxWnd = CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)
"/Chat/Wnd/Edit");
BIND_CEGUI_EVENT(pEditBoxWnd, CEGUI::Editbox::EventTextAccepted, ChatWidget::EditTextAccepted)
mEditBox = static_cast<CEGUI::Editbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/Edit"));

mListBox = static_cast<CEGUI::Listbox*> (CEGUI::WindowManager::getSingleton().getWindow("/Chat/Wnd/List"));
mListBox->removeChildWindow("/Chat/Wnd/Edit");
mListBox->getParent()->addChildWindow("/Chat/Wnd/Edit");