Reconciled Register Colors

farleykj farleykj at gmail.com
Fri Sep 2 18:23:37 EDT 2016


I've done a lot of tinkering with the gtk stuff for GnuCash, but haven't
found much in the way of help online or elsewhere. One thing you neglected
to include is what your operating system is, since this will likely have a
great deal to do with how flexible things are. I am using Gnucash on OS X,
and had a bit of a time getting things working, most troubles due to a lack
of knowledge about the intricacies of gtk.

For what it's worth, here's my .gtkrc file. Hopefully I will not be chided
for having such a long post. It's not elegant, and might have a bit of stuff
that doesn't really do anything, but I get the effects (for the most part)
that I want. Being "forced" to use "pixmap" commands only really makes
things verbose.

--- < BEGIN GTKRC> ----

#
# GnuCash GTK RC file. Sets the key bindings and appearances of the widgets
and
# other components of the graphical interface.
#
# Since the program seems to be unable to accomodate me in using different
# rendering engines, the "pixmap" engine is the only one used. It's kind of
# clunky, but with a lot of work it looks okay.
#
# Author: Kenneth J. Farley
# Date  : 09 November 2014
#

pixmap_path "/Users/farleyk/Configs/Gnucash/Gold Theme"

#
# Load extra files.
#

#include "/Users/farleyk/Configs/gtkrc-2.0.bindings"

#
# --- [ Default Colors ]
-------------------------------------------------------
#
# The default color scheme is defined by an expression of the form shown
below.
# The terms of the expression are of the form "<color name> : <color value>"
# and are separated by a delimiter. The delimiter between assignments could
be
# ";", or "|", or something of that type, but in this case the delimeter is
# "\n", achieved by "escaping" the <carriage return> at the end of each
line.
#

gtk_color_scheme =
"fg_color:         #000000\
bg_color:          #D8D1BF\
text_color:        #000000\
base_color:        #D8D1BF\
selected_fg_color: #000000\
selected_bg_color: #6666A3\
tooltip_fg_color:  #FFFFFF\
tooltip_bg_color:  #CCCC99"

#
# --- [ General Overall Appearance ]
-------------------------------------------
#
# Global settings that affect the overall look of the interface.
#
# Through a bit of experimentation, the following have been determined, as
to
# the function of the settings in "gtk-icon-sizes".
#
# panel              : ?
# panel-menu         : ?
# gtk-menu           : The small buttons at the top of tabs.
# gtk-button         : Normal buttons in the various interfaces
# gtk-small-toolbar  : Buttoned bar at top of registers
# gtk-large-toolbar  : Toolbar at top of main windows.
# gtk-dialog         : ?
# gtk-dnd            : ?
#

gtk-icon-sizes        =
  "panel              = 32, 32 :
   panel-menu         = 32, 32 :
   gtk-menu           = 16, 16 :
   gtk-button         = 24, 24 :
   gtk-small-toolbar  = 16, 16 :
   gtk-large-toolbar  = 32, 32 :
   gtk-dialog         = 16, 16 :
   gtk-dnd            = 16, 16"
gtk-can-change-accels = 1
gtk-font-name         = "Lucida Grande 12"
gtk-theme-name        = "KJF GnuCash 1.0.0"
gtk-menu-drop-shadow  = 1
gtk-menu-shadow-delay = 100
gtk-toolbar-style     = GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size = GTK_ICON_SIZE_LARGE_TOOLBAR

#
# --- [ Default Appearance ]
---------------------------------------------------
#
# Settings that will be defaults for each of the widgets being defined.
These
# will be suitable for most of the widgets, and will be overridden by
further
# settings for specific styles.
#

