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]

Reply via email to