내일의 시간 절약을 위해 공부 할 코드를 미리… 

내일의 시간 절약을 위해,

공부(?)할 코드를 미리 올려둘게요.

우선은 startup.rtf 파일로 저장해 주세요.


s = Server.internal;

Server.default = s;

s.boot;


CocoaDocument.defaultFont_(Font("Arial Unicode MS",16)); //set default font


s.doWhenBooted

{

var ranNum = 0;

var postWindow = Document.listener;


//set post window

postWindow.font_(Font("Arial Unicode MS",16)); //set post window default font

Document.postColor_(Color.white);

postWindow.background_(Color.new255(10, 20, 100, 180));

postWindow.bounds_(Rect.new(0, 270, 290, 768 - 270 ));


//set own colorize theme

Document.themes.put

(\myTheme,

(

classColor: Color.new255(53, 74, 237),

textColor: Color.new255(25, 175, 120),

stringColor: Color.new255(96, 129, 158),

commentColor: Color.new255(206, 27, 28),

symbolColor: Color.new255(57, 154, 20),

numberColor: Color.new255(157, 80, 65)

)

);


//and then calling setTheme with the name:

Document.setTheme('myTheme');


//document setting(문서가 새로 만들어지거나, open 할 때의 설정)

Document.initAction_({

Document.current.background_(Color.new255(10, 20, 20, 230));

Document.current.stringColor_(Document.themes.myTheme.textColor);

Document.current.selectedBackground_(Color.new255(220, 180, 150, 60)); //selected block color

Document.current.syntaxColorize;

Document.current.endFrontAction_({ //문서가 뒤로 갈 때의 액션을 정해 둠

Document.current.background_(Color.new255(80, 20, 30, 150));

});

Document.current.toFrontAction_({ //문서가 앞으로 나올 때의 액션을 정해 둠

Document.current.background_(Color.new255(10, 20, 20, 230));

});

});


" ".postln;

" ".postln;

" ".postln;

" ".postln;

" ".postln;

" ".postln;


//run s.meter

//SCLevelIndicator.meter_Xpos = 290; //set X pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

//SCLevelIndicator.meter_Ypos = 0; //set Y pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

s.meter;


//run FreqScope

//SCFreqScopeWindow.scopeXpos = 650; //set Freq Scope's X pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

//SCFreqScopeWindow.scopeYpos = 3; //set Freq Scope's Y pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

FreqScope.new(300, 200);


//run T-D Scope

//SCStethoscope.stethXpos = 1023; //set T - D Scope's X pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

//SCStethoscope.stethYpos = 8; //set T - D Scope's Y pos, 쓰시려면 좀 더 수정이 필요해서 일단 주석처 합니다

SCStethoscope.new(s, 2);


" ".postln;

" ".postln;



//print welcome message

ranNum = 3.rand;

switch(ranNum,

0, {"HOW ARE YOU, GANG IL ?".postln;},

1, {"IS EVERYTHING ARIGHT ?".postln;},

2, {"HOW'S THE THINGS GOING ?".postln;}

);



" ".postln;

" ".postln;

" ".postln;

" ".postln;

};



//---------------- auto colorizing -------------------

Document.globalKeyDownAction_({| doc, char, mod, unicode, keycode |

if((doc.name.find("htm").isNil) and: (doc.name.find("html").isNil) and: (doc.isListener == false),

{

if((unicode==13) or: (unicode==32) or: (unicode==46), // Enter, Space bar, Period

{

doc.syntaxColorize;

})

});

});

아래는 간단히 용어에 대한 정리 입니다.

 

<용어 정리>

 

-Document

: 슈퍼콜라이더에서 ‘문서’. 우리가 지금 보고있는 편집창.

이것 역시 클래스로 이루어져 있고, 창을 연다는 것은 이 클래스의 인스턴스를 생성하는 셈.

따라서 정의된 속성(Properties)을 변경하거나, 함수(Method, Function)를 이용하여 어떤 일을 시킬 수 있다.

Document 를 선택하고 cmd + y를 눌러보자.

 

-listener

:Document의 메소드 중 하나. post창을 의미한다.

클래스에 직접 적용하는 class method, 인스턴스에 적용해야 하는 instance method 는 모두 클래스의 헬프파일에 설명되고 있다.

 

-bounds

:GUI를 이용하는, 혹은 GUI와 관련된 클래스들은 보통 bounds라는 속성을 가지는데,

이것은 GUI 창의 좌측 하단 모서리의 x축 상의 위치,  y축 상의 위치(화면의 아랫쪽이 좌표 0), 창의 넓이, 창의 높이 정보를 말한다.

실제로는 대부분,

Rect(xPos, yPos, width, height);

이런 식으로, Rect 클래스의 인스턴스를 타입으로 요구한다.

 

-theme

:Document의

classColor: Color.new255(53, 74, 237),

textColor: Color.new255(25, 175, 120),

stringColor: Color.new255(96, 129, 158),

commentColor: Color.new255(206, 27, 28),

symbolColor: Color.new255(57, 154, 20),

numberColor: Color.new255(157, 80, 65)

 

에 대한 속성을 짝지워 담고 있는 저장공간으로,

슈퍼콜라이더에서 사용되는 여섯 종류의 글자들이 syntaxColorize 됐을 경우 바뀔 색을 미리 지정한다.

Event 라는 클래스의 인스턴스이다.

 

-initAction

:새로운 Document를 만들거나 기존의 Document를 열었을 때에, 자동으로 실행될 행동들을 예약해 두겠다는 메소드.

Advertisements