⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zi8hmi.h

📁 印尼字库和输入法
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *    zi8hmi.h
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *   header file for zi8hmi.c
 *
 * Author:
 * -------
 *  Elvis Lin
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * $Log$
 *
 * Oct 13 2006 mtk01123
 * [MAUI_00334482] [MMI][Inputmethod][new feature]Check in Zi V7 related code and lib
 * 
 *
 * Sep 27 2006 mtk01123
 * [MAUI_00332897] [MMI][Inputmethod][Persian]Add zi persian support for lcmmi
 * 
 *
 * May 17 2006 mtk01123
 * [MAUI_00194587] [MMI][InputMethod][Fixed link error]Fixed maintrunk inputmethod link error
 * 
 *
 * Nov 30 2005 mtk01123
 * [MAUI_00159096] [MMI][language][New Feature]Zi/T9 Smart Hindi check in
 * 
 *
 * Oct 7 2005 mtk01123
 * [MAUI_00127721] [MMI][Languages][New feature]add ZiLanguages-Hebrew-Greek-Czech-Finnish-Danish-Hungarian
 * 
 *
 * Oct 3 2005 mtk01123
 * [MAUI_00126798] [MMI][Languages][New languages]Polish and Norwegian for Zi
 * 
 *
 * Sep 25 2005 mtk01123
 * [MAUI_00125616] [MMI][Languages][New feature]Check-in Zi Croatian, Romanian, Slovenian languages
 * 
 *
 * Sep 20 2005 mtk01123
 * [MAUI_00124586] [MMI][Languages][New Feature]Zi Swedish check-in
 * 
 *
 * Sep 20 2005 mtk01123
 * [MAUI_00124586] [MMI][Languages][New Feature]Zi Swedish check-in
 * 
 *
 * Sep 19 2005 mtk01123
 * [MAUI_00124586] [MMI][Languages][New Feature]Zi Swedish check-in
 * 
 *
 * Sep 10 2005 mtk01123
 * [MAUI_00122966] [MMI][Languages][New Feature]Languages-Arabic-Norwegian-Slovak-Dutch-PVCS-Checkin
 * 
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#if !defined(__ZI8HMI_H__)
#define __ZI8HMI_H__

#include "zi8api.h"

/* *************** */
/* eZiText related */
/* *************** */
#define MAX_NEWWORD_LENGTH         64
#define MAX_WORD_LENGTH            MAX_NEWWORD_LENGTH
#define MAX_ELEMENT_BUFFERSIZE    128   /* 30//128 */
#define MAX_WORD_BUFFERSIZE       128
#define MAX_CAND_BUFFERSIZE       256
#define MAX_PHONETIC_BUFFERSIZE   128
/* PMT dara Added on 1/12/2k4 */
#ifdef MMI_LOW_MEMORY_PHONE
#define MAX_PHONETIC_CANDSIZE      2    /* 20 */
#else /* MMI_LOW_MEMORY_PHONE */ 
/* PMT end */
#define MAX_PHONETIC_CANDSIZE      5    /* 20 */
#endif /* MMI_LOW_MEMORY_PHONE */ 

#define MAX_COUNT_CANDIDATES       99

#define USE_ELEMENTIMAGES           1   /* set to 0
                                           if component images are integrated
                                           within the Chinese font file */
#define ELEMENT_IMAGESIZE          32

#define MT_MINWORDLENGTH            1   /* ctrl MT predicted min. word length */

#define PREDICTION_STARTAT          5

/* *************************** */
/* phone book and call related */
/* *************************** */
#define MAX_CHAR_FOR_NAME          16
#define MAX_CHAR_FOR_NUMBER        16
#define MAX_NUMBER_OF_CALL_ENTRY   10
#define MAX_NUMBER_OF_PB_ENTRY    256

/* *************** */
/* display related */
/* *************** */
#define DEFAULT_FONTSIZE           16
#define LARGE_FONTSIZE             24
#define SMALL_FONTSIZE             12

#define MAX_CHAR_PER_LINE          16
#define MAX_NUMBER_OF_LINES         8

#define MAX_CHAR_LABELTOP          14
#define MAX_CHAR_LABELSOFT         10

#define MAX_MESSAGE_LENGTH        650   /* 256 */

#define SPACINGH                    1

#define DEFAULT_CHAR_WIDTH         (DEFAULT_FONTSIZE/2)
#define DEFAULT_LINE_HEIGHT        (DEFAULT_FONTSIZE+SPACINGH)

#define DISPLAY_SCREEN_WIDTH       (MAX_CHAR_PER_LINE   * DEFAULT_CHAR_WIDTH)
#define DISPLAY_SCREEN_HEIGHT      (MAX_NUMBER_OF_LINES * DEFAULT_LINE_HEIGHT)

