GnuSmalltalkUsersGuide:AdditionalChapter1 11

From 흡혈양파의 번역工房
Jump to navigation Jump to search
BLOX.BDialog

BLOX.BDialog

네임스페이스 BLOX에 정의됨

슈퍼클래스: BLOX.BForm

범주: 그래픽-윈도우


"나는 가능한 한 많은 선택과 요청으로 대화상자을 구현하기 위한 기능이다. 뿐만 아니라 나는 몇 가지 플랫폼 네이티브 공통 대화상자를 지원하기도 하는데 choose-a-file(파일을 선택하시오)과 choose-a-color(색상을 선택하시오)를 들 수 있겠다.


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

new: parent

주어진 부모 창에 배치된 (라벨 위젯과 몇 가지 버튼 위젯을 포함하는) 새 대화상자 처리기를 응답하라. 라벨 위젯은 생성 당시 비어 있다.

new: parent label: aLabel

주어진 부모 창에 배치된 (라벨 위젯과 몇 가지 버튼 위젯을 포함하는) 새 대화상자 처리기를 응답하라. 라벨 위젯은 생성 당시 aLabel을 포함한다.

new: parent label: aLabel prompt: aString

주어진 부모 창에 배치된 (라벨 위젯과 몇 가지 버튼 위젯, 그리고 기본적으로 aString을 표시하는 편집창을 포함하는) 새 대화상자 처리기를 응답하라. 라벨 위젯은 생성 당시 aLabel을 포함한다.


BLOX.BDialog 클래스: 프롬프터

chooseColor: parent label: aLabel default: color

색상을 prompt하라. 대화상자는 aLabel을 제목 표시줄 텍스트로 하고 주어진 부모 창을 이용해 생성되는데, 처음에는 색상 매개변수에서 주어진 색상을 선택한다. 대화상자가 취소되면 nil이 응답되고, 그 외의 경우는 선택된 색상이 RGB 값과 함께 String로서 리턴된다.

chooseFileToOpen: parent label: aLabel default: name defaultExtension: ext types: typeList

사용자가 열 파일을 선택할 수 있는 대화상자를 팝업시켜라. 사용자가 존재하는 파일만 선택하도록 하는 것이 목적이다. 사용자가 존재하지 않는 파일로 들어갈 경우 대화상자는 사용자에게 오류 프롬프트를 제공하고, 사용자로 하여금 대안적 선택을 제공하거나 선택을 취소할 것을 요한다. 애플리케이션이 사용자에게 새 파일의 생성을 허용할 경우 구분된 New 메뉴 명령을 제공함으로써 이루어져야 한다.

대화상자가 취소되면 nil이 응답되고, 그 외의 경우는 파일명이 String으로서 리턴된다.

주어진 부모 창으로 대화상자가 생성되고 제목 표시줄 텍스트는 aLabel가 된다. 이름 매개변수는 어떤 파일을 처음으로 선택할 것인지 선택하고, 기본 확장자(default extension)는 사용자가 확장자 없이 파일명을 입력할 경우 파일명 앞에 추가되는 문자열을 명시한다.

typeList 매개변수는 배열들의 배열로, #(('Text files' '.txt' '.diz'), ('Smalltalk files' '.st'))를 예로 들 수 있는데, 이는 파일 타입의 리스트 박스를 구성하는 데에 사용된다. 사용자가 리스트 박스에서 파일 타입을 하나 선택하면 해당하는 타입의 파일이 열거된다. 배열 내 각 항목은 문자열 목록을 포함한다: 첫 번째 항목은 특정 파일 패텬이 설명하는 파일 타입의 이름인 동시 File 타입 리스트 박스에 표시되는 텍스트 문자열이며, 이를 제외한 나머지 항목은 이러한 특정 파일 타입에 속할 수 있는 확장자가 해당한다.

chooseFileToSave: parent label: aLabel default: name defaultExtension: ext types: typeList

사용자가 저장할 파일을 선택할 수 있는 대화상자를 팝업시켜라; 이것은 존재하지 않는 파일명도 수락되고, 기존 파일명은 확인 대화상자를 야기하여 사용자에게 파일을 덮어쓸 것인지 여부를 묻는다는 점에서 파일 열기 대화상자와는 다르다.

대화상자가 취소되면 nil이 응답되고, 그 외의 경우는 파일명이 String으로서 리턴된다.

주어진 부모 창으로 대화상자가 생성되고 제목 표시줄 텍스트는 aLabel가 된다. 이름 매개변수는 어떤 파일을 처음으로 선택할 것인지 선택하고, 기본 확장자(default extension)는 사용자가 확장자 없이 파일명을 입력할 경우 파일명 앞에 추가되는 문자열을 명시한다.

typeList 매개변수는 배열들의 배열로, #(('Text files' '.txt' '.diz'), ('Smalltalk files' '.st'))를 예로 들 수 있는데, 이는 파일 타입의 리스트 박스를 구성하는 데에 사용된다. 사용자가 리스트 박스에서 파일 타입을 하나 선택하면 해당하는 타입의 파일이 열거된다. 배열 내 각 항목은 문자열 목록을 포함한다: 첫 번째 항목은 특정 파일 패텬이 설명하는 파일 타입의 이름인 동시 File 타입 리스트 박스에 표시되는 텍스트 문자열이며, 이를 제외한 나머지 항목은 이러한 특정 파일 타입에 속할 수 있는 확장자가 해당한다.


BLOX.BDialog: 접근하기

addButton: aLabel receiver: anObject index: anInt

클릭하면 anObject에서 #dispatch: 메서드가 트리거되고 anInt를 콜백의 인자로서 전달시키는 버튼을 대화상자에 추가하라. 버튼의 캡션은 aLabel로 설정된다.

addButton: aLabel receiver: anObject message: aSymbol

클릭하면 anObject로 aSymbol 단항 선택자가 전송되는 버튼을 대화상자에 추가하라. 버튼의 캡션은 aLabel로 설정된다.

addButton: aLabel receiver: anObject message: aSymbol argument: arg

클릭하면 anObject로 aSymbol 1-인자 선택자가 전송되고 arg를 콜백의 인자로서 전달시키는 버튼을 대화상자에 추가하라. 버튼의 캡션은 aLabel로 설정된다.

contents

대화상자에 연관된 엔트리 위젯에 표시된 텍스트를 응답하라.

contents: newText

대화상자에 연관된 엔트리 위젯에 newText를 표시하라.


BLOX.BDialog: 위젯 프로토콜

center

대화상자의 부모 창을 화면 중간으로 위치시켜라(center).

centerIn: view

대화상자의 부모 창을 주어진 위젯 중간으로 위치시켜라(center).

destroyed

Private - 수신자가 파기되었으므로 그에 해당하는 Tcl 변수를 제거하여 메모리 누수를 피하라.

invokeCallback: index

누르고 있는 index번째 버튼에 해당하는 종합적 콜백(synthetic callback)을 생성하고, 부모 창을 파기하라(부모 창이 구축된 경우 그 콜백이 트리거된다).

loop

부모 창을 형태상으로 매핑하라. 다시 말해, 창이 파기된 이후에만 끝이 나는 이벤트 루프가 시작된다. 모달(modal) 창에 대한 이벤트의 처리에 관한 상세한 정보는 BWindow>>#modalMap를 참고하라.


Notes