# Sorbet
# Ubuntu Desktop Theme
# by: James Schriver <jws141@gmail.com>
# Requires Murrine GTK Engine v0.91.0
          
gtk_color_scheme = "fg_color:#101010\nbg_color:#F6F6F6\nbase_color:#fff\ntext_color:#1A1A1A\nselected_bg_color:#DF5926\nselected_fg_color:#FFFFFF\ntooltip_bg_color:#D6DCE4\ntooltip_fg_color:#222222\ntheme_color_04:#a9a49c\ntheme_color_26:#303334\ntheme_color_27:#706b64"

style "default"
{
	########
	# Style Properties
	########
	GtkScrolledWindow ::scrollbar-spacing = 0
	GtkScrolledWindow ::scrollbar-within-bevel = 0
	
	GtkButton::child-displacement-x = 1
	GtkButton::child-displacement-y = 1
	GtkButton::default-border = { 0, 0, 0, 0 }

	GtkCheckButton::indicator-size = 14

	GtkPaned::handle-size = 6

	GtkRange::trough-border = 2
	GtkRange::slider-width = 13
	GtkRange::stepper-size = 13
   	GtkRange::trough-under-steppers = 1

	GtkScale::slider-length = 18
	GtkScale::trough-side-details = 1

	GtkScrollbar::min-slider-length = 30
	GtkMenuBar::internal-padding = 0
	GtkExpander::expander-size = 15
	GtkToolbar::internal-padding = 1
	GtkTreeView::expander-size = 15
	GtkTreeView::vertical-separator = 0

	GtkMenu::horizontal-padding = 0
	GtkMenu::vertical-padding = 0
#	GtkMenuBar::shadow_type = GTK_SHADOW_NONE
#	GtkToolbar::shadow_type = GTK_SHADOW_NONE

	WnckTasklist::fade-overlay-rect = 0
	# The following line hints to gecko (and possibly other appliations)
	# that the entry should be drawn transparently on the canvas.
	# Without this, gecko will fill in the background of the entry.
	GtkEntry::honors-transparent-bg-hint = 1

	GtkEntry::progress-border = { 2, 2, 2, 2 }

	xthickness = 1
	ythickness = 1

	fg[NORMAL]        = @fg_color
	fg[PRELIGHT]      = @fg_color
	fg[ACTIVE]        = @fg_color
	fg[SELECTED]      = @selected_fg_color
	fg[INSENSITIVE]   = shade (0.65, @bg_color)

	bg[NORMAL]        = @bg_color
	bg[PRELIGHT]      = shade (1.02, @bg_color)
	bg[ACTIVE]        = shade (0.88, @bg_color)
	bg[SELECTED]	  = @selected_bg_color
	bg[INSENSITIVE]   = @bg_color

	base[NORMAL]      = @base_color
	base[PRELIGHT]    = shade (0.95, @bg_color)
	base[ACTIVE]      = @selected_bg_color
	base[SELECTED]    = shade (1.25, @selected_bg_color)
	base[INSENSITIVE] = @bg_color

	text[NORMAL]      = @text_color
	text[PRELIGHT]    = @text_color
	text[ACTIVE]      = @selected_fg_color
	text[SELECTED]    = @selected_fg_color
	text[INSENSITIVE] = shade (0.65, @bg_color)


	engine "murrine" 
	{
		animation           	= TRUE  # FALSE = disabled, TRUE = enabled
		arrowstyle         	= 1
#		border_shades       	= { 1.2, 1.0 } # gradient to draw on border
#		border_colors       	= { "#E6DDD5", "#E6DDD5" } 
		colorize_scrollbar  	= FALSE  # FALSE = disabled, TRUE = enabled
		comboboxstyle       	= 0 # colorize the GtkComboBox below the arrow.
		contrast            	= .85  # 0.8 for less contrast, more than 1.0 for more contrast on borders
#		focus_color         	= @selected_bg_color
		glazestyle          	= 0     # 0 = flat, 1 = curved, 2 = concave, 3 = top-curved, 4 = beryl
		glow_shade          	= 1.20  # sets glow amount for buttons or widgets
		glowstyle           	= 0     # 0 = top, 1 = bottom, 2 = top and bottom, 3 = center (vertical), 4 = center (horizontal) 
		gradient_shades     	= { 1.13, 1.02, 1.00, 1.02 } # default: {1.1,1.0,1.0,1.1}
		highlight_shade     	= 1.0   # set highlight amount for buttons or widgets
		lightborder_shade   	= 1.2   # sets lightborder amount for buttons or widgets
		lightborderstyle    	= 1     # 0 = lightborder on top side, 1 = lightborder on all sides
		listviewheaderstyle 	= 1     # 0 = flat, 1 = glassy, 2 = raised
		listviewstyle      	= 0     # 0 = nothing, 1 = dotted
		menubaritemstyle    	= 1     # 0 = menuitem look, 1 = button look
		menubarstyle        	= 2     # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped
		menuitemstyle       	= 1     # 0 = flat, 1 = glassy, 2 = striped
		menustyle           	= 0     # 0 = no vertical menu stripe, 1 = display vertical menu stripe
		prelight_shade     	= 1.25 #to select the shade level used in the scrollbar's slider, GtkComboBox with comboboxstyle = 1 and in the prelight 										state with gradient_colors.
 		progressbarstyle    	= 0     # 0 = no stripes, 1 = diagonal stripes, 2 = vertical stripes 
		reliefstyle		= 4     # 0 = flat, 1 = inset, 2 = shadow, = 3 for a gradient on shadow, = 4 for a stronger shadow.
		rgba 			= TRUE 	# FALSE = disabled, TRUE = enabled
		roundness          	= 2     # 0 = squared, 1 = old default, more will increase roundness
		scrollbarstyle      	= 0     # 0 = nothing, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal 										stripes, 6 = horizontal stripes and handles
		shadow_shades		= { 0.8, 2.2 }
		sliderstyle         	= 0     # 0 = nothing added, 1 = handles
		spinbuttonstyle     	= 1
		stepperstyle        	= 1     # 0 = standard, 1 = integrated stepper handles, 2 = squared steppers with a rounded slider
#		textstyle	    	= 1
		trough_shades 	    	= {1.1,0.87} # draw gradient on trough of GtkScrollbar and GtkProgressbar
		toolbarstyle		= 1     # 0 = flat, 1 = glassy, 2 = gradient
	}
}

