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(a)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(a)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(a)iam.unibe.ch
>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev