Новости –  Прошивки –  Каталог навигаторов –  Восстановление навигатора

Вернуться   Мир Автомобильных навигаторов > PNA / PND Устройства > Альтернативное меню > Меню DUTSlaunch
Регистрация ФайлыПравила форумаБан-лист Справка Календарь Поиск Сообщения за день Все разделы прочитаны

 
  


     


Nokia N1 - первый Android-планшет известной финской компании
Закрытая тема
 
Опции темы
Старый 04.10.2009, 22:08   #16
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 13. Список внутренних команд оболочки

Запись таких команд является строгой, всё - в верхнем регистре и первый символ - знак ">" ("больше")

>SETUP - запуск системных Настроек
>SETUP_EXIT - выход из оболочки
>SETUP_OFF - выключить питание навигатора
>SETUP_RESET - перезагрузка навигатора
>SETUP_SKINS - сканирование папки skins (файлы skin.bmp) и выбор скина
>SETUP_SWITCH_TASK - альтернатива Alt-Tab: переключение двух задач
>SETUP_TASKS - вызвать встроенный менеджер запущенных приложений для принудительного их закрытия
>SETUP_PRINT_SCREEN- снятие копии экрана в файл (в папке запуска программы)
>SETUP_LANG_DEC - выбрать предыдущий язык
>SETUP_LANG_INC - выбрать следующий язык
>SETUP_LEVEL_DEC - уменьшить величину заряда автоотключения на 5%
>SETUP_LEVEL_INC - увеличить величину заряда автоотключения на 5%
>SETUP_NOFF - выполнить "не выключать" на запрос автооключения навигатора
>SETUP_SAVE_PROGPWR - запись назначенной на кнопку Power программы в @index.ini текущего скина


>SET_TIME_DEC - уменьшить системное время на 1 минуту
>SET_TIME_INC - увеличить системное время на 1 минуту
>SET_DATE_DEC - уменьшить дату на 1 день
>SET_DATE_INC - увеличить дату на 1 день
>SET_KEYPWR - перейти в режим определения кода кнопки Power
>SET_PWROFF - перейти в режим задания уровня заряда отключения питания

>MENU_BACK - вернуться к предыдущему меню
>MENU_KEYB - вкл/выкл экранную клавиатуру
>MENU_NOP - ничего не выполнять по нажатию

>PAGE_NEXT - внутренняя команда, вызывается при нажатии кнопки "Далее"
>PAGE_PREV - внутренняя команда, вызывается при нажатии кнопки "Назад"

>SET_GPS_OFF - отключить опрос приёмника GPS
>SET_GPS_ON - включить опрос приёмника GPS
>GPS_RESTART - перезагрузка приёмника GPS
>SET_GPS_PLUS - увеличить номер порта
>SET_GPS_MINUS - уменьшить номер порта
>SET_GPS_SPEED_PLUS - увеличить скорость порта (1200,2400,4800,9600,19200,38400)
>SET_GPS_SPEED_MINUS - уменьшить скорость порта
>SET_GPS_FIND - найти порт приёмника GPS
>SET_AUTOSET_TIME_ON - включить автосинхронизацию часов
>SET_AUTOSET_TIME_OFF -выключить автосинхронизацию часов
>SET_TIME_FROM_GPS - принудительная синхронизация часов

>SETUP_PROGPWR_DEC - перейти к предыдущему элементу из файла hotbuttons.inc
>SETUP_PROGPWR_INC - перейти к слудующему элементу из файла hotbuttons.inc

Кроме их, допускается эмуляция нажатия определенных клавиш. Такие команды начинаются с
префикса >KEYB_ и могут быть комбинацией из следующих значений:
BACK
TAB
CLEAR
ENTER
SHIFT
CTRL
ALT
ESC
SPACE
LEFT
UP
RIGHT
DOWN
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
а также цифро-буквенных символов.
Например:
Код:
>KEYB_ALT_TAB        - эмуляция комбинации Alt-Tab
>KEYB_ALT_F4         - эмуляция комбинации Alt-F4
>KEYB_ESC            - эмуляция нажатия клавиши "Esc"
>KEYB_CTRL_ALT_DEL   - эмуляция нажатия Ctrl-Alt-Del
>KEYB_ALT_Q          - эмуляция комбинации Alt-Q
>KEYB_Q              - эмуляция нажатия клавиши "Q"
>KEYB_SPACE          - эмуляция нажатия клавиши "пробел"
Примеры неправильных записей:
Код:
>KEYB_N_A_V          - нельзя указывать в одном ключе несколько символов
>KEYB_NAV            - аналогичная ошибка
>KEYB_CONTROL        - неправильная запись клавиши Ctrl
В [BUTTON] допустимо указать:
Код:
action=>KEYB_N;>KEYB_A;>KEYB_V  - для эмуляции последовательного нажатия 'N','A' и 'V'
Для возможности перебора необходимых комбинаций в системных Установках, их необходимо перечислить в файле hotbuttons.inc, который находится в папке skins\System (точнее, в языковом подкаталоге).
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 04.10.2009, 22:21   #17
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 14. Типы адресации внешних программ

