[beryl-commits] Animation plugin: Changes to 'master' (04b687b03423a7461769b4b1cf01afdf06866448)

maniac at server.beryl-project.org maniac at server.beryl-project.org
Sun Jun 3 12:54:00 CEST 2007


New commits:
commit 04b687b03423a7461769b4b1cf01afdf06866448
Author: Danny Baumann <dannybaumann at web.de>
Date:   Sun Jun 3 12:47:57 2007 +0200

    Use int options and int descriptions for the animation type options.


 animation.c   |  346 +++++++----------
 animation.xml | 1240 ++++++++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 1045 insertions(+), 541 deletions(-)


Modified: compcomm/plugins/animation/animation.c
===================================================================
--- compcomm/plugins/animation/animation.c
+++ compcomm/plugins/animation/animation.c
@@ -339,26 +339,26 @@ typedef enum
 	AnimDirectionLeft,
 	AnimDirectionRight,
 	AnimDirectionRandom,
-	AnimDirectionAuto,
-	AnimDirectionNum
+	AnimDirectionAuto
 } AnimDirection;
+#define LAST_ANIM_DIRECTION 5
 
 typedef enum
 {
 	ZoomFromCenterOff = 0,
 	ZoomFromCenterMin,
 	ZoomFromCenterCreate,
-	ZoomFromCenterOn,
-	ZoomFromCenterNum
+	ZoomFromCenterOn
 } ZoomFromCenter;
+#define LAST_ZOOM_FROM_CENTER 3
 
 // Polygon tesselation type: Rectangular, Hexagonal
 typedef enum
 {
 	PolygonTessRect = 0,
-	PolygonTessHex,
-	PolygonTessNum
+	PolygonTessHex
 } PolygonTess;
+#define LAST_POLYGON_TESS 1
 
 typedef enum
 {
@@ -387,6 +387,8 @@ typedef enum
 	AnimEffectNum
 } AnimEffect;
 
