GnuSmalltalkUsersGuide:AdditionalChapter1 42

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
BLOX.BText

BLOX.BText

네임스페이스 BLOX에 정의됨

슈퍼클래스: BLOX.BViewport

범주: 그래픽-윈도우


나는 꽤 괜찮은 포맷팅 옵션이 포함된 텍스트 뷰어를 나타낸다.


BLOX.BText 클래스: 접근하기

emacsLike

우리가 현재 Emacs 또는 Motif 키 바인딩을 이용하고 있는지를 응답하라.

emacsLike: aBoolean

우리가 현재 Emacs 또는 Motif 키 바인딩을 이용하는지를 설정하라.


BLOX.BText 클래스: 인스턴스 생성

newReadOnly: parent

읽기만 가능한 새 텍스트 위젯을 응답하라 (읽기만 가능한 상태는 그 상태를 비활성으로 단순히 설정하면 가능하다).


BLOX.BText: 접근하기

backgroundColor

위젯에 대한 backgroundColor 옵션의 값을 응답하라.

위젯을 표시할 때 사용할 일반 배경색을 명시한다.

backgroundColor: value

위젯에 대한 backgroundColor 옵션의 값을 설정하라.

위젯을 표시할 때 사용할 일반 배경색을 명시한다.

callback

수신자를 수정하면 전송되는 DirectedMessage를 응답하고, 준비된 내용이 없을 경우 nil을 응답하라.

callback: aReceiver message: aSymbol

수신자를 수정하면 aReceiver에 aSymbol 메시지(0-인자 또는 1-인자 선택자의 이름)가 전송되도록 준비하라. 메서드가 인자를 수락하면 수신자가 전달된다.

contents

위젯의 내용을 리턴하라.

contents: aString

위젯의 내용을 설정하라.

font

위젯에 대한 폰트 옵션의 값을 응답하라.

위젯 내부에서 텍스트를 그릴 때 사용할 폰트를 명시한다. 폰트는 X 폰트명이나 Blox 폰트 설명 문자열로 주어질 수 있다.

X 폰트명은 다수의 필드로서 주어지는데, 각 필드 앞에는 - 표시가 되어 있고, 기본값이 괜찮음을 나타내기 위해 각 -는 *로 대체될 수 있다: foundry, family, weight, slant, setwidth, addstyle, pixel size, point size (관습에 따라 픽셀 크기와 동일), horizontal resolution, vertical resolution, spacing, width, charset, character encoding.

Blox 폰트 설명 문자열은 3개의 필드로 구성되는데, 각 필드는 공백(space)으로 구분되어야 하나 첫 번째 공백만 의무적이다: 글꼴 집합(font family), 폰트의 포인트 크기 (음수값이 제공될 경우 픽셀로), 공백으로 구분된 스타일 수(유효한 스타일로는 보통, 굵게, 이탤릭체, 밑줄, 오버스트라이크가 있다). 유효한 폰트의 예로, "Helvetica 10 Bold", "Times -14", "Futura Bold Underline"가 있다. 두 개 이상의 단어로 이루어진 경우 글꼴 집합을 괄호로 닫아야 한다.

font: value

위젯에 대한 폰트 옵션의 값을 설정하라.

위젯 내부에서 텍스트를 그릴 때 사용할 폰트를 명시한다. 폰트는 X 폰트명이나 Blox 폰트 설명 문자열로 주어질 수 있다.

X 폰트명은 다수의 필드로서 주어지는데, 각 필드 앞에는 - 표시가 되어 있고, 기본값이 괜찮음을 나타내기 위해 각 -는 *로 대체될 수 있다: foundry, family, weight, slant, setwidth, addstyle, pixel size, point size (관습에 따라 픽셀 크기와 동일), horizontal resolution, vertical resolution, spacing, width, charset, character encoding.

Blox 폰트 설명 문자열은 3개의 필드로 구성되는데, 각 필드는 공백(space)으로 구분되어야 하나 첫 번째 공백만 의무적이다: 글꼴 집합(font family), 폰트의 포인트 크기 (음수값이 제공될 경우 픽셀로), 공백으로 구분된 스타일 수(유효한 스타일로는 보통, 굵게, 이탤릭체, 밑줄, 오버스트라이크가 있다). 유효한 폰트의 예로, "Helvetica 10 Bold", "Times -14", "Futura Bold Underline"가 있다. 두 개 이상의 단어로 이루어진 경우 글꼴 집합을 괄호로 닫아야 한다.

foregroundColor

위젯에 대한 foregroundColor 옵션의 값을 응답하라.

위젯을 표시할 때 사용할 일반 전경색을 명시한다.

foregroundColor: value

위젯에 대한 foregroundColor 옵션의 값을 설정하라.

위젯을 표시할 때 사용할 일반 전경색을 명시한다.

getSelection

위젯이 선택내용을 갖고 있지 않은 경우 빈 문자열을 응답하고, 그 외의 경우 현재 선택된 텍스트를 응답하라.

selectBackground

위젯에 대한 selectBackground 옵션의 값을 응답하라.

위젯의 선택된 부분을 표시할 때 사용할 배경색을 명시한다.

