Overview

I should be pretty obvious what buttons are and where they are usually used. One thing one should keep in mind is the fact that ../GtkButton is used inside other widgets like ../GtkComboBox, ../GtkTreeView and ../GtkOptionMenu.

screenshot.png

Style Properties

Name

Default

Description

default-border

{1, 1, 1, 1}

Extra space to add for CAN_DEFAULT buttons

default-outside-border

{0, 0, 0, 0}

Extra space to add for CAN_DEFAULT buttons that is always drawn outside the border

child-displacement-x

0

How far in the x direction to move the child when the button is depressed

child-displacement-y

0

How far in the y direction to move the child when the button is depressed

displace-focus

FALSE

Whether the child_displacement_x/_y properties should also affect the focus rectangle

inner-border

{1, 1, 1, 1}

Border between button edges and child.

Values given in the form {1, 1, 1, 1} map as {left, right, top, bottom}.

Geometry

Geometry if interior-focus = 1

The geometry of a simple button that cannot get the default action:

button-nodefault.png

interior-focus = 0

If interior-focus = 0, then the focused button will look differently. (Buttons without a focus stay the same.)

button-exterior-focus.png

TODO: show spacing for the HAS_DEFAULT case.

See also http://svn.gnome.org/viewvc/gtk%2B/trunk/docs/widget_geometry.txt?view=markup.

Drawing

Buttons may be drawn transparent.

As seen in the above images, the button consists of a BOX. If the button has the focus, it will be drawn on the button as schown in the above images. The detail for both of these is "button".

There is nothing special about the state and shadow that are used:

normal

pressed

prelight

insensitive

shadow type

OUT

IN

OUT

OUT

state

NORMAL

ACTIVE

PRELIGHT

INSENSITIVE

If the button is the default button, then another box with detail "buttondefault" will be drawn underneath everything.

How to Change Button on focus style

It seems only accept change focus line width and color, if it can change the background image.

GTK+ API Documentation

http://library.gnome.org/devel/gtk/stable/GtkButton.html

Attic/GnomeArt/Tutorials/GtkThemes/GtkButton (last edited 2013-11-27 14:33:54 by WilliamJonMcCann)