+#define RANDOM_EFFECT_OFFSET 2 /* skip none and random */
+
 static AnimEffect minimizeEffectType[] = {
 	AnimEffectNone,
 	AnimEffectRandom,
@@ -407,6 +409,8 @@ static AnimEffect minimizeEffectType[] = {
 	AnimEffectZoom
 };
 #define NUM_MINIMIZE_EFFECT (LIST_SIZE(minimizeEffectType))
+#define LAST_MINIMIZE_EFFECT 16
+#define LAST_RANDOM_MINIMIZE_EFFECT 14
 
 static AnimEffect closeEffectType[] = {
 	AnimEffectNone,
@@ -430,6 +434,8 @@ static AnimEffect closeEffectType[] = {
 	AnimEffectZoom
 };
 #define NUM_CLOSE_EFFECT (LIST_SIZE(closeEffectType))
+#define LAST_CLOSE_EFFECT 18
+#define LAST_RANDOM_CLOSE_EFFECT 16
 
 static AnimEffect focusEffectType[] = {
 	AnimEffectNone,
@@ -438,6 +444,7 @@ static AnimEffect focusEffectType[] = {
 	AnimEffectWave
 };
 #define NUM_FOCUS_EFFECT (LIST_SIZE(focusEffectType))
+#define LAST_FOCUS_EFFECT 3
 
 static AnimEffect shadeEffectType[] = {
 	AnimEffectNone,
@@ -447,6 +454,8 @@ static AnimEffect shadeEffectType[] = {
 	AnimEffectRollUp
 };
 #define NUM_SHADE_EFFECT (LIST_SIZE(shadeEffectType))
+#define LAST_SHADE_EFFECT 4
+#define LAST_RANDOM_SHADE_EFFECT 2
 
 typedef struct RestackInfo
 {
@@ -739,76 +748,6 @@ AnimEffectProperties *animEffectPropertiesTmp;
 	 (dir) == 2 ? WIN_X(w) - (WIN_X(dw) + WIN_W(dw)) : \
 	              (WIN_X(w) + WIN_W(w)) - WIN_X(dw))
 
-
-static AnimEffect
-animEffectFromString (CompOptionValue *value, 
-					  AnimEffect *allowedEffects,
-					  unsigned int allowedEffectsNum)
-{
-	AnimEffect effect;
-	int i;
-
-	/* first check if string is valid */
-	if (strcasecmp (value->s, "random") == 0)
-		effect = AnimEffectRandom;
-	else if (strcasecmp (value->s, "beam up") == 0)
-		effect = AnimEffectBeamUp;
-	else if (strcasecmp (value->s, "burn") == 0)
-		effect = AnimEffectBurn;
-	else if (strcasecmp (value->s, "curved fold") == 0)
-		effect = AnimEffectCurvedFold;
-	else if (strcasecmp (value->s, "dodge") == 0)
-		effect = AnimEffectDodge;
-	else if (strcasecmp (value->s, "domino") == 0)
-		effect = AnimEffectDomino3D;
-	else if (strcasecmp (value->s, "dream") == 0)
-		effect = AnimEffectDream;
-	else if (strcasecmp (value->s, "explode") == 0)
-		effect = AnimEffectExplode3D;
-	else if (strcasecmp (value->s, "fade") == 0)
-	{
-		if (allowedEffects == focusEffectType)
-			effect = AnimEffectFocusFade;
-		else
-			effect = AnimEffectFade;
-	}
-	else if (strcasecmp (value->s, "glide 1") == 0)
-		effect = AnimEffectGlide3D1;
-	else if (strcasecmp (value->s, "glide 2") == 0)
-		effect = AnimEffectGlide3D2;
-	else if (strcasecmp (value->s, "horizontal folds") == 0)
-		effect = AnimEffectHorizontalFolds;
-	else if (strcasecmp (value->s, "leaf spread") == 0)
-		effect = AnimEffectLeafSpread3D;
-	else if (strcasecmp (value->s, "magic lamp") == 0)
-		effect = AnimEffectMagicLamp;
-	else if (strcasecmp (value->s, "magic lamp vacuum") == 0)
-		effect = AnimEffectMagicLampVacuum;
-	else if (strcasecmp (value->s, "razr") == 0)
-		effect = AnimEffectRazr3D;
-	else if (strcasecmp (value->s, "roll up") == 0)
-		effect = AnimEffectRollUp;
-	else if (strcasecmp (value->s, "sidekick") == 0)
-		effect = AnimEffectSidekick;
-	else if (strcasecmp (value->s, "wave") == 0)
-		effect = AnimEffectWave;
-	else if (strcasecmp (value->s, "zoom") == 0)
-		effect = AnimEffectZoom;
-	else
-		effect = AnimEffectNone;
-
-	/* and check if this effect is allowed for
-	   the current animation */
-	for (i = 0; i < allowedEffectsNum; i++)
-		if (effect == allowedEffects[i])
-			break;
-
-	if (i == allowedEffectsNum)
-		return AnimEffectNone;
-	else
-		return effect;
-}
-
 // iterate over given list
 // check if given effect name matches any implemented effect
 // Check if it was already in the stored list
@@ -830,24 +769,22 @@ animStoreRandomEffectList (CompOptionValue *value,
 
 	for (i = 0; i < nItems; i++, effect++)
 	{
-		listEffect = animEffectFromString (effect,
-										   allowedEffects,
-										   numAllowedEffects);
-
-		if (listEffect == AnimEffectNone)
-			continue;
+	    if ((effect->i < 0) || (effect->i >= numAllowedEffects))
+		continue;
 
-		for (j = 0; j < count; j++)
-		{
-			if (targetList[j] == listEffect)
-				break;
-		}
+	    listEffect = allowedEffects[effect->i];
+		
+	    for (j = 0; j < count; j++)
+	    {
+		if (targetList[j] == listEffect)
+		    break;
+	    }
 
-		if (j < count)
-			continue;
+	    if (j < count)
+		continue;
 
-		targetList[count] = listEffect;
-		count++;
+	    targetList[count] = listEffect;
+	    count++;
 	}
 
 	*targetCount = count;
@@ -5663,65 +5600,51 @@ animSetScreenOptions(CompPlugin *plugin,
 	switch (index)
 	{
 	case ANIM_SCREEN_OPTION_MINIMIZE_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->minimizeEffect = animEffectFromString (&o->value,
-													   minimizeEffectType,
-													   NUM_MINIMIZE_EFFECT);
+			as->minimizeEffect = minimizeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_CLOSE1_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->close1Effect = animEffectFromString (&o->value,
-													 closeEffectType,
-													 NUM_CLOSE_EFFECT);
+			as->close1Effect = closeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_CLOSE2_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->close2Effect = animEffectFromString (&o->value,
-													 closeEffectType,
-													 NUM_CLOSE_EFFECT);
+			as->close2Effect = closeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_CREATE1_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->create1Effect = animEffectFromString (&o->value,
-					 								  closeEffectType,
-					 								  NUM_CLOSE_EFFECT);
+			as->create1Effect = closeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_CREATE2_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->create2Effect = animEffectFromString (&o->value,
-					 								  closeEffectType,
-					 								  NUM_CLOSE_EFFECT);
+			as->create2Effect = closeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_FOCUS_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->focusEffect = animEffectFromString (&o->value,
-													focusEffectType,
-													NUM_FOCUS_EFFECT);
+			as->focusEffect = focusEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
 	case ANIM_SCREEN_OPTION_SHADE_EFFECT:
-		if (compSetStringOption(o, value))
+		if (compSetIntOption(o, value))
 		{
-			as->shadeEffect = animEffectFromString (&o->value,
-													shadeEffectType,
-													NUM_SHADE_EFFECT);
+			as->shadeEffect = shadeEffectType[o->value.i];
 			return TRUE;
 		}
 		break;
@@ -5729,10 +5652,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   minimizeEffectType,
-									   NUM_MINIMIZE_EFFECT,
-									   as->minimizeRandomEffects,
-									   &as->nMinimizeRandomEffects);
+						   minimizeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_MINIMIZE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->minimizeRandomEffects,
+						   &as->nMinimizeRandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5740,10 +5663,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   closeEffectType,
-									   NUM_CLOSE_EFFECT,
-									   as->close1RandomEffects,
-									   &as->nClose1RandomEffects);
+						   closeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->close1RandomEffects,
+						   &as->nClose1RandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5751,10 +5674,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   closeEffectType,
-									   NUM_CLOSE_EFFECT,
-									   as->close2RandomEffects,
-									   &as->nClose2RandomEffects);
+						   closeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->close2RandomEffects,
+						   &as->nClose2RandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5762,10 +5685,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   closeEffectType,
-									   NUM_CLOSE_EFFECT,
-									   as->create1RandomEffects,
-									   &as->nCreate1RandomEffects);
+						   closeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->create1RandomEffects,
+						   &as->nCreate1RandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5773,10 +5696,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   closeEffectType,
-									   NUM_CLOSE_EFFECT,
-									   as->create2RandomEffects,
-									   &as->nCreate2RandomEffects);
+						   closeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->create2RandomEffects,
+						   &as->nCreate2RandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5784,10 +5707,10 @@ animSetScreenOptions(CompPlugin *plugin,
 		if (compSetOptionList(o, value))
 		{
 			animStoreRandomEffectList (&o->value,
-									   shadeEffectType,
-									   NUM_SHADE_EFFECT,
-									   as->shadeRandomEffects,
-									   &as->nShadeRandomEffects);
+						   shadeEffectType + RANDOM_EFFECT_OFFSET,
+						   NUM_SHADE_EFFECT - RANDOM_EFFECT_OFFSET,
+						   as->shadeRandomEffects,
+						   &as->nShadeRandomEffects);
 			return TRUE;
 		}
 		break;
@@ -5807,26 +5730,26 @@ static const CompMetadataOptionInfo animScreenOptionInfo[] = {
 	{ "create2_match", "match", 0, 0, 0 },
 	{ "focus_match", "match", 0, 0, 0 },
 	{ "shade_match", "match", 0, 0, 0 },
-	{ "minimize_effect", "string", 0, 0, 0 },
+	{ "minimize_effect", "int", RESTOSTRING (0, LAST_MINIMIZE_EFFECT), 0, 0 },
 	{ "minimize_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "minimize_random_effects", "list", "<type>string</type>", 0, 0 },
-	{ "close1_effect", "string", 0, 0, 0 },
+	{ "minimize_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_MINIMIZE_EFFECT), 0, 0 },
+	{ "close1_effect", "int", RESTOSTRING (0, LAST_CLOSE_EFFECT), 0, 0 },
 	{ "close1_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "close1_random_effects", "list", "<type>string</type>", 0, 0 },
-	{ "create1_effect", "string", 0, 0, 0 },
+	{ "close1_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_CLOSE_EFFECT), 0, 0 },
+	{ "create1_effect", "int", RESTOSTRING (0, LAST_CLOSE_EFFECT), 0, 0 },
 	{ "create1_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "create1_random_effects", "list", "<type>string</type>", 0, 0 },
-	{ "close2_effect", "string", 0, 0, 0 },
+	{ "create1_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_CLOSE_EFFECT), 0, 0 },
+	{ "close2_effect", "int", RESTOSTRING (0, LAST_CLOSE_EFFECT), 0, 0 },
 	{ "close2_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "close2_random_effects", "list", "<type>string</type>", 0, 0 },
-	{ "create2_effect", "string", 0, 0, 0 },
+	{ "close2_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_CLOSE_EFFECT), 0, 0 },
+	{ "create2_effect", "int", RESTOSTRING (0, LAST_CLOSE_EFFECT), 0, 0 },
 	{ "create2_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "create2_random_effects", "list", "<type>string</type>", 0, 0 },
-	{ "focus_effect", "string", 0, 0, 0 },
+	{ "create2_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_CLOSE_EFFECT), 0, 0 },
+	{ "focus_effect", "int", RESTOSTRING (0, LAST_FOCUS_EFFECT), 0, 0 },
 	{ "focus_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "shade_effect", "string", 0, 0, 0 },
+	{ "shade_effect", "int", RESTOSTRING (0, LAST_SHADE_EFFECT), 0, 0 },
 	{ "shade_duration", "float", "<min>0.1</min>", 0, 0 },
-	{ "shade_random_effects", "list", "<type>string</type>", 0, 0 },
+	{ "shade_random_effects", "list", "<type>int</type>" RESTOSTRING (0, LAST_RANDOM_SHADE_EFFECT), 0, 0 },
 	{ "rollup_fixed_interior", "bool", 0, 0, 0 },
 	{ "all_random", "bool", 0, 0, 0 },
 	{ "time_step", "int", "<min>1</min>", 0, 0 },
@@ -5838,18 +5761,18 @@ static const CompMetadataOptionInfo animScreenOptionInfo[] = {
 	{ "beam_life", "float", "<min>0.1</min>", 0, 0 },
 	{ "curved_fold_amp", "float", "<min>-0.5</min><max>0.5</max>", 0, 0 },
 	{ "dodge_gap_ratio", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
-	{ "domino_direction", "int", RESTOSTRING (0, AnimDirectionNum-1), 0, 0 },
-	{ "razr_direction", "int", RESTOSTRING (0, AnimDirectionNum-1), 0, 0 },
+	{ "domino_direction", "int", RESTOSTRING (0, LAST_ANIM_DIRECTION), 0, 0 },
+	{ "razr_direction", "int", RESTOSTRING (0, LAST_ANIM_DIRECTION), 0, 0 },
 	{ "explode_thickness", "float", "<min>0</min>", 0, 0 },
 	{ "explode_gridx", "int", "<min>1</min>", 0, 0 },
 	{ "explode_gridy", "int", "<min>1</min>", 0, 0 },
-	{ "explode_tesselation", "int", RESTOSTRING (0, PolygonTessNum-1), 0, 0 },
+	{ "explode_tesselation", "int", RESTOSTRING (0, LAST_POLYGON_TESS), 0, 0 },
 	{ "fire_particles", "int", "<min>0</min>", 0, 0 },
 	{ "fire_size", "float", "<min>0.1</min>", 0, 0 },
 	{ "fire_slowdown", "float", "<min>0.1</min>", 0, 0 },
 	{ "fire_life", "float", "<min>0.1</min>", 0, 0 },
 	{ "fire_color", "color", 0, 0, 0 },
-	{ "fire_direction", "int", RESTOSTRING (0, PolygonTessNum-1), 0, 0 },
+	{ "fire_direction", "int", RESTOSTRING (0, LAST_ANIM_DIRECTION), 0, 0 },
 	{ "fire_constant_speed", "bool", 0, 0, 0 },
 	{ "fire_smoke", "bool", 0, 0, 0 },
 	{ "fire_mystical", "bool", 0, 0, 0 },
@@ -5875,7 +5798,7 @@ static const CompMetadataOptionInfo animScreenOptionInfo[] = {
 	{ "sidekick_springiness", "float", "<min>0</min><max>1</max>", 0, 0 },
 	{ "wave_width", "float", "<min>0</min>", 0, 0 },
 	{ "wave_amp", "float", "<min>0</min>", 0, 0 },
-	{ "zoom_from_center", "int", RESTOSTRING (0, ZoomFromCenterNum-1), 0, 0 },
+	{ "zoom_from_center", "int", RESTOSTRING (0, LAST_ZOOM_FROM_CENTER), 0, 0 },
 	{ "zoom_springiness", "float", "<min>0</min><max>1</max>", 0, 0 }
 };
 
@@ -8732,58 +8655,57 @@ static Bool animInitScreen(CompPlugin * p, CompScreen * s)
 
 	as->animInProgress = FALSE;
 
-	as->minimizeEffect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_MINIMIZE_EFFECT].value,
-			minimizeEffectType, NUM_MINIMIZE_EFFECT);
-	as->create1Effect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_CREATE1_EFFECT].value,
-			closeEffectType, NUM_CLOSE_EFFECT);
-	as->create2Effect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_CREATE2_EFFECT].value,
-			closeEffectType, NUM_CLOSE_EFFECT);
-	as->close1Effect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_CLOSE1_EFFECT].value,
-			closeEffectType, NUM_CLOSE_EFFECT);
-	as->close2Effect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_CLOSE2_EFFECT].value,
-			closeEffectType, NUM_CLOSE_EFFECT);
-	as->focusEffect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_FOCUS_EFFECT].value,
-			focusEffectType, NUM_FOCUS_EFFECT);
-	as->shadeEffect = animEffectFromString (
-			&as->opt[ANIM_SCREEN_OPTION_SHADE_EFFECT].value,
-			shadeEffectType, NUM_SHADE_EFFECT);
+	as->minimizeEffect = minimizeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_MINIMIZE_EFFECT].value.i];
+	as->create1Effect = closeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_CREATE1_EFFECT].value.i];
+	as->create2Effect = closeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_CREATE2_EFFECT].value.i];
+	as->close1Effect = closeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_CLOSE1_EFFECT].value.i];
+	as->close2Effect = closeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_CLOSE2_EFFECT].value.i];
+	as->focusEffect = focusEffectType[
+			as->opt[ANIM_SCREEN_OPTION_FOCUS_EFFECT].value.i];
+	as->shadeEffect = shadeEffectType[
+			as->opt[ANIM_SCREEN_OPTION_SHADE_EFFECT].value.i];
 	
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_MINIMIZE_RANDOM_EFFECTS].value,
-							   minimizeEffectType,
-							   NUM_MINIMIZE_EFFECT,
-							   as->minimizeRandomEffects,
-							   &as->nMinimizeRandomEffects);
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_CLOSE1_RANDOM_EFFECTS].value,
-							   closeEffectType,
-							   NUM_CLOSE_EFFECT,
-							   as->close1RandomEffects,
-							   &as->nClose1RandomEffects);
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_CLOSE2_RANDOM_EFFECTS].value,
-							   closeEffectType,
-							   NUM_CLOSE_EFFECT,
-							   as->close2RandomEffects,
-							   &as->nClose2RandomEffects);
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_CREATE1_RANDOM_EFFECTS].value,
-							   closeEffectType,
-							   NUM_CLOSE_EFFECT,
-							   as->create1RandomEffects,
-							   &as->nCreate1RandomEffects);
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_CREATE2_RANDOM_EFFECTS].value,
-							   closeEffectType,
-							   NUM_CLOSE_EFFECT,
-							   as->create2RandomEffects,
-							   &as->nCreate2RandomEffects);
-	animStoreRandomEffectList (&as->opt[ANIM_SCREEN_OPTION_SHADE_RANDOM_EFFECTS].value,
-							   shadeEffectType,
-							   NUM_SHADE_EFFECT,
-							   as->shadeRandomEffects,
-							   &as->nShadeRandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_MINIMIZE_RANDOM_EFFECTS].value,
+		minimizeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_MINIMIZE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->minimizeRandomEffects,
+		&as->nMinimizeRandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_CLOSE1_RANDOM_EFFECTS].value,
+		closeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->close1RandomEffects,
+		&as->nClose1RandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_CLOSE2_RANDOM_EFFECTS].value,
+		closeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->close2RandomEffects,
+		&as->nClose2RandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_CREATE1_RANDOM_EFFECTS].value,
+		closeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->create1RandomEffects,
+		&as->nCreate1RandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_CREATE2_RANDOM_EFFECTS].value,
+		closeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_CLOSE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->create2RandomEffects,
+		&as->nCreate2RandomEffects);
+	animStoreRandomEffectList (
+		&as->opt[ANIM_SCREEN_OPTION_SHADE_RANDOM_EFFECTS].value,
+		shadeEffectType + RANDOM_EFFECT_OFFSET,
+		NUM_SHADE_EFFECT - RANDOM_EFFECT_OFFSET,
+		as->shadeRandomEffects,
+		&as->nShadeRandomEffects);
 
 	as->switcherActive = FALSE;
 	as->groupTabChangeActive = FALSE;

