простое применение стилей

Классы МПК:G06F15/00 Цифровые компьютеры вообще; оборудование для обработки данных вообще
Автор(ы):
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2006-02-03
публикация патента:

Изобретения относится к редактированию графического представления информации, а именно к системе и способу предоставления стилевого механизма, который используется, чтобы применять атрибуты к графическим и другим объектам в вычислительной среде. Техническим результатом является повышение быстродействия при обработке электронных документов. Реализация стилевой модели, которая применяется к объектам в пределах пользовательского интерфейса, позволяет определить любые атрибуты объектов. Модель разделена на две части: «период исполнения», который использует описание стиля, чтобы оказывать влияние на внешний вид и восприятие от использования пользовательского интерфейса, и «период проектирования», который является данными восприятия, представленными инструментальными средствами WYSIWYG, используемыми, чтобы задавать внешний вид и восприятие от использования пользовательского интерфейса. Среда проектирования может быть реализована на основе объектов периода исполнения. Свойства, ассоциативно связанные со стилями, могут быть установлены в отношении объектов с использованием UI периода проектирования, и принудительно применены в периоде исполнения. Стили могут быть сгруппированы в темы, чтобы предоставлять легкий механизм для применения изменений ко многим объектам. 3 н. и 10 з.п. ф-лы, 4 ил. простое применение стилей, патент № 2402063

простое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063

Формула изобретения

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

во время исполнения устанавливают первый стиль, ассоциированный с упомянутым объектом, при этом упомянутый первый стиль описан на языке высокого уровня,

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

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

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

сохраняют упомянутый стиль в формате языка высокого уровня;

для каждого из по меньшей мере одного первого свойства, ассоциированного с упомянутым первым стилем, присваивают первое свойство и соответствующее присвоение значения к упомянутому объекту; и

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

при этом упомянутые свойства включают в себя по меньшей мере графический атрибут упомянутого объекта в упомянутом пользовательском интерфейсе.

2. Способ по п.1, в котором упомянутый первый стиль или упомянутый следующий стиль наследует свойства и значения от родительского стиля.

3. Способ по п.2, в котором упомянутые свойства и значения упомянутого родительского стиля подменяют упомянутым первым стилем или упомянутым следующим стилем.

4. Способ по п.1, дополнительно содержащий этап, на котором применяют локальные свойства к упомянутому объекту.

5. Способ по п.1, дополнительно содержащий этап, на котором объединяют упомянутые стили в темы.

6. Способ по п.5, дополнительно содержащий этап, на котором подменяют упомянутые стили посредством применения локальной темы.

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

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

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

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

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

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

во время исполнения установление первого стиля, ассоциированного с первым объектом и вторым объектом, при этом упомянутые первый объект, второй объект и упомянутый первый стиль описаны на языке высокого уровня;

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

принимают ввод в интерфейсе графического проектирования, причем ввод содержит взаимодействию с графическим элементом интерфейса графического проектирования,

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

сохраняют упомянутый стиль в формате языка высокого уровня;

для каждого из по меньшей мере одного первого свойства, ассоциированного с упомянутым первым стилем, присваивают первое свойство и соответствующее присвоение значения к каждому из упомянутых первого объекта и второго объекта; и

для каждого следующего стиля, ассоциированного с упомянутым объектом и вторым объектом, для каждого из по меньшей мере одного следующего свойства, ассоциированного с упомянутым следующим стилем, назначают следующее свойство и соответствующее присвоение значения к каждому из упомянутого первого объекта и второго объекта, когда каждый из первого объекта и второго объекта еще не имеет значения, соответствующего следующему свойству,

при этом упомянутые свойства включают в себя, по меньшей мере, графический атрибут упомянутого первого объекта и второго объекта в упомянутом пользовательском интерфейсе.

9. Машиночитаемый носитель по п.8, в котором упомянутый первый стиль или упомянутый следующий стиль наследует свойства и значения от родительского стиля.

10. Машиночитаемый носитель по п.9, в котором упомянутые свойства и значения упомянутого родительского стиля подменяются упомянутым первым стилем или упомянутым следующим стилем.

11. Машиночитаемый носитель по п.8, дополнительно содержащий инструкции для применения локальных свойств к упомянутому объекту.

12. Машиночитаемый носитель по п.8, дополнительно содержащий инструкции для объединения упомянутых стилей в темы.

