| Value | Meaning |
|---|---|
| FreeForm0 | Allow any character |
| Alpha1 | Allow only alphabetic characters |
| Digits2 | Allow only digits |
| Number3 | Edited field expects numbers |
| Phone4 | Edited field expects phone number |
| Url5 | Edited field expects URL |
| Email6 | Edited field expects email address |
| Name7 | Edited field expects the name of a person |
| Password8 | Like @GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden |
| Pin9 | Like @GTK_INPUT_PURPOSE_DIGITS, but characters are hidden |
| Terminal10 | Allow any character, in addition to control codes |
Describes primary purpose of the input widget. This information is useful for on-screen keyboards and similar input methods to decide which keys should be presented to the user.
Note that the purpose is not meant to impose a totally strict rule about allowed characters, and does not replace input validation. It is fine for an on-screen keyboard to let the user override the character set restriction that is expressed by the purpose. The application is expected to validate the entry contents, even if it specified a purpose.
The difference between @GTK_INPUT_PURPOSE_DIGITS and @GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits while the latter also some punctuation (like commas or points, plus, minus) and “e” or “E” as in 3.14E+000.
This enumeration may be extended in the future; input methods should interpret unknown values as “free form”.