# Ubuntu Human-Murrine color scheme
# @see https://wiki.ubuntu.com/Artwork/Documentation/Murrine
#
# Kenneth Wimer <kwwii~ubuntu~com>
# Conn O'Griofa <connogriofa~gmail~com>
#
# Feel free to modify and share!
# Creative Commons Attribution Share-Alike 3.0+
# https://packages.ubuntu.com/human-theme

gtk_color_scheme = "base_color:#FFFFFF\nfg_color:#000000\ntooltip_fg_color:#000000\nselected_bg_color:#86ABD9\nselected_fg_color:#FFFFFF\ntext_color:#1A1A1A\nbg_color:#EDECEB\ntooltip_bg_color:#F5F5B5\nlink_color:#0000EE\nvisited_link_color:#551A8B"

gtk-icon-sizes = "panel-menu=24,24:gtk-button=16,16"

style "murrine-default"
{
	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         = 14
	GtkRange       ::stepper-size         = 14
	GtkScale       ::slider-length        = 20
	GtkScale       ::trough-side-details  = 1
	GtkScrollbar   ::min-slider-length    = 30
	GtkMenuBar     ::internal-padding     = 0
	GtkExpander    ::expander-size        = 16
	GtkToolbar     ::internal-padding     = 1
	GtkTreeView    ::expander-size        = 14
	GtkTreeView    ::vertical-separator   = 0
	GtkTreeView    ::horizontal-separator = 2
	GtkMenu        ::horizontal-padding   = 0
	GtkMenu        ::vertical-padding     = 0

	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]      = shade (0.65, @bg_color)
	base[SELECTED]    = shade (1.05, @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           = FALSE # FALSE = disabled, TRUE = enabled
		colorize_scrollbar  = TRUE  # FALSE = disabled, TRUE = enabled
		contrast            = 0.9   # 0.8 for less contrast, more than 1.0 for more contrast on borders
		focus_color         = shade (1.05, @selected_bg_color)
		glazestyle          = 0     # 0 = flat, 1 = curved, 2 = concave, 3 = top-curved, 4 = beryl
		glow_shade          = 1.15  # sets glow amount for buttons or widgets
		glowstyle           = 4     # 0 = top, 1 = bottom, 2 = top and bottom, 3 = center (vertical), 4 = center (horizontal)
		gradient_shades     = {1.02,1.01,0.96,0.95} # default: {1.1,1.0,1.0,1.1}
		highlight_shade     = 1.0   # set highlight amount for buttons or widgets
		lightborder_shade   = 0.95  # 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       = 1     # 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
		progressbarstyle    = 1     # 0 = no stripes, 1 = diagonal stripes, 2 = vertical stripes
		reliefstyle         = 2     # 0 = flat, 1 = inset, 2 = shadow
		rgba                = FALSE # 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
		#scrollbar_color    = shade (0.9, @bg_color)
		sliderstyle         = 0     # 0 = nothing added, 1 = handles
		stepperstyle        = 1     # 0 = standard, 1 = integrated stepper handles, 2 = unknown
		#profile            = NODOKA # engine profile options: CANDIDO, CLEARLOOKS, MIST, MURRINE, NODOKA
		toolbarstyle        = 2     # 0 = flat, 1 = glassy, 2 = gradient
	}
}

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

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

style "murrine-button" = "murrine-wider"
{
	bg[SELECTED] = shade (1.5, @selected_bg_color) # pre-selected buttons, keep same as focus colour
}