style "wide"
{
	xthickness = 2
	ythickness = 2
}

style "wider" 
{
	xthickness = 3
	ythickness = 3
}

style "button" = "wider"
{
	GtkWidget::focus-line-width = 0
	GtkWidget::focus-padding = 2

	xthickness = 3
	ythickness = 3

	bg[NORMAL] = shade (0.96, @base_color)
	bg[ACTIVE] = mix(0.76, shade (0.92, @bg_color), shade (0.72, @base_color))
	bg[PRELIGHT] = mix(0.93, shade (1.11, @bg_color), shade (1.04, @selected_bg_color))
	bg[SELECTED] = mix(0.46, shade (1.11, @bg_color), shade (1.04, @selected_bg_color))
	bg[INSENSITIVE]	= shade (1.06,@bg_color)

	engine "murrine"
	{
		gradient_shades	= { 1.1, 1.0, 1.0, 0.9 }
		contrast = 1.0
		reliefstyle = 0
		focus_color = shade (1.0, @bg_color)
	}
}

style "entry" {
	xthickness = 3
	ythickness = 3

	bg[SELECTED] = mix (0.4, @selected_bg_color, @base_color)
	fg[SELECTED] = @text_color

	engine "murrine" 
    	{
		focus_color = shade (0.65, @selected_bg_color)
	}
}

style "notebook" 
{
	xthickness = 2
	ythickness = 2

	bg[NORMAL] = shade (1.05, @bg_color)
	bg[ACTIVE] = shade (0.96, @bg_color)

	engine "murrine" 
	{
		gradient_shades = {1.1,1.06,0.92,0.85} # { 1.1, 1.02, 0.97, 0.93 }
	}
}

style "scrollbar"
{
	engine "murrine"
	{
		border_shades = { .8, .8} # draw a gradient on the border
		border_colors = { @bg_color, @bg_color }
		highlight_shade = 1.05
		roundness = 5
	}

	bg[NORMAL] = shade(0.5, @bg_color)
	bg[PRELIGHT] = shade(.6, @bg_color)
	
}

style "hscrollbar"
{
}

style "vscrollbar"
{
}

style "nautilus-location"
{
	bg[NORMAL] = @selected_bg_color
}

