콘텐츠로 이동

2.7. 문자 입력 처리

문자 입력 처리 관련 함수들이다. 각 단말기 환경에 따라 작성된 오토마타에서 현재 입력 키 값에 따라 문자(열)를 처리하여 문자 입력 처리에 넘겨주게 된다. 문자 입력 처리 함수에 전달되는 문자(열)를 현재 조합중인 문자(열)과 조합이 끝나서 완성된 문 자(열)이 존재할 경우 완성된 문자(열)을 넘겨주게 된다. 문자 입력 처리 함수와 사용자 텍스트 입력 컴포넌트에서는 오토마타로부터 넘겨받은 문자(열)을 삽입하거나 삭제, 수정하는 작업을 처리한다. 현재 오토마타에서 지원하는 입력 모드에 대한 정보는 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_FLUSH99 // 사용자에 의해서 현재 조합중인 문자를

// 강제로 완성시켜야 할 경우 사용되는 특수 키 이 키가 MH_IMAhandleInput로 입력된 경우 현재 조합중인 문자를 완성하여 반환한다. 키 입력을 받아서 일정 시간 후 키가 완성되는 방식의 오토마타구현 시 이 키 값을 MH_pltEvent를 이용하여 플랫폼으로 전달 하여 구현할 수 있다.

프로토타입

M_Int32 MH_IMAgetSurpportModeCount()

설명

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

매개 변수

없음

반환 값

입력모드의 수

부작용

없음

참고 항목

없음

프로토타입

M_Char** MH_IMAgetSupportedModes()

설명

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

매개 변수

없음

반환 값

언어코드 (문자 배열 포인터)

부작용

없음

참고 항목

없음

프로토타입

M_Int32 MH_IMAsetCurrentMode (M_Int32 mode)

설명

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

매개 변수

입력모드

반환 값

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

부작용

없음

참고 항목

없음

프로토타입

M_Int32 MH_IMAgetCurrentMode(void)

설명

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

매개 변수

없음

반환 값

오토마타의 현재 입력모드

부작용

없음

참고 항목

없음

프로토타입

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

설명

사용자 컴포넌트로부터 받은 키 입력을 현재 입력모드에 따라 처리하며 문자를 생성 하고, 생성된 문자를 넘긴다. 전달된 키가 오토마타의 조합에 사용할 수 없는 키인 경 우, 현재 조합중인 문자를 완성버퍼에 설정하고 0을 반환한다. (주의) MH_IMA_FLUSH가 키 값으로 입력된 경우 현재 조합중인 문자를 완성하여 반 환한다.

매개 변수

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

반환 값

오토마타가 키를 처리했을 경우 TRUE, 오토마타가 처리하지 않았을 경우 FALSE 반환

부작용

없음

참고 항목

없음