summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h')
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h b/Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h
new file mode 100644
index 00000000000..10ee9d9096b
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/translit/unaccent.h
@@ -0,0 +1,89 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 1999-2003, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+#include "unicode/translit.h"
+#include "unicode/normlzr.h"
+
+class UnaccentTransliterator : public Transliterator {
+
+ public:
+
+ /**
+ * Constructor
+ */
+ UnaccentTransliterator();
+
+ /**
+ * Destructor
+ */
+ virtual ~UnaccentTransliterator();
+
+ protected:
+
+ /**
+ * Implement Transliterator API
+ */
+ virtual void handleTransliterate(Replaceable& text,
+ UTransPosition& index,
+ UBool incremental) const;
+
+ private:
+
+ /**
+ * Unaccent a single character using normalizer.
+ */
+ UChar unaccent(UChar c) const;
+
+ Normalizer normalizer;
+
+public:
+
+ /**
+ * Return the class ID for this class. This is useful only for
+ * comparing to a return value from getDynamicClassID(). For example:
+ * <pre>
+ * . Base* polymorphic_pointer = createPolymorphicObject();
+ * . if (polymorphic_pointer->getDynamicClassID() ==
+ * . Derived::getStaticClassID()) ...
+ * </pre>
+ * @return The class ID for all objects of this class.
+ * @stable ICU 2.0
+ */
+ static inline UClassID getStaticClassID(void) { return (UClassID)&fgClassID; };
+
+ /**
+ * Returns a unique class ID <b>polymorphically</b>. This method
+ * is to implement a simple version of RTTI, since not all C++
+ * compilers support genuine RTTI. Polymorphic operator==() and
+ * clone() methods call this method.
+ *
+ * <p>Concrete subclasses of Transliterator that wish clients to
+ * be able to identify them should implement getDynamicClassID()
+ * and also a static method and data member:
+ *
+ * <pre>
+ * static UClassID getStaticClassID() { return (UClassID)&fgClassID; }
+ * static char fgClassID;
+ * </pre>
+ *
+ * Subclasses that do not implement this method will have a
+ * dynamic class ID of Transliterator::getStatisClassID().
+ *
+ * @return The class ID for this object. All objects of a given
+ * class have the same class ID. Objects of other classes have
+ * different class IDs.
+ * @stable ICU 2.0
+ */
+ virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); };
+
+private:
+
+ /**
+ * Class identifier for subclasses of Transliterator that do not
+ * define their class (anonymous subclasses).
+ */
+ static const char fgClassID;
+};