[Pkg] The Trunk: PreferenceBrowser-eem.80.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Apr 3 23:25:52 UTC 2017
Eliot Miranda uploaded a new version of PreferenceBrowser to project The Trunk:
http://source.squeak.org/trunk/PreferenceBrowser-eem.80.mcz
==================== Summary ====================
Name: PreferenceBrowser-eem.80
Author: eem
Time: 3 April 2017, 4:25:44.198454 pm
UUID: 934a50d9-f957-43d2-8ce8-ba5f7f4ee104
Ancestors: PreferenceBrowser-ul.79
Add a #Class type preference view (this code was contributed by Marcel Taumael and gratefully received by the publisher who will use it to select bytecode sets).
=============== Diff against PreferenceBrowser-ul.79 ===============
Item was added:
+ PBTextPreferenceView subclass: #PBClassPreferenceView
+ instanceVariableNames: 'styler completionController'
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'PreferenceBrowser'!
Item was added:
+ ----- Method: PBClassPreferenceView class>>initialize (in category 'as yet unclassified') -----
+ initialize
+ PreferenceViewRegistry ofClassPreferences register: self.!
Item was added:
+ ----- Method: PBClassPreferenceView class>>unload (in category 'as yet unclassified') -----
+ unload
+ "Unload order is not guaranteed so guard against failure"
+ [PreferenceViewRegistry ofClassPreferences unregister: self] on: Error do:[]!
Item was added:
+ ----- Method: PBClassPreferenceView>>aboutToStyle: (in category 'styling') -----
+ aboutToStyle: styler
+ "For Shout styling support."
+ ^ true!
Item was added:
+ ----- Method: PBClassPreferenceView>>completionController (in category 'auto completion') -----
+ completionController
+ "For OCompletion support."
+ ^ completionController!
Item was added:
+ ----- Method: PBClassPreferenceView>>initialize (in category 'initialize-release') -----
+ initialize
+ super initialize.
+ styler := (Smalltalk classNamed: 'SHTextStylerST80') ifNotNil: [:s | s new].
+ completionController := (Smalltalk classNamed: 'OController') ifNotNil: [:oc | oc model: self].!
Item was added:
+ ----- Method: PBClassPreferenceView>>preferenceValue (in category 'user interface') -----
+ preferenceValue
+ ^self preference preferenceValue ifNil: [''] ifNotNil: [:cls | cls name]!
Item was added:
+ ----- Method: PBClassPreferenceView>>preferenceValue: (in category 'user interface') -----
+ preferenceValue: aClassName
+
+ | newClass |
+ newClass := Smalltalk classNamed: aClassName asString withBlanksTrimmed.
+
+ "Avoid overwriting the previous setting by mistake unless explicitely stated so."
+ (newClass notNil or: [aClassName = 'nil'])
+ ifTrue: [self preference preferenceValue: newClass].
+
+ ^ true!
Item was added:
+ ----- Method: PBClassPreferenceView>>selectedClassOrMetaClass (in category 'auto completion') -----
+ selectedClassOrMetaClass
+ "For OCompletion support."
+ ^ nil!
Item was added:
+ ----- Method: PBClassPreferenceView>>textField (in category 'user interface') -----
+ textField
+
+ | field |
+ field := PluggableTextMorphPlus
+ on: self
+ text: #preferenceValue
+ accept: #preferenceValue:.
+ field
+ hideScrollBarsIndefinitely;
+ acceptOnCR: true;
+ minimumHeight: 0;
+ vResizing: #rigid;
+ hResizing: #spaceFill;
+ height: TextStyle defaultFont height + 6.
+
+ styler ifNotNil: [:s | field styler: (s view: field)].
+
+ ^ field!
Item was changed:
----- Method: PreferenceViewRegistry class>>forType: (in category 'accessing') -----
forType: typeName
"Answer the preference registry for the given type name"
^typeName caseOf:{
[#Boolean] -> [self ofBooleanPreferences].
[#Color] -> [self ofColorPreferences].
[#Font] -> [self ofFontPreferences].
[#Number] -> [self ofNumericPreferences].
[#String] -> [self ofTextPreferences].
+ [#Class] -> [self ofClassPreferences].
[#Halo] -> [self ofHaloThemePreferences].
[#WindowColor] -> [self registryOf: #windowColorPreferences]
} otherwise:[self registryOf: typeName].!
Item was added:
+ ----- Method: PreferenceViewRegistry class>>ofClassPreferences (in category 'instance creation') -----
+ ofClassPreferences
+ ^(self registryOf: #classPreferences)
+ viewOrder: 3;
+ yourself.!
Item was changed:
----- Method: PreferenceViewRegistry class>>typeOfRegistry: (in category 'accessing') -----
typeOfRegistry: aRegistry
"Answer the type name for a particular view registry"
^aRegistry caseOf:{
[self ofBooleanPreferences] -> [#Boolean].
[self ofColorPreferences] -> [#Color].
[self ofFontPreferences] -> [#Font].
[self ofNumericPreferences] -> [#Number].
[self ofTextPreferences] -> [#String].
+ [self ofClassPreferences] -> [#Class].
[self ofHaloThemePreferences] -> [#Halo].
[self registryOf: #windowColorPreferences] -> [#WindowColor].
} otherwise:[self registries keyAtIdentityValue: aRegistry ifAbsent:[nil]].!
More information about the Packages
mailing list