###############################################
#snow-light
#---------
# A gtk2 theme inspired by visual elements of other GUIs.
# Heavily inspired by the work of many other themers, including (but not
# limited to)
#   
#   - Max Rudberg
#   - roberTO    (Many pixmaps shamefully stolen from his Milk 2.0 theme)
#   - Grand Masta
#   - m5brane	 (Many ideas including this gtkrc file is owed to him)
#   - YattaMax	 (Heavily influenced by his Yattacier 1 theme and several icons shamefully 
#   stolen from that theme.)
#
# Thanks to all of them. There creativity and talent is acknowledged.
#
# The Documentation for this theme is far from finished! Please feel free to
# modify this theme and release it into the wild, but make sure you leave a
# comment like this saying who else has worked on it and who (if anyone)
# inspired you.
##################################################
#   Cleaning up the documentation is encouraged!
#
# To Do
# -------
#
#   :: Better stock icons in a variety of sizes and states. This is, in my opinion, the
#       weakest part of the theme. I'm not so good with the icons :)
#
###############################################

# This sets the size of icons in toolbars and in the panel menus.

gtk-icon-sizes = "gtk-large-toolbar=24,24:panel-menu=20,20:gtk-menu=14,14"

include "icons/iconrc"

#The following is the default style. It contains general settings for the theme that
#should apply to all widgets that aren't explicitly defined elsewhere. At the very end
#of the file we apply this style to the class GtkWidget. If the gtkrc file contains more
#than one rule for how to draw a widget the one that occurs first in the file is used. By
#applying thi style to the GtkWidget class last we're telling gtk to use these settings
#for anything that hasn't been defined yet.

