[beryl-commits] compiz mirror: Changes to 'master' (5bdff19617a04ca8e1869556adbe72a88424471e)

compiz at server.beryl-project.org compiz at server.beryl-project.org
Tue Jun 5 18:08:10 CEST 2007


New commits:
commit 5bdff19617a04ca8e1869556adbe72a88424471e
Author: Danny Baumann <dannybaumann at web.de>
Date:   Tue Jun 5 18:07:32 2007 +0200

    Fix option type for int description options.

commit f27f7842e3a5a6fa02c04dea54bc8291d3d1d647
Author: Danny Baumann <dannybaumann at web.de>
Date:   Tue Jun 5 17:52:38 2007 +0200

    Convert usage of restricted string options to int descriptions in wobbly plugin.

commit e156017b7e54933c5bbb8d0ce0550b250ea94dad
Author: Danny Baumann <dannybaumann at web.de>
Date:   Tue Jun 5 17:39:36 2007 +0200

    Convert usage of restricted string options to int descriptions in scale plugin.


 metadata/scale.xml.in  |   25 +++++++++++-----
 metadata/wobbly.xml.in |   36 +++++++++++++++--------
 plugins/scale.c        |   55 +++++++++++------------------------
 plugins/wobbly.c       |   74 ++++++++++++-----------------------------------
 4 files changed, 77 insertions(+), 113 deletions(-)


Modified: compiz/metadata/scale.xml.in
===================================================================
--- compiz/metadata/scale.xml.in
+++ compiz/metadata/scale.xml.in
@@ -75,15 +75,24 @@
 		<min>0</min>
 		<max>100</max>
 	    </option>
-	    <option name="overlay_icon" type="string">
+	    <option name="overlay_icon" type="int">
 		<_short>Overlay Icon</_short>
-		<_long>Overlay an icon on windows once they are scaled</_long>
-		<default>Emblem</default>
-		<allowed>
-		    <value>None</value>
-		    <value>Emblem</value>
-		    <value>Big</value>
-		</allowed>
+	        <_long>Overlay an icon on windows once they are scaled</_long>
+		<min>0</min>
+		<max>2</max>
+		<default>1</default>
+		<desc>
+		    <value>0</value>
+		    <_name>None</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Emblem</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>Big</_name>
+		</desc>
 	    </option>
 	    <option name="hover_time" type="int">
 		<_short>Hover Time</_short>

Modified: compiz/metadata/wobbly.xml.in
===================================================================
--- compiz/metadata/wobbly.xml.in
+++ compiz/metadata/wobbly.xml.in
@@ -63,23 +63,35 @@
 		<min>4</min>
 		<max>128</max>
 	    </option>
-	    <option name="map_effect" type="string">
+	    <option name="map_effect" type="int">
 		<_short>Map Effect</_short>
 		<_long>Map Window Effect</_long>
-		<default>None</default>
-		<allowed>
-		    <value>None</value>
-		    <value>Shiver</value>
-		</allowed>
+		<min>0</min>
+		<max>1</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>None</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Shiver</_name>
+		</desc>
 	    </option>
-	    <option name="focus_effect" type="string">
+	    <option name="focus_effect" type="int">
 		<_short>Focus Effect</_short>
 		<_long>Focus Window Effect</_long>
-		<default>None</default>
-		<allowed>
-		    <value>None</value>
-		    <value>Shiver</value>
-		</allowed>
+		<min>0</min>
+		<max>1</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>None</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Shiver</_name>
+		</desc>
 	    </option>
 	    <option name="map_window_match" type="match">
 		<_short>Map Windows</_short>

Modified: compiz/plugins/scale.c
===================================================================
--- compiz/plugins/scale.c
+++ compiz/plugins/scale.c
@@ -44,11 +44,10 @@
 #define SCALE_STATE_WAIT 2
 #define SCALE_STATE_IN   3
 
-typedef enum {
-    ScaleIconNone = 0,
-    ScaleIconEmblem,
-    ScaleIconBig
-} IconOverlay;
+#define SCALE_ICON_NONE   0
+#define SCALE_ICON_EMBLEM 1
+#define SCALE_ICON_BIG    2
+#define SCALE_ICON_LAST   SCALE_ICON_BIG
 
 static CompMetadata scaleMetadata;
 
