[fusion-commits] Compiz Cube Caps plugin: Changes to 'master' (fe695401af16b221a6b3f599511bbbc9e7eef2fd)

guillaume at server.beryl-project.org guillaume at server.beryl-project.org
Tue Aug 7 23:46:16 CEST 2007


New commits:
commit fe695401af16b221a6b3f599511bbbc9e7eef2fd
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:45:41 2007 +0200

    * Make CLAMP_TO_BORDER usage optionnal

commit 913cb2769af14326b36981ebdf121ab952661daa
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:30:34 2007 +0200

    * Use color opacity when transparent cube is disabled

commit 7df062736f9a6fa1388a9af38cb0ec9beaa8ba79
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:16:09 2007 +0200

    * Add options grouping

commit 9c0796e4b1aed1891cd4181476170e8acfd4fb3f
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:11:41 2007 +0200

    * Add default caps

commit 1ba4a7bfb53ef73ab8db0bfac8d1149bac0009df
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:10:20 2007 +0200

    * Set white as default cap color

commit 1dc84125456aa6b13457be48180c27d97defbe23
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:09:28 2007 +0200

    * Set right hints for top/bottom images metadata

commit d8cb952a034a17646a42b2613057d70d6391b32d
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:08:38 2007 +0200

    * Load plugin after image loaders

commit 1d539bb477111881deeb07ee90305e1c0fd4c92c
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:08:25 2007 +0200

    * Correctly load default caps

commit e5b6798c544f9592e98f1b6a97c8d96f0188ecb3
Author: Guillaume Seguin <guillaume at segu.in>
Date:   Tue Aug 7 23:08:17 2007 +0200

    * Makefile update.


 Makefile             |  108 ++++++++++++++++++++++++++++++++++---
 cubecaps.c           |   47 +++++++++++++---
 cubecaps.xml.in      |  147 +++++++++++++++++++++++++++++---------------------
 images/compizcap.png |  Bin 0 -> 75216 bytes
 images/fusioncap.png |  Bin 0 -> 143956 bytes
 5 files changed, 224 insertions(+), 78 deletions(-)
 create mode 100644 images/compizcap.png
 create mode 100644 images/fusioncap.png


Modified: fusion/plugins/cubecaps/Makefile
===================================================================
--- fusion/plugins/cubecaps/Makefile
+++ fusion/plugins/cubecaps/Makefile
@@ -29,6 +29,7 @@
 #load config file
 include plugin.info
 
+
 ifeq ($(BUILD_GLOBAL),true)
 	PREFIX = $(shell pkg-config --variable=prefix compiz)
 	CLIBDIR = $(shell pkg-config --variable=libdir compiz)
@@ -36,9 +37,13 @@ ifeq ($(BUILD_GLOBAL),true)
 	PKGDIR = $(CLIBDIR)/pkgconfig
 	DESTDIR = $(shell pkg-config --variable=libdir compiz)/compiz
 	XMLDIR = $(shell pkg-config --variable=prefix compiz)/share/compiz
+	IMAGEDIR = $(shell pkg-config --variable=prefix compiz)/share/compiz
+	DATADIR = $(shell pkg-config --variable=prefix compiz)/share/compiz
 else
 	DESTDIR = $(HOME)/.compiz/plugins
 	XMLDIR = $(HOME)/.compiz/metadata
+	IMAGEDIR = $(HOME)/.compiz/images
+	DATADIR = $(HOME)/.compiz/data
 endif
 
 BUILDDIR = build
@@ -46,14 +51,17 @@ BUILDDIR = build
 ECHO	  = `which echo`
 
 CC        = gcc
+CPP       = g++
 LIBTOOL   = libtool
 INSTALL   = install
 
 BCOP      = `pkg-config --variable=bin bcop`
 
-CFLAGS    = -g -Wall `pkg-config --cflags $(PKG_DEP) compiz ` $(CFLAGS_ADD)
+CFLAGS    = -g -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing `pkg-config --cflags $(PKG_DEP) compiz ` $(CFLAGS_ADD)
 LDFLAGS   = `pkg-config --libs $(PKG_DEP) compiz ` $(LDFLAGS_ADD)
 