style "snow-light"
{
	GtkScrollbar::has_secondary_backward_stepper	= 0
	GtkScrollbar::has_secondary_forward_stepper 	= 0
	GtkScrollbar::min_slider_length               	= 30

	GtkRange::trough_border                       	= 0
	GtkRange::slider_width                        	= 15
	GtkRange::stepper_size                        	= 15
	
	GtkPaned::handle_size                         	= 6

	GtkVScale::slider_length 			= 16
	GtkVScale::slider_width 			= 19
	
	GtkHScale::slider_length 			= 17
	GtkHScale::slider_width 			= 19
	
	GtkScrolledWindow::shadow_type 			= GTK_SHADOW_OUT
	
	GtkMenuBar::shadow_type 			= GTK_SHADOW_ETCHED_IN
	
	GtkToolbar::shadow_type 			= GTK_SHADOW_OUT
	

#This color of the cursor in entry and text widget in general.

	GtkTextView::cursor_color               	= "#00cccc"
	GtkTextView::cursor_aspect_ratio        	= 0.1

	GtkEntry::cursor_aspect_ratio           	= 0.1
	GtkEntry::cursor_color                  	= "#00cccc"

	GtkWidget::cursor_aspect_ratio          	= 0.1
	GtkWidget::focus_padding          		= 1
	GtkWidget::focus-line-width       		= 1
	GtkWidget::interior_focus         		= 3


		fg[NORMAL]              		= "#000000"
		fg[ACTIVE]              		= "#000000"
		fg[PRELIGHT]            		= "#000000"
		fg[SELECTED]            		= "#ffffff"
		fg[INSENSITIVE]         		= "#747474"

		bg[NORMAL]              		= "#ffffff" 
		bg[ACTIVE]              		= "#ffffff" 
		bg[PRELIGHT]            		= "#ffffff" 
		bg[SELECTED]            		= "#4a5e7d" 
		bg[INSENSITIVE]         		= "#ffffff" 

		base[NORMAL]            		= "#ffffdd" 
		base[ACTIVE]            		= "#d4d4d4"
		base[PRELIGHT]          		= "#2b3045"
		base[INSENSITIVE]       		= "#f0f0f0"
		base[SELECTED]          		= "#3669bd"

		text[NORMAL]            		= "#000000"
		text[ACTIVE]            		= "#000000"
		text[PRELIGHT]          		= "#d8d8d8"
		text[SELECTED]          		= "yellow"
		text[INSENSITIVE]       		= "#4d4d4d"
													
#A semi-transparent hi-light for files selected in Nautilus

	NautilusIconContainer::highlight_alpha		= 160

#This sets the color used for the text under the icons in nautilus when they are not highlighted.

	NautilusIconContainer::dark_info_color		= "#000000"

#This is the color of the text under an icon in Nautilus when it is highlighted.

	NautilusIconContainer::light_info_color		= "#ffffff"

        engine "pixmap"
	{
	
		#This defines how the focus is drawn. Using a transparent image means there is
		#no line around a widget when it is in focus.

		image
		{
			function        = FOCUS
			recolorable     = TRUE
			overlay_file    = "Others/focus.png"
			overlay_border  = { 5, 0, 5, 0 }
			overlay_stretch = TRUE
		}
		
		#The following entry describes how  shadows are drawn. But
		#we don't make use of shadows because we don't like shadows ;-)

		image 
		{
			function	= SHADOW
			recolorable     = TRUE
			shadow		= OUT
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
		}
	
		image
		{
			function	= SHADOW
			recolorable	= TRUE
			shadow		= IN
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
		}

		image 
		{
			function	= SHADOW
			recolorable	= TRUE
			shadow 		= ETCHED_IN
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
		}

		image
		{
			function	= SHADOW
			recolorable	= TRUE
			shadow		= ETCHED_OUT
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
		}

		#How to draw horizontal lines

                image
		{
			function        = HLINE
			recolorable     = TRUE
			file            = "Lines/hline.png"
			border          = { 1, 1, 1, 0 }
			stretch         = TRUE
		}

		#How to draw vertical lines

		image
		{
			function	= VLINE
			recolorable     = TRUE
			file		= "Lines/vline.png"
			border		= { 1, 0, 1, 1 }
			stretch		= TRUE
		}
		
		#The following two entries describe how handles (grippers) are drawn.

                image
		{
			function        = HANDLE
			orientation     = HORIZONTAL
			recolorable     = TRUE
			
			#The background image on boxes with horizontal handles.

			file            = "Others/null.png"
                        border          = { 0, 0, 0, 0 }
			stretch         = TRUE

			#The overlay on horizontal handles.

			overlay_file    = "Handles/vertical_handle.png"
			overlay_border  = { 0, 0, 0, 0 }
			overlay_stretch = FALSE
		}
		
		image
		{
			function	= HANDLE
			orientation	= VERTICAL
			recolorable	= TRUE
			
			#The background image on boxers with vertical handles.

			file		= "Others/null.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE

			#The overlay on vertical handles.
			
			overlay_file 	= "Handles/horizontal_handle.png"
			overlay_border  = { 0, 0, 0, 0 }
			overlay_stretch = FALSE
		}

		#This tells gtk how to draw the base of a handlebox; i.e. the bin that the
		#buttons sit in.
                
		image
		{
			function        = BOX
			recolorable     = TRUE
			detail          = "handlebox_bin"
			file            = "Bgs/plain_background.png"
			border          = { 0, 0, 0, 0 }
			stretch         = TRUE
		}
	}
}



#####################################################
#Buttons
#####################################################

style "button"
{
	GtkButton::default_border 	= { 0, 0, 0, 0 }

	#This adds a little extra horizontal thickness to the buttons. I've added this so
	#the label on a button has a little room on either side.

	xthickness= 2
	ythickness= 1

	engine "pixmap"
	{
		image
		{
			function        = BOX
			recolorable     = TRUE
			state           = NORMAL
			detail          = "buttondefault"
			shadow          = IN
			file            = "Buttons/button_round.png"
			border          = { 15, 15, 12, 12 }
			stretch         = TRUE
		}

		image
		{
			function        = BOX
			recolorable     = TRUE
			state           = NORMAL
			shadow          = OUT
			file            = "Buttons/button_round.png"
			border          = { 9, 9, 10, 10 }
			stretch         = TRUE
		}

		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= NORMAL
			shadow		= IN
			file		= "Buttons/button_round.png"
			border		= { 9, 9, 10, 10 }
			stretch		= TRUE
		}
		
		image
		{
			function        = BOX
			recolorable     = TRUE
			state           = PRELIGHT
			shadow          = IN
			file            = "Buttons/button_round_blue.png"
			border          = { 9, 9, 10, 10 }
			stretch         = TRUE
		}
		
		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= PRELIGHT
			shadow		= OUT
			file		= "Buttons/button_round_blue.png"
			border		= { 9, 9, 10, 10 }
		}
				
		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= INSENSITIVE
			shadow		= IN
			file		= "Buttons/button_round_insens.png"
			border		= { 9, 9, 9, 9 }
			stretch		= TRUE
		}
		
		image
		{
			function        = BOX
			recolorable     = TRUE
			state           = INSENSITIVE
			shadow          = OUT
			file            = "Buttons/button_round_insens.png"
			border          = { 9, 9, 10, 10 }
			stretch         = TRUE
		}
		
		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= ACTIVE
			shadow		= IN
			file		= "Buttons/button_round_blue.png"
			border		= { 9, 9, 10, 10 }
			stretch		= TRUE
		}

		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= ACTIVE
			shadow		= OUT
			file		= "Buttons/button_round_blue.png"
			border		= { 9, 9, 10, 10 }
			stretch		= TRUE
		}

		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= SELECTED
			shadow		= OUT
			file		= "Buttons/button_round_blue.png"
			border		= { 9, 9, 10, 10 }
			stretch		= TRUE
		}

		image
		{
			function	= BOX
			recolorable	= TRUE
			state		= SELECTED
			shadow		= IN
			file		= "Buttons/button_round_blue.png"
			border		= { 9, 9, 10, 10 }
			stretch		= TRUE
		}	
	}
}

