Запись "
HOVERED | FOCUSED
" читается "HOVERED или FOCUSED". Однако, по-русски это должно говориться "HOVERED и FOCUSED" (аналог: крокодил - длинный и зелёный").
Ещё это выражение можно записать "
HOVERED + FOCUSED
" - будет то же самое, и к тому же понятнее. Но эта форма записи плоха тем, что для двух одинаковых признаков "
HOVERED | HOVERED == HOVERED
", а вот при сложении будет не так.
Допустим, переменная
x
содержит в себе статус кнопки. Работать с этой переменной надо так:
- Кнопка попала в фокус:
x|=FOCUSED
- Кнопка вышла из фокуса:
x&=~FOCUSED
- Проверка, в фокусе ли кнопка:
x&FOCUSED?в_фокусе:не_в_фокусе
Это можно использовать бездумно, не зная о двоичном представлении чисел.