Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ar.195.mcz ==================== Summary ==================== Name: Morphic-ar.195 Author: ar Time: 26 September 2009, 8:17:47 am UUID: 8db33b9f-5897-ac48-8273-a6f07a03f5c3 Ancestors: Morphic-ml.194 Fixes the standard font chooser for changing default system fonts (list, window, code etc) which require the ability to set the emphasis flags for them. =============== Diff against Morphic-ml.194 =============== Item was changed: ----- Method: TextMorphEditor>>changeTextFont (in category 'attributes') ----- changeTextFont "Present a dialog which allows the user to select a font, and if one is chosen, apply it to the current selection. If there is no selection, or the selection is empty, apply it to the whole morph." | curFont startIndex chooser newFont | startIndex := self startIndex. curFont := (paragraph text fontAt: startIndex withStyle: paragraph textStyle). morph openModal: ( Cursor wait showWhile: [ (chooser := FontChooserTool default withTitle: 'Change the selected text''s font to...' translated for: self setSelector: #changeSelectionFontTo: + getSelector: curFont) + "Do not allow changing the emphasis; we don't know how to deal with + a 'pre-emphasized' font here, so bail." + offerStyleList: false; + open]). - getSelector: curFont) open]). newFont := chooser result. newFont ifNotNil:[self changeSelectionFontTo: newFont].! Item was changed: ----- Method: TextEditor>>changeTextFont (in category 'attributes') ----- changeTextFont "Present a dialog which allows the user to select a font, and if one is chosen, apply it to the current selection. If there is no selection, or the selection is empty, apply it to the whole morph." | curFont startIndex chooser newFont | startIndex := self startIndex. curFont := (paragraph text fontAt: startIndex withStyle: paragraph textStyle). morph openModal: ( Cursor wait showWhile: [ (chooser := FontChooserTool default withTitle: 'Change the selected text''s font to...' translated for: self setSelector: #changeSelectionFontTo: + getSelector: curFont) + "Do not allow changing the emphasis; we don't know how to deal with + a 'pre-emphasized' font here, so bail." + offerStyleList: false; + open]). - getSelector: curFont) open]). newFont := chooser result. newFont ifNotNil:[self changeSelectionFontTo: newFont].! Item was changed: ----- Method: FontChooserTool>>offerStyleList (in category 'initialize') ----- offerStyleList + "Whether to offer a choice of styles with the font." + ^offerStyleList! - "Whether to offer a choice of styles with the font. - Currently disabled since most of the text machinery doesn't like emphasis - already being applied to the font. Would have to decompose font/emphasis - in order for that to work." - ^false! Item was added: + ----- Method: FontChooserTool>>selectedTextStyle (in category 'font list') ----- + selectedTextStyle + + ^TextStyle named: (self selectedFontFamily ifNil:[^TextStyle default]).! Item was changed: ----- Method: FontChooserTool>>pointSizeList (in category 'point size') ----- pointSizeList + ^self selectedTextStyle pointSizes collect: [:each | each asString padded: #left to: 3 with: $ ]! - ^self selectedFont textStyle pointSizes collect: [:each | each asString padded: #left to: 3 with: $ ]! Item was changed: Model subclass: #FontChooserTool + instanceVariableNames: 'title selectedFontIndex fontList target getSelector setSelector pointSize emphasis window result offerStyleList' - instanceVariableNames: 'title selectedFontIndex fontList target getSelector setSelector pointSize emphasis window result' classVariableNames: 'Default' poolDictionaries: '' category: 'Morphic-Support'! !FontChooserTool commentStamp: 'ar 8/30/2009 14:28' prior: 0! A ToolBuilder version of FreeTypePlus' FontChooser[Morph].! Item was changed: ----- Method: FontChooserTool>>selectedFont (in category 'font list') ----- selectedFont + | font | + font := self selectedTextStyle fontOfPointSize: pointSize. - | font family | - family := self fontList at: self selectedFontIndex ifAbsent:[^TextStyle defaultFont]. - font := (TextStyle named: family) fontOfPointSize: pointSize. ^font emphasized: emphasis! Item was added: + ----- Method: FontChooserTool>>offerStyleList: (in category 'initialize') ----- + offerStyleList: aBool + "Whether to offer a choice of styles with the font." + offerStyleList := aBool! Item was changed: ----- Method: FontChooserTool>>initialize (in category 'initialize') ----- initialize super initialize. title := 'Choose A Font'. getSelector := TextStyle defaultFont. + emphasis := 0. + offerStyleList := true.! - emphasis := 0.! Item was removed: - ----- Method: TextEditor>>changeTextFontDialog (in category 'attributes') ----- - changeTextFontDialog - "Present a dialog which allows the user to select a font, and if one is chosen, apply it to the current selection. If there is no selection, or the selection is empty, apply it to the whole morph." - | curFont startIndex chooser newFont | - startIndex := self startIndex. - curFont := (paragraph text fontAt: startIndex withStyle: paragraph textStyle). - (curFont isKindOf: LogicalFont) - ifTrue:[ - curFont := curFont copy. - ((paragraph text emphasisAt: startIndex) anyMask: 1) ifTrue:[curFont forceBold]. - ((paragraph text emphasisAt: startIndex) anyMask: 2) ifTrue:[curFont forceItalicOrOblique]. - curFont clearRealFont]. - morph openModal: ( - Cursor wait showWhile: [ - (chooser := FontChooserTool default - withTitle: 'Change the selected text''s font to...' translated - for: self - setSelector: #changeSelectionFontTo: - getSelector: curFont) open]). - newFont := chooser result. - newFont ifNotNil:[self changeSelectionFontTo: newFont].! |
Free forum by Nabble | Edit this page |