GnuSmalltalkUsersGuide:AdditionalChapter1 25

From 흡혈양파의 번역工房
Revision as of 12:08, 28 January 2014 by Onionmixer (talk | contribs) (GSUG BLOX.BList 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
BLOX.BList

BLOX.BList

네임스페이스 BLOX에 정의됨

슈퍼클래스: BLOX.BViewport

범주: 그래픽-윈도우


나는 하나 또는 이상의 요소를 선택할 수 있는 리스트 박스를 표현한다.


BLOX.BList: 접근하기

add: anObject afterIndex: index

주어진 값으로 된 요소를 색인 매개변수에 색인이 포함된 요소 다음에 추가하라. 위젯에 표시되는 라벨은 anObject의 displayString이다. anObject를 응답하라.

add: aString element: anObject afterIndex: index

aString 라벨로 된 요소를 색인 매개변수에 색인이 포함된 요소 다음에 추가하라. 이 메서드는 위젯이 표시할 라벨을 클라이언트가 자발적으로 선택하도록 해준다. anObject가 nil인 경우 문자열이 요소로서도 사용된다. aString이 nil인 경우 요소의 displayString이 라벨로 사용된다. anObject를 응답하고, nil인 경우 aString을 응답하라.

addLast: anObject

주어진 값으로 된 요소를 리스트박스 끝에 추가하라. 위젯에 표시되는 라벨은 anObject의 displayString이다. anObject를 응답하라.

addLast: aString element: anObject

주어진 값으로 된 요소를 리스트박스 끝에 추가하라. 이 메서드는 위젯이 표시할 라벨을 클라이언트가 자발적으로 선택하도록 해준다. anObject가 nil인 경우 문자열이 요소로서도 사용된다. aString이 nil인 경우 요소의 displayString이 라벨로 사용된다. anObject를 응답하고, nil인 경우 aString을 응답하라.

associationAt: anIndex

리스트박스 내 주어진 위치에 있는 항목을 키로 갖고, 그 항목을 표시하는 데 사용된 라벨을 값으로 가진 연관을 응답하라.

at: anIndex

리스트 박스 내 주어진 위치에 표시된 요소를 응답하라.

backgroundColor

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

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

backgroundColor: value

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

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

contents: elementList

리스트박스에 표시되는 요소를 설정하고, 라벨이 그들의 displayStrings가 되도록 설정하라.

contents: stringCollection elements: elementList

리스트박스에 표시되는 요소가 elementList의 요소들이 되도록 설정하고, 라벨은 stringCollection 내에서 그에 해당하는 요소가 되도록 설정하라. 두 개의 컬렉션은 크기가 같아야 한다.

do: aBlock

리스트박스의 각 요소마다 반복(iterate over)하여 이를 aBlock으로 전달하라.

elements

리스트 박스에 의해 표시되는 요소를 나타내는 객체의 컬렉션을 응답하라.

elements: elementList

리스트박스에 표시되는 요소를 설정하고, 라벨이 그들의 displayStrings가 되도록 설정하라.

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 옵션의 값을 설정하라.

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

highlightBackground

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

선택된 항목을 위젯에 표시할 때 사용할 배경색을 명시한다.

highlightBackground: value

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

선택된 항목을 위젯에 표시할 때 사용할 배경색을 명시한다.

highlightForeground

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

선택된 항목을 위젯에 표시할 때 사용할 전경색을 명시한다.

highlightForeground: value

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

선택된 항목을 위젯에 표시할 때 사용할 전경색을 명시한다.

index

위젯에 대한 색인 옵션의 값을 응답하라. 위치 커서를 가진 요소를 나타낸다. 이 항목은 highlightForeground 색상과 그에 해당하는 배경색으로 표시될 것이다.

indexAt: point

x와 y(픽셀 좌표)에 의해 명시된 리스트박스 창에서 포인트를 가린(cover) 요소의 색인을 응답하라. 어떤 요소도 해당 포인트를 가리지 않는 경우 해당 포인트에 가장 가까운 요소가 사용된다.

isSelected: index

색인에 의해 표시되는 요소가 현재 선택되었는지 응답하라.

label

Gtk+ 를 지원하기 위해 존재하므로 nil을 리턴하라.

label: aString

Gtk+ 를 지원하기 위해 존재하므로 아무 일도 하지 말라.

labelAt: anIndex

리스트 박스 내 주어진 위치에 표시된 라벨을 응답하라.

labels

리스트 박스에 표시된 라벨을 응답하라.

labelsDo: aBlock

각 리스트박스 요소의 라벨을 반복(iterate over)하여 aBlock으로 전달하라.

mode

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

선택내용을 조작할 수 있는 여러 스타일 중 하나를 명시한다. 옵션은 single, browse, multiple, extended 중 하나를 선택할 수 있다.

선택 모드가 single 또는 browse인 경우 리스트박스에서 기껏해야 한 번에 하나의 요소만 선택할 수 있다. 선택되지 않은 요소에서 버튼 1을 클릭하면 그것만 선택하고 다른 선택된 항목이 선택해제되지만, 선택된 항목을 클릭하면 아무 효과도 없다. Browse 모드에서는 버튼 1을 이용해 선택내용을 드래그하는 것도 가능하다. 즉, 버튼 1을 누른 상태에서 마우스를 이동시키면 항목을 선택된 커서 아래에 계속 놔둔다.

커서 모드가 multiple 또는 extended인 경우, 연속되지 않은 범위를 포함해 어떤 수의 요소든 한 번에 선택이 가능하다. multiple 모드에서 요소 위에서 버튼 1을 클릭하면 다른 요소들에게 영향을 미치지 않고 선택내용의 상태를 토글한다. Extended 모드에서는 요소 위에서 버튼 1을 누를 경우 다른 모든 요소를 선택해제하고, 앵커를 마우스 아래의 요소로 설정한다; 버튼 1을 누른 채 아래로 드래그하면 선택내용이 확장되어 앵커부터 마우스 아래 요소까지 모든 요소를 포함한다.

extended 모드에서는 Shift 키를 누른 채 버튼 1을 눌러 선택된 범위를 조정할 수 있다. 이는 선택범위가 앵커부터 마우스 아래의 요소까지 요소로 구성되도록 수정한다. 새 선택범위에서 앵커되지 않은 끝도 버튼을 누른 채 아래로 드래그할 수 있다. extended 모드에서도 Control 키와 버튼 1을 함께 누르면 토글 연산이 시작된다: 앵커는 마우스 아래의 요소로 설정되고, 그 선택범위 상태는 역전된다. 다른 요소들의 선택범위 상태는 변경되지 않는다. 버튼 1을 누른 채 마우스를 드래그하면 앵커부터 마우스 아래 요소까지 모든 요소의 선택범위 상태는 앵커 요소의 상태와 일치하도록 설정된다; 다른 모든 요소의 선택범위 상태는 토글 연산이 시작되기 이전 상태 그대로 남는다.

대부분 사람들은 단일 선택 시 browse 모드를, 다중 선택에 extended 모드를 사용하길 원할 것이다; 나머지 모드는 특수한 상황에만 유용해 보인다.

mode: value

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

선택내용을 조작할 수 있는 여러 스타일 중 하나를 명시한다. 옵션은 single, browse, multiple, extended 중 하나를 선택할 수 있다.

선택 모드가 single 또는 browse인 경우 리스트박스에서 기껏해야 한 번에 하나의 요소만 선택할 수 있다. 선택되지 않은 요소에서 버튼 1을 클릭하면 그것만 선택하고 다른 선택된 항목이 선택해제되지만, 선택된 항목을 클릭하면 아무 효과도 없다. Browse 모드에서는 버튼 1을 이용해 선택내용을 드래그하는 것도 가능하다. 즉, 버튼 1을 누른 상태에서 마우스를 이동시키면 항목을 선택된 커서 아래에 계속 놔둔다.

커서 모드가 multiple 또는 extended인 경우, 연속되지 않은 범위를 포함해 어떤 수의 요소든 한 번에 선택이 가능하다. multiple 모드에서 요소 위에서 버튼 1을 클릭하면 다른 요소들에게 영향을 미치지 않고 선택내용의 상태를 토글한다. Extended 모드에서는 요소 위에서 버튼 1을 누를 경우 다른 모든 요소를 선택해제하고, 앵커를 마우스 아래의 요소로 설정한다; 버튼 1을 누른 채 아래로 드래그하면 선택내용이 확장되어 앵커부터 마우스 아래 요소까지 모든 요소를 포함한다.

extended 모드에서는 Shift 키를 누른 채 버튼 1을 눌러 선택된 범위를 조정할 수 있다. 이는 선택범위가 앵커부터 마우스 아래의 요소까지 요소로 구성되도록 수정한다. 새 선택범위에서 앵커되지 않은 끝도 버튼을 누른 채 아래로 드래그할 수 있다. extended 모드에서도 Control 키와 버튼 1을 함께 누르면 토글 연산이 시작된다: 앵커는 마우스 아래의 요소로 설정되고, 그 선택범위 상태는 역전된다. 다른 요소들의 선택범위 상태는 변경되지 않는다. 버튼 1을 누른 채 마우스를 드래그하면 앵커부터 마우스 아래 요소까지 모든 요소의 선택범위 상태는 앵커 요소의 상태와 일치하도록 설정된다; 다른 모든 요소의 선택범위 상태는 토글 연산이 시작되기 이전 상태 그대로 남는다.

대부분 사람들은 단일 선택 시 browse 모드를, 다중 선택에 extended 모드를 사용하길 원할 것이다; 나머지 모드는 특수한 상황에만 유용해 보인다.

numberOfStrings

리스트 박스 내 항목 수를 응답하라.

would

removeAtIndex: index

리스트 박스 내 주어진 색인에 있는 항목을 제거하고, 그 요소에 연관된 객체를 응답하라 (예: #at: 가 주어진 색인에 대해 리턴할만한 값).

size

리스트 박스 내 항목 수를 응답하라.


BLOX.BList: 위젯 프로토콜

callback

수신자 내 활성 항목이 변경될 때 전송되는 DirectedMessage 를 응답하고, 준비된 내용이 없을 경우 nil을 응답하라.

callback: aReceiver message: aSymbol

수신자 내의 활성 항목이 변경되면 aReceiver에 aSymbol 메시지(최대 2개 인자를 가진 선택자의 이름)가 전송되도록 준비하라. 메서드가 두 개의 인자를 수락하면 수신자가 첫 번째 매개변수로서 전달된다.

메서드가 하나 또는 두 개의 인자를 수락하면, 선택된 색인이 마지막 매개변수로서 전달된다.

highlight: index

리스트박스 내 주어진 위치에 있는 항목을 강조하라.

invokeCallback

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

select: index

리스트박스 내 주어진 위치에 있는 항목을 강조하되 나머지 항목들은 강조해제(unhighlight)하지 말라. 이는 multiple 또는 extended 모드의 리스트박스를 위한 것이지만 특수 사례에서는 다른 선택 모드에서 사용할 수도 있다.

show: index

리스트박스 내 주어진 위치에 있는 항목이 눈에 보이도록 확보하라.

unhighlight

리스트박스 내 모든 항목을 강조해제하라.

unselect: index

다른 항목들의 상태에 영향을 미치지 않고 리스트박스 내 주어진 위치에 있는 항목을 강조해제하라.


Notes