'From etoys2.2 of 27 September 2007 [latest update: #1790] on 21 November 2007 at 2:14:19 pm'! "Change Set: PopUpCaretFix2-tak Date: 21 November 2007 Author: Takashi Yamamiya - Pop up carets are shown even on old project. - Fix a bug that unnecessary up and down arrows are shown (e.g. In Ellipse's y <- Ellipse's heading, heading doesn't have up down). "! !TileMorph methodsFor: 'arrows' stamp: 'tak 9/26/2006 21:03'! addArrows (self class addArrowsOn: self) in: [:array | upArrow := array first. downArrow := array second]! ! !TileMorph methodsFor: 'arrows popup' stamp: 'tak 11/21/2007 13:45'! buildVPopArrows | panel up down | upArrow ifNil: [^ nil]. panel := Morph new. panel cornerStyle: #rounded. up := SketchMorph new form: (ScriptingSystem formAtKey: #LargeUpArrow). down := SketchMorph new form: (ScriptingSystem formAtKey: #LargeDownArrow). panel color: color. panel sticky: true. panel layoutPolicy: TableLayout new. panel listDirection: #topToBottom. panel hResizing: #shrinkWrap. panel vResizing: #shrinkWrap. panel cellInset: 4. panel layoutInset: 2. panel addMorphBack: up. panel addMorphBack: down. panel on: #mouseLeave send: #hidePopArrows to: self. up on: #mouseDown send: #popArrowUp: to: self. up on: #mouseMove send: #mouseMove: to: self. down on: #mouseDown send: #popArrowDown: to: self. down on: #mouseMove send: #mouseMove: to: self. ^ panel! ! !TileMorph methodsFor: 'arrows popup' stamp: 'tak 11/21/2007 13:35'! isPopArrowNeeded ^ upArrow notNil or: [suffixArrow notNil]! ! !TileMorph methodsFor: 'arrows popup' stamp: 'tak 11/21/2007 13:33'! showPopArrows | vpanel hpanel | self hidePopArrows. self isPopArrowNeeded ifFalse: [^ self]. vpanel := self buildVPopArrows. hpanel := self buildHPopArrows. self activeHand setProperty: #popArrows toValue: {vpanel. hpanel}. self layoutChanged! ! !TileMorph methodsFor: 'event handling' stamp: 'tak 11/21/2007 13:33'! handlesMouseOver: evt ^ self isPopArrowNeeded or: [super handlesMouseOver: evt]! !