[squeak-dev] Re: [Newbies] material design for squeak!

David T. Lewis lewis at mail.msen.com
Sun Jan 25 17:16:55 UTC 2015


On Sun, Jan 25, 2015 at 09:31:49PM +0530, Mayuresh Kathe wrote:
> On Sun, Jan 25, 2015 at 10:47:43AM -0500, David T. Lewis wrote:
> > On Sun, Jan 25, 2015 at 09:02:35PM +0530, Mayuresh Kathe wrote:
> > > considering the *great* graphics and animation support available under 
> > > squeak, would it be difficult to mould the squeak 'ui' to adhere to 
> > > material design guidelines [1] from google?
> > > 
> > > 1. http://www.google.com/design/spec/material-design/introduction.html
> > > 
> > > ~mayuresh
> > >
> > 
> > Designing and implementing user interfaces tends to be a lot of work, but
> > aside from that I so no reason that it could not be done.
> > 
> > One of the nice aspects of Squeak (often overlooked) is that it provides
> > a concept of "projects" in which different types of user interface
> > environments can be implemented. You can open a Morphic project or an
> > MVC project, and the system will look and feel quite different depending
> > which kind of project you are currently using. The concept can be extended
> > to other kinds of UI implementation, such as the one you are suggesting
> > here.
> > 
> > I am cross-posting to the squeak-dev list, which is probably a better
> > place to continue the discussion.
> > 
> > Dave
> 
> okay, since i am still self-training for smalltalk and all stuff squeak,
> would like to know if the preferred approach be to create my own project
> and do what i want with it without crippling the rest of my system
> image?

Hi Mayuresh,

Start by doing this:

	Project current explore

This will give you an explorer on your current project. This corresponds
to everything that you are interacting with on your Squeak display right
now.

If you have created other projects, they will be linked together though
the nextProject, previousProject, and parentProject that you see in the
explorer.

You will also see a uiManager in your explorer. Your current project is
probably an instance of MorphicProject, and the UI manager will be an
instance of MorphicUIManager. The two cooperate to manage the Morphic
user interface. If you were in an MVC project (try it) you would have an
MVCProject that has an MVCUIManager.

If you browse the class hierarchy for both Project and UIManager, you
will see that these are abstract classes that have subclasses to represent
the Morphic and MVC user interfaces. There is also a related ToolBuilder
hierarchy that is used for creating the the Morphic or MVC tools (browsers,
debuggers, and so forth).

To create a different kind of user interface, you would want to create
new kinds of Project and UIManager, and maybe also ToolBuilder. One way
to get started would be to subclass the existing MorphicProject and
MorphicUIManager, and start changing those subclasses a little bit at
a time until you achieve the behavior you want.

Your new kind of Project would be activated through the Squeak menus. I
will not try to explain that now, but if you look at the toolbar at the
top of the Squeak window, you  will see:

  Project
       -> New Project
            -> New MVCProject
            -> New MorphicProject

So you would add your new kind of project into the menus:

  Project
       -> New Project
            -> New MVCProject
            -> New MorphicProject
            -> New MaterialDesignProject

And more generally, we might hope some day to see a few other kinds
of projects:

  Project
       -> New Project
            -> New MVCProject
            -> New MorphicProject
            -> New MaterialDesignProject
            -> New ScratchProject
            -> New EtoysProject
            -> New Morphic3Project
            -> New SeasideProject

Dave



More information about the Squeak-dev mailing list