[squeak-dev] The Inbox: Morphic-kfr.1064.mcz

Chris Muller asqueaker at gmail.com
Tue Jan 12 02:37:20 UTC 2016


So for example for this one, instead of introducing a new class var
and preference on SystemWindow, just have the class-side method on
SystemWindow do this:

SystemWindow class>>#preferredBackgroundColor
       ^ Preferences colorScheme
             colorFor: {SystemWindow. #preferredBackgroundColor}
             ifNone: [ Color white]

ColorScheme colorFor: would just look up that tuple in its internal
Dictionary.  Now, entire color-coordinated ColorSchemes can be
independent of larger Themes (which include the colorScheme as well as
other non-color related preferences too).


On Mon, Jan 11, 2016 at 8:29 PM, Chris Muller <asqueaker at gmail.com> wrote:
> Just add "thisContext longStack" to a global Set at the top of the
> method.  I did that it found about 13 unique paths to that method,
> they all looked valid.
>
> From what I remember doing that Invertebrite package, there were a LOT
> of different places that needed to be tweaked to access some
> preferred: color instead of a hard-coded color.  For example, after
> thinking I had successful white-on-black everywhere, then there were
> the "Ok" and "Cancel" buttons of UI Dialog, black-on-black.  New cases
> kept popping up even months later.  It ended up being a lot of
> different preferences all scattered about.
>
> Colors have to coordinate with other colors (adjacent), so we have
> reason to recognize some kind of "coordinated set of colors" object
> for this purpose.  I suggest a first-class ColorScheme object simply
> held by Preferences for now, which wraps a Dictionary, so it can grow
> organically to include colors of new widgets as we discover them.
>
>
>
> On Mon, Jan 11, 2016 at 4:33 PM, karl ramberg <karlramberg at gmail.com> wrote:
>> If you try changing Color white to something else, you will see it changes
>> in all lists in all browsers. Some update process is running on all lists in
>> the background.
>>
>> Best,
>> Karl
>>
>> On Mon, Jan 11, 2016 at 11:24 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>>
>>> I'm not sure what you mean by "all the time"..?  You seem to be saying
>>> its sent when it doesn't need to be.  When is that?
>>>
>>> On Mon, Jan 11, 2016 at 3:40 PM, karl ramberg <karlramberg at gmail.com>
>>> wrote:
>>> > Why is this method send all the time ?
>>> > Do we need to filter all lists in all browsers all the time?
>>> >
>>> > PluggableListMorph>>indicateUnfiltered (in category 'filtering')
>>> > ----indicateUnfiltered
>>> >      self color: Color white!
>>> >
>>> > On Sun, Jan 10, 2016 at 6:38 PM, <commits at source.squeak.org> wrote:
>>> >>
>>> >> A new version of Morphic was added to project The Inbox:
>>> >> http://source.squeak.org/inbox/Morphic-kfr.1064.mcz
>>> >>
>>> >> ==================== Summary ====================
>>> >>
>>> >> Name: Morphic-kfr.1064
>>> >> Author: kfr
>>> >> Time: 6 January 2016, 6:38:01.020914 pm
>>> >> UUID: b190605b-c0ac-4b6d-8239-650c69aed317
>>> >> Ancestors: Morphic-eem.1063
>>> >>
>>> >> Add preference backgroundColor to SystemWindows. Add preference to a a
>>> >> few
>>> >> places that where hardcoded to color white.
>>> >>
>>> >> =============== Diff against Morphic-eem.1063 ===============
>>> >>
>>> >> Item was changed:
>>> >>   ----- Method: PluggableListMorph>>indicateUnfiltered (in category
>>> >> 'filtering') -----
>>> >>   indicateUnfiltered
>>> >> +       self color: SystemWindow backgroundColor!
>>> >> -       self color: Color white!
>>> >>
>>> >> Item was changed:
>>> >>   ----- Method: ScrollPane>>defaultColor (in category 'initialization')
>>> >> -----
>>> >>   defaultColor
>>> >>
>>> >> +       ^ SystemWindow backgroundColor!
>>> >> -       ^ Color white !
>>> >>
>>> >> Item was changed:
>>> >>   MorphicModel subclass: #SystemWindow
>>> >>         instanceVariableNames: 'labelString stripes label closeBox
>>> >> collapseBox activeOnlyOnTop paneMorphs paneRects collapsedFrame
>>> >> fullFrame
>>> >> isCollapsed menuBox mustNotClose labelWidgetAllowance updatablePanes
>>> >> allowReframeHandles labelArea expandBox'
>>> >> +       classVariableNames: 'BackgroundColor ClickOnLabelToEdit
>>> >> CloseBoxFrame CloseBoxImageFlat CloseBoxImageGradient
>>> >> CollapseBoxImageFlat
>>> >> CollapseBoxImageGradient DoubleClickOnLabelToExpand ExpandBoxFrame
>>> >> ExpandBoxImageFlat ExpandBoxImageGradient FocusFollowsMouse
>>> >> GradientWindow
>>> >> HideExpandButton MenuBoxFrame MenuBoxImageFlat MenuBoxImageGradient
>>> >> ResizeAlongEdges ReuseWindows TopWindow WindowsRaiseOnClick'
>>> >> -       classVariableNames: 'ClickOnLabelToEdit CloseBoxFrame
>>> >> CloseBoxImageFlat CloseBoxImageGradient CollapseBoxImageFlat
>>> >> CollapseBoxImageGradient DoubleClickOnLabelToExpand ExpandBoxFrame
>>> >> ExpandBoxImageFlat ExpandBoxImageGradient FocusFollowsMouse
>>> >> GradientWindow
>>> >> HideExpandButton MenuBoxFrame MenuBoxImageFlat MenuBoxImageGradient
>>> >> ResizeAlongEdges ReuseWindows TopWindow WindowsRaiseOnClick'
>>> >>         poolDictionaries: ''
>>> >>         category: 'Morphic-Windows'!
>>> >>
>>> >>   !SystemWindow commentStamp: '<historical>' prior: 0!
>>> >>   SystemWindow is the Morphic equivalent of StandardSystemView -- a
>>> >> labelled container for rectangular views, with iconic facilities for
>>> >> close,
>>> >> collapse/expand, and resizing.
>>> >>
>>> >>   The attribute onlyActiveOnTop, if set to true (and any call to
>>> >> activate
>>> >> will set this), determines that only the top member of a collection of
>>> >> such
>>> >> windows on the screen shall be active.  To be not active means that a
>>> >> mouse
>>> >> click in any region will only result in bringing the window to the top
>>> >> and
>>> >> then making it active.!
>>> >>
>>> >> Item was added:
>>> >> + ----- Method: SystemWindow class>>backgroundColor (in category
>>> >> 'preferences') -----
>>> >> + backgroundColor
>>> >> +
>>> >> +       <preference: 'backgroundColor'
>>> >> +               category: 'windows'
>>> >> +               description: 'set the backgound color of window'
>>> >> +               type: #Color>
>>> >> +       ^ BackgroundColor ifNil: [Color white]
>>> >> + !
>>> >>
>>> >> Item was added:
>>> >> + ----- Method: SystemWindow class>>backgroundColor: (in category
>>> >> 'preferences') -----
>>> >> + backgroundColor: aColor
>>> >> +
>>> >> +       BackgroundColor := aColor
>>> >> + !
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> >
>>>
>>
>>
>>
>>


More information about the Squeak-dev mailing list