class "GtkButton" style "button"



################################################
# Paned Widgets: Windows divided into two or more sections, which can be
# resized by dragging handles.
################################################

style "snow-light-paned" = "snow-light"
{

#This section describes how panes are drawn. Panes are windows that are separated
#into two parts by a horizontal or vertical divider. The instructions set here over-ride
#the instructions set above for how to draw handles.

	#This defines the thickness of the bar that divides the window.

	GtkPaned::handle_size = 8

	engine "pixmap"
	{
		
		# The handle on horizontal dividers

		image
		{
			function 	= HANDLE
			recolorable 	= TRUE
			file            = "Bgs/plain_background.png"
			border          = { 0, 0, 0, 0 }
			stretch         = TRUE
			overlay_file 	= "Handles/horizontal_paned_handle.png"
			overlay_border 	= { 0, 0, 0, 0 }
			overlay_stretch = FALSE
			orientation 	= HORIZONTAL
		}

		# The handle on vertical dividers

		image
		{
			function 	= HANDLE
			recolorable 	= TRUE
			file            = "Bgs/plain_background.png"
			border          = { 0, 0, 0, 0 }
			stretch         = TRUE
			overlay_file 	= "Handles/vertical_paned_handle.png"
			overlay_border 	= { 0, 0, 0, 0 }
			overlay_stretch = FALSE
			orientation 	= VERTICAL
		}
	}
}

class "Gtk*Paned" style "snow-light-paned"

################################################
# Toolbars drawn by gtk 
################################################

style "snow-light-toolbar"="snow-light"
{

	engine "pixmap"
	{
		
		# This tells gtk how to draw the toolbar

		image
		{
			function = BOX
			recolorable = TRUE
			shadow = OUT
			file = "Bgs/plain_background.png"
			border = { 0, 0, 0, 0 }
			stretch = TRUE
		}
	}
}

widget_class "GtkToolBar" style "snow-light-toolbar"
class "*Tool*" style "snow-light-toolbar"



###############################################
# Menus
###############################################

style "snow-light-menu" 
{
	engine "pixmap"
	{
		image 
		{
			function        = BOX
			recolorable     = TRUE
			file            = "Bgs/plain_background.png"
			border          = { 0, 0, 0, 0 }
			stretch         = TRUE
		}

		image 
		{
			function        = HLINE
			recolorable     = TRUE
			file            = "Lines/hline.png"
			border          = { 1, 1, 1, 0 }
			stretch         = TRUE
		}
	}
}

class "GtkMenu" style "snow-light-menu"



###############################################
#  Menu Items
###############################################

style "MenuItem"
{

	#This sets the thickness of a buffer between the side of the menu
	#and where the mouse-over image (set below) is drawn. The side of
	#the menu is defined by the border set in the menu style above. 
	
	xthickness = 2
	ythickness = 2

	engine "pixmap" 
	{

		#This image is used to draw the highlight on a menu entry when it is
		#moused over.
		
		image 
		{
			function        = BOX
			recolorable     = TRUE
			file            = "Menus/menu_hi-light.png"
			border          = { 1, 1, 1, 1 }
			stretch         = TRUE
		}
		
		image 
		{
			function        = HLINE
			recolorable     = TRUE
			file            = "Lines/hline.png"
			border          = { 1, 1, 1, 0 }
			stretch         = TRUE
		}
	}
}