selectBackground: value

위젯에 대한 selectBackground 옵션의 값을 설정하라.

위젯의 선택된 부분을 표시할 때 사용할 배경색을 명시한다.

selectForeground

위젯에 대한 selectForeground 옵션의 값을 응답하라.

위젯의 선택된 부분을 표시할 때 사용할 전경색을 명시한다.

selectForeground: value

위젯에 대한 selectForeground 옵션의 값을 설정하라.

위젯의 선택된 부분을 표시할 때 사용할 전경색을 명시한다.

wrap

위젯에 대한 wrap 옵션의 값을 응답하라.

텍스트에서 텍스트 창의 단일행에 표시하기에 너무 긴 행을 어떻게 처리할 것인지 명시한다. 값은 #none, #char, #word 중 하나가 가능하다. Wrap의 none 모드는 텍스트 각 행이 화면의 한 행과 정확히 똑같이 표시됨을 의미한다; 화면에 차지 않는 추가 문자는 표시되지 않는다. 다른 모드에서 각 텍스트 행은 필요 시 모든 문자를 표시할 수 있도록 여러 개의 화면 행(screen line)으로 나누어질 것이다. Char 모드에서는 어떤 문자 뒤에서든 화면 행 바꿈이 따라올 수 있다; word 모드에서는 단어를 기준으로 하여 행 바꿈이 이루어진다.

wrap: value

위젯에 대한 wrap 옵션의 값을 설정하라.

텍스트에서 텍스트 창의 단일행에 표시하기에 너무 긴 행을 어떻게 처리할 것인지 명시한다. 값은 #none, #char, #word 중 하나가 가능하다. Wrap의 none 모드는 텍스트 각 행이 화면의 한 행과 정확히 똑같이 표시됨을 의미한다; 화면에 차지 않는 추가 문자는 표시되지 않는다. 다른 모드에서 각 텍스트 행은 필요 시 모든 문자를 표시할 수 있도록 여러 개의 화면 행(screen line)으로 나누어질 것이다. Char 모드에서는 어떤 문자 뒤에서든 화면 행 바꿈이 따라올 수 있다; word 모드에서는 단어를 기준으로 하여 행 바꿈이 이루어진다.


BLOX.BText: 속성

insertAtEnd: aString attribute: attr

선택내용을 제거하고 위젯의 끝에 aString을 붙여라. 주어진 속성을 텍스트의 포맷팅에 이용하라.

insertText: aString attribute: attr

현재 삽입 지점에서 위젯 내 aString을 삽입하고 현재 선택된 텍스트(가 있을 경우)를 대체하라. 주어진 속성을 텍스트의 포맷팅에 이용하라.

removeAttributes

위젯 내 텍스트로부터 포맷팅 유형은 모두 제거하라.

removeAttributesFrom: aPoint to: endPoint

주어진 끝점 사이에 있는 위젯 내 텍스트로부터 포맷팅 유형은 모두 제거하라. 두 개의 끝점은 두 좌표 모두 1부터 시작되는 Point 객체들이다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.

setAttributes: attr from: aPoint to: endPoint

attr에 의해 주어진 포맷팅을 주어진 끝점 사이의 위젯 내 텍스트로 추가하라. 두 개의 끝점은 두 좌표 모두 1부터 시작되는 Point 객체들이다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.


BLOX.BText: 기하도형 관리

child: child height: value

주어진 자식의 높이를 'value' 픽셀이 되도록 설정하라.

child: child heightOffset: value

주어진 자식의 높이를 'value' 픽셀만큼 더 주어지도록 조정하라.

child: child width: value

주어진 자식의 너비를 'value' 픽셀이 되도록 설정하라.

child: child widthOffset: value

주어진 자식의 너비를 'value' 픽셀만큼 더 주어지도록 조정하라.

child: child x: value

절대 실패하지 않고 아무 일도 하지 않는다. 자식들은 각 자식이 위젯으로 추가될 당시 텍스트가 끝났던 곳에 남는다.

child: child xOffset: value

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.

child: child y: value

절대 실패하지 않고 아무 일도 하지 않는다. 자식들은 각 자식이 위젯으로 추가될 당시 텍스트가 끝났던 곳에 남는다.

child: child yOffset: value

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.

heightChild: child

주어진 자식의 높이를 픽셀로 응답하라.

widthChild: child

주어진 자식의 너비를 픽셀로 응답하라.

xChild: child

주어진 자식의 상단 좌측 모서리의 x 좌표를 응답하라. 자식들은 사실상 텍스트 위젯을 스크롤 할 때 이동하므로 우리는 항상 0을 응답한다.

yChild: child

주어진 자식의 상단 좌측 모서리의 y 좌표를 응답하라. 자식들은 사실상 텍스트 위젯을 스크롤 할 때 이동하므로 우리는 항상 0을 응답한다.


BLOX.BText: 이미지

insertImage: anObject

현재 위젯에 삽입점이 위치한 곳에 이미지를 삽입하라. anObject는 이미지 데이터(Base-64 encoded GIF 데이터, XPM 데이터 또는 PPM 데이터)를 포함하는 String이거나, #registerImage: 로 이미지를 등록한 결과일 수 있다.