+DEFINES   = -DIMAGEDIR=$(IMAGEDIR) -DDATADIR=$(DATADIR)
+
 POFILEDIR = $(shell if [ -n "$(PODIR)" ]; then $(ECHO) $(PODIR); else $(ECHO) ./po;fi )
 
 is-bcop-target  := $(shell if [ -e $(PLUGIN).xml.in ]; then cat $(PLUGIN).xml.in | grep "useBcop=\"true\""; \
@@ -74,14 +82,25 @@ ifeq ($(BUILD_GLOBAL),true)
     hdr-install-target := $(shell if [ -e compiz-$(PLUGIN).pc.in -a -n "$(PREFIX)" -a -d "$(PREFIX)" -a -e $(PLUGIN).h ]; then $(ECHO) "$(PLUGIN).h"; fi )
 endif
 
-# find all the object files (including those from .moc.cpp files)
+# find all the object files
 
 c-objs     := $(patsubst %.c,%.lo,$(shell find -name '*.c' 2> /dev/null | grep -v "$(BUILDDIR)/" | sed -e 's/^.\///'))
+c-objs     += $(patsubst %.cpp,%.lo,$(shell find -name '*.cpp' 2> /dev/null | grep -v "$(BUILDDIR)/" | sed -e 's/^.\///'))
+c-objs     += $(patsubst %.cxx,%.lo,$(shell find -name '*.cxx' 2> /dev/null | grep -v "$(BUILDDIR)/" | sed -e 's/^.\///'))
 c-objs     := $(filter-out $(bcop-target-src:.c=.lo),$(c-objs))
 
+h-files    := $(shell find -name '*.h' 2> /dev/null | grep -v "$(BUILDDIR)/" | sed -e 's/^.\///')
+h-files    += $(bcop-target-hdr)
+h-files    += $(shell pkg-config --variable=includedir compiz)/compiz/compiz.h
+
 all-c-objs := $(addprefix $(BUILDDIR)/,$(c-objs)) 
 all-c-objs += $(bcop-target-src:.c=.lo)
 
+# additional files
+
+data-files  := $(shell find data/  -name '*' -type f 2> /dev/null | sed -e 's/data\///')
+image-files := $(shell find images/ -name '*' -type f 2> /dev/null | sed -e 's/images\///')
+
 # system include path parameter, -isystem doesn't work on old gcc's
 inc-path-param = $(shell if [ -z "`gcc --version | head -n 1 | grep ' 3'`" ]; then $(ECHO) "-isystem"; else $(ECHO) "-I"; fi)
 
@@ -212,28 +231,49 @@ $(BUILDDIR)/compiz-%.pc: compiz-%.pc.in
 # Compiling
 #
 
-$(BUILDDIR)/%.lo: %.c
+$(BUILDDIR)/%.lo: %.c $(h-files)
 	@if [ '$(color)' != 'no' ]; then \
 		$(ECHO) -n -e "\033[0;1;5mcompiling \033[0m: \033[0;32m$< \033[0m-> \033[0;31m$@\033[0m"; \
 	else \
 		$(ECHO) "compiling $< -> $@"; \
 	fi
-	@$(LIBTOOL) --quiet --mode=compile $(CC) $(CFLAGS) -I$(BUILDDIR) -c -o $@ $<
+	@$(LIBTOOL) --quiet --mode=compile $(CC) $(CFLAGS) $(DEFINES) -I$(BUILDDIR) -c -o $@ $<
 	@if [ '$(color)' != 'no' ]; then \
 		$(ECHO) -e "\r\033[0mcompiling : \033[34m$< -> $@\033[0m"; \
 	fi
 
-$(BUILDDIR)/%.lo: $(BUILDDIR)/%.c
+$(BUILDDIR)/%.lo: $(BUILDDIR)/%.c $(h-files)
 	@if [ '$(color)' != 'no' ]; then \
 		$(ECHO) -n -e "\033[0;1;5mcompiling \033[0m: \033[0;32m$< \033[0m-> \033[0;31m$@\033[0m"; \
 	else \
 		$(ECHO) "compiling $< -> $@"; \
 	fi
-	@$(LIBTOOL) --quiet --mode=compile $(CC) $(CFLAGS) -I$(BUILDDIR) -c -o $@ $<
+	@$(LIBTOOL) --quiet --mode=compile $(CC) $(CFLAGS) $(DEFINES) -I$(BUILDDIR) -c -o $@ $<
 	@if [ '$(color)' != 'no' ]; then \
 		$(ECHO) -e "\r\033[0mcompiling : \033[34m$< -> $@\033[0m"; \
 	fi
 
+$(BUILDDIR)/%.lo: %.cpp $(h-files)
+	@if [ '$(color)' != 'no' ]; then \
+		$(ECHO) -n -e "\033[0;1;5mcompiling \033[0m: \033[0;32m$< \033[0m-> \033[0;31m$@\033[0m"; \
+	else \
+		$(ECHO) "compiling $< -> $@"; \
+	fi
+	@$(LIBTOOL) --quiet --mode=compile $(CPP) $(CFLAGS) $(DEFINES) -I$(BUILDDIR) -c -o $@ $<
+	@if [ '$(color)' != 'no' ]; then \
+		$(ECHO) -e "\r\033[0mcompiling : \033[34m$< -> $@\033[0m"; \
+	fi
+
+$(BUILDDIR)/%.lo: %.cxx $(h-files)
+	@if [ '$(color)' != 'no' ]; then \
+		$(ECHO) -n -e "\033[0;1;5mcompiling \033[0m: \033[0;32m$< \033[0m-> \033[0;31m$@\033[0m"; \
+	else \
+		$(ECHO) "compiling $< -> $@"; \
+	fi
+	@$(LIBTOOL) --quiet --mode=compile $(CPP) $(CFLAGS) $(DEFINES) -I$(BUILDDIR) -c -o $@ $<
+	@if [ '$(color)' != 'no' ]; then \
+		$(ECHO) -e "\r\033[0mcompiling : \033[34m$< -> $@\033[0m"; \
+	fi
 
 #
 # Linking
@@ -241,7 +281,7 @@ $(BUILDDIR)/%.lo: $(BUILDDIR)/%.c
 
 cxx-rpath-prefix := -Wl,-rpath,
 
-$(BUILDDIR)/lib$(PLUGIN).la: $(addprefix $(BUILDDIR)/,$(c-objs))
+$(BUILDDIR)/lib$(PLUGIN).la: $(all-c-objs)
 	@if [ '$(color)' != 'no' ]; then \
 		$(ECHO) -e -n "\033[0;1;5mlinking   \033[0m: \033[0;31m$@\033[0m"; \
 	else \
@@ -321,6 +361,34 @@ install: $(DESTDIR) all
 		$(ECHO) -e "\r\033[0minstall   : \033[34m$(schema-output)\033[0m"; \
 	    fi; \
 	fi
+	@if [ -n "$(data-files)" ]; then \
+	    mkdir -p $(DATADIR); \
+	    for FILE in $(data-files); do \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -n -e "\033[0;1;5minstall   \033[0m: \033[0;31m$(DATADIR)/$$FILE\033[0m"; \
+		else \
+		    $(ECHO) "install   : $(DATADIR)/$$FILE"; \
+		fi; \
+		cp data/$$FILE $(DATADIR)/$$FILE; \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -e "\r\033[0minstall   : \033[34m$(DATADIR)/$$FILE\033[0m"; \
+		fi; \
+	    done \
+	fi
+	@if [ -n "$(image-files)" ]; then \
+	    mkdir -p $(IMAGEDIR); \
+	    for FILE in $(image-files); do \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -n -e "\033[0;1;5minstall   \033[0m: \033[0;31m$(IMAGEDIR)/$$FILE\033[0m"; \
+		else \
+		    $(ECHO) "install   : $(IMAGEDIR)/$$FILE"; \
+		fi; \
+		cp images/$$FILE $(IMAGEDIR)/$$FILE; \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -e "\r\033[0minstall   : \033[34m$(IMAGEDIR)/$$FILE\033[0m"; \
+		fi; \
+	    done \
+	fi
 
 uninstall:	
 	@if [ -e $(DESTDIR)/lib$(PLUGIN).so ]; then \
@@ -367,3 +435,29 @@ uninstall:
 		$(ECHO) -e "\r\033[0muninstall : \033[34m$(PKGDIR)/compiz-$(PLUGIN).pc\033[0m"; \
 	    fi; \
 	fi
+	@if [ -n "$(data-files)" ]; then \
+	    for FILE in $(data-files); do \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -n -e "\033[0;1;5muninstall \033[0m: \033[0;31m$(DATADIR)/$$FILE\033[0m"; \
+		else \
+		    $(ECHO) "uninstall : $(DATADIR)/$$FILE"; \
+		fi; \
+		rm -f $(DATADIR)/$$FILE; \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -e "\r\033[0muninstall : \033[34m$(DATADIR)/$$FILE\033[0m"; \
+		fi; \
+	    done \
+	fi
+	@if [ -n "$(image-files)" ]; then \
+	    for FILE in $(image-files); do \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -n -e "\033[0;1;5muninstall \033[0m: \033[0;31m$(IMAGEDIR)/$$FILE\033[0m"; \
+		else \
+		    $(ECHO) "uninstall : $(IMAGEDIR)/$$FILE"; \
+		fi; \
+		rm -f $(IMAGEDIR)/$$FILE; \
+		if [ '$(color)' != 'no' ]; then \
+		    $(ECHO) -e "\r\033[0muninstall : \033[34m$(IMAGEDIR)/$$FILE\033[0m"; \
+		fi; \
+	    done \
+	fi

Modified: fusion/plugins/cubecaps/cubecaps.c
===================================================================
--- fusion/plugins/cubecaps/cubecaps.c
+++ fusion/plugins/cubecaps/cubecaps.c
@@ -215,27 +215,39 @@ cubecapsPaintCap (CompScreen	    *s,
 		  CubeCap	    *capOutside,
 		  CubeCap	    *capInside,
 		  unsigned short    *colorOutside,
-		  unsigned short    *colorInside)
+		  unsigned short    *colorInside,
+		  Bool		    clamp_to_border_outside,
+		  Bool		    clamp_to_border_inside)
 {
-    CubeCap *cap;
+    CubeCap	    *cap;
+    unsigned short  opacity;
+    Bool	    clamp_to_border;
 
     CUBE_SCREEN(s);
 
+    opacity = cs->desktopOpacity;
+
     if (cs->invert == 1)
     {
 	cap = capOutside;
+	clamp_to_border = clamp_to_border_outside;
+	if (opacity == OPAQUE)
+	    opacity = colorOutside[3];
 	glColor4us (colorOutside[0],
 		    colorOutside[1],
 		    colorOutside[2],
-		    cs->desktopOpacity);
+		    opacity);
     }
     else if (cs->invert != 1)
     {
 	cap = capInside;
+	clamp_to_border = clamp_to_border_inside;
+	if (opacity == OPAQUE)
+	    opacity = colorOutside[4];
 	glColor4us (colorInside[0],
 		    colorInside[1],
 		    colorInside[2],
-		    cs->desktopOpacity);
+		    opacity);
     }
 
     glTranslatef (cs->outputXOffset, -cs->outputYOffset, 0.0f);
