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_FLUSH –99 // 사용자에 의해서 현재 조합중인 문자를// 강제로 완성시켜야 할 경우 사용되는 특수키 이 키가 MH_IMAhandleInput로 입력된 경우 현재 조합중인 문자를 완성하 여 반환한다. 키 입력을 받아서 일정 시간 후 키가 완성되는 방식의 오토마타구 현 시 이 키 값을 MH_pltEvent를 이용하여 플랫폼으로 전달 하여 구현할 수 있 다.
MH_IMAgetSurpportModeCount
섹션 제목: “MH_IMAgetSurpportModeCount”프로토타입
M_Int32 MH_IMAgetSurpportModeCount()설명
오토마타에서 지원되는 입력모드의 수를 얻어온다.
매개 변수
없음
반환 값
입력모드의 수
부작용
없음
참고 항목
없음
MH_IMAgetSupportedModes()
섹션 제목: “MH_IMAgetSupportedModes()”프로토타입
M_Char** MH_IMAgetSupportedModes()설명
오토마타에서 지원하는 입력모드의 언어코드를 얻어온다. 언어코드는 ISO 639 코드를 따른다. 단, 해당 언어가 대소문자를 구분하는 경우 각 언어코드에 “/S”,“/L”를 추가하 여 지정할 수 있다. 예를 들어 영문 소문자의 경우 “EN/S”의 언어코드를 넘겨주게 된 다. 한글의 경우에는 “KO”의 언어코드를 넘겨주게 된다.
매개 변수
없음
반환 값
언어코드 (문자 배열 포인터)
부작용
없음
참고 항목
없음
MH_IMAsetCurrentMode
섹션 제목: “MH_IMAsetCurrentMode”프로토타입
M_Int32 MH_IMAsetCurrentMode (M_Int32 mode)설명
오토마타에서 사용할 모드를 지정한다.이 값은 MH_IMAgetSupportedModes()로 얻은 언어코드의 인덱스값이다.
매개 변수
입력모드
반환 값
지정한 입력모드가 바르게 적용된 경우 “1”. 그렇지 않은 경우 “0”.
부작용
없음
참고 항목
없음
MH_IMAgetCurrentMode()
섹션 제목: “MH_IMAgetCurrentMode()”프로토타입
M_Int32 MH_IMAgetCurrentMode(void)설명
오토마타의 현재 입력모드를 얻어온다. 이 값은 MH_IMAgetSupportedModes()로 얻 은 언어코드의 인덱스값이다.
매개 변수
없음
반환 값
오토마타의 현재 입력모드
부작용
없음
참고 항목
없음
MH_IMAhandleInput
섹션 제목: “MH_IMAhandleInput”프로토타입
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] 완성된 문자열 버퍼의 크기buf2- [out] 조합중인 문자열버퍼size2- [in] 조합중인 문자열 버퍼의 크기
반환 값
오토마타가 키를 처리했을 경우 TRUE, 오토마타가 처리하지 않았을 경우 FALSE 반환
부작용
없음
참고 항목
없음