class: Tools::FontSettingsApplication
class definition
added:
#changeTooltipFont
#postBuildTooltipFontLabel:
#tooltipDef
#tooltipFontLabelHolder
removed: #widgetList
comment/format in:7 methods
changed:6 methods
"{ Package: 'stx:libtool' }"
"{ NameSpace: Tools }"
AbstractSettingsApplication subclass:#FontSettingsApplication
instanceVariableNames:'filter allOfThem labelDef buttonDef listDef menuDef textDef
othersDef allFontLabelHolder buttonsFontLabelHolder
textFontLabelHolder labelsFontLabelHolder listsFontLabelHolder
menusFontLabelHolder otherFontLabelHolder allLabel buttonsLabel
textLabel labelLabel listsLabel menuLabel inputFieldLabel
inputFieldDef inputFieldFontLabelHolder otherLabel
linuxFontWorkaround otherDef tooltipDef tooltipFontLabelHolder
tooltipLabel'
classVariableNames:''
poolDictionaries:''
category:'Interface-Smalltalk'
!
!FontSettingsApplication class methodsFor:'instance creation'!
fontForEncoding:encodingMatch
| inst |
inst := self new.
inst encodingMatch:encodingMatch.
self initialize.
self open.
! !
!FontSettingsApplication class methodsFor:'help specs'!
flyByHelpSpec
"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:FontSettingsAppl
"
<resource: #help>
^ super flyByHelpSpec addPairsFrom:#(
#resetToDefault
'Reset fonts back to original default values (as specified in the window style-file and OS settings)'
#changeToHighContrast
'Change settings for higher contrast.\Useful for presentations and outdor operation'
#changeToBigFonts
'Change settings for bigger fonts.\Useful for presentations'
#changeToHugeFonts
'Change settings for huge fonts.\Useful for presentations'
#changeToSTXLook
'Change settings for an ST/X-like look with fixed-width code fonts'
#changeToSTXLookXft
'Change settings for an ST/X-like look with fixed-width code fonts).\Uses better looking Xft fonts if avaiable (XWindow only)'
#changeToSqueakLook
'Change settings for a Squeak-like look with variable code fonts'
#changeToVisualAgeLook
'Change settings for a VisualAge-like look with bold variable code fonts'
)
"Created: / 17-03-2012 / 11:37:51 / cg"
! !
!FontSettingsApplication class methodsFor:'image specs'!
defaultIcon
<resource: #programImage>
^ ToolbarIconLibrary fontIcon
!
defaultIcon2
<resource: #image>
"This resource specification was automatically generated
by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
the ImageEditor may not be able to read the specification."
"
self defaultIcon2 inspect
ImageEditor openOnClass:self andSelector:#defaultIcon2
Icon flushCachedIcons"
^ Icon constantNamed:#'FontSettingsAppl class defaultIcon2'
ifAbsentPut:[
(Depth4Image new)
width:22;
height:22;
photometric:(#palette);
bitsPerSample:(#( 4 ));
samplesPerPixel:(1);
bits:(ByteArray
fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@!!X @@@@@@@!!X @@@6H@@@@@@DP6H@@@Y!!H@@@@@QDY"@@@BY"@@@@ADQBY"@@@FX @@@@@DQCX @@@6H@@@@@QEP6H@@@@ @@@@
ADUDP @C@@@@@@@DQSH@@@L @@@@@@QEL @@@2@@@@@@ADT2@@@CH@@@@@@DQSH@@@L @@@@@@QEL @@@2@@@@@@QDT2@@@CH@@@@@QDQSH@@@@ @@@@@DQE
P @@@@@@@@@@@DQ@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b');
colorMapFromArray:#[ 0 0 0 255 255 255 150 150 150 213 213 213 215 48 48 134 54 54 240 240 240 ];
mask:((ImageMask new)
width:22;
height:22;
bits:(ByteArray
fromPackedString:'@@@@@G @OG0@O''<@O7>@O<?@A>? A?? A??@A<?@A<>@A<>@A<>@A=>@C?>@G<>@C<\@@8D@@H@@@@@@@@@@@@@@');
yourself);
yourself
]
! !
!FontSettingsApplication class methodsFor:'interface specs'!
windowSpec
"This resource specification was automatically generated
by the UIPainter of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIPainter may not be able to read the specification."
"
UIPainter new openOnClass:Tools::FontSettingsApplication andSelector:#windowSpec
Tools::FontSettingsApplication new openInterface:#windowSpec
Tools::FontSettingsApplication open
"
<resource: #canvas>
^
#(FullSpec
name: windowSpec
window:
(WindowSpec
label: 'Font Settings'
name: 'Font Settings'
flags: 1
min: (Point 10 10)
bounds: (Rectangle 0 0 643 810)
)
component:
(SpecCollection
collection: (
(VerticalPanelViewSpec
name: 'VerticalPanel1'
layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
horizontalLayout: fitSpace
verticalLayout: topSpace
horizontalSpace: 3
verticalSpace: 3
component:
(SpecCollection
collection: (
(TextEditorSpec
name: 'TextEditor1'
style: labelFont
model: infoText
hasHorizontalScrollBar: true
hasVerticalScrollBar: true
miniScrollerHorizontal: true
miniScrollerVertical: true
isReadOnly: true
hasKeyboardFocusInitially: false
extent: (Point 637 132)
viewClassName: 'ListView'
postBuildCallback: postBuildHelpLabel:
)
(ViewSpec
name: 'CodeBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Code'
name: 'Label1'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Text Font'
name: 'Label2'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: textFontLabelHolder
adjust: left
postBuildCallback: postBuildTextFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'Button1'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeTextFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'InputFieldsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Input Fields'
name: 'Input Fields'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'InputFields Font'
name: 'InputFieldsFont'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: inputFieldFontLabelHolder
adjust: left
postBuildCallback: postBuildInputFieldFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'ChangeText'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeInputFieldFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'ListsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Lists'
name: 'Lists'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Lists Font'
name: 'ListsFont'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: listsFontLabelHolder
adjust: left
postBuildCallback: postBuildListsFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'ChangeLists'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeListsFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'MenusBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Menus'
name: 'Menus'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Menus Font'
name: 'MenusFont'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: menusFontLabelHolder
adjust: left
postBuildCallback: postBuildMenuesFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'ChangeMenus'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeMenusFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'LabelsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Labels'
name: 'Labels'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Labels'
name: 'LabelsFont'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: labelsFontLabelHolder
adjust: left
postBuildCallback: postBuildLabelsFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'ChangeLabels'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeLabelsFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'ButtonsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Buttons'
name: 'Buttons'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Buttons Font'
name: 'ButtonsFont'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: buttonsFontLabelHolder
adjust: left
postBuildCallback: postBuildButtonsFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'Change Buttons'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeButtonsFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'ToolTipsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Tooltips'
name: 'Label7'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Label'
name: 'Label8'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: tooltipFontLabelHolder
adjust: left
postBuildCallback: postBuildTooltipFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'Button11'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeTooltipFont
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'OtherBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'All Others'
name: 'Label5'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(LabelSpec
label: 'Label'
name: 'Label6'
layout: (LayoutFrame 110 0 22 0 -2 1 44 0)
translateLabel: true
labelChannel: otherFontLabelHolder
adjust: left
postBuildCallback: postBuildOtherFontLabel:
)
(ActionButtonSpec
label: 'Change...'
name: 'Button9'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeOtherFont
)
(DividerSpec
name: 'Separator13'
layout: (LayoutFrame 0 0.0 -3 1 0 1.0 0 1)
)
)
)
extent: (Point 637 50)
)
(ViewSpec
name: 'AllBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'All'
name: 'All'
layout: (LayoutFrame 0 0.0 0 0 0 1.0 20 0)
translateLabel: true
adjust: left
)
(ActionButtonSpec
label: 'Change...'
name: 'ChangeAll'
layout: (LayoutFrame 0 0.0 22 0 105 0 44 0)
translateLabel: true
tabable: true
model: changeAllFont
)
(DividerSpec
name: 'Separator1'
layout: (LayoutFrame 0 0.0 -3 1 0 1.0 0 1)
)
)
)
extent: (Point 637 50)
)
(CheckBoxSpec
label: 'Linux font workaround: do not reset fonts on snapshot restart'
name: 'LinuxFontWorkaroundBox'
visibilityChannel: linuxFontWorkaroundVisible
model: linuxFontWorkaround
translateLabel: true
extent: (Point 637 30)
)
(DividerSpec
name: 'Separator12'
visibilityChannel: linuxFontWorkaroundVisible
extent: (Point 637 3)
)
(ViewSpec
name: 'SpecialsBox'
component:
(SpecCollection
collection: (
(LabelSpec
label: 'Common Settings:'
name: 'Label4'
layout: (LayoutFrame 0 0.0 11 0 0 1.0 33 0)
translateLabel: true
adjust: left
)
(ActionButtonSpec
label: 'Default'
name: 'Button2'
layout: (LayoutFrame 0 0.0 35 0 130 0 57 0)
activeHelpKey: resetToDefault
translateLabel: true
tabable: true
model: changeToDefault
)
(ActionButtonSpec
label: 'High Contrast'
name: 'Button3'
layout: (LayoutFrame 148 0.0 35 0 298 0 57 0)
activeHelpKey: changeToHighContrast
translateLabel: true
tabable: true
model: changeToHighContrast
)
(ActionButtonSpec
label: 'Big Fonts'
name: 'Button4'
layout: (LayoutFrame 309 0.0 35 0 459 0 57 0)
activeHelpKey: changeToBigFonts
translateLabel: true
tabable: true
model: changeToBigFonts
)
(ActionButtonSpec
label: 'Huge Fonts'
name: 'Button5'
layout: (LayoutFrame 470 0.0 35 0 620 0 57 0)
activeHelpKey: changeToHugeFonts
translateLabel: true
tabable: true
model: changeToHugeFonts
)
(ActionButtonSpec
label: 'ST/X Look'
name: 'Button8'
layout: (LayoutFrame 148 0.0 67 0 298 0 89 0)
activeHelpKey: changeToSTXLook
translateLabel: true
tabable: true
model: changeToSTXLook
)
(ActionButtonSpec
label: 'Squeak Look'
name: 'Button6'
layout: (LayoutFrame 309 0.0 67 0 459 0 89 0)
activeHelpKey: changeToSqueakLook
translateLabel: true
tabable: true
model: changeToSqueakLook
)
(ActionButtonSpec
label: 'V''Age Look'
name: 'Button7'
layout: (LayoutFrame 470 0.0 67 0 620 0 89 0)
activeHelpKey: changeToVisualAgeLook
translateLabel: true
tabable: true
model: changeToVisualAgeLook
)
(ActionButtonSpec
label: 'ST/X Look (Xft)'
name: 'Button10'
layout: (LayoutFrame 148 0.0 99 0 298 0 121 0)
activeHelpKey: changeToSTXLookXft
translateLabel: true
tabable: true
model: changeToSTXLookXft
enableChannel: hasXftFonts
)
)
)
extent: (Point 637 124)
)
)
)
)
)
)
)
! !
!FontSettingsApplication methodsFor:'accessing'!
encodingMatch:aEncodingMatch
aEncodingMatch notNil ifTrue:[
filter := [:f | f encoding notNil
and:[aEncodingMatch match:f encoding]].
].
! !
!FontSettingsApplication methodsFor:'actions'!
basicReadFontSettings
"/ View readStyleSheetAndUpdateAllStyleCaches.
self allOfThem value:SimpleView defaultFont.
self otherDef value:SimpleView defaultFont.
self labelDef value:Label defaultFont.
self buttonDef value:Button defaultFont.
self listDef value:SelectionInListView defaultFont.
self menuDef value:MenuView defaultFont.
self textDef value:TextView defaultFont.
self inputFieldDef value:EditField defaultFont.
self tooltipDef value:ActiveHelpView defaultFont.
"Modified: / 10-10-2011 / 12:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 06-02-2012 / 12:22:39 / cg"
!
basicReadSettings
self basicReadFontSettings.
self readAspects: #(linuxFontWorkaround) from: currentUserPrefs
"Modified: / 10-10-2011 / 12:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 06-02-2012 / 12:22:51 / cg"
!
basicSaveSettings
|fn|
fn := self otherDef value.
SimpleView withAllSubclasses do:[:cls | cls defaultFont:fn].
fn := self labelDef value.
Label defaultFont:fn.
CheckBox defaultFont:fn.
fn := self buttonDef value.
Button defaultFont:fn.
Toggle defaultFont:fn.
fn := self textDef value.
TextView withAllSubclasses do:[:cls | cls defaultFont:fn].
fn := self inputFieldDef value.
EditField withAllSubclasses do:[:cls | cls defaultFont:fn].
fn := self listDef value.
SelectionInListView withAllSubclasses do:[:cls | cls defaultFont:fn].
fn := self tooltipDef value.
ActiveHelpView withAllSubclasses do:[:cls | cls defaultFont:fn].
fn := self menuDef value.
ListView defaultFont:fn.
MenuView defaultFont:fn.
MenuPanel defaultFont:fn.
NoteBookView defaultFont:fn.
PullDownMenu defaultFont:fn.
self writeAspects: #(linuxFontWorkaround) to: currentUserPrefs.
DebugView newDebugger.
"Modified: / 10-10-2011 / 12:15:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
changeAllFont
|f|
self withWaitCursorDo:[
f := FontPanel
fontFromUserInitial:(self allOfThem value)
title:(resources string:'Font for %1' with:'All')
filter:filter.
].
f notNil ifTrue:[
"/ self allOfThem value:(f onDevice:allLabel device).
self otherDef value:(f onDevice:otherLabel device).
self labelDef value:(f onDevice:labelLabel device).
self buttonDef value:(f onDevice:buttonsLabel device).
self listDef value:(f onDevice:listsLabel device).
self menuDef value:(f onDevice:menuLabel device).
self textDef value:(f onDevice:textLabel device).
self inputFieldDef value:(f onDevice:inputFieldLabel device).
]
!
changeButtonsFont
self changeFontFor:self buttonDef labelTitle:'Buttons'.
!
changeFontFor:aHolder labelTitle:labelTitle
|f |
self withWaitCursorDo:[
f := FontPanel
fontFromUserInitial:(aHolder value)
title:(resources string:'Font for %1' with:labelTitle)
filter:filter.
].
f notNil ifTrue:[
aHolder value:(f onDevice:self graphicsDevice).
].
!
changeInputFieldFont
self changeFontFor:self inputFieldDef labelTitle:'Input Fields'.
!
changeLabelsFont
self changeFontFor:self labelDef labelTitle:'Labels'.
!
changeListsFont
self changeFontFor:self listDef labelTitle:'Lists'.
!
changeMenusFont
self changeFontFor:self menuDef labelTitle:'Menus'.
!
changeOtherFont
self changeFontFor:self otherDef labelTitle:'All Others'.
!
changeTextFont
self changeFontFor:self textDef labelTitle:'Edited Text'.
!
changeTooltipFont
self changeFontFor:self tooltipDef labelTitle:'Tooltops'.
! !
!FontSettingsApplication methodsFor:'actions-common looks'!
changeToBigFonts
|fixFont variableFont|
"/ fixFont := (Font family:'courier cew' face:'bold' style:'roman' size:14).
"/ variableFont := (Font family:'arial' face:'bold' style:'roman' size:14).
fixFont := (TextView defaultFont asSize:16).
variableFont := (Label defaultFont asSize:16).
self changeToFix:fixFont variable:variableFont.
"Created: / 06-02-2012 / 12:12:55 / cg"
!
changeToDefault
"/View readStyleSheetAndUpdateAllStyleCaches.
View updateAllStyleCaches.
self basicReadFontSettings.
"Created: / 06-02-2012 / 12:06:00 / cg"
!
changeToFix:fixFont variable:variableFont
self textDef value:fixFont.
self inputFieldDef value:fixFont.
self menuDef value:variableFont.
self listDef value:variableFont.
self labelDef value:variableFont.
self buttonDef value:variableFont.
self otherDef value:variableFont.
self allOfThem value:variableFont.
"Created: / 06-02-2012 / 12:18:34 / cg"
!
changeToHighContrast
|fixFont variableFont|
"/ fixFont := (Font family:'courier New' face:'bold' style:'roman' size:12).
"/ variableFont := (Font family:'arial' face:'bold' style:'roman' size:12).
fixFont := (TextView defaultFont asSize:12) asFace:'bold'.
variableFont := (Label defaultFont asSize:12) asFace:'bold'.
self changeToFix:fixFont variable:variableFont.
"Created: / 06-02-2012 / 12:12:47 / cg"
!
changeToHugeFonts
|fixFont variableFont|
"/ fixFont := (Font family:'courier New' face:'bold' style:'roman' size:16).
"/ variableFont := (Font family:'arial' face:'bold' style:'roman' size:16).
fixFont := (TextView defaultFont asSize:18).
variableFont := (Label defaultFont asSize:18).
self changeToFix:fixFont variable:variableFont.
"Created: / 17-03-2012 / 09:06:18 / cg"
!
changeToSTXLook
|fixFont variableFont|
fixFont := (Font family:'courier new' face:'medium' style:'roman' size:(TextView defaultFont size)).
variableFont := (Font family:'arial' face:'medium' style:'roman' size:(TextView defaultFont size)).
self changeToFix:fixFont variable:variableFont.
"Created: / 17-03-2012 / 11:23:16 / cg"
!
changeToSTXLookXft
|fixFont variableFont|
(Display supportsXFTFonts and:[XftFontDescription notNil]) ifTrue:[
self changeToSTXLook.
^ self.
].
fixFont := (XftFontDescription family:'Courier' face:'regular' style:'roman' size:(TextView defaultFont size)).
variableFont := (XftFontDescription family:'Arial' face:'regular' style:'roman' size:(TextView defaultFont size)).
self changeToFix:fixFont variable:variableFont.
!
changeToSqueakLook
|variableFont|
variableFont := (Font family:'arial' face:'medium' style:'roman' size:(TextView defaultFont size)).
self changeToFix:variableFont variable:variableFont.
"Created: / 17-03-2012 / 11:22:59 / cg"
!
changeToVisualAgeLook
|variableFont variableBoldFont|
variableBoldFont := (Font family:'arial' face:'bold' style:'roman' size:(TextView defaultFont size)).
variableFont := (Font family:'arial' face:'medium' style:'roman' size:(TextView defaultFont size)).
self changeToFix:variableBoldFont variable:variableBoldFont.
self menuDef value:variableFont.
"Created: / 17-03-2012 / 11:22:18 / cg"
! !
!FontSettingsApplication methodsFor:'aspects'!
allFontLabelHolder
allFontLabelHolder isNil ifTrue:[
allFontLabelHolder := '' asValue.
].
^ allFontLabelHolder.
!
allOfThem
"return/create the 'allOfThem' value holder (automatically generated)"
allOfThem isNil ifTrue:[
allOfThem := ValueHolder new.
allOfThem addDependent:self.
].
^ allOfThem
!
buttonDef
"return/create the 'buttonDef' value holder (automatically generated)"
buttonDef isNil ifTrue:[
buttonDef := ValueHolder new.
buttonDef addDependent:self.
].
^ buttonDef
!
buttonsFontLabelHolder
buttonsFontLabelHolder isNil ifTrue:[
buttonsFontLabelHolder := '' asValue.
].
^ buttonsFontLabelHolder.
!
infoText
^ (self resources
string:'FONT_SETTINGS_INFO'
default:'Please notice that changes only affect new windows.
Existing windows usually remember their initial font as created.
If required, reopen some of the views, including the Launcher itself.
Also notice:
unless you save your new settings,
only the current session is affected by changes here.') withCRs
"Created: / 17-08-2010 / 10:52:00 / cg"
!
inputFieldDef
inputFieldDef isNil ifTrue:[
inputFieldDef := ValueHolder new.
inputFieldDef addDependent:self.
].
^ inputFieldDef
!
inputFieldFontLabelHolder
inputFieldFontLabelHolder isNil ifTrue:[
inputFieldFontLabelHolder := '' asValue.
].
^ inputFieldFontLabelHolder.
!
labelDef
"return/create the 'labelDef' value holder (automatically generated)"
labelDef isNil ifTrue:[
labelDef := ValueHolder new.
labelDef addDependent:self.
].
^ labelDef
!
labelsFontLabelHolder
labelsFontLabelHolder isNil ifTrue:[
labelsFontLabelHolder := '' asValue.
].
^ labelsFontLabelHolder.
!
linuxFontWorkaround
linuxFontWorkaround isNil ifTrue:[
linuxFontWorkaround := false asValue.
linuxFontWorkaround onChangeSend:#updateModifiedChannel to:self
].
^ linuxFontWorkaround.
"Created: / 10-10-2011 / 12:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
linuxFontWorkaroundVisible
^OperatingSystem getOSType == #linux
"Created: / 10-10-2011 / 12:57:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
listDef
"return/create the 'listDef' value holder (automatically generated)"
listDef isNil ifTrue:[
listDef := ValueHolder new.
listDef addDependent:self.
].
^ listDef
!
listsFontLabelHolder
listsFontLabelHolder isNil ifTrue:[
listsFontLabelHolder := '' asValue.
].
^ listsFontLabelHolder.
!
menuDef
"return/create the 'menuDef' value holder (automatically generated)"
menuDef isNil ifTrue:[
menuDef := ValueHolder new.
menuDef addDependent:self.
].
^ menuDef
!
menusFontLabelHolder
menusFontLabelHolder isNil ifTrue:[
menusFontLabelHolder := '' asValue.
].
^ menusFontLabelHolder.
!
otherDef
otherDef isNil ifTrue:[
otherDef := ValueHolder new.
otherDef addDependent:self.
].
^ otherDef
!
otherFontLabelHolder
otherFontLabelHolder isNil ifTrue:[
otherFontLabelHolder := '' asValue.
].
^ otherFontLabelHolder.
!
textDef
"return/create the 'textDef' value holder (automatically generated)"
textDef isNil ifTrue:[
textDef := ValueHolder new.
textDef addDependent:self.
].
^ textDef
!
textFontLabelHolder
textFontLabelHolder isNil ifTrue:[
textFontLabelHolder := '' asValue.
].
^ textFontLabelHolder.
!
tooltipDef
tooltipDef isNil ifTrue:[
tooltipDef := ValueHolder new.
tooltipDef addDependent:self.
].
^ tooltipDef
!
tooltipFontLabelHolder
tooltipFontLabelHolder isNil ifTrue:[
tooltipFontLabelHolder := '' asValue.
].
^ tooltipFontLabelHolder.
! !
!FontSettingsApplication methodsFor:'change & update'!
update:something with:aParameter from:changedObject
|whichLabel whichFontLabelHolder|
builder notNil ifTrue:[
changedObject == self allOfThem ifTrue:[
whichLabel := allLabel.
whichFontLabelHolder := self allFontLabelHolder.
].
changedObject == self otherDef ifTrue:[
whichLabel := otherLabel.
whichFontLabelHolder := self otherFontLabelHolder.
].
changedObject == self tooltipDef ifTrue:[
whichLabel := tooltipLabel.
whichFontLabelHolder := self tooltipFontLabelHolder.
].
changedObject == self labelDef ifTrue:[
whichLabel := labelLabel.
whichFontLabelHolder := self labelsFontLabelHolder.
].
changedObject == self buttonDef ifTrue:[
whichLabel := buttonsLabel.
whichFontLabelHolder := self buttonsFontLabelHolder.
].
changedObject == self listDef ifTrue:[
whichLabel := listsLabel.
whichFontLabelHolder := self listsFontLabelHolder.
].
changedObject == self menuDef ifTrue:[
whichLabel := menuLabel.
whichFontLabelHolder := self menusFontLabelHolder.
].
changedObject == self textDef ifTrue:[
whichLabel := textLabel.
whichFontLabelHolder := self textFontLabelHolder.
].
changedObject == self inputFieldDef ifTrue:[
whichLabel := inputFieldLabel.
whichFontLabelHolder := self inputFieldFontLabelHolder.
].
whichLabel notNil ifTrue:[
self updateFontOfLabel:whichLabel andFontNameHolder:whichFontLabelHolder from:changedObject.
^ self.
]
].
super update:something with:aParameter from:changedObject
!
updateAllFontLabels
self update:#value with:nil from:self allOfThem.
self update:#value with:nil from:self otherDef.
self update:#value with:nil from:self labelDef.
self update:#value with:nil from:self buttonDef.
self update:#value with:nil from:self listDef.
self update:#value with:nil from:self menuDef.
self update:#value with:nil from:self textDef.
self update:#value with:nil from:self inputFieldDef.
!
updateFontOfLabel:labelWidget andFontNameHolder:fontNameHolder from:changedObject
|f label|
f := changedObject value.
labelWidget font:f.
label := f isNil ifTrue:[
''
] ifFalse:[
f userFriendlyName
].
fontNameHolder value:label.
self updateModifiedChannel
! !
!FontSettingsApplication methodsFor:'help'!
helpFilename
^ 'Launcher/fontSettings.html'
! !
!FontSettingsApplication methodsFor:'initialization & release'!
postBuildAllFontLabel:aWidget
allLabel := aWidget.
!
postBuildButtonsFontLabel:aWidget
buttonsLabel := aWidget.
!
postBuildHelpLabel:aWidget
aWidget level:0.
aWidget scrolledView backgroundColor:self window viewBackground.
aWidget font:(Label defaultFont).
!
postBuildInputFieldFontLabel:aWidget
inputFieldLabel := aWidget.
!
postBuildLabelsFontLabel:aWidget
labelLabel := aWidget.
!
postBuildListsFontLabel:aWidget
listsLabel := aWidget.
!
postBuildMenuesFontLabel:aWidget
menuLabel := aWidget.
!
postBuildOtherFontLabel:aWidget
otherLabel := aWidget.
!
postBuildTextFontLabel:aWidget
textLabel := aWidget.
!
postBuildTooltipFontLabel:aWidget
tooltipLabel := aWidget.
!
postBuildWith:aBuilder
"/ self readSettings.
self updateAllFontLabels.
super postBuildWith:aBuilder
! !
!FontSettingsApplication methodsFor:'queries'!
hasUnsavedChanges
self otherDef value ~= View defaultFont ifTrue:[^ true].
self labelDef value ~= Label defaultFont ifTrue:[^ true].
self buttonDef value ~= Button defaultFont ifTrue:[^ true].
self listDef value ~= SelectionInListView defaultFont ifTrue:[^ true].
self menuDef value ~= MenuView defaultFont ifTrue:[^ true].
self textDef value ~= TextView defaultFont ifTrue:[^ true].
self inputFieldDef value ~= EditField defaultFont ifTrue:[^ true].
self tooltipDef value ~= ActiveHelpView defaultFont ifTrue:[^ true].
(self hasChangedAspectIn: #(linuxFontWorkaround) asComparedTo:currentUserPrefs) ifTrue:[^ true].
^ false
"Modified: / 10-10-2011 / 12:14:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
hasXftFonts
^ (Display supportsXFTFonts) and:[ XftFontDescription notNil ]
! !
!FontSettingsApplication class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libtool/Tools__FontSettingsApplication.st,v 1.9 2014-07-11 13:40:00 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/libtool/Tools__FontSettingsApplication.st,v 1.9 2014-07-11 13:40:00 cg Exp $'
! !