--- a/FontMenu.st Fri May 16 09:12:53 2014 +0200
+++ b/FontMenu.st Fri May 16 18:00:34 2014 +0200
@@ -13,7 +13,8 @@
MenuPanel subclass:#FontMenu
instanceVariableNames:'fontAspects enabledChannel labelsAreEmphasized
- fontIsSymbolicHolder fontSymbol allowSymbolicFontsHolder'
+ fontIsSymbolicHolder fontSymbol allowSymbolicFontsHolder
+ applicationClass'
classVariableNames:''
poolDictionaries:''
category:'Interface-UIPainter'
@@ -87,6 +88,29 @@
"
! !
+!FontMenu class methodsFor:'help specs'!
+
+helpSpec
+ "This resource specification was automatically generated
+ by the UIHelpTool of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIHelpTool may not be able to read the specification."
+
+ "
+ UIHelpTool openOnClass:FontMenu
+ "
+
+ <resource: #help>
+
+ ^ super helpSpec addPairsFrom:#(
+
+#openFontChooser
+''
+
+)
+! !
+
!FontMenu class methodsFor:'menu specs'!
menu
@@ -96,6 +120,7 @@
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
+
"
MenuEditor new openOnClass:FontMenu andSelector:#menu
(Menu new fromLiteralArrayEncoding:(FontMenu menu)) startUp
@@ -110,98 +135,41 @@
activeHelpKey: useDefaultFontToggle
label: 'enabled'
itemValue: updateModel
- translateLabel: true
indication: enabledChannel
labelImage: (ResourceRetriever SystemBrowser emptyIcon)
)
(MenuItem
activeHelpKey: toggleSymbolicFont
label: 'Symbolic'
- translateLabel: true
isVisible: allowSymbolicFontsAndEnabledHolder
indication: fontIsSymbolicHolder
)
(MenuItem
label: '-'
- translateLabel: true
isVisible: allowSymbolicFontsAndEnabledHolder
)
(MenuItem
- activeHelpKey: symbolicFontName
enabled: enabledChannel
label: 'Symbolic Name'
nameKey: fontSymbol
- translateLabel: true
isButton: true
isVisible: allowSymbolicFontsAndFontIsSymbolicHolder
- submenu:
- (Menu
- (
- (MenuItem
- label: 'labelFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: labelFont
- )
- (MenuItem
- label: 'textFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: textFont
- )
- (MenuItem
- label: 'inputFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: inputFont
- )
- (MenuItem
- label: 'buttonFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: buttonFont
- )
- (MenuItem
- label: 'listFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: listFont
- )
- (MenuItem
- label: 'menuFont'
- itemValue: fontSymbol:
- translateLabel: true
- argument: menuFont
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Other...'
- itemValue: launchFontSymbolDialog
- translateLabel: true
- )
- )
- nil
- nil
- )
+ submenuChannel: symbolicFontsMenu
)
(MenuItem
activeHelpKey: openFontChooser
enabled: enabledChannel
label: 'Choose...'
itemValue: openFontChooser
- translateLabel: true
+ isButton: true
isVisible: enabledAndFontIsNotSymbolicHolder
labelImage: (ResourceRetriever XPToolbarIconLibrary fontIcon)
- isButton: true
)
(MenuItem
activeHelpKey: concreteFontsFamily
enabled: enabledChannel
label: 'Family'
nameKey: fontFamily
- translateLabel: true
isButton: true
isVisible: fontIsNotSymbolicHolder
submenu:
@@ -210,37 +178,31 @@
(MenuItem
label: 'helvetica'
itemValue: fontFamily:
- translateLabel: true
argument: helvetica
)
(MenuItem
label: 'courier'
itemValue: fontFamily:
- translateLabel: true
argument: courier
)
(MenuItem
label: 'times'
itemValue: fontFamily:
- translateLabel: true
argument: times
)
(MenuItem
label: 'clean'
itemValue: fontFamily:
- translateLabel: true
argument: clean
)
(MenuItem
label: 'fixed'
itemValue: fontFamily:
- translateLabel: true
argument: fixed
)
(MenuItem
label: 'lucida'
itemValue: fontFamily:
- translateLabel: true
argument: lucida
)
(MenuItem
@@ -249,7 +211,6 @@
(MenuItem
label: 'Other...'
itemValue: launchFontFamilyDialog
- translateLabel: true
)
)
nil
@@ -261,7 +222,6 @@
enabled: enabledChannel
label: 'Face'
nameKey: fontFace
- translateLabel: true
isButton: true
isVisible: fontIsNotSymbolicHolder
submenu:
@@ -270,13 +230,11 @@
(MenuItem
label: 'bold'
itemValue: fontFace:
- translateLabel: true
argument: bold
)
(MenuItem
label: 'medium'
itemValue: fontFace:
- translateLabel: true
argument: medium
)
(MenuItem
@@ -285,7 +243,6 @@
(MenuItem
label: 'Other...'
itemValue: launchFontFaceDialog
- translateLabel: true
)
)
nil
@@ -297,7 +254,6 @@
enabled: enabledChannel
label: 'Style'
nameKey: fontStyle
- translateLabel: true
isButton: true
isVisible: fontIsNotSymbolicHolder
submenu:
@@ -306,19 +262,16 @@
(MenuItem
label: 'roman'
itemValue: fontStyle:
- translateLabel: true
argument: roman
)
(MenuItem
label: 'italic'
itemValue: fontStyle:
- translateLabel: true
argument: italic
)
(MenuItem
label: 'oblique'
itemValue: fontStyle:
- translateLabel: true
argument: oblique
)
(MenuItem
@@ -327,7 +280,6 @@
(MenuItem
label: 'Other...'
itemValue: launchFontStyleDialog
- translateLabel: true
)
)
nil
@@ -339,7 +291,6 @@
enabled: enabledChannel
label: 'Size'
nameKey: fontSize
- translateLabel: true
isButton: true
isVisible: fontIsNotSymbolicHolder
submenu:
@@ -348,55 +299,46 @@
(MenuItem
label: '6'
itemValue: fontSize:
- translateLabel: true
argument: 6
)
(MenuItem
label: '8'
itemValue: fontSize:
- translateLabel: true
argument: 8
)
(MenuItem
label: '10'
itemValue: fontSize:
- translateLabel: true
argument: 10
)
(MenuItem
label: '12'
itemValue: fontSize:
- translateLabel: true
argument: 12
)
(MenuItem
label: '14'
itemValue: fontSize:
- translateLabel: true
argument: 14
)
(MenuItem
label: '16'
itemValue: fontSize:
- translateLabel: true
argument: 16
)
(MenuItem
label: '18'
itemValue: fontSize:
- translateLabel: true
argument: 18
)
(MenuItem
label: '24'
itemValue: fontSize:
- translateLabel: true
argument: 24
)
(MenuItem
label: '32'
itemValue: fontSize:
- translateLabel: true
argument: 32
)
(MenuItem
@@ -405,7 +347,6 @@
(MenuItem
label: 'Other...'
itemValue: launchFontSizeDialog
- translateLabel: true
)
)
nil
@@ -416,7 +357,6 @@
enabled: enabledChannel
label: 'Encoding'
nameKey: fontEncoding
- translateLabel: true
isButton: true
isVisible: fontIsNotSymbolicHolder
submenu:
@@ -425,13 +365,11 @@
(MenuItem
label: 'latin-1'
itemValue: fontEncoding:
- translateLabel: true
argument: #'iso8859-1'
)
(MenuItem
label: 'unicode'
itemValue: fontEncoding:
- translateLabel: true
argument: #'iso10646-1'
)
(MenuItem
@@ -440,7 +378,6 @@
(MenuItem
label: 'Other...'
itemValue: launchFontEncodingDialog
- translateLabel: true
)
)
nil
@@ -531,8 +468,12 @@
^ fontSymbol
!
-fontSymbol:aSymbol
- fontSymbol := aSymbol.
+fontSymbol:aSymbolOrMenuItem
+ aSymbolOrMenuItem isSymbol ifTrue:[
+ fontSymbol := aSymbolOrMenuItem.
+ ] ifFalse:[
+ fontSymbol := aSymbolOrMenuItem label asSymbol.
+ ].
(self itemAt:#fontSymbol) label:fontSymbol.
self updateModel.
@@ -725,7 +666,7 @@
labelsAreEmphasized := false.
self allowSymbolicFonts:false.
- #( #fontFamily #fontFace #fontStyle #fontSize #fontEncoding) do:[:k|
+ #(fontFamily fontFace fontStyle fontSize fontEncoding) do:[:k|
fontAspects at:k put:(nil asValue)
].
self verticalLayout:false.
@@ -733,7 +674,30 @@
enabledChannel := false asValue.
receiver := self.
- self fontDescription:(self font).
+ self fontDescription:self font.
+ applicationClass := UIPainter applicationClassQuery query ? ApplicationModel.
+! !
+
+!FontMenu methodsFor:'menu spec'!
+
+symbolicFontsMenu
+ |symbolicFontSelectors selectors menu menuLabels menuItems|
+
+ symbolicFontSelectors := (applicationClass methodsWithAnyResource:#(fontSpec)) collect:[:each| each selector].
+
+ symbolicFontSelectors sort.
+
+ selectors := Array new:symbolicFontSelectors size withAll:#fontSymbol:.
+ menuLabels := symbolicFontSelectors, #('-' 'Other...').
+ selectors add:nil; add:#launchFontSymbolDialog.
+
+ menu := Menu labelArray:menuLabels values:selectors.
+ menuItems := menu items.
+ symbolicFontSelectors keysAndValuesDo:[:eachIndex :eachFontSelector|
+ (menuItems at:eachIndex) font:(applicationClass resolveFont:eachFontSelector)
+ ].
+
+ ^ menu
! !
!FontMenu methodsFor:'user actions'!
@@ -839,9 +803,10 @@
!FontMenu class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/FontMenu.st,v 1.29 2011-11-29 10:27:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/FontMenu.st,v 1.30 2014-05-16 16:00:34 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg2/FontMenu.st,v 1.29 2011-11-29 10:27:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/FontMenu.st,v 1.30 2014-05-16 16:00:34 stefan Exp $'
! !
+