<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3AAdditionalChapter1_12</id>
	<title>GnuSmalltalkUsersGuide:AdditionalChapter1 12 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3AAdditionalChapter1_12"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter1_12&amp;action=history"/>
	<updated>2026-05-01T14:19:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter1_12&amp;diff=4221&amp;oldid=prev</id>
		<title>Onionmixer: GSUG BLOX.BDropDown 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter1_12&amp;diff=4221&amp;oldid=prev"/>
		<updated>2014-01-28T11:36:55Z</updated>

		<summary type="html">&lt;p&gt;GSUG BLOX.BDropDown 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;BLOX.BDropDown&lt;br /&gt;
&lt;br /&gt;
==BLOX.BDropDown==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네임스페이스 BLOX에 정의됨&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;슈퍼클래스: BLOX.BExtended&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 그래픽-예제&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:이 클래스는 사전 정의된 목록에서 항목을 고를 수 있는 기능을 제공하는, 위젯에 대한 추상적 슈퍼클래스이다. 목록은 주로 숨겨져 있지만 위젯의 우측에 있는 버튼을 누르면 목록이 팝업된다. 따라서 해당 위젯은 세 가지 부분으로 구성된다: 명시되지 않은 텍스트 위젯 (버튼 좌측에 항상 표시됨), 버튼 위젯 (우측에 아래 화살표로 항상 표시됨), 팝업 리스트 위젯으로 구성된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===BLOX.BDropDown: 접근하기===&lt;br /&gt;
&lt;br /&gt;
====backgroundColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 backgroundColor 값을 응답하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다.&lt;br /&gt;
&lt;br /&gt;
위젯을 표시할 때 사용할 일반 배경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====backgroundColor: aColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 backgroundColor 값을 설정하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다.&lt;br /&gt;
&lt;br /&gt;
위젯을 표시할 때 사용할 일반 배경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====droppedRows====&lt;br /&gt;
&lt;br /&gt;
리스트박스에서 항상 표시되는 항목 수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====droppedRows: anInteger====&lt;br /&gt;
&lt;br /&gt;
리스트박스에서 항상 표시되는 항목 수를 설정하라.&lt;br /&gt;
&lt;br /&gt;
====font====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 폰트 옵션 값을 설정하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다. 위젯 내부에서 텍스트를 그릴 때 사용할 폰트를 명시한다. 폰트는 X 폰트명이나 Blox 폰트 설명 문자열로 주어질 수 있다. X 폰트명은 다수의 필드로서 주어지는데, 각 필드 앞에는 - 표시가 되어 있고, 기본값이 괜찮음을 나타내기 위해 각 -는 *로 대체될 수 있다: foundry, family, weight, slant, setwidth, addstyle, pixel size, point size (관습에 따라 픽셀 크기와 동일), horizontal resolution, vertical resolution, spacing, width, charset, character encoding.&lt;br /&gt;
&lt;br /&gt;
Blox 폰트 설명 문자열은 3개의 필드로 구성되는데, 각 필드는 공백(space)으로 구분되어야 하나 첫 번째 공백만 의무적이다: 글꼴 집합(font family), 폰트의 포인트 크기 (음수값이 제공될 경우 픽셀로), 공백으로 구분된 스타일 수(유효한 스타일로는 보통, 굵게, 이탤릭체, 밑줄, 오버스트라이크가 있다). 유효한 폰트의 예로, &amp;quot;Helvetica 10 Bold&amp;quot;, &amp;quot;Times -14&amp;quot;, &amp;quot;Futura Bold Underline&amp;quot;가 있다. 두 개 이상의 단어로 이루어진 경우 글꼴 집합을 괄호로 닫아야 한다.&lt;br /&gt;
&lt;br /&gt;
====font: value====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 폰트 옵션 값을 설정하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다.&lt;br /&gt;
위젯 내부에서 텍스트를 그릴 때 사용할 폰트를 명시한다. 폰트는 X 폰트명이나 Blox 폰트 설명 문자열로 주어질 수 있다.&lt;br /&gt;
&lt;br /&gt;
X 폰트명은 다수의 필드로서 주어지는데, 각 필드 앞에는 - 표시가 되어 있고, 기본값이 괜찮음을 나타내기 위해 각 -는 *로 대체될 수 있다: foundry, family, weight, slant, setwidth, addstyle, pixel size, point size (관습에 따라 픽셀 크기와 동일), horizontal resolution, vertical resolution, spacing, width, charset, character encoding.&lt;br /&gt;
&lt;br /&gt;
Blox 폰트 설명 문자열은 3개의 필드로 구성되는데, 각 필드는 공백(space)으로 구분되어야 하나 첫 번째 공백만 의무적이다: 글꼴 집합(font family), 폰트의 포인트 크기 (음수값이 제공될 경우 픽셀로), 공백으로 구분된 스타일 수(유효한 스타일로는 보통, 굵게, 이탤릭체, 밑줄, 오버스트라이크가 있다). 유효한 폰트의 예로, &amp;quot;Helvetica 10 Bold&amp;quot;, &amp;quot;Times -14&amp;quot;, &amp;quot;Futura Bold Underline&amp;quot;가 있다. 두 개 이상의 단어로 이루어진 경우 글꼴 집합을 괄호로 닫아야 한다.&lt;br /&gt;
&lt;br /&gt;
====foregroundColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 foregroundColor의 값을 응답하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다. &lt;br /&gt;
&lt;br /&gt;
위젯을 표시할 때 사용할 일반 전경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====foregroundColor: aColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 foregroundColor의 값을 설정하되, 이 클래스에서는 리스트 위젯(즉, 팝업 위젯)에 대해서만 설정된다. 서브클래스는 이 메서드를 오버라이드하여 색상이 텍스트 위젯에 적절하게 설정되도록 해야 한다. &lt;br /&gt;
&lt;br /&gt;
위젯을 표시할 때 사용할 일반 전경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====highlightBackground====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 highlightBackground 옵션의 값을 응답하라.&lt;br /&gt;
&lt;br /&gt;
선택된 항목을 리스트 위젯에 표시할 때 사용할 배경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====highlightBackground: aColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 highlightBackground 옵션의 값을 설정하라.&lt;br /&gt;
&lt;br /&gt;
선택된 항목을 리스트 위젯에 표시할 때 사용할 배경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====highlightForeground====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 highlightForeground 옵션의 값을 응답하라.&lt;br /&gt;
&lt;br /&gt;
선택된 항목을 리스트 위젯에 표시할 때 사용할 전경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
====highlightForeground: aColor====&lt;br /&gt;
&lt;br /&gt;
위젯에 대한 highlightForeground 옵션의 값을 설정하라.&lt;br /&gt;
&lt;br /&gt;
선택된 항목을 리스트 위젯에 표시할 때 사용할 전경색을 명시한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===BLOX.BDropDown: 콜백===&lt;br /&gt;
&lt;br /&gt;
====callback====&lt;br /&gt;
&lt;br /&gt;
수신자를 클릭할 때 전송되는 DirectedMessage를 응답하고,  준비된 내용이 없을 경우 nil을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====callback: aReceiver message: aSymbol====&lt;br /&gt;
&lt;br /&gt;
수신자를 클릭하면 aReceiver에 aSymbol 메시지(0-인자 또는 1-인자 선택자의 이름)가 전송되도록 준비하라. 메서드가 인자를 수락하면 수신자가 전달된다.&lt;br /&gt;
&lt;br /&gt;
====invokeCallback====&lt;br /&gt;
&lt;br /&gt;
종합적 콜백(synthetic callback)을 생성하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===BLOX.BDropDown: 유연성===&lt;br /&gt;
&lt;br /&gt;
====createList====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;드롭다운 목록&amp;#039;에 사용될 팝업 위젯을 생성하라. 기본적으로 이는 BList지만 다른 어떤 유닛이든 사용 가능하며, 이러한 경우 필요 시 &amp;#039;list box accessing&amp;#039; 메서드를 오버라이드한다.&lt;br /&gt;
&lt;br /&gt;
====createTextWidget====&lt;br /&gt;
&lt;br /&gt;
리스트 박스에서 선택한 문자열을 보유할 위젯을 생성하여 응답하라. 위젯은 &amp;#039;self primitive&amp;#039;의 자식이어야 한다. &lt;br /&gt;
&lt;br /&gt;
====itemHeight====&lt;br /&gt;
&lt;br /&gt;
드롭다운 목록 내 항목의 높이를 응답하라. 기본 구현은 수신자가 #font를 이해한다고 가정하지만 원한다면 수정할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====listCallback====&lt;br /&gt;
&lt;br /&gt;
리스트 박스의 항목을 강조할 때 호출된다. 기본적으로는 아무 일도 하지 않는다.&lt;br /&gt;
&lt;br /&gt;
====listSelectAt: aPoint====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 주어진 위치에 있는 항목을 선택한다. 기본 구현은 리스트가 BList일 것으로 가정하지만 원한다면 수정할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====listText====&lt;br /&gt;
&lt;br /&gt;
리스트 박스에서 현재 선택한 텍스트를 응답하라. 기본 구현은 리스트가 BList일 것으로 가정하지만 원한다면 수정할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====text====&lt;br /&gt;
&lt;br /&gt;
사용자가 위젯에서 선택하고(또는) 컨트롤에서 입력한 텍스트를 응답하라 (이것은 추상 메서드이므로 텍스트가 입력된 방식 그대로 서브클래스에 의해 구축될 것이다).&lt;br /&gt;
&lt;br /&gt;
====text: aString====&lt;br /&gt;
&lt;br /&gt;
텍스트 위젯을 aString으로 설정하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===BLOX.BDropDown: 리스트 박스 접근하기===&lt;br /&gt;
&lt;br /&gt;
====add: anObject afterIndex: index====&lt;br /&gt;
&lt;br /&gt;
주어진 값으로 된 요소를 색인 매개변수에 색인이 포함된 요소 다음에 추가하라. 위젯에 표시된 라벨은 anObject의 displayString이다. anObject를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====add: aString element: anObject afterIndex: index====&lt;br /&gt;
&lt;br /&gt;
aString 라벨로 된 요소를 색인 매개변수에 색인이 포함된 요소 다음에 추가하라. 이 메서드는 위젯이 표시할 라벨을 클라이언트가 자발적으로 선택하도록 해준다. anObject가 nil인 경우 문자열이 요소로서도 사용된다. aString이 nil인 경우 요소의 displayString이 라벨로 사용된다. anObject를 응답하고, nil인 경우 aString을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====addLast: anObject====&lt;br /&gt;
&lt;br /&gt;
주어진 값으로 된 요소를 리스트박스 끝에 추가하라. 위젯에 표시되는 라벨은 anObject의 displayString이다. anObject를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====addLast: aString element: anObject====&lt;br /&gt;
&lt;br /&gt;
주어진 값으로 된 요소를	리스트박스 끝에 추가하라. 이 메서드는 위젯이 표시할 라벨을 클라이언트가 자발적으로 선택하도록 해준다. anObject가 nil인 경우 문자열이 요소로서도 사용된다. aString이 nil인 경우 요소의 displayString이 라벨로 사용된다. anObject를 응답하고, nil인 경우 aString을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====associationAt: anIndex====&lt;br /&gt;
&lt;br /&gt;
리스트박스 내 주어진 위치에 있는 항목을 키로 갖고, 그 항목을 표시하는 데 사용된 라벨을 값으로 가진 연관을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====at: anIndex====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 주어진 위치에 표시된 요소를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====contents: stringCollection====&lt;br /&gt;
&lt;br /&gt;
리스트박스에 표시되는 요소를 설정하고, 라벨이 그들의 displayStrings가 되도록 설정하라.&lt;br /&gt;
&lt;br /&gt;
====contents: stringCollection elements: elementList====&lt;br /&gt;
&lt;br /&gt;
리스트박스에 표시되는 요소가 elementList의 요소들이 되도록 설정하고, 라벨은 stringCollection 내에서 그에 해당하는 요소가 되도록 설정하라. 두 개의 컬렉션은 크기가 같아야 한다.&lt;br /&gt;
&lt;br /&gt;
====do: aBlock====&lt;br /&gt;
&lt;br /&gt;
리스트박스의 각 요소마다 반복(iterate over)하여 이를 aBlock으로 전달하라.&lt;br /&gt;
&lt;br /&gt;
====elements: elementList====&lt;br /&gt;
&lt;br /&gt;
리스트박스에 표시되는 요소를 설정하고, 라벨이 그들의 displayStrings가 되도록 설정하라.&lt;br /&gt;
&lt;br /&gt;
====index: newIndex====&lt;br /&gt;
&lt;br /&gt;
리스트박스 내 주어진 위치에 있는 항목을 강조하고, 리스트 박스 내 텍스트를 텍스트 위젯으로 전송하라.&lt;br /&gt;
&lt;br /&gt;
====labelAt: anIndex====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 주어진 위치에 표시된 라벨을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====labelsDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
리스트 위젯 내 라벨을 반복(iterate over)하고 각각을 aBlock으로 전달하라.&lt;br /&gt;
&lt;br /&gt;
====numberOfStrings====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 항목 수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
would&lt;br /&gt;
&lt;br /&gt;
====removeAtIndex: index====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 주어진 색인에 있는 항목을 제거하고, 그 요소에 연관된 객체를 응답하라 (예: #at: 가 주어진 색인에 대해 리턴할만한 값).&lt;br /&gt;
&lt;br /&gt;
====size====&lt;br /&gt;
&lt;br /&gt;
리스트 박스 내 항목 수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====BLOX.BDropDown: 위젯 프로토콜====&lt;br /&gt;
&lt;br /&gt;
====dropRectangle====&lt;br /&gt;
&lt;br /&gt;
리스트 위젯이 팝업시킬 rectangle을 응답하라. 가능하다면 이는 드롭다운 위젯의 하단면 아래에 위치될 것이지만 그 곳에 화면 공간이 충분하지 않은 경우 드롭다운 위젯의 상단면 위에 위치할 수도 있다. 그 곳에도 화면 공간이 충분하지 않은 경우 팝업 위젯에서 가장 많은 행을 제공할 수 있는 면을 고를 것이다.&lt;br /&gt;
&lt;br /&gt;
====dropdown====&lt;br /&gt;
&lt;br /&gt;
강제로 팝업 리스트 위젯이 보이도록 한다.&lt;br /&gt;
&lt;br /&gt;
====isDropdownVisible====&lt;br /&gt;
&lt;br /&gt;
팝업 위젯이 보이는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====toggle====&lt;br /&gt;
&lt;br /&gt;
팝업 위젯의 표시 여부를 선택한다(toggle).&lt;br /&gt;
&lt;br /&gt;
====unmapList====&lt;br /&gt;
&lt;br /&gt;
팝업 위젯을 화면으로부터 매핑해제(unmap)하여 선택된 항목을 항상 표시되는 텍스트 위젯으로 전송하고 콜백을 생성한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GnuSmalltalkUsersGuide]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>