Re: [Pharo-project] annoying press ok when running tests (not headless)
On 15 February 2012 21:18, Stéphane Ducasse stephane.duca...@inria.fr wrote: I am not sure I understand, so let's get more specific. We talk about one package which contains one Morph. I thought the purpose of UITheme is to encapsulate all decisions related to how a morph gets rendered. It's like a strategy. For example, we have UIThemeplainGroupPanelBorderStyleFor: and this is called by the PlainGroupboxMorph. In the same style, I have: UIThemegrowlLabelColorFor: aGrowlMorph ^ Color white GrowlMorphlabelColor ^ self theme growlLabelColorFor: self Is this not the intended way? I do not know :) Because if we generalize that to all the widgets UITheme will explode. And you cannot use a widget without a theme. Then you always asks the theme. I do not like that - Do we want UITheme to be a facade? - Is UITheme our new preference class? - I would prefer to get something like setting - GrowlMorph has a class Var for its labelColor - and somehow The UITheme push its value inside may be the GrowlMorph initialize ask the theme or something like that. - may each UI could register to the UItheme and the UItheme propagate its changes by saying to the widgets I changed ask me what you need. and the widget say I need these values. Now I do not see how Uitheme defining the logic of a widget can scale. Now I'm trying to understand the flow and architecture that the system could have. So we should get some more exercises to see. Yes, different themes can be aware about new widget(s) or not.. I think then we should have some safe way of querying theme GrowlMorphlabelColor ^ self theme setting: #growlLabelColor default: self defaultColor Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, and do it once at initialization stage: Morphinitialize self applyThemeSettings MorphapplyThemeSettings self theme applySettings: self class name to: self defaults: self applyDefaultSettings. MorphapplyDefaultSettings do nothing, subclasses may do otherwise so, now if theme has some settings for new kid on the block (like GrowlMorph), it will apply it directly to newly created widget, if not, then widget will apply own defaults. So, then all the #labelColor can be turned into simple: GrowlMorphlabelColor ^ labelColor (or #propertyAt: .., if you don't like inst vars) whatever. A good reason to have defaults, that it is actually serves as a guide for theme makers, what properties affecting widget appearance/behavior. Yeah.. but it will require a bit of refactoring :) -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote: Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, IIRC from what Gary has posted, it was done that way to easily: 1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle) 2) not have to hold the state in each individual morph. Now: 1) should be much easier/cleaner to do using Announcements. 2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad. As for adding values for new widgets - Why do you need a specific label color for growl rather than use the default theme label color? - If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc) Of course, with the current query every draw cycle-scheme, this is wasteful, but if we move to a locally-managed/responding to Theme changes the overhead would be negligible. It's still quite a lot of work though. Cheers, Henry
Re: [Pharo-project] annoying press ok when running tests (not headless)
On 16 February 2012 13:53, Henrik Johansen henrik.s.johan...@veloxit.no wrote: On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote: Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, IIRC from what Gary has posted, it was done that way to easily: 1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle) 2) not have to hold the state in each individual morph. Now: 1) should be much easier/cleaner to do using Announcements. 2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad. As for adding values for new widgets - Why do you need a specific label color for growl rather than use the default theme label color? - If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc) Yes, status-quo. I agree, that most of the time widgets should use base set of colors (what they are . btw?) provided by theme. But it is not always possible, since some widget could have absolutely unique properties, which cannot be synthesized from any other properties. For example, speaking about Growl morph, it could have settings controlled by theme like: - in what corner of screen to pop up - after how many seconds it should start to fade - should it fade or just disappear immediately - and how long it should fade. So, as you can see, there's nothing in existing themes which you use and apply #lighter/#darker ;) to get these properties. And of course a good widget is one, which has many properties which you can control. Of course, with the current query every draw cycle-scheme, this is wasteful, but if we move to a locally-managed/responding to Theme changes the overhead would be negligible. It's still quite a lot of work though. Cheers, Henry -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
On Feb 16, 2012, at 2:05 PM, Igor Stasenko wrote: On 16 February 2012 13:53, Henrik Johansen henrik.s.johan...@veloxit.no wrote: On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote: Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, IIRC from what Gary has posted, it was done that way to easily: 1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle) 2) not have to hold the state in each individual morph. Now: 1) should be much easier/cleaner to do using Announcements. 2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad. As for adding values for new widgets - Why do you need a specific label color for growl rather than use the default theme label color? - If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc) Yes, status-quo. I agree, that most of the time widgets should use base set of colors (what they are . btw?) provided by theme. But it is not always possible, since some widget could have absolutely unique properties, which cannot be synthesized from any other properties. For example, speaking about Growl morph, it could have settings controlled by theme like: - in what corner of screen to pop up - after how many seconds it should start to fade - should it fade or just disappear immediately - and how long it should fade. Again, if they are fully unique, then why are you consulting a Theme in the first place? Cheers, Henry
Re: [Pharo-project] annoying press ok when running tests (not headless)
On 16 February 2012 14:20, Henrik Johansen henrik.s.johan...@veloxit.no wrote: On Feb 16, 2012, at 2:05 PM, Igor Stasenko wrote: On 16 February 2012 13:53, Henrik Johansen henrik.s.johan...@veloxit.no wrote: On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote: Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, IIRC from what Gary has posted, it was done that way to easily: 1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle) 2) not have to hold the state in each individual morph. Now: 1) should be much easier/cleaner to do using Announcements. 2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad. As for adding values for new widgets - Why do you need a specific label color for growl rather than use the default theme label color? - If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc) Yes, status-quo. I agree, that most of the time widgets should use base set of colors (what they are . btw?) provided by theme. But it is not always possible, since some widget could have absolutely unique properties, which cannot be synthesized from any other properties. For example, speaking about Growl morph, it could have settings controlled by theme like: - in what corner of screen to pop up - after how many seconds it should start to fade - should it fade or just disappear immediately - and how long it should fade. Again, if they are fully unique, then why are you consulting a Theme in the first place? because you want them to be themeable, what else? :) Cheers, Henry -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
On Feb 16, 2012, at 2:20 PM, Henrik Johansen wrote: On Feb 16, 2012, at 2:05 PM, Igor Stasenko wrote: On 16 February 2012 13:53, Henrik Johansen henrik.s.johan...@veloxit.no wrote: On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote: Can't say that i like this pulling model, querying theme over and over again.. I think it would be much nicer to actually use push model, i.e. let theme push a props to widget, IIRC from what Gary has posted, it was done that way to easily: 1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle) 2) not have to hold the state in each individual morph. Now: 1) should be much easier/cleaner to do using Announcements. 2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad. As for adding values for new widgets - Why do you need a specific label color for growl rather than use the default theme label color? - If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc) Yes, status-quo. I agree, that most of the time widgets should use base set of colors (what they are . btw?) provided by theme. But it is not always possible, since some widget could have absolutely unique properties, which cannot be synthesized from any other properties. For example, speaking about Growl morph, it could have settings controlled by theme like: - in what corner of screen to pop up - after how many seconds it should start to fade - should it fade or just disappear immediately - and how long it should fade. Again, if they are fully unique, then why are you consulting a Theme in the first place? By which I mean; A Theme provides an API to a consistent look and feel (color scheme, roundness of widgets etc). As for what you specified, either that IS specific to the Growl Morph, and should therefore be contained in the growl morph (with appropriate settings), or you encase in the theme settings related to generic *pop-up* behavior. I just don't see the use of providing styling info like #growlLabelColor from a *Theme*, for the same reason I don't think #debuggerScrollbarThickness would be an appropriate thing to ask of a Theme. Cheers, Henry
Re: [Pharo-project] annoying press ok when running tests (not headless)
gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-project] annoying press ok when running tests (not headless)
On Feb 15, 2012, at 1:47 PM, Tudor Girba wrote: Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Would be good. Doru could you fix the fact that if I remember correctly you make it dependent on the UIManager? or something like that? But we could really add it to the image so that we have vanishing messages :) Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-project] annoying press ok when running tests (not headless)
Hi, It's not UIManager, but UITheme. I made it dependent on the UITheme in the sense that I moved all the rendering code as an extension. I thought this is the official way to get things working with Polymorph. Did I get it wrong? Cheers, Doru On Wed, Feb 15, 2012 at 1:54 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:47 PM, Tudor Girba wrote: Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Would be good. Doru could you fix the fact that if I remember correctly you make it dependent on the UIManager? or something like that? But we could really add it to the image so that we have vanishing messages :) Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-project] annoying press ok when running tests (not headless)
On Feb 15, 2012, at 1:58 PM, Tudor Girba wrote: Hi, It's not UIManager, but UITheme. I made it dependent on the UITheme in the sense that I moved all the rendering code as an extension. I thought this is the official way to get things working with Polymorph. Did I get it wrong? I do not know. I'm still confused by the responsibility of UITheme vs UIManager vs… Now you do not want that every tools add method to UITheme because imagine that we do that then how each theme can be modular? so far I do not have the right answer. Now GrowlMorph should have setting and get initialized from the UITheme settings Cheers, Doru On Wed, Feb 15, 2012 at 1:54 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:47 PM, Tudor Girba wrote: Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Would be good. Doru could you fix the fact that if I remember correctly you make it dependent on the UIManager? or something like that? But we could really add it to the image so that we have vanishing messages :) Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-project] annoying press ok when running tests (not headless)
On 15 February 2012 17:02, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:58 PM, Tudor Girba wrote: Hi, It's not UIManager, but UITheme. I made it dependent on the UITheme in the sense that I moved all the rendering code as an extension. I thought this is the official way to get things working with Polymorph. Did I get it wrong? I do not know. I'm still confused by the responsibility of UITheme vs UIManager vs… Now you do not want that every tools add method to UITheme because imagine that we do that then how each theme can be modular? Imo, it is simple: the right to use ui theme should have only those object, which actually responsible for ui: widgets and perhaps ui builders. The rest of world should assume UITheme not exists. so far I do not have the right answer. Now GrowlMorph should have setting and get initialized from the UITheme settings Cheers, Doru On Wed, Feb 15, 2012 at 1:54 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:47 PM, Tudor Girba wrote: Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Would be good. Doru could you fix the fact that if I remember correctly you make it dependent on the UIManager? or something like that? But we could really add it to the image so that we have vanishing messages :) Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow -- Best regards, Igor Stasenko.
Re: [Pharo-project] annoying press ok when running tests (not headless)
Hi, I am not sure I understand, so let's get more specific. We talk about one package which contains one Morph. I thought the purpose of UITheme is to encapsulate all decisions related to how a morph gets rendered. It's like a strategy. For example, we have UIThemeplainGroupPanelBorderStyleFor: and this is called by the PlainGroupboxMorph. In the same style, I have: UIThemegrowlLabelColorFor: aGrowlMorph ^ Color white GrowlMorphlabelColor ^ self theme growlLabelColorFor: self Is this not the intended way? Doru On 15 Feb 2012, at 18:04, Igor Stasenko wrote: On 15 February 2012 17:02, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:58 PM, Tudor Girba wrote: Hi, It's not UIManager, but UITheme. I made it dependent on the UITheme in the sense that I moved all the rendering code as an extension. I thought this is the official way to get things working with Polymorph. Did I get it wrong? I do not know. I'm still confused by the responsibility of UITheme vs UIManager vs… Now you do not want that every tools add method to UITheme because imagine that we do that then how each theme can be modular? Imo, it is simple: the right to use ui theme should have only those object, which actually responsible for ui: widgets and perhaps ui builders. The rest of world should assume UITheme not exists. so far I do not have the right answer. Now GrowlMorph should have setting and get initialized from the UITheme settings Cheers, Doru On Wed, Feb 15, 2012 at 1:54 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: On Feb 15, 2012, at 1:47 PM, Tudor Girba wrote: Indeed, this is a project that is since too long on my to do list. I worked on Growl a bit as well, but we need to bring it further. I just pushed the to do towards the top of the list :) I would be happy to collaborate on this issue. Would be good. Doru could you fix the fact that if I remember correctly you make it dependent on the UIManager? or something like that? But we could really add it to the image so that we have vanishing messages :) Cheers, Doru On Wed, Feb 15, 2012 at 1:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote: There is a Growl in Pharo. I improved it :) Stef On Feb 15, 2012, at 12:42 PM, Camillo Bruni wrote: gargl we should have some non-interactive inform: like Growl on Mac. The popups should just open but not block the interaction IMO. On 2012-02-14, at 23:50, Igor Stasenko wrote: i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko. -- www.tudorgirba.com Every thing has its own flow -- www.tudorgirba.com Every thing has its own flow -- Best regards, Igor Stasenko. -- www.tudorgirba.com Innovation comes in least expected form. That is, if it is expected, it already happened.
Re: [Pharo-project] annoying press ok when running tests (not headless)
I am not sure I understand, so let's get more specific. We talk about one package which contains one Morph. I thought the purpose of UITheme is to encapsulate all decisions related to how a morph gets rendered. It's like a strategy. For example, we have UIThemeplainGroupPanelBorderStyleFor: and this is called by the PlainGroupboxMorph. In the same style, I have: UIThemegrowlLabelColorFor: aGrowlMorph ^ Color white GrowlMorphlabelColor ^ self theme growlLabelColorFor: self Is this not the intended way? I do not know :) Because if we generalize that to all the widgets UITheme will explode. And you cannot use a widget without a theme. Then you always asks the theme. I do not like that - Do we want UITheme to be a facade? - Is UITheme our new preference class? - I would prefer to get something like setting - GrowlMorph has a class Var for its labelColor - and somehow The UITheme push its value inside may be the GrowlMorph initialize ask the theme or something like that. - may each UI could register to the UItheme and the UItheme propagate its changes by saying to the widgets I changed ask me what you need. and the widget say I need these values. Now I do not see how Uitheme defining the logic of a widget can scale. Now I'm trying to understand the flow and architecture that the system could have. So we should get some more exercises to see. Stef
[Pharo-project] annoying press ok when running tests (not headless)
i started tests and leaved image for a while, but when i went back hoping that it already finished, i discovered that it waiting for me to press ok and did not ran even 20% of all tests. Somewhere in GoferOperationTesttestMerge it says 'No changes' and waits for the user to press 'ok' -- Best regards, Igor Stasenko.