Modified: compcomm/plugins/animation/animation.xml
===================================================================
--- compcomm/plugins/animation/animation.xml
+++ compcomm/plugins/animation/animation.xml
@@ -18,31 +18,88 @@
 
 				<subgroup>
 					<short>Close #1 Animation</short>
-					<option name="close1_effect" type="string">
+					<option name="close1_effect" type="int">
 						<short>Animation</short>
 						<long>The animation shown when closing a window.</long>
-						<default>Zoom</default>
-						<allowed>
-							<value>None</value>
-							<value>Random</value>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<min>0</min>
+						<max>18</max>
+						<default>18</default>
+						<desc>
+							<value>0</value>
+							<name>None</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Random</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>17</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>18</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 					<option name="close1_match" type="match">
 						<short>Window Match</short>
@@ -60,75 +117,183 @@
 					<option name="close1_random_effects" type="list">
 						<short>Random Effect Pool</short>
 						<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-						<type>string</type>
+						<type>int</type>
+						<min>0</min>
+						<max>16</max>
 						<default>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
+							<value>0</value>
+							<value>1</value>
+							<value>2</value>
+							<value>3</value>
+							<value>4</value>
+							<value>5</value>
+							<value>6</value>
+							<value>7</value>
+							<value>8</value>
+							<value>9</value>
+							<value>10</value>
+							<value>11</value>
+							<value>12</value>
+							<value>13</value>
+							<value>14</value>
+							<value>15</value>
+							<value>16</value>
 						</default>