Возможны три варианта указания пути к внешней программе:

1. Абсолютный путь. Характеризуется наличием обратного слэша в первой позиции:
Код:
       \SDMMC\Office\Calc.exe
       \Windows\explorer.exe
2. Относительный путь. Разценивается программой, если в первой позиции нет слэша. В этом случае путь считается относительно пути запуска программы DUTSlauncher:
Код:
       system\regedit.exe
       wavs\presskey.wav
3. Путь запуска программ с флэш-карты. Задается служебным словом CARD$. В зависимости от навигатора оно автоматически принимает значение либо SDMMС, либо Storage Card, либо другое.
Код:
       CARD$\Navipath\Navisoft.exe
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
5 пользователя(ей) сказали cпасибо:
Старый 04.10.2009, 22:45   #18
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 15. ЭЛЕМЕНТ [BITMAP]

Прорисовка отдельных картинок на фоновом изображении. Если данный элемент расположен в @index.ini, то он "фиксируется" на фоне и присутствует постоянно, не зависимо от текущего ini-файла. Так можно реализовать, например, логотип машины, создав его в отдельном файле и не изменив при этом файл с фоновой картинкой.

Параметры:
bmp - относительный путь и имя файла с картинкой
left и top - координаты расположения (не забываем про [BLOCK] для создания универсальных скинов.

а также необязательный параметр
transcolor - цвет прозрачности, или $000000 (если не использовать прозрачность), или $000001 (если определить прозрачность на основании цвета в точке 0,0). По умолчанию - $000001
Напоминаю, что особенностью использования значения цвета является шестнадцатиричная его запись, при этом сам цвет кодируется следующим образом: $BBGGRR.
Например:
Код:
$0000FF - красный
$00FF00 - зеленый
$FF0000 - синий
$00FFFF - желтый
$FFFFFF - белый
$00000 - черный, в программе не допустим!!!
Значения конкретного цвета можно узнать в любом графическом редакторе.

Кроме стандартного использования параметров left и top, допускается вариант для оформления универсальных скинов, который основан на следующем:
left=X+ - растянет картинку от начальной координаты до правой границы пользовательской области (если используется внутри [BLOCK] со значением U) или до правого края экрана
top=Y+ - растянет картинку от начальной координаты до нижней границы пользовательской области (если используется внутри [BLOCK] со значением U) или до нижнего края экрана
Здесь X и Y - любые конкретные значения.
Например:
Код:
[BLOCK]
  position=TL

  [BITMAP]
  bmp=OnePixel.bmp
  left=0+
  top=0
  transcolor=$000000

  [BITMAP]
  bmp=OnePixel.bmp
  left=0
  top=0+
  transcolor=$000000
[ENDBLOCK]
Здесь будут нарисованы две линии: по верхнему и левом краям экрана
Прим.: картинка OnePixel.bmp размером 1х1 точку любого цвета
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 04.10.2009, 22:57   #19
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 16. ЭЛЕМЕНТ [GPS]

Определяет графический элемент, соответствующий кол-ву задействованных спутников, т.е. качество связи с системой GPS.

Первый кадр должен соответствовать состоянию "ошибка инициализации GPS", второй - "связь с GPS отключена", третий -
"нет спутников", четвертый и так далее - по числу (для 1, для 2 и т.д. до N) задействованных спутников. Последний кадр определяется состоянием "для числа спутников, больше чем N").

Параметры:
bmp - относительный путь и имя файла с моноширинной картинкой, где отрисованы состояния связи
left и top - координаты расположения (не забывайте использовать [BLOCK] для создания универсальных скинов)
discrete - число дискретных состояний (кадров) в файле

Необязательный параметр:
transparent - будет использоваться прозрачный фон (по цвету в точке 0,0) или нет. По умолчанию - yes

Пример использования:

Код:
  [GPS]
  bmp=Elem\sat5.bmp
  discrete=7
  transparent=1
  left=102
  top=21
