Hilaire, It was interesting to watch MS' position on GUI examples change over time. Visual C++ started out teaching how to create efficient software. Then one day those examples were gone and all they could talk about was "smooth scrolling" which turned out to be a way to make the machine do the inefficient thing four times instead of once. The idea of altering the model, finding out what is invalidated, marking that as closely as can be done within bounds of common sense (or until diminishing returns), and then drawing just the changed parts is non-intuitive and VERY important. You have done a wonderful job so far, but optimization deserves attention. Bill -----Original Message----- From: pharo-project-bounces@lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Hilaire Fernandes Sent: Friday, June 11, 2010 7:04 AM To: pharo-project@lists.gforge.inria.fr Subject: Re: [Pharo-project] GUI Polymorph Hi Fernando, Sure we can be more optimal in execution term, but it is not my objective. I want the example to be concise and optimal under this term, so smaller then may be easier to catch. Bill, Yes, you can draw segment. Yes you can optimze but it is not the purpose of the documentation. I try to optimize the documentation to its target: get started with GUI programming with Polymorph, and let the reader enjoy. Please consider proposing, additional advanced chapter in the CollaborActive book for some idea about optimization GUI. I will be really happy to read, to learn and to comment on that. Laurent, I removed the heading sections and replace it with Bold style. Thanks for your feedback. Hilaire Fernando olivero a écrit :
Hi Laurent, great work! We need more documentation!
Just a little coding style i would like to point out.
I see you are using lazy initialization, but in this case i believe its a miss-use of the pattern. Because you always will have a toolbar and a menu bar, since the creation you are sure you need them, why not go and just initialize them before installing.
Let me know what you think.
So i propose changing the implementation to :
initialize super initialize. self initializeMenuBar. self initializeToolbar. ....
and
initializeMenuBar | menu | menu := self window newMenu. menu addToggle: 'Load' target: self selector: #load. menu addToggle: 'Save' target: self selector: #save. menubar := self window newToolDockingBar. menubar add: 'File' font: self window theme menuBarFont icon: nil help: 'File operations' subMenu: menu.
------------------------------------------------------------------------
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project