-						<allowed>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<desc>
+							<value>0</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 				</subgroup>
 
 				<subgroup>
 					<short>Close #2 Animation</short>
-					<option name="close2_effect" type="string">
+					<option name="close2_effect" type="int">
 						<short>Animation</short>
 						<long>The animation shown when closing a window.</long>
-						<default>Fade</default>
-						<allowed>
-							<value>None</value>
-							<value>Random</value>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<min>0</min>
+						<max>18</max>
+						<default>8</default>
+						<desc>
+							<value>0</value>
+							<name>None</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Random</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>17</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>18</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 					<option name="close2_match" type="match">
 						<short>Window Match</short>
@@ -146,45 +311,96 @@
 					<option name="close2_random_effects" type="list">
 						<short>Random Effect Pool</short>
 						<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-						<type>string</type>
+						<type>int</type>
+						<min>0</min>
+						<max>16</max>
 						<default>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
+							<value>0</value>
+							<value>1</value>
+							<value>2</value>
+							<value>3</value>
+							<value>4</value>
+							<value>5</value>
+							<value>6</value>
+							<value>7</value>
+							<value>8</value>
+							<value>9</value>
+							<value>10</value>
+							<value>11</value>
+							<value>12</value>
+							<value>13</value>
+							<value>14</value>
+							<value>15</value>
+							<value>16</value>
 						</default>