style "scale" {
    	bg[SELECTED] = shade (1.0, @selected_bg_color)
	fg[PRELIGHT] = @base_color

	engine "murrine" 
	{
		highlight_shade = 1.02
		roundness = 2
	}
}

style "hscale"
{
}

style "vscale"
{
}

style "progressbar" = "wide" {
	fg[PRELIGHT] = @selected_fg_color

	engine "murrine" 
	{
		glowstyle = 4
		roundness = 1
	}
}

style "treeview-header" = "button" {
	xthickness = 2
	ythickness = 1

	bg[NORMAL] = shade (1.14, @bg_color)
	bg[PRELIGHT] = shade (1.18, @bg_color)
	bg[ACTIVE] = shade (0.85, @bg_color)

  	engine "murrine"
  	{
		roundness = 0
	}
}

style "treeview" {
  	engine "murrine"
  	{
		roundness = 0
	}
}

style "tooltips" 
{
	xthickness = 8
 	ythickness = 4
 
	GtkWidget::new-tooltip-style = 1

 	bg[NORMAL] = @tooltip_bg_color
 	fg[NORMAL] = @tooltip_fg_color
}

style "frame-title"
{
}

style "spinbutton" {
	bg[ACTIVE] = shade (0.85, @bg_color)
}

style "radiocheck" = "default" {
	text[NORMAL] = @selected_fg_color
	text[PRELIGHT] = @selected_fg_color
}

style "metacity-frame"
{
	bg[SELECTED] = mix (0.15, @tooltip_fg_color, @selected_bg_color)
}

style "menu" 
{
	bg[NORMAL] = shade (1.05, @bg_color) 
}

style "menu-item" 
{
	fg[PRELIGHT] = @selected_fg_color  
	bg[SELECTED] = shade (1.25, @selected_bg_color) 
	bg[PRELIGHT] = shade (1.25, @selected_bg_color)

	engine "murrine"
	{
		border_shades = { 1.0, .8} # draw a gradient on the border.
		border_colors = { @selected_bg_color, @selected_bg_color} 
		glowstyle = 0
		gradient_shades	= { 1.1, 1.0, 1.0, 0.9 }
		highlight_shade = 1.0
		lightborder_shade   = 1.20
	}  
}

style "separator-menu-item" {
	xthickness = 1
	ythickness = 0

	GtkSeparatorMenuItem::horizontal-padding = 4

	GtkWidget::wide-separators = 1
	GtkWidget::separator-width = 1
	GtkWidget::separator-height = 7
}

style "menubar" 
{
}

style "toolbar"
{
	engine "murrine"
	{
		contrast = 0.0
		gradient_shades	= { 1.1, 1.0, 1.0, 0.9 }
	}
}

style "panel"  
{
	bg_pixmap[NORMAL] = "/Panels/panel-bg.png"  
  	
	engine "murrine" 
	{
		glazestyle = 0     # 0 = flat highlight, 1 = curved highlight, 2 = concave style, 3 = top curved highlight, 4 = beryl highlight
		gradient_shades = {1.1,1.0,1.0,0.85} 
		highlight_shade = 1.0  
		lightborder_shade = 1.0 
	}
}

###################################################
# Nautilus
###################################################

style "nautilus-sidebar" 
{
	bg[PRELIGHT] = mix(0.30, @bg_color, shade (1.27, @selected_bg_color))

	font_name = "Regular"

        GtkTreeView::even_row_color = @bg_color
  	
	# Make the sep line fade out
  	engine "pixmap"
  	{
      	image
      	{
      		function		= HLINE
     		recolorable		= TRUE
      		file			= "Lines/line-h-faded.png"
      		stretch			= TRUE
     	}
      
      # Make the handle be a vert line in order to better separate nautilus files view
      ## vertical handle
    	image
    	{
    	  	function		= HANDLE
    	  	recolorable		= TRUE
    	  	state          		= NORMAL
       	  	overlay_file		= "Others/null.png"
     	  	overlay_stretch		= FALSE
      	  	orientation		= VERTICAL
    	}
    	image
    	{
    	  	function		= HANDLE
    	  	recolorable		= TRUE
    	  	state          		= PRELIGHT
       	  	overlay_file		= "Others/null.png"
     	  	overlay_stretch		= FALSE
      	  	orientation		= VERTICAL
    	}
      	}
}
style "nautilus-view" = "default"
{
	#xthickness = 8	
}

