[SCM] calf/master: In the middle of nowhere

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:39:40 UTC 2013


The following commit has been merged in the master branch:
commit 42a8172219488192229645e529c4a18da7ff00d7
Author: Markus Schmidt <schmidt at boomshop.net>
Date:   Fri Oct 23 06:44:04 2009 +0200

    In the middle of nowhere

diff --git a/gui/background_black.png b/gui/background_black.png
new file mode 100644
index 0000000..f69b1c8
Binary files /dev/null and b/gui/background_black.png differ
diff --git a/gui/background_light.png b/gui/background_light.png
deleted file mode 100644
index b0f6c34..0000000
Binary files a/gui/background_light.png and /dev/null differ
diff --git a/gui/background_light_calf.png b/gui/background_light_calf.png
new file mode 100644
index 0000000..1e4a925
Binary files /dev/null and b/gui/background_light_calf.png differ
diff --git a/gui/background_light_green.png b/gui/background_light_green.png
new file mode 100644
index 0000000..c13e06f
Binary files /dev/null and b/gui/background_light_green.png differ
diff --git a/gui/background_light_metal.png b/gui/background_light_metal.png
new file mode 100644
index 0000000..2427d27
Binary files /dev/null and b/gui/background_light_metal.png differ
diff --git a/gui/bottom.png b/gui/bottom.png
deleted file mode 100644
index 1a5faf4..0000000
Binary files a/gui/bottom.png and /dev/null differ
diff --git a/gui/button.png b/gui/button.png
new file mode 100644
index 0000000..f244a21
Binary files /dev/null and b/gui/button.png differ
diff --git a/gui/button_active.png b/gui/button_active.png
new file mode 100644
index 0000000..32f94fb
Binary files /dev/null and b/gui/button_active.png differ
diff --git a/gui/button_default.png b/gui/button_default.png
new file mode 100644
index 0000000..f244a21
Binary files /dev/null and b/gui/button_default.png differ
diff --git a/gui/button_insens.png b/gui/button_insens.png
new file mode 100644
index 0000000..69f747a
Binary files /dev/null and b/gui/button_insens.png differ
diff --git a/gui/button_normal.png b/gui/button_normal.png
new file mode 100644
index 0000000..3adfe16
Binary files /dev/null and b/gui/button_normal.png differ
diff --git a/gui/button_prelight.png b/gui/button_prelight.png
new file mode 100644
index 0000000..2437e32
Binary files /dev/null and b/gui/button_prelight.png differ
diff --git a/gui/calf.rc b/gui/calf.rc
index 9aff67c..c48ab4a 100644
--- a/gui/calf.rc
+++ b/gui/calf.rc
@@ -1,20 +1,45 @@
-style "calf_default"
-{
-  fg[NORMAL] = { 0.1, 0.1, 0.1 }
-  fg[ACTIVE] = { 0.1, 0.1, 0.1 }
-  fg[PRELIGHT] = { 0.1, 0.1, 0.1 }
-  fg[SELECTED] = { 0.1, 0.1, 0.1 }
-  fg[INSENSITIVE] = { 0.1, 0.1, 0.1 }
-
-  bg[NORMAL] = "#d0cfca"
-  bg[ACTIVE] = "#d0cfca"
-  bg[PRELIGHT] = "#d0cfca"
-  bg[SELECTED] = "#d0cfca"
-  bg[INSENSITIVE] = "#d0cfca"
-  
-  font_name = "Sans 8"
-  
-  engine "murrine" 
+style "default"
+{
+	font_name = "Sans 8"
+	
+	GtkVScale::slider_length 			= 46
+	GtkVScale::slider_width 			= 35
+	GtkHScale::slider_length 			= 46
+	GtkHScale::slider_width 			= 35
+	GtkRange::trough_border				= 0
+	GtkNotebook::tab-overlap			= -2
+	GtkSpinButton::shadow-type			= GTK_SHADOW_NONE
+	GtkStatusbar::shadow-type			= GTK_SHADOW_NONE
+	GtkEntry::shadow-type				= GTK_SHADOW_NONE
+	GtkEntry::inner-border				= { 6, 6, 5, 4 }
+	GtkButton::default_border			= { 6, 6, 3, 3 }
+	GtkButton::default_outside_border	= { 0, 0, 0, 0 }
+	
+	fg[NORMAL]			= "#111"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#666"
+
+	bg[NORMAL]			= "#e8e7e2"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#e8e7e2"
+
+	base[NORMAL]		= "#e8e7e2"
+	base[PRELIGHT]	 	= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#e8e7e2"
+
+	text[NORMAL]		= "#111"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#0af"
+	text[ACTIVE]		= "#0af"
+	text[INSENSITIVE]	= "#666"
+	
+	engine "murrine" 
 	{
 		animation           = TRUE  # FALSE = disabled, TRUE = enabled
 		colorize_scrollbar  = TRUE # FALSE = disabled, TRUE = enabled
@@ -40,94 +65,1435 @@ style "calf_default"
 		#profile            = NODOKA # engine profile options: CANDIDO, CLEARLOOKS, MIST, MURRINE, NODOKA
 		toolbarstyle	    = 2     # 0 = flat, 1 = glassy, 2 = gradient
 	}
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			detail			= "trough"
+			file			= "trough-horizontal.png"
+			border			= { 20, 20, 0, 0 }
+			stretch			= TRUE
+			orientation		= HORIZONTAL
+		}
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			detail			= "trough"
+			file			= "trough-vertical.png"
+			border			= { 0, 0, 20, 20 }
+			stretch			= TRUE
+			orientation		= VERTICAL
+		}
+		image
+		{
+			function				= BOX
+			detail					= "buttondefault"
+			recolorable				= TRUE
+			overlay_file			= "button_normal.png"
+			overlay_border			= {8, 24, 6, 6}
+			overlay_stretch			= FALSE
+		}
+
+		# HANDLES ############################
+
+		image
+		{
+			function				= HANDLE
+			recolorable				= TRUE
+			overlay_file			= "handle-h.png"
+			overlay_border			= {0, 0, 0, 0}
+			overlay_stretch			= FALSE
+			orientation				= HORIZONTAL
+		}
+		image
+		{
+			function				= HANDLE
+			recolorable				= TRUE
+			overlay_file			= "handle-v.png"
+			overlay_border			= {0, 0, 0, 0}
+			overlay_stretch			= FALSE
+			orientation				= VERTICAL
+		}
+
+		
+
+		# LINES ############################
+
+		image
+		{
+			function		= VLINE
+			recolorable		= TRUE
+			file			= "vline.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= HLINE
+			recolorable		= TRUE
+			file			= "hline.png"
+			border			= { 0, 0, 0, 0	}
+			stretch			= TRUE
+		}
+
+		# FOCUS ############################
+
+		image
+		{
+			function		= FOCUS
+			recolorable		= TRUE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+
+		# ARROWS ############################
+
+		image
+		{
+			function		= ARROW
+			state			= NORMAL
+			recolorable		= TRUE
+			overlay_file		= "led.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= UP
+		}
+		image
+		{
+			function		= ARROW
+			state			= PRELIGHT
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= UP
+		}
+		image
+		{
+			function		= ARROW
+			state			= ACTIVE
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= UP
+		}
+		image
+		{
+			function		= ARROW
+			state			= INSENSITIVE
+			recolorable		= TRUE
+			overlay_file		= "led_inactive.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= UP
+		}
+
+		image
+		{
+			function		= ARROW
+			state			= NORMAL
+			recolorable		= TRUE
+			overlay_file		= "led.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= DOWN
+		}
+		image
+		{
+			function		= ARROW
+			state			= PRELIGHT
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= DOWN
+		}
+		image
+		{
+			function		= ARROW
+			state			= ACTIVE
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= DOWN
+		}
+		image
+		{
+			function		= ARROW
+			state			= INSENSITIVE
+			recolorable		= TRUE
+			overlay_file		= "led_inactive.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= DOWN
+		}
+
+		image
+		{
+			function		= ARROW
+			state			= NORMAL
+			recolorable		= TRUE
+			overlay_file		= "led.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= LEFT
+		}
+		image
+		{
+			function		= ARROW
+			state			= PRELIGHT
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= LEFT
+		}
+		image
+		{
+			function		= ARROW
+			state			= ACTIVE
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= LEFT
+		}
+		image
+		{
+			function		= ARROW
+			state			= INSENSITIVE
+			recolorable		= TRUE
+			overlay_file		= "led_inactive.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= LEFT
+		}
+
+		image
+		{
+			function		= ARROW
+			state			= NORMAL
+			recolorable		= TRUE
+			overlay_file		= "led.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= RIGHT
+		}
+		image
+		{
+			function		= ARROW
+			state			= PRELIGHT
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= RIGHT
+		}
+		image
+		{
+			function		= ARROW
+			state			= ACTIVE
+			recolorable		= TRUE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= RIGHT
+		}
+		image
+		{
+			function		= ARROW
+			state			= INSENSITIVE
+			recolorable		= TRUE
+			overlay_file		= "led_inactive.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+			arrow_direction		= RIGHT
+		}
+
+		# SHADOWS ############################
+
+		image
+		{
+			function		= SHADOW
+			shadow			= IN
+			recolorable		= FALSE
+			file			= "frame.png"
+			border			= { 12, 12, 12, 12 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= SHADOW
+			shadow			= OUT
+			recolorable		= TRUE
+			file			= "frame.png"
+			border			= { 12, 12, 12, 12 }
+			stretch			= TRUE
+	 	}
+
+		image
+		{
+			function		= SHADOW
+			shadow			= ETCHED_IN
+			recolorable		= TRUE
+			file			= "frame.png"
+			border			= { 12, 12, 12, 12 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= SHADOW
+			shadow			= ETCHED_OUT
+			recolorable		= TRUE
+			file			= "frame.png"
+			border			= { 12, 12, 12, 12 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= SHADOW_GAP
+			recolorable		= TRUE
+			file			= "frame_top.png"
+			border			= { 12, 12, 16, 12 }
+			stretch			= TRUE
+			gap_start_file		= "frame_top_start.png"
+			gap_start_border	= { 12, 2, 12, 2 }
+			gap_end_file		= "frame_top_end.png"
+			gap_end_border		= { 2, 12, 12, 2 }
+			gap_side		= TOP
+		}
+		image
+		{
+			function		= SHADOW_GAP
+			recolorable		= TRUE
+			file			= "frame_bottom.png"
+			border			= { 12, 12, 12, 16 }
+			stretch			= TRUE
+			gap_start_file		= "frame_bottom_start.png"
+			gap_start_border	= { 12, 2, 2, 12 }
+			gap_end_file		= "frame_bottom_end.png"
+			gap_end_border		= { 2, 12, 2, 12 }
+			gap_side		= BOTTOM
+		}
+		image
+		{
+			function		= SHADOW_GAP
+			recolorable		= TRUE
+			file			= "frame_left.png"
+			border			= { 16, 12, 12, 12 }
+			stretch			= TRUE
+			gap_start_file		= "frame_left_start.png"
+			gap_start_border	= { 12, 2, 12, 2 }
+			gap_end_file		= "frame_left_end.png"
+			gap_end_border		= { 12, 2, 2, 12 }
+			gap_side		= LEFT
+		}
+		image
+		{
+			function		= SHADOW_GAP
+			recolorable		= TRUE
+			file			= "frame_right.png"
+			border			= { 12, 16, 12, 12 }
+			stretch			= TRUE
+			gap_start_file		= "frame_right_start.png"
+			gap_start_border	= { 2, 12, 12, 2 }
+			gap_end_file		= "frame_right_end.png"
+			gap_end_border		= { 2, 12, 2, 12 }
+			gap_side		= RIGHT
+		}
+	}
+}
+
+style "light" = "default"
+{
+	fg[NORMAL]			= "#111"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#666"
+
+	bg[NORMAL]			= "#e8e7e2"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#e8e7e2"
+
+	base[NORMAL]		= "#111"
+	base[PRELIGHT]	 	= "#222"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#111"
+
+	text[NORMAL]		= "#e8e7e2"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#0af"
+	text[ACTIVE]		= "#0af"
+	text[INSENSITIVE]	= "#999"
+}
+
+style "light_bg" = "default"
+{
+	bg[NORMAL]			= "#e8e7e2"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#e8e7e2"
+	
+	bg_pixmap[NORMAL]		= "background_light_calf.png"
+	bg_pixmap[ACTIVE]		= "background_light_calf.png"
+	bg_pixmap[PRELIGHT]		= "background_light_calf.png"
+	bg_pixmap[SELECTED]		= "background_light_calf.png"
+	bg_pixmap[INSENSITIVE]	= "background_light_calf.png"
+	
+	base[NORMAL]		= "#e8e7e2"
+	base[PRELIGHT]	 	= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#e8e7e2"
+	
+	engine "pixmap" {
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "background_light_calf.png"
+			border			= {0, 0, 0, 0}
+			stretch			= FALSE
+		}
+	}
 }
 
-style "frame" = "calf_default"
+style "green" = "default"
 {
-  xthickness = 8
-  ythickness = 8
+	fg[NORMAL]			= "#111"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#666"
+
+	bg[NORMAL]			= "#b2cdb7"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#b2cdb7"
+
+	base[NORMAL]		= "#111"
+	base[PRELIGHT]	 	= "#222"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#111"
+
+	text[NORMAL]		= "#b2cdb7"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#0af"
+	text[ACTIVE]		= "#0af"
+	text[INSENSITIVE]	= "#b2cdb7"
 }
 
-style "inverse" = "calf_default"
+style "green_bg" = "default"
 {
-  fg[NORMAL] = "#fff"
-  fg[ACTIVE] = "#fff"
-  fg[PRELIGHT] = "#fff"
-  fg[SELECTED] = "#fff"
-  fg[INSENSITIVE] = "#fff"
+	bg[NORMAL]			= "#b2cdb7"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#b2cdb7"
+	
+	bg_pixmap[NORMAL]		= "background_light_green.png"
+	bg_pixmap[ACTIVE]		= "background_light_green.png"
+	bg_pixmap[PRELIGHT]		= "background_light_green.png"
+	bg_pixmap[SELECTED]		= "background_light_green.png"
+	bg_pixmap[INSENSITIVE]	= "background_light_green.png"
+	
+	base[NORMAL]		= "#b2cdb7"
+	base[PRELIGHT]	 	= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#b2cdb7"
 
-  bg[NORMAL] = "#495563"
-  bg[ACTIVE] = "#495563"
-  bg[PRELIGHT] = "#495563"
-  bg[SELECTED] = "#495563"
-  bg[INSENSITIVE] = "#495563"
+	engine "pixmap" {
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "background_light_green.png"
+			border			= {0, 0, 0, 0}
+			stretch			= FALSE
+		}
+	}
+}
+
+
+style "dark" = "default"
+{
+	fg[NORMAL]			= "#fff"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#999"
+
+	bg[NORMAL]			= "#465160"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#465160"
+	
+	text[NORMAL]		= "#fff"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#0af"
+	text[ACTIVE]		= "#0af"
+	text[INSENSITIVE]	= "#999"
+
+	base[NORMAL]		= "#465160"
+	base[PRELIGHT]		= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#465160"
 }
 