widget_class "*.GtkMenuItem.*" style "MenuItem"
class "GtkMenuItem" style "MenuItem"



###############################################
# Styles and Controls for Option Menus
###############################################

style "OptionMenu" 
{
	engine "pixmap" 
       	{
       		image 
		{
			function        = BOX
			recolorable     = TRUE
			file            = "Menus/OptionMenu.png"
			border          = { 12, 20, 10, 10 }
			stretch         = TRUE
		}
		
		image 
		{
			function        = TAB
			recolorable     = TRUE
			overlay_file    = "Menubar/menubar_option_arrow.png"
			overlay_stretch = FALSE
		}
		
		image 
		{
			function        = TAB
			recolorable     = TRUE
			state           = INSENSITIVE
			overlay_file    = "Menubar/menubar_option_arrow_insensitive.png"
			overlay_stretch = FALSE
		}    
	}
}

class "GtkOptionMenu" style "OptionMenu"


#####################################################
#Notebook: How to draw the tabs, spacings, and backgrounds for notebooks.
#####################################################

style "notebook"
{

	ythickness	= 2
	
	engine "pixmap" 
	{
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			state		= ACTIVE
			file		= "Tabs/extension-inactive.png"
			border		= { 10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= BOTTOM
	        }
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			state		= ACTIVE
			file		= "Tabs/extension-inactive.png"
			border		= {  10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= TOP
		}
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			state		= ACTIVE
			file		= "Tabs/extension-inactive.png"
			border		= {  10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= LEFT
		}
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			state		= ACTIVE
			file		= "Tabs/extension-inactive.png"
			border		= { 10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= RIGHT
		}	
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			file		= "Tabs/extension-active.png"
			border		= { 10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side 	= BOTTOM
		}
		
		image 
		{	
			function	= EXTENSION
			recolorable	= TRUE
			file		= "Tabs/extension-active.png"
			border		= { 10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= TOP
		}
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			file		= "Tabs/extension-active.png"
			border		= {  10, 10 ,10, 10 }
			stretch		= TRUE
			gap_side	= RIGHT
		}
		
		image 
		{
			function	= EXTENSION
			recolorable	= TRUE
			file		= "Tabs/extension-active.png"
			border		= {  10, 10, 10, 10 }
			stretch		= TRUE
			gap_side	= LEFT
		}
				
		# How to draw boxes with a gap on one side (ie the page of a notebook)
				
		image 
		{
			function	= BOX_GAP
			recolorable	= TRUE
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
			gap_file	= "Others/null.png"
			gap_border     	= { 0, 0, 0, 0 }
			gap_start_file	= "Others/null.png"
			gap_start_border= { 0, 0, 0, 0 }
			gap_end_file	= "Others/null.png"
			gap_end_border	= { 0, 0, 0, 0 }
			gap_side	= TOP
		}
		
		image 
		{
			function	= BOX_GAP
			recolorable	= TRUE
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
			gap_file	= "Others/null.png"
			gap_border	= { 0, 0, 0, 0 }
			gap_start_file	= "Others/null.png"
			gap_start_border= { 0, 0, 0, 0 }
			gap_end_file	= "Others/null.png"
			gap_end_border	= { 0, 0, 0, 0 }
			gap_side	= BOTTOM
		}
		
		image 
		{
			function	= BOX_GAP
			recolorable	= TRUE
			file		= "Bgs/plain_background.png"
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
			gap_file	= "Others/null.png"
			gap_border	= { 0, 0, 0, 0 }
			gap_start_file	= "Others/null.png"
			gap_start_border= { 0, 0, 0, 0 }
			gap_end_file	= "Others/null.png"
			gap_end_border	= { 0, 0, 0, 0 }
			gap_side	= LEFT
		}
		
		image 
		{
			function	= BOX_GAP
			recolorable	= TRUE
			file		= "Bgs/plain_background.png" 
			border		= { 0, 0, 0, 0 }
			stretch		= TRUE
			gap_file	= "Others/null.png"
			gap_border	= { 0, 0, 0, 0 }
			gap_start_file	= "Others/null.png"
			gap_start_border= { 0, 0, 0, 0 }
			gap_end_file	= "Others/null.png"
			gap_end_border	= { 0, 0, 0, 0 }
			gap_side	= RIGHT
		}

	 	#For drawing notebook pages when they are not attached to a tab. When does
	        #this happen ?

		image
		{
			function        = BOX
			file 		= "Others/null.png"
			border 		= { 0, 0, 0, 0 }
			stretch 	= TRUE
			gap_side        = TOP
		}
	}
}