13. Машиночитаемый носитель по п.12, дополнительно содержащий инструкции для подмены упомянутых стилей посредством применения локальной темы.

Описание изобретения к патенту

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Это изобретение в целом относится к области редактирования графического представления. Более точно, это изобретение относится к системе и способу предоставления стилевого механизма, который используется, чтобы применять атрибуты к графическим и другим типам объектов в вычислительной среде.

УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

Стиль, как понимается специалистом в данной области техники, является художественной манерой, в которой представлен письменный материал, обычно в конкретном издании или конкретным издателем. Стили, например, используются в MICROSOFT WORD и MICROSOFT VISIO, чтобы определять путь, которым представляются текст, линии и/или заливка. Описания стилей принудительно применяют некоторые характеристики текста, линий и/или заливки, для того чтобы обеспечивать единообразный внешний вид по всему документу.

Одной из областей, где стили не были реализованы в общем смысле, является проектирование пользовательского интерфейса (UI), где было бы целесообразным определять, принудительно применять и поддерживать описания внешнего вида UI как в период проектирования, так и в период исполнения. Были предприняты попытки с этой целью, к примеру, CSS (Вложенные таблицы стилей) и XSL (Расширяемый язык стилей), которые используются в проектировании веб-страниц. Однако оба эти способа являются заведомо сложными и трудными для понимания. Более важно, что было доказано, что очень трудно писать инструментальные программные средства, которые их эффективно используют, в частности инструментальные средства WYSIWYG («Что видишь на экране, то и получишь при печати»), которые предоставляют возможность непосредственного манипулирования и понимания проекта.

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Настоящее изобретение направлено на способы для реализации стилевой модели, которая применяется к объектам в пределах пользовательского интерфейса, чтобы определять любые атрибуты объектов. Модель делится на две части: «периода исполнения», которая использует описание стиля, чтобы оказывать влияние на внешний вид и ощущение от использования пользовательского интерфейса, и «периода проектирования», которая является данными восприятия, представленными инструментальными средствами WYSIWYG, используемыми, чтобы определять внешний вид и ощущение от использования пользовательского интерфейса. Период проектирования может быть реализован на основе объектов периода исполнения. Свойства, ассоциативно связанные со стилями, могут быть установлены в отношении объектов с использованием UI периода проектирования и применены в периоде исполнения. Стили могут быть сгруппированы в темы, чтобы обеспечить удобный механизм для применения изменений ко многим объектам.

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

фиг. 2 - блок-схема алгоритма последовательностей операций, выполняемых компонентом периода исполнения в соответствии с настоящим изобретением;

фиг. 3 и 4 - примерные пользовательские интерфейсы периода проектирования.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЕЛНИЯ

Примерная Вычислительная Среда

Фиг.1 иллюстрирует пример пригодной среды 100 вычислительной системы, в которой изобретение может быть реализовано. Вычислительная среда 100 системы является только одним из примеров подходящей вычислительной среды и не имеет намерением наводить на мысль, о каком бы то ни было ограничении объема использования или функциональных возможностей изобретения. Вычислительная среда 100 также не должна быть истолкована как имеющая какую бы то ни было зависимость или требование, относящиеся к любому одному или сочетанию компонентов, проиллюстрированных в примерной рабочей среде 100.

Изобретение является работоспособным с многочисленными другими конфигурациям или средами вычислительных систем общего применения или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования с изобретением, включают в себя, но не в качестве ограничения, персональные компьютеры, серверные компьютеры, «карманные» или «дорожные» устройства, многопроцессорные системы, основанные на микропроцессорах системы, телевизионные приставки, программируемую бытовую электронную аппаратуру, сетевые ПК (персональные компьютеры, PC), миникомпьютеры, универсальные вычислительные машины, распределенные вычислительные среды, которые включают в себя любые из вышеприведенных систем или устройств, и тому подобное.

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

Со ссылкой на фиг. 1, примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, процессор 120 (блок обработки данных), системную память 130 и системную шину 121, которая соединяет различные системные компоненты, в том числе системную память, с процессором 120. Системная шина 121 может быть любой из нескольких типов шинных структур, в том числе шиной памяти или контроллером памяти, периферийной шиной, и локальной шиной, использующей любую из многообразия шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК, шину соединения периферийных компонентов (PCI) (также известную как шина расширения), ускоренную PCI (PCI-Express) и системную управляющую шину (SMBus).

