Бегущая строка (скроллирование текста)

Список разделов Аудиоплеер foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #1 NeoLithic » 13.08.2006, 10:46

Можно ли реализовать в Track Info эффект бегущей строки, т.е когда строка полностью не влазиет в панель она не переносится на следующую, а прокручивается...
NeoLithic M
Автор темы, Новичок
Возраст: 28
Откуда: МО, Звенигород
Репутация: 0
С нами: 11 лет

Сообщение #2 Mishail » 13.08.2006, 15:34

можно
Mishail M
Мастер
Аватара
Возраст: 37
Репутация: 5
С нами: 11 лет

Сообщение #3 NeoLithic » 14.08.2006, 21:05

И каким образом можно заставить выводить обрезанную строку? Пока ничего лучше $pad_right\left ненашёл... %)
NeoLithic M
Автор темы, Новичок
Возраст: 28
Откуда: МО, Звенигород
Репутация: 0
С нами: 11 лет

Сообщение #4 Dr.Death » 14.08.2006, 21:14

2NeoLithic ты в настройки track info не пробовал заглядывать?
Dr.Death M
Мастер
Аватара
Возраст: 33
Откуда: Тюмень
Репутация: 0
С нами: 11 лет

Сообщение #5 NeoLithic » 14.08.2006, 21:24

епрст как всё просто  :-[
а я то думал нафига там столько настроек...
век живи - век учись (ц)  *пыво*
NeoLithic M
Автор темы, Новичок
Возраст: 28
Откуда: МО, Звенигород
Репутация: 0
С нами: 11 лет

Сообщение #6 Dr.Death » 14.08.2006, 21:26

перве правило бойцовского клуба, всегда залазь в настройки программы после установки  *секрет*
Dr.Death M
Мастер
Аватара
Возраст: 33
Откуда: Тюмень
Репутация: 0
С нами: 11 лет

Panel UI как скроллировать текст

Сообщение #7 ShadowNev » 20.05.2008, 18:40

В Track Info есть такая фича чтобы если текст не влазит можно включть для него скроллирование
Счас как я понял Panel UI умеет все что умел Track Info
Так вот вопрос как реализовать скроллирование названия трека когда он не влазит в окно?
ShadowNev
Новичок
Репутация: 0
С нами: 9 лет 9 месяцев

Сообщение #8 Максим » 20.05.2008, 20:32

ShadowNev
Эта возможность была только в Track Info. Автор Track Info Mod (позже - Track Display в составе Panels UI) отказался от неё. Тем не менее, в гидрогеновских конфигах часто можно видеть подобные вещи, сделанные вручную. Думаю, что они применяют отсчет по секундам и функции $substr() и $left().
Максим M
Мастер
Аватара
Возраст: 30
Репутация: 93
С нами: 10 лет 2 месяца

Сообщение #9 ShadowNev » 21.05.2008, 09:56

спасибо
обидно что отказался
думал про реализацию по секундам, но получается немного рывками :(
ShadowNev
Новичок
Репутация: 0
С нами: 9 лет 9 месяцев

Сообщение #10 Максим » 21.05.2008, 10:51

ShadowNev
Код: Выделить всё
получается немного рывками
Так и должно быть. :)

P.S. Это моё 289-ое сообщение! :)))
Последний раз редактировалось Максим 21.05.2008, 19:06, всего редактировалось 1 раз.
Максим M
Мастер
Аватара
Возраст: 30
Репутация: 93
С нами: 10 лет 2 месяца

Сообщение #11 Sergio Fergio » 04.03.2009, 23:25

И всё-таки! Как настроить?

У меня в конфигурации trackinfo - шаром покати...  *ну*
Изображение
Sergio Fergio
Новичок
Репутация: 0
С нами: 9 лет 1 месяц

Сообщение #12 Izotop » 05.03.2009, 02:15