#define POS_LABELTOPX              32
#define POS_LABELTOPY            (-23)

#define LARGE_LINE_HEIGHT          (LARGE_FONTSIZE+SPACINGH)

#define TIMEOUT_INTERVAL           15   /* in 10th of a second */
#define TIMEOUT_DOUBLECLICK         2   /* in 10th of a second */

/* ***************************************** */
/* dictionary size: 4K for each (uwd and pd) */
/* ***************************************** */
#define MAX_DICTIONARY_SIZE      (1024 * 4)

/* *************** */
/* keypad keys' id */
/* *************** */
typedef enum
{
    KEYDUMMY = 0x8001,
    KEYTIMEOUT = 0x8002,
    KEYUNKNOWN = 0x8003,
    KEYLEFT = 0x8004,
    KEYRIGHT = 0x8005,
    KEYUP = 0x8006,
    KEYDOWN = 0x8007,
    KEYGREEN = 0x8008,
    KEYRED = 0x8009,
    KEYPOWER = 0x800A,
    KEYSOFTL = 0x800B,
    KEYSOFTR = 0x800C,
    KEY1 = 0x8031,
    KEY2 = 0x8032,
    KEY3 = 0x8033,
    KEY4 = 0x8034,
    KEY5 = 0x8035,
    KEY6 = 0x8036,
    KEY7 = 0x8037,
    KEY8 = 0x8038,
    KEY9 = 0x8039,
    KEYSTAR = 0x802A,
    KEYPLUS = 0x802B,
    KEY0 = 0x8030,
    KEYHASH = 0x8023
} KEYID;

typedef enum
{
    TIMER_FUNCTION = 102,
    TIMER_DISPLAY_CLOCK = 101
} TIMER_ACTION;

typedef enum
{
    MENU_SIMPLIFIED,
    MENU_TRADITIONAL,
    MENU_ENGLISH
} MENU_LANGUAGE;

typedef enum
{
    TEXTID_123,
    TEXTID_1BY1,
    TEXTID_ABC,
    TEXTID_ADD,
    TEXTID_ALL,
    TEXTID_AM,
    TEXTID_CALL,
    TEXTID_CALLING,
    TEXTID_CANCEL,
    TEXTID_CHINESE,
    TEXTID_CLEAR,
    TEXTID_CONNECTED,
    TEXTID_DELETE,
    TEXTID_DELETE_ALL,
    TEXTID_DELETED,
    TEXTID_DIALED,
    TEXTID_DONE,
    TEXTID_EMPTY_BOX,
    TEXTID_END,
    TEXTID_END_MUTE,
    TEXTID_ENGLISH,
    TEXTID_EZI,
    TEXTID_EZI_ABC,
    TEXTID_EZI_BOPOMOFO,
    TEXTID_EZI_CANGJIE,
    TEXTID_EZI_PINYIN,
    TEXTID_EZI_STROKE,
    TEXTID_FAILADDWORD,
    TEXTID_HK,
    TEXTID_INBOX,
    TEXTID_LANG,
    TEXTID_MAIN_MENU,
    TEXTID_MESSAGE,
    TEXTID_MESSAGES,
    TEXTID_MODIFIED,
    TEXTID_MODIFY,
    TEXTID_MUTE,
    TEXTID_NAME,
    TEXTID_NEWWORD,
    TEXTID_NO,
    TEXTID_NO_LAST_DAILED_NUMBERS,
    TEXTID_NO_PHONE_NUMBERS,
    TEXTID_NO_UD_WORD,
    TEXTID_NUMBER,
    TEXTID_OPTIONS,
    TEXTID_ORDER_BOPOMOFO,
    TEXTID_ORDER_PINYIN,
    TEXTID_ORDER_STROKE,
    TEXTID_ORDER_UNICODE,
    TEXTID_OUTBOX,
    TEXTID_PB_ORDER,
    TEXTID_PHONEBOOK,
    TEXTID_PHONEBOOK2,
    TEXTID_PM,
    TEXTID_PRC,
    TEXTID_SAVE,
    TEXTID_SAVED,
    TEXTID_SEARCH,
    TEXTID_SELECT,
    TEXTID_SEND,
    TEXTID_SENDING,
    TEXTID_SENDMESSAGE,
    TEXTID_SETTINGS,
    TEXTID_SIMPLIFIED,
    TEXTID_START,
    TEXTID_STOP,
    TEXTID_SYM,
    TEXTID_TRADITIONAL,
    TEXTID_TW,
    TEXTID_UD,
    TEXTID_VIEW,
    TEXTID_WRITE,
    TEXTID_YES,

    TEXTID_NONE
} TEXT_IDS;

