Создавать под каждое действие кнопку на плейере — места жалко. Да и эффективность такого управления близка к нулю. Вместо этого мы воспользуемся тем, что на мышке есть много кнопок, колесо, да её ещё и двигать можно.
В Винаме использование этого многообразия возможностей находится в зачаточном состоянии. Там можно менять громкость, вращая колёсико, а если колёсико нажать и вращать, то это работает как перемотка. Последнее, кстати, спасает от дурацкого зацеплятельного поведения бегунка, из-за которого невозможно сдвинуться на чуть-чуть назад или вперёд. Даблклик переключает винамп из маленького режима в большой. По правой кнопке дают контекстное меню. Левой кнопкой можно перемещать окно или изменять его размеры, если зацепить за правый край. Кажется, это всё.
Начнём с изменения размеров окна. Поскольку предполагается размещение окна в правом углу заголовка развёрнутого окна, то вряд ли кто-то захочет изменять его размеры, двигая туда-сюда правый край окна. Правый край раз и навсегда упирается так, чтобы оставалось место под кнопки управления окном. А вот размер мы будем менять за левый край:
Теперь займёмся колёсиком. Для начала, конечно, сделаем, чтобы с его помощью можно было как в Винампе менять громкость, однако шаг сделаем настраиваемым. Далее, держать колесо нажатым и при этом вращать — довольно трудно: периодически отпускаешь его, и иногда получается, что, не желая того, меняешь громкость. Сначала я повесил туда выбор трека. Чаще всего не нужно прыгать сразу на 7 треков вперёд, а нужно только либо просто на предыдущий, либо просто на следующий. А прокрутить нажатое колесо на 1 шаг совсем не трудно. Однако в таком варианте я несколько раз сбился, потому, что уже привык в Винампе к тому, что это перемотка. В результате остановился на таком варианте:
Каждый сможет выбрать то, то ему удобнее. Обратите внимание, что для перемотки настраивается скорость. Можно выбрать настройку громкости, и тогда шаг тоже настраивается, причём, независимо от шага в случае вращения ненажатого колеса — это позволяет сделать, например, чтобы при нажатом колесе громкость менялась более стремительно.
Опера нам подарила гениальную комбинацию: вращение скроллинга при нажатой правой кпонке. Этой находкой мы воспользуемся для нормальной организации перемотки. Нажал правую кнопку — и крути колесо сколько душе угодно в любую сторону. Естественно, скорость перемотки сделаем настраиваемой.
Cделаем настраиваемым и даблклик:
Мне удобнее всего вешать на даблклик плей/паузу, но если вы повесите что-то другое, у вас по-прежнему есть выбор того, как именно сделать плей/паузу:
Если вы повесите паузу на правую кнопку в бегунке, то контекстное меню, конечно, вываливаться на нём не будет. Однако вся остальная площадь плейера в вашем распоряжении для этих целей.
Ладно, как же нам перейти на предыдущий или следующий трек, если на нажатие-и-поворот колеса мы повесили какое-то другое действие? Очевидно, здесь мы воспользуемся жестами. (Вы не пользуетесь жестами в Опере? Тогда мы идём к вам!) Жест влево — предыдущий трек, жест вправо — следующий трек. Легко, логично, и, главное, не требует прицеливания к чему бы то ни было.
Кстати, если на вашей мыши есть кнопки Back и Forward по бокам, то вот вам ещё один способ — они работают как Prev/Next без дополнительных ухищрений.
Осталось лишь определиться с тем, как вызвать плейлист, если на даблклик вы повесили что-то другое. Что ж пускай это будет жест вниз. А жест вверх мы не используем вообще, так как при выбранном расположении плейера выполнить его довольно трудно.
Кое-какие тонкие настройки, связанные с мышью, можно также найти в исходнике интерфейса, в самых первых строчках:
- snap_gap = 10 — за сколько пикселей до края экрана плейер будет к нему пытаться прилипнуть;
- gesture_insensitivity = 10 — на сколько пикселей можно сдвинуть мышь с нажатой правой кнопкой, чтобы это не считалось жестом;
- playlist_scroll_step = 1 — на сколько позиций будет скроллиться плейлист за один шаг поворота колеса;
- o_gestures = true — жесты здесь можно вообще отключить, если они вам не нужны или, например, если вы пользуетесь каким-нибудь полномасштабным жестикулятором (вроде StrokeIt) и хотите настроить их в нём.
Подведём итоги:
Пять минут привыкания — и более непонятно, как без этого жить.
В следующей заметке — про отображение, скины и плейлист.