style "kjf-default"
{
  xthickness = 2
  ythickness = 2

  GtkButton         ::child-displacement-x       = 0
  GtkButton         ::child-displacement-y       = 0
  GtkButton         ::default-border             = { 2, 2, 2, 2 }
  GtkButton         ::default-spacing            = 8
  GtkButton         ::default-outside-border     = { 2, 2, 2, 2 }
  GtkButton         ::displace-focus             = 0
  GtkButton         ::focus-line-width           = 0
  GtkButton         ::focus-padding              = 0
  GtkButton         ::image-spacing              = 4
  GtkButton         ::inner-border               = { 1, 1, 1, 1 }
  GtkButton         ::interior-focus             = 0

  GtkCheckButton    ::indicator-size             = 16

  GtkContainer      ::border-width               = 0

  GtkDialog         ::action-area-border         = 0
  GtkDialog         ::button-spacing             = 0
  GtkDialog         ::content-area-border        = 0
  GtkDialog         ::content-area-spacing       = 0

  GtkEntry          ::border                     = { 0, 0, 0, 0 }
  GtkEntry          ::honors-transparent_bg-hint = FALSE
  GtkEntry          ::interior-focus             = TRUE
  GtkEntry          ::state-hint                 = FALSE
  GtkEntry          ::has-frame                  = FALSE
  GtkEntry          ::shadow-type                = GTK_SHADOW_NONE
  GtkEntry          ::inner-border               = { 3, 3, 5, 5 }
  GtkEntry          ::cursor-color               = "#000000"
  GtkEntry          ::cursor-aspect-ratio        = 0.2

  GtkExpander       ::expander-size              = 8
  GtkExpander       ::expander-spacing           = 3

  GtkMenu           ::horizontal-padding         = 0
  GtkMenu           ::vertical-padding           = 0

  GtkMenuBar        ::internal-padding           = 0
  GtkMenuBar        ::shadow-type                = GTK_SHADOW_NONE
  GtkMenuBar        ::window-dragging            = 1

  GtkMenuItem       ::selected-shadow-type       = none

  GtkNotebook       ::tab-border                 = 6
  GtkNotebook       ::tab-overlap                = -1
  GtkNotebook       ::border-width               = 2
  GtkNotebook       ::shadow-type                = GTK_SHADOW_NONE

  GtkPaned          ::handle-size                = 2

  GtkProgressBar    ::min-vertical-bar-width     = 20
  GtkProgressBar    ::min-horizontal-bar-height  = 20
  GtkProgressbar    ::outer-border               = { 0, 0, 2, 2 }

  GtkRadioButton    ::indicator-size             = 16

  GtkRange          ::slider-width               = 15
  GtkRange          ::stepper-size               = 15
  GtkRange          ::stepper-spacing            = 0
  GtkRange          ::trough-border              = 0

  GtkScale          ::slider-length              = 14
  GtkScale          ::slider-width               = 14
  GtkScale          ::trough-side-details        = 1

  GtkScrollbar      ::min-slider-length          = 20
  GtkScrollbar      ::has-backward-stepper       = 1
  GtkScrollbar      ::has-forward-stepper        = 1

  GtkScrolledWindow ::scrollbar-spacing          = 0
  GtkScrolledWindow ::scrollbars-within-bevel    = 1

  GtkTreeView       ::allow-rules                = TRUE
  GtkTreeView       ::expander-size              = 15
  GtkTreeView       ::vertical-separator         = 0
  GtkTreeView       ::even-row-color             = shade ( 1.30, "#CCCCCC" )
  GtkTreeView       ::odd-row-color              = shade ( 1.10, "#CCCCCC" )

  GtkWidget         ::focus-line-pattern         = "\10\3"
  GtkWidget         ::focus-line-width           = 0
  GtkWidget         ::focus-padding              = 0
  GtkWidget         ::interior-focus             = 0

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

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

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

  base[NORMAL]      = @base_color
  base[ACTIVE]      = @base_color
  base[PRELIGHT]    = shade ( 1.10, @base_color )
  base[SELECTED]    = @selected_bg_color
  base[INSENSITIVE] = shade ( 0.98, @base_color )
}

#
# --- [ BG General ]
----------------------------------------------------------
#
# Defines a background for the windows of the program, in this case a
gradient
# hue that is stretched.
#

style "kjf-bg-general" = "kjf-default"
{
  xthickness = 0
  ythickness = 0
  engine "pixmap"
  {
    image
    {
      function = FLAT_BOX
      detail   = "base"
      file     = "img-bg-general.png"
      border   = { 8, 8, 8, 8 }
      stretch  = TRUE
    }
  }
}

#
# --- [ Text Region ]
---------------------------------------------------------
#
# A style to apply to text regions, so the background color is different
from
# the surrounding window geometry. A compromise since GTK seems to be in
# opposition to adjusting the visual appearance of text objects, or more
# specifically GtkTextView.
#

style "kjf-text-region" = "kjf-default"
{
  bg[NORMAL]        = "#FFFFFF"
  bg[ACTIVE]        = "#FFFFFF"
  bg[PRELIGHT]      = "#FFFFFF"
  bg[SELECTED]      = @selected_bg_color
  bg[INSENSITIVE]   = shade ( 0.98, @bg_color )

  base[NORMAL]      = "#FFFFFF"
  base[ACTIVE]      = "#FFFFFF"
  base[PRELIGHT]    = "#FFFFFF"
  base[SELECTED]    = @selected_bg_color
  base[INSENSITIVE] = shade ( 0.98, @base_color )
}

#
# --- [ Bar Button ]
----------------------------------------------------------
#
# Button style that is an opaque bar, shaded, with flat ends to the right
and
# left.
#