style "nautilus-sidebar-title"
{
	fg[NORMAL] = mix(0.50, shade (0.63,@bg_color), shade (0.63, @selected_bg_color))
	fg[PRELIGHT] = shade (0.65, @selected_bg_color)
	bg[PRELIGHT] = mix(0.30, @bg_color, shade (1.27, @selected_bg_color))
	
	stock["gtk-close"] = {{ "Others/null.png", *, *, * }} # Get rid of the close icon

	font_name = "semibold"

	GtkExpander::expander_spacing = 0
 	GtkArrow::arrow-scaling = 0.6 # allowed: 0.1 ~ 1.0 (0.6 is an approximation to get 9 by 9 pixels arrow)
  	GtkButton::image-spacing = 0
	GtkButton::inner-border = {0, 0, 4, 0}
	GtkButton::child-displacement-x = 0
	GtkButton::child-displacement-y = 0
	GtkButton::default-border = { 0, 0, 0, 0 }
	
  	xthickness = 2
   	ythickness = 0	
	

	
	engine "pixmap"
	{
		image
		{
		    	function 	= SHADOW
		}
		image
		{
		    	function 	= BUTTON
		    	file 		= "Others/null.png" # 1x1 pixel empty, transparent
		}
            	image
		{
			function 	= ARROW
                	arrow_direction = DOWN
                	border 		= {0,0,0,0}
                	stretch 	= TRUE
                	recolorable 	= TRUE
			file 		= "Others/arrow-d.png" # this should be 9x9 pixels, arrow down
		}
	}
}

style "nautilus-handle"
{
  engine "pixmap"
  {
      # TODO: Make the handle be a vert line in order to better separate nautilus files view
      ## vertical handle
    	image
    	{
    	  	function		= HANDLE
    	  	recolorable		= TRUE
    	  	state         		= NORMAL
       	  	overlay_file		= "Others/null.png"
     	  	overlay_stretch		= FALSE
      	  	orientation		= VERTICAL
    	}
    	image
    	{
    	  	function		= HANDLE
    	  	recolorable		= TRUE
    	  	state         		= PRELIGHT
       	  	overlay_file		= "Others/null.png"
     	  	overlay_stretch		= FALSE
      	  	orientation		= VERTICAL
    	}      
    }
}
#########################################
# Matches
#########################################

# Theme radio buttons and checkmarks
class "GtkRadio*"                   			style "radiocheck"
class "GtkCheck*"					style "radiocheck"

# Theme default style is applied to every widget
class "GtkWidget"    					style "default"

# Increase the x/ythickness in some widgets
class "GtkToolbar"   					style "toolbar" 
class "GtkRange"     					style "wide"
class "GtkFrame"     					style "wide"
class "GtkSeparator" 					style "wide"
class "GtkEntry"     					style "wider"

class "GtkSpinButton"  					style "spinbutton"
class "GtkScale"       					style "scale"
class "GtkVScale"      					style "vscale"
class "GtkHScale"      					style "hscale"
class "GtkScrollbar"   					style "scrollbar"
class "GtkVScrollbar"  					style "vscrollbar"
class "GtkHScrollbar"  					style "hscrollbar"

# General matching following, the order is choosen so that the right styles override each other
# eg. progressbar needs to be more important then the menu match.

# This is not perfect, it could be done better
# (That is modify *every* widget in the notebook, and change those back that
# we really don't want changed)
widget_class "*<GtkNotebook>*<GtkEventBox>"     	style "notebook"
widget_class "*<GtkNotebook>*<GtkDrawingArea>"		style "notebook"
widget_class "*<GtkNotebook>*<GtkLayout>"       	style "notebook"

widget_class "*<GtkButton>"      			style "button"
widget_class "*<GtkNotebook>"    			style "notebook"
#widget_class "*<GtkStatusbar>*"  			style "statusbar"

widget_class "*<GtkComboBoxEntry>*"			style "entry"
widget_class "*<GtkCombo>*"         			style "entry"

widget_class "*<GtkMenuBar>*"           		style "menubar"
widget_class "*<GtkMenu>*"              		style "menu"
widget_class "*<GtkMenuItem>*"          		style "menu-item"
widget_class "*<GtkSeparatorMenuItem>*" 		style "separator-menu-item"

widget_class "*.<GtkFrame>.<GtkLabel>" 			style "frame-title"
widget_class "*.<GtkTreeView>*"        			style "treeview"

widget_class "*<GtkProgressBar>"       			style "progressbar"

