Skip to content

Commit efc4e67

Browse files
committed
[feenkcom/gtoolkit#4817] add settings around cursor blinking
1 parent e20447c commit efc4e67

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

src/Brick-Editor/BrCursorElement.class.st

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,45 @@ Class {
66
'blinkingTask',
77
'blinkingScheduleTask'
88
],
9+
#classVars : [
10+
'BlinkDelay',
11+
'BlinkInterval',
12+
'ShouldBlink'
13+
],
914
#category : #'Brick-Editor-UI'
1015
}
1116

12-
{ #category : #initialization }
17+
{ #category : #accessing }
18+
BrCursorElement class >> blinkDelay [
19+
^ BlinkDelay ifNil: [ 1 second ]
20+
]
21+
22+
{ #category : #accessing }
23+
BrCursorElement class >> blinkDelay: aDuration [
24+
BlinkDelay := aDuration
25+
]
26+
27+
{ #category : #accessing }
28+
BrCursorElement class >> blinkInterval [
29+
^ BlinkInterval ifNil: [ 1 second ]
30+
]
31+
32+
{ #category : #accessing }
33+
BrCursorElement class >> blinkInterval: aDuration [
34+
BlinkInterval := aDuration
35+
]
36+
37+
{ #category : #accessing }
38+
BrCursorElement class >> shouldBlink [
39+
^ ShouldBlink ifNil: [ true ]
40+
]
41+
42+
{ #category : #accessing }
43+
BrCursorElement class >> shouldBlink: aBoolean [
44+
ShouldBlink := aBoolean
45+
]
46+
47+
{ #category : #'private - blinking' }
1348
BrCursorElement >> doBlink [
1449
(self opacity > 0.5)
1550
ifTrue: [ self opacity: 0.0 ]
@@ -26,49 +61,51 @@ BrCursorElement >> initialize [
2661
self scheduleBlinking
2762
]
2863

29-
{ #category : #'as yet unclassified' }
64+
{ #category : #'hooks - children' }
3065
BrCursorElement >> onAddedToSceneGraph [
3166
super onAddedToSceneGraph.
3267

3368
self scheduleBlinking
3469
]
3570

36-
{ #category : #'as yet unclassified' }
71+
{ #category : #'hooks - geometry' }
3772
BrCursorElement >> onPositionInSpaceChanged [
3873
super onPositionChanged.
3974

4075
self stopBlinking.
4176
self scheduleBlinking
4277
]
4378

44-
{ #category : #'as yet unclassified' }
79+
{ #category : #'hooks - children' }
4580
BrCursorElement >> onRemovedFromSceneGraph [
4681
super onRemovedFromSceneGraph.
4782

48-
self scheduleBlinking
83+
self stopBlinking
4984
]
5085

51-
{ #category : #'as yet unclassified' }
86+
{ #category : #'private - blinking' }
5287
BrCursorElement >> scheduleBlinking [
53-
self opacity: 1.0.
54-
blinkingScheduleTask ifNotNil: [ :aTask | aTask stop ].
55-
blinkingTask ifNotNil: [ :aTask | aTask stop ].
88+
self stopBlinking.
89+
90+
self class shouldBlink
91+
ifFalse: [ ^ self ].
92+
5693
blinkingScheduleTask := (BlDelayedTaskAction new
57-
delay: 1 second;
94+
delay: self class blinkDelay;
5895
action: [ self startBlinking ]).
5996

6097
self enqueueTask: blinkingScheduleTask
6198
]
6299

63-
{ #category : #'as yet unclassified' }
100+
{ #category : #'private - blinking' }
64101
BrCursorElement >> startBlinking [
65102
blinkingTask := (BlRepeatedTaskAction new
66-
delay: 1 second;
103+
delay: self class blinkInterval;
67104
action: [ self doBlink ]).
68105
self enqueueTask: blinkingTask
69106
]
70107

71-
{ #category : #accessing }
108+
{ #category : #'private - blinking' }
72109
BrCursorElement >> stopBlinking [
73110
blinkingScheduleTask ifNotNil: [ :aTask | aTask stop ].
74111
blinkingTask ifNotNil: [ :aTask | aTask stop ].

0 commit comments

Comments
 (0)