Код: Выделить всё
$puts(color_scheme,0)
$if($strcmp(0,$get(color_scheme)),
$puts(des,$rgb(148,204,72))
$puts(desr,$rgb(108,164,32))
$puts(bg,$rgb(71,103,29))
$puts(norm,$rgb(192,192,192))
$puts(tplay,$rgb(255,236,80))
$puts(artist,$rgb(133,183,228))
$puts(album,$rgb(99,206,94))
$puts(title,$rgb(212,252,222))
$puts(dirn,$rgb(12,252,222))
$puts(comm,$rgb(112,252,222))
$puts(publ,$rgb(212,152,222))
//$puts(other,$rgb(212,252,222))
$puts(bonus,$rgb(222,91,84)),
)
$puts(hrt,$get(des)┌$transition($repeat(─,91)┐,$get(des),$get(bg)))
$puts(hrc,$get(des)├$transition($repeat(─,91)┤,$get(des),$get(bg)))
$puts(hrb,$get(des)└$transition($repeat(─,91)┘,$get(des),$get(bg)))

$get(hrt)$char(10)
$alignset()
$alignrel(left,top)
//$get(des)│$get(norm)Режим: $if(%_ispaused%,Пауза                                                          ,$if(%_isplaying%,Play                                         $if(%disc%,   Диск №: $get(tplay)%disc%,                    ),                                                                    ))   $get(norm)№ Трека: $get(tplay) $if(%tracknumber%,%tracknumber%)$char(10)
$get(des)│$get(norm)Artist:    $get(artist)$if(%artist%,$cut(%artist%,40),$get(norm)$if(%_isplaying%,Неизвестный))$char(10)
$get(des)│$get(norm)Title:        $if($meta(title),$get(title)%title%,$get(tplay)%_filename%)$char(10)
//$get(des)│$get(norm)Микс:      $get(bonus)'(',']',']'$get(title))),$get(title)$if(%_filename%,%_filename%,$get(norm)$if(%_isplaying%,Неизвестный)))$char(10)
$get(des)│$get(norm)Album:         $get(album)$if(%album%,$cut(%album%,40),$get(norm)$if(%_isplaying%,Неизвестный))$char(10)

$alignrel(center,top)
$get(norm)$if(%comment%,$get(comm)$left(%comment%,50))


$alignrel(right,top)

$get(norm)Дата: $get(tplay)     $if(%date%,%date%,no date)$get(desr)│$char(10)
$get(norm)Стиль: $get(tplay)$if(%genre%,$cut(%genre%,20),$get(norm)Неуказан        )$get(desr)│$char(10)
$get(norm)Канал: $get(tplay)$if(%__channels%,$ifgreater(%__channels%,2,%__channels%ch,$ifgreater(%__channels%,1,$if(%__mp3_stereo_mode%,$caps2(%__mp3_stereo_mode%),Stereo),Mono)),)$get(desr)│$char(10)

$alignset()
$alignrel(left,top)
$get(hrc)$char(10)
$alignset()
$alignrel(left,top)
$get(des)│$get(norm)$if(%copyright%,Copyright: $get(publ)%copyright%)$char(10)
$get(des)│$get(norm)$if(%publisher%,Publisher: $get(publ)%publisher%)$char(10)
$get(des)│$get(norm)                     $if(%catalog%,Catalog: $get(publ)%catalog%)$char(10)
$get(des)│$char(10)

$alignrel(center,top)
$get(des)%path%$char(10)
$get(dirn)%directoryname%$char(10)
$char(10)
$get(tplay) %filename_ext%