class "GtkNotebook" style "notebook"



#####################################################
#     Text Entries
#####################################################


style "entry" 
{

	base[NORMAL]     		= "#FFFFDD" #"#39374B"
  	base[ACTIVE]     		= "#d4d4d4"
  	base[PRELIGHT]   		= "#2B3045"
  	base[INSENSITIVE]		= "#f0f0f0"
	base[SELECTED]   		= "#3669bd"
  	
	text[NORMAL]			= "#000000"#"#d8d8d8" 	
	text[ACTIVE]			= "#000000" 	
	text[PRELIGHT] 			= "#d8d8d8" 	
	text[SELECTED] 			= "yellow" 	
	text[INSENSITIVE]		= "#4D4D4D"
	
	engine "pixmap" 
  	{
		image 
      		{
			function        = FLAT_BOX
			recolorable     = TRUE
			state           = SELECTED
        		detail          = "entry_bg"
			file            = "Others/out_sel.png"
			border		= { 1,1,8,8 }
			stretch         = TRUE
      		}
	}
}

class "GtkEntry" style "entry"



###############################################
# Gtk Lists, like the Rhythmbox playlist or Nautilus Listview
###############################################
style "list-header"
{
	ythickness = 0

	engine "pixmap" 
	{

		#This image is used to draw the headers of columns in list views when they are
		#not selected.
    	
		image
      		{
        		function        = BOX
			recolorable     = TRUE
			shadow          = OUT
			file            = "Listheaders/list_header.png"
			border          = { 1,1,1,1 }
			stretch         = TRUE
      		}

		#This image is used to draw the column headers in list views when they are
		#clicked.
    		
		image
      		{
        		function        = BOX
			recolorable     = TRUE
			shadow          = OUT
			file            = "Menus/menu_hi-light.png"
			border          = { 1, 1, 1, 1 }
			stretch         = TRUE
      		}

		#Does this do anything?
		
		image
      		{
        		function        = BOX
			recolorable     = TRUE
			shadow	    	= OUT
			state		= PRELIGHT
			file            = "Menus/menu_hi-light.png"
			border          = { 1, 1, 1, 1 }
			stretch         = TRUE
      		}
  	}
    	
}

widget_class "*List" style "list-header"
widget_class "*Tree*" style "list-header"
widget_class "GtkCList" style "list-header"



style "scrollbar"
{
	engine "pixmap" 
  	{
		image 
    		{
      			function	= BOX
      			recolorable	= TRUE
	     		detail		= "trough"
      			file		= "Scrollbars/horizontal-trough.png"
      			border		= { 30, 30, 7, 7 }
      			stretch		= TRUE
      			orientation	= HORIZONTAL
    		}

    		image 
    		{
      			function	= BOX
      			recolorable	= TRUE
      			detail		= "trough"
      			file		= "Scrollbars/vertical-trough.png"
      			border		= { 7, 7, 30, 30 }
      			stretch		= TRUE
      			orientation	= VERTICAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = NORMAL
      			file		= "Scrollbars/scrollbar-horizontal.png" 
      			border		= { 10, 10, 6, 6 }
      			stretch		= TRUE
      			orientation	= HORIZONTAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = PRELIGHT
      			file		= "Scrollbars/scrollbar-horizontal-prelight.png" 
      			border		= { 10, 10, 6, 6 }
      			stretch		= TRUE
      			orientation	= HORIZONTAL
    		}
  
  		image 
    		{
			function	= SLIDER
      			recolorable	= TRUE
      			state           = INSENSITIVE
      			file		= "Scrollbars/scrollbar-horizontal-insensitive.png" 
      			border		= { 10, 10, 6, 6 }
      			stretch		= TRUE
      			orientation	= HORIZONTAL
    		}

#vertical   

 		image 
    		{
			function	= SLIDER
      			recolorable	= TRUE
      			state           = NORMAL
      			file		= "Scrollbars/scrollbar-vertical.png" 
      			border		= { 6, 6, 10, 10 }
      			stretch		= TRUE
      			orientation	= VERTICAL
   		}

    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = PRELIGHT
     	 		file		= "Scrollbars/scrollbar-vertical-prelight.png" 
      			border		= { 6, 6, 10, 10 }
      			stretch		= TRUE
      			orientation	= VERTICAL
    		}
 
 		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = INSENSITIVE
      			file		= "Scrollbars/scrollbar-vertical-insensitive.png" 
      			border		= { 6, 6, 10, 10 }
      			stretch		= TRUE
      			orientation	= VERTICAL
    		}
 
