UniFM/О новых листах

Материал из Project D8
Перейти к: навигация, поиск

Самый хороший лист должен состоять только из собственно списка элементов, причем со значками, заголовка вверху, причем в заголовке может быть три части: значок, собственно название и нечто вроде часов, и софт-меню, куда можно добавлять команды, причем так, что что это меню в конце концов многоуровневое, и между ними можно перемещаться.

— Так, а вот с этого момента поподробнее. Как нам сделать многоуровневое меню?

Ну пусть это будут некие объекты… Вектора, скажем, которые будут нести в себе список команд, которые соответствут данному меню. И устанавливая такой вектор в качестве меню, мы автоматически это все… короче, анимируем, двигаем и сменяем.

— Это если делать с горизонтальной анимацией. А ведь можно еще и с вертикальной… И чтобы там на фоне был драп, и по нему еще двигались эти линии в полном цвете! Это будет супер. Это будет самый красивый ФМ, чтоб мне быть…

Так, соответственно от листа нам потребуется:

  1. Методы для добавления / удаления / получения / и т. д. элементов списка.
  2. Методы для работы со строкой заголовка, причем часы там могут быть, а могут и не быть… Плевать, мы когда будем устанавливать заголовок, будем хранить где-нибудь всю строку, а выводить на экран только то, что помещается, причем надлежащим образом укороченное.
  3. Методы для работы с софт-кнопками. То есть, скажем, левая — вызвать меню, далее она же — назад, а правая — ОК скажем, или когда нет меню, то она — назад. А кто их будет менять?
  4. Методы для работы с целыми меню. То есть установить вектор меню, и что там еще…

А кто будет обрабатывать команды этого меню? Нужен CL. Только вот где? В самом листе или вне его?

Ну по идее меню будет переключать… Нет, не лист, вот именно что не лист, а то, чем этот лист (точнее, меню на нем) управляет! Значит, и CL должен быть им. Только тогда еще ему придется менять софт-команды на листе. Ну да это ладно.

В принципе те команды можно сделать и с отрицательным приоритетом, тогда они всегда будут становиться первыми в списке…


Так, от нового листа потребуется следующая ерунда.

  1. Заголовок. Это нормально.
  2. Часы. Это тоже нормально, следует только учитывать, что заголовок обрезается, а часы остаются.
    • Хранить 2 строки заголовка: полную и обрезанную.
  3. Значок в заголовке. Он или есть, или его нет — это 2 разницы.
  4. Софт — меню. Как обычно, 2 команды, и еще третья центральная, только она отображается не текстом, а значком (устанавливается отдельно).
  5. Список элементов. У элемента есть текстовая часть, и есть, разумеется, значок. Но есть еще и цвет, и есть еще статус маркированности… Нет, это более высокоуровневая фишка, будет реализовываться через то, что этот лист контролирует, а для самого листа хватит смены значка и цвета обычными методами. ЛИСТ НЕ ЗНАЕТ ОБ IMAGES! Он максимум знает только о Colors, и все. Этого ему хватит.

— И все это делаем ЗАНОВО, с чистого листа. А может и НЕТ…

— Новый лист не делаем… пока. Пока оставим тот, что есть, ибо он хорош. Но, возможно, его можно будет доработать.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Список
Инструменты