Nice!
Haven't had time to delve deep in the code, but installing went fine.
One thing I feel would be useful is some more class-comments,
for example in the core-package explaining each setting type, when to
use it over another (FixedSetting vs Setting), etc.

One thing I was wondering after reading the declaration parts in
previous mails was how to add an item to an existing setting's list (alá
SettingSandBox1>> themeSetting) in a separate package (and remove it if
package is unloaded), the pragmas make this doable I guess?

Cheers,
Henry

Alain Plantec wrote:
> Hi all,
>
> Here my last setting package version
> with a test package (Tests-System-Settings) :)
>
> I've also added a Menu part which allows the using of
> pragma for menu discovering and assembling on the fly.
> This addon fully reuse what is done for settings.
> The idea is the same: use pragma within particular methods
> which are defining menu items (thanks to Lukas again for the idea  ;-) )
> The menu assembler is able to collect them and to popup the menu
> dynamically.
>
> The consequences are
> - no need for TheWorldMenu class and
> - this would be the end of #registerOpenCommand: and
> #unregisterOpenCommand:.
>
> As for settings, the main benefit is that menu items are brought by
> packages.
> An application specific menu can be added anywhere in the world menu.
> One could also use this feature in order to allow user-defined menu
> entries.
>
> As an example, I've re-defined a part of the world menu.
> it is implemented in MenuSettings class (package SettingSandBox1).
> Such a menu is dynamically assembled and is popup very quickly.
> So I think that there would be no more need for a world menu instance
> kept alive in the system.
>
> you can try it with:
>
> WorldMenuAssembler new doPopUpMenu
>
> You can also use
>
> SystemMenuTree new open
>
> in order to browse all menu entries.
> It is only a very simple version.
> Maybe it could be used in order to implement a 'menu editor' tool:
> define your menus and generate corresponding code.
>
>
> Here are two examples of methods with menu pragma from MenuSettings
> class.
>
> - the Save item : a simple item with one target and one selector
> wmSave
>    <worldMenu>
>    ^ (SettingManager newMenu: 'Save') target: SmalltalkImage current;
>         selector: #saveSession;
>         previous: #wmSystemSettings;
>         description: 'save the current version of the image on disk'
>
> - the ToolsSet item set : a multi node with a collection of menu items
> wmToolSet
>    <worldMenu>
>    ^ (SettingManager newMenuSiblings name: 'Toolset')
>        line: true;
>        menus: (ToolSet default mainMenuItems
>                collect: [:item | (SettingManager newMenu: item first)
>                        target: ToolSet default;
>                        selector: item second])
>
> Cheers
>
> alain
>
>
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to