.. _theme-horizontal-slider:
UIHorizontalSlider Theming Parameters
=====================================
.. raw:: html
The :class:`UIHorizontalSlider ` theming block id is 'horizontal_slider'.
Colours
-------
.. figure:: ../_static/horizontal_slider_colour_parameters.png
A diagram of which part of the element is themed by which colour parameter. The slider's buttons are themed in a
separate block.
:class:`UIHorizontalSlider ` makes use of these colour parameters in a 'colours' block. All of these colours can
also be a colour gradient:
- "**dark_bg**" - The background colour/gradient of the 'back' of the slider, the colour of the track that the sliding part moves along.
- "**normal_border**" - The border colour/gradient of the slider.
- "**disabled_dark_bg**" - The colour/gradient of the track when disabled.
- "**disabled_border**" - The border colour/gradient of the slider when disabled.
Misc
----
:class:`UIHorizontalSlider ` accepts the following miscellaneous parameters in a 'misc' block:
- "**shape**" - Can be one of 'rectangle' or 'rounded_rectangle'. Different shapes for this UI element.
- "**shape_corner_radius**" - Only used if our shape is 'rounded_rectangle'. It sets the radius, or radii, used for the rounded corners. Use a single integer to set all corners to the same radius, or four integers separated by commas to set each corner individually.
- "**border_width**" - the width in pixels of the border around the slider. Defaults to 1.
- "**shadow_width**" - the width in pixels of the shadow behind the slider. Defaults to 1.
- "**enable_arrow_buttons**" - Enables or disables the arrow buttons for the slider. "1" is enabled, "0" is disabled. Defaults to "1".
- "**sliding_button_width**" - Sets the width of the sliding button. Defaults to "20".
- "**tool_tip_delay**" - time in seconds before the button's tool tip (if it has one) will appear. Default is "1.0".
Sub-elements
--------------
You can reference all of the buttons that are sub elements of the slider with a theming block id of
'horizontal_slider.button'. You can reference both of the arrow buttons with the class_id: '@arrow_button'.
You can also reference the buttons individually by adding their object IDs:
- 'horizontal_slider.#left_button'
- 'horizontal_slider.#right_button'
- 'horizontal_slider.#sliding_button'
There is more information on theming buttons at :ref:`theme-button`.
Example
-------
Here is an example of a horizontal slider block in a JSON theme file, using the parameters described above (and some from UIButton).
.. code-block:: json
:caption: horizontal_slider.json
:linenos:
{
"horizontal_slider":
{
"colours":
{
"normal_bg": "#25292e",
"hovered_bg": "#35393e",
"disabled_bg": "#25292e",
"selected_bg": "#25292e",
"active_bg": "#193784",
"dark_bg": "#15191e,#202020,0",
"normal_text": "#c5cbd8",
"hovered_text": "#FFFFFF",
"selected_text": "#FFFFFF",
"disabled_text": "#6d736f"
},
"misc":
{
"shape": "rectangle",
"enable_arrow_buttons": "0",
"sliding_button_width": "15"
}
},
"horizontal_slider.button":
{
"misc":
{
"border_width": "1"
}
},
"horizontal_slider.#sliding_button":
{
"colours":
{
"normal_bg": "#FF0000"
}
}
}