Difference between revisions of "Game chat box"
From CEGUI Wiki - Crazy Eddie's GUI System (Open Source)
| Line 15: | Line 15: | ||
<Property Name="Position" Value="x:0.0 y:0.0" /> | <Property Name="Position" Value="x:0.0 y:0.0" /> | ||
<Property Name="Size" Value="w:0.25 h:0.25" /> | <Property Name="Size" Value="w:0.25 h:0.25" /> | ||
| − | <Property Name="Alpha" Value="0. | + | <Property Name="Alpha" Value="0.8" /> |
<Window Type="DefaultWindow" Name="/Chat/Wnd"> | <Window Type="DefaultWindow" Name="/Chat/Wnd"> | ||
| − | + | <Property Name="Alpha" Value="0.8" /> | |
<Property Name="Position" Value="x:0.0 y:0.00" /> | <Property Name="Position" Value="x:0.0 y:0.00" /> | ||
<Property Name="Size" Value="w:1 h:1" /> | <Property Name="Size" Value="w:1 h:1" /> | ||
| Line 23: | Line 23: | ||
<Property Name="Position" Value="x:0.0 y:0.1" /> | <Property Name="Position" Value="x:0.0 y:0.1" /> | ||
<Property Name="Size" Value="w:1 h:0.77" /> | <Property Name="Size" Value="w:1 h:0.77" /> | ||
| − | + | </Window> | |
| − | + | ||
| − | + | ||
<Window Type="TaharezLook/Editbox" Name="/Chat/Wnd/Edit" > | <Window Type="TaharezLook/Editbox" Name="/Chat/Wnd/Edit" > | ||
<Property Name="Position" Value="x:0.01 y:0.87" /> | <Property Name="Position" Value="x:0.01 y:0.87" /> | ||
<Property Name="Size" Value="w:0.98 h:0.12" /> | <Property Name="Size" Value="w:0.98 h:0.12" /> | ||
| − | + | </Window> | |
| − | + | ||
</Window> | </Window> | ||
</Window> | </Window> | ||
Revision as of 02:37, 6 July 2005
**4/7/05 - Work in progress**
Editbox for chat input at bottom. Listbox for chat history at top.
Both contained in frame window.
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.8" /> <Window Type="DefaultWindow" Name="/Chat/Wnd"> <Property Name="Alpha" Value="0.8" /> <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" /> </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" /> </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");
EditTextAccepted()
bool ChatWidget::EditTextAccepted(const CEGUI::EventArgs& args)
{
//add text to list
CEGUI::ListboxTextItem* item = new CEGUI::ListboxTextItem(mEditBox->getText());
mListBox->addItem ( item );
mListBox->ensureItemIsVisible(mListBox->getItemCount());
//remove old text
mEditBox->setText("");
return true;
}