Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
I want to give the thanks to Alain, for the excellent work on
PragmaMenuBuilder! Making menus is elegant and straightforward this way! I post here how i'm using them: MyMorph>>mouseDown: aMouseEvent aMouseEvent redButtonPressed ifTrue:[ self click: aMouseEvent ]. aMouseEvent yellowButtonPressed ifTrue:[ self leftClick: aMouseEvent ]. MyMorph>>leftClick: aMouseEvent self menuBuilder menu popUpInWorld MyMorph>>menuBuilder ^ (PragmaMenuBuilder pragmaKeyword: 'tileMenu' model: self) And you can nicely decouple the menu invocation from the menu creation! Thanks! Fernando |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
he he he.
thanks Fernando. and really really happy that you find it useful. but is see maybe an issue here. It concerns the pragma keyword. It is currently a global keyword. Maybe one should also allow a way to specify where the pragma are to be collected. maybe something like: MyMorph>>menuBuilder ^ (PragmaMenuBuilder localPragmaKeyword: 'tileMenu' model: self ) notice the #localPragmaKeyword:model selector instead of #pragmaKeyword:model. it would constraint the builder to only search pragma locally. does it make sense to you ? Cheers Alain Le 17/02/2011 21:15, Fernando Olivero a écrit : > I want to give the thanks to Alain, for the excellent work on > PragmaMenuBuilder! > Making menus is elegant and straightforward this way! > > I post here how i'm using them: > > MyMorph>>mouseDown: aMouseEvent > aMouseEvent redButtonPressed ifTrue:[ self click: aMouseEvent ]. > aMouseEvent yellowButtonPressed ifTrue:[ self leftClick: aMouseEvent ]. > > MyMorph>>leftClick: aMouseEvent > self menuBuilder menu popUpInWorld > > MyMorph>>menuBuilder > ^ (PragmaMenuBuilder pragmaKeyword: 'tileMenu' model: self) > > And you can nicely decouple the menu invocation from the menu creation! > > Thanks! > > Fernando > > ... [show rest of quote] |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
On Feb 17, 2011, at 9:51 47PM, Alain Plantec wrote:
> he he he. > thanks Fernando. > and really really happy that you find it useful. > > but is see maybe an issue here. It concerns the pragma keyword. > It is currently a global keyword. > Maybe one should also allow a way to specify where the pragma are to be collected. > maybe something like: > > MyMorph>>menuBuilder > ^ (PragmaMenuBuilder localPragmaKeyword: 'tileMenu' model: self ) > > notice the #localPragmaKeyword:model selector instead of #pragmaKeyword:model. > it would constraint the builder to only search pragma locally. > does it make sense to you ? > > Cheers > Alain ... [show rest of quote] Yes, searching the class only would be a good idea, I'd almost consider making it the default and rename #pragmaKeyword: to #globalPragmaKeyword:. It's faster, and in most cases it does what you need, also in the case where you want extensibility (through extension methods, only risk is clashing names) Cheers, Henry |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
On Fri, Feb 18, 2011 at 10:40 AM, Henrik Johansen
<[hidden email]> wrote: > On Feb 17, 2011, at 9:51 47PM, Alain Plantec wrote: > >> he he he. >> thanks Fernando. >> and really really happy that you find it useful. >> >> but is see maybe an issue here. It concerns the pragma keyword. >> It is currently a global keyword. >> Maybe one should also allow a way to specify where the pragma are to be collected. >> maybe something like: >> >> MyMorph>>menuBuilder >> ^ (PragmaMenuBuilder localPragmaKeyword: 'tileMenu' model: self ) >> >> notice the #localPragmaKeyword:model selector instead of #pragmaKeyword:model. >> it would constraint the builder to only search pragma locally. >> does it make sense to you ? >> >> Cheers >> Alain > > Yes, searching the class only would be a good idea, I'd almost consider making it the default and rename #pragmaKeyword: to #globalPragmaKeyword:. > It's faster, and in most cases it does what you need, also in the case where you want extensibility (through extension methods, only risk is clashing names) > > Cheers, > Henry > ... [show rest of quote] Hi, since i'm new to pragmas could you please explain me the diference between global and local searches. I dont understand to whom the local and global context applies to, when using #localPragmaKeyword:model: as oposed to #pragmaKeyword:model:. Fernando |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
On Feb 18, 2011, at 11:31 48AM, Fernando Olivero wrote: > On Fri, Feb 18, 2011 at 10:40 AM, Henrik Johansen > <[hidden email]> wrote: >> On Feb 17, 2011, at 9:51 47PM, Alain Plantec wrote: >> >>> he he he. >>> thanks Fernando. >>> and really really happy that you find it useful. >>> >>> but is see maybe an issue here. It concerns the pragma keyword. >>> It is currently a global keyword. >>> Maybe one should also allow a way to specify where the pragma are to be collected. >>> maybe something like: >>> >>> MyMorph>>menuBuilder >>> ^ (PragmaMenuBuilder localPragmaKeyword: 'tileMenu' model: self ) >>> >>> notice the #localPragmaKeyword:model selector instead of #pragmaKeyword:model. >>> it would constraint the builder to only search pragma locally. >>> does it make sense to you ? >>> >>> Cheers >>> Alain >> >> Yes, searching the class only would be a good idea, I'd almost consider making it the default and rename #pragmaKeyword: to #globalPragmaKeyword:. >> It's faster, and in most cases it does what you need, also in the case where you want extensibility (through extension methods, only risk is clashing names) >> >> Cheers, >> Henry >> > > Hi, since i'm new to pragmas could you please explain me the > diference between global and local searches. > I dont understand to whom the local and global context applies to, > when using #localPragmaKeyword:model: as oposed to > #pragmaKeyword:model:. > > Fernando > ... [show rest of quote] If I understood him correctly, essentially, you limit the scope of a menu symbol. When using globalPragmaKeyword: (pragmaKeyword: today) it will search for methods containing the pragma in the entire system, which means you can have multiple classes defining menu entries in the same (global) menu. When using pragmaKeyword: (or what Alain calls localPragmaKeyword: ), only the hierarchy of the class in in which the method defining the PragmaMenuBuilder would be searched. Thus, you could have two different morph classes both defining <menu: #rightClickMenu> entries, and have their menu builders only pick up those defined for that class. Cheers, Henry |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
In reply to this post by Henrik Sperre Johansen
Le 18/02/2011 10:40, Henrik Johansen a écrit :
> Yes, searching the class only would be a good idea, I'd almost consider making it the default and rename #pragmaKeyword: to #globalPragmaKeyword:. yes, I will do it. > It's faster, and in most cases it does what you need, also in the case where you want extensibility (through extension methods, only risk is clashing names) > > Cheers, > Henry |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
In reply to this post by Henrik Sperre Johansen
exactly.
We have to specify where to search for the pragmas in order to be able to use the same menu pragma keyword in different contexts. I can't dig into it now but this is the idea. Cheers Alain Le 18/02/2011 11:41, Henrik Johansen a écrit : > If I understood him correctly, essentially, you limit the scope of a menu symbol. > > When using globalPragmaKeyword: (pragmaKeyword: today) it will search for methods containing the pragma in the entire system, which means you can have multiple classes defining menu entries in the same (global) menu. > When using pragmaKeyword: (or what Alain calls localPragmaKeyword: ), only the hierarchy of the class in in which the method defining the PragmaMenuBuilder would be searched. > Thus, you could have two different morph classes both defining<menu: #rightClickMenu> entries, and have their menu builders only pick up those defined for that class. > > Cheers, > Henry > |
Free forum by Nabble | Edit this page |