Много ругаются на неудобные просмотрщики изображений. То им не так, это не то. Падучий, управление неудобное, привязка к DE, тулкит некошерный, форматов знает мало...
А что если сделать по-настоящему хороший просмотрщик?
- Предельно простой, чтоб багов было меньше. Пусть знает всего один формат: PNM. А всё остальное пускай декодирует утилитами типа входящих в netpbm и получает через stdin.
- Информацию о файлах можно получать, вызывая те же утилиты из netpbm или file.
- С 2 мордами на Qt и GTK+ и возможностью лёгкой замены на другие тулкиты. Свести использование функций тулкита к минимуму. Пусть программа передаёт тулкиту:
- Содержимое меню (окна и контекстного).
- Само изображение-битмап.
- Необходимую информацию об изображении: размер, число цветов (или лучше всё гнать в 32 битах, пусть тулкит сам разбирается?), масштаб(?).
- Команду открыть диалог открытия файла.
- Нажатые клавиши.
- Выбранные в меню функции.
- Сигнал об изменении размера окна, вместе с новыми размерами.
- Имя файла из диалога открытия.
- Сами морды тоже можно сделать отдельными программами и обмениваться с ними данными через stdin/stdout.
- Не знаю, как лучше с масштабированием. Можно осуществлять его внутри программы, средствами тулкита, найти соответствующую функцию в libnetpbm или каждый раз дёргать pamscale. Ещё варианты?
- Ещё нужен гуёвый конфигуратор с кучей опций. В GTK-версии, наверное, стоит сделать кнопку «Включить/выключить показ большей части настроек, которая неинтересна большинству пользователей». Хранить настройки в текстовом файле. Все настройки можно менять при запуске из командной строки.
- Так как понадобится много парсить stdin, имеет смысл прибегнуть к языку, хорошо умеющему обрабатывать тексты и регекспы. Перл?
Корованы? Даже не знаю куда их засунуть.
Главный вопрос: такое уже существует? Кто-нибудь пытался осуществить подобное?