# Treeview header
widget_class "*.<GtkTreeView>.<GtkButton>" 		style "treeview-header"
widget_class "*.<GtkCTree>.<GtkButton>"    		style "treeview-header"
widget_class "*.<GtkList>.<GtkButton>"     		style "treeview-header"
widget_class "*.<GtkCList>.<GtkButton>"    		style "treeview-header"

# Workarounds for Evolution
widget_class "*.ETable.ECanvas"    			style "treeview-header"
widget_class "*.ETree.ECanvas"    			style "treeview-header"

############################################
# NAUTILUS
############################################

widget_class "*NautilusSidePane.*"              	style "nautilus-sidebar-title"
widget_class "*Nautilus*Places*Sidebar*"        	style "nautilus-sidebar"
widget_class "*Nautilus*Side*.GtkWidget"        	style "nautilus-sidebar"
widget_class "*Nautilus*Side*Title*"            	style "nautilus-sidebar-title"

# The window of the tooltip is called "gtk-tooltip"
################################
# FIXME:
# This will not work if one embeds eg. a button into the tooltip.
# As far as I can tell right now we will need to rework the theme
# quite a bit to get this working correctly.
# (It will involve setting different priorities, etc.)
################################
widget "gtk-tooltip*" 					style "tooltips"

###################################################
# Special cases and work arounds
###################################################

# Special case the nautilus-extra-view-widget
# ToDo: A more generic approach for all applications that have a widget like this.
widget "*.nautilus-extra-view-widget" 			style : highest "nautilus-location"

# Work around for http://bugzilla.gnome.org/show_bug.cgi?id=382646
# Note that the work around assumes that the combobox is _not_ in
# appears-as-list mode.
# Similar hack also in the menuitem style.
# This style does not affect GtkComboBoxEntry, it does have an effect
# on comboboxes in appears-as-list mode though.
style "combobox-text-color-workaround"
{
	text[NORMAL]      = @fg_color
	text[PRELIGHT]    = @fg_color
	text[ACTIVE]      = @fg_color
	text[SELECTED]    = @selected_fg_color
	text[INSENSITIVE] = shade (0.7, @bg_color)
}
widget_class "*.<GtkComboBox>.<GtkCellView>"		style "combobox-text-color-workaround"

style "menuitem-text-is-fg-color-workaround"
{
	text[NORMAL]        = @fg_color
	text[PRELIGHT]      = @selected_fg_color
	text[ACTIVE]        = @fg_color
	text[SELECTED]      = @selected_fg_color
	text[INSENSITIVE]   = shade (0.7, @bg_color)
}

widget "*.gtk-combobox-popup-menu.*"   			style "menuitem-text-is-fg-color-workaround"

# Work around the usage of GtkLabel inside GtkListItems to display text.
# This breaks because the label is shown on a background that is based on the
# base color set.
style "fg-is-text-color-workaround"
{
	bg[SELECTED]    = mix(0.50, shade (1.05, @selected_bg_color), @tooltip_bg_color)
	fg[NORMAL]      = @text_color
	fg[PRELIGHT]    = @text_color
	fg[ACTIVE]      = @selected_fg_color
	fg[SELECTED]    = @selected_fg_color
	fg[INSENSITIVE] = shade (0.7, @bg_color)
}

widget_class "*<GtkListItem>*" 				style "fg-is-text-color-workaround"

# The same problem also exists for GtkCList and GtkCTree
# Only match GtkCList and not the parent widgets, because that would also change the headers.
widget_class "*<GtkCList>" 				style "fg-is-text-color-workaround"

style "evo-new-button-workaround"
{

	engine "murrine"
	{
		toolbarstyle = 0
	}
}

widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "evo-new-button-workaround"

# Theme panel elements
widget "*PanelWidget*" 					style "panel"
widget "*PanelApplet*" 					style "panel"
widget "*fast-user-switch*"				style "panel" # workaround for Fast User Switch applet
class "PanelApp*" 					style "panel"
class "PanelToplevel*" 					style "panel"
widget_class "*Mail*" 					style "panel"
widget_class "*notif*" 					style "panel"
widget_class "*Notif*" 					style "panel"
widget_class "*Tray*"					style "panel" 
widget_class "*tray*"					style "panel"
widget "*Xfce*Panel*" 					style "panel"
class "*Xfce*Panel*" 					style "panel"