@@ -129,8 +128,6 @@ typedef struct _ScaleScreen {
 
     GLushort opacity;
 
-    IconOverlay iconOverlay;
-
     ScaleType type;
 
     Window clientLeader;
@@ -177,17 +174,6 @@ typedef struct _ScaleWindow {
 
 #define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
 
-static IconOverlay
-scaleIconOverlayFromString (CompOptionValue *value)
-{
-    if (strcasecmp (value->s, "emblem") == 0)
-	return ScaleIconEmblem;
-    else if (strcasecmp (value->s, "big") == 0)
-	return ScaleIconBig;
-    else
-	return ScaleIconNone;
-}
-
 static CompOption *
 scaleGetScreenOptions (CompPlugin  *plugin,
 		       CompScreen *screen,
@@ -223,13 +209,6 @@ scaleSetScreenOption (CompPlugin  *plugin,
 	    return TRUE;
 	}
 	break;
-    case SCALE_SCREEN_OPTION_ICON:
-	if (compSetStringOption (o, value))
-	{
-	    ss->iconOverlay = scaleIconOverlayFromString (&o->value);
-	    return TRUE;
-	}
-	break;
     default:
 	return compSetScreenOption (screen, o, value);
     }
@@ -375,7 +354,8 @@ scalePaintWindow (CompWindow		  *w,
 	    glPopMatrix ();
 	}
 
-	if ((ss->iconOverlay != ScaleIconNone) && scaled)
+	if (scaled &&
+	    (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i != SCALE_ICON_NONE))
 	{
 	    CompIcon *icon;
 
@@ -395,12 +375,13 @@ scalePaintWindow (CompWindow		  *w,
 		scaledWinWidth  = w->width  * sw->scale;
 		scaledWinHeight = w->height * sw->scale;
 
-		switch (ss->iconOverlay) {
-		case ScaleIconNone:
-		case ScaleIconEmblem:
+		switch (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i) 
+		{
+		case SCALE_ICON_NONE:
+		case SCALE_ICON_EMBLEM:
 		    scale = 1.0f;
 		    break;
-		case ScaleIconBig:
+		case SCALE_ICON_BIG:
 		default:
 		    sAttrib.opacity /= 3;
 		    scale = MIN (((float) scaledWinWidth / icon->width),
@@ -411,13 +392,14 @@ scalePaintWindow (CompWindow		  *w,
 		width  = icon->width  * scale;
 		height = icon->height * scale;
 
-		switch (ss->iconOverlay) {
-		case ScaleIconNone:
-		case ScaleIconEmblem:
+		switch (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i) 
+		{
+		case SCALE_ICON_NONE:
+		case SCALE_ICON_EMBLEM:
 		    x = w->attrib.x + scaledWinWidth - icon->width;
 		    y = w->attrib.y + scaledWinHeight - icon->height;
 		    break;
-		case ScaleIconBig:
+		case SCALE_ICON_BIG:
 		default:
 		    x = w->attrib.x + scaledWinWidth / 2 - width / 2;
 		    y = w->attrib.y + scaledWinHeight / 2 - height / 2;
@@ -1829,7 +1811,7 @@ static const CompMetadataOptionInfo scaleScreenOptionInfo[] = {
     { "window_match", "match", 0, 0, 0 },
     { "darken_back", "bool", 0, 0, 0 },
     { "opacity", "int", "<min>0</min><max>100</max>", 0, 0 },
-    { "overlay_icon", "string", 0, 0, 0 },
+    { "overlay_icon", "int", RESTOSTRING (0, SCALE_ICON_LAST), 0, 0 },
     { "hover_time", "int", "<min>50</min>", 0, 0 }
 };
 
@@ -1881,9 +1863,6 @@ scaleInitScreen (CompPlugin *p,
     ss->opacity  =
 	(OPAQUE * ss->opt[SCALE_SCREEN_OPTION_OPACITY].value.i) / 100;
 
-    ss->iconOverlay =
-	scaleIconOverlayFromString (&ss->opt[SCALE_SCREEN_OPTION_ICON].value);
-
     WRAP (ss, s, preparePaintScreen, scalePreparePaintScreen);
     WRAP (ss, s, donePaintScreen, scaleDonePaintScreen);
     WRAP (ss, s, paintOutput, scalePaintOutput);

Modified: compiz/plugins/wobbly.c
===================================================================
--- compiz/plugins/wobbly.c
+++ compiz/plugins/wobbly.c
@@ -104,10 +104,9 @@ typedef struct _Model {
     unsigned int snapCnt[4];
 } Model;
 
-typedef enum {
-    WobblyEffectNone = 0,
-    WobblyEffectShiver
-} WobblyEffect;
+#define WOBBLY_EFFECT_NONE   0
+#define WOBBLY_EFFECT_SHIVER 1
+#define WOBBLY_EFFECT_LAST   WOBBLY_EFFECT_SHIVER
 
 static CompMetadata wobblyMetadata;
 
@@ -159,9 +158,6 @@ typedef struct _WobblyScreen {
 
     Bool wobblyWindows;
 
-    WobblyEffect mapEffect;
-    WobblyEffect focusEffect;
-
     unsigned int grabMask;
     CompWindow	 *grabWindow;
     Bool         moveWindow;
@@ -201,15 +197,6 @@ typedef struct _WobblyWindow {
 
 #define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
 
-static WobblyEffect
-wobblyEffectFromString (CompOptionValue *value)
-{
-    if (strcasecmp (value->s, "shiver") == 0)
-	return WobblyEffectShiver;
-    else
-	return WobblyEffectNone;
-}
-
 static CompOption *
 wobblyGetScreenOptions (CompPlugin *plugin,
 			CompScreen *screen,
@@ -228,36 +215,14 @@ wobblySetScreenOption (CompPlugin      *plugin,
 		       CompOptionValue *value)
 {
     CompOption *o;
-    int	       index;
 
     WOBBLY_SCREEN (screen);
 
-    o = compFindOption (ws->opt, NUM_OPTIONS (ws), name, &index);
+    o = compFindOption (ws->opt, NUM_OPTIONS (ws), name, NULL);
     if (!o)
 	return FALSE;
 
-    switch (index) {
-    case WOBBLY_SCREEN_OPTION_MAP_EFFECT:
-	if (compSetStringOption (o, value))
-	{
-	    ws->mapEffect = wobblyEffectFromString (&o->value);
-	    return TRUE;
-	}
-	break;
-    case WOBBLY_SCREEN_OPTION_FOCUS_EFFECT:
-	if (compSetStringOption (o, value))
-	{
-	    ws->focusEffect = wobblyEffectFromString (&o->value);
-	    return TRUE;
-	}
-	break;
-    default:
-	if (compSetOption (o, value))
-	    return TRUE;
-	break;
-    }
-
-    return FALSE;
+    return compSetScreenOption (screen, o, value);
 }
 
 static const CompMetadataOptionInfo wobblyScreenOptionInfo[] = {
@@ -265,8 +230,8 @@ static const CompMetadataOptionInfo wobblyScreenOptionInfo[] = {
     { "spring_k", "float", "<min>0.1</min>", 0, 0 },
     { "grid_resolution", "int", "<min>1</min><max>64</max>", 0, 0 },
     { "min_grid_size", "int", "<min>4</min><max>128</max>", 0, 0 },
-    { "map_effect", "string", 0, 0, 0 },
-    { "focus_effect", "string", 0, 0, 0 },
+    { "map_effect", "int", RESTOSTRING (0, WOBBLY_EFFECT_LAST), 0, 0 },
+    { "focus_effect", "int", RESTOSTRING (0, WOBBLY_EFFECT_LAST), 0, 0 },
     { "map_window_match", "match", 0, 0, 0 },
     { "focus_window_match", "match", 0, 0, 0 },
     { "grab_window_match", "match", 0, 0, 0 },
@@ -2238,18 +2203,20 @@ wobblyHandleEvent (CompDisplay *d,
 	if (w && isWobblyWin (w))
 	{
 	    int mIndex;
+	    int focusEffect;
 
 	    WOBBLY_WINDOW (w);
 	    WOBBLY_SCREEN (w->screen);
 
-	    mIndex = WOBBLY_SCREEN_OPTION_FOCUS_WINDOW_MATCH;
+	    mIndex      = WOBBLY_SCREEN_OPTION_FOCUS_WINDOW_MATCH;
+	    focusEffect = ws->opt[WOBBLY_SCREEN_OPTION_FOCUS_EFFECT].value.i;
 
-	    if (ws->focusEffect				    &&
+	    if ((focusEffect != WOBBLY_EFFECT_NONE)         &&
 		matchEval (&ws->opt[mIndex].value.match, w) &&
 		wobblyEnsureModel (w))
 	    {
-		switch (ws->focusEffect) {
-		case WobblyEffectShiver:
+		switch (focusEffect) {
+		case WOBBLY_EFFECT_SHIVER:
 		    modelAdjustObjectsForShiver (ww->model,
 						 WIN_X (w),
 						 WIN_Y (w),
@@ -2308,21 +2275,23 @@ wobblyDamageWindowRect (CompWindow *w,
 	if (isWobblyWin (w))
 	{
 	    int mIndex;
+	    int mapEffect;
 
 	    WOBBLY_WINDOW (w);
 	    WOBBLY_SCREEN (w->screen);
 
-	    mIndex = WOBBLY_SCREEN_OPTION_MAP_WINDOW_MATCH;
+	    mIndex    = WOBBLY_SCREEN_OPTION_MAP_WINDOW_MATCH;
+	    mapEffect = ws->opt[WOBBLY_SCREEN_OPTION_MAP_EFFECT].value.i;
 
 	    if (ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
 		wobblyEnsureModel (w);
 
-	    if (ws->mapEffect				    &&
+	    if ((mapEffect != WOBBLY_EFFECT_NONE)           &&
 		matchEval (&ws->opt[mIndex].value.match, w) &&
 		wobblyEnsureModel (w))
 	    {
-		switch (ws->mapEffect) {
-		case WobblyEffectShiver:
+		switch (mapEffect) {
+		case WOBBLY_EFFECT_SHIVER:
 		    modelAdjustObjectsForShiver (ww->model,
 						 WIN_X (w), WIN_Y (w),
 						 WIN_W (w), WIN_H (w));
@@ -2778,11 +2747,6 @@ wobblyInitScreen (CompPlugin *p,
 
     ws->wobblyWindows = FALSE;
 
-    ws->mapEffect   =
-	wobblyEffectFromString (&ws->opt[WOBBLY_SCREEN_OPTION_MAP_EFFECT].value);
-    ws->focusEffect =
-	wobblyEffectFromString (&ws->opt[WOBBLY_SCREEN_OPTION_FOCUS_EFFECT].value);
-
     ws->grabMask   = 0;
     ws->grabWindow = NULL;
     ws->moveWindow = FALSE;



More information about the commits mailing list