#####  Stepper NORMAL ######################################

 		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= NORMAL
      			file		= "Scrollbars/stepper-up.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= UP
    		}
    		
		image 
    		{
     	 		function	= STEPPER
     			recolorable	= TRUE
      			state		= NORMAL
      			file		= "Scrollbars/stepper-down.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= DOWN
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= NORMAL
      			file		= "Scrollbars/stepper-right.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= RIGHT
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= NORMAL
      			file		= "Scrollbars/stepper-left.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= LEFT
		}

#####  Stepper PRELIGHT ######################################
		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= PRELIGHT
      			file		= "Scrollbars/stepper-up-prelight.png"
     			border		= { 3, 3, 3, 3 }
     			stretch		= TRUE
      			arrow_direction	= UP
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= PRELIGHT
      			file		= "Scrollbars/stepper-down-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= DOWN
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= PRELIGHT
      			file		= "Scrollbars/stepper-right-prelight.png"
     			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= RIGHT
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= PRELIGHT
     			file		= "Scrollbars/stepper-left-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= LEFT
    		}

#####  Stepper PUSH ######################################
		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= ACTIVE
      			file		= "Scrollbars/stepper-up-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= UP
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
      			state		= ACTIVE
      			file		= "Scrollbars/stepper-down-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= DOWN
    		}
    		
		image 
    		{
      			function	= STEPPER
      			recolorable	= TRUE
     			state		= ACTIVE
      			file		= "Scrollbars/stepper-right-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= RIGHT
      		}
       		
		image 
    		{
			function	= STEPPER
      			recolorable	= TRUE
      			state		= ACTIVE
      			file		= "Scrollbars/stepper-left-prelight.png"
      			border		= { 3, 3, 3, 3 }
      			stretch		= TRUE
      			arrow_direction	= LEFT
    		}

	}
}
class "GtkScrollbar" style "scrollbar"



##################################################
#Spin Controls
#---------------
#These are buttons with two arrows that let you set some value by clicking the
#the arrows. The widget might also have a text entry box for setting the value
#directly by typing it in.                 
##################################################