Компьютер 110 типично включает в себя многообразие машиночитаемых носителей. Машиночитаемые носители могут быть любыми имеющимися в распоряжении носителями, к которым может быть осуществлен доступ компьютером 110, и включают в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители. В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие носители и среду передачи данных. Компьютерные запоминающие носители включают в себя как энергозависимые и энергонезависимые, так и съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не в качестве ограничения, ОЗУ (оперативное запоминающее устройство, RAM), ПЗУ (постоянное запоминающее устройство, ROM), EEPROM (электрически стираемое и программируемое ПЗУ), флэш-память или память другой технологии, CD-ROM (ПЗУ на компакт-диске), универсальные цифровые диски (DVD) или другие оптические дисковые запоминающие устройства, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию и к которому может быть осуществлен доступ компьютером 110. Среда передачи данных типично воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более своих характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная, RF), инфракрасная и другую беспроводную среду. Сочетания любых из вышеприведенных также должны быть включены в понятие машиночитаемых носителей.

Системная память 130 включает в себя компьютерные запоминающие носители в виде энергозависимой и/или энергонезависимой памяти, такой как ПЗУ 131 и ОЗУ 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, к примеру, во время запуска, обычно сохранена в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые доступны непосредственно и/или, собственно, являются приводимыми в действие процессором 120. В качестве примера, но не ограничения, фиг. 1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера, фиг. 1 иллюстрирует накопитель 141 на жестком диске, который считывает с или записывает на несъемные энергонезависимые магнитные носители, привод 151 магнитного диска, который считывает с или записывает на съемный энергонезависимый магнитный диск 152, и привод 155 оптического диска, который считывает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM, или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерной рабочей среде, включают в себя, но не в качестве ограничения, кассеты магнитной ленты, карты флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопитель 141 на жестком диске обычно подключен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а привод 151 магнитного диска и привод 155 оптического диска обычно подключены к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Приводы и связанные с ними компьютерные запоминающие носители, описанные выше и проиллюстрированные на фиг. 1, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1, например, накопитель 141 на жестком диске проиллюстрирован в качестве сохраняющего операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут быть либо такими же или отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 здесь снабжены другими номерами, чтобы проиллюстрировать, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162 и указательное устройство 161, которым обычно является мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую параболическую антенну, сканнер или подобное. Эти и другие устройства ввода часто подключены к процессору 120 через пользовательский интерфейс 160 ввода, который соединен с системной шиной, но могут быть подключены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191, или другой вид устройства отображения, также подключен к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые могут быть подключены через интерфейс 195 периферийных устройств вывода.

Персональный компьютер 110 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим узлом сети, и типично включает в себя многие или все из элементов, описанных выше относительно компьютера 110, хотя только запоминающее устройство 181 памяти проиллюстрировано на фиг. 1. Изображенные логические соединения включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также могут включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет (локальных сетях, основанных на технологиях Интернет) и Интернете.

При использовании в сетевой среде LAN компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN персональный компьютер 110 типично включает в себя модем 172 или другое средство для установления соединений через WAN 173, такую как Интернет. Модем 172, который может быть внутренним и внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода, или другой подходящий механизм. В сетевой среде программные модули, изображенные относительно компьютера 110, или их части, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг. 1 иллюстрирует удаленные прикладные программы 185 как находящиеся в устройстве 181 памяти. Понятно, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.

Примерные варианты осуществления стилизации для проектирования UI

Современный пользовательский интерфейс (UI) типично определен набором объектов, представляющих элементы в пределах UI (например, кнопки, прямоугольники, окна) и свойства таких элементов (например, цвет, расположение, текстовые значения). Настоящее изобретение реализует «стиль» в виде набора свойств, включающего в себя, но не в качестве ограничения, цвет, расположение, геометрическую форму и т.д., и присвоение значений этим свойствам, например зеленый, середина экрана, овальная и т. д. Каждый стиль может иметь наименование или другой идентификатор, который может быть использован, чтобы однозначно указывать на него ссылкой, и стили могут быть применены к объектам в описании UI. Например, проектировщик пользовательского интерфейса может определить два стиля, один, названный «Zebra» («Зебра»), в котором цвет изображения и фона определены как черный и белый, а другой, названный «Tiger» («Тигр»), в котором цвет изображения и фона определены как черный и оранжевый. Если «Zebra» применен к набору кнопок и позициям списка, они могут появляться черными и белыми, или проектировщик может применить «Tiger», чтобы получать черную и оранжевую схемы.