Здесь в sat5.bmp отрисованы кадры, представленные в прикреплённом файле
Изображения
Тип файла: jpg sat5.jpg (3.5 Кб, 48 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 04.10.2009, 23:15   #20
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 17. ЭЛЕМЕНТ [FILES]

Список файлов.

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

Обязательные параметры:

path - путь доступа к каталогу (используется логическая адресация)
titlecolor - цвет подписей под кнопками
width - ширина зоны чувствительности к нажатию
height - высота зоны чувствительности к нажатию

Параметры width и height в данном случае определяют ширину и высоту создаваемых кнопок. Рекомендуемые мной минимальные значения: 50 х 60, что прекрасно "ложится" под палец и исключает ошибочные нажатия на соседние кнопки (владельцы навигаторов с разрешением 320 х 240 могут прислонить палец к экрану, чтобы закрыть как раз примерно его четверть, т.е. 240/4 = 60 точек)

Необязательные параметры:
pathdown - грубина сканирования подкаталогов (0 - только указанный, без его подкаталогов, больше 1 - неограниченно). Используется для ускорения поиска файлов и вывода кнопок на экран. <по умолчанию - 0>
titlesize - размер шрифта (множитель относительно начертания в файле fontfile) <1>
shift - величина сдвига изображения кнопки по нажатию на неё (0 - без сдвига) <1>
font - имя шрифта для подписей <по умолчанию тот, что указан первым в @index.ini или значение "по умолчанию", указанное в [MAIN] текущего ini-файла>
titlestyle - стиль подписей <0>

Пример использования:

Код:
[FILES]
width=75
height=65
shift=1
path=CARD$\
pathdown=2
titlesize=1
titlecolor=$FFDDDD
В данном примере, взятом из Mini.ini, сканируется всё (т.к. указано pathdown=2) содержимое флэш-карты (path=CARD$)

Еще пример:
Код:
  [FILES]
  width=75
  height=75
  shift=1
  path=CARD$\system\
  pathdown=1
  titlesize=1
  font=small
  titlecolor=$0000FF
exe-файлы будут искаться на флэш-карте в подкаталоге system\ и в его подкаталогах, но глубиной не больше 1. Цвет подписей будет красным ($0000FF). Шрифт - small
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 04.10.2009, 23:28   #21
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию 18. ЭЛЕМЕНТ [PLUGIN]

Обеспечивает работу с плагинами.

Параметры:
left и top - координата начала области отображения
name - относительный путь и имя файла плагина
params - статические (например, начальные) параметры, передаваемые в плагин в произвольном формате. Например:
Код:
	      params=R:80,C1:$FFFFFF,C2:$00FF00,C3:$00FF00,S:0
список и формат параметров и значений зависит от конкретного плагина

visible - отображать ли результат работы плагина на экране
enabled - управление активностью плагина
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 05.10.2009, 00:11   #22
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 1.

Вначале нарисуем эскиз. Предполагается скин с пользовательской областью, чем-то смахивающий на скин NoGames:

1. Нарисовать на листе бумаги прямоугольник неважно какого размера - это будет экран
2. Разделить его пополам по вертикали и горизонтали, начертив соответствующие линии. Мы получили четыре независимых зоны и пять отправных точек отсчета - левый-верхний угол (LT), правый-верхний угол (RT), левый-нижний угол (LB), правый-нижний угол (RB) и центр (CM)
3. Определить область системных кнопок и других графических элементов (например текущее время, кач-во связи и уровень заряда), которые должны присутствовать постоянно. Их число определите, естественно, сами. Нарисуйте вокруг них прямоугольники так, чтобы элементы точно вписались в них.
4. В оставшуюся область вписываем прямоугольник со сторонами, параллельными сторонам нашего "экрана" - это и будет пользовательская область, которую мы зададим в элементе [USER].
5. На получившемся эскизе сразу становится видно, относительно какой точки отсчета будет расположен тот или иной элемент. Так часы получились относительно точки LT, батарейка - RT, а системеные кнопки - LB. Задав нужные элементы внутри [BLOCK]/[ENDBLOCK] с соответствующими значениями параметра position, мы сделаем первый шаг к универсальному меню.
Изображения
Тип файла: png les_01_1.png (2.8 Кб, 68 просмотров)
Тип файла: png les_01_2.png (4.8 Кб, 61 просмотров)
Тип файла: png les_01_3.png (7.1 Кб, 61 просмотров)
Тип файла: png les_01_4.png (13.0 Кб, 71 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 05.10.2009, 00:27   #23
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 2.

Определим размеры областей. Я настойчиво рекомендую в качестве исходного размера экрана брать размер 320х240 (минимальный размер для навигаторов) или 240х240 (если есть желание, чтобы скин работал и на наладонниках, и на навигаторах).

1. Задаем первоначальный размер "экрана".
2. Определяемся с размером системных кнопок и размерами графических элементов системного экрана.
3. Полученные значения и будут определять пользовательскую область. В данном примере получаем:
Код:
[USER]
left=0
top=10
right=-0
bottom=-60
Обратите внимание, что перед нулем в параметре right стоит минус. Этим мы сообщили программе, что будет использован отсчет именно от правого края экрана.

На правой миниатюре более "навороченный" вариант. Для него имеем:
Код:
[USER]
left=50
top=12
right=-50
bottom=-40
Но в дальнейших уроках использовать его не будем...
Изображения
Тип файла: png les_02_1.png (10.8 Кб, 38 просмотров)
Тип файла: png les_02_2.png (3.7 Кб, 81 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 05.10.2009, 01:36   #24
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 3.

Создаём главный файл скина - @index.ini.
Данное имя файла является обязательным, альтернатив не предполагается.

Что нам потребуется вначале:
Создадим в каталоге skins свою папку (пусть это будет primer). В этой папке создадим еще одну папку, назвав её, например, Shell. В ней будут:
1) bmp-файлы с нарисованными системными кнопками (пример одной приложил, её размер 60 х 50 точек, назовём для примера knopka11, т.е. первая кнопка, первое состояние). Если предполагаются кнопки с фиксацией выбранного меню, то для каждой кнопки надо создать три bmp-файла, для состояний "не нажато", "нажато" и "выбрано".
2) bmp-файл с нарисованным шрифтом для отображения текущего времени (d1.bmp).
3) bmp-файл для обозначения остаточного заряда аккумулятора.
4) bmp-файл с фоновой картинкой (back.bmp)

