On Fri, Nov 22, 2002 at 05:13:29PM +0000, Mikhael Goikhman wrote: > On 22 Nov 2002 17:00:57 +0100, Dominik Vogt wrote: > > On Fri, Nov 22, 2002 at 02:48:47PM +0000, Mikhael Goikhman wrote:
[snip] > > Let's assume we have mark, unmark, hide, show, abort and select > > commands (note that an unmark action does not exist yet). Let's > > further assume the user wants: > > > > Alt-Tab: mark* next window, unmark* last window > > -Alt: Select currently marked window, close proxies. > > > > * mark = bring window to the top of the top level layer > > unmark = lower window to default layer > > > > With the predefined functions in ConfigFvwmProxyDefaults (plus > > the hypothetical unmark function): > > > > key tab a m FvwmProxy_Circulate Next (currentpage) > > key -Meta a a SendToModule FvwmProxy Hide > > AddToFunc FvwmProxyMarkFunc > > + I Raise > > + I Layer <some options> > > AddToFunc FvwmProxyUnmarkFunc > > + I Layer <some options> > > > > Note that the user only needs some knowledge about key bindings > > (basics) and how to add something to an existing functions (also > > basics). Even a beginner should understand most of the config - > > perhaps not the SendToModule part (which may be hidden in another > > function FvwmProxy_Hide). > > > > With hard coded defaults: > > > > key tab a m My_Circulate Next (currentpage) > > key -Meta a a SendToModule FvwmProxy Hide > > *FvwmProxy: MarkCommand Function MyMarkFunc > > *FvwmProxy: UnmarkCommand Function MyUnmarkFunc > > AddToFunc MyMarkFunc > > + I SetEnv FvwmProxy_S $w > > + I Raise > > + I Layer <some options> > > AddToFunc MyUnmarkFunc > > + I Layer <some options> > > AddToFunc My_Mark > > + I SendToModule FvwmProxy mark $w > > AddToFunc My_Circulate > > + I WindowId $[FvwmProxy_S] $0 $1 My_Mark > > + I CondCase (Error) $0 $1 My_Mark > > > > You see the difference? In the latter case the user has to worry > > about the internal communication between fvwm and the module which > > makes it very difficult to understand. Even I get confused by the > > complexity. With that, the user has to learn how to write > > complete fvwm functions, configure a module, read the man page and > > copy the contents of the default functions into her config file. > > At the same time she will hopefully not get confused by all the > > abstract stuff from the documentation. > > > > And just imagine what happens when you try to join the _Mark and > > the _Circulate functions into a singe one. I had to split them > > because they require no less than *seven* '$' characters before > > the 'w'. > > > > Things may become a bit easier without keeping the marked window > > id in fvwm, but also slower. > > > > I'd really welcome a way that allows to have a nifty, easy to > > understand default configuration and not requiring to enforce the > > config at fvwm startup for every user. It's okay if configuring > > the module becomes rather complex when doing tricky things. The > > most inexperienced user should be able to > > > > - add something to select and mark easily > > - hide and show the proxies without configuring more than a key > > or mouse binding. > > It seems like you don't get or ignore my suggestion. With it your > configuration above is as trivial as: > > Key Tab A M SendToModule FvwmProxy Circulate Next (CurrentPage) > Key -Meta A A SendToModule FvwmProxy Hide > > This is enough for most of the users. This does not address above usage scenario at all. > And if you think it makes sense to do something else (except for > hilightling the proxy) on the "mark", the module may still have 2 options > MarkCommand and UnmarkCommand (that are by default Nop). > > *FvwmProxy: MarkCommand Layer +1 > *FvwmProxy: UnmarkCommand Layer -1 Actually, I chose an example that needs two commands as the mark function on purpose. Then, your approach does not work anymore and you are back at writing the horrible complex functions I posted. Bye Dominik ^_^ ^_^ -- Visit the official FVWM web page at <URL:http://www.fvwm.org/>. To unsubscribe from the list, send "unsubscribe fvwm-workers" in the body of a message to [EMAIL PROTECTED] To report problems, send mail to [EMAIL PROTECTED]