-						<allowed>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<desc>
+							<value>0</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 				</subgroup>
 			</group>
@@ -199,31 +415,88 @@
 						<long>Window that should animate with this effect when created.</long>
 						<default>(type=Normal | Dialog | ModalDialog | Utility) &amp; !(type=Normal &amp; override_redirect=1)</default>
 					</option>
-					<option name="create1_effect" type="string">
+					<option name="create1_effect" type="int">
 						<short>Create #1 Animation</short>
 						<long>The animation shown when creating a window.</long>
-						<default>Zoom</default>
-						<allowed>
-							<value>None</value>
-							<value>Random</value>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<min>0</min>
+						<max>18</max>
+						<default>18</default>
+						<desc>
+							<value>0</value>
+							<name>None</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Random</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>17</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>18</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 					<option name="create1_duration" type="float">
 						<short>Animation Duration</short>
@@ -236,45 +509,96 @@
 					<option name="create1_random_effects" type="list">
 						<short>Random Effect Pool</short>
 						<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-						<type>string</type>
+						<type>int</type>
+						<min>0</min>
+						<max>16</max>
 						<default>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
+							<value>0</value>
+							<value>1</value>
+							<value>2</value>
+							<value>3</value>
+							<value>4</value>
+							<value>5</value>
+							<value>6</value>
+							<value>7</value>
+							<value>8</value>
+							<value>9</value>
+							<value>10</value>
+							<value>11</value>
+							<value>12</value>
+							<value>13</value>
+							<value>14</value>
+							<value>15</value>
+							<value>16</value>
 						</default>
