////////////////////// MessageWnd //////////////////////MessageWnd::MessageWnd(GG::X x, GG::Y y, GG::X w, GG::Y h) : CUIWnd(UserString("MESSAGES_PANEL_TITLE"), x, y, w, h, GG::INTERACTIVE | GG::DRAGABLE | GG::ONTOP | GG::RESIZABLE | CLOSABLE), m_display(0), m_edit(0), m_display_show_time(0), m_history(), m_history_position(){ m_display = new CUIMultiEdit( GG::X0, GG::Y0, ClientWidth(), ClientHeight(), "", GG::MULTI_WORDBREAK | GG::MULTI_READ_ONLY | GG::MULTI_TERMINAL_STYLE | GG::MULTI_INTEGRAL_HEIGHT); AttachChild(m_display); m_display->SetMaxLinesOfHistory(100); // executing this line seems to cause crashes in MultiEdit when adding more lines to the control than the history limit m_edit = new MessageWndEdit(GG::X0, GG::Y0, ClientWidth()); AttachChild(m_edit); GG::Connect(m_edit->TextEnteredSignal, &MessageWnd::MessageEntered, this); GG::Connect(m_edit->UpPressedSignal, &MessageWnd::MessageHistoryUpRequested, this); GG::Connect(m_edit->DownPressedSignal, &MessageWnd::MessageHistoryDownRequested, this); GG::Connect(m_edit->GainingFocusSignal, TypingSignal); GG::Connect(m_edit->LosingFocusSignal, DoneTypingSignal); m_history.push_front(""); DoLayout();}