국제 언어 환경 설명서

XmText and XmTextField 자원

Xm CTL은 Motif 2.0 CSText 위짓트 다음 패턴화되어 시각적으로 작동하는 이동 및 삭제 활동의 병렬 목록을 추가하여 XmTextXmTextField 를 확장합니다. 표준 Motif 2.1 TextTextField는 논리적 순서와 물리적 순서를 구분하지 않습니다. nextforward은 “오른쪽 방향”을 의미하고 previousbackward는 “왼쪽 방향.”을 의미합니다. 그러나 CSText는 적절한 구분을 하고 엄격하게 물리적인 이름(예를 들어, left-character (), delete-right-word() 등)로 새로운 동작 집합을 정의합니다. 이 활동 루틴 모두는 위짓트의 XmNlayoutDirection 에 민감하게 정의되며 적절한 다음 또는 이전 활동을 호출합니다.

Xm CTL 확장은 CSText 확장보다 다소 복잡합니다. Xm CTL 확장은 중립적 고정화를 포함한 의사 XOC에 의한 결정에 따라 위짓트의 전체 방향보다 커서를 둘러싼 물리적 문자의 구체적 방향에 민감합니다.

새로운 자원 이름을 사용하여 rendition 태그를 제공하고 배열을 제어하기 위한 선택 정책을 제어할 수 있습니다.

새로운 Xm CTL 활동 세트는 대략 {Move,Delete,Kill}, {Left,Right}, {Character,Word}의 조합으로 이루어지며 아래에 나열되어 있습니다. 활동 목록은 다음 표에 나와 있습니다.

표 6–2 Xm CTL의 새로운 자원

이름 

클래스/유형 

액세스 

기본값 

XmNrenditionTag

XmCRenditionTag/XmRString

CSG 

XmFONTLIST_DEFAULT_TAG

XmNalignment

XmCAlignment/XmRAlignment

CSG 

XmALIGNMENT_BEGINNING

XmNeditPolicy

XmCEditPolicy/XmREditPolicy

CSG 

XmEDIT_LOGICAL

XmNrendition 태그

위짓트에 대하여 사용되는, XmNrenderTable 자원에 있는 XmRendition의 rendition 태그를 지정합니다.

XmNalignment

위짓트에서 사용되는 텍스트 배열을 지정합니다. XmALIGNMENT_ENDXmALIGNMENT_CENTER만 지원됩니다.

XmNeditPolicy

위짓트, XmEDIT_LOGICAL 또는 XmEDIT_VISUAL에 대하여 사용되는 편집 정책을 지정합니다. XmEDIT_VISUAL의 경우에는 선택, 커서 이동 및 삭제가 시각적 스타일로 표시됩니다. 자원을 설정하면 표준 키보드 이동 및 삭제 이벤트에 대한 번역도 새 “시각적” 활동 목록이나 기존 논리적 활동으로 변경됩니다.

문자 방향 활동 루틴

forward-cell()backward-cell() 활동은 지정된 방향의 문자 방향을 질의합니다. 방향이 왼쪽에서 오른쪽 방향이면 해당하는 next-/forward- 또는 previous-/backward- 변수를 호출합니다.

문자 방향 추가 동작

이 동작은 중첩 수준에 대하여 레이아웃 서비스 변환 OutToInpProperty 버퍼를 사용하여 문자의 방향을 결정합니다. 따라서 위짓트의 동작은 로켈 지향 변환에 따라 달라집니다. OutToInp의 정보 또는 특히, Property 버퍼가 정확하지 않으면 위짓트는 예기치 않은 동작이 일어날 수 있습니다. 아울러, 로켈 지향 모듈이 본 사양의 범위를 벗어나면 양방향 편집 동작은 동일한 텍스트, 응용프로그램, 자원 값 및 LayoutObject 구성의 경우에도 플랫폼에 따라 차이가 있을 수 있습니다.

시각적 모드 활동은 셀 기반 동작의 표시입니다. 논리적 모드 활동은 논리적 문자 기반 동작을 유발할 수 있습니다. 예를 들어, delete-right-character() 작업은 디스플레이 셀에 해당하는 입력 버퍼 문자들을 삭제합니다. 즉, LayoutObject 변환 “속성” 바이트 “새 셀 표시 기호”가 1인 한 개의 입력 버퍼 문자 및 “새 셀 표시 기호”가 0인 뒤따르는 모든 문자입니다.

Property 버퍼에 대한 자세한 정보는 CAE Specificationm_transform_layout() 사양을 참조하십시오.

