Home | History | Annotate | Download | only in aapt
      1 #ifndef HOST_PSEUDOLOCALIZE_H
      2 #define HOST_PSEUDOLOCALIZE_H
      3 
      4 #include <android-base/macros.h>
      5 #include "StringPool.h"
      6 
      7 class PseudoMethodImpl {
      8  public:
      9   virtual ~PseudoMethodImpl() {}
     10   virtual String16 start() { return String16(); }
     11   virtual String16 end() { return String16(); }
     12   virtual String16 text(const String16& text) = 0;
     13   virtual String16 placeholder(const String16& text) = 0;
     14 };
     15 
     16 class PseudoMethodNone : public PseudoMethodImpl {
     17  public:
     18   PseudoMethodNone() {}
     19   String16 text(const String16& text) { return text; }
     20   String16 placeholder(const String16& text) { return text; }
     21  private:
     22   DISALLOW_COPY_AND_ASSIGN(PseudoMethodNone);
     23 };
     24 
     25 class PseudoMethodBidi : public PseudoMethodImpl {
     26  public:
     27   String16 text(const String16& text);
     28   String16 placeholder(const String16& text);
     29 };
     30 
     31 class PseudoMethodAccent : public PseudoMethodImpl {
     32  public:
     33   PseudoMethodAccent() : mDepth(0), mWordCount(0), mLength(0) {}
     34   String16 start();
     35   String16 end();
     36   String16 text(const String16& text);
     37   String16 placeholder(const String16& text);
     38  private:
     39   size_t mDepth;
     40   size_t mWordCount;
     41   size_t mLength;
     42 };
     43 
     44 class Pseudolocalizer {
     45  public:
     46   explicit Pseudolocalizer(PseudolocalizationMethod m);
     47   ~Pseudolocalizer() { if (mImpl) delete mImpl; }
     48   void setMethod(PseudolocalizationMethod m);
     49   String16 start() { return mImpl->start(); }
     50   String16 end() { return mImpl->end(); }
     51   String16 text(const String16& text);
     52  private:
     53   PseudoMethodImpl *mImpl;
     54   size_t mLastDepth;
     55 };
     56 
     57 #endif // HOST_PSEUDOLOCALIZE_H
     58 
     59