Skip to content

Commit b36dcb7

Browse files
authored
Merge pull request #237 from OpenSmock/stage-dev-toplo-theme
Add new feature Toplo theme
2 parents 2384a80 + 1abf83c commit b36dcb7

19 files changed

Lines changed: 418 additions & 100 deletions

src/Pyramid-Bloc/PyramidChangeTextCommand.class.st

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,9 @@ PyramidChangeTextCommand >> setValueFor: aBlTextElement with: aString [
1818
rope := aString asRopedText.
1919

2020
attributes do: [ :a | rope attribute: a ].
21-
aBlTextElement text: rope
21+
aBlTextElement text: rope.
22+
"Fix label color on theme change when label is create during the session without copy or open from save"
23+
aBlTextElement parent ifNil: [ ^ self ].
24+
(((aBlTextElement parent)class) name) = (#ToLabel)
25+
ifTrue: [ aBlTextElement parent text: aString asRopedText ]
2226
]

src/Pyramid-Bloc/PyramidDrawOrderIcons.class.st

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ blpaintbackground2 := BlPaintBackground new.
224224
PyramidDrawOrderIcons class >> formMoveBackward [
225225

226226
^ (BlElement new
227-
size: 16 @ 16;
227+
extent: 16 @ 16;
228228
addChildren: self blocMoveBackward materializeAsBlElement)
229229
exportAsForm
230230
]
@@ -233,7 +233,7 @@ PyramidDrawOrderIcons class >> formMoveBackward [
233233
PyramidDrawOrderIcons class >> formMoveForward [
234234

235235
^ (BlElement new
236-
size: 16 @ 16;
236+
extent: 16 @ 16;
237237
addChildren: self blocMoveForward materializeAsBlElement)
238238
exportAsForm
239239
]
@@ -242,7 +242,7 @@ PyramidDrawOrderIcons class >> formMoveForward [
242242
PyramidDrawOrderIcons class >> formOnBackground [
243243

244244
^ (BlElement new
245-
size: 16 @ 16;
245+
extent: 16 @ 16;
246246
addChildren: self blocOnBackground materializeAsBlElement)
247247
exportAsForm
248248
]
@@ -251,7 +251,7 @@ PyramidDrawOrderIcons class >> formOnBackground [
251251
PyramidDrawOrderIcons class >> formOnForeground [
252252

253253
^ (BlElement new
254-
size: 16 @ 16;
254+
extent: 16 @ 16;
255255
addChildren: self blocOnForeground materializeAsBlElement)
256256
exportAsForm
257257
]

src/Pyramid-Bloc/PyramidLibraryDefault.class.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ PyramidLibraryDefault >> smalltalkIconsCategory [
8787
name: each key;
8888
block: [
8989
{ (BlElement new
90-
size: each value extent;
90+
extent: each value extent;
9191
background:
9292
(BlImageBackground image:
9393
(PyramidExternalRessourceProxy fromSource:

src/Pyramid-Bloc/PyramidSelectionMakerExtension.class.st

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ PyramidSelectionMakerExtension >> dragEvent: anEvent [
7575

7676
xmin := self dragOrigin x min: anEvent position x.
7777
ymin := self dragOrigin y min: anEvent position y.
78-
78+
7979
self selectionGhost
8080
position: xmin @ ymin;
81-
size: (anEvent position - self dragOrigin) abs
81+
extent: (anEvent position - self dragOrigin) abs
8282
]
8383

8484
{ #category : #accessing }
@@ -100,7 +100,7 @@ PyramidSelectionMakerExtension >> dragStart: anEvent [
100100
self dragOrigin: anEvent position.
101101

102102
self selectionGhost
103-
size: 0 @ 0;
103+
extent: 0 @ 0;
104104
position: self dragOrigin;
105105
visibility: BlVisibility visible
106106
]

src/Pyramid-Bloc/PyramidVisualPystonForCly.class.st

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ PyramidVisualPystonForCly >> build [
8989
blElement isCollection ifTrue: [
9090
blElement := BlElement new
9191
addChildren: blElement;
92-
size: 1500 @ 1500;
92+
extent: 1500 @ 1500;
9393
yourself ].
9494
imageMorph := ImageMorph withForm: blElement exportAsForm.
9595
self addMorph: imageMorph fullFrame: LayoutFrame identity.
@@ -242,7 +242,7 @@ PyramidVisualPystonForCly >> update [
242242
blElement isCollection ifTrue: [
243243
blElement := BlElement new
244244
addChildren: blElement;
245-
size: 1500 @ 1500;
245+
extent: 1500 @ 1500;
246246
yourself ].
247247

248248
imageMorph form: blElement exportAsForm
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
Class {
2+
#name : #PyramidAddStampPresenter,
3+
#superclass : #SpPresenter,
4+
#instVars : [
5+
'stampManagerPresenter',
6+
'treeTableAddStamp',
7+
'selectedStampToAdd',
8+
'addStampButton'
9+
],
10+
#category : #'Pyramid-Toplo-plugin-theme-management'
11+
}
12+
13+
{ #category : #adding }
14+
PyramidAddStampPresenter >> addSelectedStampToElement [
15+
16+
selectedStampToAdd ifNil: [ ^ self ].
17+
18+
selectedStampToAdd command
19+
setValueFor: self stampManagerPresenter currentSelectedElement
20+
with: true.
21+
22+
self refreshStampTreeTable.
23+
]
24+
25+
{ #category : #accessing }
26+
PyramidAddStampPresenter >> addStampButton [
27+
28+
^ addStampButton
29+
]
30+
31+
{ #category : #layout }
32+
PyramidAddStampPresenter >> defaultLayout [
33+
34+
| defaultLayout stampToolBarAddButton |
35+
36+
defaultLayout := SpBoxLayout newVertical spacing: 6; yourself.
37+
38+
stampToolBarAddButton := SpBoxLayout newHorizontal hAlignStart; yourself.
39+
stampToolBarAddButton add: addStampButton width: 380.
40+
41+
defaultLayout add: treeTableAddStamp expand: true.
42+
defaultLayout add: stampToolBarAddButton expand: false.
43+
44+
^ defaultLayout
45+
]
46+
47+
{ #category : #'initialization - deprecated' }
48+
PyramidAddStampPresenter >> initializePresenter [
49+
50+
addStampButton := SpButtonPresenter new
51+
label: 'Add Stamp';
52+
icon: (Smalltalk ui icons iconNamed: #add);
53+
whenActivatedDo: [ self addSelectedStampToElement ].
54+
55+
treeTableAddStamp := SpTreeTablePresenter new.
56+
treeTableAddStamp whenSelectedItemChangedDo: [ :aStampSelected | selectedStampToAdd := aStampSelected ].
57+
treeTableAddStamp addColumn: (SpCompositeTableColumn new
58+
title: 'List of stamps';
59+
addColumn: (SpStringTableColumn evaluated: #name);
60+
yourself).
61+
]
62+
63+
{ #category : #adding }
64+
PyramidAddStampPresenter >> refreshStampTreeTable [
65+
66+
self stampManagerPresenter refreshStampTreeTable
67+
]
68+
69+
{ #category : #accessing }
70+
PyramidAddStampPresenter >> stampManagerPresenter [
71+
72+
^ stampManagerPresenter
73+
]
74+
75+
{ #category : #accessing }
76+
PyramidAddStampPresenter >> stampManagerPresenter: aPyramidStampManagerPresenter [
77+
78+
stampManagerPresenter := aPyramidStampManagerPresenter
79+
]
80+
81+
{ #category : #accessing }
82+
PyramidAddStampPresenter >> treeTableAddStamp [
83+
84+
^ treeTableAddStamp
85+
]

src/Pyramid-Toplo/PyramidContainsValidSelectorInterpreter.class.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Class {
77
'invalidSelectors',
88
'ignoredSelectors'
99
],
10-
#category : #'Pyramid-Toplo-EXPERIMENTAL-plugin-theme-management'
10+
#category : #'Pyramid-Toplo-plugin-theme-management'
1111
}
1212

1313
{ #category : #operating }

src/Pyramid-Toplo/PyramidElementThemeSelectorPresenter.class.st

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ Class {
33
#superclass : #PyramidThemeSelectorPresenter,
44
#instVars : [
55
'projectModel',
6+
'themePropertyManager',
67
'inheritSelector',
78
'labelPresenter',
89
'commandExecutor',
910
'themeCommand'
1011
],
11-
#category : #'Pyramid-Toplo-EXPERIMENTAL-plugin-theme-management'
12+
#category : #'Pyramid-Toplo-plugin-theme-management'
1213
}
1314

1415
{ #category : #'as yet unclassified' }
@@ -67,7 +68,7 @@ PyramidElementThemeSelectorPresenter >> elementsOrSelectionChanged: anEvent [
6768

6869
self triggerThemeChangement: false.
6970
self updatePresenterFor: anEvent selection.
70-
self triggerThemeChangement: true
71+
self triggerThemeChangement: true.
7172
]
7273

7374
{ #category : #accessing }
@@ -83,7 +84,7 @@ PyramidElementThemeSelectorPresenter >> initializePresenters [
8384
themeCommand := PyramidThemeCommand new.
8485
inheritSelector := SpCheckBoxPresenter new
8586
label: 'Inherits from parents';
86-
whenChangedDo: [ :aBoolean | self applyTheme ];
87+
whenChangedDo: [ :aBoolean | self applyTheme. self themeSelector enabled: (aBoolean not) ];
8788
yourself.
8889
labelPresenter := SpLabelPresenter new
8990
label: 'Element Theme (empty select)';
@@ -110,11 +111,11 @@ PyramidElementThemeSelectorPresenter >> projectModel [
110111
PyramidElementThemeSelectorPresenter >> projectModel: aPyramidProjectModel [
111112

112113
projectModel := aPyramidProjectModel.
113-
projectModel
114+
projectModel announcer
114115
when: PyramidElementsChangedEvent
115116
do: [ :evt | self elementsOrSelectionChanged: evt ]
116117
for: self.
117-
projectModel
118+
projectModel announcer
118119
when: PyramidSelectionChangedEvent
119120
do: [ :evt | self elementsOrSelectionChanged: evt ]
120121
for: self.
@@ -170,7 +171,5 @@ PyramidElementThemeSelectorPresenter >> updatePresenterFor: aCollectionOfElement
170171
collectionOfLocalThemes first ifNotNil: [
171172
self inheritSelector state: false.
172173
self themeSelector enabled: true.
173-
self selectTheme: collectionOfLocalThemes first ].
174-
175-
self layout: self defaultLayout
174+
self selectTheme: collectionOfLocalThemes first ]
176175
]

src/Pyramid-Toplo/PyramidSelectorPossibleStamps.class.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Class {
44
#instVars : [
55
'theme'
66
],
7-
#category : #'Pyramid-Toplo-EXPERIMENTAL-plugin-theme-management'
7+
#category : #'Pyramid-Toplo-plugin-theme-management'
88
}
99

1010
{ #category : #'as yet unclassified' }

src/Pyramid-Toplo/PyramidSpaceThemeSelectorPresenter.class.st

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Class {
66
#instVars : [
77
'projectModel'
88
],
9-
#category : #'Pyramid-Toplo-EXPERIMENTAL-plugin-theme-management'
9+
#category : #'Pyramid-Toplo-plugin-theme-management'
1010
}
1111

1212
{ #category : #'as yet unclassified' }
@@ -16,6 +16,29 @@ PyramidSpaceThemeSelectorPresenter >> applyTheme [
1616
self projectModel informElementsChanged
1717
]
1818

19+
{ #category : #accessing }
20+
PyramidSpaceThemeSelectorPresenter >> builder [
21+
22+
^ builder
23+
]
24+
25+
{ #category : #accessing }
26+
PyramidSpaceThemeSelectorPresenter >> builder: anObject [
27+
28+
builder:= anObject.
29+
]
30+
31+
{ #category : #accessing }
32+
PyramidSpaceThemeSelectorPresenter >> editor: aPyramidEditor [
33+
]
34+
35+
{ #category : #displaying }
36+
PyramidSpaceThemeSelectorPresenter >> installOn: aBuilder [
37+
38+
self builder: aBuilder.
39+
40+
]
41+
1942
{ #category : #initialization }
2043
PyramidSpaceThemeSelectorPresenter >> labelPresenter [
2144

0 commit comments

Comments
 (0)