Подарки от программис'тов
Во, ещё нашёл - он обрабатывает это перечисление двумя if:
if(Invisible)
else if(Collapsed)
и в зависимости от этого добавляет стили. Но ниже ещё проверки идут
if(Enabled)
else if(Disabled)
и опять стили применяет. При этом эти две ветки проверок идут независимо поочереди. Но ведь перечисление-то взаимоисключаемое!
Ну это по-моему совсем уже детская ошибка. Тут явно надо разделить на два перечисления (или булевых свойства) или добавить битовые флаги.
Похоже, он использует перечисление просто как хранилище кучи малосвязанных друг с другом значений.
Не говоря уже о том, что такая обработка в разы раздувает код. Было бы два булевых свойства, то все проверки были бы однострочные (через тот же ?: оператор или просто через ==), а так он городит if-else на полэкрана кода.