summaryrefslogtreecommitdiff
path: root/indra/llui/lltextparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/lltextparser.h')
-rw-r--r--indra/llui/lltextparser.h48
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