$alignrel(right,top)
$get(norm)Частота:$get(tplay) $if(%samplerate%,$div(%samplerate%,1000)','$div($mod(%samplerate%,1000),100),        )$if(%samplerate%,$get(norm) кГц,       )$get(desr)│$char(10)
$get(norm)Размер: $get(tplay)$if(%filesize%,$if($stricmp(cue,$ext(%filename_ext%)),$ifgreater(120,%length_seconds%,$if(%__bitrate%,$mul($div(%__bitrate%,8),%length_seconds%)','$cut($num($mod($mul(%__bitrate%,8),%length_seconds%),1),1))$if(%filesize%,$get(norm) Кб   ),$if(%__bitrate%,$div($mul($div(%__bitrate%,8),%length_seconds%),1024)','$cut($num($mod($mul($div(%__bitrate%,8),%length_seconds%),1048),3),1))$if(%_filesize%,$get(norm) Мб    )),$ifgreater(1022976,%filesize%,$if(%_filesize%,$div(%_filesize%,1024)','$cut($num($mod(%_filesize%,1024),3),1)$if(%filesize%, $get(norm)Кб   )),$if(%_filesize%,$div(%_filesize%,1048576)','$cut($num($mod(%_filesize%,1048576),6),1),)$if(%_filesize%,$get(norm) Мб    ))),                 )$get(desr)│$char(10)
$get(norm)Сжатие: $get(tplay)$if(%bitrate%,1:$div(1411,%bitrate%) '('$div($mul(%bitrate%,100),1411).$substr($muldiv(%bitrate%,10000,1411),$add($len($div($mul(%bitrate%,100),1411)),1),3)'%)')$get(desr)│$char(10)
//$get(norm)Воспроизводился последний раз:$get(tplay) $if(%last_played%,$substr(%last_played%,9,10)'.'$substr(%last_played%,6,7)'.'$substr(%last_played%,1,4) $get(norm)'в' $get(tplay)$right(%last_played%,8))
$get(desr)│$char(10)
//$if2($if(%__replaygain_track_gain%,$get(des)│$get(norm)Норм Трека $get(tplay)%__replaygain_track_gain%)$if(%__replaygain_album_gain%,$get(norm) Альбома $get(tplay)%__replaygain_album_gain%)$char(10),)
$alignset()
$alignrel(left,top)
$get(hrb)
__________________________________________________________________________________________________
Ставь себе этот код. Права автора не трогаем ;)
Почитай то, о чем ты хотел бы узнать больше :)
Учись отдыхать с пользой для себя ;)
[color=#0000FF]Life between 8-22000 Hz[/color]
[b][color=#00FF00]Кто ищет — тот всегда находит то, что ищет...[/color][/b]
Izotop M
Модератор
Аватара
Возраст: 32
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 8 лет 6 месяцев

Сообщение #13 Sergio Fergio » 05.03.2009, 14:55

Я, наверное, не так понял тему. Просто новую не хотелось создавать.
Вопрос в том, чтобы в панели TrackInfo, которая определенного размера в ширину (например, 100 px), название альбома помещалось полностью. Т.е. если оно не помещается, то заставить его прокручиваться (бегать слева-направо, справа-налево). Картинку (правда, каляка-маляка какая-то вышла  :-[ ) в виде примера привел:
Изображение
Sergio Fergio
Новичок
Репутация: 0
С нами: 9 лет 1 месяц

Сообщение #14 Izotop » 06.03.2009, 03:04

Почитай это
и
это
Один из вариантов построения концепции бегущей строки:
  • сравниваешь размеры окна TrackInfo и размер текста
  • отталкиваясь от предыдущего пункта - определяешь будет активироваться бегущая строка или текст отобразить статически
  • пишешь настройки для своей бегущей строки (можна подвязать под этот тег: %playback_time_remaining_seconds% и добавить ему математические функции типа: $add(a,b) ; $mul(a,b) ; $div(a,b)  )
[color=#0000FF]Life between 8-22000 Hz[/color]
[b][color=#00FF00]Кто ищет — тот всегда находит то, что ищет...[/color][/b]
Izotop M
Модератор
Аватара
Возраст: 32
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 8 лет 6 месяцев

Сообщение #15 Sergio Fergio » 06.03.2009, 12:11

Izotop писал(а):дин из вариантов построения концепции бегущей строки
Космос для меня, к сожалению...  :-[
Но за ссылки спасибо! Много полезного для себя нашел.
Sergio Fergio
Новичок
Репутация: 0
С нами: 9 лет 1 месяц

скролл на панели задач

Сообщение #16 snw » 11.07.2009, 16:43

Пересел с ВинАмпа на Фубар совсем недавно, и очень не достаёт скролла окна на панели задач, как это реализовано в том же ВинАмпе. Почти уверен, что то же самое можно реализовать и в Фубаре, но вот каким образом пока не знаю. Все настройки перелопатил, ничего похожего не нашёл. Помогите с реализацей скролла плиз.
snw
Новичок
Репутация: 0
С нами: 7 лет 10 месяцев

Сообщение #17 evil » 11.07.2009, 17:09

Что такое "скролл окна на панели задач"?
evil M
Модератор
Возраст: 35
Репутация: 62
С нами: 11 лет

Сообщение #18 snw » 11.07.2009, 18:07

[img width=400 height=29]http://keep4u.ru/imgs/b/2009/07/11/b3/b37af1ff5b21f1a85e653c83d6e92009.jpg[/img]
я про вот это окошко. в винампе текст в строке окна скроллится справа-налево, высвечивая название трека целиком, каким бы длинным оно не было.
Последний раз редактировалось snw 11.07.2009, 18:09, всего редактировалось 1 раз.
snw
Новичок
Репутация: 0
С нами: 7 лет 10 месяцев

Сообщение #19 evil » 11.07.2009, 19:02

Для Columns UI вот сюда (см. скриншот):
Изображение
вставить код:
Код: Выделить всё
//начинается скролл, если длина строки в заголовке более чем
$puts(startScrollFrom,40)
//строка-разделитель
$puts(separator,'  ***  ')
//количество повторений строки
$puts(repeat,3)

//шаблон строки заголовка окна
$puts(text,[%album artist% - ]$if(%album%,'['[%album%[ #%tracknumber%]]'] - ',)%title%[' // '%track artist%])
//надо ли скроллировать?
$puts(scrollable,$ifgreater($len($get(text)),$get(startScrollFrom),1,0))

$if(%ispaused%,
//на паузе не скроллируем
$get(text),
$ifequal($get(scrollable),1,
//если строка длиннее, чем startScrollFrom
$puts(scrollableText,$repeat($get(text)$get(separator),$get(repeat)))
$puts(n,$mod(%playback_time_seconds%,$len($get(scrollableText))))
$right($get(scrollableText),$sub($len($get(scrollableText)),$get(n)))
$left($get(scrollableText),$get(n))
,
$get(text)
)
)

Или для Default UI (см. скриншот):
Изображение
вставить код (использован шаблон по умолчанию и удалены переносы на новую строку):
Код: Выделить всё
$puts(startScrollFrom,40)$puts(separator,'  ***  ')$puts(repeat,3)$puts(text,[%album artist% - ]['['%album%[ CD%discnumber%][ #%tracknumber%]']' ]%title%[ '//' %track artist%])$puts(scrollable,$ifgreater($len($get(text)),$get(startScrollFrom),1,0))$if(%ispaused%,$get(text),$ifequal($get(scrollable),1,$puts(scrollableText,$repeat($get(text)$get(separator),$get(repeat)))$puts(n,$mod(%playback_time_seconds%,$len($get(scrollableText))))$right($get(scrollableText),$sub($len($get(scrollableText)),$get(n)))$left($get(scrollableText),$get(n)),$get(text)))

Код не зависит от интерфейса. Нужно только найти куда этот текст вставить (применить).
Последний раз редактировалось evil 11.07.2009, 20:00, всего редактировалось 1 раз.
evil M
Модератор
Возраст: 35
Репутация: 62
С нами: 11 лет

Сообщение #20 snw » 11.07.2009, 20:09

evil писал(а):Или для Default UI (см. скриншот):
не работает код  :-(
snw
Новичок
Репутация: 0
С нами: 7 лет 10 месяцев

След.

Вернуться в Секреты foobar2000