Механизм описания стиля по настоящему изобретению может быть разделен на две части: компонент «периода исполнения», который использует описание стиля, чтобы оказывать влияние на внешний вид и ощущение от использования пользовательского интерфейса, и компонент «периода проектирования», который является данными восприятия, представленными инструментальными средствами WYSIWYG, чтобы определять внешний вид и ощущение от использования пользовательского интерфейса. Компонент периода проектирования может быть реализован на основе объектов периода исполнения.

Стилевые объекты периода исполнения

Стилевым объектом является именованный набор свойств с присваиваниями значений. Свойства могут происходить из любого класса. Общий механизм для осуществления ссылки на свойства используется так, что общеязыковая среда исполнения (CLR) и другие объектные системы могли ссылаться на свойство посредством задания наименования типа и наименования свойства. Например, «Button.Background», где «Button» является наименованием типа, а «Background» является наименованием свойства этого типа. CLR является частью базовой структуры NET, доступной для приобретения у MICROSOFT CORP., и управляет исполнением программ и предусматривает совместное использование общих объектно-ориентированных классов.

Учитывая это, возможно объявлять стиль на XML (расширяемом языке разметки), например:

<Style Name=простое применение стилей, патент № 2402063 MyStyleпростое применение стилей, патент № 2402063 Button.Background=простое применение стилей, патент № 2402063 RGB(0,0,1,0)простое применение стилей, патент № 2402063 DockPanel.Dock=простое применение стилей, патент № 2402063 Leftпростое применение стилей, патент № 2402063 />

Если реализовано стилевое наследование, стиль может быть основан на другом стиле. Это значит, что стиль может перенимать любые пары свойства и/или значения у родительского стиля. Присваивания свойств в новом стиле имеют старшинство и, как говорят, «подменяют» родительские установки. Например:

<Style Name=простое применение стилей, патент № 2402063 BaseStyleпростое применение стилей, патент № 2402063 Button.Background=простое применение стилей, патент № 2402063 RGB(0,0,1,0)простое применение стилей, патент № 2402063 Button.Foreground=простое применение стилей, патент № 2402063 RGB(0,1,0,0)простое применение стилей, патент № 2402063 />

<Style Name=простое применение стилей, патент № 2402063 DerivedStyleпростое применение стилей, патент № 2402063 BasedOn=простое применение стилей, патент № 2402063 BaseStyleпростое применение стилей, патент № 2402063 Button.Background=простое применение стилей, патент № 2402063 RGB(0,1,1,0)простое применение стилей, патент № 2402063 Button.BorderColor=простое применение стилей, патент № 2402063 RGB(0,1,1,1)простое применение стилей, патент № 2402063 />

Псевдоописание на C# стилевого класса может быть следующим:

class Style

{

public string Name { get; set; }

public Dictionary<Property, object> Properties { get; }

public Style BasedOn { get; set; }

}

Каждый элемент включает в себя названный свойством стиль, чье значение является ID (идентификатором) стиля. Значение этого свойства является стилем элемента.

<Button Style=простое применение стилей, патент № 2402063 ButtonStyleпростое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063 />

Именованные и совместно используемые ресурсы могут быть определены для любого типа свойства.

<def:Resource Name=простое применение стилей, патент № 2402063 Blueпростое применение стилей, патент № 2402063 Value=простое применение стилей, патент № 2402063 RGB(0,0,0,1)простое применение стилей, патент № 2402063 />

<def:Resource Name=простое применение стилей, патент № 2402063 SystemForegroundпростое применение стилей, патент № 2402063

Value=простое применение стилей, патент № 2402063 RGB(0,0,1,1)простое применение стилей, патент № 2402063 />

<Style Name=простое применение стилей, патент № 2402063 Fooпростое применение стилей, патент № 2402063 Background=простое применение стилей, патент № 2402063 %Blueпростое применение стилей, патент № 2402063 Foreground=простое применение стилей, патент № 2402063 %SystemForegroundпростое применение стилей, патент № 2402063 />

Значение любого допускающего стилизацию свойства задается посредством проверки, есть ли локальное значение у элемента. Если ни одного нет, используется значение свойства из стиля элемента.