-style "menu" = "calf_default"
+style "dark_bg" = "default"
+{
+	bg[NORMAL]			= "#465160"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#465160"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#465160"
+	
+	bg_pixmap[NORMAL]		= "background_dark.png"
+	bg_pixmap[PRELIGHT]		= "background_dark.png"
+	bg_pixmap[SELECTED]		= "background_dark.png"
+	bg_pixmap[ACTIVE]		= "background_dark.png"
+	bg_pixmap[INSENSITIVE]	= "background_dark.png"
+	
+	base[NORMAL]		= "#465160"
+	base[PRELIGHT]		= "#000"
+	base[SELECTED]		= "#465160"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#465160"
+	
+	engine "pixmap" {
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "background_dark.png"
+			border			= {0, 0, 0, 0}
+			stretch			= FALSE
+		}
+	}
+}
+
+style "darker_bg" = "dark"
+{
+	bg[NORMAL]			= "#303841"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#303841"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#303841"
+}
+
+
+style "black" = "default"
+{
+	fg[NORMAL]			= "#fff"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#999"
+
+	bg[NORMAL]			= "#111"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#111"
+
+	text[NORMAL]		= "#fff"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#0af"
+	text[ACTIVE]		= "#0af"
+	text[INSENSITIVE]	= "#999"
+
+	base[NORMAL]		= "#111"
+	base[PRELIGHT]		= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#111"
+}
+
+style "black_bg" = "black"
+{
+	bg[NORMAL]			= "#111"
+	bg[PRELIGHT]		= "#000"
+	bg[SELECTED]		= "#000"
+	bg[ACTIVE]			= "#000"
+	bg[INSENSITIVE]		= "#111"
+	
+	fg[NORMAL]			= "#fff"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#0af"
+	fg[ACTIVE]			= "#0af"
+	fg[INSENSITIVE]		= "#999"
+	
+	bg_pixmap[NORMAL]		= "background_black.png"
+	bg_pixmap[PRELIGHT]		= "background_black.png"
+	bg_pixmap[SELECTED]		= "background_black.png"
+	bg_pixmap[ACTIVE]		= "background_black.png"
+	bg_pixmap[INSENSITIVE]	= "background_black.png"
+	
+	base[NORMAL]		= "#111"
+	base[PRELIGHT]		= "#000"
+	base[SELECTED]		= "#000"
+	base[ACTIVE]		= "#000"
+	base[INSENSITIVE]	= "#111"
+	
+	engine "pixmap" {
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "background_black.png"
+			border			= {0, 0, 0, 0}
+			stretch			= FALSE
+		}
+	}
+}
+
+### FRAME ###
+
+style "frame" = "default"
+{
+	xthickness = 8
+	ythickness = 8
+	font_name = "Sans 10"
+	engine "murrine"
+	{
+		reliefstyle	    = 1     # 0 = flat, 1 = inset, 2 = shadow
+		roundness           = 6     # 0 = squared, 1 = old default, more will increase roundness
+		
+	}
+}
+
+style "frame-label-light" = "default"
+{
+	fg[NORMAL]			= "#fff"
+	
+	font_name = "Sans 10"
+	xthickness = 3
+}
+style "frame-label-dark" = "default"
 {
-  fg[NORMAL] = "#fff"
-  fg[ACTIVE] = "#fff"
-  fg[PRELIGHT] = "#fff"
-  fg[SELECTED] = "#fff"
-  fg[INSENSITIVE] = "#999"
+	fg[NORMAL]			= "#000"
+	
+	font_name = "Sans 10"
+	xthickness = 3
+}
 
-  bg[NORMAL] = "#000"
-  bg[ACTIVE] = "#000"
-  bg[PRELIGHT] = "#495563"
-  bg[SELECTED] = "#495563"
-  bg[INSENSITIVE] = "#000"
+### NOTEBOOK ###
+style "notebook" = "black"
+{
+	GtkNotebook::tab-overlap			= -2
+	
+	engine "pixmap"
+	{
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			state			= ACTIVE
+			file			= "tab_bottom_normal.png"
+			border			= { 24, 24, 0, 19 }
+			stretch			= TRUE
+			gap_side		= TOP
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			state			= ACTIVE
+			file			= "tab_top_normal.png"
+			border			= { 24, 24, 19, 0 }
+			stretch			= TRUE
+			gap_side		= BOTTOM
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			state			= ACTIVE
+			file			= "tab_left_normal.png"
+			border			= { 19, 0, 24, 24 }
+			stretch			= TRUE
+			gap_side		= RIGHT
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			state			= ACTIVE
+			file			= "tab_right_normal.png"
+			border			= { 0, 19, 24, 24 }
+			stretch			= TRUE
+			gap_side		= LEFT
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			file			= "tab_top_prelight.png"
+			border			= { 24, 24, 19, 0 }
+			stretch			= TRUE
+			gap_side		= BOTTOM
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			file			= "tab_bottom_prelight.png"
+			border			= { 24, 24, 0, 19 }
+			stretch			= TRUE
+			gap_side		= TOP
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			file			= "tab_left_prelight.png"
+			border			= { 19, 0, 24, 24 }
+			stretch			= TRUE
+			gap_side		= RIGHT
+		}
+		image
+		{
+			function		= EXTENSION
+			recolorable		= TRUE
+			file			= "tab_right_prelight.png"
+			border			= { 0, 19, 24, 24 }
+			stretch			= TRUE
+			gap_side		= LEFT
+		}
+		
+		image
+		{
+			function		= BOX_GAP
+			recolorable		= TRUE
+			file			= "notebook_top.png"
+			border			= { 21, 21, 21, 21 }
+			stretch			= TRUE
+			gap_side		= TOP
+		}
+		image
+		{
+			function		= BOX_GAP
+			recolorable		= TRUE
+			file			= "notebook_bottom.png"
+			border			= { 21, 21, 21, 21 }
+			stretch			= TRUE
+			gap_side		= BOTTOM
+		}
+		image
+		{
+			function		= BOX_GAP
+			recolorable		= TRUE
+			file			= "notebook_left.png"
+			border			= { 21, 21, 21, 21 }
+			stretch			= TRUE
+			gap_side		= LEFT
+		}
+		image
+		{
+			function		= BOX_GAP
+			recolorable		= TRUE
+			file			= "notebook_right.png"
+			border			= { 21, 21, 21, 21 }
+			stretch			= TRUE
+			gap_side		= RIGHT
+		}
+# How to draw boxes with a gap on one side (ie the page of a notebook)
+
+		image
+		{
+			function		= BOX_GAP
+			recolorable		= TRUE
+			file			= "notebook.png"
+			border			= { 21, 21, 21, 21 }
+			stretch			= TRUE
+		}
+	}
+}
+style "notebook-pad" = "black"
+{
+	xthickness = 18
+	ythickness = 8
 }
+style "notebook-label-dark"
+{
+	xthickness = 0
+	ythickness = 0
+	fg[NORMAL]			= "#fff"
+	fg[PRELIGHT]		= "#fff"
+	fg[SELECTED]		= "#fff"
+	fg[ACTIVE]			= "#fff"
+	fg[INSENSITIVE]		= "#999"
+
+	text[NORMAL]		= "#fff"
+	text[PRELIGHT]		= "#fff"
+	text[SELECTED]		= "#fff"
+	text[ACTIVE]		= "#fff"
+	text[INSENSITIVE]	= "#999"
+}
+style "notebook-label-light"
+{
+	xthickness = 0
+	ythickness = 0
+	fg[NORMAL]			= "#111"
+	fg[PRELIGHT]		= "#111"
+	fg[SELECTED]		= "#111"
+	fg[ACTIVE]			= "#111"
+	fg[INSENSITIVE]		= "#666"
+
+	text[NORMAL]		= "#111"
+	text[PRELIGHT]		= "#111"
+	text[SELECTED]		= "#111"
+	text[ACTIVE]		= "#111"
+	text[INSENSITIVE]	= "#666"
+}
+
+### MENU ###
 
-style "button" = "calf_default"
+style "menu" = "black"
 {
-  fg[NORMAL] = "#fff"
-  fg[ACTIVE] = "#fff"
-  fg[PRELIGHT] = "#fff"
-  fg[SELECTED] = "#fff"
-  fg[INSENSITIVE] = "#999"
+  xthickness = 5
+  ythickness = 3
+}
+style "menu-separator" = "menu"
+{
+  engine "pixmap" {
+  	image
+		{
+			function		= VLINE
+			recolorable		= TRUE
+			file			= "vline.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= HLINE
+			recolorable		= TRUE
+			file			= "hline.png"
+			border			= { 0, 0, 0, 0	}
+			stretch			= TRUE
+		}
+	}
+}
+
+### BUTTON ###
 
-  bg[NORMAL] = "#000"
-  bg[ACTIVE] = "#000"
-  bg[PRELIGHT] = "#495563"
-  bg[SELECTED] = "#495563"
-  bg[INSENSITIVE] = "#000"
+style "button" = "default"
+{	
+	GtkButton      ::child-displacement-x = 0
+	GtkButton      ::child-displacement-y = 0
+	GtkButton      ::default-border       = { 6, 24, 6, 6 }
+	GtkButton      ::inner-border         = { 6, 25, 3, 3}
+	
+    xthickness = 5
+    ythickness = 3
+    
+    fg[NORMAL]			= "#000"
+	fg[PRELIGHT]		= "#000"
+	fg[SELECTED]		= "#000"
+	fg[ACTIVE]			= "#000"
+	fg[INSENSITIVE]		= "#666"
+	
+	text[NORMAL]		= "#000"
+	text[PRELIGHT]		= "#000"
+	text[SELECTED]		= "#000"
+	text[ACTIVE]		= "#000"
+	text[INSENSITIVE]	= "#666"
+	
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			detail			= "buttondefault"
+			recolorable		= TRUE
+			file			= "button_normal.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			state			= PRELIGHT
+			recolorable		= TRUE
+			file			= "button_prelight.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			state			= ACTIVE
+			file			= "button_prelight.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			state			= INSENSITIVE
+			file			= "button_insens.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			file			= "button_normal.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+	}
 }
 
-style "background-light" = "calf_default"
+### COMBOS ###
+
+style "combo" = "default"
+
 {
-  bg_pixmap[NORMAL] = "background_light.png"
-  bg_pixmap[ACTIVE] = "background_light.png"
-  bg_pixmap[PRELIGHT] = "background_light.png"
-  bg_pixmap[SELECTED] = "background_light.png"
-  bg_pixmap[INSENSITIVE] = "background_light.png"
+	fg[NORMAL]			= "#000"
+	fg[PRELIGHT]		= "#000"
+	fg[SELECTED]		= "#000"
+	fg[ACTIVE]			= "#000"
+	fg[INSENSITIVE]		= "#666"
+	
+	text[NORMAL]		= "#000"
+	text[PRELIGHT]		= "#000"
+	text[SELECTED]		= "#000"
+	text[ACTIVE]		= "#000"
+	text[INSENSITIVE]	= "#666"
+	
+	GtkButton      ::child-displacement-x = 0
+	GtkButton      ::child-displacement-y = 0
+	GtkButton      ::default-border       = { 6, 24, 6, 6 }
+	GtkButton      ::inner-border         = { 6, 25, 3, 3}
+	
+    xthickness = 5
+    ythickness = 3
+	
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			state			= PRELIGHT
+			file			= "button_default.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			state			= NORMAL
+			file			= "button_default.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			state			= ACTIVE
+			file			= "button_default.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			state			= INSENSITIVE
+			file			= "button_default.png"
+			border			= {8, 24, 6, 6}
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= TAB
+			state			= INSENSITIVE
+			recolorable		= TRUE
+			overlay_file		= "led.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= TAB
+			recolorable		= TRUE
+			state			= NORMAL
+			overlay_file		= "led.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= TAB
+			recolorable		= TRUE
+			state			= ACTIVE
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= TAB
+			recolorable		= TRUE
+			state			= PRELIGHT
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= VLINE
+			recolorable		= TRUE
+			file			= "vline.png"
+			border			= { 1, 1, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= HLINE
+			recolorable		= TRUE
+			file			= "hline.png"
+			border			= { 0, 0, 1, 1	}
+			stretch			= TRUE
+		}
+	}
 }
 
-style "background-dark" = "inverse"
+### RANGE ###
+
+style "range" 
+{
+	engine "murrine"
+	{
+		
+	}
+}
+style "scale" = "range"
 {
-  bg_pixmap[NORMAL] = "background_dark.png"
-  bg_pixmap[ACTIVE] = "background_dark.png"
-  bg_pixmap[PRELIGHT] = "background_dark.png"
-  bg_pixmap[SELECTED] = "background_dark.png"
-  bg_pixmap[INSENSITIVE] = "background_dark.png"
+	GtkVScale::slider_length 			= 46
+	GtkVScale::slider_width 			= 35
+	GtkHScale::slider_length 			= 46
+	GtkHScale::slider_width 			= 35
+	GtkRange::trough_border				= 0
+	
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			detail			= "trough"
+			file			= "trough-horizontal.png"
+			border			= { 20, 20, 0, 0 }
+			stretch			= TRUE
+			orientation		= HORIZONTAL
+		}
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			detail			= "trough"
+			file			= "trough-vertical.png"
+			border			= { 0, 0, 20, 20 }
+			stretch			= TRUE
+			orientation		= VERTICAL
+		}
+
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= NORMAL
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-horiz.png"
+			overlay_stretch		= FALSE
+			orientation		= HORIZONTAL
+		}
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= PRELIGHT
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-horiz-prelight.png"
+			overlay_stretch		= FALSE
+			orientation		= HORIZONTAL
+		}
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= INSENSITIVE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-horiz.png"
+			overlay_stretch		= FALSE
+			orientation		= HORIZONTAL
+		}
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= NORMAL
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-vert.png"
+			overlay_stretch		= FALSE
+			orientation		= VERTICAL
+		}
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= PRELIGHT
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-vert-prelight.png"
+			overlay_stretch		= FALSE
+			orientation		= VERTICAL
+		}
+		image
+		{
+			function		= SLIDER
+			recolorable		= TRUE
+			state			= INSENSITIVE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+			overlay_file		= "slider-vert.png"
+			overlay_stretch		= FALSE
+			orientation		= VERTICAL
+		}
+	}
 }
 
-class "GtkWidget" style "calf_default"
+### ENTRY ###
+
+style "entry" = "default"
+{
+	xthickness			= 0
+	ythickness			= 0
+	GtkEntry::shadow_type = GTK_SHADOW_NONE
+	engine "pixmap"
+	{
+		image
+		{
+			function		= SHADOW
+			shadow			= IN
+			recolorable		= FALSE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= SHADOW
+			shadow			= OUT
+			recolorable		= FALSE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			shadow			= IN
+			recolorable		= FALSE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= BOX
+			shadow			= OUT
+			recolorable		= FALSE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+
+		image
+	    {
+			function        = FLAT_BOX
+			recolorable     = TRUE
+			state           = INSENSITIVE
+    		detail          = "entry_bg"
+			file            = "entry_inactive.png"
+			border			= { 4, 4, 5, 4 }
+			stretch         = TRUE
+  		}
+
+		image
+  		{
+			function        = FLAT_BOX
+			recolorable     = TRUE
+			state           = NORMAL
+    		detail          = "entry_bg"
+			file            = "entry.png"
+			border			= { 4, 4, 5, 4 }
+			stretch         = TRUE
+  		}
+
+	}
+}
+
+### SPINBUTTONS ###
+
+style "spinbutton"	= "entry"
+{
+
+	xthickness			= 3
+	ythickness			= 2
+	GtkEntry::shadow_type = GTK_SHADOW_NONE
+	engine "pixmap"
+	{
+		image
+		{
+			function		= ARROW
+		}
+
+		image
+		{
+			function		= BOX
+			state 			= NORMAL
+			detail			= "spinbutton_up"
+			recolorable		= TRUE
+			file			= "spin_up_normal.png"
+			border			= { 6, 4, 4, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= PRELIGHT
+			detail			= "spinbutton_up"
+			recolorable		= TRUE
+			file			= "spin_up_prelight.png"
+			border			= { 6, 4, 4, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= INSENSITIVE
+			detail			= "spinbutton_up"
+			recolorable		= TRUE
+			file			= "spin_up_inactive.png"
+			border			= { 6, 4, 4, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= ACTIVE
+			detail			= "spinbutton_up"
+			recolorable		= TRUE
+			file			= "spin_up_active.png"
+			border			= { 6, 4, 4, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+
+		image
+		{
+			function		= BOX
+			state 			= NORMAL
+			detail			= "spinbutton_down"
+			recolorable		= TRUE
+			file			= "spin_down_normal.png"
+			border			= { 6, 4, 3, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= PRELIGHT
+			detail			= "spinbutton_down"
+			recolorable		= TRUE
+			file			= "spin_down_prelight.png"
+			border			= { 6, 4, 3, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= INSENSITIVE
+			detail			= "spinbutton_down"
+			recolorable		= TRUE
+			file			= "spin_down_inactive.png"
+			border			= { 6, 4, 3, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= BOX
+			state 			= ACTIVE
+			detail			= "spinbutton_down"
+			recolorable		= TRUE
+			file			= "spin_down_active.png"
+			border			= { 6, 4, 3, 3 }
+			stretch			= TRUE
+			overlay_file		= "null.png"
+			overlay_stretch		= FALSE
+		}
+	}
+}
+style "noborder" {
+	xthickness = 0
+	ythickness = 0
+	GtkWidget::draw-border              = { 0, 0, 0, 0 }
+	GtkWidget::focus-line-width         = 0
+	GtkWidget::focus-padding            = 0
+}
+style "nobg" {
+
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+	}
+}
+style "graph" {
+
+	xthickness = 5
+	ythickness = 5
+	
+	bg_pixmap[NORMAL]	= "<none>"
+	bg_pixmap[PRELIGHT]	= "<none>"
+	bg_pixmap[SELECTED]	= "<none>"
+	bg_pixmap[ACTIVE]	= "<none>"
+	bg_pixmap[INSENSITIVE]	= "<none>"
+	engine "pixmap"
+	{
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "entry.png"
+			border			= { 3, 3, 4, 3 }
+			stretch			= TRUE
+		}
+	}
+}
+
+### ASSIGNMENTS ###
+
+
+widget "*GtkWidget*" 								style "default"
+
+### calf plugin
+widget "*calf-container*"							style "dark_bg"
+widget "*calf-plugin*"								style "dark_bg"
+widget "*calf-container*"							style "dark"
+widget "*calf-plugin*Label"							style "dark"
+
+#### calf rack
+widget "calf-rack*"									style "light_bg"
+widget "calf-rack*"									style "light"
+#widget "calf-rack*calf-container"					style "light_bg"
+widget "calf-rack*calf-container*"					style "light"
+
+### is it used somewhere?
+#widget "*calf*inverted*"							style "dark_bg"
+#widget "*calf*inverted*"							style "dark"
+
+### buttons
+widget "*Button*"								style "button"
+widget "*Button*Label*"								style "button"
+
+### menus
+class "GtkMenuShell"								style "black_bg"
+class "GtkMenu*"		 							style "black"
+class "GtkMenuItem"									style "black"
+widget "*GtkMenuItem*"								style "black"
+widget_class "*MenuItem*"							style "black"
+widget_class "*MenuItem*Label"						style "black"
+class "GtkSeparatorMenuItem"						style "menu-separator"
+widget_class "*SeparatorMenuItem*"					style "menu-separator"
+
+### combos
+widget "*GtkOptionMenu"						style "combo"
+widget "*Combo*"								style "combo"
+widget "*<GtkComboBox>*"						style "combo"
+widget "*<GtkComboBoxEntry>*"					style "black"
 
-widget "calf-plugin*inverted" style "background-dark"
-widget "calf-plugin*inverted*" style "inverse"
+### other buttons
+widget "*Color*"								style "combo"
+widget "*File*"								style "combo"
+widget "*Font*"								style "combo"
 
-widget "calf-plugin*frame*" style "frame"
+### ranges, scales, scrollbars
+widget "*Gtk?Scale*"							style "scale"
+widget "*<GtkRange>"							style "range"
 
-#widget "calf-plugin" style "background-dark"
-widget "calf-plugin*" style "inverse"
+### frames
+class "*Frame*"										style "frame"
+widget "*calf-rack*GtkFrame.GtkLabel"				style "frame-label-light"
+widget "*calf-plugin*GtkFrame.GtkLabel"				style "frame-label-light"
+widget "*<GtkContainer>"						style "frame"
+widget "*Frame"								style "frame"
 
-widget "calf-plugin*calf-container*" style "background-dark"
-#widget "calf-plugin*calf-container*" style "inverse"
+### notebook
+widget "*GtkNotebook"							style "notebook"
+widget "*GtkNotebook"							style "notebook-pad"
+widget "*GtkNotebook*GtkFrame"					style "darker_bg"
+widget "*calf-plugin*GtkNotebook.GtkLabel"			style "notebook-label-dark"
+widget "*calf-rack*GtkNotebook.GtkLabel"			style "notebook-label-light"
 
-widget "calf-rack" style "background-light"
-widget "calf-rack*" style "calf_default"
+### entries, spinbuttons
+widget "*GtkSpinButton*"						style "spinbutton"
+widget "*GtkOldEditable" 						style "entry"
+widget "*GtkEntry"								style "entry"
+widget "*GtkSpinButton*"						style "noborder"
+widget "*GtkEntry*"							style "noborder"
 
-widget_class "*<GtkButton>"           		    style "button"
-widget_class "*<GtkMenuBar>*"           		style "menu"
-widget_class "*<GtkMenu>*"              		style "menu"
-widget_class "*<GtkMenuItem>*"          		style "menu"
+### LED's, VU's, graphs
+widget "*calf-vumeter*"								style "graph"
diff --git a/gui/frame.png b/gui/frame.png
new file mode 100644
index 0000000..ecb7762
Binary files /dev/null and b/gui/frame.png differ
diff --git a/gui/frame_bottom.png b/gui/frame_bottom.png
new file mode 100644
index 0000000..3a45f28
Binary files /dev/null and b/gui/frame_bottom.png differ
diff --git a/gui/frame_bottom_end.png b/gui/frame_bottom_end.png
new file mode 100644
index 0000000..05a30f0
Binary files /dev/null and b/gui/frame_bottom_end.png differ
diff --git a/gui/frame_bottom_start.png b/gui/frame_bottom_start.png
new file mode 100644
index 0000000..6125e18
Binary files /dev/null and b/gui/frame_bottom_start.png differ
diff --git a/gui/frame_left.png b/gui/frame_left.png
new file mode 100644
index 0000000..232bc05
Binary files /dev/null and b/gui/frame_left.png differ
diff --git a/gui/frame_left_end.png b/gui/frame_left_end.png
new file mode 100644
index 0000000..3ed396b
Binary files /dev/null and b/gui/frame_left_end.png differ
diff --git a/gui/frame_left_start.png b/gui/frame_left_start.png
new file mode 100644
index 0000000..434a4af
Binary files /dev/null and b/gui/frame_left_start.png differ
diff --git a/gui/frame_right.png b/gui/frame_right.png
new file mode 100644
index 0000000..4965ae4
Binary files /dev/null and b/gui/frame_right.png differ
diff --git a/gui/frame_right_end.png b/gui/frame_right_end.png
new file mode 100644
index 0000000..a95528d
Binary files /dev/null and b/gui/frame_right_end.png differ
diff --git a/gui/frame_right_start.png b/gui/frame_right_start.png
new file mode 100644
index 0000000..6573d5b
Binary files /dev/null and b/gui/frame_right_start.png differ
diff --git a/gui/frame_top.png b/gui/frame_top.png
new file mode 100644
index 0000000..b0814b5
Binary files /dev/null and b/gui/frame_top.png differ
diff --git a/gui/frame_top_end.png b/gui/frame_top_end.png
new file mode 100644
index 0000000..29694b2
Binary files /dev/null and b/gui/frame_top_end.png differ
diff --git a/gui/frame_top_start.png b/gui/frame_top_start.png
new file mode 100644
index 0000000..ca3e1c2
Binary files /dev/null and b/gui/frame_top_start.png differ
diff --git a/gui/gui-compressor.xml b/gui/gui-compressor.xml
index 2ed5e62..7e1c6ad 100644
--- a/gui/gui-compressor.xml
+++ b/gui/gui-compressor.xml
@@ -1,5 +1,5 @@
 <table rows="2" cols="4" spacing="10">
-    <vbox attach-x="0" attach-y="0" expand="0" fill="0" pad-x="7" pad-y="3" spacing="3" >
+    <vbox attach-x="0" attach-y="0" expand="0" fill="0" pad-x="7" pad-y="7" spacing="3" >
         <label param="bypass" expand="0" fill="0" />
         <align><toggle param="bypass" shrink="1" size="2"/></align>
     </vbox>
@@ -22,7 +22,7 @@
         <label param="compression" attach-y="2" attach-x="0" expand-x="1" fill-x="1" expand="0" fill="0" />
     </table>
     
-    <table attach-x="1" attach-y="1" expand="1" rows="2" cols="3" homogeneous="1" pad-x="5">
+    <table attach-x="1" attach-y="1" expand="1" rows="2" cols="3" homogeneous="1" pad-x="0" pad-y="6">
         <vbox expand="0" attach-x="0" attach-y="0">
             <label param="attack" />
             <knob param="attack" />
@@ -56,19 +56,23 @@
     </table>
     
     <if cond="directlink">
-        <line-graph attach-x="2" attach-y="0" attach-h="2" refresh="1" width="220" height="220" param="compression" square="1" expand-y="1" fill-y="1" pad-x="7"/>
+      <frame attach-x="2" attach-y="0" attach-h="2" label="Compression">
+        <line-graph refresh="1" width="220" height="220" param="compression" square="1" expand-y="1" fill-y="1" pad-x="7"/>
+      </frame>
     </if>
     
-    <vbox expand="1" attach-x="3" attach-y="0" pad-x="5">
-        <vbox expand="0">
-            <label param="aweighting"/>
-            <align>
-                <combo param="aweighting"/>
-            </align>
-        </vbox>
-    </vbox>
-    <vbox attach-x="3" attach-y="1" spacing="10" pad-x="5" fill-y="0" expand-y="0">
-    	<vbox expand="1" expand-y="0" expand-x="1" fill-x="1">
+    <frame attach-x="3" attach-y="0" attach-h="2" label="Options">
+      <vbox>
+      <vbox expand="1" pad-x="5">
+          <vbox expand="0">
+              <label param="aweighting"/>
+              <align>
+                  <combo param="aweighting"/>
+              </align>
+          </vbox>
+      </vbox>
+      <vbox spacing="10" pad-x="5" fill-y="0" expand-y="0">
+    	  <vbox expand="1" expand-y="0" expand-x="1" fill-x="1">
             <label param="stereo_link" expand-y="0" fill-y="0"/>
             <align>
                 <hbox expand="0" fill-y="0" expand-x="1" fill-x="1">
@@ -86,6 +90,8 @@
                 </hbox>
             </align>
         </vbox>
-    </vbox>
+      </vbox>
+      </vbox>
+    </frame>
     
 </table>
diff --git a/gui/gui-filter.xml b/gui/gui-filter.xml
index e61fa2f..0cb8c1f 100644
--- a/gui/gui-filter.xml
+++ b/gui/gui-filter.xml
@@ -22,8 +22,8 @@
         </vbox>
     </hbox>
     <if cond="directlink">
-        <frame label="Freq. response" expand-x="1" fill-x="1" attach-x="1" attach-y="0" attach-h="2" widget-name="frame" pad-x="3"><vbox border="5">
+        <frame label="Freq. response" expand-x="1" fill-x="1" attach-x="1" attach-y="0" attach-h="2" widget-name="frame" pad-x="3">
             <line-graph refresh="1" width="360" height="160" param="freq" border="5"/>
-        </vbox></frame>
+        </frame>
     </if>
 </table>
diff --git a/gui/gui-filterclavier.xml b/gui/gui-filterclavier.xml
index f0936ba..f2cb5d2 100644
--- a/gui/gui-filterclavier.xml
+++ b/gui/gui-filterclavier.xml
@@ -29,8 +29,8 @@
         </vbox>
     </vbox>
     <if cond="directlink">
-        <frame label="Freq. response" expand-x="1" fill-x="1" attach-x="1" attach-y="0"><vbox border="5">
+        <frame label="Freq. response" expand-x="1" fill-x="1" attach-x="1" attach-y="0">
             <line-graph param="mode" refresh="1" width="320" height="160"/>
-        </vbox></frame>
+        </frame>
     </if>
 </table>
diff --git a/gui/gui-flanger.xml b/gui/gui-flanger.xml
index 1ea7fac..d97c1e0 100644
--- a/gui/gui-flanger.xml
+++ b/gui/gui-flanger.xml
@@ -39,9 +39,9 @@
     </vbox>
     
     <if cond="directlink">
-        <frame expand-y="1" fill-y="1" attach-x="1" attach-y="0" label="Freq. response"><vbox border="5">
+        <frame expand-y="1" fill-y="1" attach-x="1" attach-y="0" label="Freq. response">
             <line-graph refresh="1" width="160" height="160" param="min_delay"/>
-        </vbox></frame>
+        </frame>
     </if>
     
     <align expand="0" attach-x="2" attach-y="1"><button param="reset" /></align>
diff --git a/gui/gui-fluidsynth.xml b/gui/gui-fluidsynth.xml
index c5a17f1..d1e42d5 100644
--- a/gui/gui-fluidsynth.xml
+++ b/gui/gui-fluidsynth.xml
@@ -1,20 +1,25 @@
-<table rows="6" cols="3">
-    <align attach-x="0" attach-y="0"   align-x="1"><label param="master"  /></align>
-    <align attach-x="1" attach-w="1" attach-y="0"><knob param="master" /></align>
-    <value param="master"  attach-x="2" attach-y="0" pad-x="10" />
-
-    <align attach-x="0" attach-y="1"   align-x="1"><label param="soundfont"  /></align>
-    <filechooser attach-x="1" attach-w="2" attach-y="1" key="soundfont" title="Select a soundfont" width_chars="30"/>
-    <align attach-x="0" attach-y="2"   align-x="1"><label text="Current preset" /></align>
-    <combo attach-x="1" attach-w="2" attach-y="2" key="preset_list" current-key="preset_key" setter-key="preset_key_set"/>
-    
-    <align attach-x="0" attach-y="3"   align-x="1"><label param="interpolation" /></align>
-    <align attach-x="1" attach-y="3" attach-w="2" ><combo param="interpolation" /></align>
-    <hbox attach-x="0" attach-y="4" attach-w="3">
+<table rows="1" cols="3">
+    <vbox attach-x="0" attach-y="0" pad-x="10" expand-y="1" fill-y="0" spacing="5">
+        <label param="master"  />
+        <knob param="master" size="4" />
+        <value param="master" />
+    </vbox>
+    <vbox attach-x="1" attach-y="0" pad-x="10" expand-y="1" fill-y="1" spacing="5">
         <label param="reverb" />
         <toggle param="reverb" />
-        <label param="chorus" />
+        <label />
         <toggle param="chorus" />
-    </hbox>
+        <label param="chorus" />
+    </vbox>
+    <frame attach-x="2" attach-y="0" label="Source">
+      <table rows="3" cols="2" pad-x="10" fill-y="0">
+          <align attach-x="0" attach-y="0"   align-x="1"><label param="soundfont"  /></align>
+          <filechooser attach-x="1" attach-y="0" key="soundfont" title="Select a soundfont" width_chars="30" pad-x="5" pad-y="6" />
+          <align attach-x="0" attach-y="1"   align-x="1"><label text="Current preset" /></align>
+          <combo attach-x="1" attach-y="1" key="preset_list" current-key="preset_key" setter-key="preset_key_set" pad-x="5" pad-y="6" />
+          <align attach-x="0" attach-y="2" align-x="1"><label param="interpolation" /></align>
+          <combo attach-x="1" attach-y="2" param="interpolation" pad-x="5" pad-y="6" />
+      </table>
+    </frame>
 </table>
 
diff --git a/gui/gui-monosynth.xml b/gui/gui-monosynth.xml
index 3f3865f..68f790a 100644
--- a/gui/gui-monosynth.xml
+++ b/gui/gui-monosynth.xml
@@ -1,58 +1,63 @@
 <?xml version="1.0"?>
-<vbox>
+<hbox spacing="5">
   <frame label="Global">
-    <hbox border="10" spacing="10">
-      <vbox>
-        <label param="pbend_range"/>
-        <knob param="pbend_range"/>
-        <value param="pbend_range"/>
+    <vbox border="6" spacing="10">
+      <label />
+      <vbox expand="0" fill="0">
+        <label param="master"/>
+        <knob param="master" size="4"/>
+        <value param="master"/>
       </vbox>
-      <vbox>
+      <label />
+      <hbox spacing="4" expand="0" fill="0">
+        <vbox>
+          <label param="pbend_range"/>
+          <knob param="pbend_range"/>
+          <value param="pbend_range"/>
+        </vbox>
+        <vbox>
+          <label param="portamento"/>
+          <knob param="portamento"/>
+          <value param="portamento"/>
+        </vbox>
+      </hbox>
+      <vbox expand="0" fill="0">
         <label param="legato" expand="0"/>
         <combo param="legato" expand="0" fill="0"/>
-        <label />
-      </vbox>
-      <vbox>
-        <label param="portamento"/>
-        <knob param="portamento"/>
-        <value param="portamento"/>
       </vbox>
-      <vbox>
-        <label param="master"/>
-        <knob param="master"/>
-        <value param="master"/>
-      </vbox>
-    </hbox>
+    </vbox>
   </frame>
   <notebook>
-    <vbox border="10" page="Audio path">
+    <hbox page="Audio path" spacing="4">
       <frame label="Oscillators">
-        <vbox border="10" spacing="10">
-          <table rows="3" cols="4">
+        <vbox spacing="8">
+          <table rows="3" cols="4" expand="1" fill="1">
             <label attach-x="0" attach-y="0" param="o1_wave"/>
             <label attach-x="1" attach-y="0" param="o1_pw"/>
             <label attach-x="2" attach-y="0" param="o2_pw"/>
             <label attach-x="3" attach-y="0" param="o2_wave"/>
-            <combo attach-x="0" attach-y="1" param="o1_wave"/>
+            <combo attach-x="0" attach-y="1" param="o1_wave" fill-y="0"/>
             <knob attach-x="1" attach-y="1" param="o1_pw"/>
             <knob attach-x="2" attach-y="1" param="o2_pw"/>
-            <combo attach-x="3" attach-y="1" param="o2_wave"/>
+            <combo attach-x="3" attach-y="1" param="o2_wave" fill-y="0"/>
             <value attach-x="1" attach-y="2" param="o1_pw"/>
             <value attach-x="2" attach-y="2" param="o2_pw"/>
           </table>
-          <hbox>
+          <align>
+          <hbox expand="0" fill="0">
             <if cond="directlink">
-              <line-graph param="o1_wave" refresh="1"/>
+              <line-graph param="o1_wave" refresh="1" width="80" height="80" expand="0" fill="0"/>
             </if>
             <vbox>
-              <label param="o12_mix"/>
-              <hscale param="o12_mix" position="bottom"/>
+              <label param="o12_mix" expand="0" fill="0"/>
+              <hscale param="o12_mix" position="bottom" expand="0" fill="0"/>
             </vbox>
             <if cond="directlink">
-              <line-graph param="o2_wave" refresh="1"/>
+              <line-graph param="o2_wave" refresh="1" width="80" height="80" expand="0" fill="0"/>
             </if>
           </hbox>
-          <hbox>
+          </align>
+          <hbox expand="1" fill="1">
             <vbox>
               <label param="o12_detune"/>
               <knob param="o12_detune"/>
@@ -78,16 +83,7 @@
         </vbox>
       </frame>
       <frame label="Filter">
-        <vbox border="10">
-          <align>
-            <hbox>
-              <label param="filter"/>
-              <combo param="filter"/>
-              <if cond="directlink">
-                <line-graph param="filter" refresh="1" width="80" height="60"/>
-              </if>
-            </hbox>
-          </align>
+        <vbox spacing="8">
           <hbox>
             <vbox>
               <label param="cutoff"/>
@@ -99,6 +95,17 @@
               <knob param="res"/>
               <value param="res"/>
             </vbox>
+          </hbox>
+          <align>
+            <hbox fill="0" expand="0">
+              <label param="filter" fill="0" expand="0"/>
+              <combo param="filter" fill="0" expand="0"/>
+              <if cond="directlink">
+                <line-graph param="filter" refresh="1" width="80" height="80"/>
+              </if>
+            </hbox>
+          </align>
+          <hbox>
             <vbox>
               <label param="filter_sep"/>
               <knob type="1" param="filter_sep"/>
@@ -112,11 +119,11 @@
           </hbox>
         </vbox>
       </frame>
-    </vbox>
+    </hbox>
     
-    <vbox border="10" page="Modulation">
+    <vbox page="Modulation" spacing="4">
       <frame label="LFO">
-        <hbox spacing="10">
+        <hbox spacing="4">
           <vbox>
             <label text="Rate"/>
             <knob param="lfo_rate"/>
@@ -149,51 +156,51 @@
           </vbox>
         </hbox>
       </frame>
-      <hbox spacing="10">
+      <hbox spacing="4">
         <frame label="Note velocity">
-          <hbox>
+          <vbox spacing="10">
             <vbox>
               <label text="To Cutoff"/>
-              <knob param="vel2filter"/>
+              <knob param="vel2filter" size="3"/>
               <value param="vel2filter"/>
             </vbox>
             <vbox>
               <label text="To Amp"/>
-              <knob param="vel2amp"/>
+              <knob param="vel2amp" size="3"/>
               <value param="vel2amp"/>
             </vbox>        
-          </hbox>
+          </vbox>
         </frame>
         <frame label="Envelope">
-          <vbox border="10" spacing="10">
-            <hbox>
-              <vbox>
+          <hbox spacing="4">
+            <table cols="5" rows="1" homogeneous="1" fill-x="0" expand-x="0">
+              <vbox attach-x="0" attach-y="0">
                 <label param="adsr_a"/>
-                <knob param="adsr_a"/>
-                <value param="adsr_a"/>
+                <vscale param="adsr_a" inverted="1"/>
+                <value param="adsr_a" width="4"/>
               </vbox>
-              <vbox>
+              <vbox attach-x="1" attach-y="0">
                 <label param="adsr_d"/>
-                <knob param="adsr_d"/>
-                <value param="adsr_d"/>
+                <vscale param="adsr_d" inverted="1"/>
+                <value param="adsr_d" width="4"/>
               </vbox>
-              <vbox>
+              <vbox attach-x="2" attach-y="0">
                 <label param="adsr_s"/>
-                <knob param="adsr_s"/>
+                <vscale param="adsr_s" inverted="1"/>
                 <value param="adsr_s"/>
               </vbox>
-              <vbox>
+              <vbox attach-x="3" attach-y="0">
                 <label param="adsr_f"/>
-                <knob param="adsr_f"/>
-                <value param="adsr_f"/>
+                <vscale param="adsr_f" inverted="1"/>
+                <value param="adsr_f" width="4"/>
               </vbox>
-              <vbox>
+              <vbox attach-x="4" attach-y="0">
                 <label param="adsr_r"/>
-                <knob param="adsr_r"/>
-                <value param="adsr_r"/>
+                <vscale param="adsr_r" inverted="1"/>
+                <value param="adsr_r" width="4"/>
               </vbox>
-            </hbox>
-            <hbox>
+            </table>
+            <vbox>
               <vbox>
                 <label text="To Cutoff"/>
                 <knob type="1" param="env2cutoff"/>
@@ -209,15 +216,15 @@
                 <knob param="env2amp"/>
                 <value param="env2amp"/>
               </vbox>
-            </hbox>
-          </vbox>
+            </vbox>
+          </hbox>
         </frame>
       </hbox>
     </vbox>
     <if cond="jackhost">
-      <vbox border="10" page="Modulation Matrix">
+      <vbox page="Modulation Matrix">
         <listview param="scale_detune" />
       </vbox>
     </if>
   </notebook>
-</vbox>
+</hbox>
diff --git a/gui/gui-multibandcompressor.xml b/gui/gui-multibandcompressor.xml
index a16884d..558284e 100644
--- a/gui/gui-multibandcompressor.xml
+++ b/gui/gui-multibandcompressor.xml
@@ -16,7 +16,7 @@
             <led param="clip_inL" expand="0" fill="0" />
             <led param="clip_inR" expand="0" fill="0" />
             <label param="clip_inR" expand="0" fill="0" />
-        </vbox>
+        </vbox>z
         <table rows="3" cols="2" attach-x="4" attach-y="0" spacing="0" border="0" expand-y="0" fill-y="0" expand-x="0" fill-x="0">
             <knob param="freq0" attach-x="0" attach-y="0" border="0" expand="0" fill="0" expand-x="0" fill-x="0" />
             <vbox attach-x="1" attach-y="0" border="0" expand="0" fill="0" expand-y="0" fill-y="0" expand-x="0" fill-x="0">
@@ -91,7 +91,7 @@
         </vbox>
     </table>
     <table attach-x="0" attach-y="1" expand-y="1" shrink-y="1" expand-x="1" shrink-x="1" fill="1" spacing="10" rows="1" cols="4">
-        <frame label="Sub band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="0" attach-y="0" fill="1"><vbox border="5">
+        <frame label="Sub band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="0" attach-y="0" fill="1"><vbox>
             <if cond="directlink">
                 <line-graph refresh="1" width="220" height="220" param="compression0" expand-y="1" fill-y="1" expand-x="1" fill-x="1"/>
             </if>
@@ -151,7 +151,7 @@
                 </vbox>
             </table>
         </vbox></frame>
-        <frame label="Low band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="1" attach-y="0" fill="1"><vbox border="5">
+        <frame label="Low band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="1" attach-y="0" fill="1"><vbox>
             <if cond="directlink">
                 <line-graph refresh="1" width="220" height="220" param="compression1" expand-y="1" fill-y="1" expand-x="1" fill-x="1"/>
             </if>
@@ -211,7 +211,7 @@
                 </vbox>
             </table>
         </vbox></frame>
-        <frame label="Mid band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="2" attach-y="0" fill="1"><vbox border="5">
+        <frame label="Mid band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="2" attach-y="0" fill="1"><vbox>
             <if cond="directlink">
                 <line-graph refresh="1" width="220" height="220" param="compression2" expand-y="1" fill-y="1" expand-x="1" fill-x="1"/>
             </if>
@@ -271,7 +271,7 @@
                 </vbox>
             </table>
         </vbox></frame>
-        <frame label="High band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="3" attach-y="0" fill="1"><vbox border="5">
+        <frame label="High band" expand-x="1" expand-y="1" shrink-x="1" shrink-y="1" attach-x="3" attach-y="0" fill="1"><vbox>
             <if cond="directlink">
                 <line-graph refresh="1" width="220" height="220" param="compression3" expand-y="1" fill-y="1" expand-x="1" fill-x="1"/>
             </if>
diff --git a/gui/gui-multichorus.xml b/gui/gui-multichorus.xml
index 9ea0dc5..589e822 100644
--- a/gui/gui-multichorus.xml
+++ b/gui/gui-multichorus.xml
@@ -73,17 +73,17 @@
     </frame>
     <if cond="directlink">
         <hbox attach-x="0" attach-y="0" fill-y="1" expand-y="1">
-            <frame label="Freq. response"><vbox border="5">
+            <frame label="Freq. response">
                 <vbox expand-x="1" fill-x="1" attach-x="3" attach-y="0" attach-h="7">
                     <line-graph refresh="1" width="200" height="160" param="min_delay"/>
                 </vbox>
-            </vbox></frame>
+            </frame>
             <frame label="LFO positions">
-                <vbox expand-x="1" fill-x="1" attach-x="3" attach-y="0" attach-h="7"><vbox border="5">
+                <vbox expand-x="1" fill-x="1" attach-x="3" attach-y="0" attach-h="7">
                     <line-graph refresh="1" width="200" height="30" param="mod_depth"/>
                     <line-graph refresh="1" width="200" height="160" param="mod_rate"/>
                 </vbox>
-            </vbox></frame>
+            </frame>
         </hbox>
     </if>
 </table>
diff --git a/gui/gui-organ.xml b/gui/gui-organ.xml
index 450ae4c..3a473b7 100644
--- a/gui/gui-organ.xml
+++ b/gui/gui-organ.xml
@@ -3,7 +3,7 @@
   <hbox>
     <if cond="directlink">
       <align scale-x="0.0" scale-y="1.0" align-x="0" align-y="0">
-        <line-graph param="master" refresh="1" width="120" height="40" expand="0" fill="0"/>
+        <line-graph param="master" refresh="1" width="372" height="40" expand="0" fill="0"/>
       </align>
     </if>
     <align scale-x="0.25" scale-y="0.0" align-x="1.0" align-y="0.5">
@@ -15,7 +15,7 @@
         </vbox>
         <vbox>
           <label param="master"/>
-          <knob param="master"/>
+          <knob param="master" size="3"/>
           <value param="master"/>
         </vbox>
       </hbox>
@@ -32,7 +32,7 @@
         <label attach-x="0" attach-y="10" text="Pan"/>
         <label attach-x="0" attach-y="12" text="Send to"/>
         <label attach-x="1" attach-y="0" param="l1"/>
-        <vscale attach-x="1" attach-y="1" param="l1"/>
+        <vscale height="160" attach-x="1" attach-y="1" param="l1"/>
         <value attach-x="1" attach-y="2" param="l1"/>
         <knob attach-x="1" attach-y="3" param="f1"/>
         <value attach-x="1" attach-y="4" param="f1"/>
@@ -45,7 +45,7 @@
         <value attach-x="1" attach-y="11" param="pan1"/>
         <combo attach-x="1" attach-y="12" param="routing1"/>
         <label attach-x="2" attach-y="0" param="l2"/>
-        <vscale attach-x="2" attach-y="1" param="l2"/>
+        <vscale height="160" attach-x="2" attach-y="1" param="l2"/>
         <value attach-x="2" attach-y="2" param="l2"/>
         <knob attach-x="2" attach-y="3" param="f2"/>
         <value attach-x="2" attach-y="4" param="f2"/>
@@ -58,7 +58,7 @@
         <value attach-x="2" attach-y="11" param="pan2"/>
         <combo attach-x="2" attach-y="12" param="routing2"/>
         <label attach-x="3" attach-y="0" param="l3"/>
-        <vscale attach-x="3" attach-y="1" param="l3"/>
+        <vscale height="160" attach-x="3" attach-y="1" param="l3"/>
         <value attach-x="3" attach-y="2" param="l3"/>
         <knob attach-x="3" attach-y="3" param="f3"/>
         <value attach-x="3" attach-y="4" param="f3"/>
@@ -71,7 +71,7 @@
         <value attach-x="3" attach-y="11" param="pan3"/>
         <combo attach-x="3" attach-y="12" param="routing3"/>
         <label attach-x="4" attach-y="0" param="l4"/>
-        <vscale attach-x="4" attach-y="1" param="l4"/>
+        <vscale height="160" attach-x="4" attach-y="1" param="l4"/>
         <value attach-x="4" attach-y="2" param="l4"/>
         <knob attach-x="4" attach-y="3" param="f4"/>
         <value attach-x="4" attach-y="4" param="f4"/>
@@ -84,7 +84,7 @@
         <value attach-x="4" attach-y="11" param="pan4"/>
         <combo attach-x="4" attach-y="12" param="routing4"/>
         <label attach-x="5" attach-y="0" param="l5"/>
-        <vscale attach-x="5" attach-y="1" param="l5"/>
+        <vscale height="160" attach-x="5" attach-y="1" param="l5"/>
         <value attach-x="5" attach-y="2" param="l5"/>
         <knob attach-x="5" attach-y="3" param="f5"/>
         <value attach-x="5" attach-y="4" param="f5"/>
@@ -97,7 +97,7 @@
         <value attach-x="5" attach-y="11" param="pan5"/>
         <combo attach-x="5" attach-y="12" param="routing5"/>
         <label attach-x="6" attach-y="0" param="l6"/>
-        <vscale attach-x="6" attach-y="1" param="l6"/>
+        <vscale height="160" attach-x="6" attach-y="1" param="l6"/>
         <value attach-x="6" attach-y="2" param="l6"/>
         <knob attach-x="6" attach-y="3" param="f6"/>
         <value attach-x="6" attach-y="4" param="f6"/>
@@ -110,7 +110,7 @@
         <value attach-x="6" attach-y="11" param="pan6"/>
         <combo attach-x="6" attach-y="12" param="routing6"/>
         <label attach-x="7" attach-y="0" param="l7"/>
-        <vscale attach-x="7" attach-y="1" param="l7"/>
+        <vscale height="160" attach-x="7" attach-y="1" param="l7"/>
         <value attach-x="7" attach-y="2" param="l7"/>
         <knob attach-x="7" attach-y="3" param="f7"/>
         <value attach-x="7" attach-y="4" param="f7"/>
@@ -123,7 +123,7 @@
         <value attach-x="7" attach-y="11" param="pan7"/>
         <combo attach-x="7" attach-y="12" param="routing7"/>
         <label attach-x="8" attach-y="0" param="l8"/>
-        <vscale attach-x="8" attach-y="1" param="l8"/>
+        <vscale height="160" attach-x="8" attach-y="1" param="l8"/>
         <value attach-x="8" attach-y="2" param="l8"/>
         <knob attach-x="8" attach-y="3" param="f8"/>
         <value attach-x="8" attach-y="4" param="f8"/>
@@ -136,7 +136,7 @@
         <value attach-x="8" attach-y="11" param="pan8"/>
         <combo attach-x="8" attach-y="12" param="routing8"/>
         <label attach-x="9" attach-y="0" param="l9"/>
-        <vscale attach-x="9" attach-y="1" param="l9"/>
+        <vscale height="160" attach-x="9" attach-y="1" param="l9"/>
         <value attach-x="9" attach-y="2" param="l9"/>
         <knob attach-x="9" attach-y="3" param="f9"/>
         <value attach-x="9" attach-y="4" param="f9"/>
@@ -150,7 +150,7 @@
         <combo attach-x="9" attach-y="12" param="routing9"/>
       </table>
     </vbox>
-    <hbox page="Sound processor">
+    <hbox page="Sound processor" spacing="5">
       <vbox>
         <frame label="Filter 1">
           <vbox>
diff --git a/gui/gui-phaser.xml b/gui/gui-phaser.xml
index ba1f313..13061cd 100644
--- a/gui/gui-phaser.xml
+++ b/gui/gui-phaser.xml
@@ -47,10 +47,10 @@
     <align attach-x="2" attach-y="1"><button param="reset" /></align>
     
     <if cond="directlink">
-        <frame label="Freq. response" attach-x="1" attach-y="0" ><vbox border="5">
+        <frame label="Freq. response" attach-x="1" attach-y="0" >
             <vbox expand-x="1" fill-x="1" >
                 <line-graph refresh="1" width="160" height="160" param="base_freq"/>
             </vbox>
-        </vbox></frame>
+        </frame>
     </if>
 </table>
diff --git a/gui/gui-rotaryspeaker.xml b/gui/gui-rotaryspeaker.xml
index a8818a7..71fdb1f 100644
--- a/gui/gui-rotaryspeaker.xml
+++ b/gui/gui-rotaryspeaker.xml
@@ -1,47 +1,54 @@
 <table spacing="5" rows="1" cols="3">
-    <table attach-x="0" attach-y="0" rows="2" cols="2">
-        <vbox  attach-x="0" attach-y="0" fill-x="1" fill-y="1">
-            <label param="treble_speed" />
-            <led param="meter_h" mode="2" />
-            <value param="treble_speed" />
-        </vbox>
-        <knob param="treble_speed" size="3" attach-x="1" attach-y="0" pad-x="10" />
-        <vbox attach-x="0" attach-y="1" fill-x="1" fill-y="1">
-            <label param="bass_speed" />
-            <led param="meter_l" mode="3" />
-            <value param="bass_speed" />
-        </vbox>
-        <knob param="bass_speed" size="3" attach-x="1" attach-y="1" pad-x="10" />
-    </table>
-    <vbox expand-y="0" attach-x="1" attach-y="0" pad-x="20">
+	<frame attach-x="2" attach-y="0" label="Manual">
+		<table rows="2" cols="2">
+		    <vbox  attach-x="1" attach-y="0" fill-x="1" fill-y="1" border="10">
+		        <label param="treble_speed" />
+		        <led param="meter_h" mode="2" />
+		        <value param="treble_speed" />
+		    </vbox>
+		    <knob param="treble_speed" size="3" attach-x="0" attach-y="0" pad-x="10" />
+		    <vbox attach-x="1" attach-y="1" fill-x="1" fill-y="1" border="10">
+		        <label param="bass_speed" />
+		        <led param="meter_l" mode="3" border="10" />
+		        <value param="bass_speed" />
+		    </vbox>
+		    <knob param="bass_speed" size="3" attach-x="0" attach-y="1" pad-x="10" />
+		</table>
+    </frame>
+    <vbox expand-y="0" attach-x="0" attach-y="0" pad-x="20">
         <label param="mod_depth" fill-x="0" expand-x="0" align-y="1.0" />
         <knob param="mod_depth" size="4" />
         <value param="mod_depth" align-y="0.0" />
     </vbox>
-    <table attach-x="2" attach-y="0" rows="2" cols="4" homogeneous="1">
-        <vbox expand-y="0" attach-x="0" attach-y="0" spacing="5">
-            <label param="shift" fill-x="0" expand-x="0" />
-            <knob param="shift" size="2" />
-            <value param="shift" />
-        </vbox>
-        <vbox expand-y="0" attach-x="1" attach-y="0" spacing="5">
-            <label param="spacing" fill-x="0" expand-x="0" />
-            <knob param="spacing" size="2" />
-            <value param="spacing" />
-        </vbox>
-        <vbox expand-y="0" attach-x="2" attach-y="0" spacing="5">
-            <label param="mic_distance" fill-x="0" expand-x="0" />
-            <knob param="mic_distance" size="2" />
-            <value param="mic_distance" />
-        </vbox>
-        <vbox expand-y="0" attach-x="3" attach-y="0" spacing="5">
-            <label param="reflection" fill-x="0" expand-x="0" />
-            <knob param="reflection" size="2" />
-            <value param="reflection" />
-        </vbox>
-        <vbox expand-y="0" attach-x="0" attach-y="1" attach-w="4">
-            <label param="vib_speed" fill-x="0" expand-x="0" />
-            <combo param="vib_speed" />
-        </vbox>
-    </table>
+    <vbox attach-x="1" attach-y="0">
+		<frame label="Cabinet">
+			<hbox homogeneous="1">
+				<vbox spacing="3" fill="0">
+				    <label param="shift" />
+				    <knob param="shift" size="2" />
+				    <value param="shift" />
+				</vbox>
+				<vbox spacing="3" fill="0">
+				    <label param="spacing" />
+				    <knob param="spacing" size="2" />
+				    <value param="spacing" />
+				</vbox>
+				<vbox spacing="3" fill="0">
+				    <label param="mic_distance"/>
+				    <knob param="mic_distance" size="2" />
+				    <value param="mic_distance" />
+				</vbox>
+				<vbox spacing="3" fill="0">
+				    <label param="reflection" />
+				    <knob param="reflection" size="2" />
+				    <value param="reflection" />
+				</vbox>
+			</hbox>
+		</frame>
+		<frame label="Controller">
+		    <vbox>
+		        <combo param="vib_speed" border="5" />
+		    </vbox>
+		</frame>
+	</vbox>
 </table>
diff --git a/gui/gui-vintagedelay.xml b/gui/gui-vintagedelay.xml
index 289b824..1405d7b 100644
--- a/gui/gui-vintagedelay.xml
+++ b/gui/gui-vintagedelay.xml
@@ -1,56 +1,53 @@
 <hbox>
     <frame label="Delay time">
-        <vbox border="5">
-            <table rows="4" cols="3">
-                <vbox attach-x="0" attach-y="0" attach-h="3" spacing="5" pad-x="20">
-                    <label param="bpm" />
-                    <align attach-x="1" attach-y="0" scale-x="0"><knob param="bpm" size="4" /></align>
-                    <spin attach-x="2" attach-y="0" param="bpm" digits="2"/>
-                </vbox>
-                <label attach-x="1" attach-y="0" param="subdiv" />
-                <hscale attach-x="2" attach-y="0" param="subdiv" />
-                <spin attach-x="3" attach-y="0" param="subdiv" />
-                <label attach-x="1" attach-y="1" param="time_l" />
-                <hscale attach-x="2" attach-y="1" param="time_l" />
-                <spin attach-x="3" attach-y="1" param="time_l" />
-                <label attach-x="1" attach-y="2" param="time_r"  />
-                <hscale attach-x="2" attach-y="2" param="time_r" />
-                <spin attach-x="3" attach-y="2" param="time_r" />
-            </table>
-        </vbox>
+    	<vbox>
+		    <table rows="4" cols="2">
+		        <vbox attach-x="0" attach-y="0" attach-h="3" spacing="5" pad-x="20">
+		            <label param="bpm" />
+		            <align attach-x="1" attach-y="0" scale-x="0"><knob param="bpm" size="4" /></align>
+		            <spin attach-x="2" attach-y="0" param="bpm" digits="2"/>
+		        </vbox>
+		        <label attach-x="1" attach-y="0" param="subdiv" />
+		        <hscale attach-x="2" attach-y="0" param="subdiv" />
+		        <label attach-x="1" attach-y="1" param="time_l" />
+		        <hscale attach-x="2" attach-y="1" param="time_l" />
+		        <label attach-x="1" attach-y="2" param="time_r"  />
+		        <hscale attach-x="2" attach-y="2" param="time_r" />
+		    </table>
+		</vbox>
     </frame>
 
     <!-- -->
 
     <frame label="Mixing">
-        <hbox border="5">
-            <vbox fill="0" border="10" spacing="5">
-                <label param="feedback"  />
-                <knob param="feedback" size="4"/>
-                <value param="feedback"/>
-            </vbox>
-                
-            <table expand="0" rows="2" cols="2">
-                <vbox fill="0" attach-x="0" attach-y="1" fill-y="0">
-                    <label param="mix_mode" />
-                    <combo param="mix_mode" fill-y="0" />
-                </vbox>
-                <vbox fill="0" attach-x="1" attach-y="1" fill-y="0">
-                    <label param="medium" />
-                    <combo param="medium" fill-y="0" />
-                </vbox>
-                <vbox fill="0" attach-x="0" attach-y="0" pad-x="10">
-                    <label param="dry"  />
-                    <knob param="dry"/>
-                    <value param="dry"/>
-                </vbox>
-                <vbox fill="0" attach-x="1" attach-y="0" pad-x="10">
-                    <label param="amount"  />
-                    <knob param="amount"/>
-                    <value param="amount"/>
-                </vbox>
-            </table>
-        </hbox>
+    	<hbox>
+		    <vbox fill="0" border="10" spacing="5">
+		        <label param="feedback"  />
+		        <knob param="feedback" size="4"/>
+		        <value param="feedback"/>
+		    </vbox>
+		        
+		    <table expand="0" rows="2" cols="2">
+		        <vbox fill="0" attach-x="0" attach-y="1" fill-y="0">
+		            <label param="mix_mode" />
+		            <combo param="mix_mode" fill-y="0" />
+		        </vbox>
+		        <vbox fill="0" attach-x="1" attach-y="1" fill-y="0">
+		            <label param="medium" />
+		            <combo param="medium" fill-y="0" />
+		        </vbox>
+		        <vbox fill="0" attach-x="0" attach-y="0" pad-x="10">
+		            <label param="dry"  />
+		            <knob param="dry"/>
+		            <value param="dry"/>
+		        </vbox>
+		        <vbox fill="0" attach-x="1" attach-y="0" pad-x="10">
+		            <label param="amount"  />
+		            <knob param="amount"/>
+		            <value param="amount"/>
+		        </vbox>
+		    </table>
+		</hbox>
     </frame>
 
 </hbox>
diff --git a/gui/gui-wavetable.xml b/gui/gui-wavetable.xml
index aaba214..a5b134d 100644
--- a/gui/gui-wavetable.xml
+++ b/gui/gui-wavetable.xml
@@ -1,96 +1,191 @@
 <?xml version="1.0"?>
-<vbox >
-  <frame label="Oscillators">
-    <vbox border="10" spacing="10">
-      <table rows="5" cols="6">
-        <label attach-x="0" attach-y="1" text="Osc 1"/>
-        <label attach-x="0" attach-y="3" text="Osc 2"/>
-
-        <label attach-x="1" attach-y="0" text="Wave"/>
-        <label attach-x="2" attach-y="0" text="Offset"/>
-        <label attach-x="3" attach-y="0" text="Transpose"/>
-        <label attach-x="4" attach-y="0" text="Detune"/>
-        <label attach-x="5" attach-y="0" text="Level"/>
-        
-        <combo attach-x="1" attach-y="1" param="o1wave"/>
-        <knob  attach-x="2" attach-y="1" param="o1offset"/>
-        <knob  attach-x="3" attach-y="1" param="o1trans"/>
-        <knob  attach-x="4" attach-y="1" param="o1detune"/>
-        <knob  attach-x="5" attach-y="1" param="o1level"/>
-        
-        <value attach-x="2" attach-y="2" param="o1offset"/>
-        <value attach-x="3" attach-y="2" param="o1trans"/>
-        <value attach-x="4" attach-y="2" param="o1detune"/>
-        <value attach-x="5" attach-y="2" param="o1level"/>
-        
-        <combo attach-x="1" attach-y="3" param="o2wave"/>
-        <knob  attach-x="2" attach-y="3" param="o2offset"/>
-        <knob  attach-x="3" attach-y="3" param="o2trans"/>
-        <knob  attach-x="4" attach-y="3" param="o2detune"/>
-        <knob  attach-x="5" attach-y="3" param="o2level"/>
-
-        <value attach-x="2" attach-y="4" param="o2offset"/>
-        <value attach-x="3" attach-y="4" param="o2trans"/>
-        <value attach-x="4" attach-y="4" param="o2detune"/>
-        <value attach-x="5" attach-y="4" param="o2level"/>
-        
-      </table>
-    </vbox>
-  </frame>
-  <frame label="Envelopes">
-    <vbox>
-      <table rows="7" cols="7">
-        <label attach-x="0" attach-y="1" text="EG1"/>
-        <label attach-x="0" attach-y="3" text="EG2"/>
-        <label attach-x="0" attach-y="5" text="EG3"/>
-        
-        <label attach-x="1" attach-y="0" text="Attack"/>
-        <label attach-x="2" attach-y="0" text="Decay"/>
-        <label attach-x="3" attach-y="0" text="Sustain"/>
-        <label attach-x="4" attach-y="0" text="Fade"/>
-        <label attach-x="5" attach-y="0" text="Release"/>
-        <label attach-x="6" attach-y="0" text="Vel Mod"/>
-
-        <knob  attach-x="1" attach-y="1" param="adsr_a"/>
-        <knob  attach-x="2" attach-y="1" param="adsr_d"/>
-        <knob  attach-x="3" attach-y="1" param="adsr_s"/>
-        <knob  attach-x="4" attach-y="1" param="adsr_f"/>
-        <knob  attach-x="5" attach-y="1" param="adsr_r"/>
-        <knob  attach-x="6" attach-y="1" param="adsr_v"/>
-        <value attach-x="1" attach-y="2" param="adsr_a"/>
-        <value attach-x="2" attach-y="2" param="adsr_d"/>
-        <value attach-x="3" attach-y="2" param="adsr_s"/>
-        <value attach-x="4" attach-y="2" param="adsr_f"/>
-        <value attach-x="5" attach-y="2" param="adsr_r"/>
-        <value attach-x="6" attach-y="2" param="adsr_v"/>
-
-        <knob  attach-x="1" attach-y="3" param="adsr2_a"/>
-        <knob  attach-x="2" attach-y="3" param="adsr2_d"/>
-        <knob  attach-x="3" attach-y="3" param="adsr2_s"/>
-        <knob  attach-x="4" attach-y="3" param="adsr2_f"/>
-        <knob  attach-x="5" attach-y="3" param="adsr2_r"/>
-        <knob  attach-x="6" attach-y="3" param="adsr2_v"/>
-        <value attach-x="1" attach-y="4" param="adsr2_a"/>
-        <value attach-x="2" attach-y="4" param="adsr2_d"/>
-        <value attach-x="3" attach-y="4" param="adsr2_s"/>
-        <value attach-x="4" attach-y="4" param="adsr2_f"/>
-        <value attach-x="5" attach-y="4" param="adsr2_r"/>
-        <value attach-x="6" attach-y="4" param="adsr2_v"/>
-
-        <knob  attach-x="1" attach-y="5" param="adsr3_a"/>
-        <knob  attach-x="2" attach-y="5" param="adsr3_d"/>
-        <knob  attach-x="3" attach-y="5" param="adsr3_s"/>
-        <knob  attach-x="4" attach-y="5" param="adsr3_f"/>
-        <knob  attach-x="5" attach-y="5" param="adsr3_r"/>
-        <knob  attach-x="6" attach-y="5" param="adsr3_v"/>
-        <value attach-x="1" attach-y="6" param="adsr3_a"/>
-        <value attach-x="2" attach-y="6" param="adsr3_d"/>
-        <value attach-x="3" attach-y="6" param="adsr3_s"/>
-        <value attach-x="4" attach-y="6" param="adsr3_f"/>
-        <value attach-x="5" attach-y="6" param="adsr3_r"/>
-        <value attach-x="6" attach-y="6" param="adsr3_v"/>
-      </table>
+<hbox spacing="10">
+  <vbox>
+  
+    <hbox spacing="4">
+      <frame label="Oscillator 1">
+        <vbox fill="0">
+          <hbox spacing="5" border="5" fill="0">
+            <vbox spacing="10" fill="0">
+              <label text="Level" fill="0"/>
+              <knob param="o1level" size="4" fill="0"/>
+              <value param="o1level" fill="0"/>
+            </vbox>
+            <vbox fill="0" spacing="30">
+              <hbox spacing="3" fill="0">
+                <vbox>
+                  <label text="Offset"/>
+                  <knob param="o1offset"/>
+                  <value param="o1offset"/>
+                </vbox>
+                <vbox>
+                  <label text="Transpose"/>
+                  <knob param="o1trans"/>
+                  <value param="o1trans"/>
+                </vbox>
+                <vbox>
+                  <label text="Detune"/>
+                  <knob param="o1detune"/>
+                  <value param="o1detune"/>
+                </vbox>
+              </hbox>
+              <hbox fill="0">
+                <label text="Wave"/>
+                <combo param="o1wave"/>
+              </hbox>
+            </vbox>
+          </hbox>
+        </vbox>
+      </frame>
+      
+      <frame label="Oscillator 2">
+        <vbox fill="0">
+          <hbox spacing="5" border="5">
+            <vbox spacing="10" fill="0">
+              <label text="Level"/>
+              <knob param="o2level" size="4"/>
+              <value param="o2level"/>
+            </vbox>
+            <vbox fill="0" spacing="30">
+              <hbox spacing="3">
+                <vbox>
+                  <label text="Offset"/>
+                  <knob param="o2offset"/>
+                  <value param="o2offset"/>
+                </vbox>
+                <vbox>
+                  <label text="Transpose"/>
+                  <knob param="o2trans"/>
+                  <value param="o2trans"/>
+                </vbox>
+                <vbox>
+                  <label text="Detune"/>
+                  <knob param="o2detune"/>
+                  <value param="o2detune"/>
+                </vbox>
+              </hbox>
+              <hbox>
+                <label text="Wave"/>
+                <combo param="o2wave"/>
+              </hbox>
+            </vbox>>
+          </hbox>
+        </vbox>
+      </frame>
+      
+    </hbox>
+    <frame label="Envelopes Matrix">
       <listview param="adsr_s" />
+    </frame>
+    
+  </vbox>
+  <notebook>
+    <vbox page="Envelopes" spacing="4">
+    
+      <frame label="EG 1">
+        <hbox homogeneous="1">
+          <vbox>
+            <label text="Attack"/>
+            <vscale height="120" param="adsr_a" inverted="1"/>
+            <value param="adsr_a"/>
+          </vbox>
+          <vbox>
+            <label text="Decay"/>
+            <vscale height="120" param="adsr_d" inverted="1"/>
+            <value param="adsr_d"/>
+          </vbox>
+          <vbox>
+            <label text="Sustain"/>
+            <vscale height="120" param="adsr_s" inverted="1"/>
+            <value param="adsr_s"/>
+          </vbox>
+          <vbox>
+            <label text="Fade"/>
+            <vscale height="120" param="adsr_f" inverted="1"/>
+            <value param="adsr_f"/>
+          </vbox>
+          <vbox>
+            <label text="Release"/>
+            <vscale height="120" param="adsr_r" inverted="1"/>
+            <value param="adsr_r"/>
+          </vbox>
+          <vbox fill="0">
+            <label text="Vel Mod" fill="0"/>
+            <knob param="adsr_v" size="3" fill="0"/>
+            <value param="adsr_v" fill="0"/>
+          </vbox>
+        </hbox>
+      </frame>
+      
+      <frame label="EG 2">
+        <hbox homogeneous="1">
+          <vbox>
+            <label text="Attack"/>
+            <vscale height="120" param="adsr2_a" inverted="1"/>
+            <value param="adsr2_a"/>
+          </vbox>
+          <vbox>
+            <label text="Decay"/>
+            <vscale height="120" param="adsr2_d" inverted="1"/>
+            <value param="adsr2_d"/>
+          </vbox>
+          <vbox>
+            <label text="Sustain"/>
+            <vscale height="120" param="adsr2_s" inverted="1"/>
+            <value param="adsr2_s"/>
+          </vbox>
+          <vbox>
+            <label text="Fade"/>
+            <vscale height="120" param="adsr2_f" inverted="1"/>
+            <value param="adsr2_f"/>
+          </vbox>
+          <vbox>
+            <label text="Release"/>
+            <vscale height="120" param="adsr2_r" inverted="1"/>
+            <value param="adsr2_r"/>
+          </vbox>
+          <vbox fill="0">
+            <label text="Vel Mod" fill="0"/>
+            <knob param="adsr2_v" size="3" fill="0"/>
+            <value param="adsr2_v" fill="0"/>
+          </vbox>
+        </hbox>
+      </frame>
+      
+      <frame label="EG 3">
+        <hbox homogeneous="1">
+          <vbox>
+            <label text="Attack"/>
+            <vscale height="120" param="adsr3_a" inverted="1"/>
+            <value param="adsr3_a"/>
+          </vbox>
+          <vbox>
+            <label text="Decay"/>
+            <vscale height="120" param="adsr3_d" inverted="1"/>
+            <value param="adsr3_d"/>
+          </vbox>
+          <vbox>
+            <label text="Sustain"/>
+            <vscale height="120" param="adsr3_s" inverted="1"/>
+            <value param="adsr3_s"/>
+          </vbox>
+          <vbox>
+            <label text="Fade"/>
+            <vscale height="120" param="adsr3_f" inverted="1"/>
+            <value param="adsr3_f"/>
+          </vbox>
+          <vbox>
+            <label text="Release"/>
+            <vscale height="120" param="adsr3_r" inverted="1"/>
+            <value param="adsr3_r"/>
+          </vbox>
+          <vbox fill="0">
+            <label text="Vel Mod" fill="0"/>
+            <knob param="adsr3_v" size="3" fill="0"/>
+            <value param="adsr3_v" fill="0"/>
+          </vbox>
+        </hbox>
+      </frame>
     </vbox>
-  </frame>
-</vbox>
+  </notebook>
+</hbox>
diff --git a/gui/handle-h.png b/gui/handle-h.png
new file mode 100644
index 0000000..8b63b81
Binary files /dev/null and b/gui/handle-h.png differ
diff --git a/gui/handle-v.png b/gui/handle-v.png
new file mode 100644
index 0000000..3f14a5e
Binary files /dev/null and b/gui/handle-v.png differ
diff --git a/gui/hline.png b/gui/hline.png
new file mode 100644
index 0000000..d9f6feb
Binary files /dev/null and b/gui/hline.png differ
diff --git a/gui/led_active.png b/gui/led_active.png
new file mode 100644
index 0000000..77cf8a5
Binary files /dev/null and b/gui/led_active.png differ
diff --git a/gui/led_inactive.png b/gui/led_inactive.png
new file mode 100644
index 0000000..c7b6c9b
Binary files /dev/null and b/gui/led_inactive.png differ
diff --git a/gui/led_normal.png b/gui/led_normal.png
new file mode 100644
index 0000000..2cd8fca
Binary files /dev/null and b/gui/led_normal.png differ
diff --git a/gui/led_prelight.png b/gui/led_prelight.png
new file mode 100644
index 0000000..ce8f3f4
Binary files /dev/null and b/gui/led_prelight.png differ
diff --git a/gui/logo_button.png b/gui/logo_button.png
index 153424c..3fd87fb 100644
Binary files a/gui/logo_button.png and b/gui/logo_button.png differ
diff --git a/gui/notebook.png b/gui/notebook.png
new file mode 100644
index 0000000..b32bd80
Binary files /dev/null and b/gui/notebook.png differ
diff --git a/gui/notebook_bottom.png b/gui/notebook_bottom.png
new file mode 100644
index 0000000..6962462
Binary files /dev/null and b/gui/notebook_bottom.png differ
diff --git a/gui/notebook_left.png b/gui/notebook_left.png
new file mode 100644
index 0000000..fed7c12
Binary files /dev/null and b/gui/notebook_left.png differ
diff --git a/gui/notebook_right.png b/gui/notebook_right.png
new file mode 100644
index 0000000..c6118c4
Binary files /dev/null and b/gui/notebook_right.png differ
diff --git a/gui/notebook_top.png b/gui/notebook_top.png
new file mode 100644
index 0000000..7107cdc
Binary files /dev/null and b/gui/notebook_top.png differ
diff --git a/gui/null.png b/gui/null.png
new file mode 100644
index 0000000..7d34439
Binary files /dev/null and b/gui/null.png differ
diff --git a/gui/slider-horiz-active.png b/gui/slider-horiz-active.png
new file mode 100644
index 0000000..c85c644
Binary files /dev/null and b/gui/slider-horiz-active.png differ
diff --git a/gui/slider-horiz-prelight.png b/gui/slider-horiz-prelight.png
new file mode 100644
index 0000000..7383bf3
Binary files /dev/null and b/gui/slider-horiz-prelight.png differ
diff --git a/gui/slider-horiz.png b/gui/slider-horiz.png
new file mode 100644
index 0000000..3f1bd9e
Binary files /dev/null and b/gui/slider-horiz.png differ
diff --git a/gui/slider-vert-active.png b/gui/slider-vert-active.png
new file mode 100644
index 0000000..0097120
Binary files /dev/null and b/gui/slider-vert-active.png differ
diff --git a/gui/slider-vert-prelight.png b/gui/slider-vert-prelight.png
new file mode 100644
index 0000000..b778062
Binary files /dev/null and b/gui/slider-vert-prelight.png differ
diff --git a/gui/slider-vert.png b/gui/slider-vert.png
new file mode 100644
index 0000000..18053ff
Binary files /dev/null and b/gui/slider-vert.png differ
diff --git a/gui/spin_down_active.png b/gui/spin_down_active.png
new file mode 100644
index 0000000..a907ce2
Binary files /dev/null and b/gui/spin_down_active.png differ
diff --git a/gui/spin_down_normal.png b/gui/spin_down_normal.png
new file mode 100644
index 0000000..f80db22
Binary files /dev/null and b/gui/spin_down_normal.png differ
diff --git a/gui/spin_up_active.png b/gui/spin_up_active.png
new file mode 100644
index 0000000..ed7397c
Binary files /dev/null and b/gui/spin_up_active.png differ
diff --git a/gui/tab_bottom_normal.png b/gui/tab_bottom_normal.png
new file mode 100644
index 0000000..9904464
Binary files /dev/null and b/gui/tab_bottom_normal.png differ
diff --git a/gui/tab_bottom_prelight.png b/gui/tab_bottom_prelight.png
new file mode 100644
index 0000000..da3945a
Binary files /dev/null and b/gui/tab_bottom_prelight.png differ
diff --git a/gui/tab_left_normal.png b/gui/tab_left_normal.png
new file mode 100644
index 0000000..4921058
Binary files /dev/null and b/gui/tab_left_normal.png differ
diff --git a/gui/tab_left_prelight.png b/gui/tab_left_prelight.png
new file mode 100644
index 0000000..eeb6e6f
Binary files /dev/null and b/gui/tab_left_prelight.png differ
diff --git a/gui/tab_right_normal.png b/gui/tab_right_normal.png
new file mode 100644
index 0000000..4f3f6a4
Binary files /dev/null and b/gui/tab_right_normal.png differ
diff --git a/gui/tab_right_prelight.png b/gui/tab_right_prelight.png
new file mode 100644
index 0000000..f881417
Binary files /dev/null and b/gui/tab_right_prelight.png differ
diff --git a/gui/tab_top_normal.png b/gui/tab_top_normal.png
new file mode 100644
index 0000000..3151fc2
Binary files /dev/null and b/gui/tab_top_normal.png differ
diff --git a/gui/tab_top_prelight.png b/gui/tab_top_prelight.png
new file mode 100644
index 0000000..a119e4b
Binary files /dev/null and b/gui/tab_top_prelight.png differ
diff --git a/gui/trough-horizontal.png b/gui/trough-horizontal.png
new file mode 100644
index 0000000..2241c99
Binary files /dev/null and b/gui/trough-horizontal.png differ
diff --git a/gui/trough-vertical.png b/gui/trough-vertical.png
new file mode 100644
index 0000000..f67e2e0
Binary files /dev/null and b/gui/trough-vertical.png differ
diff --git a/gui/vline.png b/gui/vline.png
new file mode 100644
index 0000000..3354fae
Binary files /dev/null and b/gui/vline.png differ
diff --git a/src/calf/main_win.h b/src/calf/main_win.h
index 7d96f62..67c71e9 100644
--- a/src/calf/main_win.h
+++ b/src/calf/main_win.h
@@ -40,7 +40,7 @@ namespace calf_plugins {
             main_window *main_win;
             plugin_ctl_iface *plugin;
             plugin_gui_window *gui_win;
-            GtkWidget *name, *midi_in, *audio_in[2], *audio_out[2], *extra;
+            GtkWidget *name, *button, *midi_in, *audio_in[2], *audio_out[2], *extra;
         };
         
         struct add_plugin_params
diff --git a/src/ctl_keyboard.cpp b/src/ctl_keyboard.cpp
index 05c24d3..13dbdb3 100644
--- a/src/ctl_keyboard.cpp
+++ b/src/ctl_keyboard.cpp
@@ -40,9 +40,7 @@ calf_keyboard_expose (GtkWidget *widget, GdkEventExpose *event)
 {
     g_assert(CALF_IS_KEYBOARD(widget));
     
-    GdkColor scWhiteKey = { 0, 65535, 65535, 65535 };
-    GdkColor scBlackKey = { 0, 0, 0, 0 };
-    GdkColor scOutline = { 0, 0, 0, 0 };
+    cairo_pattern_t *pat;
     CalfKeyboard *self = CALF_KEYBOARD(widget);
     GdkWindow *window = widget->window;
     cairo_t *c = gdk_cairo_create(GDK_DRAWABLE(window));
@@ -54,12 +52,19 @@ calf_keyboard_expose (GtkWidget *widget, GdkEventExpose *event)
     {
         CalfKeyboard::KeyInfo ki = { 0.5 + 12 * i, 0.5, 12, sy, 12 * (i / 7) + semitones_w[i % 7], false };
         cairo_new_path(c);
-        gdk_cairo_set_source_color(c, &scWhiteKey);
         if (!self->sink->pre_draw(c, ki))
         {
-            cairo_rectangle(c, ki.x, ki.y, ki.width, ki.height);
-            cairo_fill_preserve(c);
-            gdk_cairo_set_source_color(c, &scOutline);
+            cairo_rectangle(c, ki.x, ki.y, ki.width, ki.y + ki.height);
+            
+            pat = cairo_pattern_create_linear (ki.x, ki.y, ki.x, ki.y + ki.height);
+            cairo_pattern_add_color_stop_rgb (pat, 0.0, 0.25, 0.25, 0.2);
+            cairo_pattern_add_color_stop_rgb (pat, 0.1, 0.957, 0.914, 0.925);
+            cairo_pattern_add_color_stop_rgb (pat, 1.0, 0.796, 0.787, 0.662);
+            cairo_set_source(c, pat);
+            cairo_fill(c);
+            
+            cairo_set_source_rgba(c, 0, 0, 0, 0.5);
+            
             if (!self->sink->pre_draw_outline(c, ki))
                 cairo_stroke(c);
             else
@@ -75,15 +80,38 @@ calf_keyboard_expose (GtkWidget *widget, GdkEventExpose *event)
             CalfKeyboard::KeyInfo ki = { 8.5 + 12 * i, 0.5, 8, sy * 3 / 5, 12 * (i / 7) + semitones_b[i % 7], true };
             cairo_new_path(c);
             cairo_rectangle(c, ki.x, ki.y, ki.width, ki.height);
-            gdk_cairo_set_source_color(c, &scBlackKey);
+//            gdk_cairo_set_source_color(c, &scBlackKey);
             if (!self->sink->pre_draw(c, ki))
             {
+                pat = cairo_pattern_create_linear (ki.x, ki.y, ki.x, ki.height + ki.y);
+                cairo_pattern_add_color_stop_rgb (pat, 0.0, 0, 0, 0);
+                cairo_pattern_add_color_stop_rgb (pat, 0.1, 0.27, 0.27, 0.27);
+                cairo_pattern_add_color_stop_rgb (pat, 1.0, 0, 0, 0);
+                cairo_set_source(c, pat);
+                cairo_fill(c);
+                
+                pat = cairo_pattern_create_linear (ki.x + 1, ki.y, ki.x + 1, (int)(ki.height * 0.8 + ki.y));
+                cairo_pattern_add_color_stop_rgb (pat, 0.0, 0, 0, 0);
+                cairo_pattern_add_color_stop_rgb (pat, 0.1, 0.55, 0.55, 0.55);
+                cairo_pattern_add_color_stop_rgb (pat, 0.5, 0.45, 0.45, 0.45);
+                cairo_pattern_add_color_stop_rgb (pat, 0.5001, 0.35, 0.35, 0.35);
+                cairo_pattern_add_color_stop_rgb (pat, 1.0, 0.25, 0.25, 0.25);
+                cairo_set_source(c, pat);
+                cairo_rectangle(c, ki.x + 1, ki.y, ki.width - 2, (int)(ki.height * 0.8 + ki.y));
                 cairo_fill(c);
+                
                 self->sink->post_draw(c, ki);
             }
         }
     }
     
+    pat = cairo_pattern_create_linear (widget->allocation.x, widget->allocation.y, widget->allocation.x, (int)(widget->allocation.height * 0.2 + widget->allocation.y));
+    cairo_pattern_add_color_stop_rgba (pat, 0.0, 0, 0, 0, 0.4);
+    cairo_pattern_add_color_stop_rgba (pat, 1.0, 0, 0, 0, 0);
+    cairo_rectangle(c, widget->allocation.x, widget->allocation.y, widget->allocation.width, (int)(widget->allocation.height * 0.2));
+    cairo_set_source(c, pat);
+    cairo_fill(c);
+    
     self->sink->post_all(c);
     
     cairo_destroy(c);
@@ -121,7 +149,7 @@ calf_keyboard_size_request (GtkWidget *widget,
     g_assert(CALF_IS_KEYBOARD(widget));
     
     requisition->width = 12 * self->nkeys + 1;
-    requisition->height = 32;
+    requisition->height = 40;
 }
 
 static void
diff --git a/src/ctl_led.cpp b/src/ctl_led.cpp
index 60c12bc..a3d7b3f 100644
--- a/src/ctl_led.cpp
+++ b/src/ctl_led.cpp
@@ -58,8 +58,11 @@ calf_led_expose (GtkWidget *widget, GdkEventExpose *event)
                                   widget->allocation.height );
         cairo_t *cache_cr = cairo_create( self->cache_surface );
         
-        // theme background for round borders
-        gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//        if(widget->style->bg_pixmap[0] == NULL) {
+            gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//        } else {
+//            gdk_cairo_set_source_pixbuf(cache_cr, GDK_PIXBUF(&style->bg_pixmap[0]), widget->allocation.x, widget->allocation.y + 20);
+//        }
         cairo_paint(cache_cr);
         
         // outer (light)
diff --git a/src/custom_ctl.cpp b/src/custom_ctl.cpp
index 529dd2d..6337711 100644
--- a/src/custom_ctl.cpp
+++ b/src/custom_ctl.cpp
@@ -183,9 +183,11 @@ calf_line_graph_expose (GtkWidget *widget, GdkEventExpose *event)
             
             cairo_t *cache_cr = cairo_create( lg->cache_surface );
         
-            // theme background for round borders
-            style = gtk_widget_get_style(widget);
-            gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//            if(widget->style->bg_pixmap[0] == NULL) {
+                gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//            } else {
+//                gdk_cairo_set_source_pixbuf(cache_cr, GDK_PIXBUF(&style->bg_pixmap[GTK_STATE_NORMAL]), widget->allocation.x, widget->allocation.y + 20);
+//            }
             cairo_paint(cache_cr);
             
             // outer (light)
@@ -466,7 +468,11 @@ calf_vumeter_expose (GtkWidget *widget, GdkEventExpose *event)
         cairo_t *cache_cr = cairo_create( vu->cache_surface );
         
         // theme background for reduced width and round borders
-        gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//        if(widget->style->bg_pixmap[0] == NULL) {
+            gdk_cairo_set_source_color(cache_cr,&style->bg[GTK_STATE_NORMAL]);
+//        } else {
+//            gdk_cairo_set_source_pixbuf(cache_cr, GDK_PIXBUF(widget->style->bg_pixmap[0]), widget->allocation.x, widget->allocation.y + 20);
+//        }
         cairo_paint(cache_cr);
         
         // outer (light)
@@ -743,10 +749,9 @@ calf_knob_expose (GtkWidget *widget, GdkEventExpose *event)
     CalfKnob *self = CALF_KNOB(widget);
     GdkWindow *window = widget->window;
     GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widget));
-
+     
     // printf("adjustment = %p value = %f\n", adj, adj->value);
     int ox = widget->allocation.x, oy = widget->allocation.y;
-
     ox += (widget->allocation.width - self->knob_size * 20) / 2;
     oy += (widget->allocation.height - self->knob_size * 20) / 2;
 
@@ -906,10 +911,10 @@ static inline float endless(float value)
 
 static inline float deadzone(float value, float incr, float scale)
 {
-    float dzw = 10 / scale;
-    if (value >= 0.501)
+    float dzw = 2 / scale;
+    if (value >= 0.5 + dzw)
         value += dzw;
-    if (value < 0.499)
+    if (value < 0.5 - dzw)
         value -= dzw;
 
     value += incr;
@@ -927,24 +932,24 @@ calf_knob_pointer_motion (GtkWidget *widget, GdkEventMotion *event)
     g_assert(CALF_IS_KNOB(widget));
     CalfKnob *self = CALF_KNOB(widget);
 
-    float scale = (event->state & GDK_SHIFT_MASK) ? 10 : 1;
+    float scale = (event->state & GDK_SHIFT_MASK) ? 1000 : 100;
     gboolean moved = FALSE;
     
     if (GTK_WIDGET_HAS_GRAB(widget)) 
     {
-        float sens=1/(75*(1+fabs((self->start_x - event->x)/10)));
+        float sens = 1 + fabs(event->x - self->start_x) / 10;
         if (self->knob_type == 3)
         {
-            gtk_range_set_value(GTK_RANGE(widget), endless(gtk_range_get_value(GTK_RANGE(widget)) - (event->y - self->last_y) / scale * sens));
+            gtk_range_set_value(GTK_RANGE(widget), endless(gtk_range_get_value(GTK_RANGE(widget)) - (event->y - self->last_y) / (scale * sens)));
         }
         else
         if (self->knob_type == 1)
         {
-            gtk_range_set_value(GTK_RANGE(widget), deadzone(gtk_range_get_value(GTK_RANGE(widget)), -(event->y - self->last_y) / scale * sens, scale * sens));
+            gtk_range_set_value(GTK_RANGE(widget), deadzone(gtk_range_get_value(GTK_RANGE(widget)), -(event->y - self->last_y) / (scale * sens), (scale * sens)));
         }
         else
         {
-            gtk_range_set_value(GTK_RANGE(widget), gtk_range_get_value(GTK_RANGE(widget)) - (event->y - self->last_y) / scale * sens);
+            gtk_range_set_value(GTK_RANGE(widget), gtk_range_get_value(GTK_RANGE(widget)) - (event->y - self->last_y) / (scale * sens));
         }
         moved = TRUE;
     }
diff --git a/src/gui.cpp b/src/gui.cpp
index 87ecc3c..ac1092f 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -381,7 +381,15 @@ GtkWidget *plugin_gui::create_from_xml(plugin_ctl_iface *_plugin, const char *xm
     gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(rightBox),  2, 3, 0, 1, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
     gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(top_container->container), 1, 2, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 15, 5);
     
-    return GTK_WIDGET(decoTable);
+    // create window with viewport
+    GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
+    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
+    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), GTK_WIDGET(decoTable));
+    
+    gtk_widget_set_name(GTK_WIDGET(sw), "calf-container");
+    
+    return GTK_WIDGET(sw);
 }
 
 void plugin_gui::send_configure(const char *key, const char *value)
@@ -652,7 +660,8 @@ void plugin_gui_window::create(plugin_ctl_iface *_jh, const char *title, const c
     fill_gui_presets(false, ch);
     
     gtk_box_pack_start(GTK_BOX(vbox), gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar"), false, false, 0);
-
+    gtk_widget_set_name(GTK_WIDGET(gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar")), "calf-menu");
+    
     // determine size without content
     gtk_widget_show_all(GTK_WIDGET(vbox));
     gtk_widget_size_request(GTK_WIDGET(vbox), &req2);
@@ -663,16 +672,14 @@ void plugin_gui_window::create(plugin_ctl_iface *_jh, const char *title, const c
     assert(xml);
     container = gui->create_from_xml(_jh, xml);
     
-    GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
-    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), GTK_WIDGET(container));
-    
-    gtk_widget_set_name(GTK_WIDGET(sw), "calf-container");
+//    GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
+//    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+//    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
+//    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), GTK_WIDGET(container));
     
-    gtk_box_pack_start(GTK_BOX(vbox), sw, true, true, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), container, true, true, 0);
     
-    gtk_widget_show_all(GTK_WIDGET(sw));
+    gtk_widget_show_all(GTK_WIDGET(container));
     gtk_widget_size_request(GTK_WIDGET(container), &req);
     int wx = max(req.width + 10, req2.width);
     int wy = req.height + req2.height + 10;
diff --git a/src/gui_controls.cpp b/src/gui_controls.cpp
index 2e27311..4e13a43 100644
--- a/src/gui_controls.cpp
+++ b/src/gui_controls.cpp
@@ -150,7 +150,11 @@ GtkWidget *hscale_param_control::create(plugin_gui *_gui, int _param_no)
     gtk_signal_connect (GTK_OBJECT (widget), "value-changed", G_CALLBACK (hscale_value_changed), (gpointer)this);
     gtk_signal_connect (GTK_OBJECT (widget), "format-value", G_CALLBACK (hscale_format_value), (gpointer)this);
     gtk_widget_set_size_request (widget, 200, -1);
-
+    
+    if(get_int("inverted", 0) > 0) {
+        gtk_range_set_inverted(GTK_RANGE(widget), TRUE);
+    }
+    
     return widget;
 }
 
@@ -204,12 +208,15 @@ GtkWidget *vscale_param_control::create(plugin_gui *_gui, int _param_no)
 {
     gui = _gui;
     param_no = _param_no;
-
     widget = gtk_vscale_new_with_range (0, 1, get_props().get_increment());
     gtk_signal_connect (GTK_OBJECT (widget), "value-changed", G_CALLBACK (vscale_value_changed), (gpointer)this);
     gtk_scale_set_draw_value(GTK_SCALE(widget), FALSE);
     gtk_widget_set_size_request (widget, -1, 200);
-
+    
+    if(get_int("inverted", 0) > 0) {
+        gtk_range_set_inverted(GTK_RANGE(widget), TRUE);
+    }
+    
     return widget;
 }
 
@@ -303,6 +310,7 @@ GtkWidget *vumeter_param_control::create(plugin_gui *_gui, int _param_no)
     gui = _gui, param_no = _param_no;
     // parameter_properties &props = get_props();
     widget = calf_vumeter_new ();
+    gtk_widget_set_name(GTK_WIDGET(widget), "calf-vumeter");
     calf_vumeter_set_mode (CALF_VUMETER (widget), (CalfVUMeterMode)get_int("mode", 0));
     CALF_VUMETER(widget)->vumeter_hold = get_int("hold", 0);
     return widget;
@@ -324,6 +332,7 @@ GtkWidget *led_param_control::create(plugin_gui *_gui, int _param_no)
     gui = _gui, param_no = _param_no;
     // parameter_properties &props = get_props();
     widget = calf_led_new ();
+    gtk_widget_set_name(GTK_WIDGET(widget), "calf-led");
     CALF_LED(widget)->led_mode = get_int("mode", 0);
     return widget;
 }
@@ -742,6 +751,7 @@ GtkWidget *line_graph_param_control::create(plugin_gui *_gui, int _param_no)
     // const parameter_properties &props = get_props();
     
     widget = calf_line_graph_new ();
+    gtk_widget_set_name(GTK_WIDGET(widget), "calf-graph");
     CalfLineGraph *clg = CALF_LINE_GRAPH(widget);
     widget->requisition.width = get_int("width", 40);
     widget->requisition.height = get_int("height", 40);
@@ -934,7 +944,7 @@ void box_container::add(GtkWidget *w, control_base *base)
 
 GtkWidget *hbox_container::create(plugin_gui *_gui, const char *element, xml_attribute_map &attributes)
 {
-    GtkWidget *hbox = gtk_hbox_new(false, get_int("spacing", 2));
+    GtkWidget *hbox = gtk_hbox_new(get_int("homogeneous") >= 1, get_int("spacing", 2));
     container = GTK_CONTAINER(hbox);
     return hbox;
 }
@@ -943,7 +953,7 @@ GtkWidget *hbox_container::create(plugin_gui *_gui, const char *element, xml_att
 
 GtkWidget *vbox_container::create(plugin_gui *_gui, const char *element, xml_attribute_map &attributes)
 {
-    GtkWidget *vbox = gtk_vbox_new(false, get_int("spacing", 2));
+    GtkWidget *vbox = gtk_vbox_new(get_int("homogeneous") >= 1, get_int("spacing", 2));
     container = GTK_CONTAINER(vbox);
     return vbox;
 }
diff --git a/src/lv2gui.cpp b/src/lv2gui.cpp
index 6dce0c1..6f4454a 100644
--- a/src/lv2gui.cpp
+++ b/src/lv2gui.cpp
@@ -227,7 +227,7 @@ LV2UI_Handle gui_instantiate(const struct _LV2UI_Descriptor* descriptor,
     const char *xml = proxy->get_gui_xml();
     assert(xml);
     *(GtkWidget **)(widget) = gui->create_from_xml(proxy, xml);
-    
+    gtk_rc_parse(PKGLIBDIR "calf.rc");
     if (*(GtkWidget **)(widget))
         proxy->source_id = g_timeout_add_full(G_PRIORITY_LOW, 1000/30, plugin_on_idle, gui, NULL); // 30 fps should be enough for everybody    
     
diff --git a/src/main_win.cpp b/src/main_win.cpp
index 1578d35..a8361bb 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -89,7 +89,7 @@ void main_window::del_plugin(plugin_ctl_iface *plugin)
         GtkTableChild *c = (GtkTableChild *)p->data;
         if (c->widget == strip->name)
         {
-            row = c->top_attach - 1;
+            row = c->top_attach;
             break;
         }
     }
@@ -99,7 +99,7 @@ void main_window::del_plugin(plugin_ctl_iface *plugin)
     for(GList *p = GTK_TABLE(strips_table)->children; p != NULL; p = p->next)
     {
         GtkTableChild *c = (GtkTableChild *)p->data;
-        if (c->top_attach >= row && c->top_attach < row + 3)
+        if (c->top_attach >= row && c->top_attach < row + 4)
             to_destroy.push_back(c->widget);
         if (c->top_attach >= row + 4)
         {
@@ -136,7 +136,15 @@ void main_window::set_window(plugin_ctl_iface *plugin, plugin_gui_window *gui_wi
         return;
     strip->gui_win = gui_win;
     if (!is_closed)
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strip->name), gui_win != NULL);
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(strip->button), gui_win != NULL);
+        
+    GtkToggleButton *tb = GTK_TOGGLE_BUTTON(strip->button);
+    if (strip->gui_win) {
+        gtk_button_set_label(GTK_BUTTON(tb), "Hide");
+    } else {
+        gtk_button_set_label(GTK_BUTTON(tb), "Show");
+    }
+    
 }
 
 void main_window::refresh_all_presets(bool builtin_too)
@@ -160,8 +168,10 @@ gui_button_pressed(GtkWidget *button, main_window::plugin_strip *strip)
     if (strip->gui_win) {
         strip->gui_win->close();
         strip->gui_win = NULL;
+        gtk_button_set_label(GTK_BUTTON(tb), "Show");
     } else {
         strip->main_win->open_gui(strip->plugin);
+        gtk_button_set_label(GTK_BUTTON(tb), "Hide");
     }
     return TRUE;
 }
@@ -219,25 +229,26 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
     gtk_widget_set_size_request(GTK_WIDGET(topImg), 1, 1);
     gtk_table_attach(GTK_TABLE(strips_table), topImg, 1, 5, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), (GtkAttachOptions)(0), 0, 0);
     gtk_widget_show(topImg);
+    strip->name = topImg;
     row ++;
     
     // title @ 1, 1
     char buf[128];
-    sprintf(buf, "<span size=\"18000\">%s</span>", plugin->get_label());
+    sprintf(buf, "<span size=\"15000\">%s</span>", plugin->get_label());
     GtkWidget *title = gtk_label_new(NULL);
     gtk_label_set_markup(GTK_LABEL(title), buf);
     gtk_table_attach(GTK_TABLE(strips_table), title, 1, 2, row, row + 1, ao, GTK_SHRINK, 20, 10);
     gtk_widget_show(title);
     
     // open button
-    GtkWidget *label = gtk_toggle_button_new_with_label("Open");
-    strip->name = label;
+    GtkWidget *label = gtk_toggle_button_new_with_label("Show");
+    strip->button = label;
     gtk_signal_connect(GTK_OBJECT(label), "toggled", G_CALLBACK(gui_button_pressed), 
         (plugin_ctl_iface *)strip);
-    gtk_widget_show(strip->name);
-    
+    gtk_widget_show(strip->button);
+
     // delete buton
-    GtkWidget *extra = gtk_button_new_with_label("Delete");
+    GtkWidget *extra = gtk_button_new_with_label("Remove");
     strip->extra = extra;
     gtk_signal_connect(GTK_OBJECT(extra), "clicked", G_CALLBACK(extra_button_pressed), 
         (plugin_ctl_iface *)strip);
@@ -245,7 +256,7 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
     
     // button box @ 1, 2
     GtkWidget *buttonBox = gtk_hbox_new(TRUE, 10);
-    gtk_box_pack_start(GTK_BOX(buttonBox), GTK_WIDGET(strip->name), TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(buttonBox), GTK_WIDGET(strip->button), TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(buttonBox), GTK_WIDGET(strip->extra), TRUE, TRUE, 0);
     gtk_table_attach(GTK_TABLE(strips_table), buttonBox, 1, 2, row + 1, row + 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), GTK_EXPAND, 10, 10);
     gtk_widget_show(buttonBox);
@@ -256,13 +267,13 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
         GtkWidget *midiBox = gtk_vbox_new(FALSE, 1);
         gtk_box_pack_start(GTK_BOX(midiBox), GTK_WIDGET(gtk_label_new("MIDI")), TRUE, TRUE, 0);
         gtk_box_pack_start(GTK_BOX(midiBox), GTK_WIDGET(label), TRUE, TRUE, 0);
-        gtk_table_attach(GTK_TABLE(strips_table), midiBox, 2, 3, row, row + 1, GTK_FILL, GTK_EXPAND, 10, 10);
+        gtk_table_attach(GTK_TABLE(strips_table), midiBox, 2, 3, row, row + 1, GTK_FILL, GTK_EXPAND, 5, 3);
         gtk_widget_set_size_request(GTK_WIDGET(label), 40, 36);
         strip->midi_in = label;
         gtk_widget_show_all(midiBox);
     } else {
         label = gtk_label_new("");
-        gtk_table_attach(GTK_TABLE(strips_table), label, 2, 3, row, row + 1, GTK_FILL, GTK_EXPAND, 10, 10);
+        gtk_table_attach(GTK_TABLE(strips_table), label, 2, 3, row, row + 1, GTK_FILL, GTK_EXPAND, 5, 3);
         gtk_widget_set_size_request(GTK_WIDGET(label), 40, 36);
         strip->midi_in = label;
         gtk_widget_show(strip->midi_in);
@@ -289,7 +300,7 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
         strip->audio_in[1] = label;
         
         gtk_widget_show_all(inBox);
-        gtk_table_attach(GTK_TABLE(strips_table), inBox, 3, 4, row, row + 1, GTK_FILL, GTK_SHRINK, 10, 5);
+        gtk_table_attach(GTK_TABLE(strips_table), inBox, 3, 4, row, row + 1, GTK_FILL, GTK_SHRINK, 5, 3);
         
         gtk_widget_set_size_request(GTK_WIDGET(inBox), 160, -1);
     }