-						<allowed>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<desc>
+							<value>0</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 				</subgroup>
 
@@ -285,31 +609,88 @@
 						<long>Window that should animate with this effect when created.</long>
 						<default>(type=Unknown | Menu | PopupMenu | DropdownMenu | Tooltip) | (type=Normal &amp; override_redirect=1)</default>
 					</option>
-					<option name="create2_effect" type="string">
+					<option name="create2_effect" type="int">
 						<short>Create #2 Animation</short>
 						<long>The animation shown when creating a window.</long>
-						<default>Fade</default>
-						<allowed>
-							<value>None</value>
-							<value>Random</value>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<min>0</min>
+						<max>18</max>
+						<default>8</default>
+						<desc>
+							<value>0</value>
+							<name>None</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Random</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>17</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>18</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 					<option name="create2_duration" type="float">
 						<short>Animation Duration</short>
@@ -322,45 +703,96 @@
 					<option name="create2_random_effects" type="list">
 						<short>Random Effect Pool</short>
 						<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-						<type>string</type>
+						<type>int</type>
+						<min>0</min>
+						<max>16</max>
 						<default>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
+							<value>0</value>
+							<value>1</value>
+							<value>2</value>
+							<value>3</value>
+							<value>4</value>
+							<value>5</value>
+							<value>6</value>
+							<value>7</value>
+							<value>8</value>
+							<value>9</value>
+							<value>10</value>
+							<value>11</value>
+							<value>12</value>
+							<value>13</value>
+							<value>14</value>
+							<value>15</value>
+							<value>16</value>
 						</default>
-						<allowed>
-							<value>Beam Up</value>
-							<value>Burn</value>
-							<value>Curved Fold</value>
-							<value>Domino</value>
-							<value>Dream</value>
-							<value>Explode</value>
-							<value>Fade</value>
-							<value>Glide 1</value>
-							<value>Glide 2</value>
-							<value>Horizontal Folds</value>
-							<value>Leaf Spread</value>
-							<value>Magic Lamp</value>
-							<value>Magic Lamp Vacuum</value>
-							<value>Razr</value>
-							<value>Sidekick</value>
-							<value>Wave</value>
-							<value>Zoom</value>
-						</allowed>
+						<desc>
+							<value>0</value>
+							<name>Beam Up</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Burn</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Curved Fold</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Domino</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Dream</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Explode</name>
+						</desc>
+						<desc>
+							<value>6</value>
+							<name>Fade</name>
+						</desc>
+						<desc>
+							<value>7</value>
+							<name>Glide 1</name>
+						</desc>
+						<desc>
+							<value>8</value>
+							<name>Glide 2</name>
+						</desc>
+						<desc>
+							<value>9</value>
+							<name>Horizontal Folds</name>
+						</desc>
+						<desc>
+							<value>10</value>
+							<name>Leaf Spread</name>
+						</desc>
+						<desc>
+							<value>11</value>
+							<name>Magic Lamp</name>
+						</desc>
+						<desc>
+							<value>12</value>
+							<name>Magic Lamp Vacuum</name>
+						</desc>
+						<desc>
+							<value>13</value>
+							<name>Razr</name>
+						</desc>
+						<desc>
+							<value>14</value>
+							<name>Sidekick</name>
+						</desc>
+						<desc>
+							<value>15</value>
+							<name>Wave</name>
+						</desc>
+						<desc>
+							<value>16</value>
+							<name>Zoom</name>
+						</desc>
 					</option>
 				</subgroup>
 			</group>
@@ -380,68 +812,164 @@
 					<max>10</max>
 					<precision>0.02</precision>
 				</option>
-				<option name="minimize_effect" type="string">
+				<option name="minimize_effect" type="int">
 					<short>Minimize Animation</short>
 					<long>The animation shown when minimizing a window.</long>