Стили и ресурсы могут быть объединены в темы. Темой является группа описаний стиля, которая делает удобным изменять общий вид набора контента.

<Theme>

<def:Resource Name=простое применение стилей, патент № 2402063 Blueпростое применение стилей, патент № 2402063 Value=простое применение стилей, патент № 2402063 RGB(0,0,0,1)простое применение стилей, патент № 2402063 />

<def:Resource Name=простое применение стилей, патент № 2402063 SystemForegroundпростое применение стилей, патент № 2402063

Value=простое применение стилей, патент № 2402063 RGB(0,0,1,1)простое применение стилей, патент № 2402063 />

<Style Name=простое применение стилей, патент № 2402063 BaseButtonStyleпростое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063 />

<Style Name=простое применение стилей, патент № 2402063 SpinButtonStyleпростое применение стилей, патент № 2402063

BasedOn=простое применение стилей, патент № 2402063 BaseButtonStyleпростое применение стилей, патент № 2402063 простое применение стилей, патент № 2402063 />

простое применение стилей, патент № 2402063

</Theme>

Локальная тема может подменять существующие стили или расширять набор стилей. Таким образом, пользователь может предпочесть изменить установленный по умолчанию фон кнопки для всех кнопок в приложении без необходимости менять стилевое свойство всех таких кнопок. В дополнение, предпочтительно, чтобы все элементы управления задавали установленное по умолчанию свойство стиля, которое является одним из наименований хорошо известных стилей. Например, класс кнопки может определить свой стиль по умолчанию как «SystemButtonStyle».

В соответствии с настоящим изобретением возможны несколько вариантов вышеприведенного. Согласно первому варианту могут быть определены произвольно ограниченные по области видимости темы. Здесь тема может быть введена на любом уровне в структуре дерева. Таким образом, тема может подменять стили и вводить новые стили внутри панели или внутри кнопки, и т.д. Второй вариант определяет стили и шаблоны как одну и ту же сущность. Если шаблоны также могут устанавливать свойства относительно элемента управления, за которым они закреплены, то стили, как здесь определено, являются лишь поднабором шаблонов. Третьим вариантом являются строго типизированные стили. Стили могут попадать в набор родственных свойств (подобно QueryGroups). Эти родственные свойства могут быть всеми текстовыми свойствами, свойствами нажатия клавиши и т. д. Элемент управления будет иметь отдельные свойства для каждого типа стиля при этом варианте. Это является очень гибким и задает очень полезное объединение по стилям.

В периоде исполнения стили могут быть применены к объектам, заставляя объекты предоставлять список стилей, используя наименования стилей для их идентификации. Например:

<Button Style=простое применение стилей, патент № 2402063 MyStyle; OtherStyleпростое применение стилей, патент № 2402063 />

Фактические значения свойств относительно объекта определяются посредством вычисления старшинства. Прежде всего, применяют любые свойства, установленные прямо в отношении объекта, затем по порядку обходят список стилей, и любые свойства, еще не установленные, применяются из текущего стиля. Таким образом, в вышеприведенных примерах могут быть применены любые свойства в MyStyle, которые не были установлены непосредственно в Button, затем могут быть применены любые свойства OtherStyle, которые не были установлены непосредственно в Button либо установлены посредством MyStyle.

Вообще, при заданном объекте O со списком стилей {s1, s2, s3, простое применение стилей, патент № 2402063 Sn}, окончательные значения свойств могут быть применены в этом порядке:

Любые свойства, установленные в O

Любые свойства, установленные в s1, не установленные в O

Любые свойства, установленные в s2, не установленные в O или s1

простое применение стилей, патент № 2402063

Любые свойства, установленные в sn, не установленные в O, s1, s2, простое применение стилей, патент № 2402063 sn-1

Далее, со ссылкой на фиг. 2, показана блок-схема алгоритма последовательностей операций, выполняемых компонентом периода исполнения настоящего изобретения. Последовательность операций начинается для каждого объекта («O») на этапе 200. На этапе 202 применяются свойства стиля, установленные в O. Затем, следующий стиль выбирается на этапе 204. На этапе 206 следующее свойство, ассоциативно связанное со стилем, применяется из стиля. На этапе 208 определяется, установлено ли свойство в O. Если нет, то свойство устанавливается на этапе 210, в ином случае последовательность операций продолжается на этапе 212, чтобы определить - есть ли какие-нибудь оставшиеся свойства в стиле. Если да, то обработка возвращается на этап 206, в ином случае обработка продолжается на этапе 214, где определяется, есть ли какие-нибудь стили, которые должны быть применены. Если да, то обработка возвращается на этап 204, в ином случае обработка завершается на этапе 216.

