Сделал GUI-версию. Использовал gtkdialog. Это у меня первый опыт. Посмотрел мануалы. Использовал немного другой подход, чем это обычно принято: разделил xml-файлы и sh-файлы, отделил визуальное представление от логики. Всего используется 8 файлов, четыре пары (см. рис. ниже).
Вообще gtkdialog мне не очень понравился. Он очень ограничивает свободу действий и приходится делать не то, что хочется, а то, что получается. Его плюсом является очень маленький размер файла. У меня получился pet размером 7 кб.
Учитывая особенности gtkdialog я сделал очень простую программу, старался делать минимум функций с минимальными задержками на обработку и т.д. Делать что-то сложное типа pmusic может, наверное, только zigbert. Мне не хочется делать ничего сложного на gtkdialog, потому, что получится кошмар.
В качестве плеера используется mplayer, т.е. нет никакого GUI-управления проигрывателем, что, наверное, не очень дружелюбно к пользователю. Для управления плеером нужно смотреть справку mplayer. Основные элементы управления:
- стрелки - перемотка вперёд/назад,
- пробел - пауза/воспроизведение,
- 0, 9 - громкость,
- f - на весь экран,
- m - mute: отключить звук
- q - выход
Вообще, там очень много элементов управления. mplayer - очень сложный. Это основные, которыми мне приходилось пользоваться. Там ещё есть яркость, контрастность, насыщеность на клавишах 1,2,3,4,5,6, но они не на всех компьютерах у меня работали.
Сначала я хотел сделать чекбокс, для выбора плеера: gnome-mplayer - mplayer, потом отказался в пользу простоты интерфейса, не захотел добавлять лишний элемент управления.
Также на скриншоте у меня мало результатов поиска, возможно, из-за того, что у меня медленный Интернет, раньше было больше. В моём тарифе "быстрые" мегабайты закончились, остались только "медленные", нужно будет перепроверить на быстром Интернете.
Результаты следующей страницы поиска открываются в новом окне. С одной стороны это связано с особенностями gtkdialog, где очень сложно управлять этим окном ещё раз, особенно повторно запустить progress-bar, с другой стороны - это удобно потому, что результаты поиска всех страниц будут сразу доступны. Также каждое окно является отдельным процессом, что даёт определённую гибкость и независимость окон друг от друга. И поле ввода запроса не зависит от других окон.
Есть проблема, что не отображаются сущности (entities) HTML, значки, типа апострофа. Была какая-то библиотека для этого, но я не захотел её использовать, это-бы всё усложнило. Теперь мне кажется, что единственный такой значок - это апостроф с кодом ' что можно заменить с помощью sed.
На этот раз сделал pet и выложил на google code, т.к. с этого сайта могут скачать только зарегистрированные пользователи. После установки пакета в меню "Мультимедиа" появятся записи для запуска gui-версии и консольной версии. Консольную версию использую предыдущую и она включена в пакет. Эти версии совершенно разные и никак между собой не связаны и gui-версия, как мне кажется, работает эффективнее.
Скачать (7 кб)