Subject: Library, WindowList, MouseWarp & Menu patch

From: [email-masked] (Albrecht Kadlec)
Date: Thu, 26 Sep 96 03:37:09 +0200

patch (including man pages) at:
	<URL:http://www.auto.tuwien.ac.at:80/~albrecht>

attached a small overview over the new features.

check it out,
Bugs not reported till Okt 1st have to be take care of by YOU

(You see, the men in green will take me away.
It'll take for at least a month, till I can look into my account again.)
I've finally put my money where my mouth was, and put a week of effort into
this. 

Hope, you can use it.
Hope it finds it's way into the release.

albrecht

User level changes:

MenuStyle forecolor backcolor shadecolor font style mousewarp

	mousewarp separated from mwm/fvwm distinction

Popup PopupName command
Menu MenuName double_click_action command
	optional Command parameter

Prev [condition] command
Next [condition] command
None [condition] command
	enhanced condition to recognize all binary style flags
	and "WindowID #"
	(is there any test, if a windowid is valid, fvwm coredumps, 
	if the user hardcodes an invalid windowid ?) 
	(PS to Chuck: I'd still like to have the functions that need a
	window parse an optional numeric windowID argument.)

WindowList option[condition] command
	included #ifdef MINI_ICON support (by Brady Montz)
	added IconName, Geometry, MiniIcon & Sorted option
	added condition (a'la Prev/Next/None)
	added optional command (a'la Menu/PopUp) to WindowList,

	I now use:
	WindowList -geometry+miniicon[.iconic-sticky-ontop-circulateskip]

	and 
	AddToFunc WindowListFunction "I" Next [windowid $0] focus
	+			"I"	Next [windowid $0] raise
	+			"I"	Next [windowid $0] iconify -1

this all uses my reworked library (somewhat):

	it's a drop in of current lib.

	prototypes added to fvwmlib.h
		(module authors should include fvwmlib.h and remove  
		lib prototypes from their files in the long run)
	
	provided parsetables concept to get rid of endless 
		if (!mystrcasecmp(line,"Windowlistskip",14))
		parsing constructs for binary options.

	consistent use of isspace() ... macros
		(they're faster than if's anyway) 

	MatchToken
		faster way to parse options than mystrncasecmp
		currently there's a 
		#define mystrncasecmp(a,b,n) (!MatchToken(a,b))
		to use the new function for parsing
		(mystrncasecmp was _never_ used for anything else)
		This will vanish as soon as the last mystrncasecmp
		vanishes.

	SkipSpaces & other handy macros (ripped from here & there)

	stripcpy merged with CopyString
		they both did the same, but had different weaknesses
		#defined CopyString using stripcpy

	#define SendInfo SendText
		since they were the same anyway.

	seekright()
		This should be the base for consistent parsing in
		fvwm: if only this function is used, quoting will be
		consistent throughout .fvwm2rc.

		If you need extended functionality, add it here, so
		everybody will benefit. (e.g: I could imagine moving
		the environment variable expansion in here)

	#define GetNextToken with seekright() 
		(ripped from FvwmButtons, thanks, Jarl)

		This is an attempt to clear the quoting jungle:
		(somewhere there's NO quote parsing, somplace
		GetNextToken() was used, and somewhere seekright() was
		used, with GetNextToken being halfways between the
		other two possibilities.

		This could have serious effects on existing .fvwm2rc
		files, since it makes the quoting djungle more
		consistent, therefore there are now less places where
		unquoted (backslashed) quotes are handed down to the 
		application.
		My .fvwm2rc works without changes.

		When all occurences of GetNextToken are replace by
		seekright, this macro will vanish.
		GetNextToken might then reappear with a new parameter
		format and new semantic (maybe non-malloc-copying)

		(I would have liked to keep the name GetNextToken,
		but it simply has the worse Interface.)
	
BUGS:
	on a last glance the menu delimiters don't seem to work any more.
	will look into this tomorrow.
-- 
Jesus, Mother Mary and a cloaked man are playing golf. Jesus tees off
and gets a hole-in-one. Mother Mary tees off and gets a hole-in-one.
The cloaked man tees off and misses the green completely and goes into
the water-trap. A fish spurts the ball out of the water, a bird
catches it and gives it to a squirrel, who drops it in the hole. Jesus
says "Dad, are you going to play golf, or what?"
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked].

---

From: [email-masked] (Albrecht Kadlec)
Date: Thu, 26 Sep 96 20:07:25 +0200

>>>>> Albrecht Kadlec writes:

seekright problems fixed.
I can now even predict the quotes needed for several layers of functions,
being arguments of functions ;^)

A> patch (including man pages) at:
A> 	<URL:http://www.auto.tuwien.ac.at:80/~albrecht>

A> check it out,
A> Bugs not reported till Okt 1st have to be taken care of by YOU

albrecht
-- 
A news reader I have used "WinVn" sometimes would say "busy, what a
bit", which meant try again in a little while.... :^)
					-- found in a newsgroup
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked].

---

From: [email-masked] (Albrecht Kadlec)
Date: Sat, 28 Sep 96 01:44:58 +0200

(some more tiny bugs ironed out)

Library, WindowList, MouseWarp & Menu patch V3 (includes the other 2)

FvwmAudio (rsynth say or arbitrary command / parameter support)
FvwmAuto (arbitrary command support, don't use "close" with a low timeout :)

both as patch and .tar.gz

FvwmAuto.c has grown by -876 bytes (hmm... should be called "shrunk")

A> check it out,
A> Bugs reported after Okt 1st have to be taken care of by YOU

albrecht
-- 
You're just another coffin on its way down the emerald aisle
  Where the children's stoney glances mourn your death
in a terrorist's smile.				-- Marillion
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked].