[SCM] calf/master: Some changes in style, smaller h/v-scale added

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


The following commit has been merged in the master branch:
commit 13d1051584336b904bd5e0e4e97855d4f6acca28
Author: Markus Schmidt <schmidt at boomshop.net>
Date:   Wed Nov 25 01:37:01 2009 +0100

    Some changes in style, smaller h/v-scale added

diff --git a/gui/calf.rc b/gui/calf.rc
index a342fad..6b23daf 100644
--- a/gui/calf.rc
+++ b/gui/calf.rc
@@ -20,14 +20,18 @@ style "calf-default"
 
 	GtkPaned       ::handle-size          = 6
 
-	GtkRange       ::trough-border        = 0
 	GtkRange       ::slider-width         = 15
 	GtkRange       ::stepper-size         = 15
-
-#	GtkScale       ::slider-length        = 30
-#	GtkScale       ::trough-side-details  = 1	# Restores sliders
+    GtkRange::trough_border				  = 0
+    GtkVScale::slider_length        	  = 46
+	GtkVScale::slider_width 		  	  = 35
+	GtkHScale::slider_length 			  = 46
+	GtkHScale::slider_width 			  = 35
+	
+	GtkScale       ::trough-side-details  = 0	# Restores sliders
+	
 	GtkScrollbar   ::min-slider-length    = 30
-
+    
 	GtkMenuBar     ::internal-padding     = 4
 	GtkExpander    ::expander-size        = 16
 	GtkToolbar     ::internal-padding     = 1
@@ -39,15 +43,14 @@ style "calf-default"
 	
 	GtkSpinButton::shadow-type			= GTK_SHADOW_NONE
 	
-	
 	# Glow the tasklist by changing the color, instead of overlaying it with a rectangle
 	WnckTasklist   ::fade-overlay-rect    = 0
 
 	#GtkWidget      ::link-color           = @fg_color
 	#GtkWidget      ::visited-link-color   = shade (0.2, @fg_color)
 
-	xthickness = 1
-	ythickness = 1
+	xthickness = 0
+	ythickness = 0
 	
 	font_name = "Sans 8"
 	
@@ -80,9 +83,184 @@ style "calf-default"
 	bg_pixmap[ACTIVE]		= "background_black.png"
 	bg_pixmap[INSENSITIVE]	= "background_dark.png"
 	
-	engine "pixmap" 
+	engine "pixmap"
 	{
+	    image
+		{
+			function				= BOX
+			detail					= "buttondefault"
+			recolorable				= TRUE
+			overlay_file			= "button_default.png"
+			overlay_border			= {8, 8, 2, 2}
+			overlay_stretch			= FALSE
+		}
+		
+	    # Focus
+		image
+		{
+			function		= FOCUS
+			recolorable		= TRUE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
+
+		# Arrows
+		image
+		{
+			function		= ARROW
+			state			= INSENSITIVE
+			recolorable		= FALSE
+			overlay_file		= "led_inactive.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= ARROW
+			recolorable		= FALSE
+			state			= NORMAL
+			overlay_file		= "led_normal.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= ARROW
+			recolorable		= FALSE
+			state			= ACTIVE
+			overlay_file		= "led_active.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		image
+		{
+			function		= ARROW
+			recolorable		= FALSE
+			state			= PRELIGHT
+			overlay_file		= "led_prelight.png"
+			overlay_border		= { 3, 3, 2, 2 }
+			overlay_stretch		= FALSE
+		}
+		
+		# Lines
+		image
+		{
+			function		= VLINE
+			recolorable		= FALSE
+			file			= "vline.png"
+			border			= { 1, 1, 0, 0 }
+			stretch			= TRUE
+		}
+		image
+		{
+			function		= HLINE
+			recolorable		= FALSE
+			file			= "hline.png"
+			border			= { 0, 0, 1, 1	}
+			stretch			= TRUE
+		}
 		
+		# Shadows
+		image
+        {
+            function			= SHADOW
+            shadow			= IN
+            recolorable		= FALSE
+            file				= "frame.png"
+            border			= { 16, 16, 16, 16 }
+            stretch			= TRUE
+        }
+        image
+        {
+            function			= SHADOW
+            shadow			= IN
+            recolorable		= FALSE
+            file				= "frame.png"
+            border			= { 16, 16, 16, 16 }
+            stretch			= TRUE
+        }
+
+        image
+        {
+            function		= SHADOW
+            shadow			= ETCHED_IN
+            recolorable		= TRUE
+            file				= "frame.png"				
+            border			= { 16, 16, 16, 16 }
+            stretch			= TRUE
+        }
+        image
+        {
+            function		= SHADOW
+            shadow			= ETCHED_OUT
+            recolorable		= TRUE
+            file				= "frame.png"
+            border			= { 16, 16, 16, 16 }
+            stretch			= TRUE
+        }
+        image
+        {
+            function			= SHADOW_GAP
+            recolorable			= TRUE
+            file				= "frame_top.png"
+            border				= { 12, 12, 2, 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_left.png"
+            border				= { 2, 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, 2, 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
+        }
+        image
+        {
+            function			= SHADOW_GAP
+            recolorable			= TRUE
+            file				= "frame_bottom.png"
+            border				= { 12, 12, 12, 2 }
+            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
+        }
+
+		# Clear default box
+		image
+		{
+			function		= BOX
+			recolorable		= TRUE
+			file			= "null.png"
+			border			= { 0, 0, 0, 0 }
+			stretch			= TRUE
+		}
 	}
 }
 
@@ -124,7 +302,9 @@ style "calf-rack"
 }
 
 
-
+style "calf-label" {
+    font_name = "Sans 7"
+}
 
 ################################################################################
 #                                   BUTTONS                                    #
@@ -136,7 +316,7 @@ style "calf-button"
 {
 	GtkButton      ::child-displacement-x = 0
 	GtkButton      ::child-displacement-y = 0
-	GtkButton      ::inner-border         = { 8, 8, 3, 3}
+	GtkButton      ::inner-border         = { 8, 8, 2, 2}
 	
     xthickness = 5
     ythickness = 2
@@ -152,6 +332,18 @@ style "calf-button"
 	text[SELECTED]		= "#000"
 	text[ACTIVE]		= "#000"
 	text[INSENSITIVE]	= "#666"
+	
+	bg[NORMAL]        = "#DADADA"
+	bg[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	bg[ACTIVE]        = shade (1.4, "#D1D1D1")
+	bg[SELECTED]	  = "#DADADA"
+	bg[INSENSITIVE]   = shade (0.7, "#D1D1D1")
+
+	base[NORMAL]        = "#DADADA"
+	base[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	base[ACTIVE]        = shade (1.4, "#D1D1D1")
+	base[SELECTED]	  = "#DADADA"
+	base[INSENSITIVE]   = shade (0.7, "#D1D1D1")
 	
 	engine "pixmap"
 	{
@@ -207,7 +399,7 @@ style "calf-toggle"
 {
 	GtkButton      ::child-displacement-x = 0
 	GtkButton      ::child-displacement-y = 0
-	GtkButton      ::inner-border         = { 8, 26, 3, 3}
+	GtkButton      ::inner-border         = { 8, 26, 2, 2}
 	
     xthickness = 5
     ythickness = 2
@@ -223,6 +415,18 @@ style "calf-toggle"
 	text[SELECTED]		= "#000"
 	text[ACTIVE]		= "#000"
 	text[INSENSITIVE]	= "#666"
+	
+	bg[NORMAL]        = "#DADADA"
+	bg[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	bg[ACTIVE]        = shade (1.4, "#D1D1D1")
+	bg[SELECTED]	  = "#DADADA"
+	bg[INSENSITIVE]   = shade (0.7, "#D1D1D1")
+
+	base[NORMAL]        = "#DADADA"
+	base[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	base[ACTIVE]        = shade (1.4, "#D1D1D1")
+	base[SELECTED]	  = "#DADADA"
+	base[INSENSITIVE]   = shade (0.7, "#D1D1D1")
 	
 	engine "pixmap"
 	{
@@ -279,7 +483,7 @@ style "calf-button-norm"
 {
 	GtkButton      ::child-displacement-x = 0
 	GtkButton      ::child-displacement-y = 0
-	GtkButton      ::inner-border         = { 6, 6, 3, 3}
+	GtkButton      ::inner-border         = { 8, 8, 2, 2}
 	
     xthickness = 5
     ythickness = 2
@@ -295,6 +499,18 @@ style "calf-button-norm"
 	text[SELECTED]		= "#000"
 	text[ACTIVE]		= "#000"
 	text[INSENSITIVE]	= "#666"
+	
+	bg[NORMAL]        = "#DADADA"
+	bg[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	bg[ACTIVE]        = shade (1.4, "#D1D1D1")
+	bg[SELECTED]	  = "#DADADA"
+	bg[INSENSITIVE]   = shade (0.7, "#D1D1D1")
+
+	base[NORMAL]        = "#DADADA"
+	base[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	base[ACTIVE]        = shade (1.4, "#D1D1D1")
+	base[SELECTED]	  = "#DADADA"
+	base[INSENSITIVE]   = shade (0.7, "#D1D1D1")
 	
 	engine "pixmap"
 	{
@@ -359,13 +575,25 @@ style "calf-combobox"
 	text[ACTIVE]		= "#000"
 	text[INSENSITIVE]	= "#666"
 	
+	bg[NORMAL]        = "#DADADA"
+	bg[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	bg[ACTIVE]        = shade (1.4, "#D1D1D1")
+	bg[SELECTED]	  = "#DADADA"
+	bg[INSENSITIVE]   = shade (0.7, "#D1D1D1")
+
+	base[NORMAL]        = "#DADADA"
+	base[PRELIGHT]      = shade (1.4, "#D1D1D1")
+	base[ACTIVE]        = shade (1.4, "#D1D1D1")
+	base[SELECTED]	  = "#DADADA"
+	base[INSENSITIVE]   = shade (0.7, "#D1D1D1")
+	
 	GtkButton      ::child-displacement-x = 0
 	GtkButton      ::child-displacement-y = 0
-	GtkButton      ::default-border       = { 6, 24, 5, 5 }
-	GtkButton      ::inner-border         = { 6, 25, 3, 3}
+#	GtkButton      ::default-border       = { 6, 24, 5, 5 }
+	GtkButton      ::inner-border         = { 8, 29, 1, 1}
 	
     xthickness = 5
-    ythickness = 3
+    ythickness = 2
 	
 	engine "pixmap"
 	{
@@ -406,41 +634,13 @@ style "calf-combobox"
 			border			= {8, 24, 6, 6}
 			stretch			= TRUE
 		}
-		image
-		{
-			function		= TAB
-			state			= INSENSITIVE
-			recolorable		= FALSE
-			overlay_file		= "led_inactive.png"
-			overlay_stretch		= FALSE
-		}
-		image
-		{
-			function		= TAB
-			recolorable		= FALSE
-			state			= NORMAL
-			overlay_file		= "led_normal.png"
-			overlay_border		= { 3, 3, 2, 2 }
-			overlay_stretch		= FALSE
-		}
-		image
-		{
-			function		= TAB
-			recolorable		= FALSE
-			state			= ACTIVE
-			overlay_file		= "led_prelight.png"
-			overlay_border		= { 3, 3, 2, 2 }
-			overlay_stretch		= FALSE
-		}
-		image
-		{
-			function		= TAB
-			recolorable		= FALSE
-			state			= PRELIGHT
-			overlay_file		= "led_prelight.png"
-			overlay_border		= { 3, 3, 2, 2 }
-			overlay_stretch		= FALSE
-		}
+#		image
+#		{
+#			function		= ARROW
+#			recolorable		= FALSE
+#			overlay_file		= "null.png"
+#			overlay_stretch		= FALSE
+#		}
 		image
 		{
 			function		= VLINE
@@ -493,36 +693,8 @@ style "calf-entry"
 			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"
@@ -532,7 +704,6 @@ style "calf-entry"
 		image
   		{
 			function        = FLAT_BOX
-			recolorable     = TRUE
 			state           = NORMAL
     		detail          = "entry_bg"
 			file            = "entry.png"
@@ -751,35 +922,29 @@ style "calf-menu-separator" = "menu"
 
 ### H/V SCALES ###
 
-style "calf-scale"
+style "calf-scale-small" = "calf-default"
 {
-	GtkVScale::slider_length 			= 46
-	GtkVScale::slider_width 			= 35
-	GtkHScale::slider_length 			= 46
-	GtkHScale::slider_width 			= 35
-	GtkRange::trough_border				= 0
-	
+    GtkVScale::slider_length        	  = 38
+	GtkVScale::slider_width 		  	  = 25
+	GtkHScale::slider_length 			  = 38
+	GtkHScale::slider_width 			  = 25
 	engine "pixmap"
 	{
 		image
 		{
 			function		= BOX
-			recolorable		= FALSE
-			detail			= "trough"
-			file			= "trough-horizontal.png"
-			border			= { 20, 20, 0, 0 }
+			file			= "trough1-horizontal.png"
+			border			= { 14, 14, 0, 0 }
 			stretch			= TRUE
-			orientation		= HORIZONTAL
+			orientation		= HORIZONTAL
 		}
 		image
 		{
 			function		= BOX
-			recolorable		= FALSE
-			detail			= "trough"
-			file			= "trough-vertical.png"
-			border			= { 0, 0, 20, 20 }
+			file			= "trough1-vertical.png"
+			border			= { 0, 0, 14, 14 }
 			stretch			= TRUE
-			orientation		= VERTICAL
+			orientation		= VERTICAL
 		}
 
 		image
@@ -790,7 +955,7 @@ style "calf-scale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz.png"
+			overlay_file		= "slider1-horiz.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
 		}
@@ -802,7 +967,7 @@ style "calf-scale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz-prelight.png"
+			overlay_file		= "slider1-horiz-prelight.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
 		}
@@ -814,116 +979,11 @@ style "calf-scale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz.png"
+			overlay_file		= "slider1-horiz.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
-		}
-		image
-		{
-			function		= SLIDER
-			recolorable		= FALSE
-			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		= FALSE
-			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		= FALSE
-			state			= INSENSITIVE
-			file			= "null.png"
-			border			= { 0, 0, 0, 0 }
-			stretch			= TRUE
-			overlay_file		= "slider-vert.png"
-			overlay_stretch		= FALSE
-			orientation		= VERTICAL
 		}
-	}
-}
-
-style "calf-hscale"
-{
-	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		= FALSE
-			detail			= "trough"
-			file			= "trough-horizontal.png"
-			border			= { 20, 20, 0, 0 }
-			stretch			= TRUE
-			orientation		= HORIZONTAL
-		}
-		image
-		{
-			function		= BOX
-			recolorable		= FALSE
-			detail			= "trough"
-			file			= "trough-vertical.png"
-			border			= { 0, 0, 20, 20 }
-			stretch			= TRUE
-			orientation		= VERTICAL
-		}
-
-		image
-		{
-			function		= SLIDER
-			recolorable		= FALSE
-			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		= FALSE
-			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		= FALSE
-			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
@@ -932,7 +992,7 @@ style "calf-hscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert.png"
+			overlay_file		= "slider1-vert.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
@@ -944,7 +1004,7 @@ style "calf-hscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert-prelight.png"
+			overlay_file		= "slider1-vert-prelight.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
@@ -956,42 +1016,33 @@ style "calf-hscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert.png"
+			overlay_file		= "slider1-vert.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
 	}
 }
 
-style "calf-vscale"
+
+style "calf-scale-big" = "calf-default"
 {
-	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		= FALSE
-			detail			= "trough"
-			file			= "trough-horizontal.png"
+			file			= "trough2-horizontal.png"
 			border			= { 20, 20, 0, 0 }
 			stretch			= TRUE
-			orientation		= HORIZONTAL
+			orientation		= HORIZONTAL
 		}
 		image
 		{
 			function		= BOX
-			recolorable		= FALSE
-			detail			= "trough"
-			file			= "trough-vertical.png"
+			file			= "trough2-vertical.png"
 			border			= { 0, 0, 20, 20 }
 			stretch			= TRUE
-			orientation		= VERTICAL
+			orientation		= VERTICAL
 		}
 
 		image
@@ -1002,7 +1053,7 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz.png"
+			overlay_file		= "slider2-horiz.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
 		}
@@ -1014,7 +1065,7 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz-prelight.png"
+			overlay_file		= "slider2-horiz-prelight.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
 		}
@@ -1026,10 +1077,11 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-horiz.png"
+			overlay_file		= "slider2-horiz.png"
 			overlay_stretch		= FALSE
 			orientation		= HORIZONTAL
-		}
+		}
+		
 		image
 		{
 			function		= SLIDER
@@ -1038,7 +1090,7 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert.png"
+			overlay_file		= "slider2-vert.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
@@ -1050,7 +1102,7 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert-prelight.png"
+			overlay_file		= "slider2-vert-prelight.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
@@ -1062,7 +1114,7 @@ style "calf-vscale"
 			file			= "null.png"
 			border			= { 0, 0, 0, 0 }
 			stretch			= TRUE
-			overlay_file		= "slider-vert.png"
+			overlay_file		= "slider2-vert.png"
 			overlay_stretch		= FALSE
 			orientation		= VERTICAL
 		}
@@ -1071,6 +1123,7 @@ style "calf-vscale"
 
 
 
+
 ### SCROLLBAR ###
 
 style "calf-scrollbar"
@@ -1374,6 +1427,15 @@ style "calf-scrollbar"
 #                                    LAYOUT                                    #
 ################################################################################
 
+
+### CONTAINER ###
+
+style "calf-container"
+{
+    xthickness=0
+    ythickness=0
+}
+
 ### NOTEBOOK ###
 
 style "calf-notebook"
@@ -1546,11 +1608,11 @@ style "calf-frame"
 {
 	xthickness = 8
 	ythickness = 8
-	bg[NORMAL] = "#fff"
-#	engine "clearlooks" 
-#	{
-#		radius = 7.0
-#	}
+	bg[NORMAL] = "#ddd"
+	engine "clearlooks" 
+	{
+		radius = 7.0
+	}
 }
 
 style "calf-frame-title"
@@ -1569,11 +1631,11 @@ style "calf-frame-title"
 
 style "calf-progressbar"
 {
-	xthickness = 1
-	ythickness = 1
-	bg[NORMAL] = "#000"
-	bg[SELECTED] = "#0af"
-	fg[PRELIGHT] = "#000"
+#	xthickness = 1
+#	ythickness = 1
+#	bg[NORMAL] = "#000"
+#	bg[SELECTED] = "#0af"
+#	fg[PRELIGHT] = "#000"
 
 #	engine "clearlooks"
 #	{
@@ -1609,73 +1671,80 @@ style "calf-tooltips" = "calf-wider"
 ################################################################################
 
 # Theme default style is applied to every widget
-widget "*Calf*GtkWidget"    					style "calf-default"
+widget "*Calf*"    					style : theme "calf-default"
 
 # Rack
-widget "*Calf-Rack*"    					            style "calf-rack"
+widget "*Calf-Rack*"    					            style : theme "calf-rack"
+
+# Labels
+widget "*Calf-Label"    					            style : theme "calf-label"
+
+# Values
+widget "*Calf-Value"    					            style : theme "calf-label"
 
 # Menus
-widget_class "*Calf*<GtkMenuBar>*"           		style "calf-menubar"
-widget "*Calf-Menu*"    								style "calf-menu"
-widget_class "*Calf*<GtkMenuShell>*"              		style "calf-menu"
-widget "*Calf*SeparatorMenuItem*"						style "calf-menu-separator"
-widget_class "*Calf*<GtkMenuItem>*"          		style "calf-menu-item"
+widget_class "*Calf*<GtkMenuBar>*"           		style : rc "calf-menubar"
+widget "*Calf-Menu*"    								style : rc "calf-menu"
+widget_class "*Calf*<GtkMenuShell>*"              		style : rc "calf-menu"
+widget "*Calf*SeparatorMenuItem*"						style : rc "calf-menu-separator"
+widget_class "*Calf*<GtkMenuItem>*"          		style : rc "calf-menu-item"
 
 # Notebook
-widget_class "*<GtkNotebook>"    			style "calf-notebook"
+widget_class "*<GtkNotebook>"    			style : highest "calf-notebook"
 
 # Frame
-widget "*Calf*GtkFrame" 					style "calf-frame"
-widget "*Calf*GtkFrame.GtkLabel" 			style "calf-frame-title"
+widget "*Calf*Frame" 					style : rc "calf-frame"
+widget "*Calf*Frame.GtkLabel" 			style : rc "calf-frame-title"
+
+# Scrolled window
+widget "*Calf-Container" 					style : highest "calf-container"
 
 # Treeview
-widget_class "*Calf*.<GtkTreeView>*"        			style "calf-treeview"
-widget_class "*Calf*.<GtkTreeView>.<GtkButton>*" 		style "calf-treeview-header"
-widget_class "*Calf*.<GtkCTree>.<GtkButton>*"    		style "calf-treeview-header"
-widget_class "*Calf*.<GtkList>.<GtkButton>*"     		style "calf-treeview-header"
-widget_class "*Calf*.<GtkCList>.<GtkButton>*"    		style "calf-treeview-header"
+widget_class "*Calf*.<GtkTreeView>*"        			style : theme "calf-treeview"
+widget_class "*Calf*.<GtkTreeView>.<GtkButton>*" 		style : rc "calf-treeview-header"
+widget_class "*Calf*.<GtkCTree>.<GtkButton>*"    		style : rc "calf-treeview-header"
+widget_class "*Calf*.<GtkList>.<GtkButton>*"     		style : rc "calf-treeview-header"
+widget_class "*Calf*.<GtkCList>.<GtkButton>*"    		style : rc "calf-treeview-header"
 
 # Buttons
-widget "*Calf*Button*"                    style "calf-button"
-widget "*Calf*GtkToggleButton*"                    style "calf-toggle"
-
-widget "*Calf-Button*"      			style "calf-button"
-widget "*Calf-Toggle*"      	style "calf-toggle"
-
-widget "*Calf*GtkLinkButton*"								style "calf-button"
-widget "*Calf*GtkScaleButton*"								style "calf-button"
-widget "*Calf*GtkColorButton*"								style "calf-button"
-widget "*Calf*FileChooserButton*"								style "calf-button"
-widget "*Calf*GtkFontButton*"								style "calf-button"
-
-widget "*Calf-Combobox*"         			style "calf-combobox"
-widget_class "*Calf-Combobox*<GtkComboBoxEntry>*"			style "calf-comboboxentry"
-widget "*Calf*GtkOptionMenu*"						style "calf-combobox"
+widget "*Calf*Button*"                    style : theme "calf-button"
+widget "*Calf*Toggle*"                    style : rc "calf-toggle"
+widget "*Calf-Button"                    style : highest "calf-button"
+widget "*Calf-Toggle"                    style : highest "calf-toggle"
+widget "*Calf*CheckButton"      			style : highest "calf-toggle"
+widget "*Calf*RadioButton"      			style : highest "calf-toggle"
+widget "*Calf*GtkLinkButton*"								style : rc "calf-button"
+widget "*Calf*GtkScaleButton*"								style : rc "calf-button"
+widget "*Calf*GtkColorButton*"								style : rc "calf-button"
+widget "*Calf*FileChooserButton*"								style : rc "calf-button"
+widget "*Calf*GtkFontButton*"								style : rc "calf-button"
+
+widget "*Calf-Combobox*"         			style : theme "calf-combobox"
+widget "*Calf*Combo*"         			style : rc "calf-combobox"
+widget_class "*Calf-Combobox*<GtkComboBoxEntry>*"			style : theme "calf-comboboxentry"
+widget "*Calf*GtkOptionMenu*"						style : theme "calf-combobox"
 
 # Entries
-widget "*Calf-SpinButton"  					style "calf-spinbutton"
-widget "*Calf-Entry*"     					style "calf-entry"
-widget "*Calf*Entry*"     					style "calf-entry"
+widget "*Calf*SpinButton*"  					style : rc "calf-spinbutton"
+widget "*Calf-Entry*"     					style : highest "calf-entry"
+widget "*Calf*Entry*"     					style : highest "calf-entry"
 
 # Miscellaneous
 widget_class "*Calf*<GtkStatusbar>"  			style "calf-statusbar"
 widget_class "*Calf*<GtkProgressBar>"       			style "calf-progressbar"
 
 # Scrollbars/Scales
-widget_class "*Calf*<GtkScale>"       					style "calf-scale"
-widget_class "*Calf*<GtkRange>"       					style "calf-scale"
-widget "*Calf-VScale"      					style "calf-vscale"
-widget "*Calf-HScale"      					style "calf-hscale"
-widget_class "*Calf*<GtkScrollbar>"   					style "calf-scrollbar"
-widget_class "*Calf*<GtkVScrollbar>"  					style "calf-scrollbar"
-widget_class "*Calf*<GtkHScrollbar>"  					style "calf-scrollbar"
+widget "*Calf*Range"       					style : highest "calf-scale-small"
+widget "*Calf*Scale1"       					style : highest "calf-scale-small"
+widget "*Calf*Scale2"       					style : highest "calf-scale-big"
+widget "*Calf*Scrollbar*"   					style : highest "calf-scrollbar"
 
 
 # Increase the x/ythickness in some widgets
-class "GtkToolbar"   					style "calf-default" 
-class "GtkRange"     					style "calf-wide"
-class "GtkFrame"     					style "calf-wide"
-class "GtkSeparator" 					style "calf-wide"
+#class "GtkToolbar"   					style "calf-default" 
+#class "GtkRange"     					style "calf-wide"
+#class "GtkFrame"     					style "calf-wide"
+#class "GtkSeparator" 					style "calf-wide"
 
 
 
diff --git a/gui/frame.png b/gui/frame.png
index ecb7762..4b01f93 100644
Binary files a/gui/frame.png and b/gui/frame.png differ
diff --git a/gui/frame_bottom.png b/gui/frame_bottom.png
index 3a45f28..2fc2900 100644
Binary files a/gui/frame_bottom.png and b/gui/frame_bottom.png differ
diff --git a/gui/frame_bottom_end.png b/gui/frame_bottom_end.png
index 05a30f0..70441bf 100644
Binary files a/gui/frame_bottom_end.png and b/gui/frame_bottom_end.png differ
diff --git a/gui/frame_bottom_start.png b/gui/frame_bottom_start.png
index 6125e18..b790475 100644
Binary files a/gui/frame_bottom_start.png and b/gui/frame_bottom_start.png differ
diff --git a/gui/frame_left.png b/gui/frame_left.png
index 232bc05..35e2d9f 100644
Binary files a/gui/frame_left.png and b/gui/frame_left.png differ
diff --git a/gui/frame_left_end.png b/gui/frame_left_end.png
index 3ed396b..0d902dd 100644
Binary files a/gui/frame_left_end.png and b/gui/frame_left_end.png differ
diff --git a/gui/frame_left_start.png b/gui/frame_left_start.png
index 434a4af..1fd2671 100644
Binary files a/gui/frame_left_start.png and b/gui/frame_left_start.png differ
diff --git a/gui/frame_right.png b/gui/frame_right.png
index 4965ae4..faa7076 100644
Binary files a/gui/frame_right.png and b/gui/frame_right.png differ
diff --git a/gui/frame_right_end.png b/gui/frame_right_end.png
index a95528d..daae632 100644
Binary files a/gui/frame_right_end.png and b/gui/frame_right_end.png differ
diff --git a/gui/frame_right_start.png b/gui/frame_right_start.png
index 6573d5b..72b48bd 100644
Binary files a/gui/frame_right_start.png and b/gui/frame_right_start.png differ
diff --git a/gui/frame_top.png b/gui/frame_top.png
index b0814b5..0e3a893 100644
Binary files a/gui/frame_top.png and b/gui/frame_top.png differ
diff --git a/gui/frame_top_end.png b/gui/frame_top_end.png
index 29694b2..4973c99 100644
Binary files a/gui/frame_top_end.png and b/gui/frame_top_end.png differ
diff --git a/gui/frame_top_start.png b/gui/frame_top_start.png
index ca3e1c2..664a362 100644
Binary files a/gui/frame_top_start.png and b/gui/frame_top_start.png differ
diff --git a/gui/gui-filter.xml b/gui/gui-filter.xml
index fe08f26..bdd3062 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">
-            <line-graph refresh="1" width="360" height="160" param="freq" border="5"/>
+        <frame label="Freq. response" expand-x="1" fill-x="1" attach-x="1" attach-y="0" attach-h="2">
+            <line-graph refresh="1" width="360" height="160" param="freq"/>
         </frame>
     </if>
 </table>
diff --git a/gui/gui-filterclavier.xml b/gui/gui-filterclavier.xml
index f2cb5d2..41db14f 100644
--- a/gui/gui-filterclavier.xml
+++ b/gui/gui-filterclavier.xml
@@ -7,7 +7,7 @@
     <vbox attach-x="0" attach-y="0">
         <vbox border="10">
             <label param="transpose" />
-            <knob param="transpose" type="1" size="4"/>
+            <knob param="transpose" type="1" size="5"/>
             <value param="transpose" />
         </vbox>
         <vbox border="10">
@@ -19,7 +19,7 @@
     <vbox attach-x="2" attach-y="0">
         <vbox border="10">
             <label param="maxres" />
-            <knob param="maxres" size="4" />
+            <knob param="maxres" size="5" />
             <value param="maxres" />
         </vbox>
         <vbox border="10">
diff --git a/gui/gui-monosynth.xml b/gui/gui-monosynth.xml
index 4a88c50..2aaa211 100644
--- a/gui/gui-monosynth.xml
+++ b/gui/gui-monosynth.xml
@@ -176,27 +176,27 @@
             <table cols="5" rows="1" homogeneous="1" fill-x="0" expand-x="0">
               <vbox attach-x="0" attach-y="0">
                 <label param="adsr_a"/>
-                <vscale param="adsr_a" inverted="1"/>
+                <vscale param="adsr_a" inverted="1" size="1"/>
                 <value param="adsr_a" width="4"/>
               </vbox>
               <vbox attach-x="1" attach-y="0">
                 <label param="adsr_d"/>
-                <vscale param="adsr_d" inverted="1"/>
+                <vscale param="adsr_d" inverted="1" size="1"/>
                 <value param="adsr_d" width="4"/>
               </vbox>
               <vbox attach-x="2" attach-y="0">
                 <label param="adsr_s"/>
-                <vscale param="adsr_s" inverted="1"/>
+                <vscale param="adsr_s" inverted="1" size="1"/>
                 <value param="adsr_s"/>
               </vbox>
               <vbox attach-x="3" attach-y="0">
                 <label param="adsr_f"/>
-                <vscale param="adsr_f" inverted="1"/>
+                <vscale param="adsr_f" inverted="1" size="1"/>
                 <value param="adsr_f" width="4"/>
               </vbox>
               <vbox attach-x="4" attach-y="0">
                 <label param="adsr_r"/>
-                <vscale param="adsr_r" inverted="1"/>
+                <vscale param="adsr_r" inverted="1" size="1"/>
                 <value param="adsr_r" width="4"/>
               </vbox>
             </table>
diff --git a/gui/gui-pulsator.xml b/gui/gui-pulsator.xml
index 766bd7a..03e685b 100644
--- a/gui/gui-pulsator.xml
+++ b/gui/gui-pulsator.xml
@@ -44,13 +44,20 @@
             </frame>
             <hbox>
                 <vbox>
+                    <label />
+                    <combo param="mode" expand="0" fill="0" />
+                    <label param="mode" />
+                </vbox>
+                
+                <vbox>
                     <hscale param="offset" />
                     <label param="offset" />
                 </vbox>
+                
                 <vbox>
                     <label />
-                    <combo param="mode" expand="0" fill="0" />
-                    <label param="mode" />
+                    <button param="reset" />
+                    <label />
                 </vbox>
             </hbox>
         </vbox>
diff --git a/gui/gui-sidechaincompressor.xml b/gui/gui-sidechaincompressor.xml
index eb72b55..de78091 100644
--- a/gui/gui-sidechaincompressor.xml
+++ b/gui/gui-sidechaincompressor.xml
@@ -64,7 +64,7 @@
                 <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">
+                        <hbox expand="0" fill-y="0" expand-x="1" fill-x="1" spacing="5">
                             <radio param="stereo_link" value="Average" expand-x="1" fill-x="1"/>
                             <radio param="stereo_link" value="Maximum" expand-x="1" fill-x="1"/>
                         </hbox>
@@ -73,7 +73,7 @@
                 <vbox expand="1" expand-y="0">
                     <label param="detection" expand-y="0" fill-y="0" expand-x="1" fill-x="1"/>
                     <align>
-                        <hbox expand="0" fill-y="0" expand-x="1" fill-x="1" >
+                        <hbox expand="0" fill-y="0" expand-x="1" fill-x="1" spacing="5">
                             <radio param="detection" value="RMS" expand-x="1" fill-x="1"/>
                             <radio param="detection" value="Peak" expand-x="1" fill-x="1"/>
                         </hbox>
@@ -85,14 +85,14 @@
     
     
       <frame label="Compression">
-        <vbox spacing="12">
-            <vbox spacing="8">
-                <label param="compression"/>
-                <vumeter param="compression" mode="2" hold="1.5" attach-w="2" expand="0" fill="0"/>
-            </vbox>
+        <vbox spacing="6">
             <if cond="directlink">
                 <line-graph refresh="1" width="255" height="255" param="compression" square="1" expand="1" fill="1"/>
             </if>
+            <vbox spacing="3">
+                <label param="compression"/>
+                <vumeter param="compression" mode="2" hold="1.5" attach-w="2" expand="0" fill="1"/>
+            </vbox>
         </vbox>
       </frame>
     
@@ -100,14 +100,14 @@
         
         <if cond="directlink">
             <frame label="Sidechain">
-                <vbox spacing="0">
+                <vbox spacing="6">
+                    <line-graph refresh="1" width="235" height="112" param="f1_freq" expand="1" fill="1" />
                     <table rows="2" cols="2" expand="0" fill="0">
                         <label attach-x="0" attach-y="0" param="sc_mode" expand-y="0" fill-y="0" />
-                        <combo attach-x="0" attach-y="1" param="sc_mode" fill-y="0" expand-y="0"/>
+                        <combo attach-x="0" attach-y="1" param="sc_mode" fill-y="1" expand-y="0"/>
                         <label attach-x="1" attach-y="0" param="sc_listen" expand-y="0" fill-y="0" />
                         <toggle attach-x="1" attach-y="1" param="sc_listen" size="2" expand-y="0" fill-y="0"/>
                     </table>
-                    <line-graph refresh="1" width="235" height="100" param="f1_freq" expand="1" fill="1" />
                 </vbox>
             </frame>
         </if>
@@ -119,7 +119,7 @@
                         <led attach-x="1" attach-y="0" param="f1_active" mode="7" fill-x="0" expand-y="0" fill-y="0"/>
                     </table>
                     
-                    <hbox homogeneous="1">
+                    <hbox homogeneous="0">
                         <vbox>
                             <label param="f1_freq" />
                             <knob param="f1_freq" size="2" />
@@ -140,7 +140,7 @@
                         <led attach-x="1" attach-y="0" param="f2_active" mode="7" fill-x="0" expand-y="0" fill-y="0"/>
                     </table>
                     
-                    <hbox homogeneous="1">
+                    <hbox homogeneous="0">
                         <vbox>
                             <label param="f2_freq" />
                             <knob param="f2_freq" size="2" />
diff --git a/gui/led_active.png b/gui/led_active.png
index 77cf8a5..c53e6ad 100644
Binary files a/gui/led_active.png and b/gui/led_active.png differ
diff --git a/gui/led_inactive.png b/gui/led_inactive.png
index c7b6c9b..8079832 100644
Binary files a/gui/led_inactive.png and b/gui/led_inactive.png differ
diff --git a/gui/led_normal.png b/gui/led_normal.png
index 2cd8fca..6e7f07f 100644
Binary files a/gui/led_normal.png and b/gui/led_normal.png differ
diff --git a/gui/led_prelight.png b/gui/led_prelight.png
index ce8f3f4..7685e91 100644
Binary files a/gui/led_prelight.png and b/gui/led_prelight.png differ
diff --git a/gui/rect3155.png b/gui/rect3155.png
new file mode 100644
index 0000000..d840b29
Binary files /dev/null and b/gui/rect3155.png differ
diff --git a/gui/slider-horiz-active.png b/gui/slider-horiz-active.png
deleted file mode 100644
index c85c644..0000000
Binary files a/gui/slider-horiz-active.png and /dev/null differ
diff --git a/gui/slider-vert-active.png b/gui/slider-vert-active.png
deleted file mode 100644
index 0097120..0000000
Binary files a/gui/slider-vert-active.png and /dev/null differ
diff --git a/gui/slider1-horiz-prelight.png b/gui/slider1-horiz-prelight.png
new file mode 100644
index 0000000..822f72e
Binary files /dev/null and b/gui/slider1-horiz-prelight.png differ
diff --git a/gui/slider1-horiz.png b/gui/slider1-horiz.png
new file mode 100644
index 0000000..c6e7d90
Binary files /dev/null and b/gui/slider1-horiz.png differ
diff --git a/gui/slider1-vert-prelight.png b/gui/slider1-vert-prelight.png
new file mode 100644
index 0000000..3eea39b
Binary files /dev/null and b/gui/slider1-vert-prelight.png differ
diff --git a/gui/slider1-vert.png b/gui/slider1-vert.png
new file mode 100644
index 0000000..5cc8267
Binary files /dev/null and b/gui/slider1-vert.png differ
diff --git a/gui/slider-horiz-prelight.png b/gui/slider2-horiz-prelight.png
similarity index 100%
rename from gui/slider-horiz-prelight.png
rename to gui/slider2-horiz-prelight.png
diff --git a/gui/slider-horiz.png b/gui/slider2-horiz.png
similarity index 100%
rename from gui/slider-horiz.png
rename to gui/slider2-horiz.png
diff --git a/gui/slider-vert-prelight.png b/gui/slider2-vert-prelight.png
similarity index 100%
rename from gui/slider-vert-prelight.png
rename to gui/slider2-vert-prelight.png
diff --git a/gui/slider-vert.png b/gui/slider2-vert.png
similarity index 100%
rename from gui/slider-vert.png
rename to gui/slider2-vert.png
diff --git a/gui/trough1-horizontal.png b/gui/trough1-horizontal.png
new file mode 100644
index 0000000..2e1ae56
Binary files /dev/null and b/gui/trough1-horizontal.png differ
diff --git a/gui/trough1-vertical.png b/gui/trough1-vertical.png
new file mode 100644
index 0000000..12a4ccc
Binary files /dev/null and b/gui/trough1-vertical.png differ
diff --git a/gui/trough-horizontal.png b/gui/trough2-horizontal.png
similarity index 100%
rename from gui/trough-horizontal.png
rename to gui/trough2-horizontal.png
diff --git a/gui/trough-vertical.png b/gui/trough2-vertical.png
similarity index 100%
rename from gui/trough-vertical.png
rename to gui/trough2-vertical.png
diff --git a/src/calf/gui.h b/src/calf/gui.h
index 162f568..5a98081 100644
--- a/src/calf/gui.h
+++ b/src/calf/gui.h
@@ -114,6 +114,7 @@ public:
     const char *effect_name;
     plugin_ctl_iface *plugin;
     std::vector<param_control *> params;
+    bool draw_rackmounts;
 
     plugin_gui(plugin_gui_window *_window);
     GtkWidget *create_from_xml(plugin_ctl_iface *_plugin, const char *xml);
diff --git a/src/calf/main_win.h b/src/calf/main_win.h
index 67c71e9..d7e1474 100644
--- a/src/calf/main_win.h
+++ b/src/calf/main_win.h
@@ -67,6 +67,7 @@ namespace calf_plugins {
         std::vector<plugin_ctl_iface *> plugin_queue;
         std::string prefix;
         bool is_closed;
+        bool draw_rackmounts;
         int source_id;
         main_window_owner_iface *owner;
 
diff --git a/src/calf/metadata.h b/src/calf/metadata.h
index a92bb64..da99c74 100644
--- a/src/calf/metadata.h
+++ b/src/calf/metadata.h
@@ -253,7 +253,7 @@ struct pulsator_metadata: public plugin_metadata<pulsator_metadata>
     enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
     enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
            param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR,
-           param_mode, param_freq, param_amount, param_offset, param_mono, param_count };
+           param_mode, param_freq, param_amount, param_offset, param_mono, param_reset, param_count };
     PLUGIN_NAME_ID_LABEL("pulsator", "pulsator", "Pulsator")
 };
 
diff --git a/src/calf/modules.h b/src/calf/modules.h
index d33fe95..ee89067 100644
--- a/src/calf/modules.h
+++ b/src/calf/modules.h
@@ -1103,6 +1103,7 @@ public:
     void set_params(float f, int m, float o, uint32_t sr, float amount = 1.f);
     float get_value();
     void advance(uint32_t count);
+    void set_phase(float ph);
     void activate();
     void deactivate();
     float get_value_from_phase(float ph, float off);
@@ -1117,6 +1118,7 @@ private:
     float meter_inL, meter_inR, meter_outL, meter_outR;
     float offset_old;
     int mode_old;
+    bool clear_reset;
     lfo_audio_module lfoL, lfoR;
 public:
     float *ins[in_count];
@@ -1129,6 +1131,13 @@ public:
     void deactivate();
     void params_changed();
     void set_sample_rate(uint32_t sr);
+    void params_reset()
+    {
+        if (clear_reset) {
+            *params[param_reset] = 0.f;
+            clear_reset = false;
+        }
+    }
     uint32_t process(uint32_t offset, uint32_t numsamples, uint32_t inputs_mask, uint32_t outputs_mask);
     bool get_graph(int index, int subindex, float *data, int points, cairo_iface *context);
     bool get_dot(int index, int subindex, float &x, float &y, int &size, cairo_iface *context);
diff --git a/src/gui.cpp b/src/gui.cpp
index e8e2023..912aa87 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -99,6 +99,7 @@ plugin_gui::plugin_gui(plugin_gui_window *_window)
     param_count = 0;
     container = NULL;
     effect_name = NULL;
+    draw_rackmounts = true;
 }
 
 static void window_destroyed(GtkWidget *window, gpointer data)
@@ -344,43 +345,44 @@ GtkWidget *plugin_gui::create_from_xml(plugin_ctl_iface *_plugin, const char *xm
     
     XML_ParserFree(parser);
     last_status_serial_no = plugin->send_status_updates(this, 0);
-    
-    // decorations
-    // overall background
-    //GtkWidget *bgImg     = gtk_image_new_from_file(PKGLIBDIR "/background.png");
-    //gtk_widget_set_size_request(GTK_WIDGET(bgImg), 1, 1);
-    
-    // images for left side
-    GtkWidget *nwImg     = gtk_image_new_from_file(PKGLIBDIR "/side_nw.png");
-    GtkWidget *swImg     = gtk_image_new_from_file(PKGLIBDIR "/side_sw.png");
-    GtkWidget *wImg      = gtk_image_new_from_file(PKGLIBDIR "/side_w.png");
-    gtk_widget_set_size_request(GTK_WIDGET(wImg), 56, 1);
-    
-    // images for right side
-    GtkWidget *neImg     = gtk_image_new_from_file(PKGLIBDIR "/side_ne.png");
-    GtkWidget *seImg     = gtk_image_new_from_file(PKGLIBDIR "/side_se.png");
-    GtkWidget *eImg      = gtk_image_new_from_file(PKGLIBDIR "/side_e.png");
-    GtkWidget *logoImg   = gtk_image_new_from_file(PKGLIBDIR "/side_e_logo.png");
-    gtk_widget_set_size_request(GTK_WIDGET(eImg), 56, 1);
-    
-    // pack left box
-    GtkWidget *leftBox = gtk_vbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(nwImg), FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(wImg), TRUE, TRUE, 0);
-    gtk_box_pack_end(GTK_BOX(leftBox), GTK_WIDGET(swImg), FALSE, FALSE, 0);
-    
-     // pack right box
-    GtkWidget *rightBox = gtk_vbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(neImg), FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(eImg), TRUE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(logoImg), FALSE, FALSE, 0);
-    gtk_box_pack_end(GTK_BOX(rightBox), GTK_WIDGET(seImg), FALSE, FALSE, 0);
-    
     GtkWidget *decoTable = gtk_table_new(3, 1, FALSE);
     
-    //gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(bgImg),     0, 2, 0, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
-    gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(leftBox),   0, 1, 0, 1, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-    gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(rightBox),  2, 3, 0, 1, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
+    if(draw_rackmounts) {
+        // decorations
+        // overall background
+        //GtkWidget *bgImg     = gtk_image_new_from_file(PKGLIBDIR "/background.png");
+        //gtk_widget_set_size_request(GTK_WIDGET(bgImg), 1, 1);
+    
+        // images for left side
+        GtkWidget *nwImg     = gtk_image_new_from_file(PKGLIBDIR "/side_nw.png");
+        GtkWidget *swImg     = gtk_image_new_from_file(PKGLIBDIR "/side_sw.png");
+        GtkWidget *wImg      = gtk_image_new_from_file(PKGLIBDIR "/side_w.png");
+        gtk_widget_set_size_request(GTK_WIDGET(wImg), 56, 1);
+        
+        // images for right side
+        GtkWidget *neImg     = gtk_image_new_from_file(PKGLIBDIR "/side_ne.png");
+        GtkWidget *seImg     = gtk_image_new_from_file(PKGLIBDIR "/side_se.png");
+        GtkWidget *eImg      = gtk_image_new_from_file(PKGLIBDIR "/side_e.png");
+        GtkWidget *logoImg   = gtk_image_new_from_file(PKGLIBDIR "/side_e_logo.png");
+        gtk_widget_set_size_request(GTK_WIDGET(eImg), 56, 1);
+        
+        // pack left box
+        GtkWidget *leftBox = gtk_vbox_new(FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(nwImg), FALSE, FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(wImg), TRUE, TRUE, 0);
+        gtk_box_pack_end(GTK_BOX(leftBox), GTK_WIDGET(swImg), FALSE, FALSE, 0);
+        
+         // pack right box
+        GtkWidget *rightBox = gtk_vbox_new(FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(neImg), FALSE, FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(eImg), TRUE, TRUE, 0);
+        gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(logoImg), FALSE, FALSE, 0);
+        gtk_box_pack_end(GTK_BOX(rightBox), GTK_WIDGET(seImg), FALSE, FALSE, 0);
+        
+        //gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(bgImg),     0, 2, 0, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
+        gtk_table_attach(GTK_TABLE(decoTable), GTK_WIDGET(leftBox),   0, 1, 0, 1, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
+        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);
     
     // create window with viewport
diff --git a/src/gui_controls.cpp b/src/gui_controls.cpp
index f583d3b..eab1fa9 100644
--- a/src/gui_controls.cpp
+++ b/src/gui_controls.cpp
@@ -149,12 +149,19 @@ GtkWidget *hscale_param_control::create(plugin_gui *_gui, int _param_no)
     widget = gtk_hscale_new_with_range (0, 1, get_props().get_increment());
     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);
     }
-    gtk_widget_set_name(GTK_WIDGET(widget), "Calf-HScale");
+    int size = get_int("size", 2);
+    if(size < 1)
+        size = 1;
+    if(size > 2)
+        size = 2;
+    char *name = g_strdup_printf("Calf-HScale%i", size);
+    gtk_widget_set_name(GTK_WIDGET(widget), name);
+    gtk_widget_set_size_request (widget, size * 100, -1);
+    g_free(name);
     return widget;
 }
 
@@ -211,12 +218,19 @@ GtkWidget *vscale_param_control::create(plugin_gui *_gui, int _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);
     }
-    gtk_widget_set_name(GTK_WIDGET(widget), "Calf-VScale");
+    int size = get_int("size", 2);
+    if(size < 1)
+        size = 1;
+    if(size > 2)
+        size = 2;
+    char *name = g_strdup_printf("Calf-VScale%i", size);
+    gtk_widget_set_size_request (widget, -1, size * 100);
+    gtk_widget_set_name(GTK_WIDGET(widget), name);
+    g_free(name);
     return widget;
 }
 
diff --git a/src/main_win.cpp b/src/main_win.cpp
index e804555..6541612 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -59,6 +59,7 @@ main_window::main_window()
     toplevel = NULL;
     owner = NULL;
     is_closed = true;
+    draw_rackmounts = true;
 }
 
 void main_window::add_plugin(plugin_ctl_iface *plugin)
@@ -196,33 +197,35 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
     g_object_get(G_OBJECT(strips_table), "n-rows", &row, "n-columns", &cols, NULL);
     gtk_table_resize(GTK_TABLE(strips_table), row + 4, cols);
     
-    // images for left side
-    GtkWidget *nwImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_nw.png");
-    GtkWidget *swImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_sw.png");
-    GtkWidget *wImg      = gtk_image_new_from_file(PKGLIBDIR "/side_d_w.png");
-    gtk_widget_set_size_request(GTK_WIDGET(wImg), 56, 1);
-    
-    // images for right side
-    GtkWidget *neImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_ne.png");
-    GtkWidget *seImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_se.png");
-    GtkWidget *eImg      = gtk_image_new_from_file(PKGLIBDIR "/side_d_e.png");
-    gtk_widget_set_size_request(GTK_WIDGET(eImg), 56, 1);
-    
-    // pack left box
-    GtkWidget *leftBox = gtk_vbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(nwImg), FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(wImg), TRUE, TRUE, 0);
-    gtk_box_pack_end(GTK_BOX(leftBox), GTK_WIDGET(swImg), FALSE, FALSE, 0);
-    gtk_table_attach(GTK_TABLE(strips_table), leftBox, 0, 1, row, row + 4, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-    gtk_widget_show_all(GTK_WIDGET(leftBox));
-    
-     // pack right box
-    GtkWidget *rightBox = gtk_vbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(neImg), FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(eImg), TRUE, TRUE, 0);
-    gtk_box_pack_end(GTK_BOX(rightBox), GTK_WIDGET(seImg), FALSE, FALSE, 0);
-    gtk_table_attach(GTK_TABLE(strips_table), rightBox, 5, 6, row, row + 4, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
-    gtk_widget_show_all(GTK_WIDGET(rightBox));
+    if(draw_rackmounts) {
+        // images for left side
+        GtkWidget *nwImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_nw.png");
+        GtkWidget *swImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_sw.png");
+        GtkWidget *wImg      = gtk_image_new_from_file(PKGLIBDIR "/side_d_w.png");
+        gtk_widget_set_size_request(GTK_WIDGET(wImg), 56, 1);
+        
+        // images for right side
+        GtkWidget *neImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_ne.png");
+        GtkWidget *seImg     = gtk_image_new_from_file(PKGLIBDIR "/side_d_se.png");
+        GtkWidget *eImg      = gtk_image_new_from_file(PKGLIBDIR "/side_d_e.png");
+        gtk_widget_set_size_request(GTK_WIDGET(eImg), 56, 1);
+        
+        // pack left box
+        GtkWidget *leftBox = gtk_vbox_new(FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(nwImg), FALSE, FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(leftBox), GTK_WIDGET(wImg), TRUE, TRUE, 0);
+        gtk_box_pack_end(GTK_BOX(leftBox), GTK_WIDGET(swImg), FALSE, FALSE, 0);
+        gtk_table_attach(GTK_TABLE(strips_table), leftBox, 0, 1, row, row + 4, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
+        gtk_widget_show_all(GTK_WIDGET(leftBox));
+        
+         // pack right box
+        GtkWidget *rightBox = gtk_vbox_new(FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(neImg), FALSE, FALSE, 0);
+        gtk_box_pack_start(GTK_BOX(rightBox), GTK_WIDGET(eImg), TRUE, TRUE, 0);
+        gtk_box_pack_end(GTK_BOX(rightBox), GTK_WIDGET(seImg), FALSE, FALSE, 0);
+        gtk_table_attach(GTK_TABLE(strips_table), rightBox, 5, 6, row, row + 4, (GtkAttachOptions)(0), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
+        gtk_widget_show_all(GTK_WIDGET(rightBox));
+    }
     
     // top light
     GtkWidget *topImg     = gtk_image_new_from_file(PKGLIBDIR "/light_top.png");
@@ -243,6 +246,7 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
     // open button
     GtkWidget *label = gtk_toggle_button_new_with_label("Show");
     strip->button = label;
+    gtk_widget_set_size_request(GTK_WIDGET(label), 110, -1);
     gtk_signal_connect(GTK_OBJECT(label), "toggled", G_CALLBACK(gui_button_pressed), 
         (plugin_ctl_iface *)strip);
     gtk_widget_show(strip->button);
@@ -250,6 +254,7 @@ main_window::plugin_strip *main_window::create_strip(plugin_ctl_iface *plugin)
     // delete buton
     GtkWidget *extra = gtk_button_new_with_label("Remove");
     strip->extra = extra;
+    gtk_widget_set_size_request(GTK_WIDGET(extra), 110, -1);
     gtk_signal_connect(GTK_OBJECT(extra), "clicked", G_CALLBACK(extra_button_pressed), 
         (plugin_ctl_iface *)strip);
     gtk_widget_show(strip->extra);
diff --git a/src/modules.cpp b/src/modules.cpp
index 9f82d1b..b9bc039 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -510,6 +510,7 @@ CALF_PORT_PROPS(pulsator) = {
     { 1,           0,           1,     0,  PF_FLOAT | PF_SCALE_PERC, NULL, "amount", "Modulation" },
     { 0.5,         0,           1,     0,  PF_FLOAT | PF_SCALE_PERC, NULL, "offset", "Offset L/R" },
     { 0,           0,           1,     0,  PF_BOOL | PF_CTL_TOGGLE, NULL, "mono", "Mono-in" },
+    { 0,           0,           1,     2,  PF_BOOL | PF_CTL_BUTTON , NULL, "reset", "Reset" },
 };
 
 CALF_PLUGIN_INFO(pulsator) = { 0x8514, "Pulsator", "Calf Pulsator", "Markus Schmidt", calf_plugins::calf_copyright_info, "ModulationPlugin" };
diff --git a/src/modules_dsp.cpp b/src/modules_dsp.cpp
index dbdcc3d..d7afa93 100644
--- a/src/modules_dsp.cpp
+++ b/src/modules_dsp.cpp
@@ -2152,6 +2152,14 @@ void lfo_audio_module::advance(uint32_t count)
         phase = fmod(phase, 1.f);
 }
 
+void lfo_audio_module::set_phase(float ph)
+{
+    //set the phase from outsinde
+    phase = fabs(ph);
+    if (phase >= 1.0)
+        phase = fmod(phase, 1.f);
+}
+
 void lfo_audio_module::set_params(float f, int m, float o, uint32_t sr, float a)
 {
     // freq: a value in Hz
@@ -2226,6 +2234,12 @@ void pulsator_audio_module::params_changed()
 {
     lfoL.set_params(*params[param_freq], *params[param_mode], 0.f, srate, *params[param_amount]);
     lfoR.set_params(*params[param_freq], *params[param_mode], *params[param_offset], srate, *params[param_amount]);
+    clear_reset = false;
+    if (*params[param_reset] >= 0.5) {
+        clear_reset = true;
+        lfoL.set_phase(0.f);
+        lfoR.set_phase(0.f);
+    }
 }
 
 void pulsator_audio_module::set_sample_rate(uint32_t sr)
diff --git a/src/preset_gui.cpp b/src/preset_gui.cpp
index 44cf740..3ac8e48 100644
--- a/src/preset_gui.cpp
+++ b/src/preset_gui.cpp
@@ -49,6 +49,7 @@ void calf_plugins::store_preset(GtkWindow *toplevel, plugin_gui *gui)
     store_preset_xml = glade_xml_new(PKGLIBDIR "/calf.glade", NULL, NULL);
     store_preset_dlg = glade_xml_get_widget(store_preset_xml, "store_preset");
     gtk_signal_connect(GTK_OBJECT(store_preset_dlg), "destroy", G_CALLBACK(store_preset_dlg_destroy), NULL);
+//    gtk_widget_set_name(GTK_WIDGET(store_preset_dlg), "Calf-Preset");
     GtkWidget *preset_name_combo = glade_xml_get_widget(store_preset_xml, "preset_name");    
     GtkTreeModel *model = GTK_TREE_MODEL(gtk_list_store_new(1, G_TYPE_STRING));
     gtk_combo_box_set_model(GTK_COMBO_BOX(preset_name_combo), model);

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list