<page xmlns="http://projectmallard.org/1.0/"
      xmlns:uix="http://projectmallard.org/experimental/ui/"
      type="topic"
      id="switches">

  <info>
    <credit type="author">
      <name>Allan Day</name>
      <email>aday@gnome.org</email>
    </credit>

    <link type="guide" xref="ui-elements"/>
    <uix:thumb mime="image/svg" src="figures/ui-elements/switches.svg"/>

    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
  </info>

<title>Switches</title>

<p>A switch is a simple interface element which has an on and off state.</p>

<media type="image" mime="image/svg" src="figures/ui-elements/switches.svg"/>

<section id="when-to-use">
<title>When to use</title>

<p>Switches should be used for controlling services or hardware that have a clear on/off logic. They are particularly appropriate when those services or hardware do not activate immediately (ie. there is a delay between the switch being operated and it having an effect), or when they affect the operation of the application in a significant way.</p>

<p>When the control does not turn a function on or off, or when a function does not clearly have an on/off nature, a <link xref="check-boxes">check box</link> is a more appropriate option. For example, an alarm might be controlled using a switch, since it can be turned on or off. However, a check box is a better choice for an option to repeat that alarm on a daily basis, since alarm repetition is a configuration option, rather than starting or stopping a particular piece of functionality.</p>

<p>When in doubt, use switches for important configuration options, and check boxes for minor sub-options.</p>

</section>

<section id="switch-labels">
<title>Switch labels</title>

<p>Switch labels should be written using <link xref="writing-style#capitalization">header capitalization</link>. The name of the function affected by the switch should be used as the label. <gui>Automatic Location</gui> or <gui>Notifications</gui> are examples of good switch labels.</p>

</section>

<section id="api-reference">
<title>API reference</title>

<list>
<item><p><link href="https://developer.gnome.org/gtk3/stable/GtkSwitch.html">GtkSwitch</link></p></item>
</list>

</section>

</page>
