<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18882">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>OK. There are problems with MC with the way Traits 
are handled between... that's the worst part. in a bit.</FONT></DIV>
<DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>It seems the Traits handling in Monticello differs 
between the old (MC 1.0) and new...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Start from latest trunk image.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>First off, due to an uninitialized variable, it 
seems...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>In FormCanvas</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>setFillColor: aColor<BR>&nbsp;"Install a new color 
used for filling."<BR>&nbsp;| screen patternWord fillColor |<BR>&nbsp;fillColor 
:= self shadowColor ifNil:[aColor].<BR>&nbsp;fillColor ifNil:[fillColor := Color 
transparent].<BR>&nbsp;fillColor isColor ifFalse:[<BR>&nbsp;&nbsp;(fillColor 
isKindOf: InfiniteForm) ifFalse:[^port fillPattern: Color red; combinationRule: 
Form over].<BR>&nbsp;&nbsp;^port fillPattern: fillColor; combinationRule: Form 
over].<BR>&nbsp;"Okay, so fillColor really *is* a color"<BR>&nbsp;port 
sourceForm: nil.<BR>&nbsp;fillColor isTranslucent ifFalse:[<BR>&nbsp;&nbsp;port 
combinationRule: Form over.<BR>&nbsp;&nbsp;port fillPattern: 
fillColor.<BR>&nbsp;&nbsp;self depth = 8 ifTrue:[<BR>&nbsp;&nbsp;&nbsp;"In 8 bit 
depth it's usually a good idea to use a stipple 
pattern"<BR>&nbsp;&nbsp;&nbsp;port fillColor: (form balancedPatternFor: 
fillColor)].<BR>&nbsp;&nbsp;^self].<BR>&nbsp;"fillColor is some translucent 
color"</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;self depth &gt; 8 
ifTrue:[<BR>&nbsp;&nbsp;"BitBlt setup for alpha masked 
transfer"<BR>&nbsp;&nbsp;port fillPattern: fillColor.<BR>&nbsp;&nbsp;self depth 
= 16<BR>&nbsp;&nbsp;&nbsp;ifTrue:[port alphaBits: fillColor privateAlpha; 
combinationRule: 30]<BR>&nbsp;&nbsp;&nbsp;ifFalse:[port combinationRule: Form 
blend].<BR>&nbsp;&nbsp;^self].<BR>&nbsp;"Can't represent actual transparency -- 
use stipple pattern"<BR>&nbsp;screen := Color translucentMaskFor: fillColor 
alpha depth: self depth.<BR>&nbsp;patternWord := form pixelWordFor: 
fillColor.<BR>&nbsp;port fillPattern: (screen collect: [:maskWord | maskWord 
bitAnd: patternWord]).<BR>&nbsp;port combinationRule: Form 
paint.<BR></FONT></DIV>
<DIV><FONT size=2 face=Arial>That will avoid an issue with the use of Forms for 
the window corner grips as in trunk...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Load Polymorph-Squeak-Widgets-gvc.3 from 
UIEnhancements on SqueakSource.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>You should be able to pick from the Universe 
browser, in the User Interface category...</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Polymorph ToolBuilder version 
1.4</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Polymorph Widgets version 
1.5</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Now, from the Universes browser, in the User 
Inteface category, select the package for Polymorph ToolBuilder version 14. 
(Polymorph Widgets version will be auto selected for install as a 
consequence).</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>You'll get some debuggers due to MC trait 
handling...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Each one, you will need to modifiy the instance 
variables on the MCClassDefinition for traitComposition and 
classTraitComposition to not be strings... (replace the single quotes with 
appropriate left and righ curly braces to turn into an array with the real 
trait)...</FONT></DIV>
<DIV><FONT size=2 face=Arial>Restart the "createClass" method and proceed... 
repeat. I sometimes with I'd not used traits at all at this 
point...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Where you have the one with TEasilyThemed - {theme} 
replace with {TEasilyThemed}.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Once loaded (hopefullly) it will complain again for 
obselections... reverse the above procedure, replacing the curly brackets with 
single quotes again (don't ask why...).</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>OK, should be saveable now...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>To fix up the corner grips you can remove #drawOn: 
methods from subclasses of CornerGripMorph then revert the change made to 
FormCanvas&gt;&gt;setFillColor:</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>A couple of precautions before the next 
step...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Add the following method to 
PluggableButtonMorph...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>gradientLook<BR>&nbsp;"Defer to 
preferences."</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;^Preferences gradientButtonLook</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>and to PasteUpMorph</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>defaultYellowButtonMenuEnabled<BR>&nbsp;"Defer to 
preferences."</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;^Preferences generalizedYellowButtonMenu 
</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Those will be fixed in the Squeak adaptations 
soon...(backstops for Preferences/settings difference with Pharo).</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>To go to latest version of Polymorph from 
SqueakSource...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Load </FONT><FONT size=2 
face=Arial>Polymorph-Squeak-Widgets-gvc.3.</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Merge 
Polymorph-Widgets-gvc.110.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>The (sadly dysfunctional) MC merge browser won't 
let you do anything.</FONT></DIV>
<DIV><FONT size=2 face=Arial>Halo, inspect model...</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; Find the one conflict after a 
few inspects... change/save the inst var chooseRemote to false</FONT></DIV>
<DIV><FONT size=2 face=Arial>&nbsp;&nbsp;&nbsp; in the inspector, bottom pane, 
do "self merge"...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Should be in a useable state from here, though a 
potential hang with using the main docking bar...</FONT></DIV>
<DIV><FONT size=2 face=Arial>Everything else is down to fonts and trunk 
changes...</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Good luck, eamil directly if there's any problems 
(expected as done from recent memory here...)</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Aside,... this is just for reference, just for 
Polymorph as it is, as such. I'd hope that Squeak gets into a better state where 
none of this is needed for future other UI stuff.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV>Regards, Gary<BR></DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B> 
  <A title=smalltalktelevision@gmail.com 
  href="mailto:smalltalktelevision@gmail.com">Chris Cunnington</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=squeak-dev@lists.squeakfoundation.org 
  href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, March 13, 2010 5:20 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [squeak-dev] Re: Regarding 
  Polymorph</DIV>
  <DIV><BR></DIV><SPAN 
  style="FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: medium; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px" 
  class=Apple-style-span><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px">Gary Chambers said: </PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px">"For what it is worth...</PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px">I have been able to load Polymorph into trunk, not the easiest (mainly due 
to MC differences wrt Traits), takes
around 5 minutes of manual fixing while loading...

Once "in", clearly shows up the areas that have changed in trunk though...

(process instructions available if desired...)"</PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px"><BR></PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px">I'd like to see that. If you're offering instructions to load into the Trunk, I'd like them, please. And if you might provide an example for when it's loaded, something like Ellipse new openInWorld, or some kind of first Polymorph widget to look at. That would be great. </PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px">Chris </PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px"><BR></PRE><PRE style="FONT-FAMILY: monospace; MARGIN-LEFT: 3em; FONT-SIZE: 12px"><BR></PRE></SPAN>
  <P>
  <HR>

  <P></P><BR></BLOCKQUOTE></BODY></HTML>