typedef enum
{
    OBJECTID_CARET,
    OBJECTID_BOX,
    OBJECTID_TEXT,
    OBJECTID_IMAGE
} OBJECT_IDS;

typedef enum
{
    ATTRIB_UNDERLINE,
    ATTRIB_REVERSE,
    ATTRIB_GREY,
    ATTRIB_UNDERLINE_REVERSE,
    ATTRIB_UNDERLINE_GREY,
    ATTRIB_NONE
} DISPLAY_ATTRIB;

typedef enum
{
    IME_NAME_TEXT,
    IME_NUMBER_TEXT,
    IME_SEARCH_PB_TEXT,
    IME_NORMAL_TEXT
} IME_TEXT_TYPE;

typedef enum
{
    IME_SKIP,
    IME_CANCEL,
    IME_CONTINUE,
    IME_DONE
} IME_RETURN_CODE;

typedef enum
{
    CALLOPT_CALL,
    CALLOPT_SEND,
    CALLOPT_SAVE,
    CALLOPT_MODIFY,
    CALLOPT_DELETE
} CALL_OPTIONS;

typedef enum
{
    MENU_PHONEBOOK,
    MENU_MESSAGES,
    MENU_SETTINGS,

    MENU_NOT_SELECTED
} MENU_ENTRIES;

typedef enum
{
    PHONEBOOK_IMAGE,
    MESSAGES_IMAGE,
    SETTINGS_IMAGE
} IMAGES_IDS;

typedef enum
{
    SUBMENU_PB_SEARCH,
    SUBMENU_PB_ADD,
    SUBMENU_PB_DELETE,
    SUBMENU_PB_EDIT,
    SUBMENU_PB_ORDER,

    SUBMENU_MESSAGES_INBOX,
    SUBMENU_MESSAGES_OUTBOX,
    SUBMENU_MESSAGES_WRITE,

    SUBMENU_SETTINGS_LANGUAGE,
    SUBMENU_SETTINGS_DICTIONARY,

    SUBMENU_DICTIONARY_ENGLISH,
    SUBMENU_DICTIONARY_CHINESE,

    SUBMENU_UD_ADD,
    SUBMENU_UD_DELETE,

    SUBMENU_DELETE_1BY1,
    SUBMENU_DELETE_ALL,

    SUBMENU_LANG_ENGLISH,
    SUBMENU_LANG_SIMPLIFIED,
    SUBMENU_LANG_TRADITIONAL,

    SUBMENU_NOT_SELECTED
} SUBMENU_ENTRIES;

typedef enum
{
    ADDWORD_FAILED,
    ADDWORD_OK
} ADDWORD_RETURN_CODE;

typedef enum
{
    ENGLISH_LANGUAGE,
    CHINESE_LANGUAGE,
    NUMBER_LANGUAGE,
    ANY_LANGUAGE
} SUPPORTED_LANGUAGES;

typedef enum
{
    PB_ORDER_UNICODE,
    PB_ORDER_STROKE,
    PB_ORDER_PINYIN,
    PB_ORDER_BOPOMOFO
} PB_ORDER;

typedef enum
{
    INPUT_NONE,
    INPUT_EZI_STROKE,
    INPUT_EZI_PINYIN,
    INPUT_EZI_BOPOMOFO,
    INPUT_EZI_CANGJIE,
    INPUT_EZI_ABC,
    INPUT_ABC,
    INPUT_123,
    INPUT_SYM,
    INPUT_EZI_MULTITAP_PINYIN,
    INPUT_EZI_MULTITAP_BOPOMOFO,
    INPUT_EZI_THAI,
    INPUT_EZI_RUSSIAN,
    INPUT_EZI_FRENCH,
    INPUT_EZI_GERMAN,
    INPUT_EZI_ITALIAN,
    INPUT_EZI_SPANISH,
    INPUT_EZI_HINDI,
    INPUT_EZI_ARABIC,
    INPUT_EZI_PERSIAN,
    INPUT_EZI_NORWEGIAN,
    INPUT_EZI_POLISH,
    INPUT_EZI_HEBREW,
    INPUT_EZI_PORTUGUESE,
    INPUT_EZI_TURKISH,
    INPUT_EZI_MALAY,
    INPUT_EZI_INDONESIAN,
    INPUT_EZI_VIETNAMESE,
    INPUT_EZI_SLOVAK,
    INPUT_EZI_DUTCH,
    INPUT_EZI_SWEDISH,
    INPUT_EZI_CROATIAN,
    INPUT_EZI_ROMANIAN,
    INPUT_EZI_SLOVENIAN,
    INPUT_EZI_GREEK,
    INPUT_EZI_CZECH,
    INPUT_EZI_FINNISH,
    INPUT_EZI_DANISH,
    INPUT_EZI_HUNGARIAN,
    INPUT_EZI_BULGARIAN
} INPUT_MODE;

