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