визуализация пользовательского интерфейса
Классы МПК: | G06F3/048 средства взаимодействия для графических интерфейсов пользователя, например взаимодействие через окна, иконки или меню H04W8/18 обработка данных пользователя или абонента, например, обслуживание абонента, предпочтения пользователя или параметры пользователя; передача данных пользователя или абонента |
Автор(ы): | БАТЛИН Стефан Джеффри (GB), КЛЭРИ Николас Хоулдер (GB), БЛАУКОПФ Якоб Бенджамин (GB), БРУК Николас Карл (GB) |
Патентообладатель(и): | КВЭЛКОММ КЕМБРИДЖ ЛИМИТЕД (GB) |
Приоритеты: |
подача заявки:
2005-02-21 публикация патента:
10.03.2010 |
Предлагается пользовательский интерфейс, который определен множеством акторов и атрибутами, связанными с акторами. Техническим результатом является улучшение возможности быстрого и простого обновления и визуализации пользовательского интерфейса при использовании минимальной мощности обработки данных. Для визуализации пользовательского интерфейса в соответствии с атрибутами акторов используется модуль визуализации. Изменения в атрибутах акторов, например в ответ на нажатие клавиши, вызывают обновление пользовательского интерфейса. 3 н. и 9 з.п. ф-лы, 5 ил., 25 табл.
Формула изобретения
1. Способ визуализации пользовательского интерфейса для устройства, содержащий этапы, на которых:
обеспечивают множество акторов, причем каждый из множества акторов связан с соответствующим элементом пользовательского интерфейса и содержит один или более атрибутов, определяющих внешний вид и функциональные возможности соответствующего актора, и каждый из атрибутов акторов содержит язык разметки;
обеспечивают модуль визуализации для приема одного или более атрибутов от одного или более акторов из множества акторов; и визуализируют пользовательский интерфейс исключительно в соответствии с принятыми атрибутами акторов; и
когда значение атрибута изменяется, модуль визуализации незамедлительно уведомляется и пользовательский интерфейс обновляется соответствующим образом.
2. Способ по п.1, в котором, если атрибут актора обновляется, то это обновление принимается модулем визуализации, и пользовательский интерфейс обновляется соответствующим образом.
3. Способ по п.2, в котором атрибут актора обновляется в ответ на обновление со стороны пользователя.
4. Способ по п.2, в котором обновление атрибута вызывает изменение форматирования элемента пользовательского интерфейса.
5. Способ по п.2, в котором обновление атрибута вызывает перемещение элемента пользовательского интерфейса внутри пользовательского интерфейса.
6. Способ по любому предыдущему пункту, в котором модуль визуализации является модулем визуализации языка разметки.
7. Носитель данных, содержащий машиноисполняемый код для выполнения способа по любому из пп.1-6.
8. Устройство, содержащее пользовательский интерфейс, причем пользовательский интерфейс содержащит один или более элементов пользовательского интерфейса; множество акторов, причем каждый из множества акторов связан с соответствующим элементом пользовательского интерфейса и содержит один или более атрибутов, определяющих внешний вид и функциональные возможности соответствующего актора; и каждый из атрибутов акторов содержит язык разметки; и модуль визуализации, причем модуль визуализации, конфигурируемый при его использовании таким образом, чтобы интерпретировать атрибуты, связанные с одним или более акторами из множества акторов, и визуализировать пользовательский интерфейс исключительно в соответствии с атрибутами акторов; и когда значение атрибута изменяется, модуль визуализации незамедлительно уведомляется и пользовательский интерфейс обновляется соответствующим образом.
9. Устройство по п.8, причем это устройство дополнительно содержит средство отображения для отображения пользовательского интерфейса.
10. Устройство по п.8 или 9, причем это устройство дополнительно содержит интерфейс связи для приема дополнительных акторов для использования при визуализации пользовательского интерфейса.
11. Устройство по п.8, причем это устройство дополнительно содержит запоминающее средство, сконфигурированное для хранения множества акторов.
12. Устройство по п.8, причем это устройство дополнительно содержит средство обработки данных, сконфигурированное для управления модулем визуализации.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к визуализации пользовательского интерфейса и, в частности, к визуализации пользовательского интерфейса для устройств связи.
Предшествующий уровень техники
Устройства связи, такие как, например, мобильные телефоны и персональные цифровые помощники (PDA), имеют в своем составе экраны отображения все более крупного размера и все более высокой разрешающей способности. Учитывая ограниченные возможности по обработке данных в этих устройствах, желательно предложить пользователям привлекательный пользовательский интерфейс, который облегчает использование устройства и обеспечивает быстрый отклик на вводимые пользователем команды. Для некоторых устройств, таких как мобильные телефоны, имеется значительная заинтересованность в том, чтобы предоставлять пользовательские интерфейсы, которые могут быть быстро и с легкостью обновлены пользователем и/или оператором сети так, чтобы контент (информационно значимое содержимое), предназначенный для обновления пользовательских интерфейсов, мог быть размещен у пользователей. Известные подходы имеют ту тенденцию, что либо в них отсутствует требуемая гибкость, либо для них требуются значительные и нежелательные уровни возможностей по обработке данных.
Сущность изобретения
В соответствии с первым аспектом настоящего изобретения предусмотрен способ визуализации пользовательского интерфейса для устройства, причем способ, содержащий этапы, на которых предоставляют множество модулей-деятелей (акторов), причем каждый из множества модулей-деятелей связан с элементом пользовательского интерфейса и содержит один или более атрибутов, определяющих соответствующего модуля-деятеля; предоставляют модуль визуализации для приема одного или более атрибутов от одного или более модулей-деятелей из множества модулей-деятелей и визуализируют пользовательский интерфейс в соответствии с принятыми атрибутами.
В соответствии со вторым аспектом настоящего изобретения предусмотрен носитель данных, содержащий машиноисполняемый код для выполнения вышеописанного способа.
В соответствии с третьим аспектом настоящего изобретения предусмотрено устройство, содержащее пользовательский интерфейс, причем пользовательский интерфейс, содержащий один или более элементов пользовательского интерфейса; множество модулей-деятелей, причем каждый из множества модулей-деятелей связан с элементом пользовательского интерфейса и содержит один или более атрибутов; и модуль визуализации, причем модуль визуализации, конфигурируемый при его использовании таким образом, чтобы интерпретировать атрибуты, связанные с одним или более модулями-деятелями из множества модулей-деятелей, и визуализировать пользовательский интерфейс соответствующим образом.
Перечень чертежей
Фигура 1 - схематическое изображение системы, воплощающей в себе настоящее изобретение;
Фигура 2 - более подробное изображение структуры и функционирования сервера (100);
Фигура 3 - схематическое изображение программного обеспечения (400) для мобильных устройств (300);
Фигура 4 - схематическое изображение инструментального набора (200) контента; и
Фигура 5 - схематическое изображение устройства, которое содержит пользовательский интерфейс в соответствии с вариантом осуществления настоящего изобретения.
Подробное описание изобретения
Изобретение будет далее описано только в качестве иллюстрации и в отношении прилагаемых к описанию чертежей, на которых Фигура 1 показывает схематическое изображение системы, содержащей сервер (100), инструментальный набор (200) контента, мобильные устройства (300), системы (OSS) (700) операционной поддержки, средства (500) подачи контента и источники (600) пользовательского интерфейса (UI). При использовании сервер (100) передает данные контента и данные пользовательского интерфейса мобильным устройствам (300), (301), , каждое из которых содержит пакет (400) программного обеспечения. Сервер (100) сопрягается с системами (700) операционной поддержки, представляющими собой системы, традиционно используемые для управления мобильными сетями, например, системы билинга (выставления счетов), ведения счетов абонентов и т.д. Кроме того, сервер (100) сопрягается с инструментальным набором (200) контента: инструментальный набор (200) контента принимает данные из источников (600), (601), пользовательского интерфейса и упаковывает данные пользовательского интерфейса таким образом, чтобы сервер мог передать упакованные данные пользовательского интерфейса пакетам (400) программного обеспечения, содержащимся внутри мобильных устройств (300). Сервер принимает данные от множества средств подачи контента, и эти данные обрабатываются и упаковываются таким образом, что они могут быть посланы пакетам (400) программного обеспечения или так, что мобильные устройства (300) могут осуществить доступ к этим данным, используя пакеты (400) программного обеспечения.
Эта система может быть представлена разделенной на три отдельные сферы: сфера (50) оператора содержит системы и оборудование, управляемые оператором (MNO) мобильной связи; сфера (60) пользователей содержит множество мобильных устройств; а сфера (70) третьей стороны содержит средства подачи контента, средства подачи пользовательского интерфейса, которые могут контролироваться или управляться рядом различных субъектов.
Фигура 2 более подробно изображает структуру и функционирование сервера (100). Сервер (100) содержит публикующий компонент (110) и компонент (150) «сервер контента». Публикующий компонент содержит базу данных (111), очередь (112) импорта, интерфейс (113) инструментального набора контента; пользовательский интерфейс (114) и каталог (115). При работе публикующий компонент принимает контент от инструментального набора контента через интерфейс инструментального набора контента. Контент представлен в форме посылки (210а), (210b) и т.д. (смотри ниже), содержащей один или более «тригов» и один или более «триглетов». «Триг» представляет собой пользовательский интерфейс для мобильного устройства, такого как мобильный телефон, а «триглет» представляет собой файл данных, который может быть использован для того, чтобы расширить или изменить «триг». Если посылка содержит более чем один «триг», то один из «тригов» может быть главным «тригом», от которого производны остальные «триги».
Фигура 3 приводит схематическое изображение программного обеспечения (400) для мобильных устройств (300), которое содержит: модуль (410) визуализации языка разметки; администратор (420) обновлений; агент (425) сетевой связи; администратор (430) ресурсов; виртуальную файловую систему (435); администратор (440) модулей-деятелей; множество модулей-деятелей (акторов) (445а), (445), ; собственный модуль (450) визуализации пользовательского интерфейса; администратор (460) поддержки, администратор (465) «тригов» и модуль (470) анализа языка разметки.
Это программное обеспечение может функционировать, используя язык TrigML, который является приложением языка XML (Расширяемого языка разметки), и таким образом, что модуль (410) визуализация языка разметки осуществляет визуализацию кода TrigxML для отображения на мобильном устройстве (300). Модуль визуализации языка разметки также использует модуль анализа TrigML для анализа TrigML-ресурсов, отображает контент на экране устройства и управляет замещением и просмотром контента на телефонной трубке. Собственный модуль визуализации пользовательского интерфейса используется для отображения компонентов пользовательского интерфейса, которые могут быть отображены без использования TrigML, и для отображения сообщений об ошибках.
Программное обеспечение (400) предоставляется и устанавливается специфическим для устройства образом. Аналогичным образом, модернизации программного обеспечения проводятся специфическим для устройства образом. Программное обеспечение может быть предоставлено в более ограниченном формате в качестве замкнутого (не допускающего расширения) приложения, которое визуализирует только встроенный в него контент: то есть программное обеспечение предоставляется со встроенным «тригом», но дополнительные «триги» не могут быть добавлены позже. Поставленный «триг» может быть модернизирован через эфирную передачу.
Администратор (465) «тригов» представляет интерфейс администратору (430) ресурсов и модулю визуализации языка разметки. Он отвечает за администрирование «тригов» в общем. Это включает в себя: сохранение знания об используемом «триге», смену текущего «трига», выбор «трига» при запуске, выбор дополнительного «трига» в качестве замены для испорченного «трига», поддержание набора установленных «тригов», указание администратору ресурсов того, где установлен конкретный «триг», и считывание определений канала обновления «трига» и соответствующее конфигурирование администратора обновлений.
Администратор ресурсов предоставляет абстракцию постоянного хранилища на устройстве, то есть хранения файлов как реальных файлов или как записей в базе данных. Администратор ресурсов представляет интерфейс файловой системы модулю визуализации языка разметки и администратору обновлений. Он отвечает за обработку логики пути доступа к файлу, проведения различия между файлами реальных ресурсов и атрибутами модулей-деятелей, отображение относительных путей к «тригам» в абсолютные пути, сопряжение с администратором «тригов» и предоставление интерфейса изменений администратору обновлений.
Администратор ресурсов также отвечает за обеспечение целостности ресурсов, хранящихся в постоянном хранилище, особенно ввиду непредвиденных прерываний, таких как отключение электропитания устройства. У администратора ресурсов нет знания о том, какой «триг» используется в текущий момент. Его интерфейс надежен по отношению к потокам выполнения (поскольку он может быть использован как администратором обновления, так и модулем визуализации из различных потоков).
Администратор обновлений обрабатывает прием и применение «тригов» и «триглетов». Администратор обновлений представляет интерфейс модулю визуализации и администратору «тригов» и отвечает за: инициацию обновлений в ручном режиме, когда ему дается команда модулем визуализации; управление и реализацию канала автоматического обновления, когда так сконфигурировано администратором «тригов»; указание хода обновления в ручном режиме и восстановление обновления вслед за неожиданной потерей сетевого соединения и/или отключением электропитания устройства. Формат пакета обновления может быть определен как преобразование в двоичную последовательную форму XML-схемы.
Администратор поддержки предоставляет интерфейс для других компонентов для сообщения о том, что произошло событие или ошибка. В зависимости от серьезности ошибки, администратор поддержки зарегистрирует событие и/или выдает всплывающее сообщение об ошибке.
XML представляет собой удобный язык форматирования данных, который используется для определения формата пакета обновления, равно как TrigML-контента. По причинам, связанным с эффективным использованием ширины полосы частот и запоминающего устройства, текст на XML преобразовывается в последовательную форму в двоичном представлении. Как пакеты обновлений, так и TrigML-фрагменты подвергаются анализу (разбору) тем же самым компонентом - модулем анализа языка разметки. При любом дальнейшем использовании XML в программном обеспечении должно использоваться двоичное кодирование и, следовательно, повторно использоваться модуль анализа.
Администратор 440 модулей-деятелей следит за набором модулей-деятелей (445), имеющихся в этом программном обеспечении. Он используется: модулем визуализации, когда контент посылает события модулю-деятелю; модулями-деятелями, которые хотят уведомить об изменении значения атрибута; и модулями-деятелями, которые хотят эмитировать событие (смотри ниже).
Программное обеспечение может содержать многопотоковое приложение, выполняющее, как минимум, два потока выполнения, притом, что возможно и больше, в зависимости от того, сколько и какого вида модулей-деятелей включено в его состав. Программное обеспечение выполняется, главным образом, в один поток, именуемый основным потоком. Основной поток используется для выполнения модуля визуализации, который осуществляет синхронную связь с другими компонентами. Модули-деятели всегда имеют синхронный интерфейс с модулем визуализации. Если модуль-деятель требует для своей работы дополнительные потоки выполнения, то обязанность по поддержанию связи между потоками лежит на модуле-деятеле. Для того, чтобы избежать ненужного дублирования кода там, где поддержание связи между потоками требуется многими модулями-деятелями, может быть использована упрощенная система обмена сообщениями. Следует понимать, что возможна также реализация этого программного обеспечения, использующего однопотоковую работу.
В дополнение к основному потоку выполнения администратор обновлений выполняет сетевой поток выполнения. Сетевой поток выполнения используется для загрузки пакетов обновления, и он отделен от основного потока, что позволяет модулю визуализации продолжать свою работу, не будучи затронутым до тех пор, пока не поступит пакет. Администратор обновлений отвечает за обработку обмена сообщениями между потоками выполнения, так что при применении изменений, определенных в пакете обновления, администратор обновлений осуществляет синхронную связь с модулем визуализации и администратором ресурсов.
Стратегия распределения памяти программного обеспечения является зависящей от платформы. На MIDP-платформах программное обеспечение просто использует системную, динамически распределяемую область памяти и программу очистки памяти для всех своих потребностей в памяти. Для того чтобы сделать очистку памяти предсказуемой и не испытывать неожиданных перерывов в работе, очистка памяти принудительно осуществляется всякий раз, когда происходит событие замены контента. Предполагается, что любое распределение памяти может дать сбой, и в этом случае программное обеспечение уничтожит все свои ссылки на объекты, осуществит очистку памяти и перезапуск при условии, что программное обеспечение было уже успешно запущено и визуализировало первую страницу.
В платформах, основанных на языке С++ из системной, динамически распределяемой области памяти, будет выполняться смешанное распределение, состоящее из предварительного распределения памяти и распределения памяти по требованию. Вся память, требующаяся для запуска, распределяется по требованию во время запуска, притом, что любой сбой здесь вызывает выход из программы (по возможности, с сообщением). Вслед за успешным запуском производится предварительное распределение памяти, необходимой для визуализации этой модели документа контента. При условии, что контент создан таким образом, чтобы использовать памяти меньше, чем определенный предел, контенту гарантирована визуализация. Дополнительно производится использование ОЗУ (оперативного запоминающего устройства, RAM) для разнообразных кэшей, необходимых для быстрой работы программного обеспечения. В случае, когда требования к памяти являются низкими, эти кэши будут освобождены, что имеет своим результатом медленное выполнение визуализации из этого программного обеспечения.
Ошибки, достаточно серьезные для того, чтобы прервать нормальную работу программного обеспечения, должны иметь своим результатом всплывающую диалоговую рамку. Эта диалоговая рамка содержит одно из малого количества международных сообщений об ошибках (международные версии этих строк могут быть скомпилированы в программном обеспечении во время компоновки вместе с версией отображаемой строки сообщения об ошибке, определяемой соответствующей языковой настройкой на этом устройстве). Для того чтобы свести количество сообщений к минимуму, ими охвачены только несколько общих проблем.
Учитывая ситуации оказания поддержки, диалоговые сообщения об ошибках также отображают код ошибки в виде 4-значной (16-битовой) шестнадцатеричной строки. Каждый код ошибки связан с текстом описания, которое может быть использовано оказывающим поддержку персоналом для определения характера проблемы с программным обеспечением. Ошибки, которые имеют место в программном обеспечении и которые не являются в достаточной мере серьезными для того, чтобы остановить его операции, могут быть зарегистрированы компонентом «администратор поддержки». Администратор поддержки может быть запрошен пользователем, набирающим специальную последовательность клавиш. Администратор поддержки может также передать свой журнал ошибок серверу посредством метода GET (Получение) или POST (Почта) HTTP-протокола (Протокола передачи гипертекста).
Модуль визуализации принимает информацию, касающуюся нажатия клавиши. Если отсутствует режим, сконфигурированный в момент компоновки для клавиши, то эта информация посылается в качестве события TrigML-контента в элемент с текущим фокусом. Это событие контента затем обрабатывается так, как это определено нормальной логикой обработки событий в языке TrigML.
Например, если нажата клавиша, то модулю визуализации поступает событие 'keypress' ('нажатие клавиши') с параметром, установленным на соответствующую клавишу. Когда клавиша отпущена, модулю визуализации поступает событие '!keypress' ('!нажатие клавиши'). Если клавиша держится нажатой в течение длительного периода времени, то модулю визуализации поступает событие 'longkeypress' ('длительное нажатие клавиши'). Когда ее отпускают, модулю визуализации поступает как событие '!keypress', так и событие '!longkeypress' ('!длительное нажатие клавиши').
Когда бы ни было запущено программное обеспечение, оно исполняет следующие действия:
. проверку на наличие и продолжение прерванной обработки обновления;
. проверку на наличие и обработку обновлений, постоянно находящихся в файловой системе (либо заранее там предусмотренных, либо установленных в файловую систему некоторым другим средством);
. запуск текущего «трига», если он известен (каковой «триг» может быть последним исполнявшимся «тригом»);
. если текущий «триг» не установлен, то может быть запущен «триг», который отмечен флагом как «триг» 'по умолчанию';
. при отсутствии «трига» по умолчанию будет выбран первый действительный «триг» в алфавитном порядке по имени.
«Триг» запускается посредством загрузки определенного имени ресурса, запуск/умолчание. TrigML-код, определенный в «запуск/умолчание», подвергается анализу как новый контент для корневого узла контента.
Когда «триг» исполняется программным обеспечением в первый раз после его установки, «триг» запускается посредством загрузки имени ресурса, запуск/первый раз. Программное обеспечение может записывать то, исполнялся «триг» или нет, в файл, расположенный в папке верхнего уровня для этого «трига». В зависимости от платформы, используемой мобильным устройством, автоматический запуск программного обеспечения может быть установлен в качестве опции конфигурации во время компоновки. Кроме того, помещение программного обеспечения в режим фоновой работы вслед за автозапуском также может быть опцией конфигурации во время компоновки.
Запускающий элемент может выглядеть для пользователя как пиктограмма приложения, и ее выбор запускает программное обеспечение с «трига», определенного этим модулем запуска (этот «триг» может быть указан пиктограммой запускающего элемента и/или именем). При использовании запускающего элемента для запуска «трига» имеется возможность определить параметр 'entry point' ('точка входа'). Этот параметр представляет собой имя ресурса файла, найденного в папке 'start-up' ('запуск'). Этот файл не используется, если этот «триг» никогда ранее не исполнялся, и в этом случае вместо этого используется файл, именуемый 'firsttime' ('первый раз').
Программное обеспечение использует файлы ресурсов контента, хранящиеся в виртуальной файловой системе на устройстве. Файловая система описана как виртуальная, поскольку она может быть реализована не в качестве классической файловой системы, однако все ссылки на ресурсы представляют собой пути доступа к файлам, как будто они хранятся в иерархической системе папок и файлов.
Ниже, в приложении А, приводятся подробности, касающиеся организации файловой системы для варианта осуществления настоящего изобретения. Помимо этого программное обеспечение хранит некоторую или всю из нижеследующей информации: статистику использования, активные счета пользователей, состояние администратора «тригов», TrigML-фрагменты и определение канала обновления (преобразованные в последовательную форму в виде двоичного формата языка XML); изображения в формате PNG (Переносимой сетевой графики); простой текст, закодированный в формате UTF-8 ОТА (Формат 8 ОТА, преобразование универсального набора символов (UCS)) и затем сохраненный в системе кодирования, специфичной для платформы; другие ресурсы, специфичные для платформы, например, файлы с мелодиями звонков, фоновые изображения и т.д.
Файлы в этой файловой системе могут быть изменены либо при изменении значения атрибута модуля-деятеля, либо при замене файла «триглетом». Когда файлы в директории/attrs изменяются, модуль визуализации немедленно получает уведомление об этом, и соответствующие ветви дерева контента обновляются и регенерируются. Когда изменяют изображения и текстовые ресурсы, модуль визуализации ведет себя таким образом, как будто затронутые ресурсы немедленно перезагружаются (может быть регенерировано либо все дерево контента, либо только затронутые его ветви). Когда изменяют TrigML-фрагменты, модуль визуализации ведет себя таким образом, как будто он не был уведомлен и продолжает отображать свой текущий, возможно, устаревший контент. Это сделано для того, чтобы избежать необходимости постоянно хранить элементы<include>(<включение в себя>) и историю элемента<load>(<загрузка>) текущего контента.
Программное обеспечение (400) предоставляется мобильному устройству специфическим для устройства способом. Один или более «тригов» могут быть предоставлены как часть процесса установки, например, они могут быть сохранены в виде несжатого пакета обновления. При запуске этот пакет может быть развернут и установлен в файловую систему.
Модули-деятели (445) представляют собой компоненты, которые публикуют значения атрибутов и обрабатывают и эмитируют события. Модули-деятели осуществляют синхронную связь с модулем визуализации. Если модулю-деятелю необходим асинхронный режим работы, то обязанность по администрированию потока выполнения, внешнего по отношению к основному потоку выполнения модуля визуализации, и по поддержанию связи с этим потоком лежит на модуле-деятеле.
Атрибуты модуля-деятеля могут считываться как файловые ссылки. Атрибуты относятся к одному из четырех типов: единичное простое значение; вектор простых значений; простая структура полей, где каждое поле имеет простое значение; или вектор структур. Ссылки на атрибуты могут быть даны посредством выражения, использующего нотацию объект. элемент, аналогичную многим объектно-ориентированным языкам программирования:
<image res= signallevels/{protocol.signalstrength} />
Когда атрибут нужен как файл, то доступ к нему осуществляется через папку /attr.
<text res= /attr/network/name >
Модулю-деятелю может быть дано сообщение посредством посылки ему события элементом<throw>(<вбрасывание>). События, эмитированные модулями-деятелями, могут быть доставлены дереву контента в качестве контент-событий: они могут быть нацелены на идентификатор элемента или на 'вершину'. Интерфейс модуля-деятеля определен файлом определения интерфейса модуля-деятеля. Он представляет собой XML-документ, который определяет атрибуты, типы, имена полей, входящие события и параметры, и исходящие события. Набор модулей-деятелей может быть сконфигурирован во время компоновки для программного обеспечения. Приложение В приводит примерный перечень некоторых модулей-деятелей, которые могут быть использованы, вместе со связанными с ними функциями или переменными.
Обновления содержат новый «триг» (новый или заменяющий пользовательский интерфейс) или «триглет» (изменение, вносимое в существующий «триг») и могут рассматриваться как изменения, вносимые в файловую систему программного обеспечения. Администратор обновлений должен определять, что требуется изменить в файловой системе при чтении пакета. Пакеты обновлений могут быть загружены через эфир посредством программного обеспечения (400) c использованием HTTP-протокола (Протокола передачи гипертекста) или других подходящих транспортных механизмов, обернутыми в специфический для устройства упаковочный формат, или могут быть предоставлены заранее при установке самого программного обеспечения.
Обновления могут быть запущены рядом средств, которые включают в себя:
. проверку программным обеспечением наличия прерванной обработки обновления при запуске;
. проверку программным обеспечением наличия заранее установленных пакетов обновлений при запуске;
. автоматически, как это сконфигурировано каналом обновления;
. инициирование пользователем;
. прием устройством специального SMS-сообщения (сообщения службы коротких сообщений).
Для того чтобы успешно визуализировать пользовательский интерфейс мобильного устройства, язык разметки должен обладать следующими качествами: краткими описаниями страниц, непротиворечивыми правилами составления макета, быть пригодными к реализации в компактном модуле визуализации, обеспечивать многослойность и произвольное перекрытие контента, модель события, требовать перечерчивания только тех областей отображения, которые должны измениться между страницами пользовательского интерфейса, включать в себя средства привязки к платформе для считывания значений свойств при приеме событий и посылке событий, быть расширяемым и быть гибким в графическом отношении.
Язык TrigML предоставляет эти возможности, и Приложение С приводит обзор элементов и атрибутов, которые обеспечивают требующиеся функциональные возможности.
Желательно, чтобы затраты на ребрэндинг (переход к новому товарному знаку, виду, дизайну) пользовательских интерфейсов и на производство постоянного потока обновлений были минимальными. Это сделано возможным путем обеспечения эффективного потока информации от процесса ее создания до передачи данных пользователям.
Для пользовательских интерфейсов, обновлений пользовательских интерфейсов и шаблонов для участия третьей стороны используется контейнер, именуемый посылкой. Посылки содержат всю информацию, необходимую для того, чтобы третья сторона производила, тестировала и поставляла брэндированные (снабженные товарным знаком) пользовательские интерфейсы и их обновления. Фигура 4 показывает схематическое изображение инструментального набора (200) контента, который содержит сценарную среду (220), тестовую и моделирующую среду (230) и среду (240) технического обслуживания.
Процесс создания посылки содержит пять этапов обработки:
1. Сценарная среда (220) предоставляет средство для разработки шаблона для одного или более пользовательских интерфейсов и стратегии обновления для пользовательских интерфейсов, основанных на этом шаблоне.
2. Среда (240) технического обслуживания обеспечивает быстрое производство пользовательского интерфейса и обновления в хорошо контролируемой и управляемой среде, которое может быть передано поставщикам контента.
3. Функциональная возможность «предполетной» подготовки, предусмотренная в среде (240) технического обслуживания, позволяет администратору развертывания проверять и настраивать пользовательские интерфейсы и обновления, которые они принимают от третьих сторон.
4. Публикующий компонент (110) обеспечивает администрирование пользовательских интерфейсов и обновлений на точке развертывания, включая перенос новых их версий.
5. Публикующий компонент (110) делает возможным автоматическое генерирование обновлений на основе прямых поставок контента.
Много различных пользовательских интерфейсов может быть получено на основе общей базы. Обычно общая база воплощает большую часть самого интерфейса и «триги», производные от него, воплощают небольшие его изменения, такие как брэндинг.«Триглет» может быть получен из «трига», и он может отменить любой из ресурсов из родительского «трига», который он выберет для отмены (дополнительно он может вводить свои собственные ресурсы). Отметим, что термин «ресурсы» здесь также относится к документу TrigML, так что режим и макет «трига» могут быть изменены посредством «триглета» так же легко, как он заменяет отдельное изображение или отрывок текста.
Посылка может содержать один или более базовых «тригов», многочисленные «триги», производные от базового «трига», множество «триглетов», производных от любого из этих «тригов», и множество «триглетов», производных от других «триглетов».
Фигура 5 показывает схематическое изображение устройства (800), которое содержит пользовательский интерфейс в соответствии с вариантом осуществления настоящего изобретения. Устройство содержит дисплей (810), который отображает пользовательский интерфейс (815) и средство (820) пользовательского интерфейса, которое дает пользователю возможность взаимодействовать с пользовательским интерфейсом (815). Процессор (830) исполняет программное обеспечение, которое хранится в одном или более запоминающих средств (840), и может быть предусмотрен один или более интерфейсов (850) беспроводной связи для того, чтобы сделать возможной связь с другими устройствами и/или сетями связи. В устройстве могут быть размещены одна или более батарей (860) для электропитания устройства, которое может также содержать интерфейсы для приема электрического питания и/или кабелей связи.
Тип этих компонентов и интерфейсов будет зависеть от типа устройства. Следует понимать, что такой пользовательский интерфейс может быть реализован в мобильной или сотовой телефонной трубке, но он также применим к другим портативным устройствам, таким как цифровые фотокамеры, персональные цифровые органайзеры, цифровые проигрыватели музыки, устройства навигации GPS (Глобальной системы позиционирования), портативные игровые консоли и т.д. Кроме того, он также применим к другим устройствам, которые содержат пользовательский интерфейс, таким как портативные или настольные компьютеры.
Средство пользовательского интерфейса может содержать множество кнопок, такое как у цифровой или буквенно-цифровой клавиатуры, или сенсорный экран или аналогичные им устройства. Одно или более запоминающих устройств могут содержать какой-либо вид энергонезависимой памяти, такой как карта памяти, так что хранящиеся данные не утрачиваются, если отключается электропитание. Для хранения данных, которые не нуждаются в обновлении или изменении, может быть предусмотрено запоминающее средство ПЗУ (Постоянное запоминающее устройство, ROM). Для временного хранения данных может быть предусмотрено некоторое ОЗУ (Оперативное запоминающее устройство, RAM), поскольку более низкие значения времени отклика поддерживают кэширование данных, доступ к которым осуществляется часто. Устройство может также принимать съемные карты памяти пользователя, и дополнительно в качестве запоминающего средства могут быть использованы накопители на жестких магнитных дисках. Используемое запоминающее средство может быть определено путем сопоставления различных требований к размеру устройства, энергопотреблению, требуемой емкости запоминающего средства и т.д.
Такое устройство может быть реализовано в сопряжении с, фактически, любой сетью беспроводной связи, например, с цифровыми сетями мобильной телефонной связи второго поколения (то есть сетями GSM (Глобальной системы для мобильных телекоммуникаций), D-AMPS (Цифровой усовершенствованной мобильной телефонной службы)), так называемыми сетями поколения 2,5G (то есть сетями GPRS (Службы универсальной радиопередачи), HSCSD, EDGE (технологии «Повышенных скоростей передачи данных для глобальной эволюции»)), сетями WCDMA (широкополосного мультиплексированного доступа с кодовым разделением каналов) или CDMA-2000 (мультиплексированного доступа с кодовым разделением каналов, версия 2000), относящимся к третьему поколению, и с усовершенствованными или производными от этих сетями и аналогичными сетями. Внутри зданий и кампусов могут также быть использованы другие технологии, такие как Bluetooth, IrDa (стандарт Ассоциации по средствам передачи данных в инфракрасном диапазоне) или беспроводные локальные сети (LAN) (как основанные на радио, так и оптических системах). Для синхронизации данных с другими устройствами и/или для зарядки батареи может быть подведена USB (универсальная последовательная шина) и/или шина FireWire.
Компьютерное программное обеспечение для реализации способов и/или для конфигурирования устройства в соответствии с приведенным выше описанием может быть предоставлено на носителях информации, таких как гибкие магнитные диски, диски CD-ROM (постоянное запоминающее устройство на компакт дисках), DVD-диски (Универсальные цифровые диски), энергонезависимые карты памяти и т.д.
Эта заявка испрашивает приоритет по заявке номер 0403709.9 на патент Великобритании, поданной 19 февраля 2004 г., содержимое которой включено в данный документ посредством ссылки.
Приложение А
Для путей доступа к файлам, начинающихся с идущего впереди символа '/':
/attr | Подобно директории /proc в системе unix здесь хранятся значения атрибутов модулей-деятелей для ссылки посредством контента, когда атрибут необходим как файловая ссылка. |
<actor> (<модуль-деятель>) | Каждая поддиректория директории /attr представляет собой имя модуля-деятеля. |
<attribute> (<атрибут>) | Доступ к каждому атрибуту осуществляется как к узлу в поддиректории модуля-деятеля. |
<field> (<поле>) | Если атрибут представляет собой структуру, то имя поля определяет то, к какому элементу структуры осуществлять доступ. |
<index> (<индекс>) | Если атрибут представляет собой векторный атрибут, то индексное число определяет индекс в векторе требуемого атрибута. |
<field> (<поле>) | Если векторный атрибут представляет собой коллекцию структур, то имя поля вновь определяет элемент структуры. |
Пути доступа к файлам, не имеющие идущего впереди символа '/', считаются относящимися к текущему «тригу», то есть каждый «триг» хранится в своей собственной иерархии папок, имеющей корень в одной папке.
config (конфигурация) | Общая папка в каждом «триге» для хранения метаданных «трига». |
channels (каналы) | Общая папка для хранения определений каналов обновлений. |
<channel defs> (<определения каналов>) | Набор файлов, определяющий коллекцию каналов обновления для «трига». Каждый файл может определять один или более каналов обновления. |
start-up (запуск) | Общая папка для хранения точек входа для «трига». |
default (умолчание) | Общий TrigML-файл для хранения точки входа по умолчанию для «трига». |
firsttime (первый раз) | Общий TrigML-файл для хранения TrigML-документа для использования при первом исполнении «трига». |
<trigml files> (<TrigML-файлы>) | Другие поименованные TrigML-файлы могут быть использованы в качестве точек входа, если они найдены в папке запуска. |
constants (константы) | Эта папка не проходит ОТА и вместо этого разрешается во время компиляции контента. |
<rest of content> (<остальной контент>) | Контент «трига» организован в определенном «тригом» формате под папкой «тригов». |
Приложение В
Trigplayer Actor (Модуль-деятель, проигрывающий «триги») | Атрибуты | UpdateState (Состояние обновления) | |
Сообщения | exit (выход) | ||
predial_mode (режим, предшествующий набору номера) | on/off (включено/выключено) | ||
События | idle (ожидание) | ||
Launch Actor (Запускающий модуль-деятель) | Атрибуты | ||
Сообщения | browser (браузер) | url (унифицированный адрес ресурса) | |
SMS (сообщение службы коротких сообщений) | Number (Номер) | ||
message (сообщение) | |||
Camera (Камера) | |||
Inbox (Почтовый ящик входящих сообщений) | |||
Profiles (Профили) | |||
missed_calls (пропущенные звонки) | |||
dialer (номеронабира-тель) | number (номер) | ||
native_app («родное» приложение) | app_id (идентификатор приложения) | ||
url (унифицированный адрес ресурса) | |||
События |
Install Actor (Устанавливающий модуль-деятель) | Атрибуты | ||
Сообщения | ringtone (рингтон) | resource_path (путь доступа к ресурсу) | |
wallpaper (заставка) | resource_path (путь доступа к ресурсу) | ||
События |
Phone Actor (Модуль-деятель телефонной связи) | Атрибуты | Bluetooth | |
IrDA | |||
Call (Вызов) | |||
GPRS | |||
UnreadSMS (Непрочитанное SMS-сообщение) | |||
UnreadVoiceMail (Непрочитанная голосовая почта) | |||
UnreadMsgs (Непрочитанные сообщения) | |||
BatteryLevel (Уровень заряда батареи) | |||
SignalStrength (Уровень сигнала) | |||
Сообщения | |||
События | missed_call (пропущенный звонок) | ||
message_arrived (поступление сообщения) | |||
voice_mail_arrived (поступление голосовой почты) |
Приложение С
<trigml> | Элементы-слушатели |
<layer> (<слой>) | Общие атрибуты |
id (идентификатор) | When consume |
Видимые элементы | (когда, ликвидация) |
Общие атрибуты | <throw>(<вбрасывание>) |
id x y w h bdcolor bgcolor | event target |
(идентификатор, x, y, высота, ширина, цвет окаймления, цвет фона) | (событие, цель) <att>(<атрибут>) name value valuefrom |
hasfocus canfocus clip raise | (имя, значение, значение из) |
(имеет фокус, может иметь фокус, обрезать, поднять) | <anim>(<анимация>) |
<group>(<группа>) | name duration repeat persist startvalue endvalue bounce |
<grid> (<сетка>) | (имя, продолжительность, повторение, постоянство, начальное значение, конечное значение, отскок) |
rows cols rowsplit colsplit | <load>(<загрузка>) |
(строки, столбцы, разбиение строк, разбиение столбцов) | res target (ресурс цель) |
<griddata>(<данные сетки>) | <setvar>(<установить значение переменной>) |
repeatover (повторение) | Name value valuefrom (имя, значение, значение из) |
Системные события | |
rows cols rowsplit colsplit | entry (вход) |
(строки, столбцы, разбиение на строки, разбиение на столбцы) | focus !focus (фокус, отмена фокуса) |
<gridlist>(<список сетки>) | keypress[key] (нажатие клавиши[имя клавиши]) |
initrow initcol (начальная строка, начальный столбец) | !keypress[key] (отмена нажатия клавиши[имя клавиши]) |
rows cols rowsplit colsplit (строки, столбцы, разбиение строк, разбиение столбцов) | longkeypress[key] (долгое нажатие клавиши[имя клавиши]) |
<image>(<изображение>) | !longkeypress[key] (отмена долгого нажатия клавиши[имя клавиши]) |
res frames index (ресурс, кадры, индекс) | moreUpChanged[newValue] (дальнейшее повышающее изменение [новое значение]) |
<tile>(<мозаичный элемент>) | moreDownChanged[newValue] (дальнейшее понижающее изменение [новое значение]) |
res bdt bdb bdr bdl (ресурс, толщина верхнего окаймления, толщина нижнего окаймления, толщина правого окаймления, толщина левого окаймления) | |
<text>(<текст>) | |
res font size slant weight align (ресурс, шрифт, размер, наклон, жирность, выравнивание) | |
color fxcolor multiline (цвет, постоянный цвет, множество линий) | |
<paintif>(<рисование при условии>) | |
res isvalid (ресурс, допустимость) | |
<ticker>(<бегущая лента>) | |
repeatover (повторение) | |
<batterylevel>(<уровень заряда батареи>) | |
res frames (ресурс, кадры) | |
<signalstrength>(<уровень сигнала>) | |
res frames (ресурс, кадры) | |
<phonestatus>(<состояние телефона>) | |
res include (ресурс, вставка) | |
<include>(<вставка>) | |
res (ресурс) | |
<param>(<параметр>) | |
name value valuefrom (имя, значение, значение из) |
Тип: видимый | Класс элемента, который может иметь визуальное представление на дисплее. Этот раздел описывает атрибуты и свойства, общие для всех видимых элементов. | ||
Содержит | содержится в | ||
любого слушателя | любом контейнере | ||
Атрибуты | Тип | значение по умолчанию | |
Id | строковый | Отсутствует | Имя или идентификатор этого элемента. Этот идентификатор используется в атрибуте цели элементов <throw> и <load>. Если один и тот же идентификатор используется более чем один раз, то используется последний загруженный идентификатор. |
х (изменяемый) | целый left (левая сторона) centre (центр) center (центр) right (правая сторона) | Center | Координата «х» кадра элемента по отношению к верхнему левому углу родительского элемента. Если имеет место одно из: 'left' 'centre' 'right', то кадр соответствующим образом выравнивается внутри родительского элемента. |
Y (изменяемый) | целый top (верх) centre (центр) center (центр) bottom (низ) | centre | Координата «y» кадра элемента по отношению к верхнему левому углу родительского элемента. Если имеет место одно из: 'top' 'centre' 'bottom', то кадр соответствующим образом выравнивается внутри родительского элемента. |
W (изменяемый) | целый * | * | Ширина кадра элемента. Если '*', то кадр становится равным по ширине родительскому кадру или ячейке, если имеет место сетка. |
h (изменяемый) | целый * | * | Высота кадра элемента. Если '*', то кадр становится равным по высоте родительскому кадру или ячейке, если имеет место сетка. |
bgcolour, bgcolor (изменяемый) | цвет | #00000000 (прозрачный) | Цвет заполнения фона элемента. Если значения альфа для подсветки не поддерживаются, то компонент альфа будет округляться в сторону уменьшения до полной прозрачности. |
bdcolour, bdcolor (изменяемый) | цвет | #00000000 (прозрачный) | Цвет окаймления для этого элемента. Окаймление вычерчивается шириной в 1 пиксель и непосредственно внутри кадра. Окаймление может быть частично или полностью загорожено дочерним контентом. Если альфа для подсветки не поддерживается, то компонент альфа округляется в сторону повышения до полной непрозрачности. |
Clip | логический | истина | Если «истина», то рисование всего дочернего контента этого элемента будет обрезано кадром этого элемента, то есть потомки не могут 'вылиться' наружу этого кадра. Если «ложь», то рисование всего дочернего контента будет обрезано обрезающим кадром родительского элемента. Значением clip=«ложь» следует пользоваться с осторожностью, поскольку оно замедляет работу модуля визуализации. |
Raise (изменяемый) | логический | ложь | Если «истина», то рисование этого элемента производится последним в его элементе<layer>(<слой>). Если более чем один элемент задает raise=«истина», то все они рисуются последними, но в своем обычном относительном порядке. Если «ложь», то рисование этого элемента производится в обычном порядке - что значит рисование элементов в порядке их синтаксического анализа. |
hasfocus | логический | ложь | Если «истина», то этому элементу будет предоставляться первоначальный фокус для слоя, в котором он находится. Если более чем один элемент задает hasfocus=«истина», то первоначальный фокус предоставляется последнему элементу внутри каждого слоя, который это задает. При загрузке нового контента, который содержит элемент с hasfocus=«истина» фокус предоставляется этому элементу, только если новый контент удаляет элемент, который имел фокус перед этим. |
canfocus | логический | ложь | Если «ложь», то этому элементу будет предоставляться фокус при осуществлении навигации посредством клавиш управления курсором. Если «ложь», то этот элемент будет игнорироваться при осуществлении навигации посредством клавиш управления курсором. (Замечание: это заменяет:<att when=focus/>) |
<trigml> | Корневой элемент всех TrigMl-документов. Не имеет никакого визуального представления. | ||
содержит | Содержится в | ||
любой элемент | Нигде | ||
атрибуты | Тип | значение по умолчанию | |
отсутствуют |
<layer> | Полноэкранный слой. Каждый слой управляет своим собственным фокусом. Самый верхний слой с ненулевым фокусным элементом получает нажатия клавиш и события, посылаемые элементу _top | ||
содержит | содержится в | ||
любой видимый любого слушателя | _top | ||
атрибуты | Тип | значение по умолчанию | |
Id | строковый | отсутствует | Имя или идентификатор этого элемента. Этот идентификатор используется в атрибуте цели элементов<throw>и<load>. Если один и тот же идентификатор используется более чем один раз, то используется последний загруженный идентификатор. |
<group> видимый, контейнер | Общий контейнер других элементов. Может быть использован в виде простого прямоугольника. | ||
содержит | содержится в | ||
любой видимый любого слушателя | любом контейнере | ||
атрибуты | тип | Значение по умолчанию | |
Все атрибуты в типе: видимые |
<grid> видимый, контейнер | Элемент-контейнер, который располагает свих потомков в виде сетки. Элемент<grid>предназначен исключительно для макета. Для управления фокусом используются элементы<gridlist>или<griddata>. Каждый потомок помещается в свою ячейку, и эта ячейка формирует кадр ее родителя, то есть потомки, которые оставили ширину/длину равными '*', будут иметь размер своей ячейки. | ||
содержит | содержится в | ||
любой видимый любого слушателя | любом контейнере | ||
атрибуты | Тип | значение по умолчанию | |
rows | Целый | Отсутствует | Количество строк в сетке. Не может быть равно нулю. Если строки заданы, а столбцы -нет, то сетка заполняется столбец за столбцом. |
cols | Целый | Отсутствует | Количество столбцов в сетке. Не может быть равно нулю. Если столбцы заданы, а строки нет, то сетка заполняется строка за строкой. Если заданы как строки, так и столбцы, то сетка также заполняется строка за строкой. |
rowsplit | Список разделенных точкой с запятой целых значений или *s | * | Значения высот каждой строки. Если задано меньше значений, чем имеется строк, то последнее значение повторяется для каждой дополнительной строки. Все строки, у которых rowsplit имеет значение '*', делят между собой имеющееся в наличии место. |
colsplit | то же самое, что и в rowsplit | * | Ширина столбца эквивалентна rowsplit. |
Все атрибуты в типе: видимые | Отметим, что атрибут clip применяется ко всей сетке, а не к каждой ячейке в сетке. |
<gridlist> видимый, контейнер | Элемент-контейнер, который располагает своих потомков в виде сетки. Он также представляет собой администратора фокуса в том смысле, что он перемещает активную ячейку по сетке, прокручивая сетку, если сетка больше, чем кадр этого элемента. Отметим, что для того, чтобы получить сетку, которая больше, чем ширина/высота этого элемента, следует задать как rows, так и rowsplit, и cols и colsplit. | ||
Содержит | содержится в | ||
любой видимый любого слушателя | любом контейнере | ||
атрибуты | Тип | значение по умолчанию | |
initrow | целый | 0 | Начальная строка активной ячейки. Отсчитывается от нуля. Смотри атрибут initcol, описанный ниже |
Initcol | целый | 0 | Начальный столбец активной ячейки. Отсчитывается от нуля. Первый раз, когда элемент<gridlist> получает фокус, это будет ячейка, которой в свою очередь предоставлен фокус. Атрибут hasfocus игнорирует атрибуты initrow и initcol. |
все атрибуты из элемента<grid> | |||
все атрибуты в типе: видимые | Отметим, что атрибут clip для элемента <gridlist> всегда имеет значение «истина». |
<griddata> видимый, контейнер | Элемент-контейнер, который рассматривает своего единственного потомка или единственное содержимое строк потомков в качестве шаблона для остальных ячеек в сетке. Если в определении шаблона-потомка появляется специальная переменная $$, то она заменяется текущей позицией прокрутки в наборе значений, определенных атрибутом repeatover. Используется только количество потомков, которое вмещается в сетку, при этом значение $$ прокручивается по мере того, как фокус перемещается вверх и вниз по сетке. | ||
Содержит | содержится в | ||
любой видимый любого слушателя | любом контейнере | ||
атрибуты | Тип | значение по умолчанию | |
repeatover | путь доступа к ресурсу | Нет умолчания. Должен быть задан | Задает набор значений для использования для переменной $$ в элементах-потомках. Если путь доступа к ресурсу представляет собой папку, то в качестве набора значений для переменной $$ используется (в порядке нумерации) список ресурсов, обнаруженный в этой папке. Если путь доступа к ресурсу представляет собой файл, то этот файл рассматривается в качестве индексного файла, который задает список значений для переменной $$. |
все атрибуты из элемента<grid> | |||
все атрибуты в типе: видимые |
<image> видимый | Вычерчивает изображение | ||
содержит | содержится в | ||
любого слушателя | любом контейнере | ||
атрибуты | тип | Значение по умолчанию | |
res (изменяемый) | путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу PNG-файла (файла формата Переносимой сетевой графики). Если атрибут res не задан, то изображение представляет собой прозрачное пустое место. |
frames | целый | 1 | Количество кадров (примыкающих бок о бок изображений) в PNG-файле. Ширина изображения, следовательно, равна действительной ширине PNG-изображения, деленной на количество кадров. |
index (изменяемый) | целый | 1 | Номер кадра (отсчитывая от 1) для отображения. |
Все атрибуты в типе: видимые | Значения по умолчанию для w/h (ширины/длины) должны сжиматься, чтобы удовлетворять заданному изображению. Если изображение не найдено, то значение по умолчанию для атрибутов w/h такое же, как обычно. Если атрибуты w/h заданы, то изображение выравнивается по верхнему левому углу. |
<tile> видимый | Вычерчивает мозаичное изображение. Если окаймление также задано, то изображение формируется в мозаичном виде с сохранением углов и кромок, представляя эти продольные части в виде мозаичных элементов, как это необходимо. | ||
содержит | содержится в | ||
любого слушателя | любом контейнере | ||
атрибуты | тип | Значение по умолчанию | |
Res (изменяемый) | путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу PNG-файла. Если атрибут res не задан, то мозаичный элемент представляет собой прозрачное пустое место. |
Bdt | целый | 0 | Толщина верхнего окаймления. Если она равна нулю, то мозаичное изображение не имеет мозаичного элемента верхней кромки. |
Bdl | целый | 0 | Толщина левого окаймления. Если она равна нулю, то мозаичное изображение не имеет мозаичного элемента левой кромки. |
Bdr | целый | 0 | Толщина правого окаймления. Если она равна нулю, то мозаичное изображение не имеет мозаичного элемента правой кромки. |
Bdb | Целый | 0 | Толщина нижнего окаймления. Если она равна нулю, то мозаичное изображение не имеет мозаичного элемента нижней кромки. |
Все атрибуты в типе: видимые |
<text> видимый | Вычерчивает текстовую строку. Текст может быть в одну линию или во много линий, прокручиваемым или нет, редактируемым или нет. Текст вычерчивается шрифтами, специфическими для устройства. | ||
содержит | содержится в | ||
любого слушателя | любом контейнере | ||
атрибуты | Тип | значение по умолчанию | |
Res (изменяемый) | Путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу текстовой строки, подлежащей отображению (первоначальному, если она редактируемая). Если этот атрибут не задан, то вычерчивается прозрачное пустое место. |
Font | резидентный с засечками гротесковый системный | с засечками | Специфический для устройства шрифт. |
Size | малый средний крупный | Малый | Специфический для устройства размер шрифта. Должен соответствовать 9 пунктам, 12 пунктам и 18 пунктам, соответственно. |
weight | обычный жирный | Обычный | Специфическая для устройства жирность для шрифта. |
Slant | обычный курсив | Специфическая для устройства жирность для шрифта. | |
Align | left (по левому краю) centre center (по центру) right (по правому краю) | Left | Горизонтальное выравнивание текстовой строки внутри кадра текстовой рамки. Управление выравниванием по вертикали отсутствует, вместо этого используется атрибут «y» для управления положением текстовой рамки. |
Color, colour (изменяемый) | Цвет | #ff000000 (черный) | Цвет текста. Если альфа для подсветки не поддерживается, то компонент альфа округляется в сторону повышения до полной непрозрачности. |
fxcolor, fxcolour (изменяемый) | Цвет | #00000000 | Цвет эффекта для текста. По умолчанию эффект для текста представляет собой светящийся фон. |
multiline | логический | Ложь | Если «ложь», то строка вычерчивается в единственную линию. Ширина этого элемента будет по умолчанию такой, чтобы в точности соответствовать строке. Если «истина», то строка будет вычерчиваться на множественных линиях. Ширина же по умолчанию будет такой же, как у родительского элемента. Высота по умолчанию будет равна высоте, требующейся для того, чтобы в точности соответствовать количеству линий в этой строке. |
scrollable | логический | ложь | Если «истина», то вид строки может быть прокручен (в горизонтальном направлении для единственной линии, в вертикальном направлении для множественных линий), когда этот элемент имеет фокус. Освобождение фокуса происходит, когда достигнут конец или начало строки, или если клавиша управления курсором нажата не в направлении прокрутки. |
editable | путь доступа к перезаписываемому ресурсу | Отсутствует | Если задан, то этот элемент представляет собой рамку с редактируемым текстом. Редактирование текста отображается специфическим для устройства способом, и может включать в себя нажатие клавиши выбора для активации редактирования текста. Отредактированное значение строки сохраняется в ресурсе, путь доступа к которому задан этим атрибутом. |
все атрибуты в типе: видимые |
<throw> слушатель | Вбрасывает событие. События могут быть посланы другим частям дерева контента или модулю-деятелю. | ||
содержит | содержится в | ||
<param> | любом видимом элементе | ||
атрибуты | Тип | значение по умолчанию | |
When | имя события и значение дополнительного параметра | отсутствует | Событие, которое ждут. Если задано в квадратных скобках [] значение параметра, то этот элемент сработает только тогда, когда принято событие вместе с этим значением параметра. Например, when= keypress [_select] срабатывает на событие нажатия клавиши, когда значение параметра составляет '_select'. |
Event | имя события | отсутствует | Имя события, которое должно быть вброшено. Если это событие модуля-деятеля, то оно автоматически будет послано соответствующему модулю-деятелю независимо от заданной цели. Для задания значения анонимного параметра, который должен сопровождать это событие, используются квадратные скобки. Для задания поименованных параметров для этого события используются потомки элемента<param>. Если обытие представляет собой событие 'focus' ('фокус'), то оно вызовет перемещение фокуса к целевому элементу (внутри слоя целевого элемента). |
target | идентификатор элемента | _top | Идентификатор элемента того элемента, которому надлежит посылать это событие. Если этот атрибут не задан, то используется значение '_top'. Если это событие представляет собой событие модуля-деятеля, то этот атрибут игнорируется. |
consume | логический | ложь | Если «истина», то распространение события будет остановлено на этом элементе. Никакие другие слушатели не сработают на это входящее событие после этого элемента. |
<att> слушатель | Будучи включенным, изменяет атрибут своего родительского видимого элемента. Элемент <att> включается событием, заданным в атрибуте when. Выключается же он '!'-версией этого события. Если несколько элементов <att> изменяют один и тот же родительский атрибут, то побеждает последний включенный элемент <att>. | ||
содержит | содержится в | ||
любом видимом элементе | |||
атрибуты | Тип | значение по умолчанию | |
When | Имя события и значение дополнительного параметра | отсутствует | Событие, которое ждут. Если задано в квадратных скобках [] значение параметра, то этот элемент включится только тогда, когда принято событие вместе с этим значением параметра. Например, when= keypress [_select] срабатывает на событие нажатия клавиши, когда значение параметра составляет '_select'. |
Name | имя атрибута | отсутствует | Имя атрибута в родительском видимом элементе, подлежащего изменению. Атрибут должен быть изменяемым, что указано в рамках атрибутов в этой спецификации. |
Value | тот же самый, что у изменяемого атрибута | отсутствует | Новое значение для поименованного атрибута родительского видимого элемента. Для ссылки на значение поименованного параметра входящего события используется символ «@». |
consume | логический | ложь | Если «истина», то распространение события будет остановлено на этом элементе. Никакие другие слушатели не сработают на это входящее событие после этого элемента. |
<anim> слушатель | Будучи включенным, непрерывно изменяет атрибут своего родительского видимого элемента. Анимация запускается событием, и повторно запускается всякий раз, когда впоследствии прибывает это событие. Изменение (где бы не была начата анимация) выключается, когда прибывает '!'-версия этого события. | ||
Содержит | Содержится в | ||
любом видимом элементе | |||
атрибуты | тип | значение по умолчанию | |
when | имя события и значение дополнительного параметра | Отсутствует | Событие, которое ждут. Если задано в квадратных скобках [] значение параметра, то этот элемент включится только тогда, когда принято событие вместе с этим значением параметра. Например, when= keypress [_select] срабатывает на событие нажатия клавиши, когда значение параметра составляет '_select'. |
name | имя атрибута | Отсутствует | Имя атрибута в родительском видимом элементе, подлежащего изменению. Атрибут должен быть изменяемым, что указано в рамках атрибутов в этой спецификации. |
startvalue | Тот же самый, что у изменяемого атрибута | Отсутствует | Значение, которое должно быть использовано при начале анимации. Если оно не задано, то используется текущее значение. Текущее значение зависит от всех предшествующих элементов-слушателей, которые изменяют тот же самый атрибут, и от значения, заданного самим родительским элементом. |
endvalue | Тот же самый, что у изменяемого атрибута | Отсутствует | Значение, которое должно быть использовано в конце анимации. Это значение достигается в момент времени, заданный атрибутом duration (продолжительность). Если оно не задано, то используется текущее значение атрибута таким же образом, как в случае значения startvalue, описанного выше. |
duration | целое количество миллисекунд | 300 | Продолжительность времени, которое занимает выполненная однократно анимация поименованного атрибута от значения startvalue до значения endvalue. Отметим, что это время не является общей продолжительностью анимации, которая может быть вычислена посредством умножения количества повторений на эту продолжительность. |
repeat | целый - 1 = всегда | 0 | Количество раз, которое следует повторить анимацию после первого раза, то есть установка этого значения в 1 будет иметь своим результатом то, что анимация будет проиграна дважды. |
bounce | логический | ложь | Если «истина», то анимация будет проигрываться в обратном направлении при чередующихся повторениях. |
persist | логический | в зависимости от обстоятельств | Если «истина», то анимация будет сохранять значение endvalue в качестве изменения до тех пор, пока не будет выключена '!'-событием. Если «ложь», то анимация будет возвращаться к значению startvalue в конце анимации и сохранять это значение до тех пор, пока анимация не будет выключена. Значение по умолчанию зависит от того, является ли событие нормальным событием или '!'-версией события. Если событие является нормальным событием, то значением по умолчанию является «истина». Если же событие является '!'-события, то значениемпо умолчанию является «ложь». |
consume | логический | ложь | Если «истина», то распространение события будет остановлено на этом элементе. Никакие другие слушатели не сработают на это входящее событие после этого элемента. |
<load> слушатель | Загружает некоторый новый контент в заданный целевой элемент. | ||
содержит | содержится в | ||
<param> | Любом видимом элементе | ||
атрибуты | Тип | значение по умолчанию | |
when | имя события и значение дополнительного параметра | отсутствует | Событие, которое ждут. Если задано в квадратных скобках [] значение параметра, то этот элемент сработает только тогда, когда принято событие вместе с этим значением параметра. Например, when= keypress[_select] срабатывает на событие нажатия клавиши, когда значение параметра составляет '_select'. |
res | путь доступа к ресурсу | отсутствует | Путь доступа к ресурсу trigml-файла для загрузки. |
target | идентификатор элемента | _top | Идентификатор элемента для замены его потомков |
consume | Логический | ложь | Если «истина», то распространение события будет остановлено на этом элементе. Никакие другие слушатели не сработают на это входящее событие после этого элемента. |
<include> | Встраивает заданный trigml-файл. trigml-содержимое этого файла рассматривается так, как будто оно было первоначально объявлено в месте нахождения этого элемента<include>. | ||
содержит | содержится в | ||
<param> | любом элементе | ||
атрибуты | тип | значение по умолчанию | |
res | путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу trigml-файла для вставки. |
<param> | Задает имя и значение параметра для элемента <load>, <include> или <throw>. | ||
содержит | содержится в | ||
<load> <include> <throw> | |||
атрибуты | тип | значение по умолчанию | |
name | имя параметра | Отсутствует | Имя параметра. Символ «$» используется для ссылки на параметр при использовании его в элементе <load> или <include>. Символ «@» используется для ссылки на параметр при использовании его вместе с событием. |
value | значение | Отсутствует | Значение параметра |
valuefrom | путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу файла, контент которого должен быть считан для получения значения этого параметра. |
<setvar> слушатель | Устанавливает значение переменной. Переменная может использоваться только при загрузке нового контента. Если элемент <setvar> запускается только на событие 'entry' ('вход'), то переменная не может быть использована до тех пор, пока не использован следующий тэг «load». | ||
содержит | Содержится в | ||
<param> | любом видимом элементе | ||
атрибуты | тип | значение по умолчанию | |
when | имя события и значение дополнительного параметра | отсутствует | Событие, которое ждут. Если задано в квадратных скобках [] значение параметра, то этот элемент сработает только тогда, когда принято событие вместе с этим значением параметра. Например, when= keypress[_select] срабатывает на событие нажатия клавиши, когда значение параметра составляет '_select'. |
name | имя переменной | отсутствует | Имя переменной |
value | значение | отсутствует | Значение для подстановки в переменную. На переменную в последующих действиях элемента <load> можно ссылаться посредством символа «$». |
consume | логический | Ложь | Если «истина», то распространение события будет остановлено на этом элементе. Никакие другие слушатели не сработают на это входящее событие после этого элемента. |
<paintif> контейнер, видимый | Рисует свое содержимое, только если заданный ресурс существует или путь доступа является допустимым. Контенты по-прежнему находятся на дереве, и по-прежнему откликаются на события, однако никакой из контентов не рисуется, если это условие не удовлетворено. Элемент <paintif> может быть использован вместо группы. | ||
содержит | содержится в | ||
любой видимый любого слушателя | любом элементе | ||
атрибуты | Тип | значение по умолчанию | |
Res | путь доступа к ресурсу | отсутствует | Путь доступа к ресурсу, проверяемый на существование. |
Isvalid | путь доступа к ресурсу | Отсутствует | Путь доступа к ресурсу, проверяемый на допустимость (в качестве пути доступа к ресурсу). Отметим, что при этом не будет действительно проверяться, существует ли этот файл, а будет лишь проверяться, является или нет этот путь доступа допустимым путем доступа. Это полезно для проверки того, находится или нет переменная $$ в области своих значений. |
<ticker> видимый | Прокручивает последовательность объектов по кадру этого элемента, а затем из этого кадра. Переменный элемент-потомок элемента <ticker> используется в качестве шаблона для каждого объекта. Каждый объект прокручивается из положения ниже элемента вверх в положение, выровненное по центру и левому краю. Затем объект останавливается, прежде чем прокручивается за пределы кадра в левую сторону. Для изменения объекта после каждой прошедшей прокрутки в шаблоне используется переменная $$. Список перезапускается сверху, когда прошла прокрутка последнего объекта. | ||
Содержит | Содержится в | ||
любого слушателя любой один видимый | любом контейнере | ||
Атрибуты | Тип | значение по умолчанию | |
repeatover | путь доступа к ресурсу | Нет умолчания. Должен быть задан | Задает набор значений для использования для переменной $$ в элементах-потомках. Если путь доступа к ресурсу представляет собой папку, то в качестве набора значений для переменной $$ используется (в порядке нумерации) список ресурсов, обнаруженный в этой папке. Если путь доступа к ресурсу представляет собой файл, то этот файл рассматривается в качестве индексного файла, который задает список значений для переменной $$. |
все атрибуты в типе: видимые |
<batterylevel> видимый | Вычерчивает уровень заряда батареи, используя для этого заданное изображение в качестве многокадрового изображения. Текущее значение уровня заряда батареи отображается на пропорциональный номер кадра. | ||
содержит | содержится в | ||
любого слушателя | любом контейнере | ||
атрибуты | тип | значение по умолчанию | |
Res (изменяемый) | путь доступа к ресурсу | отсутствует | Путь доступа к ресурсу PNG-файла (файла формата Переносимой сетевой графики), который содержит все состояния уровня заряда батареи. |
frames | целый | 1 | Количество кадров (примыкающих бок о бок изображений) в PNG-файле. Ширина изображения, следовательно, равна действительной ширине PNG-изображения, деленной на количество кадров. Кадр, который отображается, зависит от текущего уровня заряда батареи. |
Все атрибуты в типе: видимые | Значения по умолчанию для w/h (ширины/длины) должны сжиматься, чтобы удовлетворять заданному изображению. Если изображение не найдено, то значение по умолчанию для атрибутов w/h такое же, как обычно. Если атрибуты w/h заданы, то изображение выравнивается по верхнему левому углу. |
<signalstrength> видимый | Вычерчивает уровень силы сигнала, используя для этого заданное изображение в качестве многокадрового изображения. Текущее значение уровня силы сигнала отображается на пропорциональный номер кадра. | ||
содержит | содержится в | ||
любого слушателя | любом контейнере | ||
Атрибуты | тип | значение по умолчанию | |
Res (изменяемый) | путь доступа к ресурсу | отсутствует | Путь доступа к ресурсу PNG-файла (файла формата Переносимой сетевой графики), который содержит все состояния уровня силы сигнала. |
Frames | целый | 1 | Количество кадров (примыкающих бок о бок изображений) в PNG-файле. Ширина изображения, следовательно, равна действительной ширине PNG-изображения, деленной на количество кадров. Кадр, который отображается, зависит от текущего уровня силы сигнала. |
Все атрибуты в типе: видимые | Значения по умолчанию для w/h (ширины/длины) должны сжиматься, чтобы удовлетворять заданному изображению. Если изображение не найдено, то значение по умолчанию для атрибутов w/h такое же, как обычно. Если атрибуты w/h заданы, то изображение выравнивается по верхнему левому углу. | ||
<phonestatus> видимый | Вычерчивает строку с пиктограммами состояния телефона. Пиктограммы упакованы все вместе и вычерчиваются слева направо в порядке, заданном в атрибуте include. Для того, чтобы зарезервировать место для пиктограммы, которая в текущий момент невидима, используется пустое изображение. | ||
Содержит | содержится в | ||
Любого слушателя | любом контейнере | ||
Атрибуты | тип | значение по умолчанию | |
res (изменяемый) | путь доступа к ресурсу | отсутствует | Корневая папка для коллекций изображений пиктограмм. Для каждой характеристики, заданной атрибутом include, этот элемент будет искать папку с тем же самым именем. Внутри этой папки этот элемент будет искать изображение с именем, равным текущему значению этой характеристики. |
include | список разделенных точкой с запятой имен харакеристик | отсутствует | Имена пиктограмм состояний, которые должны отображаться. Каждое имя представляет собой характеристику и должно иметь папку в корневой папке, указанной атрибутом res. |
все атрибуты в типе: видимые |
Класс G06F3/048 средства взаимодействия для графических интерфейсов пользователя, например взаимодействие через окна, иконки или меню
Класс H04W8/18 обработка данных пользователя или абонента, например, обслуживание абонента, предпочтения пользователя или параметры пользователя; передача данных пользователя или абонента