style "spin"
{
	engine "pixmap" 
   	{

	    	#First we set the images for drawing different parts of a text entry that
	    	#might be attached to the widget. This could be done by inheriting from the
	    	#style used for GtkEntry, but we just set everything here explicitly. Still having
	    	#the same problem as with GtkEntry with the white outline if we do not draw
	    	#a shadow with a thick enough border.

	    	image
	    	{
	     		function	= FLAT_BOX
			recolorable	= TRUE
			state		= NORMAL
			detail		= "entry_bg"
			file		= "Others/text_entry.png"
			border          = {6,6,6,6 }
			stretch		= TRUE
	    	}

	    	image
	    	{
	     		function	= FLAT_BOX
			recolorable	= TRUE
			state		= SELECTED
			detail		= "entry_bg"
			file		= "Others/out_sel.png"
			border          = { 1,1,8,8 }
			stretch		= TRUE
	    	}

	    	image
	    	{
	     		function	= FLAT_BOX
			recolorable	= TRUE
			state		= INSENSITIVE
			detail		= "entry_bg"
			file		= "Others/text_entry.png"
			border          = {6,6,6,6 }
			stretch		= TRUE
	    	}

	    	image 
	    	{
	        	function        = SHADOW
			recolorable     = TRUE
			shadow          = IN
			file            = "Others/null.png"
			border          = { 0, 0, 0, 0 }
			stretch         = TRUE
	    	}

	    	#The following two sections define the images used to draw the up and
	    	#down spin buttons in the INSENSITIVE state.
	    	
		image 
	    	{
	        	function        = BOX
			recolorable     = TRUE
			state		= INSENSITIVE
			detail		= "spinbutton_up"
			file            = "Spinbuttons/spin_button_up.png"
			border          = { 7,7,6,0 }
			stretch         = TRUE
	    	}

	    	image 
	    	{
	        	function        = BOX
			recolorable     = TRUE
			state		= INSENSITIVE
			detail		= "spinbutton_down"
			file            = "Spinbuttons/spin_button_down.png"
			border          = { 7,7,0,6 }
			stretch         = TRUE
	    	}

	    	#The following two sections define the images used to draw the up and
	    	#down spin buttons in the PRELIGHT state.
	    	
		image 
	    	{
	        	function        = BOX
			recolorable  	= TRUE
			state		= PRELIGHT
			detail		= "spinbutton_up"
			file            = "Spinbuttons/spin_button_up_prelight.png"
			border          = { 7,7,6,0 }
			stretch         = TRUE
	    	}

	    	image 
	    	{
	        	function        = BOX
			recolorable  	= TRUE
			state		= PRELIGHT
			detail		= "spinbutton_down"
			file            = "Spinbuttons/spin_button_down_prelight.png"
			border          = { 7,7,0,6 }
			stretch         = TRUE
	    	}

	    	#The following two sections define the images used to draw the up and
	    	#down spin buttons in any states that we have not already defined.
	    	
		image 
	    	{
	        	function        = BOX
			recolorable     = TRUE
			detail		= "spinbutton_up"
			file            = "Spinbuttons/spin_button_up_active.png"
			border          = { 7,7,6,0 }
			stretch         = TRUE
	    	}

	    	image 
	    	{
	        	function        = BOX
			recolorable     = TRUE
			detail		= "spinbutton_down"
			file            = "Spinbuttons/spin_button_down_active.png"
			border          = { 7,7,0,6 }
			stretch         = TRUE
	    	}

	    	#The arrows drawn on the spinbuttons are set by the next two
	    	#entries. Different types of arrows can be used for different
	    	#states by setgtk-icon-sizes = "gtk-large-toolbar=24,24:panel-menu=22,22:gtk-menu=14,14"ting images for each state.

	    	image 
	    	{
			function	= ARROW
			recolorable	= TRUE
			overlay_file	= "Spinbuttons/spin_button_up_arrow.png"
			overlay_border	= { 0, 0, 0, 0 }
			overlay_stretch	= FALSE
			arrow_direction	= UP
      	    	}

	    	image 
	    	{
			function	= ARROW
			recolorable	= TRUE
			overlay_file	= "Spinbuttons/spin_button_down_arrow.png"
			overlay_border	= { 0, 0, 0, 0 }
			overlay_stretch	= FALSE
			arrow_direction	= DOWN
      	    	}
	}
}
	
class "GtkSpin*" style "spin"



style "Scales"			
{	
  	engine "pixmap" 
  	{
    		image 
    		{
      			function	= BOX
      			recolorable	= TRUE
      			detail		= "trough"
      			file		= "Sliders/trough-range-horiz.png"
      			border		= { 7, 7, 0, 0 }
      			stretch		= TRUE
      			orientation	= HORIZONTAL
    		}	
    
    		image 
    		{
      			function	= BOX
      			recolorable	= TRUE
      			detail		= "trough"
      			file		= "Sliders/trough-range-vert.png"
      			border		= { 0, 0, 7, 7 }
      			stretch		= TRUE
      			orientation	= VERTICAL
    		}
    			
		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = NORMAL
      			file		= "Sliders/slider.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-h.png"
      			overlay_stretch	= FALSE
      			orientation	= HORIZONTAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
     			state           = PRELIGHT
      			file		= "Sliders/slider.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-h.png"
      			overlay_stretch	= FALSE
      			orientation	= HORIZONTAL
   		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = INSENSITIVE
      			file		= "Sliders/slider.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-h-insens.png"
      			overlay_stretch	= FALSE
      			orientation	= HORIZONTAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = NORMAL
      			file		= "Sliders/slider.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-v.png"
      			overlay_stretch	= FALSE
      			orientation	= VERTICAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
     			state           = PRELIGHT
      			file		= "Sliders/slider-prelight.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-v.png"
      			overlay_stretch	= FALSE
      			orientation	= VERTICAL
    		}
    
    		image 
    		{
      			function	= SLIDER
      			recolorable	= TRUE
      			state           = INSENSITIVE
      			file		= "Sliders/slider.png"
      			border		= { 4, 4, 4, 4 }
      			stretch		= TRUE
      			overlay_file	= "Sliders/thumb-grip-v-insens.png"
      			overlay_stretch	= FALSE
      			orientation	= VERTICAL
    		}
  	}
}
class "GtkScale"  style "Scales"


