I am aware of solarized, I do use it for terminal; however I don't think that is a good solution here. I wanted a general solution that would work irrespective of the used colors - so it would for my custom visualizations, as well as roassal examples.
I don't think that this is possible to achieve via interaction, because that would mean overriding every single shape. So maybe subclassing TRMorph and having TRDarkMorph with overriden drawOn: method? That way the original TRMorph would remain intact and this new dark behavior would be supported.
Peter
On Sat, May 2, 2015 at 12:59 PM, Alexandre Bergel alexandre.bergel@me.com wrote:
Hi Peter!
What your propose make sense and deserve to be carefully considered. Instead of modifying TRMorph, maybe we can have an interaction for this? I am not so keen to modify TRMorph.
Also, there exist some color palette that produce good results when use with a white or black background: http://ethanschoonover.com/solarized
Cheers, Alexandre
Le 1 mai 2015 à 19:08, Peter Uhnák i.uhnak@gmail.com a écrit :
Hi,
since I wanted to use DarkTheme I played around with TRMorph (since
seeing giant white rectangle in dark theme is not very nice).
What I have done is moved the background color setting to `surface
clear:` (instead of the original aCanvas fillRectangle).
And then if theme background luminance is dark (>0.5), I invert all the
colors in the visualization.
For dark theme the background is black, and not the theme background -
at least to me it seems that black is much clearer.
Is this something that could be incorporated?
And the modified code:
"protocol: drawing" TRMorph>>drawOn: aCanvas "aCanvas is a FormCanvas" self checkSession. "aCanvas fillRectangle: bounds color: trachelCanvas color." trachelCanvas playAnimations. "The drawing has to be done when a change in the shapes occured or
when there is an animation."
surface drawDuring: [:cs | surface clear: trachelCanvas color. "We display the elements that are subject to the camera" cs pathTransform translateBy: (self extent / 2) asFloatPoint; scaleBy: trachelCanvas camera scale asFloat; translateBy: trachelCanvas camera position negated
asFloatPoint.
trachelCanvas shapes do: [ :trachelShape | trachelShape drawOn: cs. ]. "We display the elements that are _NOT_ subject to the
camera"
cs pathTransform loadIdentity scaleBy: 1.001. trachelCanvas fixedShapes do: [ :trachelShape | trachelShape drawOn: cs. ]. ]. self theme backgroundColor luminance < 0.5 ifTrue: [ surface drawDuring: [ :cs | cs paintMode restoreAfter: [ cs setPaint: Color white. cs paintMode difference. cs drawShape: (0 @ 0 extent:
surface extent)
] ] ]. "aCanvas translucentImage: surface asForm at: self bounds origin." "asForm creates a new Form, which is likely to be expensive. This
can be cached"
aCanvas image: surface asForm at: self bounds origin sourceRect:
(0 @ 0 extent: surface extent) rule: 34.
_______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev