hf_rules.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:16k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *    hf_rules.h
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui_Software
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   header file of hindi font rule 
  48.  *
  49.  *
  50.  * Author:
  51.  * -------
  52.  * -------
  53.  *
  54.  *============================================================================
  55.  *             HISTORY
  56.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  57.  *------------------------------------------------------------------------------
  58.  * removed!
  59.  *
  60.  * removed!
  61.  * removed!
  62.  * removed!
  63.  *
  64.  *------------------------------------------------------------------------------
  65.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  66.  *============================================================================
  67.  ****************************************************************************/
  68. #include "MMI_features.h"
  69. /* PMT RAKESH START 20061006 */
  70. #include "gui.h"
  71. /* PMT RAKESH START 20061006 */
  72. #ifdef __MMI_HINDI_ALG__
  73. #ifndef MMI_HINDI_RULES_H
  74. #define MMI_HINDI_RULES_H
  75. #define  G_MAX         30       /* maximun no. of glyph inputs that can be used to make a conjunct */
  76. #define HF_DEFAULT_PADDING 0
  77. #define  C_MAX        10        /* man no. of characters that can form a cluster */
  78. #define  HF_RESERVED   0x0000
  79. #define  SPACE         0x20
  80. /* PMT RAKESH START 20061006 */
  81. typedef enum
  82. {
  83.     MMI_ALL_LANG = 0,
  84.     MMI_HINDI_LANG = 1,
  85.     MMI_MARATHI_LANG = 2
  86. } HINDI_RULES_LANGUAGE_ENUM;
  87. typedef struct __HindiRulesLangSSC
  88. {
  89.     S8 *ssc_string;
  90.     HINDI_RULES_LANGUAGE_ENUM language_enum;
  91. } HindiRulesLangSSC;
  92. /* PMT RAKESH END 20061006 */
  93. #define  HF_HINDI_RANGE(ch)   ( ((U16)(ch)>=S_CHANDRA_BINDU && (U16)(ch)<=S_ABBR)?(1) : (0) )
  94. #define  UNI2HINDI(ch)        (U16)((ch) - 0x900)
  95. extern const U8 g_hindi_character_sign_array[];
  96. extern const U8 g_hindi_character_extended_sign_array[];
  97. extern const U8 g_hindi_character_type_array[];
  98. #define  IdentifyCharacter(ch)  g_hindi_character_type_array[UNI2HINDI(ch)]
  99. //#define  HF_CON_RANGE(ch)     (((ch >= STARTCON && ch <= ENDCON) || (ch >= STARTADDCON && ch <= ENDADDCON) || ch==0x0950 )?1 : 0 )
  100. //#define  HF_INDVOW_RANGE(ch)  ((ch >= NIV_A && ch <=IV_AU )?(1) : (0) )
  101. //#define  HF_DEPVOW_RANGE(ch)  ((ch >= DV_AA && ch <= DV_AU)?(1) : (0) )
  102. //#define  HF_SIGN_RANGE(ch)    ( ((ch >= S_CHANDRA_BINDU && ch <= S_VISARGA ) || (ch >= NS_RESERVED1 && ch <= NS_AACCENT) || ch == S_NUKTA )? (1) : (0) )
  103. //#define  HF_NUMERAL_RANGE(ch) ( (ch>=D_ZERO && ch<= D_NINE)? (1) : (0) )
  104. #define  HF_ENGLISH_NUMERAL_RANGE(ch)  ( (ch>=0x30 && ch<=0x39)? (1) : (0) )
  105. #define STARTCON    0x915       /* start of the consonant */
  106. #define ENDCON      0x939       /* end of consonant */
  107. #define STARTADDCON 0x958       /* start of the additional consonant */
  108. #define ENDADDCON   0x95f       /* end of the additional consonant */
  109. #define STARTDIG    0x966       /* start of the digits */
  110. #define ENDIG       0x96f       /* end of the digits */
  111. // #define  UI_HINDI_SIGN_RANGE(ch)  ch == 0x901 || ch == 0x902 || ch == 0x93c || ch == 0x941 || ch == 0x942|| ch == 0x943 || ch == 0x945 || ch == 0x947 || ch == 0x948|| ch == 0x94d
  112. /* PMT RAKESH START 20061006 */
  113. #define  UI_HINDI_SIGN_RANGE(ch)  (HF_HINDI_RANGE((ch)) &&  g_hindi_character_sign_array[UNI2HINDI((ch))]) || ( ((U16)(ch)>59647 && (U16)(ch)<59842) && g_hindi_character_extended_sign_array[(ch)-59648])
  114. /* PMT RAKESH END 20061006 */
  115. //#define  UI_HINDI_TOP_SIGN_RANGE(ch) ch == 0x901 || ch == 0x902 || ch == 0x945|| ch == 0x947 || ch == 0x948
  116. //#define  UI_HINDI_BOTTOM_SIGN_RANGE(ch) ch == 0x941 || ch == 0x942 || ch == 0x943 || ch == 0x94d || ch ==0x93c
  117. extern PU8 cluster_start_p;
  118. extern PU8 cluster_end_p;
  119. extern S32 use_multitap;
  120. extern S32 parse_hindi;
  121. extern S32 reset_hindi_pms;
  122. extern S32 prev_char_btext_x;
  123. extern S32 prev_char_bdwidth;
  124. extern S32 new_bline;
  125. extern S32 prev_char_text_x;
  126. extern S32 prev_char_dwidth;
  127. extern S32 prev_char_width;
  128. extern S32 new_line;
  129. extern S32 hf_padding;
  130. extern U16 prev_character;
  131. #define  init_cluster_start_p(buffer)     {                  
  132.                                     cluster_start_p = buffer;
  133.                                  }
  134. #define init_cluster_end_p(buffer)     {                
  135.                                  cluster_end_p = buffer;
  136.                               }
  137. #define  reset_use_multitap() use_multitap=0
  138. #define  set_use_multitap()   use_multitap=1
  139. #define  whether_use_multitap()   use_multitap
  140. #define  hf_disable_hindi_rules_parsing() parse_hindi=0
  141. #define hf_enable_hindi_rules_parsing()   parse_hindi=1
  142. #define hf_is_hindi_rules_parsing() parse_hindi
  143. #define  hf_disable_hindi_reset_hindi_params()  reset_hindi_pms=0
  144. #define hf_enable_hindi_reset_hindi_params() reset_hindi_pms=1
  145. #define hf_is_reset_hindi_params()   reset_hindi_pms
  146. #define hf_padding_value(val) hf_padding=val;
  147. #define hf_padding_def_value()   hf_padding=HF_DEFAULT_PADDING;
  148. #define reset_hindi_bordered_params() {             
  149.                               prev_char_btext_x = 0;
  150.                               prev_char_bdwidth = 0;
  151.                               new_bline = 1;        
  152.                            }
  153. #define reset_hindi_params()   {                
  154.                            prev_char_text_x = 0;
  155.                            prev_char_dwidth = 0;
  156.                            prev_char_width = 0; 
  157.                            prev_character = 0;  
  158.                            new_line = 1;        
  159.                         }
  160. typedef enum
  161. {
  162.     HF_INVALID = 0,
  163.     CON,
  164.     INDVOW,
  165.     DEPVOW,
  166.     SIGN,
  167.     NUM,
  168.     DIG,
  169.     HALANT
  170. } HF_CHARACTER;
  171. typedef enum
  172. {
  173.     NORMAL,
  174.     SPECIAL
  175. } CONSONANT_CATEGORY;
  176. typedef enum
  177. {   /* VARIOUS SIGNS + INDEPENDENT VOWEL */
  178.     S_CHANDRA_BINDU = 0x0901,
  179.     S_BINDU = 0x902,
  180.     S_VISARGA = 0x903,
  181.     NIV_A = 0x904,
  182.     IV_A = 0x905,
  183.     IV_AA = 0x906,
  184.     IV_I = 0x907,
  185.     IV_II = 0x908,
  186.     IV_U = 0x909,
  187.     IV_UU = 0x90a,
  188.     IV_R = 0x90b,
  189.     NIV_L = 0x90c,
  190.     NIV_CE = 0x90d,
  191.     NIV_SE = 0x90e,
  192.     IV_E = 0x90f,
  193.     IV_AI = 0x910,
  194.     NIV_CO = 0x911,
  195.     NIV_SO = 0x912,
  196.     IV_O = 0x913,
  197.     IV_AU = 0x914,
  198.     /* CONSONANTS */
  199.     C_KA = 0x915,
  200.     C_KHA = 0x916,
  201.     C_GA = 0x917,
  202.     C_GHA = 0x918,
  203.     C_NGA = 0x919,
  204.     C_CHA = 0x91a,
  205.     C_CHHA = 0x91b,
  206.     C_JA = 0x91c,
  207.     C_JHA = 0x91d,
  208.     C_NYA = 0x91e,
  209.     C_TTA = 0x91f,
  210.     C_TTHA = 0x920,
  211.     C_DDA = 0x921,
  212.     C_DDHA = 0x922,
  213.     C_NNA = 0x923,
  214.     C_TA = 0x924,
  215.     C_THA = 0x925,
  216.     C_DA = 0x926,
  217.     C_DHA = 0x927,
  218.     C_NA = 0x928,
  219.     C_NNNA = 0x929,
  220.     C_PA = 0x92a,
  221.     C_PHA = 0x92b,
  222.     C_BA = 0x92c,
  223.     C_BHA = 0x92d,
  224.     C_MA = 0x92e,
  225.     C_YA = 0x92f,
  226.     C_RA = 0x930,
  227.     C_RRA = 0x931,
  228.     C_LA = 0x932,
  229.     C_LLA = 0x933,
  230.     C_LLLA = 0x934,
  231.     C_VA = 0x935,
  232.     C_SHA = 0x936,
  233.     C_SSA = 0x937,
  234.     C_SA = 0x938,
  235.     C_HA = 0x939,
  236.     N_BLANK1 = 0x93a,
  237.     N_BLANK2 = 0x93b,
  238.     /* SIGNS */
  239.     S_NUKTA = 0x93c,
  240.     NS_AVAGRAHA = 0x93d,
  241.     /* DEPENDENT VOWELS */
  242.     DV_AA = 0x93e,
  243.     DV_I = 0x93F,
  244.     DV_II = 0x940,
  245.     DV_U = 0x941,
  246.     DV_UU = 0x942,
  247.     DV_R = 0x943,
  248.     NDV_RR = 0x944,
  249.     DV_CE = 0x945,
  250.     NDV_E = 0x946,
  251.     DV_E = 0x947,
  252.     DV_AI = 0x948,
  253.     NDV_CO = 0x949,
  254.     NDV_O = 0x94a,
  255.     DV_O = 0x94b,
  256.     DV_AU = 0x94c,
  257.     /* SIGNS */
  258.     S_HALANT = 0x94d,
  259.     NS_RESERVED1 = 0x94e,
  260.     NS_RESERVED2 = 0x94f,
  261.     S_OM = 0x950,
  262.     NS_UDATTA = 0x951,
  263.     NS_ANUDATTA = 0x952,
  264.     NS_GACCENT = 0x953,
  265.     NS_AACCENT = 0x954,
  266.     N_BLANK5 = 0x955,
  267.     N_BLANK6 = 0x956,
  268.     N_BLANK7 = 0x957,
  269.     /* ADDITIONAL CONSONANT */
  270.     AC_QA = 0x958,
  271.     AC_KHHA = 0x959,
  272.     AC_GHHA = 0x95a,
  273.     AC_ZA = 0x95b,
  274.     AC_DDDHA = 0x95c,
  275.     AC_RHA = 0x95d,
  276.     AC_FA = 0x95e,
  277.     AC_YYA = 0x95f,
  278.     /* GENERIC ADDITIONS */
  279.     NG_RR = 0x960,
  280.     NG_LL = 0x961,
  281.     NG_L = 0x962,
  282.     NG_VLL = 0x963,
  283.     NG_D = 0x964,
  284.     NG_DD = 0x965,
  285.     /* DIGITS */
  286.     D_ZERO = 0x966,
  287.     D_ONE = 0x967,
  288.     D_TWO = 0x968,
  289.     D_THREE = 0x969,
  290.     D_FOUR = 0x96a,
  291.     D_FIVE = 0x96b,
  292.     D_SIX = 0x96c,
  293.     D_SEVEN = 0x96d,
  294.     D_EIGHT = 0x96e,
  295.     D_NINE = 0x96f,
  296.     /* DEVANAGARI SPECIFIC ADDITOIN */
  297.     S_ABBR = 0x970
  298. } HF_CHARACTERS_ENUM;
  299. typedef enum
  300. {
  301.     /* various half forms,ligature etc */
  302.     L_KSHA = 0xE900,
  303.     L_GYA = 0xE901,
  304.     L_TTTA = 0xE902,
  305.     L_TRA = 0xE903,
  306.     L_SHRA = 0xE905,
  307.     L_KRA = 0xE907,
  308.     L_JRA = 0xE908,
  309.     /* L_ZRA=0xE909, */
  310.     L_FRA = 0xE90A,
  311.     /* L_NFRA=0xE90B, */
  312.     L_PRA = 0xE90C,
  313.     L_SRA = 0xE90D,
  314.     L_RU = 0xE90E,
  315.     L_RUU = 0xE90F,
  316.     H_KA = 0xE915,
  317.     H_KHA = 0xE916,
  318.     H_GA = 0xE917,
  319.     H_GHA = 0xE918,
  320.     H_CHA = 0xE91A,
  321.     H_JA = 0xE91C,
  322.     H_JHA = 0xE91D,
  323.     H_NYA = 0xE91E,
  324.     H_ANNA = 0xE923,
  325.     H_TA = 0xE924,
  326.     H_THA = 0xE925,
  327.     H_DHA = 0xE927,
  328.     H_NA = 0xE928,
  329.     H_NNNA = 0xE929,
  330.     H_PA = 0xE92A,
  331.     H_PHA = 0xE92B,
  332.     H_BA = 0xE92C,
  333.     H_BHA = 0xE92D,
  334.     H_MA = 0xE92E,
  335.     H_YA = 0xE92F,
  336.     H_LA = 0xE932,
  337.     H_LLA = 0xE933,
  338.     H_LLLA = 0xE934,
  339.     H_VA = 0xE935,
  340.     H_SHA = 0xE936,
  341.     H_SSA = 0xE937,
  342.     H_SA = 0xE938,
  343.     H_HA = 0xE939,
  344.     L_KKA = 0xE940,
  345.     L_KTA = 0xE941,
  346.     L_DAKA = 0xE942,
  347.     L_DAKHA = 0xE943,
  348.     L_DAGA = 0xE944,
  349.     L_DAGHA = 0xE945,
  350.     L_DADHA = 0xE947,
  351.     L_DABHA = 0xE94B,
  352.     L_DAMA = 0xE94C,
  353.     L_TTTHA = 0xE951,
  354.     L_DDAGA = 0xE952,
  355.     L_DADA = 0xE953,
  356.     L_DADDHA = 0xE954,
  357.     L_DYA = 0xE948,     /* new */
  358.     L_DVA = 0xE94E,     /* new */
  359.     L_DDYA = 0xE94d,    /* new */
  360.     L_TTTTA = 0xE94F,
  361.     L_TTHA = 0xE950,
  362.     L_NNNA = 0xE955,
  363.     L_HMMA = 0xE956,
  364.     L_HYA = 0xE957,
  365.     H_KHSA = 0xE970,
  366.     H_TTA = 0xE972,
  367.     H_TRA = 0xE973,
  368.     H_SHRA = 0xE975,
  369.     L_NCAND = 0xE980,
  370.     L_NBINDU = 0xE981,
  371.     L_IRAHAL = 0xE985,
  372.     L_IRAHALB = 0xE986,
  373.     L_IIRAHALB = 0xE989,
  374.     L_DVERA = 0xE98C,
  375.     L_DVEBINRA = 0xE98D,
  376.     L_DVAIRA = 0xE98F,
  377.     L_DVAIBINRA = 0xE990,
  378.     L_DVORA = 0xE992,
  379.     L_DVOBINRA = 0xE993,
  380.     L_MAU = 0xE994,
  381.     L_DVAURA = 0xE995,
  382.     L_DVAUBINRA = 0xE9AD,
  383.     L_HRA = 0xE9A3,
  384.     L_RABIN = 0xE97B,
  385.     H_EYLASH = 0xE97D,
  386.     SUP_RA = 0xE97E,
  387.     SUB_RA = 0xE97F,
  388.     L_MII = 0xE987,     /* new matra ligature */
  389.     L_MIIRA = 0xE988,
  390.     L_ME = 0xE98B,      /* new matra ligature */
  391.     L_MAI = 0xE98E,
  392.     L_MO = 0xE991,      /* new matra ligature */
  393.     L_KHRA = 0xE996,
  394.     L_GRA = 0xE997,
  395.     L_GHRA = 0xE998,
  396.     L_CHRA = 0xE999,
  397.     L_JHRA = 0xE99B,
  398.     L_THRA = 0xE99C,
  399.     L_DRA = 0xE99D,
  400.     L_DHRA = 0xE99E,
  401.     L_NRA = 0xE99F,
  402.     L_MRA = 0xE9A0,
  403.     L_BRA = 0xE9A1,
  404.     L_BHRA = 0xE9A2,
  405.     L_YRA = 0xE9A4,
  406.     H_PHA_N = 0xE9A7,
  407.     H_GYA = 0xE9A8,
  408.     H_JA_N = 0xE9A9,
  409.     L_VRA = 0xE9AA,
  410.     L_YA_N = 0xE9AB,
  411.     L_KA_N = 0xE9AC,
  412.     L_KHA_N = 0xE9AE,
  413.     L_GA_N = 0xE9AF,
  414.     L_KRA_N = 0xE9B0,
  415.     L_KHRA_N = 0xE9B1,
  416.     L_GRA_N = 0xE9B2,
  417.     L_YRA_N = 0xE9B3,
  418.     L_JRA_N = 0xE909,
  419.     L_FRA_N = 0xE90B,
  420.     /* PMT RAKESH START 20061006 */
  421. #if defined(__MMI_LANG_MARATHI__)
  422.     L_LA_LA = 0XE9B4,
  423.     L_TTA_YA = 0XE9B5,
  424.     L_TTHA_YA = 0XE9B6,
  425.     L_DDA_YA = 0XE9B7,
  426.     L_DDHA_YA = 0XE9B8,
  427.     L_CHHA_YA = 0XE9B9,
  428.     L_SHRA_CHA = 0XE904,
  429.     L_SHRA_VA = 0XE906,
  430.     L_SHRA_LA = 0XE9BC,
  431.     L_SHRA_NA = 0XE9BD,
  432.     L_SSA_TTA = 0XE9BE,
  433.     L_GA_NA = 0XE9BF,
  434.     L_DA_MA = 0XE9C0,
  435.     L_SSA_TTA_RA = 0XE9C1,
  436. #endif /* defined(__MMI_LANG_MARATHI__) */ 
  437.     /* PMT RAKESH END 20061006 */
  438. } HF_LIGATURES_ENUM;
  439. typedef struct _hf_glyph_info
  440. {
  441.     U8 WhetherUcs2;             /* whether it is a ligature or unicode value */
  442.     U8 nInputLen;               /* no. of input unicode values */
  443.     U8 nOutputLen;              /* no, of output values */
  444.     /* PMT RAKESH START 20061006 */
  445.     U8 rule_language;
  446.     /* PMT RAKESH END 20061006 */
  447.     U16 Input_glyph[C_MAX];     /* no. of input glyph used to make conjunct */
  448.     U16 Output_glyph[C_MAX];    /* no. of output glyph that has to be rendered */
  449. } GLYPH_INFO_TABLE;
  450. typedef struct _hf_main_table
  451. {
  452.     const GLYPH_INFO_TABLE *glyphinfo;  /* pointer to individual table */
  453.     U16 nsize;                          /* size of individual character's array */
  454.     U8 maxInputGlyphSize;               /* max input of glyph it can handle */
  455. } MAIN_TABLE;
  456. extern PU8 hf_get_next_cluster_p(PU8, PU8);
  457. extern PU8 hf_get_prev_cluster_p(PU8, PU8);
  458. extern S32 hf_size_of_current_cluster(PU8, PU8, U16);
  459. extern S32 hf_cursor_position_delta_move_insert(PU16 text_p, PU16 cursor_p);
  460. extern S32 hf_cursor_position_delta_move_delete(PU16 text_p, PU16 cursor_p);
  461. extern S32 hf_get_current_cluster(PU8, PU8, PU16);
  462. extern S32 hf_get_string_Dwidth_height(UI_string_type);
  463. extern S32 hf_get_string_width_height(UI_string_type);
  464. extern S32 hf_get_cluster(PU16);
  465. extern S32 hf_get_consonant_cluster(PU16 *, PU8 *, S32);
  466. /* S32 IdentifyCharacter( U16 ); */
  467. extern S32 hf_hindi_rules(PU16, PU16, S32);
  468. extern S32 hf_whether_first_cluster(PU16, PU16);
  469. //void init_cluster_end_p(PU16 );
  470. //void init_cluster_start_p(PU16 );
  471. extern MMI_BOOL whether_ligature(PU16);
  472. /* start farhad 09122004 */
  473. extern void get_text_x(PS32, U16, S32, U16, U16);
  474. /* void reset_hindi_params(void); */
  475. extern void get_multitap_text_x(PS32, U16, S32, S32);
  476. extern S32 hf_get_string_width_height(UI_string_type);
  477. extern S32 hf_get_string_Dwidth_height(UI_string_type);
  478. extern UI_character_type *get_hindi_multitap_string(S32);
  479. /* PMT RAKESH START 20061006 */
  480. #if defined(__MMI_MULTITAP_MARATHI__)
  481. extern UI_character_type *get_marathi_multitap_string(S32);
  482. extern UI_string_type get_marathi_single_line_multitap_string(S32);
  483. #endif /* defined(__MMI_MULTITAP_MARATHI__) */ 
  484. /* PMT RAKESH END 20061006 */
  485. /* void reset_hindi_bordered_params(void); */
  486. extern void get_bordered_text_x(PS32, U16, S32);
  487. /* end farhad 09122004 */
  488. /* PMT RAKESH START 20061006 */
  489. extern void overwrite_current_language_for_hindi_rules_based_on_input_method(void);
  490. extern void set_current_language_for_hindi_rules(void);
  491. extern void restore_current_language_for_hindi_rules(void);
  492. /* PMT RAKESH END 20061006 */
  493. #endif /* MMI_HINDI_RULES_H */ 
  494. #endif /* __MMI_HINDI_ALG__ */