- Overview -
グリッドパネル

■ グリッドパネルの構成
グリッドパネルは、グリッドの設定を行うんためのパネルだ。GridPanel.nib と そのコントローラ である SKTGridPanelController クラス、グリッドのサンプル表示を行う SKTGridView クラスから構成されるよ。
◆ GridPanel.nib
GridPanel.nib は以下のようになってるんだ。メインは SKTGridView だな。
ウィンドウは UtilityWindow 化された NSPanel クラスだ。これで、フローティングウィンドウとして扱われる。
ウィンドウの中にあるのは、いちばん大きいのは SKTGridView。その下に、グリッド間隔を調節するための NSSlider、グリッドを見せる、グリッドに吸い付く、を設定するための NSButton、グリッドの色を設定するための NSColorWell なんだ。
GridPanel.nib の File's Owner は SKTGridPanelController なんだ。WindowController だからね。
じゃ、SKTGridPanelContrller と、その他のコンポーネントの関係を見てみよう。まず、SKTGridPanelController の outlet を見ると、NSTextField ('Color:') を除くすべてのコンポーネントへの参照が存在することが分かるんだ。
それぞれ、window、showsGridCheckBox、snapsToGridCheckBox、gridSpacingSlider 、gridView、gridColorWell っていう名前になってる。つまり、Grid Panel の中の要素をいじりたいと思ったら、SKTGridPanelController をたたけばいいわけだ。こいつらはすべて private のフィールドとして格納されてから、SKTGridPanelController が提供するメソッド経由でしかアクセスできないけどね。
で、次は action の方だ。
まず、NSPanel の delegate になってるのが分かる。あと、SKTGridView の controller にもなってるね。
受け付ける action は、チェックボックスがクリックされたときに showsGridCheckboxAction、snapsToGridCheckboxAction が呼ばれる。あと、スライダーが変化したときに gridSpacingSliderAction が、色が変化したときには gridColorWellAction がそれぞれ呼ばれるってわけだ。
◆ SKTGridPanelController クラス
SKTGridPanelController は、NSWindowController のサブクラスだ。さらに、以下のようなフィールドを持っている。
|
Sketch/SKTGridPanelController.h
|
@interface SKTGridPanelController : NSWindowController {
@private
IBOutlet NSButton *snapsToGridCheckbox;
IBOutlet NSButton *showsGridCheckbox;
IBOutlet NSSlider *gridSpacingSlider;
IBOutlet NSColorWell *gridColorWell;
IBOutlet SKTGridView *gridView;
SKTGraphicView *_inspectingGraphicView;
}
|
はじめの 5 つは、ウィンドウに配置されている GUI 要素。そして、最後の _inspectingGraphicView は、メインのウィンドウにある、Graphic オブジェクトを配置するための SKTGraphicView だ。
◆ SKTGridView クラス
SKTGridView は、グリッドのサンプルを表示するための NSView を継承したクラスだ。
|
Sketch/SKTGridView.h
|
@interface SKTGridView : NSView
|
おもな仕事はグリッドを表示すること。以上。
|