Итак, определяем самый первый элемент - [MAIN]:
Код:
[MAIN]
key2run=>SETUP_PRINT_SCREEN
bmp=Shell\back.bmp
method=stretch
Что здесь указано:
key2run - действие при нажатии на кнопку Power. В данном случае мы назначили снятие копии экрана - а как же без этого?
bmp - указали файл с фоновой картинкой, и что он лежит в папке Shell
method - указали, что фоновую картинку нужно расстянуть на весь экран. Этим мы сделали второй шаг к универсальному скину
Изображения
Тип файла: jpg d1.jpg (4.7 Кб, 14 просмотров)
Тип файла: jpg bat.jpg (2.3 Кб, 684 просмотров)
Тип файла: png les_03_1.png (1.8 Кб, 686 просмотров)
Тип файла: png les_03_2.png (1.5 Кб, 18 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 05.10.2009, 01:38   #25
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 4.

Размещаем системные элементы.

В нашем примере таких элементов три: часы, батарейка и кнопки.

1. Размещаем часы. Мы определились, что часы у нас расположены относительно левого верхнего угла экрана. Это означает, что точка отсчёта совпадает с началом координат экрана, и можно не пользоваться элементом [BLOCK], однако, когда у нас добавятся еще элементы, их группирование добавит "читабельности" тексту нашего скина. Итак, получаем:
Код:
[BLOCK]
  position=TL
  [TIME]
  bmp=Shell\d1.bmp
  count=0123456789:.
  left=1
  top=1
  transparent=yes
[ENDBLOCK]
Что мы указали внутри блока?
Код:
  bmp=картинка со шрифтом
  count=алфавит шрифта
  left=отступ в 1 точку от левого края
  top=отступ в 1 точку от верхнего края
  transparent=будет использоваться прозрачный фон
2. Теперь установим батарейку на место. Мы определили, что точка отсчёта - верхний-правый угол, т.е. TR:

Код:
[BLOCK]
  position=TR
  [ENERGY]
  bmp=Shell\bat.bmp
  transparent=yes
  left=36
  top=1
  x1=8
  x2=5
[ENDBLOCK]
Все параметры аналогичны [TIME], за исключением x1 и x2 - с их помощью мы указали программе, что будет использоваться "плавный" уровень заряда аккумулятора, а область изменения находится между позицией, расположенной на 8 точек правее левого края рисунка, и на 5 точек левее правого края.

3. Ну а теперь займёмся кнопками. Мы определили на эскизе, что кнопок будет 4; кнопки будут с фиксацией, значит всего в папке Shell должно быть 12 bmp-файлов (по 3 на каждую кнопку). Пусть это будут файлы knopka11.bmp, knopka12.bmp, knopka13.bmp, knopka21.bmp, knopka22.bmp, knopka23.bmp, knopka31.bmp, ..., knopka43.bmp. А расположение их будет относительно нижнего-левого угла экрана, т.е. BL (или LB, как вам будет удобней).


Код:
[BLOCK]

  position=BL

  [BUTTON]
  bmp1=Shell\knopka11.bmp
  bmp2=Shell\knopka12.bmp
  bmp3=Shell\knopka13.bmp
  left=0
  top=50
  color=$000000
  action=@menu1
  transcolor=$000000

  [BUTTON]
  bmp1=Shell\knopka21.bmp
  bmp2=Shell\knopka22.bmp
  bmp3=Shell\knopka23.bmp
  left=60
  top=50
  color=$000000
  action=@menu2
  transcolor=$000000

  [BUTTON]
  bmp1=Shell\knopka31.bmp
  bmp2=Shell\knopka32.bmp
  bmp3=Shell\knopka33.bmp
  left=120
  top=50
  color=$000000
  action=@menu3
  transcolor=$000000

  [BUTTON]
  bmp1=Shell\knopka41.bmp
  bmp2=Shell\knopka42.bmp
  bmp3=Shell\knopka43.bmp
  left=180
  top=50
  color=$000000
  action=@menu4
  transcolor=$000000

[ENDBLOCK]
Мы в предыдущем уроке определились, что размер каждой кнопки - 60 точек по горизонтали и 50 точек по вертикали.
Т.к. точка отсчета совпадает с нижним краем экрана, параметры top у всех кнопок меняют знак, т.е. будут указывать на смещение кверху (во внутрь экрана).
Параметры left отсчитываются от левого края и каждый раз увеличиваются на 60, если мы хотим сделать кнопки без отступа друг от друга. Т.к. кнопки прямоугольные и занимают всю поверхность своей картинки, прозрачность использовать не надо (transcolor=$000000), иначе может пропасть её часть (станет прозрачной).

Сохраним полученный текст в созданной ранее папке skins\primer под именем @index.ini.

Небольшое замечание:
В связи с тем, что у нас в папке skins\primer отсутствует файл skin.bmp, нужно:
- или создать его в графическом редакторе (любую картинку размером 120 х 90)
- или в текстовом редакторе подправить файл DUTSlaunch.cfg, указав SKIN=primer
Также перед запуском надо создать "пустой" файл @menu1.ini

Ниже приведён скрин того, что у нас получилось и архив с примером
Изображения
Тип файла: png les_04_1.png (2.0 Кб, 26 просмотров)
Тип файла: jpg les_04_2.jpg (15.0 Кб, 36 просмотров)
Тип файла: png les_04_3.png (4.2 Кб, 45 просмотров)
Вложения
Тип файла: rar les04.rar (4.6 Кб, 34 просмотров)
DUTS вне форума  
Старый 07.10.2009, 09:19   #26
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 5.

Скрин в предыдущем уроке вроде и красивый, но такую картинку вы увидите только в том случае, если у вас экран 320 х 240. А если, например 480х272, то картинка будет такой, как на прилагаемом нижне первом скрине.
С одной стороны видно, что все элементы расположились так, как и задумано. Но с другой стороны, нижняя белая полоска стала выше. Это из-за того, что она у нас нарисована в back.bmp и, следовательно, расстягивается вместе с остальным изображением. Что делать?
Нам потребуются три картинки для создания фона:
1. расстягиваемый фон, будет тот же самый голубой
2. фиксированный "верх" фона, синий с белой полоской снизу (на картинке ниже он желтый для видимости)
3. фиксированный "низ" фона, также синий, но с белой полоской сверху
При этом ширина исходных картинок в двух последних случаях (в данном примере) не играет никакой роли.
Теперь добавим две новые картинки ("верх" и "низ") в наш @index.ini:
Код:
# основные параметры
[MAIN]
key2run=>SETUP_PRINT_SCREEN
bmp=Shell\back.bmp
method=stretch

# верхняя полоска с синим фоном
[BLOCK]
  position=TL
  [BITMAP]
  bmp=Shell\back_up.bmp
  left=0+
  top=0
  transparent=no
[ENDBLOCK]

# нижняя полоска с синим фоном
[BLOCK]
  position=BL
  [BITMAP]
  bmp=Shell\back_down.bmp
  left=0+
  top=53
  transparent=no
[ENDBLOCK]
Результат на правом скрине. Как видно, он совершенно аналогичен скрину из предыдущего урока: такие же тонкие несмещенные линии, также расположены относительно их остальные элементы.

Обратите внимание на параметры left. Запись "0+" означает "расстянуть от точки 0 до правого края экрана". Параметр top в последнем случае равен 53 - это высота картинки back_up.bmp, раз мы хотим сделать, чтобы нижний её край совпал с краем экрана. При этом отсчет идет от нижнего края экрана (что указано в position - Bottom) и знак минус поэтому ставить не надо.

P.S. А, скажем, запись top=50+ расстянула бы картинку до нижнего края экрана, при этом начало выводимой картинки было бы в позиции top=50.

Ну что ж... Как говорится "вуаля!", @index.ini готов, можно идти дальше
Изображения
Тип файла: png les_05_1.png (6.0 Кб, 27 просмотров)
Тип файла: png les_05_2.png (2.0 Кб, 16 просмотров)
Тип файла: png les_05_3.png (968 байт, 678 просмотров)
Тип файла: png les_05_4.png (970 байт, 690 просмотров)
Тип файла: png les_05_5.png (6.0 Кб, 23 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 07.10.2009, 10:07   #27
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 6.

Переходим к пользовательским меню.
В нашем примере, как и оговорено в @index.ini, их будет четыре: @menu1.ini, @menu2.ini, @menu3.ini и @menu4.ini. И расположены они будут в том же каталоге, что и @index.ini.
Я остановлюсь только на двух из них, т.к. создание остальных совершенно аналогично и зависит только от вашей фантазии. Пусть это будет @menu1.ini - сюда мы поместим стрелочные часы и пару кнопок, а также @menu2.ini - обзор исполняемого содержимого флэшки.

Но пока мы не перешли к пользовательским меню, нужно сделать еще одну важную вещь: надо определить хоть один шрифт. Одним из важнейших принципов DUTSlaunch является решение проблемы с нерусифицированными навигаторами, что решается в данном случае использованием растровых шрифтов, определенных в соответствующих bmp-файлах.
Шрифт(-ы) лучше определить в @index.ini, что мы и сделаем:
Код:
# основные параметры
[MAIN]
key2run=>SETUP_PRINT_SCREEN
bmp=Shell\back.bmp
method=stretch

# определим шрифт
fontname=System
fontfile=Shell\sys9x12.bmp
alphabet=0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., %:-

# верхняя полоска с синим фоном
[BLOCK]
  position=TL
  [BITMAP]
  bmp=Shell\back_up.bmp
  left=0+
  top=0
  transparent=no
[ENDBLOCK]
В данном примере я предлагаю воспользоваться одним из моих шрифтов (здесь - sys9x12.bmp). Параметр alphabet задает строгое соответствие нарисованных начертаний конкретному символу. Ну а имя fontname естественно может быть любым, в уроках я буду использовать System, как здесь и определено.

В этом уроке создадим @menu1.ini

Вначале зададим кнопки.
Первая кнопка будет отвечать за выключение навигатора и будет располагаться где-то в верхнем левом углу:
Код:
[BLOCK]
  position=TL
  [BUTTON]
  bmp=Shell\knopkaOff.bmp
  left=0
  top=16
  action=>SETUP_OFF
  transcolor=$000000
  shift=1
  width=60
  height=40
[ENDBLOCK]
Размер картинки knopkaOff.bmp - 60 x 30. Для того, чтобы исключить "промахивание" при нажатии, можно сделать область чувствительности к нажатию чуть больше, в приведенном примере это задано через height=40. Ну а в параметре action мы указали внутреннюю команду "Выключить навигатор". Полный список команд приведен в соответствующем разделе данной Учебной части.

Аналогично определим и вторую кнопку, отвечающую за выход из оболочки, уже где-то в правом углу, не забыв сделать отступ от края, равный ширине картинке (у нас здесь это 60):
Код:
[BLOCK]
  position=TR
  [BUTTON]
  bmp=Shell\knopkaExit.bmp
  left=60
  top=16
  action=>SETUP_EXIT
  transcolor=$000000
  shift=1
  width=60
  height=40
[ENDBLOCK]
Ну и теперь украсим полученный результат "изюминкой". В прилагаемом ниже архиве есть файл clock.dll. Это т.н. "плагин", который в данном случае делает только одно - выводит стрелки аналоговых часов.
Мы хотим вывести их в центр пользовательской области, а не в центр экрана (что было бы очень некрасиво и криво). Значит надо ее указать, можно сразу после элемента [MAIN], можно перед ним:
Код:
[USER]
left=0
top=15
right=-0
bottom=-55
Эти цифры мы определили ещё на этапе эскиза.

Теперь где-то после кнопок укажем следующее:
Код:
[BLOCK]
  position=UCM
  [BITMAP]
  bmp=shell\clock.bmp
  top=-84
  left=-85
  transcolor=$000001
  [PLUGIN]
  name=clock.dll
  left=0
  top=0
  params=R:80,RC:5,C1:$0000FF,C2:$0000FF,C3:$0000FF,S:0
  visible=yes
  enabled=yes	
[ENDBLOCK]
Здесь: мы определили фоновую картинку часов (clock.bmp), ее расположение относительно центра (User's Center-Middle) пользовательской области и то, что фон у неё будет прозрачный и эта прозрачность будет определена цветом в точке (0,0) данной картинки (transcolor=$000001). В случае использования другой картинки не забывайте корректировать left и top.
В плагин передаются параметры, заданные в строке params, строка эта произвольная и её вид определяется исключительно потребностью того или иного плагина. В данном случае передаются: радиус часов, радиус центра (=0, чтобы стрелки из одной точки расходились) и цвета стрелок. Параметр S - 1, если нужно нарисовать временную сетку, или 0, если не нужно её рисовать (как в данном примере, ведь она уже нарисована на самой картинке).

Файл @menu1.ini успешно создан

Ну а рядышком исходный эскиз
Изображения
Тип файла: jpg les_06_1.jpg (6.7 Кб, 25 просмотров)
Тип файла: jpg les_06_2.jpg (15.9 Кб, 26 просмотров)
Тип файла: jpg les_06_3.jpg (14.5 Кб, 34 просмотров)
Тип файла: png les_01_4.png (13.0 Кб, 18 просмотров)
Вложения
Тип файла: rar les06.rar (57.8 Кб, 31 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
2 пользователя(ей) сказали cпасибо:
Старый 07.10.2009, 12:05   #28
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Как написать свой первый универсальный скин. Урок 7.

Создадим @menu2.ini.

Определим элемент [MAIN]
Код:
[MAIN]
offplugins=yes
autoset=yes
space=10
fontname=System
titlebottom=-5
Здесь:
первой командой (offplugins=yes) мы выключили все (в данном случае один) плагины.
затем (autoset=yes) указали, что будет использоваться авторасстановка кнопок (это еще один шаг к универсальному меню), отступ между рядами кнопок будет 10 точек, шрифт подписей будет System, а сами подписи поднимем для красоты несколько кверху от нижней границы кнопки (на -5 точек).
Продолжаем и зададим пользовательские параметры:
Код:
[USER]
left=0
top=15
right=-0
bottom=-55

bprev=Shell\ArrowLeft.ico
sprev=Назад
bnext=Shell\ArrowRight.ico
snext=Вперед
Как и в предыдущем меню, определили размеры области вывода, а затем определили вид кнопок листания и подписи под ними. В качестве картинок, как всегда, можно использовать как bmp-файлы, так и ico.

Ну и наконец:
Код:
[FILES]
width=75
height=65
shift=1
path=CARD$\
pathdown=2
titlesize=1
titlecolor=$FFDDDD
Здесь мы будем искать все (кроме MortScript.exe, его всё равно запускать нет смысла) exe-файлы на флэш-карте (мы указали начальный каталог поиска - CARD$ и неограниченную глубину сканирования вложенных каталогов - pathdown=2).

Вот и пока всё. Жду вопросов здесь

P.S. сканирование каталогов занимает определенное время, которое зависит от числа файлов на флэшке и её быстродействия - будьте к этому готовы....
Можно при возможности ускорить процесс, если известно, где и что искать:
pathdown=0 - искать только в указанном каталоге
pathdown=1 - искать в каталоге и его подкаталогах
pathdown=2 - искать в каталоге, его подкаталогах и глубже

примеры для path:
path=CARD$ - корневой каталог флэшки
path=\Windows\ - каталог Windows в ППЗУ навигатора
path=CARD$\Games\ - каталог Games на флэшке
Изображения
Тип файла: png les_07_1.png (13.7 Кб, 57 просмотров)
Тип файла: png les_07_2.png (17.8 Кб, 38 просмотров)
Вложения
Тип файла: rar les07.rar (60.9 Кб, 33 просмотров)
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 17.11.2009, 15:56   #29
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Элемент [CLOCK]

Определяет графический элемент "Аналоговые часы", а именно часовую, минутную и секундную стрелки. Внешний вид определяется с помощью элемента [BITMAP], подложенного" под [CLOCK]. Любой параметр стрелок может быть опущен (далее в угловых скобках указаны значения "по умолчанию"), при этом, если опущен основной радиус какой-либо стрелки, то она просто не будет отображаться на экране. Параметры:

left - [ч] горизонтальная координата центра часов
top - [ч] вертикальная координата центра часов

hourrad - [ч](*) конечный (основной) радиус часовой стрелки <0>
minuterad - [ч](*) конечный (основной) радиус минутной стрелки <0>

centerrad - [ч](*) начальный радиус стрелок, т.е. отступ от центра часов <0>

secondrad - [ч](*) конечный (основной) радиус секундной стрелки <0>
hourradstart - [ч](*) начальный радиус часовой стрелки (переопределяет зачение centerrad для данной стрелки) <0>
minuteradstart- [ч](*) начальный радиус минутной стрелки (переопределяетз начение centerrad для данной стрелки) <0>
secondradstart- [ч](*) начальный радиус секундной стрелки (переопределяет значение centerrad для данной стрелки) <0>
hourrad2 - [ч](*) конечный радиус обратной части часовой стрелки <6>
minuterad2 - [ч](*) конечный радиус обратной части минутной стрелки <8>
secondrad2 - [ч](*) конечный радиус обратной части секундной стрелки <10>
При этом, если данные параметры окажутся меньше соответствующих начальных радиусов, то обратная часть стрелки выводиться на экран не будет (как в случае секундной стрелки в приведенном ниже примере).

hourcolor - [ц](*) цвет часовой стрелки <$00FF00> (зеленый)
minutecolor - [ц](*) цвет минутной стрелки <$00FF00> (зеленый)
secondcolor - [ц](*) цвет секундной стрелки <$FFFFFF> (белый)

hourwidth - [ч](*) толщина часовой стрелки <3>
minutewidth - [ч](*) толщина минутной стрелки <2>
secondwidth - [ч](*) толщина секундной стрелки <1>
--------------------------------------------------------------------------------
Пример:
-------
Код:
     [BLOCK]
	position=UCM

  	[BITMAP]
	bmp=Elem\clock5.bmp
  	transcolor=$000001
  	left=-95
  	top=-95

  	[CLOCK]
  	left=0
  	top=0
  	centerrad=7
  	hourrad=45
  	minuterad=70
  	secondrad=82
  	hourrad2=12
  	minuterad2=14
  	secondradstart=75
  	hourcolor=$A05050
  	minutecolor=$A05050
  	secondcolor=$0000FF
     [ENDBLOCK]
Прим.: данный пример реализован в скине Blue. Подложка часов - в файле clock5.bmp.
Часы размещаются в центре пользовательской области (position=UCM).
Секундная стрелка - в виде маленькой красной черточки, движущейся по внешнему
контуру циферблата (начальный радиус = 75, конечный = 82).
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
Старый 17.11.2009, 16:04   #30
DUTS
Долгожитель
 
Аватар для DUTS
Доп. информация
По умолчанию Элемент [SPEEDOMETER]

Определяет графический элемент "Спидометр", а именно стрелку, развертку циферблата и, при необходимости, значения ограничения скорости и файл звуковой индикации превышения.
Внешний вид определяется с помощью элемента [BITMAP], "подложенного" под [SPEEDOMETER]. Любой параметр может быть опущен (далее в угловых скобках указаны
значения "по умолчанию"). Если предполагается использование массива limits, то в скине
необходимо предусмотреть кнопки выбора (или перебора) его элементов, указав в параметрах action команды >SET_SPEEDLIMIT_MINUS, >SET_SPEEDLIMIT_PLUS или >SET_SPEEDLIMIT#n (где n - порядковый номер нужного ограничения, начиная с 0).
Параметры:

left - [ч] горизонтальная координата "оси" стрелки
top - [ч] вертикальная координата "оси" стрелки
rad - [ч](*) конечный (основной) радиус стрелки <105>
radstart - [ч](*) начальный радиус стрелки <9>
maxspeed - [ч](*) максимальная скорость <140>
anglemin - [ч](*) угол в градусах, соответствующий скорости 0 <-15>
anglemax - [ч](*) угол в градусах, соответствующий скорости maxspeed <195>
color - [ц](*) цвет стрелки и индикатора ограничения скорости <$0000FF> (красный)
play - [т](*) путь к wav-файлу, который будет воспроизведен при превышении скорости
limits - [т](*) список значений ограничения скорости, указанных через запятую, при этом указанное значение, большее 300, отключает режим ограничения.
pointerwidth - [ч](*) ширина стрелки, если не указан pointerbmp <3>
pointerbmp - [т](*) путь к bmp-файлу, содержащему стрелку
pointerx - [ч](*) горизонтальная координата центра вращения
pointery - [ч](*) вертикальная координата центра вращения
value - [ч](*) тестовое значение скорости при разработке и отладке спидометра во время написания скина, в рабочем варианте данный параметр должен отсутствовать.

Пример:
Код:
  [SPEEDOMETER]
  left=0
  top=62
  anglemin=-60
  anglemax=240
  maxspeed=250
  color=$0000FF
  limits=60,90,110,200,500
  pointerwidth=4
Прим.: 0 градусов - направление от центра влево, 90 - от центра вверх, 180 - вправо. Толщина стрелки равна 4 точкам.

Кнопки выбора текущего ограничения скорости для данного примера могут быть:
Код:
#Уменьшить предел скорости
[BUTTON]
....
action=>SET_SPEEDLIMIT_MINUS


#Увеличить предел скорости
[BUTTON]
....
action=>SET_SPEEDLIMIT_PLUS

#Выбрать предел скорости №0 - 60 км/ч
[BUTTON]
....
action=>SET_SPEEDLIMIT#0

.... аналогично номера 1, 2 и 3 для выбора 90, 110 и 200 км/ч

#Выбрать предел скорости №4 - не ограничено
[BUTTON]
....
action=>SET_SPEEDLIMIT#4
__________________
Прежде чем написать критическое замечание, прочтите прилагаемые описания...
DUTS вне форума  
4 пользователя(ей) сказали cпасибо:
Закрытая тема

Опции темы



Текущее время: 11:57. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot

Копирайты