############################################
# Check Boxes
# --------------
# This section tells GTK how to draw check boxes.
############################################

style "CheckBox" 
{

	engine "pixmap" 
    	{
	
		#This is the image used to draw an unchecked box.
        	
		image 
		{
            		function        = CHECK
            		recolorable     = TRUE
            		shadow          = OUT
            		overlay_file    = "OptionCheck/unchecked_box.png"
            		overlay_stretch = FALSE
        	}

		#This is the image used to draw a selected (checked) box.
        
		image 
		{
            		function        = CHECK
            		recolorable     = TRUE
            		shadow          = IN
            		overlay_file    = "OptionCheck/checked_box.png"
            		overlay_stretch = FALSE
        	}

		#Use this image to draw the highlight when a line with a check box
		#is moused over.
		
		image 
		{
            		function        = FLAT_BOX
            		recolorable     = TRUE
            		file            = "Menus/menu_hi-light.png"
            		border          = { 1, 1, 1, 1 }
        	}
    	}
}

class "GtkCheckButton" style "CheckBox"

############################################
# Radio Buttons 
############################################

style "RadioButton" 
{

	engine "pixmap" 
    	{
		image 
		{
            		function        = OPTION
            		recolorable     = TRUE
            		shadow          = OUT
            		overlay_file    = "OptionCheck/option_out.png"
            		overlay_border  = { 0, 0, 0, 0 }
            		overlay_stretch = FALSE
        	}

        	image 
		{
            		function        = OPTION
            		recolorable     = TRUE
            		shadow          = IN
            		overlay_file    = "OptionCheck/option_in.png"
            		overlay_border  = { 0, 0, 0, 0 }
            		overlay_stretch = FALSE
        	}

		#Use this image to draw the highlight when a line with a radio box
		#is moused over.
		
		image 
		{
            		function        = FLAT_BOX
            		recolorable     = TRUE
            		file            = "Menus/menu_hi-light.png"
            		border          = { 1, 1, 1, 1 }
        	}
    	}
}

class "GtkRadioButton" style "RadioButton"

################################################
# Statusbars Drawn by gtk (info bar on the bottom of the window)
################################################
style "snow-light-GtkStatusbar" = "snow-light"
{
	GtkStatusbar::shadow_type = GTK_SHADOW_NONE

	engine "pixmap" 
     	{

		#This does not seem to be working. It seems that you can tell gtk how
		#to draw the resizing grip in the bottom right corner of the window, which
		#seems to be part of the status bar. Not sure why it is not working.
	    
	    	image
	    	{
	     		function	= RESIZE_GRIP
			recolorable	= TRUE
			#state		= NORMAL
			detail		= "statusbar"
			overlay_file	= "Menus/menu_hi-light.png"
			overlay_border  = {1,1,1,1 }
			overlay_stretch	= FALSE
	    	}
      	}
}

class "GtkStatusbar" style "snow-light-GtkStatusbar"

###########################################
#Progress Bars
###########################################

style "ProgressBar"
{
	#xthickness = 1
	#ythickness = 1
	GtkProgressBar::trough_border = 0

  	engine "pixmap" 
  	{
        	image 
		{
            		function        = BOX
            		recolorable     = TRUE
            		detail          = "bar"
            		file            = "Menus/menu_hi-light.png"
            		border          = { 1, 1, 1, 1}
            		stretch         = TRUE
        	}

        	image 
		{
            		function        = BOX
            		recolorable     = TRUE
            		detail          = "trough"
            		file            = "Scrollbars/trough_2.png"
            		border          = { 1, 1, 1, 1 }
            		stretch         = TRUE
            		orientation     = HORIZONTAL
        	}
    	}
}

class "GtkProgressBar" style "ProgressBar"
class "GtkWidget" style "snow-light"																								     
