@@ -2,17 +2,80 @@ Class {
22 #name : #BrCursorElement ,
33 #superclass : #BlElement ,
44 #instVars : [
5- ' textPosition'
5+ ' textPosition' ,
6+ ' blinkingTask' ,
7+ ' blinkingScheduleTask'
68 ],
79 #category : #' Brick-Editor-UI'
810}
911
12+ { #category : #initialization }
13+ BrCursorElement >> doBlink [
14+ (self opacity > 0.5 )
15+ ifTrue: [ self opacity: 0.0 ]
16+ ifFalse: [ self opacity: 1.0 ]
17+ ]
18+
1019{ #category : #initialization }
1120BrCursorElement >> initialize [
1221 super initialize.
1322
1423 textPosition := 0 .
15- self focusability: BlFocusability none
24+ self focusability: BlFocusability none.
25+
26+ self scheduleBlinking
27+ ]
28+
29+ { #category : #' as yet unclassified' }
30+ BrCursorElement >> onAddedToSceneGraph [
31+ super onAddedToSceneGraph.
32+
33+ self scheduleBlinking
34+ ]
35+
36+ { #category : #' as yet unclassified' }
37+ BrCursorElement >> onPositionInSpaceChanged [
38+ super onPositionChanged.
39+
40+ self stopBlinking.
41+ self scheduleBlinking
42+ ]
43+
44+ { #category : #' as yet unclassified' }
45+ BrCursorElement >> onRemovedFromSceneGraph [
46+ super onRemovedFromSceneGraph.
47+
48+ self scheduleBlinking
49+ ]
50+
51+ { #category : #' as yet unclassified' }
52+ BrCursorElement >> scheduleBlinking [
53+ self opacity: 1.0 .
54+ blinkingScheduleTask ifNotNil: [ :aTask | aTask stop ].
55+ blinkingTask ifNotNil: [ :aTask | aTask stop ].
56+ blinkingScheduleTask := (BlDelayedTaskAction new
57+ delay: 1 second;
58+ action: [ self startBlinking ]).
59+
60+ self enqueueTask: blinkingScheduleTask
61+ ]
62+
63+ { #category : #' as yet unclassified' }
64+ BrCursorElement >> startBlinking [
65+ blinkingTask := (BlRepeatedTaskAction new
66+ delay: 1 second;
67+ action: [ self doBlink ]).
68+ self enqueueTask: blinkingTask
69+ ]
70+
71+ { #category : #accessing }
72+ BrCursorElement >> stopBlinking [
73+ blinkingScheduleTask ifNotNil: [ :aTask | aTask stop ].
74+ blinkingTask ifNotNil: [ :aTask | aTask stop ].
75+ blinkingScheduleTask := nil .
76+ blinkingTask := nil .
77+
78+ self opacity: 1.0
1679]
1780
1881{ #category : #accessing }
0 commit comments