On 10 Feb 2006 16:48:49 +0000, Mikhael Goikhman wrote:
> 
> On 10 Feb 2006 08:25:41 +0000, Nick Fortune wrote:
> > 
> > You'd write
> > 
> >     AliasModule FvwmButtons MonitorPanel
> >     DestroyModuleConfig MonitorPanel
> >     *MonitorPanel: (1x1, Swallow 'asclock' 'Exec exec asclock')
> >     # ...
> >     AddToFunc StartFunction 
> >     + I Module MonitorPanel
> 
> This is an option to consider, before redesigning the module interface.
> However, this syntax will require 2 lines for launching every module,
> AliasModule and Module, instead of just Module. And we also need
> UnaliasModule. I.e. now the user should predeclare all module instances
> he wants to use. I should rething this idea first before agreeing or
> disagreeing with it.

Another serious problem with this suggestion is that now we start to
manipulate with strings like "ColourTable" or "MonitorPanel" and have no
any idea whether they are actually FvwmButtons, FvwmForm, FvwmScript,
FvwmGtk or maybe even FvwmEvent. And these are very different modules
with different configuration syntaxes and command line options.

Several years ago I had and still have the following idea in mind, that
seems to solve all problems. However it applies a restriction on the
module alias name. And this is its only drawback.

The alias name (or more correctly the module id) is anything that is
<modulename>-<subname>. I.e. FvwmScript-ClockMonitor or FvwmForm-Talk.
Now, a module should receive <subname> and not <alias> as we know it.

Then this module id is used everywhere straightforwardly:

  Module FvwmButtons-Monitor -g 240x360
  KillModule FvwmButtons-Monitor
  SendToModule FvwmButtons-Monitor PressButton 2
  *FvwmButtons-Monitor: Colorset 1

I think, this syntax is pretty clean and self-descriptive. If a module
does not accept multiple instances, then it may still be accessible as
FvwmBanner (with no <subname> needed).

The FvwmForm and FvwmScript configurations shipped with fvwm already
follow this naming scheme. As well as all modules in fvwm-themes.

I currently don't see a better solution for module ids.

Regards,
Mikhael.

Reply via email to