@@ -309,7 +320,7 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
         strip->audio_out[1] = label;
         
         gtk_widget_show_all(outBox);
-        gtk_table_attach(GTK_TABLE(strips_table), outBox, 4, 5, row, row + 1, GTK_FILL, GTK_SHRINK, 10, 5);
+        gtk_table_attach(GTK_TABLE(strips_table), outBox, 4, 5, row, row + 1, GTK_FILL, GTK_SHRINK, 5, 3);
         
         gtk_widget_set_size_request(GTK_WIDGET(outBox), 160, -1);
     }
@@ -411,7 +422,7 @@ void main_window::create()
     gtk_window_set_resizable(toplevel, false);
     
     all_vbox = gtk_vbox_new(0, FALSE);
-
+    
     ui_mgr = gtk_ui_manager_new();
     std_actions = gtk_action_group_new("default");
     gtk_action_group_add_actions(std_actions, actions, sizeof(actions)/sizeof(actions[0]), this);
@@ -420,22 +431,26 @@ void main_window::create()
     gtk_ui_manager_add_ui_from_string(ui_mgr, ui_xml, -1, &error);    
     gtk_box_pack_start(GTK_BOX(all_vbox), gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar"), false, false, 0);
     
+    gtk_widget_set_size_request(GTK_WIDGET(gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar")), 640, -1);
+    
+    gtk_widget_set_name(GTK_WIDGET(gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar")), "calf-menu");
+    
     plugin_actions = gtk_action_group_new("plugins");
     string plugin_xml = make_plugin_list(plugin_actions);
     gtk_ui_manager_insert_action_group(ui_mgr, plugin_actions, 0);    
     gtk_ui_manager_add_ui_from_string(ui_mgr, plugin_xml.c_str(), -1, &error);
 
     
-    strips_table = gtk_table_new(1, 6, FALSE);
+    strips_table = gtk_table_new(0, 6, FALSE);
     gtk_table_set_col_spacings(GTK_TABLE(strips_table), 0);
     gtk_table_set_row_spacings(GTK_TABLE(strips_table), 0);
     
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new(""), 0, 1, 0, 1, GTK_FILL, GTK_SHRINK, 28, 5);
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("Module"), 1, 2, 0, 1, GTK_FILL, GTK_SHRINK, 70, 5);
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("MIDI"), 2, 3, 0, 1, GTK_FILL, GTK_SHRINK, 10, 5);
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("audio in"), 3, 4, 0, 1, GTK_FILL, GTK_SHRINK, 70, 5);
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("audio out"), 4, 5, 0, 1, GTK_FILL, GTK_SHRINK, 70, 5);
-    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new(""), 5, 6, 0, 1, GTK_FILL, GTK_SHRINK, 28, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new(""), 0, 1, 0, 1, GTK_FILL, GTK_SHRINK, 28, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("Module"), 1, 2, 0, 1, GTK_FILL, GTK_SHRINK, 80, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("MIDI"), 2, 3, 0, 1, GTK_FILL, GTK_SHRINK, 15, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("audio in"), 3, 4, 0, 1, GTK_FILL, GTK_SHRINK, 80, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new("audio out"), 4, 5, 0, 1, GTK_FILL, GTK_SHRINK, 80, 5);
+//    gtk_table_attach(GTK_TABLE(strips_table), gtk_label_new(""), 5, 6, 0, 1, GTK_FILL, GTK_SHRINK, 28, 5);
     
     for(GList *p = GTK_TABLE(strips_table)->children; p != NULL; p = p->next)
     {
@@ -453,6 +468,8 @@ void main_window::create()
     gtk_container_add(GTK_CONTAINER(all_vbox), strips_table);
     gtk_container_add(GTK_CONTAINER(toplevel), all_vbox);
     
+    gtk_widget_set_name(GTK_WIDGET(strips_table), "calf-container");
+    
     gtk_widget_show_all(GTK_WIDGET(toplevel));
     source_id = g_timeout_add_full(G_PRIORITY_LOW, 1000/30, on_idle, this, NULL); // 30 fps should be enough for everybody
 }
