The Trunk: EToys-kfr.339.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: EToys-kfr.339.mcz

commits-2
Karl Ramberg uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-kfr.339.mcz

==================== Summary ====================

Name: EToys-kfr.339
Author: kfr
Time: 1 January 2019, 2:37:14.21875 pm
UUID: d14aae8c-2874-41e9-a1f1-a08d1638ce02
Ancestors: EToys-pre.338

A few changes to TextPropertiesMorph to make it work more like intended.

=============== Diff against EToys-pre.338 ===============

Item was changed:
  ----- Method: TextPropertiesMorph>>changeStyle (in category 'button actions') -----
  changeStyle
  "Put up a menu allowing the user to choose a new style for the TextMorph."
 
+ | anEditor |
+ anEditor := self establishSelectionInterval.
+ anEditor changeTextFont.
+ !
- | aList reply style |
- aList := StrikeFont actualFamilyNames.
- aList addFirst: 'DefaultTextStyle'.
- reply := (SelectionMenu labelList: aList lines: #(1) selections: aList) startUp.
- reply ifNil: [^self].
-
- (style := TextStyle named: reply) ifNil: [Beeper beep. ^ true].
- self applyToWholeText ifTrue: [self activeEditor selectAll].
- self activeEditor changeStyleTo: style copy.
- self activeTextMorph updateFromParagraph.
- self activeTextMorph releaseEditor!

Item was changed:
  ----- Method: TextPropertiesMorph>>establishSelectionInterval (in category '*Etoys-Squeakland-button actions') -----
  establishSelectionInterval
  "If the active editor has a nonempty selection interval, assimilate it."
 
+ | activeEditor itsSize |
- | activeEditor anInterval itsSize |
  activeEditor := self activeEditor.
+ self applyToWholeText ifTrue: [ ^activeEditor selectAll].
+
+ (selectionInterval size > 0)
- anInterval := activeEditor selectionInterval.
- anInterval size > 0
  ifTrue:  "User set it manually, so remember it"
+ [^activeEditor selectInterval:  selectionInterval]
- [selectionInterval := anInterval]
  ifFalse:
  [itsSize := self activeTextMorph text string size.
  selectionInterval := Interval from: selectionInterval start to: (selectionInterval stop min: itsSize).
+ ^activeEditor selectInterval:  selectionInterval]!
- activeEditor selectionInterval:  selectionInterval]!

Item was changed:
  ----- Method: TextPropertiesMorph>>initialize (in category 'initialization') -----
  initialize
  "initialize the state of the receiver"
 
  super initialize.
 
  applyToWholeText := false.
  myTarget
  ifNil:
  [myTarget := TextMorph new openInWorld.
  myTarget contents: ''].
+       selectionInterval := myTarget editor selectionInterval.
+ activeTextMorph := myTarget copy.
+       thingsToRevert
-
- activeTextMorph := myTarget.  "Formerly was a copy..."
-
- thingsToRevert
  add: (#wrapFlag: ->  myTarget isWrapped);
  add: (#autoFit: ->  myTarget isAutoFit);
  add: (#setTextStyle: -> myTarget textStyle);
  add: (#margins: ->  myTarget margins);
  add: (#extent: ->  myTarget extent);
  add: (#textColor: ->  myTarget textColor);
  add: (#restoreText: ->  myTarget text deepCopy).
  self rebuild!

Item was changed:
  ----- Method: TextPropertiesMorph>>targetTextColor (in category 'as yet unclassified') -----
  targetTextColor
+      
+ | attrs c ind |
+       ind := selectionInterval start.
+
+ (ind isNil or: [ind < 1 or: [ind >activeTextMorph text size]]) ifTrue: [ind := 1].
+ attrs :=activeTextMorph text attributesAt: ind.
+ c := attrs detect: [:attr | attr class = TextColor] ifNone: [].
+ ^ c ifNil: [Color black] ifNotNil: [c color].!
-
- ^Color black!