-					<default>Magic Lamp</default>
-					<allowed>
-						<value>None</value>
-						<value>Random</value>
-						<value>Beam Up</value>
-						<value>Burn</value>
-						<value>Curved Fold</value>
-						<value>Domino</value>
-						<value>Dream</value>
-						<value>Explode</value>
-						<value>Fade</value>
-						<value>Glide 1</value>
-						<value>Glide 2</value>
-						<value>Horizontal Folds</value>
-						<value>Leaf Spread</value>
-						<value>Magic Lamp</value>
-						<value>Razr</value>
-						<value>Sidekick</value>
-						<value>Zoom</value>
-					</allowed>
+					<min>0</min>
+					<max>16</max>
+					<default>13</default>
+					<desc>
+						<value>0</value>
+						<name>None</name>
+					</desc>
+					<desc>
+						<value>1</value>
+						<name>Random</name>
+					</desc>
+					<desc>
+						<value>2</value>
+						<name>Beam Up</name>
+					</desc>
+					<desc>
+						<value>3</value>
+						<name>Burn</name>
+					</desc>
+					<desc>
+						<value>4</value>
+						<name>Curved Fold</name>
+					</desc>
+					<desc>
+						<value>5</value>
+						<name>Domino</name>
+					</desc>
+					<desc>
+						<value>6</value>
+						<name>Dream</name>
+					</desc>
+					<desc>
+						<value>7</value>
+						<name>Explode</name>
+					</desc>
+					<desc>
+						<value>8</value>
+						<name>Fade</name>
+					</desc>
+					<desc>
+						<value>9</value>
+						<name>Glide 1</name>
+					</desc>
+					<desc>
+						<value>10</value>
+						<name>Glide 2</name>
+					</desc>
+					<desc>
+						<value>11</value>
+						<name>Horizontal Folds</name>
+					</desc>
+					<desc>
+						<value>12</value>
+						<name>Leaf Spread</name>
+					</desc>
+					<desc>
+						<value>13</value>
+						<name>Magic Lamp</name>
+					</desc>
+					<desc>
+						<value>14</value>
+						<name>Razr</name>
+					</desc>
+					<desc>
+						<value>15</value>
+						<name>Sidekick</name>
+					</desc>
+					<desc>
+						<value>16</value>
+						<name>Zoom</name>
+					</desc>
 				</option>
 				<option name="minimize_random_effects" type="list">
 					<short>Random Effect Pool</short>
 					<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-					<type>string</type>
+					<type>int</type>
+					<min>0</min>
+					<max>14</max>
 					<default>
-						<value>Beam Up</value>
-						<value>Burn</value>
-						<value>Curved Fold</value>
-						<value>Domino</value>
-						<value>Dream</value>
-						<value>Explode</value>
-						<value>Fade</value>
-						<value>Glide 1</value>
-						<value>Glide 2</value>
-						<value>Horizontal Folds</value>
-						<value>Leaf Spread</value>
-						<value>Magic Lamp</value>
-						<value>Razr</value>
-						<value>Sidekick</value>
-						<value>Zoom</value>
+						<value>0</value>
+						<value>1</value>
+						<value>2</value>
+						<value>3</value>
+						<value>4</value>
+						<value>5</value>
+						<value>6</value>
+						<value>7</value>
+						<value>8</value>
+						<value>9</value>
+						<value>10</value>
+						<value>11</value>
+						<value>12</value>
+						<value>13</value>
+						<value>14</value>
 					</default>
-					<allowed>
-						<value>Beam Up</value>
-						<value>Burn</value>
-						<value>Curved Fold</value>
-						<value>Domino</value>
-						<value>Dream</value>
-						<value>Explode</value>
-						<value>Fade</value>
-						<value>Glide 1</value>
-						<value>Glide 2</value>
-						<value>Horizontal Folds</value>
-						<value>Leaf Spread</value>
-						<value>Magic Lamp</value>
-						<value>Razr</value>
-						<value>Sidekick</value>
-						<value>Zoom</value>
-					</allowed>
+					<desc>
+						<value>0</value>
+						<name>Beam Up</name>
+					</desc>
+					<desc>
+						<value>1</value>
+						<name>Burn</name>
+					</desc>
+					<desc>
+						<value>2</value>
+						<name>Curved Fold</name>
+					</desc>
+					<desc>
+						<value>3</value>
+						<name>Domino</name>
+					</desc>
+					<desc>
+						<value>4</value>
+						<name>Dream</name>
+					</desc>
+					<desc>
+						<value>5</value>
+						<name>Explode</name>
+					</desc>
+					<desc>
+						<value>6</value>
+						<name>Fade</name>
+					</desc>
+					<desc>
+						<value>7</value>
+						<name>Glide 1</name>
+					</desc>
+					<desc>
+						<value>8</value>
+						<name>Glide 2</name>
+					</desc>
+					<desc>
+						<value>9</value>
+						<name>Horizontal Folds</name>
+					</desc>
+					<desc>
+						<value>10</value>
+						<name>Leaf Spread</name>
+					</desc>
+					<desc>
+						<value>11</value>
+						<name>Magic Lamp</name>
+					</desc>
+					<desc>
+						<value>12</value>
+						<name>Razr</name>
+					</desc>
+					<desc>
+						<value>13</value>
+						<name>Sidekick</name>
+					</desc>
+					<desc>
+						<value>14</value>
+						<name>Zoom</name>
+					</desc>
 				</option>
 			</group>
 