마찬가지로 backward-character()의 경우 삽입점은 입력 버퍼에서 한 문자 뒤로 이동되며 커서는 관련된 출력 버퍼 문자에 해당하는 시각적 위치로 복귀합니다. 따라서 복합적인 디스플레이 셀을 가로질러 이동하려면 여러 번 키 입력을 해야 함을 의미합니다; 커서는 삽입 지점이 “새로운 셀 표시 기호”가 0인 구별 기호 또는 합자 조각과 같은 입력 버퍼 문자에 걸쳐 이동함에 따라 실제로 표시 위치를 변경하지 않습니다.

이것은 삭제 작업이 논리/입력 버퍼 측이나 물리적/출력측의 디스플레이 셀 수준에서 일어난다는 것을 의미합니다. 입력 및 출력 버퍼 간의 1 대 1 대응이 성립되지 않기 때문에 엄격한 물리적 문자 대 문자 삭제를 위한 모드는 없습니다. 주어진 물리적 문자는 예를 들어 논리적 문자의 한 단편만을 나타낼 수 있습니다.

XmText 활동 루틴

다음 목록은 XmText 활동 루틴을 설명합니다.

left-character(extend)

XmNeditPolicyXmEDIT_LOGICAL이고 인자가 없이 호출되면 삽입 커서가 논리적으로 한 문자 뒤로 이동합니다. 삽입 커서가 줄의 시작 부분에 있으면 삽입 커서는 이전 줄의 논리적인 마지막 문자로 이동합니다. 그렇지 않으면 삽입 커서 위치는 변경되지 않습니다.

XmNeditPolicyXmEDIT_VISUAL이면 커서는 커서 위치의 왼쪽으로 이동합니다. 삽입 커서가 줄의 시작 부분에 있으면 삽입 커서는 이전 줄의 끝 문자로 이동합니다.

left-character()가 extend 인자와 함께 호출되면 삽입 커서는 인자가 없는 경우처럼 이동하고 현재 선택을 확장합니다.

left-character() 활동은 합리적인 값 XmCR_MOVING_INSERT_CURSOR을 가진 XmNmotionVerifyCallback 프로시저에 대한 호출을 생성합니다. extend 인자를 통해 호출되면 XmNgainPrimaryCallback 프로시저에 대한 호출을 생성할 수 있습니다. 자세한 정보는 Motif Programmer's Reference의 콜백 설명을 참조하십시오.

right-character(extend)

XmNeditPolicyXmEDIT_LOGICAL이고 아무런 인자가 없이 호출되면 삽입 커서가 논리적으로 한 문자 앞으로 이동합니다. 삽입 커서가 줄의 논리적인 끝 부분에 있으면 삽입 커서는 다음 줄의 논리적인 시작 부분으로 이동합니다.

XmNeditPolicyXmEDIT_VISUAL이면 커서는 커서 위치의 오른쪽으로 이동합니다. 삽입 커서가 줄의 끝 부분에 있으면 삽입 커서는 다음 줄의 시작 부분으로 이동합니다.

extend의 인자를 통해 호출되면 XmNeditPolicy는 인자가 없는 경우와 마찬가지로 삽입 커서를 이동시키고 현재의 선택을 확장합니다.

right-character() 활동은 합리적인 값 XmCR_MOVING_INSERT_CURSOR를 가진 XmNmotionVerifyCallback 프로시저에 대한 호출을 생성합니다. extend 인자를 통해 호출되면 이 활동은 XmNgainPrimaryCallback 프로시저에 대한 호출을 생성할 수 있습니다. 자세한 정보는 Motif Programmer's Reference의 콜백 설명을 참조하십시오.

right-word(extend)

XmNeditPolicyXmEDIT_LOGICAL이고 인자 없이 호출되면 삽입 커서가 논리적인 연속된 문자(있을 경우)의 논리적 시작 문자로 이동합니다. 그렇지 않으면 기존 단어의 논리적 끝 부분으로 이동시킵니다. 삽입 커서가 줄의 논리적인 끝 부분이나 줄의 논리적인 마지막 단어에 있으면 해당 커서를 다음 줄의 논리적인 첫 번째 단어로 이동시킵니다. 그렇지 않으면 기존 단어의 논리적 끝 부분으로 이동시킵니다.

XmNeditPolicyXmEDIT_VISUAL이고 인자가 없이 호출되면 삽입 커서를 줄 끝의 오른쪽 또는 뒤에 있는 첫 번째 흰 색 공백 문자 뒤 비 흰색 공백 문자로 이동시킵니다.

extend의 인자를 통해 호출되면 인자가 없는 경우와 마찬가지로 삽입 커서를 이동시키고 현재의 선택을 확장합니다.

