diff options
Diffstat (limited to 'src/chat.h')
-rw-r--r-- | src/chat.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/chat.h b/src/chat.h index 0b98e4d3c..fc080f64b 100644 --- a/src/chat.h +++ b/src/chat.h @@ -57,6 +57,8 @@ struct ChatFormattedFragment EnrichedString text; // starting column u32 column; + // web link is empty for most frags + std::string weblink; // formatting //u8 bold:1; }; @@ -108,8 +110,13 @@ public: void scrollAbsolute(s32 scroll); // Scroll to bottom of buffer (newest) void scrollBottom(); - // Scroll to top of buffer (oldest) - void scrollTop(); + + // Functions for keeping track of whether the lines were modified by any + // preceding operations + // If they were not changed, getLineCount() and getLine() output the same as + // before + bool getLinesModified() const { return m_lines_modified; } + void resetLinesModified() { m_lines_modified = false; } // Format a chat line for the given number of columns. // Appends the formatted lines to the destination array and @@ -118,6 +125,7 @@ public: std::vector<ChatFormattedLine>& destination) const; void resize(u32 scrollback); + protected: s32 getTopScrollPos() const; s32 getBottomScrollPos() const; @@ -138,6 +146,16 @@ private: std::vector<ChatFormattedLine> m_formatted; // Empty formatted line, for error returns ChatFormattedLine m_empty_formatted_line; + + // Enable clickable chat weblinks + bool m_cache_clickable_chat_weblinks; + // Color of clickable chat weblinks + irr::video::SColor m_cache_chat_weblink_color; + + // Whether the lines were modified since last markLinesUnchanged() + // Is always set to true when m_unformatted is modified, because that's what + // determines the output of getLineCount() and getLine() + bool m_lines_modified = true; }; class ChatPrompt |