@@ -250,7 +262,7 @@ cubecapsPaintCap (CompScreen	    *s,
 	glEnable (GL_BLEND);
 	/* Draw cap once and reset color so that image will get correctly
 	 * blended, and for non-4-horizontal-viewports setups */
-	if (cs->desktopOpacity != OPAQUE)
+	if (opacity != OPAQUE)
 	{
 	    screenTexEnvMode (s, GL_MODULATE);
 	    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -271,13 +283,20 @@ cubecapsPaintCap (CompScreen	    *s,
 	/* Use CLAMP_TO_BORDER if available to avoid weird looking clamping 
 	 * of non-scaled images (it also improves scaled images a bit but 
 	 * that's much less obvious) */
-	if (s->textureBorderClamp)
+	if (clamp_to_border && s->textureBorderClamp)
 	{
 	    glTexParameteri (cap->texture.target, GL_TEXTURE_WRAP_S,
 			     GL_CLAMP_TO_BORDER);
 	    glTexParameteri (cap->texture.target, GL_TEXTURE_WRAP_T,
 			     GL_CLAMP_TO_BORDER);
 	}
+	else
+	{
+	    glTexParameteri (cap->texture.target, GL_TEXTURE_WRAP_S,
+			     GL_CLAMP_TO_EDGE);
+	    glTexParameteri (cap->texture.target, GL_TEXTURE_WRAP_T,
+			     GL_CLAMP_TO_EDGE);
+	}
 
 	if (s->hsize == 4)
 	{
@@ -330,7 +349,7 @@ cubecapsPaintCap (CompScreen	    *s,
 
 	disableTexture (s, &cap->texture);
 
-	if (cs->desktopOpacity != OPAQUE)
+	if (opacity != OPAQUE)
 	    screenTexEnvMode (s, GL_REPLACE);
 
 	glDisable (GL_BLEND);
@@ -390,7 +409,9 @@ cubecapsPaintTop (CompScreen		  *s,
 
     /* Actually paint the cap */
     cubecapsPaintCap (s, 0, &ccs->topCap, &ccs->bottomCap,
-		      cubecapsGetTopColor (s), cubecapsGetBottomColor (s));
+		      cubecapsGetTopColor (s), cubecapsGetBottomColor (s),
+		      cubecapsGetClampTopToBorder (s),
+		      cubecapsGetClampBottomToBorder (s));
 
     glPopMatrix ();
 
@@ -441,7 +462,9 @@ cubecapsPaintBottom (CompScreen		     *s,
 
     /* Actually paint the cap */
     cubecapsPaintCap (s, cs->nVertices >> 1, &ccs->bottomCap, &ccs->topCap,
-		      cubecapsGetBottomColor (s), cubecapsGetTopColor (s));
+		      cubecapsGetBottomColor (s), cubecapsGetTopColor (s),
+		      cubecapsGetClampBottomToBorder (s),
+		      cubecapsGetClampTopToBorder (s));
 
     glPopMatrix ();
 
@@ -707,6 +730,9 @@ cubecapsInitScreen (CompPlugin *p,
     cubecapsInitCap (s, &ccs->topCap);
     cubecapsInitCap (s, &ccs->bottomCap);
 
+    ccs->topCap.files = cubecapsGetTopImages (s);
+    ccs->bottomCap.files = cubecapsGetBottomImages (s);
+
     cubecapsSetTopImagesNotify (s, cubecapsTopImagesChanged);
     cubecapsSetBottomImagesNotify (s, cubecapsBottomImagesChanged);
 
@@ -718,6 +744,9 @@ cubecapsInitScreen (CompPlugin *p,
 
     s->privates[ccd->screenPrivateIndex].ptr = ccs;
 
+    cubecapsChangeCap (s, &ccs->topCap, 0);
+    cubecapsChangeCap (s, &ccs->bottomCap, 0);
+
     return TRUE;
 }
 

Modified: fusion/plugins/cubecaps/cubecaps.xml.in
===================================================================
--- fusion/plugins/cubecaps/cubecaps.xml.in
+++ fusion/plugins/cubecaps/cubecaps.xml.in
@@ -8,6 +8,9 @@
 	<deps>
 	    <relation type="after">
 		    <plugin>cube</plugin>
+		    <plugin>svg</plugin>
+		    <plugin>png</plugin>
+		    <plugin>imgjpeg</plugin>
 	    </relation>
 	    <requirement>
 		    <plugin>cube</plugin>
@@ -48,68 +51,88 @@
 	    </option>
 	</display>
 	<screen>
-	    <option name="draw_top" type="bool">
-		<_short>Draw top face</_short>
-		<_long>Draw top face of the cube</_long>
-		<default>true</default>
-	    </option>
-	    <option name="draw_bottom" type="bool">
-		<_short>Draw bottom face</_short>
-		<_long>Draw bottom face of the cube</_long>
-		<default>true</default>
-	    </option>
-	    <option name="adjust_top" type="bool">
-		<_short>Adjust top image</_short>
-		<_long>Adjust top face image to rotation</_long>
-		<default>false</default>
-	    </option>
-	    <option name="adjust_bottom" type="bool">
-		<_short>Adjust bottom image</_short>
-		<_long>Adjust bottom face image to rotation</_long>
-		<default>false</default>
-	    </option>
-	    <option name="scale_top_image" type="bool">
-		<_short>Scale top image</_short>
-		<_long>Scale image to cover top face of cube</_long>
-		<default>false</default>
-	    </option>
-	    <option name="scale_bottom_image" type="bool">
-		<_short>Scale bottom image</_short>
-		<_long>Scale image to cover bottom face of cube</_long>
-		<default>false</default>
-	    </option>
-	    <option name="top_color" type="color">
-		<_short>Cube Top Color</_short>
-		<_long>Color of top face of the cube</_long>
-		<default>
-		    <red>0xfefe</red>
-		    <green>0xffff</green>
-		    <blue>0xc7c7</blue>
-		</default>
-	    </option>
-	    <option name="bottom_color" type="color">
-		<_short>Cube Bottom Color</_short>
-		<_long>Color of bottom face of the cube</_long>
-		<default>
-		    <red>0xfefe</red>
-		    <green>0xffff</green>
-		    <blue>0xc7c7</blue>
-		</default>
-	    </option>
-	    <option name="top_images" type="list">
-		<_short>Top image files</_short>
-		<_long>List of PNG and SVG files that should be rendered on top face of cube</_long>
-		<type>string</type>
-		<default>freedesktop</default>
-		<hints>file;</hints>
-	    </option>
-	    <option name="bottom_images" type="list">
-		<_short>Bottom image files</_short>
-		<_long>List of PNG and SVG files that should be rendered on bottom face of cube</_long>
-		<type>string</type>
-		<default>freedesktop</default>
-		<hints>file;</hints>
-	    </option>
+	    <group>
+		<_short>Behaviour</_short>
+		<option name="draw_top" type="bool">
+		    <_short>Draw top face</_short>
+		    <_long>Draw top face of the cube</_long>
+		    <default>true</default>
+		</option>
+		<option name="draw_bottom" type="bool">
+		    <_short>Draw bottom face</_short>
+		    <_long>Draw bottom face of the cube</_long>
+		    <default>true</default>
+		</option>
+		<option name="adjust_top" type="bool">
+		    <_short>Adjust top image</_short>
+		    <_long>Adjust top face image to rotation</_long>
+		    <default>false</default>
+		</option>
+		<option name="adjust_bottom" type="bool">
+		    <_short>Adjust bottom image</_short>
+		    <_long>Adjust bottom face image to rotation</_long>
+		    <default>false</default>
+		</option>
+		<option name="scale_top_image" type="bool">
+		    <_short>Scale top image</_short>
+		    <_long>Scale image to cover top face of cube</_long>
+		    <default>false</default>
+		</option>
+		<option name="scale_bottom_image" type="bool">
+		    <_short>Scale bottom image</_short>
+		    <_long>Scale image to cover bottom face of cube</_long>
+		    <default>false</default>
+		</option>
+		<option name="clamp_top_to_border" type="bool">
+		    <_short>Clamp top face image to border</_short>
+		    <_long>Clamp top face image to border. This is often the best if your image doesn't fit the size of the cube or if it's transparent. It can lead to some ugly dotted lines when enabled (especially with large enough images) though.</_long>
+		    <default>true</default>
+		</option>
+		<option name="clamp_bottom_to_border" type="bool">
+		    <_short>Clamp bottom face image to border</_short>
+		    <_long>Clamp bottom face image to border. This is often the best if your image doesn't fit the size of the cube or if it's transparent. It can lead to some ugly dotted lines when enabled (especially with large enough images) though.</_long>
+		    <default>true</default>
+		</option>
+	    </group>
+	    <group>
+		<_short>Appearance</_short>
+		<option name="top_color" type="color">
+		    <_short>Cube Top Color</_short>
+		    <_long>Color of top face of the cube</_long>
+		    <default>
+			<red>0xffff</red>
+			<green>0xffff</green>
+			<blue>0xffff</blue>
+		    </default>
+		</option>
+		<option name="bottom_color" type="color">
+		    <_short>Cube Bottom Color</_short>
+		    <_long>Color of bottom face of the cube</_long>
+		    <default>
+			<red>0xffff</red>
+			<green>0xffff</green>
+			<blue>0xffff</blue>
+		    </default>
+		</option>
+		<option name="top_images" type="list">
+		    <_short>Top image files</_short>
+		    <_long>List of PNG and SVG files that should be rendered on top face of cube</_long>
+		    <type>string</type>
+		    <default>
+			<value>fusioncap.png</value>
+		    </default>
+		    <hints>file;image;</hints>
+		</option>
+		<option name="bottom_images" type="list">
+		    <_short>Bottom image files</_short>
+		    <_long>List of PNG and SVG files that should be rendered on bottom face of cube</_long>
+		    <type>string</type>
+		    <default>
+			<value>compizcap.png</value>
+		    </default>
+		    <hints>file;image;</hints>
+		</option>
+	    </group>
 	</screen>
     </plugin>
 </compiz>

Modified: fusion/plugins/cubecaps/images/compizcap.png
new file mode 100644
===================================================================
Binary files /dev/null and b/images/compizcap.png differ

Modified: fusion/plugins/cubecaps/images/fusioncap.png
new file mode 100644
===================================================================
Binary files /dev/null and b/images/fusioncap.png differ


More information about the commits mailing list