left-word() 활동은 합리적인 값 XmCR_MOVING_INSERT_CURSOR을 가진 XmNmotionVerifyCallback 프로시저에 대한 호출을 생성합니다. extend 인자를 통해 호출되면 이 활동은 XmNgainPrimaryCallback 프로시저에 대한 호출을 생성할 수 있습니다. 자세한 정보는 Motif Programmer's Reference의 콜백 설명을 참조하십시오.

delete-left-character()

XmNeditPolicyXmEDIT_LOGICAL이면 delete-previous-char()에 상응합니다. XmNeditPolicyXmEDIT_VISUAL이면 정상 모드에서 널이 아닌 선택이 있는 경우 해당 선택을 삭제합니다. 그렇지 않으면 삽입 커서의 남은 문자를 삭제합니다. 추가 모드에서 널이 아닌 선택이 있으면 커서는 선택에서 사라지지 않고 XmNpendingDelete가 참으로 설정되며 해당 선택을 삭제합니다. 그렇지 않으면 선택에 영향을 미칠 수 있는 삽입 커서의 왼쪽 문자를 삭제합니다.

delete-left-character() 활동은 합리적인 값 XmCR_MODIFYING_TEXT_VALUE을 가진 XmNmodifyVerifyCallback 프로시저 및 합리적인 값 XmCR_VALUE_CHANGED을 가진 XmNvalueChangedCallback 프로시저에 대한 호출을 생성합니다.

delete-right-character()

XmNeditPolicyXmEDIT_VISUAL이면 delete-next-character()에 상응합니다. XmNeditPolicyXmEDIT_VISUAL이면 정상 모드에서 널이 아닌 선택이 있는 경우 해당 선택을 삭제합니다. 그렇지 않으면 삽입 커서의 오른쪽 문자를 삭제합니다. 추가 모드에서 널이 아닌 선택이 있으면 커서는 선택에서 사라지지 않고 XmNpendingDelete가 참으로 설정되며 해당 선택을 삭제합니다. 그렇지 않으면 삽입 커서의 오른쪽 문자를 삭제합니다. 이 활동은 선택에 영향을 미칠 수 있습니다.

delete-left-character() 활동은 합리적인 값 XmCR_MODIFYING_TEXT_VALUE을 가진 XmNmodifyVerify-Callback 프로시저 및 합리적인 값 XmCR_VALUE_CHANGED을 가진 XmNvalue-ChangedCallback 프로시저에 대한 호출을 생성합니다.

문자 구성, 묶음 기호 및 분음 부호를 지원하기 위해 일부 셀 기반 루틴이 구축됩니다. 다시 말해, 두 개 이상의 문자가 단일 표시 셀을 점유하는 도형 문자로 표현됩니다.

XmText 셀 활동 루틴은 다음 목록에서 설명합니다.

backward-cell(extend)

삽입 커서를 한 셀 뒤로 이동합니다. XmNeditPolicy XmEDIT_LOGICAL이면 삽입 커서는 현재의 셀보다 논리적으로 앞선 셀의 시작 부분으로 이동합니다. 그렇지 않으면 현재 셀의 시작 부분으로 이동합니다.

XmNeditPolicyXmEDIT_VISUAL이면 커서는 커서 왼쪽 셀의 시작 부분으로 이동합니다. prev-cell() 활동은 합리적인 값 XmCR_MOVING_INSERT_CURSOR을 가진 XmNmotionVerifyCallback 프로시저에 대한 호출을 생성합니다. extend 인자를 통해 호출되면 XmNgainPrimaryCallback 프로시저에 대한 호출을 생성할 수 있습니다. 자세한 정보는 Motif Programmer's Reference의 콜백 설명을 참조하십시오.

forward-cell(extend)

삽입 커서를 논리적인 다음 셀의 시작 부분으로 이동시킵니다. 그렇지 않으면 커서를 셀의 끝 부분으로 이동시킵니다. XmNeditPolicyXmEDIT_LOGICAL이면 커서는 한 셀 앞으로 이동합니다.

XmNeditPolicyXmEDIT_VISUAL이면 커서는 커서 위치 오른쪽의 셀의 시작 위치로 이동하고(있을 경우) 그렇지 않으면 현재 셀의 끝 부분으로 이동합니다. forward-cell() 활동은 합리적인 값 XmCR_MOVING_INSERT_CURSOR을 가진 XmNmotionVerifyCallback 프로시저에 대한 호출을 생성합니다. extend 인자를 통해 호출되면 XmNgainPrimaryCallback 프로시저에 대한 호출을 생성할 수 있습니다. 자세한 정보는 Motif Programmer's Reference의 콜백 설명을 참조하십시오.