summaryrefslogtreecommitdiff
path: root/src/gui/chat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/chat.cpp')
-rw-r--r--src/gui/chat.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 888dd27d..34daab38 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -28,6 +28,7 @@
#include "browserbox.h"
#include "chatinput.h"
+#include "itemlinkhandler.h"
#include "scrollarea.h"
#include "sdlinput.h"
#include "windowcontainer.h"
@@ -57,14 +58,16 @@ ChatWindow::ChatWindow():
setDefaultSize(0, windowContainer->getHeight() - 123, 600, 123);
setOpaque(false);
+ mItemLinkHandler = new ItemLinkHandler();
+
mChatInput = new ChatInput;
mChatInput->setActionEventId("chatinput");
mChatInput->addActionListener(this);
BrowserBox *textOutput = new BrowserBox(BrowserBox::AUTO_WRAP);
textOutput->setOpaque(false);
- textOutput->disableLinksAndUserColors();
textOutput->setMaxRow((int) config.getValue("ChatLogLength", 0));
+ textOutput->setLinkHandler(mItemLinkHandler);
ScrollArea *scrollArea = new ScrollArea(textOutput);
scrollArea->setPosition(
@@ -416,10 +419,18 @@ void ChatWindow::keyPressed(gcn::KeyEvent &event)
void ChatWindow::setInputText(std::string input_str)
{
- mChatInput->setText(input_str + " ");
+ mChatInput->setText(mChatInput->getText() + input_str + " ");
requestChatFocus();
}
+void ChatWindow::addItemText(int itemId, const std::string &item)
+{
+ std::ostringstream text;
+ text << "[@@" << itemId << "|" << item << "@@] ";
+ mChatInput->setText(mChatInput->getText() + text.str());
+ requestChatFocus();
+}
+
void ChatWindow::setVisible(bool isVisible)
{
Window::setVisible(isVisible);