Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,43 @@ Class {
#category : #'Pyramid-Toplo-plugin-theme-management'
}

{ #category : #asserting }
PyramidThemeFromSpaceExtension class >> shouldInstall [

^ false
]

{ #category : #actions }
PyramidThemeFromSpaceExtension >> configureBuilder: aPyramidEditorBuilder [

(aPyramidEditorBuilder findPlugin: PyramidOpenFromSpacePlugin)
addExtension: self.
(aPyramidEditorBuilder findPlugin: PyramidSpacePlugin) builder
addExtension: self.
self themeSpaceSelector: (aPyramidEditorBuilder findPlugin: PyramidToploThemePlugin)
themePresenter themeSpaceSelector
| pyramidOpenFromSpacePlugin pyramidSpacePlugin pyramidToploThemePlugin |
[
pyramidOpenFromSpacePlugin := aPyramidEditorBuilder findPlugin:
PyramidOpenFromSpacePlugin.
pyramidSpacePlugin := aPyramidEditorBuilder findPlugin:
PyramidSpacePlugin.
pyramidToploThemePlugin := aPyramidEditorBuilder findPlugin:
PyramidToploThemePlugin ]
on: PyramidNoPluginFoundError
do: [ ^ self ].

pyramidOpenFromSpacePlugin addExtension: self.
pyramidSpacePlugin builder addExtension: self.
self themeSpaceSelector:
pyramidToploThemePlugin themePresenter themeSpaceSelector
]

{ #category : #'as yet unclassified' }
PyramidThemeFromSpaceExtension >> configureCloseOnSpace: aSpace [

aSpace toTheme: themeSpaceSelector currentTheme.
aSpace root skinManager postponeRequestSkinIn: aSpace root
]

{ #category : #'as yet unclassified' }
PyramidThemeFromSpaceExtension >> configureOpenFromSpace: aSpace [
"Do something with the space"

self defaultToTheme: aSpace toTheme.
aSpace root skinManager postponeRequestSkinIn: aSpace root
]

{ #category : #accessing }
PyramidThemeFromSpaceExtension >> defaultToTheme [

defaultToTheme ifNil: [ defaultToTheme := PyramidToploThemePlugin defaultTheme new ].
^ defaultToTheme
]

Expand Down
13 changes: 5 additions & 8 deletions src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ PyramidThemeSelectorPresenter >> buttonRefreshTheme [
{ #category : #'as yet unclassified' }
PyramidThemeSelectorPresenter >> currentTheme [

^ self themeSelector selectedItem
^ self themeSelector selectedItem new
]

{ #category : #layout }
Expand Down Expand Up @@ -58,16 +58,14 @@ PyramidThemeSelectorPresenter >> initializeAllPossibleThemes [

allThemes := ToTheme allSubclasses select: [ :theme |
theme canBeDefault ].

allThemes := allThemes collect: [ :each | each new ].

self triggerThemeChangement: false.
self themeSelector items: allThemes.

(previousTheme isNotNil and: [ allThemes includes: previousTheme ])
ifTrue: [ self themeSelector selectItem: previousTheme ]
ifFalse: [ self themeSelector selectItem: allThemes first ].
self triggerThemeChangement: true.
ifFalse: [ self themeSelector selectItem: PyramidToploThemePlugin defaultTheme ].
self triggerThemeChangement: true
]

{ #category : #initialization }
Expand Down Expand Up @@ -96,9 +94,8 @@ PyramidThemeSelectorPresenter >> labelPresenter [
PyramidThemeSelectorPresenter >> selectTheme: aToTheme [

self triggerThemeChangement: false.
self themeSelector items do: [:theme | (theme class) = (aToTheme class) ifTrue: [ self themeSelector selectItem: (theme) ]].
self triggerThemeChangement: true.

self themeSelector selectItem: aToTheme class.
self triggerThemeChangement: true
]

{ #category : #'as yet unclassified' }
Expand Down
31 changes: 31 additions & 0 deletions src/Pyramid-Toplo/PyramidToploThemePlugin.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,40 @@ Class {
'themePresenter',
'themePropertyManager'
],
#classInstVars : [
'defaultTheme'
],
#category : #'Pyramid-Toplo-plugin-theme-management'
}

{ #category : #'as yet unclassified' }
PyramidToploThemePlugin class >> defaultTheme [

defaultTheme ifNil: [
defaultTheme := (ToTheme withAllSubclasses select: [ :e | e canBeDefault ]) last ].
^ defaultTheme
]

{ #category : #'as yet unclassified' }
PyramidToploThemePlugin class >> defaultTheme: anObject [

defaultTheme := anObject
]

{ #category : #'as yet unclassified' }
PyramidToploThemePlugin class >> defaultThemeSettingOn: aBuilder [

<systemsettings>
(aBuilder pickOne: #defaultTheme)
parent: #pyramid;
label: 'Choose the default theme.';
target: self;
domainValues:
(ToTheme withAllSubclasses select: #canBeDefault);
description:
'Define the theme that will be used by default when a new editor is opened.'
]

{ #category : #adding }
PyramidToploThemePlugin class >> toploAntIconCategory [

Expand Down