transtbl.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright (C) 2003 Mooffie <mooffie@typo.co.il>
  2. //
  3. // This program is free software; you can redistribute it and/or modify
  4. // it under the terms of the GNU General Public License as published by
  5. // the Free Software Foundation; either version 2 of the License, or
  6. // (at your option) any later version.
  7. //
  8. // This program is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. // GNU General Public License for more details.
  12. //
  13. // You should have received a copy of the GNU General Public License
  14. // along with this program; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
  16. #ifndef BDE_TRANSTBL_H
  17. #define BDE_TRANSTBL_H
  18. #include <map>
  19. #include "types.h"
  20. // The TranslationTable class matches one character with another. In other
  21. // words, It's a hash (map) of characters.
  22. //
  23. // For example, the hebrew keyboard emulation is implemented as a
  24. // TranslationTable that maps english characters to the hebrew characters
  25. // that sit in their place on the keyboard.
  26. class TranslationTable {
  27. std::map<unichar, unichar> charmap;
  28. public:
  29. TranslationTable() { }
  30. bool empty() const { return charmap.empty(); }
  31. bool load(const char *);
  32. bool translate_char(unichar &ch) const;
  33. };
  34. #endif