insertImage: anObject at: position

위젯 내 주어진 위치에 이미지를 삽입하라. 위치는 두 좌표 모두 1부터 시작되는 Point 객체이다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다. anObject는 이미지 데이터(Base-64 encoded GIF 데이터, XPM 데이터 또는 PPM 데이터)를 포함하는 String이거나, #registerImage: 로 이미지를 등록한 결과일 수 있다.

insertImageAtEnd: anObject

위젯 텍스트의 끝에 이미지를 삽입하라. anObject는 이미지 데이터(Base-64 encoded GIF 데이터, XPM 데이터 또는 PPM 데이터)를 포함하는 String이거나, #registerImage: 로 이미지를 등록한 결과일 수 있다.

registerImage: anObject

위젯에 사용될 이미지를 등록하라 (데이터는 anObject에 포함되어 있고, Base-64 encoded GIF 데이터, XPM 데이터, 또는 PPM 데이터를 포함하는 String). 같은 이미지가 여러 번 사용되어야 하는 경우 한 번만 등록한 후 이미지 삽임 메서드로 #registerImage: 의 결과를 전달하는 편이 낫다. 등록된 이미지는 각 BText 위젯마다 private하다. 위젯으로 이미지를 등록하여 다른 위젯으로 사용하는 경우 예상치 못한 결과를 야기할 수 있다.


BLOX.BText: 텍스트 삽입하기

insertAtEnd: aString

선택내용을 제거하고 위젯의 끝에 aString을 붙여라.

insertSelectedText: aString

위젯에서 aString을 현재 삽입점에 삽입하여 현재 선택된 텍스트(가 있을 경우)는 제자리에 남겨두고 텍스트를 선택하라.

insertText: aString

위젯에서 aString을 현재 삽입 지점에 삽입하고 현재 선택된 텍스트(가 있을 경우)를 대체하라.

insertText: aString at: position

위젯에서 aString을 현재 주어진 위치에 삽입하고, 현재 선택된 텍스트(가 있을 경우)를 대체하라. 위치는 두 좌표 모두 1부터 시작되는 Point 객체이다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.

insertTextSelection: aString

위젯에서 aString을 현재 선택내용 다음에 삽입하고, 현재 선택된 텍스트(가 있을 경우)는 손대지 않고 그대로 남겨두어라.

invokeCallback

종합적 콜백(synthetic callback)을 생성하라..

nextPut: aCharacter

선택내용을 제거하고 위젯의 끝에 aCharacter를 붙여라.

nextPutAll: aString

선택내용을 제거하고 위젯의 끝에 aString을 붙여라.

nl

선택내용을 제거하고 위젯의 끝에 linefeed 문자를 붙여라.

refuseTabs

Tab 문자를 위젯에 삽입하는 대신 부모 창에서 위젯을 가로지르도록(traverse) 배열하라.

replaceSelection: aString

현재 삽입 지점에서 위젯 내 aString을 삽입하고 현재 선택된 텍스트(가 있을 경우)를 대체하여 선택된 텍스트를 남겨두라.

searchString: aString

위젯에서 aString을 검색하라. 찾을 수 없는 경우 0을 응답하고, 그 외의 경우 0부터 시작하는 행 번호를 응답하며, 문자열이 발견된 장소로 삽입점을 이동시켜라.

space

선택내용을 제거하고 위젯 끝에 공백(space)을 붙여라.


BLOX.BText: 위치 & 행

charsInLine: number

number 번째 행에 포함된 문자 수를 응답하라.

currentColumn

현재 삽입점이 위치한 곳을 1부터 시작하는 열 번호로 응답하라.

currentLine

현재 삽입점이 위치한 곳을 1부터 시작하는 행 번호로 응답하라.

currentPosition

현재 삽입점이 위치한 곳을 나타내는 Point를 응답하라. 응답의 두 좌표는 모두 1부터 시작된다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.

currentPosition: aPoint

삽입점을 aPoint에 의해 주어진 위치로 이동시켜라. aPoint 내 두 좌표는 1부터 시작되는 것으로 해석한다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.

gotoLine: line end: aBoolean

aBoolean이 true인 경우, line 번째 행의 마지막 문자로 삽입점을 이동시켜라 (1은 위젯에서 첫 행을 의미); Boolean이 false인 경우 line번째 행의 시작점로 이동시켜라.

indexAt: point

제공된 Point 객체에 의해 텍스트의 창에 좌표가 주어지는 픽셀을 가리는 문자의 위치를 응답하라.

lineAt: number

위젯 내 텍스트의 number 번째 행을 응답하라.

numberOfLines

위젯 내 행의 수를 응답하라.

====selectFrom: first to: last

주어진 끝점 사이의 텍스트를 선택하라. 두 끝점은 위치는 두 좌표 모두 1부터 시작되는 Point 객체들이다: 첫 행은 line 1이고, 첫 행에서 첫 문자는 character 1이다.

setToEnd

삽입점을 위젯 끝으로 이동시켜라.


Notes