Re: FVWM: how to start iconified under mouse position

2009-09-08 Thread Lucio Chiappetti

On Mon, 7 Sep 2009, Thomas Adam wrote:

2009/9/7 Lucio Chiappetti lu...@lambrate.inaf.it:


What I'd want to do is to redefine the F4 F5 F6 so that instead of 
issuing a Style command to a pre-existing Laser window, they create 
one, and use the rePointLaser function/event passing to it a different 
shift size (actually a couple of xsize,ysize).



If F4, F5 and F6 have the predefined sizes already...


Well ... the size of the icon is given by the png file associated to the 
style ...




Key F4  PipeRead `echo SetEnv xsize 2  echo SetEnv ysize 4
 start_application_name -options`


I was baffled by the fact you used backquotes `` instead of ''. The former 
freeze everything.


I am not fully there yet. What I wanted were two triplets of commands.

Shift-F1/F2/F3 should CREATE a new pseudocursor of a given shape.
Unshifted F1/F2/F3 should CHANGE the shape of the pseudocursor under the 
mouse.


I thought to define a base style, three variants (LaserA/B/C) associated 
to the three icons, and a current/default style


Style LaserBase StickyIcon, StickyAcrossDesks, Layer 9, !IconTitle,
 IconBox none, PositionPlacement UnderMouse

Style LaserA Icon beam.png , UseStyle LaserBase
Style LaserB Icon circle.png, UseStyle LaserBase
Style LaserC Icon ellipse.png , UseStyle LaserBase

Style Laser UseStyle LaserA

The creation function will imply the initial style via the -name

DestroyFunc PointLaser
AddToFunc   PointLaser
  + I Exec xterm -name Laser$0 -iconic

I originally defined shift-F4/F5/F6 to invoke PointLaser B/C/A. It did 
work but ... see below. Now I use PointLaser (which means only style 
Laser) and pass the icon name as another environment variable


PointerKey  F4 A S PipeRead 'echo SetEnv xof 50 
 echo SetEnv yof 50 
 echo SetEnv ik circle 
 echo PointLaser '
PointerKey  F5 A S PipeRead 'echo SetEnv xof 100 
 echo SetEnv yof 50 
 echo SetEnv ik ellipse 
 echo PointLaser '
PointerKey  F6 A S PipeRead 'echo SetEnv xof 40  
 echo SetEnv yof 40 
 echo SetEnv ik beam
 echo PointLaser '

(it's a bit verbose, I hoped I could call something like MyF 50 50 
circle and move all the PipeRead stuff in the function MyF, but I'm not 
too versed with PipeRead (euphemism, it's the first time I use it, 
though the use of transient environment variables is not unlike some 
techniques of shell programming I used).


This way the event handler is like this

DestroyFunc rePointLaser
AddToFunc   rePointLaser
 + I ThisWindow (Laser*) Move m-$[xof]p m-$[yof]p
 + I ThisWindow (Laser*) Style Laser Icon $[ik].png
 + I UnsetEnv xof
 + I UnsetEnv yof
 + I UnsetEnv ik

DestroyModuleConfig Event-PL: *
*Event-PL: Cmd Function
*Event-PL: add_window rePointLaser

The point is that the unshifted F4/F5/F6 change SHAPE to all existing 
pseudocursors (if more than one exist). Not surprising since now one 
common style Laser is used. Actually even the creation shift-F4/5/6 have 
the side effect that all pre-existing pseudocursors are changed to the 
last shape invoked.


PointerKey (Laser*) F4 I N Style Laser  Icon circle.png
PointerKey (Laser*) F5 I N Style Laser  Icon ellipse.png
PointerKey (Laser*) F6 I N Style Laser  Icon beam.png

What I'd ideally need is a way to change the icon per window from the 
outside (having styles named Lasernnn with a sequential number ?)


PointerKey (Laser*) F4 I N Style of the current window only Icon 
circle.png


For the time being I'd live with what I have, since the real videoconf is 
coming soon, and I won't plan to have more than one pseudocursor at a 
time.  But I'd like a smarter way to do this.



--

Lucio Chiappetti - INAF/IASF - via Bassini 15 - I-20133 Milano (Italy)
For more info : http://www.iasf-milano.inaf.it/~lucio/personal.html



Re: FVWM: how to start iconified under mouse position

2009-09-08 Thread Thomas Adam
2009/9/8 Lucio Chiappetti lu...@lambrate.inaf.it:
 I was baffled by the fact you used backquotes `` instead of ''. The former
 freeze everything.

Quoting is everything.

 I am not fully there yet. What I wanted were two triplets of commands.

 Shift-F1/F2/F3 should CREATE a new pseudocursor of a given shape.
 Unshifted F1/F2/F3 should CHANGE the shape of the pseudocursor under the
 mouse.

Right -- so basically absolutely nothing to do with what you
originally posted then.

 I thought to define a base style, three variants (LaserA/B/C) associated to
 the three icons, and a current/default style

 Style LaserBase StickyIcon, StickyAcrossDesks, Layer 9, !IconTitle,
  IconBox none, PositionPlacement UnderMouse

 Style LaserA Icon beam.png , UseStyle LaserBase
 Style LaserB Icon circle.png, UseStyle LaserBase
 Style LaserC Icon ellipse.png , UseStyle LaserBase

 Style Laser UseStyle LaserA

 The creation function will imply the initial style via the -name

 DestroyFunc PointLaser
 AddToFunc   PointLaser
  + I Exec xterm -name Laser$0 -iconic

Assuming you only launch your Laser$0 windows in this way, this is
fine, else use FvwmEvent to do the iconification on add_window in case
you start PoinLaser via a script or something.

 DestroyFunc rePointLaser
 AddToFunc   rePointLaser
  + I ThisWindow (Laser*) Move m-$[xof]p m-$[yof]p
  + I ThisWindow (Laser*) Style Laser Icon $[ik].png

No -- use WindowStyle here.

+ I ThisWindow (Laser*) WindowStyle Icon $[ik].png

 PointerKey (Laser*) F4 I N Style Laser  Icon circle.png
 PointerKey (Laser*) F5 I N Style Laser  Icon ellipse.png
 PointerKey (Laser*) F6 I N Style Laser  Icon beam.png

No, use WindowStyle here (see above.)

-- Thomas Adam



Re: FVWM: how to start iconified under mouse position

2009-09-08 Thread Lucio Chiappetti

On Tue, 8 Sep 2009, Thomas Adam wrote:


 + I ThisWindow (Laser*) Style Laser Icon $[ik].png


No -- use WindowStyle here.

+ I ThisWindow (Laser*) WindowStyle Icon $[ik].png


THANKS A LOT
WindowStyle does exactly what I needed. Now it all works as wished.

The solution was easy and fast enough to be tested and implemented soon.
I will write a final report for the list in the next days AFTER my 
videoconf.


--

Lucio Chiappetti - INAF/IASF - via Bassini 15 - I-20133 Milano (Italy)
For more info : http://www.iasf-milano.inaf.it/~lucio/personal.html