style "murrine-notebook"
{
	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 "murrine-menu" = "murrine-wider"
{
	bg[NORMAL]   = shade (1.05, @bg_color)
	fg[PRELIGHT] = @selected_fg_color
}

style "murrine-menubar"
{
	fg[PRELIGHT] = @selected_fg_color
}

style "murrine-menu-item" = "murrine-wider"
{
	bg[PRELIGHT] = shade (1.02, @selected_bg_color)
	bg[SELECTED] = shade (1.02, @selected_bg_color)

	engine "murrine"
	{
		highlight_shade = 1.03
	}
}

style "murrine-tooltips" = "murrine-wider"
{
	bg[NORMAL] = @tooltip_bg_color
	fg[NORMAL] = @tooltip_fg_color
}

style "murrine-progressbar"
{
	xthickness = 0
	ythickness = 0

	fg[PRELIGHT] = @selected_fg_color

	engine "murrine"
	{
		highlight_shade = 1.05
	}
}

style "murrine-scale"
{
	GtkRange ::slider-width = 13
	engine "murrine"
	{
		highlight_shade = 1.05
	}
}

style "murrine-scrollbar"
{
	engine "murrine"
	{
		highlight_shade = 1.05
	}
	bg[SELECTED] = shade (0.8, @bg_color)
}

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

#########################################
# Matches
#########################################

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

# Increase the x/ythickness in some widgets
class "GtkRange"      style "murrine-wide"
class "GtkFrame"      style "murrine-wide"
class "GtkSeparator"  style "murrine-wide"
class "GtkEntry"      style "murrine-wider"
class "GtkScale"      style "murrine-scale"
class "GtkScrollbar"  style "murrine-scrollbar"

# 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 "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkDrawingArea>"    style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkLayout>"         style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkViewport>"       style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkScrolledWindow>" style "murrine-notebook"

widget_class "*<GtkButton>"                style "murrine-button"
widget_class "*<GtkNotebook>"              style "murrine-notebook"
widget_class "*<GtkMenuBar>*"              style "murrine-menubar"
widget_class "*<GtkMenu>*"                 style "murrine-menu"
widget_class "*<GtkMenuItem>*"             style "murrine-menu-item"
widget_class "*<GtkProgress>"              style "murrine-progressbar"
widget_class "*<GtkProgressBar>"           style "murrine-progressbar"

widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-default"
widget_class "*.<GtkCTree>.<GtkButton>"    style "murrine-default"
widget_class "*.<GtkList>.<GtkButton>"     style "murrine-default"
widget_class "*.<GtkCList>.<GtkButton>"    style "murrine-default"

# Workarounds for Evolution
widget_class "*.ETable.ECanvas"            style "murrine-default"
widget_class "*.ETree.ECanvas"             style "murrine-default"

# The window of the tooltip is called "gtk-tooltip"
widget "gtk-tooltip*" style "murrine-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 "murrine-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 "murrine-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.65, @bg_color)
}
widget_class "*.<GtkComboBox>.<GtkCellView>" style "murrine-combobox-text-color-workaround"

style "murrine-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.65, @bg_color)
}
widget "*.gtk-combobox-popup-menu.*" style "murrine-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 "murrine-fg-is-text-color-workaround"
{
	fg[NORMAL]      = @text_color
	fg[PRELIGHT]    = @text_color
	fg[ACTIVE]      = @selected_fg_color
	fg[SELECTED]    = @selected_fg_color
	fg[INSENSITIVE] = shade (0.65, @bg_color)
}
widget_class "*<GtkListItem>*" style "murrine-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 "murrine-fg-is-text-color-workaround"

style "murrine-evo-new-button-workaround"
{
	engine "murrine"
	{
		toolbarstyle = 0
	}
}
widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "murrine-evo-new-button-workaround"

# ProgressBar min width/height
style "progressbar"
{
	GtkProgressBar::min-horizontal-bar-height = 23
	GtkProgressBar::min-vertical-bar-width    = 23
}
widget_class "*<GtkProgressBar>" style "progressbar"

style "progressbar-text"
{
	GtkProgressBar::yspacing = 0
}
widget_class "*<GtkProgressBar>" style "progressbar-text"

# Expander icon
style "expander" {
	engine "pixmap" {
		image { function = EXPANDER  expander_style = COLLAPSED       direction = LTR  file = "../images/go-right-black.svg" }
		image { function = EXPANDER  expander_style = COLLAPSED       direction = RTL  file = "../images/go-left-black.svg" }
		image { function = EXPANDER  expander_style = SEMI_COLLAPSED  direction = LTR  file = "../images/go-right-black.svg" }
		image { function = EXPANDER  expander_style = SEMI_COLLAPSED  direction = RTL  file = "../images/go-left-black.svg" }
		image { function = EXPANDER  expander_style = SEMI_EXPANDED   file = "../images/go-down-black.svg" }
		image { function = EXPANDER  expander_style = EXPANDED        file = "../images/go-down-black.svg" }
	}
}
class "GtkExpander" style : highest "expander"

# Treeview sort icon
style "treeview-sort" {
	GtkArrow::arrow-scaling = 1.0
	engine "pixmap" {
		image { function = ARROW  arrow_direction = DOWN  overlay_file = "../images/go-down-black.svg"  overlay_stretch = FALSE }
		image { function = ARROW  arrow_direction = UP    overlay_file = "../images/go-up-black.svg"    overlay_stretch = FALSE }
	}
}
widget_class "*<GtkTreeView>*<GtkArrow>" style : highest "treeview-sort"

# Radio/Check width in awf-gtk2 treeview
style "awf-treeview-indicator" {
	GtkTreeView::awf-indicator-width = 24
}
class "GtkTreeView" style "awf-treeview-indicator"
