diff options
Diffstat (limited to 'indra/llui/lltextparser.h')
-rw-r--r-- | indra/llui/lltextparser.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/indra/llui/lltextparser.h b/indra/llui/lltextparser.h new file mode 100644 index 0000000000..f6099b8f65 --- /dev/null +++ b/indra/llui/lltextparser.h @@ -0,0 +1,48 @@ +/** + * @file llTextParser.h + * @brief GUI for user-defined highlights + * + * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLTEXTPARSER_H +#define LL_LLTEXTPARSER_H + +#include <vector> +#include "linden_common.h" + +#include "lltextparser.h" + +class LLSD; +class LLUUID; +class LLVector3d; +class LLColor4; + +class LLTextParser +{ +public: + enum ConditionType { CONTAINS, MATCHES, STARTS_WITH, ENDS_WITH }; + enum HighlightType { PART, ALL }; + enum HighlightPosition { WHOLE, START, MIDDLE, END }; + enum DialogAction { ACTION_NONE, ACTION_CLOSE, ACTION_ADD, ACTION_COPY, ACTION_UPDATE }; + + static LLTextParser* getInstance(); + LLTextParser(){}; + ~LLTextParser(); + + S32 findPattern(const std::string &text, LLSD highlight); + LLSD parsePartialLineHighlights(const std::string &text,const LLColor4 &color,S32 part=WHOLE, S32 index=0); + bool parseFullLineHighlights(const std::string &text, LLColor4 *color); + void triggerAlerts(LLUUID agent_id, LLVector3d position, std::string text, LLWindow* viewer_window); + + std::string getFileName(); + LLSD loadFromDisk(); + bool saveToDisk(LLSD highlights); +public: + LLSD mHighlights; +private: + static LLTextParser* sInstance; +}; + +#endif |