funfunfun27
プロジェクトの移動ボタンだよん
お次はプロジェクトにジャンプするボタンに挑戦してみるです。
これを使うとプロジェクトウィンドウをクリックするンじゃなくてボタンでプロジェクトを移動するってのができるね。
■クラスを作る
SimpleButtonMorphを親にしまして新しくクラスを定義いたします。
--------------------------------------------
SimpleButtonMorph subclass: #TestMorph19
instanceVariableNames: ' '
classVariableNames: ''
poolDictionaries: ''
category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■メソッドを追加ですな
初期設定です。
「target:」は「Project named: 'プロジェクトファイル名'」
「actionSelector:」は「#enter」ですな。
--------------------------------------------
initialize
super initialize.
self label: ' LINK '.
self color: Color orange.
self borderColor: #raised.
self target: (Project named: 'TestProject').
self actionSelector: #enter.
self actWhen: #buttonUp.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■テストして見る
テストしてみる前にジャンプ先の新規プロジェクトを作っておきまする。
プロジェクトに「TestProject」と名前を付けるです。
さてと、さっき作ったボタンのインスタンスをだしてみましょう。
下記のコードを書いてドゥーイット。
--------------------------------------------
TestMorph17 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )
出てきたボタンをクリックすると・・・・おお!!ちゃんとジャンプするじゃん。
■リンクボタンを作ってみるです。
さっき作ったのはリンク先が固定されてるんだけど、
今度はリンク先を赤ハロメニューで変更できるようにしてみましょう!!
クラス定義でプロジェクト名を入れるインスタンス変数を追加
--------------------------------------------
SimpleButtonMorph subclass: #TestMorph19
instanceVariableNames: 'projectName '
classVariableNames: ''
poolDictionaries: ''
category: 'MyMorph'
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
初期設定の修正
「target」を変更。
--------------------------------------------
initialize
super initialize.
self label: ' LINK '.
self color: Color orange.
self borderColor: #raised.
self target: (Project named: nil).
self actionSelector: #enter.
self actWhen: #buttonUp.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
この状態でインスタンスをだしてクリックしてみても何も起こらない。これあたりまえ。
--------------------------------------------
TestMorph17 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )
■メソッド追加
プロジェクトを選択するメニューを出す「selectProject」というメソッドを追加しましょう。
このメソッドが呼び出されると現在のイメージの全プロジェクトが
リストアップされたカスタムメニューが出ます。
その中の1つを選ぶと「ProjectName」というインスタンスメソッドに代入されます。
--------------------------------------------
selectProject
| m |
m _ CustomMenu new.
Project allNames do:[ : name |
m add: name action: name].
projectName _ m startUp.
self target: (Project named: projectName).
self label: projectName.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
赤ハロメニューに「リンク先を選んでね」という項目を追加します。
これを選ぶとさっき追加した「selectProject」というメソッドを呼び出します。<「action:」に設定。
--------------------------------------------
addCustomMenuItems: aCustomMenu hand: aHandMorph
super addCustomMenuItems: aCustomMenu hand: aHandMorph.
aCustomMenu add: 'リンク先を選んでね' action: #selectProject.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■試してみよ〜!!
ではさっそくためしてみましょう。赤ハロメニューを出すと一番下にあるある新しい項目!!
プロジェクトがリストアップされたサブのメニューが出てきます。
ここでジャンプ先を選びます。さっき作ったテスト用のプロジェクトをクリック。
ジャ〜ンプ!!何もない画面が表示されたです。だいせ〜こう!!
--------------------------------------------
前のプロジェクトに戻る
target: Project.
actionSelector: #returnToPreviousProject.
スクイークを終了する
target: Smalltalk;
actionSelector: #snapshot:andQuit:;
arguments: (Array with: false with: true))
--------------------------------------------
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
Monday, 1 March 2004, 12:38:31 am
ざっと見たところボタンモーフはこんなのがありますな。--thoru
SimpleButtonMorph
PluggableButtonMorph
StringButtonMorph
ThreePhaseButtonMorph
IconicButtonMorph
SimpleBUttonDelayMenuMorph
Links to this Page
- FunFunFunMorphic last edited on 25 March 2004 at 5:25:44 am by tk0005-202x210x196x109.ap-TK.usen.ad.jp
- funfunfun26 last edited on 18 June 2007 at 5:48:01 am by localhost.localdomain
- funfunfun28 last edited on 18 June 2007 at 5:36:02 am by localhost.localdomain