![image](https://habrastorage.org/getpro/habr/post_images/06b/00d/a51/06b00da51339f88efe716e1f8e7d4b83.jpg)
На ISN уже затрагивалась тема, что последнее время наблюдается некоторые неудобства с качеством поддержки в программах различных разрешений. Особенно эта проблема выходит на передний план с развитием новых решений, таких как например нетбуков на базе Atom. У этих устройств обычно нестандартные разрешения экрана, хотя так далеко можно и не ходить. Достаточно взять мой вполне обычный настольный монитор с разрешением 1680x1050 и выставленным DPI 125%.
Я постоянно замечаю, что программы «не укладываются» в свои окошки. В основном это не критично, но не удобно или просто неприятно. Вставляя старый диск с музыкой я не удивляюсь и не жалуюсь, видя как запускается программа для прослушивания:
![image](https://habrastorage.org/getpro/habr/post_images/6a9/a06/a36/6a9a06a366d90657128d55b077ce368f.png)
Просто нужно правильные диски покупать. :) Однако подобные ситуации я, да и не только я, встречаю все чаше и чаше. Хочется обратить внимание программистов, которые читают этот пост, что данная проблема незаслуженно остается без внимания. Сейчас разрешений становится все больше, в то время как программы бывают рассчитаны только на самые стандартные. Как следствие все у большего количества пользователей возникает проблем с разрешением или DPI.
При этом это касается даже таких программ, где используется крайне простой интерфейс и где программисты даже не думают, что могут существовать некие проблемы. Собственно я говорю об ошибке, допущенной в нашем продукте. Именно она и подвигла написать меня этот пост. Надеюсь, кто-то сделает для себя выводы из подобных ляпов. :)
Собственно об ошибке. Инструмент PVS-Studio интегрируется в Visual Studio и добавляет некоторые вкладки настроек. В частности:
![image](https://habrastorage.org/getpro/habr/post_images/34d/ca5/ba7/34dca5ba7497bc79fe5f0b26e43de9ab.png)
Проще не бывает. И никаких проблем мы не наблюдали и не ждали, пока один из пользователей не смог понять, как работать с этим окном. И не удивительно. У него оно выглядит так (нет четырех кнопок):
![image](https://habrastorage.org/getpro/habr/post_images/284/9b4/cde/2849b4cdeda4b3b5698826828e99439a.png)
Хороший урок тем, кто как мы сосредоточен на работоспособности внутренних систем и считает что GUI часть слишком проста, чтобы существенно вкладываться в ее тестирование. С приходом разнообразных вариантов компьютеров, мониторов и разрешений — это ни так. Следует пересматривать свои подходы к тестированию GUI с точки зрения запуска приложений на системах с различными экранами.
То что я написал, может казаться банальным. Но обилие «кривостей», на которые я постоянно наталкиваюсь, говорит об актуальности проблемы. На моей рабочей машине установлено крайне мало программ, однако в течении всего трех! минут я смог найти ошибки в интерфейсе настройки двух программ. Первая на что я натолкнулся в своем трее, программы непрерывной интеграции CruiseControl.Net. В вот одна из страниц ее настройки:
![image](https://habrastorage.org/getpro/habr/post_images/91f/f07/49c/91ff0749c2334f10c9b9f9718bcbf112.png)
Кстати, что интересно, окно этой программы можно растянуть, хотя это не помогает избежать ошибки. Результат выглядит достаточно оригинально:
![image](https://habrastorage.org/getpro/habr/post_images/de7/152/b4e/de7152b4ea84b3e5cee12a18aa870ee0.png)
Второй иконкой в трее был Антивирус Касперского. Кстати, я сейчас считаю эту программу образцом графического интерфейса. Молодцы. Однако даже им сложно проконтролировать интерфейс:
![image](https://habrastorage.org/getpro/habr/post_images/c3d/609/d93/c3d609d9385ea8cd845685bb72f803c7.png)
Хочу обратить внимание. Что у меня вовсе не что-то экзотическое. У меня обыкновенный широкий монитор, который весьма удобен при программировании. Конечно, конкретно в данных примерах разрешение ни причем. Здесь сыграл роль DPI. Однако DPI у меня также не экзотичен. Надписи при стандартном DPI в Windows 7 мне показались мелкими и я выбрал вместо Default (100%) режим Medium (125%). И уже все так поплыло… На многих программах также еще скажется и разрешение. Это я тоже уже наблюдал, но затрудняюсь привести сейчас пример.
Вывод
Программисты, не критикуйте поверхностность данной заметки, не критикуйте недостатки в отдельных программах. Прошу — повнимательней посмотрите, что станет с вашими разработками на странном мониторе со странным DPI. :) Желаю всяческих успехов в создании красивых и функциональных интерфейсов!