콘텐츠로 이동

4.12. InputMethod

InputMethod Automata 관련 함수들이다. 각 단말기 환경에 따라 작성된 오토마타 에서 현재 입력 키 값에 따라 문자(열)를 처리하여 InputMethod 에 넘겨주게 된다. InputMethod 에 전달되는 문자(열)를 현재 조합중인 문자(열)과 조합이 끝나서 완 성된 문자(열)이 존재할 경우 완성된 문자(열)을 넘겨주게 된다.

InputMethod 와 사용자 텍스트 입력 컴포넌트에서는 오토마타로부터 넘겨받은 문 자(열)을 삽입하거나 삭제, 수정하는 작업을 처리한다.

현재 오토마타에서 지원하는 입력 모드에 대한 정보는 MH_IMAgetSurpportModeCount()MH_IMAgetSupportedModes(), MH_IMAgetCurrentMode를 통해서 얻을 수 있다. 여기서 MH_IMAgetSupportedModes()의 경우 리턴값은 오토마타에서 지원하는 언어코드를 넘겨주게 되며, 언어코드는 ISO 639 코드를 따른다. 단, 해당 언어가 대소문자를 구분하는 경우 각 언어코드에 “/S”,“/L”를 추가하여 지정할 수 있다. 예를 들어 영문 소문자의 경우 “EN/S”의 언어코드를 넘겨주게 된다.

한글의 경우에는 “KO”의 언어코드를 넘겨주게 된다. 숫자의 경우 언어코드에서 정 의되어 있지 않으므로, “N123”으로 정한다. 심볼 코드는 폰에서 제공하는 코드의 형태가 다양하므로 HAL 에서 정의 하지 않고, 상위의 사용자 컴포넌트에서 공통적 으로 구현하도록 한다.

관련 자료형

#define MH_IMA_NUM_MODE "N123" /* 숫자 입력 모드. 숫자의 경우 표준 언어 코드에서
지원하지 않으므로 숫자 입력에 대한 코드를 지정한다. */
#define MH_IMA_FLUSH (-99) /* 사용자에 의해서 현재 조합 중인 문자를 강제로
완성시켜야 할 경우 사용되는 특수 키.
이 키가 MH_IMAhandleInput 으로 입력된 경우
현재 조합 중인 문자를 완성하여 반환한다.
키 입력을 받아서 일정 시간 후 키가 완성되는
방식의 오토마타 구현 시, 이 키 값을
MH_pltEvent 를 이용하여 플랫폼으로 전달하여
구현할 수 있다. */

설명

오토마타에서 지원는 입력모드의 수를 얻어온다.

프로토타입

_Int32 MH_IMAgetSurpportModeCount()

매개 변수

없음

반환 값

입력모드의 수

부작용

없음

참고 항목

없음

설명

오토마타에서 지원하는 입력모드의 언어코드를 얻어온다. 언어코드는 ISO 639 코드를 따른다. 단, 해당 언어가 대소문자를 구분하는 경우 각 언어코드에 "/S","/L"를 추가하여 지정할 수 있다. 예를 들어 영문 소문자의 경우 “EN/S”의 언어코드를 넘겨주게 된다. 한글의 경우에는 “KO”의 언어코드를 넘겨주게 된다.

프로토타입

char** MH_IMAgetSupportedModes()

매개 변수

없음

반환 값

언어코드 (스트링 어레이 포인터)

부작용

없음

참고 항목

없음

설명

오토마타에서 사용할 모드를 지정한다.이 값은 MH_IMAgetSupportedModes()로 얻은 언어코드의 인덱스값이다.

프로토타입

M_Int32 MH_IMAsetCurrentMode (M_Int32 mode)

매개 변수

입력모드

반환 값

지정한 입력모드가 바르게 적용된 경우 “1”. 그렇지 않은 경우 “0”.

부작용

없음

참고 항목

없음

설명

오토마타의 현재 입력모드를 얻어온다. 이 값은 MH_IMAgetSupportedModes()로 얻은 언어코드의 인덱스값이다.

프로토타입

M_Int32 MH_IMAgetCurrentMode()

매개 변수

없음

반환 값

오토마타의 현재 입력모드.

부작용

없음

참고 항목

없음

설명

사용자 컴포넌트로 부터받은 키 입력을 현재 입력모드에 따라 처리하며 문자를 생성하고, 생성된 문자를 넘긴다.

(주의)MH_IMA_FLUSH가 키값으로 입력된 경우 현재 조합중인 문자를 완성하여 반환한다.

프로토타입

M_Int32 MH_IMAhandleInput(char key, M_Int32 type, char *buf1, M_Int32 *size1, char *buf2, M_Int32 *size2);

매개 변수

  • key - [in] 입력된 키값 (MH_KeyCode에 정의된 것, MH_IMA_FLUSH)
  • type - [in] 입력된 키 타입 (MH_Event에 정의된 것.)
  • buf1 - [out] 완성된 문자열버퍼
  • size1 - [in] 완성된 문자열 버퍼의 크기
  • buf2 - [out] 조합중인 문자열버퍼
  • size2 - [in] 조합중인 문자열 버퍼의 크기

반환 값

없음

부작용

없음

참고 항목

없음