@@ -453,17 +981,32 @@
 					<default>(type=Normal | Dialog | ModalDialog | Utility) &amp; !(type=Normal &amp; override_redirect=1)</default>
 					<default>Normal | Dialog | ModalDialog | Utility</default>
 				</option>
-				<option name="shade_effect" type="string">
+				<option name="shade_effect" type="int">
 					<short>Shade Animation</short>
 					<long>Shade window effect.</long>
-					<default>Roll Up</default>
-					<allowed>
-						<value>None</value>
-						<value>Random</value>
-						<value>Curved Fold</value>
-						<value>Horizontal Folds</value>
-						<value>Roll Up</value>
-					</allowed>
+					<min>0</min>
+					<max>4</max>
+					<default>4</default>
+					<desc>
+						<value>0</value>
+						<name>None</name>
+					</desc>
+					<desc>
+						<value>1</value>
+						<name>Random</name>
+					</desc>
+					<desc>
+						<value>2</value>
+						<name>Curved Fold</name>
+					</desc>
+					<desc>
+						<value>3</value>
+						<name>Horizontal Folds</name>
+					</desc>
+					<desc>
+						<value>4</value>
+						<name>Roll Up</name>
+					</desc>
 				</option>
 				<option name="shade_duration" type="float">
 					<short>Animation Duration</short>
@@ -476,17 +1019,26 @@
 				<option name="shade_random_effects" type="list">
 					<short>Random Effect Pool</short>
 					<long>Pool of effects to be chosen from if Random effect is selected. Click reset to restore full list. If the list is empty, the default effect will be used.</long>
-					<type>string</type>
+					<type>int</type>
+					<min>0</min>
+					<max>2</max>
 					<default>
-						<value>Curved Fold</value>
-						<value>Horizontal Folds</value>
-						<value>Roll Up</value>
+						<value>0</value>
+						<value>1</value>
+						<value>2</value>
 					</default>
-					<allowed>
-						<value>Curved Fold</value>
-						<value>Horizontal Folds</value>
-						<value>Roll Up</value>
-					</allowed>
+					<desc>
+						<value>0</value>
+						<name>Curved Fold</name>
+					</desc>
+					<desc>
+						<value>1</value>
+						<name>Horizontal Folds</name>
+					</desc>
+					<desc>
+						<value>2</value>
+						<name>Roll Up</name>
+					</desc>
 				</option>
 			</group>
 
@@ -497,16 +1049,28 @@
 					<long>Window that should animate with this effect when focused.</long>
 					<default>(type=Normal | Dialog | ModalDialog | Utility) &amp; !(type=Normal &amp; override_redirect=1)</default>
 				</option>
-				<option name="focus_effect" type="string">
+				<option name="focus_effect" type="int">
 					<short>Focus Animation</short>
 					<long>Focus window effect.</long>
-					<default>None</default>
-					<allowed>
-						<value>None</value>
-						<value>Dodge</value>
-						<value>Fade</value>
-						<value>Wave</value>
-					</allowed>
+					<min>0</min>
+					<max>3</max>
+					<default>0</default>
+					<desc>
+						<value>0</value>
+						<name>None</name>
+					</desc>
+					<desc>
+						<value>1</value>
+						<name>Dodge</name>
+					</desc>
+					<desc>
+						<value>2</value>
+						<name>Fade</name>
+					</desc>
+					<desc>
+						<value>3</value>
+						<name>Wave</name>
+					</desc>
 				</option>
 				<option name="focus_duration" type="float">
 					<short>Animation Duration</short>
@@ -567,15 +1131,33 @@
 					<option name="fire_direction" type="string">
 						<short>Fire direction</short>
 						<long>Fire direction.</long>
-						<default>Down</default>
-						<allowed>
-							<value>Down</value>
-							<value>Up</value>
-							<value>Left</value>
-							<value>Right</value>
-							<value>Random</value>
-							<value>Automatic</value>
-						</allowed>
+						<default>0</default>
+						<min>0</min>
+						<max>5</max>
+						<desc>
+							<value>0</value>
+							<name>Down</name>
+						</desc>
+						<desc>
+							<value>1</value>
+							<name>Up</name>
+						</desc>
+						<desc>
+							<value>2</value>
+							<name>Left</name>
+						</desc>
+						<desc>
+							<value>3</value>
+							<name>Right</name>
+						</desc>
+						<desc>
+							<value>4</value>
+							<name>Random</name>
+						</desc>
+						<desc>
+							<value>5</value>
+							<name>Automatic</name>
+						</desc>
 					</option>
 					<option name="fire_constant_speed" type="bool">
 						<short>Fire constant speed</short>



More information about the commits mailing list