diff --git a/src/modules.cpp b/src/modules.cpp
index e49e977..e3c267f 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -370,11 +370,11 @@ CALF_PORT_PROPS(monosynth) = {
     { 1,          0,    1,    0, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "env2res", "Env->Res" },
     { 1,          0,    1,    0, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "env2amp", "Env->Amp" },
     
-    { 1,          1,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "adsr_a", "Attack" },
-    { 350,       10,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "adsr_d", "Decay" },
+    { 1,          1,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_FADER | PF_UNIT_MSEC, NULL, "adsr_a", "Attack" },
+    { 350,       10,20000,    0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_FADER | PF_UNIT_MSEC, NULL, "adsr_d", "Decay" },
     { 0.5,        0,    1,    0, PF_FLOAT | PF_SCALE_PERC, NULL, "adsr_s", "Sustain" },
-    { 0,     -10000,10000,   21, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "adsr_f", "Fade" },
-    { 50,       10,20000,     0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "adsr_r", "Release" },
+    { 0,     -10000,10000,   21, PF_FLOAT | PF_SCALE_LINEAR | PF_CTL_FADER | PF_UNIT_MSEC, NULL, "adsr_f", "Fade" },
+    { 50,       10,20000,     0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_FADER | PF_UNIT_MSEC, NULL, "adsr_r", "Release" },
     
     { 0,          0,    2,    0, PF_FLOAT | PF_SCALE_PERC, NULL, "key_follow", "Key Follow" },
     { 0,          0,    3,    0, PF_ENUM | PF_CTL_COMBO, monosynth_legato_names, "legato", "Legato Mode" },
@@ -615,8 +615,8 @@ CALF_PORT_PROPS(fluidsynth) = {
     { 0.5,         0,   1, 100, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_PROP_OUTPUT_GAIN, NULL, "master", "Volume" },
     { 0,          0,    0,    0, PF_STRING | PF_PROP_MSGCONTEXT, &fluidsynth_init_soundfont, "soundfont", "Soundfont" },
     { 2,          0,    3,    0, PF_ENUM | PF_CTL_COMBO, fluidsynth_interpolation_names, "interpolation", "Interpolation" },
-    { 1,          0,    1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "reverb", "Enable Reverb" },
-    { 1,          0,    1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "chorus", "Enable Chorus" },
+    { 1,          0,    1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "reverb", "Reverb" },
+    { 1,          0,    1,    0, PF_BOOL | PF_CTL_TOGGLE, NULL, "chorus", "Chorus" },
 };
 
 ////////////////////////////////////////////////////////////////////////////

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list