/
LabelPresenter.class.st
84 lines (66 loc) · 1.58 KB
/
LabelPresenter.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"
A LabelPresenter is a spec presenter for Labels.
See AbstractWidgetPresenter
self example
I provide the following variables and their accessors
- label is the text displayed that I display.
I am specializing defaultColor to change the color of my text.
todo
- emphasis
"
Class {
#name : #LabelPresenter,
#superclass : #AbstractWidgetPresenter,
#instVars : [
'labelHolder',
'emphasis'
],
#category : #'Spec-Core-Widgets'
}
{ #category : #specs }
LabelPresenter class >> adapterName [
^ #LabelAdapter
]
{ #category : #specs }
LabelPresenter class >> title [
^ 'Label presenter'
]
{ #category : #initialization }
LabelPresenter >> defaultColor [
^ self theme textColor
]
{ #category : #api }
LabelPresenter >> emphasis [
^ emphasis
]
{ #category : #api }
LabelPresenter >> emphasis: anEmphasis [
"accepts a symbol or an array of symbols: #bold, #italic, #underline, #narrow, #struck"
emphasis := anEmphasis isSymbol
ifTrue: [ {anEmphasis} ]
ifFalse: [ anEmphasis ].
self changed: #emphasis: with: {emphasis}
]
{ #category : #initialization }
LabelPresenter >> initialize [
super initialize.
labelHolder := '' asValueHolder.
emphasis := #().
labelHolder whenChangedDo: [ self changed: #getText ].
]
{ #category : #api }
LabelPresenter >> label [
"<api: #inspect>"
^ labelHolder value
]
{ #category : #api }
LabelPresenter >> label: aText [
"<api: #string getter: #label>"
"Set the text of the label"
labelHolder value: aText
]
{ #category : #'api-valueHolder' }
LabelPresenter >> labelHolder [
"To register actions to be done when the label changes."
^ labelHolder
]