style "kjf-button-bar" = "kjf-default"
{
  xthickness = 2
  ythickness = 2
  engine "pixmap"
  {
    image
    {
      function    = BOX
      state       = NORMAL
      detail      = "buttondefault"
      shadow      = IN
      file        = "img-button-bar-normal.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = NORMAL
      shadow      = OUT
      file        = "img-button-bar-normal.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = IN
      file        = "img-button-bar-hilite.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = OUT
      file        = "img-button-bar-hilite.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = NORMAL
      shadow      = IN
      file        = "img-button-bar-pressed.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = IN
      file        = "img-button-bar-off.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = OUT
      file        = "img-button-bar-off.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = ACTIVE
      shadow      = IN
      file        = "img-button-bar-pressed.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Glass Button ]
--------------------------------------------------------
#
# Style for a button that is shiny, like glass, with a color that makes it
look
# almost transparent in the overall theme.
#

style "kjf-button-glass" = "kjf-default"
{
  xthickness = 2
  ythickness = 2
  engine "pixmap"
  {
    image
    {
      function    = BOX
      state       = NORMAL
      detail      = "buttondefault"
      shadow      = IN
      file        = "img-button-glass-normal.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = NORMAL
      shadow      = OUT
      file        = "img-button-glass-normal.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = IN
      file        = "img-button-glass-hilite.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = OUT
      file        = "img-button-glass-hilite.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = NORMAL
      shadow      = IN
      file        = "img-button-glass-pressed.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = IN
      file        = "img-button-glass-off.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = OUT
      file        = "img-button-glass-off.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = ACTIVE
      shadow      = IN
      file        = "img-button-glass-pressed.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Entry ]
---------------------------------------------------------------
#
# The default for a data entry field is a flat rectangular box. The entry
# field style defined here will have slightly rounded corners, and edges
that
# are beveled/rounded to give the appearance of having depth.
#

style "kjf-entry"  = "kjf-default"
{
  xthickness = 0
  ythickness = 0
  engine "pixmap"
  {
    image
    {
      function = FLAT_BOX
      state    = INSENSITIVE
      detail   = "entry_bg"
      file     = "img-entry-inactive.png"
      border   = { 4, 4, 0, 0 }
      stretch  = TRUE
    }
    image
    {
      function = FLAT_BOX
      detail   = "entry_bg"
      file     = "img-entry-normal.png"
      border   = { 4, 4, 0, 0 }
      stretch  = TRUE
    }
    image
    {
      function = FOCUS
      detail   = "entry_bg"
      file     = "img-entry-focus.png"
      border   = { 4, 4, 0, 0 }
      stretch  = TRUE
    }
  }
}

#
# --- [ Plain Entry ]
----------------------------------------------------------
#
# A style of text entry for places where a more "decorated" field is not
# appropriate, such as editable fields in a treeview. The field is a
# blank rectangle.
#

style "kjf-plain-entry"  = "kjf-default"
{
  xthickness = 0
  ythickness = 0
  GtkEntry::inner-border = { 1, 1, 1, 1 }
  engine "pixmap"
  {
    image
    {
      function = FLAT_BOX
      state    = INSENSITIVE
      detail   = "entry_bg"
      file     = "img-transparent-block.png"
      border   = { 0, 0, 0, 0 }
      stretch  = TRUE
    }
    image
    {
      function = FLAT_BOX
      detail   = "entry_bg"
      file     = "img-transparent-block.png"
      border   = { 0, 0, 0, 0 }
      stretch  = TRUE
    }
    image
    {
      function = FOCUS
      detail   = "entry_bg"
      file     = "img-transparent-block.png"
      border   = { 0, 0, 0, 0 }
      stretch  = TRUE
    }
  }
}

#
# --- [ Spinner ]
-------------------------------------------------------------
#
# In the hierarchy of GTK graphical elements, GtkSpinButton is a descendant
of
# the GtkEntry object. Therefore, we initialize this style by inheriting the
# "kjf-entry" style. Further definition is made by first removing any
overlay
# definitions for the ARROW entities, then defining button images for the up
# and down buttons.
#

style "kjf-spinner" = "kjf-entry"
{
  xthickness = 0
  ythickness = 0
  engine "pixmap"
  {
    image
    {
      function        = ARROW
    }
    image
    {
      function        = BOX
      state           = NORMAL
      detail          = "spinbutton_up"
      overlay_file    = "img-scroll-step-up-normal.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = BOX
      state           = PRELIGHT
      detail          = "spinbutton_up"
      overlay_file    = "img-scroll-step-up-hilite.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = BOX
      state           = INSENSITIVE
      detail          = "spinbutton_up"
      overlay_file    = "img-scroll-step-up-off.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = BOX
      state           = NORMAL
      detail          = "spinbutton_down"
      overlay_file    = "img-scroll-step-dn-normal.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = BOX
      state           = PRELIGHT
      detail          = "spinbutton_down"
      overlay_file    = "img-scroll-step-dn-hilite.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = BOX
      state           = INSENSITIVE
      detail          = "spinbutton_down"
      overlay_file    = "img-scroll-step-dn-off.png"
      overlay_stretch = TRUE
    }
  }
}

#
# --- [ ScrollBar ]
-----------------------------------------------------------
#
# Defines the appearance of a scrollbar. This component is composed of a few
# parts that are being defined here:
#
# the trough
# This is the area of the screen that the scroll bars traverses. It is
usually
# just a plain rectangle. Here it will be redefined to have a shaded
# background that gives the illusion of a cylindrical surface. There are two
# types of troughs that must be defined, HORIZONTAL and VERTICAL.
#
# stepper buttons
# The buttons on the ends of the scrollbar, which are used to incrementally
# move the bar up or down. They have the states associated with buttons, and
# the corresponding images need to support all these states. There are four
# general types of buttons, UP, DOWN, LEFT, and RIGHT.
#
# the slider
# The actual bar that will be used to scroll. Usually this is a simple
# shaded bar. Here it is redefined to be a glossy fully rounded cylindrical
# bar. Two types of bars are defined, HORIZONTAL and VERTICAL.
#

style "kjf-scrollbar" = "kjf-default"
{
  xthickness = 0
  ythickness = 0
  engine "pixmap"
  {
    image
    {
      function    = BOX
      detail      = "trough"
      file        = "img-scroll-trough-h.png"
      border      = { 4, 4, 4, 4 }
      stretch     = TRUE
      orientation = HORIZONTAL
    }
    image
    {
      function    = BOX
      detail      = "trough"
      file        = "img-scroll-trough-v.png"
      border      = { 4, 4, 4, 4 }
      stretch     = TRUE
      orientation = VERTICAL
    }
    image
    {
      function    = SLIDER
      file        = "img-scroll-bar-h.png"
      border      = { 8, 8, 8, 8 }
      stretch     = TRUE
      orientation = HORIZONTAL
    }
    image
    {
      function    = SLIDER
      file        = "img-scroll-bar-v.png"
      border      = { 8, 8, 8, 8 }
      stretch     = TRUE
      orientation = VERTICAL
    }
    image
    {
      function        = STEPPER
      state           = ACTIVE
      file            = "img-scroll-step-up-normal.png"
      stretch         = TRUE
      arrow_direction = UP
    }
    image
    {
      function        = STEPPER
      state           = PRELIGHT
      file            = "img-scroll-step-up-hilite.png"
      stretch         = TRUE
      arrow_direction = UP
    }
    image
    {
      function        = STEPPER
      state           = NORMAL
      file            = "img-scroll-step-up-normal.png"
      stretch         = TRUE
      arrow_direction = UP
    }
    image
    {
      function        = STEPPER
      state           = INSENSITIVE
      file            = "img-scroll-step-up-off.png"
      stretch         = TRUE
      arrow_direction = UP
    }
    image
    {
      function        = STEPPER
      state           = ACTIVE
      file            = "img-scroll-step-dn-normal.png"
      stretch         = TRUE
      arrow_direction = DOWN
    }
    image
    {
      function        = STEPPER
      state           = PRELIGHT
      file            = "img-scroll-step-dn-hilite.png"
      stretch         = TRUE
      arrow_direction = DOWN
    }
    image
    {
      function        = STEPPER
      state           = NORMAL
      file            = "img-scroll-step-dn-normal.png"
      stretch         = TRUE
      arrow_direction = DOWN
    }
    image
    {
      function        = STEPPER
      state           = INSENSITIVE
      file            = "img-scroll-step-dn-off.png"
      stretch         = TRUE
      arrow_direction = DOWN
    }
    image
    {
      function        = STEPPER
      state           = ACTIVE
      file            = "img-scroll-step-le-normal.png"
      stretch         = TRUE
      arrow_direction = LEFT
    }
    image
    {
      function        = STEPPER
      state           = PRELIGHT
      file            = "img-scroll-step-le-hilite.png"
      stretch         = TRUE
      arrow_direction = LEFT
    }
    image
    {
      function        = STEPPER
      state           = NORMAL
      file            = "img-scroll-step-le-normal.png"
      stretch         = TRUE
      arrow_direction = LEFT
    }
    image
    {
      function        = STEPPER
      state           = INSENSITIVE
      file            = "img-scroll-step-le-off.png"
      stretch         = TRUE
      arrow_direction = LEFT
    }
    image
    {
      function        = STEPPER
      state           = ACTIVE
      file            = "img-scroll-step-ri-normal.png"
      stretch         = TRUE
      arrow_direction = RIGHT
    }
    image
    {
      function        = STEPPER
      state           = PRELIGHT
      file            = "img-scroll-step-ri-hilite.png"
      stretch         = TRUE
      arrow_direction = RIGHT
    }
    image
    {
      function        = STEPPER
      state           = NORMAL
      file            = "img-scroll-step-ri-normal.png"
      stretch         = TRUE
      arrow_direction = RIGHT
    }
    image
    {
      function        = STEPPER
      state           = INSENSITIVE
      file            = "img-scroll-step-ri-off.png"
      stretch         = TRUE
      arrow_direction = RIGHT
    }
  }
}

#
# --- [ Check Buttons ]
-------------------------------------------------------
#
# Images are defined for the various states a check button can be in. The
# button can be on, off, highlighted by a mouse over, and dead.
#

style "kjf-check-button"
{
  xthickness = 0
  ythickness = 0
  bg_pixmap[NORMAL]   = "img-transparent-block.png"
  bg_pixmap[PRELIGHT] = "img-transparent-block.png"
  engine "pixmap"
  {
    image
    {
      function        = CHECK
      state           = NORMAL
      shadow          = OUT
      overlay_file    = "img-button-check-off.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = CHECK
      state           = NORMAL
      shadow          = IN
      overlay_file    = "img-button-check-on.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = CHECK
      state           = ACTIVE
      shadow          = OUT
      overlay_file    = "img-button-check-off.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = CHECK
      state           = ACTIVE
      shadow          = IN
      overlay_file    = "img-button-check-on.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = CHECK
      state           = PRELIGHT
      shadow          = OUT
      overlay_file    = "img-button-check-hilite.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = CHECK
      state           = PRELIGHT
      shadow          = IN
      overlay_file    = "img-button-check-on.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = CHECK
      state           = INSENSITIVE
      shadow          = OUT
      overlay_file    = "img-button-check-inactive.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = CHECK
      state           = INSENSITIVE
      shadow          = IN
      overlay_file    = "img-button-check-inactive.png"
      overlay_stretch = TRUE
    }
  }
}

#
# --- [ Radio Buttons ]
-------------------------------------------------------
#
# Images are defined for the various states a check radio can be in. The
# button can be on, off, highlighted by a mouse over, and dead.
#

style "kjf-radio-button"
{
  xthickness = 0
  ythickness = 0
  engine "pixmap"
  {
    image
    {
      function        = OPTION
      state           = NORMAL
      shadow          = OUT
      overlay_file    = "img-button-radio-off.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = OPTION
      state           = NORMAL
      shadow          = IN
      overlay_file    = "img-button-radio-on.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = OPTION
      state           = ACTIVE
      shadow          = OUT
      overlay_file    = "img-button-radio-off.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = OPTION
      state           = ACTIVE
      shadow          = IN
      overlay_file    = "img-button-radio-on.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = OPTION
      state           = PRELIGHT
      shadow          = OUT
      overlay_file    = "img-button-radio-hilite.png"
      overlay_stretch = TRUE
    }
    image
    {
      function        = OPTION
      state           = PRELIGHT
      shadow          = IN
      overlay_file    = "img-button-radio-on.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = OPTION
      state           = INSENSITIVE
      shadow          = OUT
      overlay_file    = "img-button-radio-inactive.png"
      overlay_stretch = TRUE
     }
    image
    {
      function        = OPTION
      state           = INSENSITIVE
      shadow          = IN
      overlay_file    = "img-button-radio-inactive.png"
      overlay_stretch = TRUE
    }
  }
}

#
# --- [ Toolbar Button ]
-------------------------------------------------------
#
# Button style specifically for buttons that go on a GtkToolbar. The color
# of these buttons is such that they look like glass.
#

style "kjf-button-toolbar" = "kjf-default"
{
  fg[ACTIVE] = "#46CC16"
  engine "pixmap"
  {
    image
    {
      function    = BOX
      state       = NORMAL
      detail      = "buttondefault"
      shadow      = IN
      file        = "img-button-toolbar.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = NORMAL
      shadow      = OUT
      file        = "img-button-toolbar.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = IN
      file        = "img-button-toolbar.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = OUT
      file        = "img-button-toolbar-prelight.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = PRELIGHT
      shadow      = IN
      file        = "img-button-toolbar-prelight.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = ACTIVE
      shadow      = OUT
      file        = "img-button-toolbar-active.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = ACTIVE
      shadow      = IN
      file        = "img-button-toolbar-active.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = OUT
      file        = "img-button-toolbar-insensitive.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
    image
    {
      function    = BOX
      state       = INSENSITIVE
      shadow      = IN
      file        = "img-button-toolbar-insensitive.png"
      border      = { 3, 3, 3, 3 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Progress Bar ]
---------------------------------------------------------
#
# Style for the progress bar, used to show progress on loading data, saving,
# or any other non-instant process.
# The text color is changed so it is visible over the bar.
#

style "kjf-progress" = "kjf-default"
{
  xthickness     = 1
  ythickness     = 1
  fg[ACTIVE]     = "#FFFFFF"
  fg[PRELIGHT]   = "#FFFFFF"
  text[ACTIVE]   = "#FFFFFF"
  text[PRELIGHT] = "#FFFFFF"
  engine "pixmap"
  {
    image
    {
      function    = BOX
      detail      = "bar"
      file        = "img-progress-bar.png"
      border      = { 8, 8, 0, 0 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Tool Bar ]
------------------------------------------------------------
#
# The appearance of the bar that contains the buttons used to enact actions
in
# the different areas of the program.
#

style "kjf-toolbar" = "kjf-default"
{
  xthickness = 1
  ythickness = 3
  engine "pixmap"
  {
    image
    {
      function    = BOX
      state       = NORMAL
      file        = "img-toolbar.png"
      border      = { 0, 0, 0, 0 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Menu Bar ]
------------------------------------------------------------
#
# Defines the appearance of the bar that generally contains the buttons
# used to enact the main actions of the program.
#

style "kjf-menubar" = "kjf-default"
{
  xthickness = 1
  ythickness = 3
  engine "pixmap"
  {
    image
    {
      function    = BOX
      file        = "img-bar-normal.png"
      border      = { 2, 2, 0, 0 }
      stretch     = TRUE
    }
  }
}

#
# --- [ Notebook ]
------------------------------------------------------------
#
# Defines the images that will be used for the tabs and other graphical
parts
# of a notebook. Adds rounded borders and colors to the setup.
#

style "kjf-notebook" = "kjf-default"
{
  xthickness = 4
  ythickness = 2
  engine "pixmap"
  {
    image
    {
      function   = EXTENSION
      state      = ACTIVE
      file       = "img-tab-top-off.png"
      border     = { 6, 6, 6, 0 }
      stretch    = TRUE
      gap_side   = BOTTOM
    }
    image
    {
      function   = EXTENSION
      file       = "img-tab-top-on.png"
      border     = { 6, 6, 6, 0 }
      stretch    = TRUE
      gap_side   = BOTTOM
    }
    image
    {
      function   = EXTENSION
      state      = ACTIVE
      file       = "img-tab-bot-off.png"
      border     = { 6, 6, 0, 6 }
      stretch    = TRUE
      gap_side   = TOP
    }
    image
    {
      function   = EXTENSION
      file       = "img-tab-bot-on.png"
      border     = { 6, 6, 0, 6 }
      stretch    = TRUE
      gap_side   = TOP
    }
    image
    {
      function   = EXTENSION
      state      = ACTIVE
      file       = "img-tab-right-off.png"
      border     = { 0, 6, 6, 6 }
      stretch    = TRUE
      gap_side   = LEFT
    }
    image
    {
      function   = EXTENSION
      file       = "img-tab-right-on.png"
      border     = { 0, 6, 6, 6 }
      stretch    = TRUE
      gap_side   = LEFT
    }
    image
    {
      function   = EXTENSION
      state      = ACTIVE
      file       = "img-tab-left-off.png"
      border     = { 6, 0, 6, 6 }
      stretch    = TRUE
      gap_side   = RIGHT
    }
    image
    {
      function   = EXTENSION
      file       = "img-tab-left-on.png"
      border     = { 6, 0, 6, 6 }
      stretch    = TRUE
      gap_side   = RIGHT
    }
    image
    {
      function         = BOX_GAP
      file             = "img-notebook-bot.png"
      border           = { 4, 4, 4, 4 }
      stretch          = TRUE
      gap_file         = "img-tab-gap-h.png"
      gap_border       = { 3, 3, 0, 0 }
      gap_start_file   = "img-tab-gap-top-l.png"
      gap_start_border = { 3, 0, 0, 0 }
      gap_end_file     = "img-tab-gap-top-r.png"
      gap_end_border   = { 0, 3, 0, 0 }
      gap_side         = TOP
    }
    image
    {
      function         = BOX_GAP
      file             = "img-notebook-top.png"
      border           = { 4, 4, 4, 4 }
      stretch          = TRUE
      gap_file         = "img-tab-gap-h.png"
      gap_border       = { 3, 3, 0, 0 }
      gap_start_file   = "img-tab-gap-bot-l.png"
      gap_start_border = { 3, 0, 0, 0 }
      gap_end_file     = "img-tab-gap-bot-r.png"
      gap_end_border   = { 0, 3, 0, 0 }
      gap_side         = BOTTOM
    }
    image
    {
      function         = BOX_GAP
      file             = "img-notebook-right.png"
      border           = { 4, 4, 4, 4 }
      stretch          = TRUE
      gap_file         = "img-tab-gap-v.png"
      gap_border       = { 0, 0, 3, 3 }
      gap_start_file   = "img-tab-gap-left-t.png"
      gap_start_border = { 0, 0, 3, 0 }
      gap_end_file     = "img-tab-gap-left-b.png"
      gap_end_border   = { 0, 0, 0, 3 }
      gap_side         = LEFT
    }
    image
    {
      function         = BOX_GAP
      file             = "img-notebook-left.png"
      border           = { 4, 4, 4, 4 }
      stretch          = TRUE
      gap_file         = "img-tab-gap-v.png"
      gap_border       = { 0, 0, 3, 3 }
      gap_start_file   = "img-tab-gap-right-t.png"
      gap_start_border = { 0, 0, 3, 0 }
      gap_end_file     = "img-tab-gap-right-b.png"
      gap_end_border   = { 0, 0, 0, 3 }
      gap_side         = RIGHT
    }
    image
    {
      function         = BOX
      file             = "img-notebook.png"
      border           = { 4, 4, 4, 4 }
      stretch          = TRUE
      gap_side         = TOP
    }
  }
}

#
# --- [ Tooltips ]
-------------------------------------------------------------
#
# A style to be applied to the pop-up text that gives a bit of info about
# buttons and other pertinent components of the interface. The amount of
# formatting that can be done for these things is very limited.
#

style "kjf-tooltips"
{
  xthickness        = 8
  ythickness        = 4
  fg[NORMAL]        = "#FFFFFF"
  engine "pixmap"
  {
    image
    {
      function         = FLAT_BOX
      detail           = "tooltip"
      file             = "img-blue-transparent.png"
      border           = { 4, 4, 0, 0 }
      stretch          = TRUE
    }
  }
}

#
# --- [ GnuCash Specific Styles ]
----------------------------------------------
#
# These styles are specific to the Widgets used in the GnuCash program.
Mostly
# just colors and fonts.
#

style "gnc-register"
{
  font_name = "Chalkboard 12"
}

style "gnc-register-header"
{
  base[NORMAL]   = "#DBCEB4"
}

style "gnc-register-prime"
{
  base[NORMAL]   = "#D1E0E0"
  base[SELECTED] = "#91B0C1"
}

style "gnc-register-second"
{
  base[NORMAL]   = "#EEEEEE"
  base[SELECTED] = "#C3C3C3"
}

style "gnc-register-split"
{
  base[NORMAL]   = "#FFFFFF"
  base[SELECTED] = "#D1D1E0"
}

#
# --- [ Assign Appearances to Widgets ]
----------------------------------------
#

class        "GtkWidget"                            style "kjf-default"
class        "GtkWindow"                            style "kjf-bg-general"
class        "GtkButton"                            style "kjf-button-glass"
class        "GtkToggleButton"                      style "kjf-button-glass"
class        "GtkEntry"                             style "kjf-entry"
class        "GtkComboBoxEntry"                     style "kjf-entry"
class        "GtkIconView"                          style "kjf-entry"
class        "GtkTextView"                          style "kjf-text-region"
class        "GtkSpinButton"                        style "kjf-spinner"
class        "GtkScrollbar"                         style "kjf-scrollbar"
class        "GtkCheckButton"                       style "kjf-check-button"
class        "GtkRadioButton"                       style "kjf-radio-button"
class        "GtkProgressBar"                       style "kjf-progress"
class        "*Toolbar*"                            style "kjf-toolbar"
class        "*Menubar*"                            style "kjf-menubar"
class        "GtkNotebook"                          style "kjf-notebook"
class        "GtkMenu"                              style "kjf-bg-general"
class        "GtkTreeView"                          style "kjf-default"
widget_class "*TreeView*.*Button*"                  style "kjf-button-bar"
widget_class "*GtkEntry*"                           style "kjf-entry"
#widget_class "*GtkTextView*"                        style "kjf-text-region"
widget_class "*Scrollbar*"                          style "kjf-scrollbar"
widget_class "*.GtkProgressBar*"                    style "kjf-progress"
widget_class "*Toolbar*"                            style "kjf-toolbar"
widget_class "*Toolbar*.*Button*"                   style
"kjf-button-toolbar"
widget_class "*Menubar*"                            style "kjf-menubar"
widget_class "*TreeView*Entry"                      style "kjf-plain-entry"
widget       "Price*Dialog.*Button"                 style "kjf-button-glass"
widget       "Price*Dialog.*button"                 style "kjf-button-glass"
widget       "Price Dialog.*.GNCDateEdit.GtkEntry"  style "kjf-entry"
widget       "Prices Dialog.*.price_tree"           style "kjf-default"
widget       "Commodities Dialog.*.commodity_tree"  style "kjf-default"
widget       "*.GnucashSheet"                       style "gnc-register"
widget       "GncMainWindow.*.header_color"         style
"gnc-register-header"
widget       "GncMainWindow.*.primary_color"        style
"gnc-register-prime"
widget       "GncMainWindow.*.secondary_color"      style
"gnc-register-second"
widget       "GncMainWindow.*.split_color"          style
"gnc-register-split"
widget       "gtk-tooltip*"                         style "kjf-tooltips"

#
# --- [ Icons ]
---------------------------------------------------------------
#
# Define alternative icons for the buttons and other graphical areas of the
# program.
#

style "kjf-icons-set"
{
  stock [ "gnc-account"      ] =
  {
    { "Icons/icon-acct-small.png", *, *, "gtk-menu" },
    { "Icons/icon-acct-prelight.png", *, PRELIGHT },
    { "Icons/icon-acct-active.png", *, ACTIVE },
    { "Icons/icon-acct.png" }
  }
  stock [ "gnc-delete-account" ] =
  {
    { "Icons/icon-acct-delete-prelight.png", *, PRELIGHT },
    { "Icons/icon-acct-delete-active.png", *, ACTIVE },
    { "Icons/icon-acct-delete.png" }
  }
  stock [ "gnc-edit-account"   ] =
  {
    { "Icons/icon-acct-edit-prelight.png", *, PRELIGHT },
    { "Icons/icon-acct-edit-active.png", *, ACTIVE },
    { "Icons/icon-acct-edit.png" }
  }
  stock [ "gnc-new-account"    ] =
  {
    { "Icons/icon-acct-new-prelight.png", *, PRELIGHT },
    { "Icons/icon-acct-new-active.png", *, ACTIVE },
    { "Icons/icon-acct-new.png" }
  }
  stock [ "gnc-open-account"   ] =
  {
    { "Icons/icon-acct-open-prelight.png", *, PRELIGHT },
    { "Icons/icon-acct-open-active.png", *, ACTIVE },
    { "Icons/icon-acct-open.png" }
  }
  stock [ "gnc-pdf-export"     ] =
  {
    { "Icons/icon-pdf-export-prelight.png", *, PRELIGHT },
    { "Icons/icon-pdf-export-active.png", *, ACTIVE },
    { "Icons/icon-pdf-export.png" }
  }
  stock [ "gnc-schedule-new"   ] =
  {
    { "Icons/icon-schedule-prelight.png", *, PRELIGHT },
    { "Icons/icon-schedule-active.png", *, ACTIVE },
    { "Icons/icon-schedule.png" }
  }
  stock [ "gnc-transfer"       ] =
  {
    { "Icons/icon-transfer-prelight.png", *, PRELIGHT },
    { "Icons/icon-transfer-active.png", *, ACTIVE },
    { "Icons/icon-transfer.png" }
  }
  stock [ "gtk-add"            ] =
  {
    { "Icons/icon-add-prelight.png", *, PRELIGHT },
    { "Icons/icon-add-active.png", *, ACTIVE },
    { "Icons/icon-add.png" }
  }
  stock [ "gtk-cancel"         ] =
  {
    { "Icons/icon-cancel-prelight.png", *, PRELIGHT },
    { "Icons/icon-cancel-active.png", *, ACTIVE },
    { "Icons/icon-cancel.png" }
  }
  stock [ "gtk-clear"          ] =
  {
    { "Icons/icon-clear-prelight.png", *, PRELIGHT },
    { "Icons/icon-clear-active.png", *, ACTIVE },
    { "Icons/icon-clear.png" }
  }
  stock [ "gtk-close"          ] =
  {
    { "Icons/icon-close-prelight.png", *, PRELIGHT },
    { "Icons/icon-close-active.png", *, ACTIVE },
    { "Icons/icon-close.png" }
  }
  stock [ "gtk-copy"           ] =
  {
    { "Icons/icon-copy-prelight.png", *, PRELIGHT },
    { "Icons/icon-copy-active.png", *, ACTIVE },
    { "Icons/icon-copy.png" }
  }
  stock [ "gtk-delete"         ] =
  {
    { "Icons/icon-delete-prelight.png", *, PRELIGHT },
    { "Icons/icon-delete-active.png", *, ACTIVE },
    { "Icons/icon-delete.png" }
  }
  stock [ "gtk-execute"        ] =
  {
    { "Icons/icon-execute-prelight.png", *, PRELIGHT },
    { "Icons/icon-execute-active.png", *, ACTIVE },
    { "Icons/icon-execute.png" }
  }
  stock [ "gtk-find"           ] =
  {
    { "Icons/icon-find-prelight.png", *, PRELIGHT },
    { "Icons/icon-find-active.png", *, ACTIVE },
    { "Icons/icon-find.png" }
  }
  stock [ "gtk-go-back"        ] =
  {
    { "Icons/icon-left-prelight.png", *, PRELIGHT },
    { "Icons/icon-left-active.png", *, ACTIVE },
    { "Icons/icon-left.png" }
  }
  stock [ "gtk-go-down"        ] =
  {
    { "Icons/icon-down-prelight.png", *, PRELIGHT },
    { "Icons/icon-down-active.png", *, ACTIVE },
    { "Icons/icon-down.png" }
  }
  stock [ "gtk-go-forward"     ] =
  {
    { "Icons/icon-right-prelight.png", *, PRELIGHT },
    { "Icons/icon-right-active.png", *, ACTIVE },
    { "Icons/icon-right.png" }
  }
  stock [ "gtk-go-up"          ] =
  {
    { "Icons/icon-up-prelight.png", *, PRELIGHT },
    { "Icons/icon-up-active.png", *, ACTIVE },
    { "Icons/icon-up.png" }
  }
  stock [ "gtk-help"           ] =
  {
    { "Icons/icon-help-prelight.png", *, PRELIGHT },
    { "Icons/icon-help-active.png", *, ACTIVE },
    { "Icons/icon-help.png" }
  }
  stock [ "gtk-index"          ] =
  {
    { "Icons/icon-reconcile-prelight.png", *, PRELIGHT },
    { "Icons/icon-reconcile-active.png", *, ACTIVE },
    { "Icons/icon-reconcile.png" }
  }
  stock [ "gtk-ok"             ] =
  {
    { "Icons/icon-ok-prelight.png", *, PRELIGHT },
    { "Icons/icon-ok-active.png", *, ACTIVE },
    { "Icons/icon-ok.png" }
  }
  stock [ "gtk-print"          ] =
  {
    { "Icons/icon-print-prelight.png", *, PRELIGHT },
    { "Icons/icon-print-active.png", *, ACTIVE },
    { "Icons/icon-print.png" }
  }
  stock [ "gtk-remove"         ] =
  {
    { "Icons/icon-remove-prelight.png", *, PRELIGHT },
    { "Icons/icon-remove-active.png", *, ACTIVE },
    { "Icons/icon-remove.png" }
  }
  stock [ "gtk-quit"           ] =
  {
    { "Icons/icon-quit-prelight.png", *, PRELIGHT },
    { "Icons/icon-quit-active.png", *, ACTIVE },
    { "Icons/icon-quit.png" }
  }
  stock [ "gtk-save"           ] =
  {
    { "Icons/icon-save-prelight.png", *, PRELIGHT },
    { "Icons/icon-save-active.png", *, ACTIVE },
    { "Icons/icon-save.png" }
  }
}

widget_class "*" style "kjf-icons-set"

---< END GTKRC. ---



-----
Ken Farley
--
View this message in context: http://gnucash.1415818.n4.nabble.com/Reconciled-Register-Colors-tp4686411p4686413.html
Sent from the GnuCash - User mailing list archive at Nabble.com.


More information about the gnucash-user mailing list