UniFM/О новых листах
Самый хороший лист должен состоять только из собственно списка элементов, причем со значками, заголовка вверху, причем в заголовке может быть три части: значок, собственно название и нечто вроде часов, и софт-меню, куда можно добавлять команды, причем так, что что это меню в конце концов многоуровневое, и между ними можно перемещаться.
— Так, а вот с этого момента поподробнее. Как нам сделать многоуровневое меню?
Ну пусть это будут некие объекты… Вектора, скажем, которые будут нести в себе список команд, которые соответствут данному меню. И устанавливая такой вектор в качестве меню, мы автоматически это все… короче, анимируем, двигаем и сменяем.
— Это если делать с горизонтальной анимацией. А ведь можно еще и с вертикальной… И чтобы там на фоне был драп, и по нему еще двигались эти линии в полном цвете! Это будет супер. Это будет самый красивый ФМ, чтоб мне быть…
Так, соответственно от листа нам потребуется:
- Методы для добавления / удаления / получения / и т. д. элементов списка.
- Методы для работы со строкой заголовка, причем часы там могут быть, а могут и не быть… Плевать, мы когда будем устанавливать заголовок, будем хранить где-нибудь всю строку, а выводить на экран только то, что помещается, причем надлежащим образом укороченное.
- Методы для работы с софт-кнопками. То есть, скажем, левая — вызвать меню, далее она же — назад, а правая — ОК скажем, или когда нет меню, то она — назад. А кто их будет менять?
- Методы для работы с целыми меню. То есть установить вектор меню, и что там еще…
А кто будет обрабатывать команды этого меню? Нужен CL. Только вот где? В самом листе или вне его?
Ну по идее меню будет переключать… Нет, не лист, вот именно что не лист, а то, чем этот лист (точнее, меню на нем) управляет! Значит, и CL должен быть им. Только тогда еще ему придется менять софт-команды на листе. Ну да это ладно.
В принципе те команды можно сделать и с отрицательным приоритетом, тогда они всегда будут становиться первыми в списке…
Так, от нового листа потребуется следующая ерунда.
- Заголовок. Это нормально.
- Часы. Это тоже нормально, следует только учитывать, что заголовок обрезается, а часы остаются.
- Хранить 2 строки заголовка: полную и обрезанную.
- Значок в заголовке. Он или есть, или его нет — это 2 разницы.
- Софт — меню. Как обычно, 2 команды, и еще третья центральная, только она отображается не текстом, а значком (устанавливается отдельно).
- Список элементов. У элемента есть текстовая часть, и есть, разумеется, значок. Но есть еще и цвет, и есть еще статус маркированности… Нет, это более высокоуровневая фишка, будет реализовываться через то, что этот лист контролирует, а для самого листа хватит смены значка и цвета обычными методами. ЛИСТ НЕ ЗНАЕТ ОБ
IMAGES
! Он максимум знает только оColors
, и все. Этого ему хватит.
— И все это делаем ЗАНОВО, с чистого листа. А может и НЕТ…
— Новый лист не делаем… пока. Пока оставим тот, что есть, ибо он хорош. Но, возможно, его можно будет доработать.