В соответствии с настоящим изобретением набор инструментальных средств пользовательского интерфейса может отображать список стилей по наименованиям и предоставлять проектировщику возможность задавать свойства или значения в свойствах, которые они представляют. Кроме того, инструментальные средства предусматривают список стилей для элементов UI. Примерное проектирование такого UI показано на фиг. 3 и 4. Компонент периода исполнения заставляет элементы UI перенимать присвоения (назначения) свойств и предоставляет элементам возможность принимать новые присвоения свойств посредством изменения описания или применения стилей. Расширения настоящего изобретения могут предоставлять возможность разнообразным стилям быть примененными к одиночному объекту, так чтобы цветовой стиль и стиль шрифта могли быть смешаны, и стилевой наследственности, которая перенимает объектно-ориентированную концепцию наследования классов, чтобы предоставлять возможность более удобного управления и повторного использования стилей.

Со ссылкой на фиг. 3 и 4, стили могут быть определены с использованием примерных диалоговых окон, показанных на них. UI предоставляет свойствам возможность быть установленными непосредственно в (на) объекте. С использованием UI объект может быть выбран, а свойства из него извлечены. Извлеченные свойства затем могут быть поименованы как стиль. Стиль может быть применен посредством указания на объект и установления стиля по наименованию. Как показано на фиг. 3, выбранная кнопка перенимает свои цветовые свойства от стиля «Blueberry». Простая замена стиля на Metallic будет изменять весь набор свойств, как показано на фиг. 4.

Таким образом, настоящее изобретение предоставляет простой и пригодный для использования в качестве инструментального средства механизм, который является совместимым с моделью ресурсов. Поскольку он может быть реализован с XML, он может быть упорядочен, а также легко отлажен. Несмотря на то, что настоящее изобретение было описано со ссылками на предпочтительные варианты осуществления на различных чертежах, должно быть понятно, что могут быть использованы другие подобные варианты осуществления, или могут быть сделаны модификации или дополнения по отношению к описанному варианту осуществления для выполнения тех же самых функций настоящего изобретения, не отклоняясь от него. Например, специалист в данной области техники будет отдавать себе отчет в том, что настоящее изобретение, которое описано в настоящей заявке, может использовать любое вычислительное устройство или среду, как проводную так и беспроводную, и может использовать любое количество таких вычислительных устройств, связанных через сеть передачи данных и взаимодействующих по сети. Кроме того, должно быть подчеркнуто, что предполагается многообразие компьютерных платформ, в том числе операционные системы «карманных» устройств и другие специфичные для применения операционные системы, особенно в то время, как количество беспроводных сетевых устройств продолжает быстро увеличиваться. Кроме того, еще, настоящее изобретение может быть реализовано (непосредственно) или параллельно в большом количестве устройств или микросхем обработки данных, и сохранение может быть подобным образом выполнено параллельно в большом количестве устройств. Поэтому настоящее изобретение не должно быть ограничено, каким бы то ни было отдельным вариантом осуществления, а скорее должно быть истолковано в пределах широты и объема в соответствии с прилагаемой формулой изобретения.

Класс G06F15/00 Цифровые компьютеры вообще; оборудование для обработки данных вообще

способ, сервер, компьютерная программа и компьютерный программный продукт для кэширования -  патент 2527736 (10.09.2014)
схема передачи данных с текстовой информацией -  патент 2527733 (10.09.2014)
модифицированный интеллектуальный контроллер -  патент 2527212 (27.08.2014)
визуализация подписок rss на календаре -  патент 2527194 (27.08.2014)
способ построения системы автоматического управления с взаимодействием через сеть ethernet -  патент 2526765 (27.08.2014)
система и способ подбора функций управления мобильными устройствами -  патент 2526754 (27.08.2014)
устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
системы и способы для передачи файлов данных, независимо от платформы -  патент 2525743 (20.08.2014)
расширяемость для основывающейся на web визуализации диаграмм -  патент 2524855 (10.08.2014)
слежение за положением головы -  патент 2523961 (27.07.2014)
Наверх