typedef enum
{
    ALPHA_LANG_EN,
    ALPHA_LANG_FR,
    ALPHA_LANG_EN_FR,
    ALPHA_LANG_FR_EN,
    ALPHA_LANG_RU,
    ALPHA_LANG_DE,
    ALPHA_LANG_IT,
    ALPHA_LANG_ES,
    ALPHA_LANG_PT,
    ALPHA_LANG_TR,
    ALPHA_LANG_MS,
    ALPHA_LANG_ID,
    ALPHA_LANG_VI,
    ALPHA_LANG_SK,
    ALPHA_LANG_PL,
    ALPHA_LANG_NO,
    ALPHA_LANG_NL,
    ALPHA_LANG_SV,
    ALPHA_LANG_HR,
    ALPHA_LANG_RO,
    ALPHA_LANG_SL,
    ALPHA_LANG_EL,
    ALPHA_LANG_CZ,
    ALPHA_LANG_FI,
    ALPHA_LANG_DA,
    ALPHA_LANG_HI,
    ALPHA_LANG_HU,
    ALPHA_LANG_BG
} ALPHA_LANGUAGE;

typedef enum
{
    PHONETIC_1_STEP,
    PHONETIC_2_STEPS,
    PHONETIC_1_N_2_STEPS,
    PHONETIC_DIRECT,
    PHONETIC_MULTITAP
} IME_PHONETIC_METHOD;

typedef struct _DISPLAY_OBJECT
{
    struct _DISPLAY_OBJECT *pNext;
    OBJECT_IDS objectType;
    DISPLAY_ATTRIB display_attrib;
    int fontSize;
    int x;
    int y;
    int width;
    int height;
    int numOfChar;
    union
    {
        PZI8WCHAR text;
        PZI8UCHAR pixels;
    } data;

} DISPLAY_OBJECT, *PDISPLAY_OBJECT;

typedef struct _TEXT_SYSTEM
{
    TEXT_IDS textID;
    ZI8WCHAR ZI8ROMDATA ZI8ROMPOINTER English;
    ZI8WCHAR ZI8ROMDATA ZI8ROMPOINTER Simplified;
    ZI8WCHAR ZI8ROMDATA ZI8ROMPOINTER Traditional;

} TEXT_SYSTEM, *PTEXT_SYSTEM;

typedef struct _PHONE_BOOK
{
    ZI8WCHAR name[MAX_CHAR_FOR_NAME + 1];
    ZI8WCHAR number[MAX_CHAR_FOR_NUMBER + 1];
} PHONE_BOOK, *PPHONE_BOOK;

typedef struct _PHONENUMBER
{
    ZI8WCHAR number[MAX_CHAR_FOR_NUMBER + 1];
} PHONENUMBER, *PPHONENUMBER;

typedef struct _PREDEFINED_WORDS
{
    ZI8WCHAR ZI8ROMDATA ZI8ROMPOINTER pWord;
    ZI8UCHAR language;
} PREDEFINED_WORDS, *PPREDEFINED_WORDS;

/* typedef int (*PIMEPROCESSKEYFUNC)( int, int, int ); */
typedef IME_RETURN_CODE(*PIMEPROCESSKEYFUNC) (KEYID, int, int);

#define ZI_FRAME_SKIP_TIMEOUT  100
#define ZI_FRAME_START_TIMEOUT  100
#ifdef MMI_LOW_MEMORY_PHONE
#define ZI_CANDIDATE_BUFFER_SIZE 6      // 8 /* Number of characters per selection page */
#else 
#define ZI_CANDIDATE_BUFFER_SIZE ((UI_device_width)/gui_get_character_width(0x4E00)-2)  // 7 8 /* Number of characters per selection page */
#endif 
#define ZI_CANDIDATE_MAX_BUFFER_SIZE 15
#define ZI_COMPOSITION_BUFFER_SIZE         MAX_PHONETIC_BUFFERSIZE

#define ZI_IN_CATEGORY_5_FLAG                                                       0x0001
#define ZI_IN_CATEGORY_28_FLAG                                                     0x0002
#define ZI_IN_CATEGORY_SINGLELINE_INPUTBOX_FLAG                    0x0004
#define ZI_IN_CATEGORY_INLINE_MULTILINE_INPUTBOX_FLAG              0x0008

#define ZI_MULTITAP_TIMER_DURATION      800

#endif /* !defined(__ZI8HMI_H__) */ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -