Основанная на разметке расширяемость для интерфейсов пользователя
Иллюстрации
Показать всеГруппа изобретений относится к средствам управления графическим интерфейсом пользователя. Технический результат заключается в повышении быстродействия модифицирования графического интерфейса. В изобретении обеспечивается возможность модифицирования связанного интерфейса пользователя для добавления, удаления, деактивации, активации и переназначения новых или существующих компонентов интерфейса пользователя. 4 н. и 20 з.п. ф-лы, 5 ил.
Реферат
Уровень техники
С наступлением компьютерной эры пользователи компьютеров и программного обеспечения постепенно привыкли к дружественным для пользователя программным приложениям, которые помогают им писать, выполнять вычисления, организовывать, подготавливать презентации, передавать и принимать сообщения электронной почты, сочинять музыку и т.п. Например, современные приложения обработки текстов предоставляют возможность пользователям создавать разнообразные полезные документы. Современные приложения для работы с электронными таблицами предоставляют возможность пользователям вводить, манипулировать и систематизировать данные. Современные приложения электронных слайдовых презентаций предоставляют возможность пользователям создавать разнообразные слайдовые презентации, содержащие текст, рисунки, данные или другие полезные объекты. Современные приложения для работы с базами данных предоставляют возможность пользователям сохранять, систематизировать и обмениваться большими объемами данных.
Большинство программных приложений предоставляют один или более графических интерфейсов пользователя, через которые пользователь вводит и редактирует данные, а также обращается к различным функциональным возможностям соответствующего программного приложения и использует их. Типичный интерфейс пользователя включает в себя рабочую область, в которую можно вводить, редактировать и просматривать данные. Кроме того, интерфейсы пользователя, как правило, включают в себя одну или более кнопок и/или элементов управления для выбора определенных функциональных возможностей, предоставляемых соответствующим программным приложением. Например, кнопки или элементы управления могут быть предоставлены для печати и сохранения документа, кнопки или управляющие элементы могут быть предоставлены для применения свойств форматирования к аспектам документа и т.п.
Часто сторонний разработчик программного обеспечения создает встраиваемое дополнительное программное обеспечение, которое может быть добавлено в существующее приложение для предоставления функциональных возможностей, которые недоступны в существующем приложении. Например, дополнительное встраиваемое программное приложение может предоставлять в приложении обработки текстов функциональную возможность для добавления в документ специальных примечаний или сносок. Как правило, вдобавок к предоставлению дополнительной функциональной возможности встраиваемое дополнительное приложение предоставляет в существующие интерфейсы пользователя программного приложения один или более новых компонентов интерфейса пользователя, таких как новая панель инструментов, кнопка(и) или другой(ие) элемент(ы) управления для доступа к дополнительной функциональной возможности.
Согласно способу по предшествующему уровню техники сторонним разработчикам предоставляется доступ к объектной модели, связанной с интерфейсами пользователя существующего приложения, для предоставления возможности переделки существующих интерфейсов пользователя в соответствии с требованиями встраиваемого дополнительного программного обеспечения третьей стороны. К сожалению, такие способы по предшествующему уровню техники имеют недостатки, поскольку объектные модели для заданных интерфейсов пользователя, как правило, построены без учета общих применений разнообразных приложений, например приложений обработки текстов, приложений для работы с электронными таблицами, приложений слайдовых презентаций и т.п., и часто такие приложения демонстрируют различное и, возможно, нежелательные поведение в связи со специальными компонентами интерфейса пользователя.
Настоящее изобретение было сделано исходя из вышеизложенных и других соображений.
Сущность изобретения
Раздел "Сущность изобретения" приведен, чтобы представить в упрощенной форме выборку концепций, которые подробно описываются ниже в разделе "Подробное описание". Раздел "Сущность изобретения" не предназначен ни для определения ключевых или существенных отличительных признаков сущности изобретения, ни для использования в качестве помощи при определении сущности изобретения.
Варианты осуществления настоящего изобретения решают вышеизложенные и другие проблемы путем предоставления способов, систем и компьютерных продуктов для раскрытия программирования интерфейса пользователя программного приложения сторонним разработчикам встраиваемого дополнительного программного обеспечения, чтобы предоставить возможность модифицирования существующих интерфейсов пользователя приложения для включения новых или модифицированных компонентов интерфейса пользователя, связанных со встраиваемыми дополнительными приложениями. Согласно аспектам настоящего изобретения схема Расширяемого Языка Разметки (Extensible Markup Language, XML), регулирующая программирование XML, которое может использоваться для модифицирования заданного интерфейса пользователя, раскрывается сторонним разработчикам, чтобы предоставить им возможность специфицировать изменения программирования интерфейса пользователя согласно связанной XML-схеме. Например, если сторонний разработчик хочет добавить в существующий интерфейс пользователя новую кнопку или элемент управления, который будет связан с функциональной возможностью встраиваемого дополнительного приложения, то сторонний разработчик может модифицировать существующее программирование интерфейса пользователя в соответствии с грамматическими и синтаксическими правилами, диктуемыми связанной XML-схемой. Согласно аспекту настоящего изобретения для XML или других подходящих представлений модификаций интерфейса пользователя необязательно следовать тому же языку программирования, что и исходный интерфейс пользователя. Более того, программирование исходного родного интерфейса пользователя может быть очень сложным, и раскрываемая XML-схема согласно настоящему изобретению может представлять собой только подгруппу общего программирования для исходного интерфейса пользователя. Когда модифицированная программа выполняется главным программным приложением, интерфейс пользователя отображается с изменениями, выполненными сторонним разработчиком. Например, если программирование пользовательского интерфейса модифицируется, чтобы добавить новую кнопку, то новая кнопка будет отображена в интерфейсе пользователя под влиянием модификации программирования для интерфейса пользователя, при условии, что модификация выполнена в соответствии со связанной XML-схемой.
Согласно аспектам настоящего изобретения новые компоненты интерфейса пользователя могут быть добавлены в существующие интерфейсы пользователя, и они могут быть ассоциированы с соответствующими функциональными возможностями встраиваемого дополнительного приложения. Размеры новых компонентов пользовательского интерфейса могут быть автоматически масштабированы, чтобы вмещаться в доступной области отображения, когда окно, в котором отображается интерфейс пользователя, уменьшается или увеличивается. В добавление, согласно аспектам настоящего изобретения конечные пользователи модифицированного интерфейса пользователя могут при желании удалять добавленные компоненты интерфейса пользователя. Если конкретное встраиваемое дополнительное программное обеспечение деинсталлируется, то впоследствии добавленные или модифицированные компоненты интерфейса пользователя, связанные с деинсталлируемым встраиваемым дополнительным программным обеспечением, не выводятся в отображаемом интерфейсе пользователя.
Согласно другим аспектам настоящего изобретения существующие компоненты интерфейса пользователя, такие как кнопки или элементы управления, могут быть деактивированы или полностью удалены сторонними разработчиками. В добавление, существующие компоненты интерфейса пользователя могут быть переназначены так, что переназначенные компоненты при их выборе будут действовать иначе.
Согласно другим аспектам настоящего изобретения путем доступа к схеме, раскрываемой для модификации существующего интерфейса пользователя, контекстные интерфейсы пользователя и кнопки или элементы управления контекстных интерфейсов пользователя сторонних разработчиков могут быть добавлены к существующим интерфейсам пользователя, которые отображаются в существующих интерфейсах пользователя, когда выбирается объект документа, связанный с добавленным контекстным интерфейсом пользователя. В добавление, элементы управления, которые при их выборе приводят к применению к выбранному объекту одной или более функциональных возможностей встраиваемого дополнительного приложения, могут быть добавлены в галерею или набор элементов управления, которые разворачиваются в существующем интерфейсе пользователя для применения одной или более функциональных возможностей приложения к выбранному объекту.
Согласно другим аспектам настоящего изобретения XML-схема может быть использована для построения интерфейсов пользователя "с нуля", причем эти интерфейсы настраиваются в соответствии с требованиями встраиваемого дополнительного приложения третьей стороны к связанному программному приложению. Когда отображается подобное решение интерфейса пользователя "с нуля", то получающийся в результате интерфейс пользователя может немногим напоминать интерфейс пользователя приложения, который обычно отображается пользователям для соответствующего программного приложения. То есть, когда связанный документ запускается, модифицированный интерфейс пользователя, предназначенный для предоставления пользовательских функциональных возможностей запускаемому документу, отображается в соответствии с модифицированным интерфейсом пользователя, предоставленным для данного документа.
Эти и другие отличительные признаки и преимущества, которые характеризуют настоящее изобретение, будут очевидны из следующего подробного описания и прилагаемых чертежей. Следует понимать, что как вышеизложенное общее описание, так и нижеследующее подробное описание являются исключительно пояснительными, они не ограничивают настоящее изобретение, как определено в формуле изобретения.
Краткое описание чертежей
Фиг.1 - иллюстрация примера компьютерного оборудования для вариантов осуществления настоящего изобретения;
Фиг.2 - изображение экрана компьютера, иллюстрирующее пример интерфейса пользователя, который может быть модифицирован согласно вариантам осуществления настоящего изобретения;
Фиг.3 - упрощенная структурная схема, иллюстрирующая взаимосвязь между примером интерфейса пользователя и XML-представлением этого примера интерфейса пользователя, которое может быть изменено для модифицирования примера интерфейса пользователя согласно вариантам осуществления настоящего изобретения;
Фиг.4 - изображение экрана компьютера, иллюстрирующее пример контекстного интерфейса пользователя, который может быть модифицирован согласно вариантам осуществления настоящего изобретения;
Фиг.5 - изображение экрана компьютера, иллюстрирующее пример галереи выбираемых элементов управления интерфейса пользователя, которые могут быть модифицированы согласно вариантам осуществления настоящего изобретения.
Подробное описание
Как вкратце описано выше, варианты осуществления настоящего изобретения имеют целью предоставление способов, систем и компьютерных продуктов для раскрытия программирования интерфейса пользователя приложения, чтобы предоставить возможность модифицирования связанного интерфейса пользователя для добавления, удаления, деактивации, активации и переназначения новых или существующих компонентов интерфейса пользователя. В следующем подробном описании приводятся ссылки на прилагаемые чертежи, которые формируют часть описания и в которых в качестве иллюстраций показаны конкретные варианты осуществления или примеры. В рамках сущности или объема настоящего изобретения эти варианты осуществления могут комбинироваться, могут быть использованы другие варианты осуществления, а также могут быть выполнены структурные изменения. Следующее подробное описание, следовательно, не должно быть истолковано в ограничивающем смысле, и объем настоящего изобретения определяется пунктами прилагаемой формулы изобретения и их эквивалентами.
Ниже, со ссылкой на эти чертежи, где одинаковые номера обозначают одинаковые элементы в нескольких фигурах, описаны аспекты настоящего изобретения и пример компьютерного оборудования. Фиг.1 и следующее разъяснение предназначены для предоставления краткого, общего описания подходящего компьютерного оборудования, в котором может быть реализовано настоящее изобретение. Несмотря на то, что настоящее изобретение описано в общем контексте программных модулей, которые выполняются в сочетании с прикладной программой, которая работает в операционной системе на персональном компьютере, специалистам в данной области техники будет очевидно, что настоящее изобретение также может быть реализовано в сочетании с другими программными модулями.
В общем, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных. Более того, специалистам в данной области техники будет очевидно, что настоящее изобретение может быть использовано с другими конфигурациями компьютерных систем, включающими в себя карманные устройства, многопроцессорные системы, основанная на микропроцессорах или программируемая потребительская электроника, миникомпьютеры, мэйнфреймы и т.п. Настоящее изобретение может быть применено в распределенных вычислительных средах, где задачи выполняются посредством удаленных устройств обработки, которые объединены через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены как в локальном, так и в удаленном устройстве хранения.
Варианты осуществления настоящего изобретения могут быть реализованы как компьютерный процесс (способ), вычислительная система или как изделие, такое как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может быть компьютерным средством хранения, которое может быть считано компьютерной системой и кодирует компьютерную программу, состоящую из инструкций для выполнения компьютерного процесса. Компьютерный программный продукт может также быть распространяемым сигналом на носителе, который может быть считан компьютерной системой, и который кодирует компьютерную программу, состоящую из инструкций для выполнения компьютерного процесса.
Ссылаясь на Фиг.1, иллюстративная система для осуществления настоящего изобретения включает в себя вычислительное устройство, такое как вычислительное устройство 100. В базовой конфигурации вычислительное устройство 100, как правило, включает в себя, по меньшей мере, один процессорный блок 102 и системную память 104. В зависимости от точной конфигурации и типа вычислительного устройства системная память 104 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ, флэш-память и т.п.) или сочетанием этих двух типов памяти. Системная память 104, как правило, включает в себя операционную систему 105, подходящую для управления работой сетевого персонального компьютера, такую как операционные системы WINDOWS® компании MICROSOFT CORPORATION Редмонд, Вашингтон. Системная память 104 может также включать в себя одно или более программных приложений 106, 120, а также программные данные 107. Проиллюстрированная на Фиг.1 базовая конфигурация определяется компонентами, заключенными внутри пунктирной линии 108.
Согласно вариантам осуществления настоящего изобретения приложение 106 может содержать множество типов программ, таких как программа электронной почты, программа планировщика, программа просмотра Интернет-ресурсов и т.п. Примером таких программ является OUTLOOK® компании MICROSOFT CORPORATION. Приложение 106 может также содержать многофункциональное программное приложение для предоставления множества типов функциональных возможностей. Такое многофункциональное приложение может включать в себя несколько программных модулей, таких как программа обработки текста, программа для работы с электронными таблицами, программа слайдовых презентаций, программа для работы с базами данных и т.п. Примером такого многофункционального приложения является OFFICE™ компании MICROSOFT CORPORATION. Встраиваемое дополнительное программное приложение 120 может содержать любое программное приложение, которое может быть добавлено к приложениям 106 для усовершенствования или предоставления дополнительных функциональных возможностей в приложения 106, как описано ниже. В добавление, встраиваемое дополнительное программное приложение может включать в себя основанные на документе программные решения, например документ электронной таблицы, который включает в себя присоединенные панели инструментов, или документ обработки текста, который содержит макрос или код, который добавляет панель инструментов с кнопками или элементами управления.
Вычислительное устройство 100 может иметь дополнительные функции или функциональные возможности. Например, вычислительное устройство 100 может также включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. На Фиг.1 проиллюстрированы такие дополнительные устройства хранения, как съемное устройство 109 хранения и несъемное устройство 110 хранения. Компьютерное средство хранения может включать в себя энергозависимое и энергонезависимое, съемное и несъемное средство, реализованное посредством какого-либо способа или технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Системная память 104, съемное устройство 109 хранения и несъемное устройство 110 хранения представляют собой примеры компьютерного средства хранения. Компьютерное средство хранения включает в себя, но не ограничивается перечисленным, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другой тип памяти, диски CD-ROM, цифровые универсальные диски (DVD) или иные оптические дисковые носители, магнитные кассеты, магнитные ленты, магнитные дисковые носители, или другие магнитные устройства хранения, или любое другое средство, которое может быть использовано для хранения желаемой информации и к которому может быть выполнен доступ вычислительным устройством 100. По существу, компьютерное средство хранения может быть частью устройства 100. Вычислительное устройство 100 может также содержать устройство(а) 112 ввода, такое как клавиатура, мышь, ручка, устройство голосового ввода, устройство сенсорного ввода и т.п. Вычислительное устройство 100 также может включать в себя устройство(а) 114 вывода, такое как дисплей, громкоговорители, принтер и т.п. Эти устройства хорошо известны и подробно здесь не рассматриваются.
Вычислительное устройство 100 может также содержать соединения 116 связи, которые предоставляют возможность устройству осуществлять связь с другими вычислительными устройствами 118 через сеть в распределенном вычислительном окружении, например через интранет или Интернет. Соединение 116 связи является одним примером средства связи. Средство связи, как правило, может быть реализовано посредством машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном данными сигнале, таком как несущая волна или другой механизм передачи, и оно включает в себя любое средство доставки информации. Термин «модулированный сигнал данных» обозначает сигнал, у которого одна или более характеристик установлены или изменены таким образом, чтобы кодировать в сигнале информацию. В качестве примера, но не ограничиваясь перечисленным, средство связи включает в себя проводное средство, такое как проводная сеть или прямое проводное соединение, и беспроводное средство, такое как акустическое, радиочастотное, инфракрасное и другие беспроводные средства. Термин "машиночитаемое средство" включает в себя как средство хранения, так и средство связи.
Фиг.2 представляет собой изображение экрана компьютера, иллюстрирующее пример интерфейса пользователя, который может быть модифицирован согласно вариантам осуществления настоящего изобретения. Специалистам в данной области техники будет очевидно, что проиллюстрированный на Фиг.2 пример интерфейса пользователя предназначен только для целей примера и иллюстрации. То есть варианты осуществления настоящего изобретения могут быть использованы для множества различных интерфейсов пользователя с различными компонентами интерфейса пользователя и различными схемами расположения интерфейса пользователя. Соответственно, описание настоящего изобретения в контексте примера интерфейса пользователя, проиллюстрированного на Фиг.2, не следует рассматривать как каким-либо образом ограничивающее или ограничительное для формулы изобретения.
Проиллюстрированный на Фиг.2 интерфейс пользователя включает в себя интерфейс пользователя в форме ленты, предназначенный для отображения выбираемых элементов управления, связанных с основанными на задачах функциональными возможностями, которые доступны в заданном программном приложении, таком как программное приложение 106, проиллюстрированное на Фиг.1. Первая часть 210 интерфейса 200 пользователя включает в себя общие выбираемые элементы управления для функциональных возможностей, не связанных с конкретной задачей, такой как сравнение теста и данных электронной таблицы. Например, часть 210 включает в себя выбираемые элементы управления для общих файловых команд, таких как "Файл - Открыть", "Файл - Сохранить" и "Печать". Согласно одному варианту осуществления настоящего изобретения, выбираемые элементы управления, входящие в первую часть 210, представляют собой элементы управления, которые могут использоваться множеством различных программных приложений, например приложением обработки текста, приложением для работы с электронными таблицами, приложением слайдовых презентаций и т.п. То есть выбираемые элементы управления, входящие в первую часть 210, могут быть элементами управления, которые обычно присутствуют и используются во множестве различных программных приложений.
Рядом с первой частью 210 интерфейса 200 пользователя расположена часть вкладок, основанных на задачах. Часть вкладок включает в себя выбираемые вкладки, связанные с основанными на задачах функциональными возможностями, предоставляемыми заданным программным приложением. Для целей примера проиллюстрированные на Фиг.2 вкладки, которые основаны на задачах, связаны с задачами, которые могут выполняться при использовании приложения обработки текста. Например, вкладка 215 "Написание" связана с функциональными возможностями, которые могут использоваться для выполнения задач написания. Вкладка 220 "Вставить" связана с функциональными возможностями, связанными с выполнением операций или задач вставки. Вкладка 230 "Параметры Страницы" связана с функциональными возможностями, предоставляемыми связанным приложением для выполнения или редактирования атрибутов параметров страницы заданного документа.
Следует понимать, что множество других основанных на задачах вкладок или выбираемых элементов управления могут быть добавлено в часть вкладок интерфейса пользователя для вызова функциональных возможностей, связанных с другими задачами. Например, вкладки задач могут быть добавлены для эффектов текста, стилей документа, рецензирования и комментирования и т.п. Кроме того, как описано выше, интерфейс 200 пользователя может использоваться для множества различных программных приложений. Например, если интерфейс 200 пользователя используется для приложения слайдовых презентаций, то вкладки, входящие в часть вкладок, могут включать в себя такие вкладки как "Создать слайды", "Вставить", "Формат", "Эффекты рисунка" и т.п., которые связаны с различными задачами, которые могут быть выполнены приложением слайдовых презентаций. Аналогично, вкладки, которые могут использоваться в части вкладок интерфейса 200 пользователя для приложения 140 для работы с электронными таблицами, могут включать в себя такие вкладки как "Данные" или "Ввод Данных", "Перечни", "Поворот Таблиц", "Анализ", "Формулы", "Страницы и Печать" и т.п., связанные с задачами, которые могут быть выполнены приложением для работы с электронными таблицами.
Непосредственно под частью 210 общих управляющих элементов и частью основанных на задачах вкладок расположена часть выбираемых элементов управления функциональными возможностями для отображения выбираемых элементов управления функциональными возможностями, связанных с выбираемыми вкладками 215, 220, 230 из части вкладок, основанных на задачах. Согласно вариантам осуществления настоящего изобретения, когда выбирается определенная вкладка, такая как вкладка 215 "Написание", то выбираемые функциональные возможности, доступные посредством связанного программного приложения для выполнения выбранной задачи, например, для задачи писания, отображаются в логических группах. Например, на Фиг.2 первая логическая группа 240 отображается под заголовком "Буфер обмена". Согласно вариантам осуществления настоящего изобретения часть 240 буфера обмена включает в себя выбираемые элементы управления функциональными возможностями, которые локально сгруппированы вместе и связаны с действиями буфера обмена в рамках общей задачи написания.
Выбираемые элементы управления, представленные в части 250 "Формат", могут включать в себя такие выбираемые элементы управления как "Выравнивание Текста", "Тип Текста", "Размер Шрифта", "Межстрочный Интервал", "Жирный Шрифт", "Курсивный Шрифт", "Подчеркнутый Шрифт" и т.п. Соответственно, функциональные возможности, связанные с операциями форматирования, логически сгруппированы под общей задачей "Написание". Третья логическая группа 260 представлена под заголовком "Инструменты Написания". Часть 260 инструментов написания включает в себя такие инструменты написания, как "Найти/Заменить", "Автокорректировка" и т.п. Согласно вариантам осуществления настоящего изобретения при выполнении выбора различных основанных на задачах вкладок из части вкладок, в интерфейсе 200 пользователя представляются различные наборы выбираемых элементов управления функциональными возможностями в различных группах, связанных с выбранной вкладкой, основанной на задачах. Например, если выбирается вкладка 220 задач "Вставить", то выбираемые элементы управления функциональными возможностями, представленные в интерфейсе 200 пользователя, меняются с проиллюстрированных на Фиг.2, чтобы включать в себя выбираемые элементы управления функциональными возможностями, связанные с задачей вставки.
Как упоминалось, часто сторонние разработчики приложения или решения предоставляют программные приложения или модули, которые могут быть добавлены в существующее приложение для добавления в него новой функциональной возможности. Например, разработчик программного обеспечения может произвести программное приложение или модуль, который может быть добавлен в приложение обработки текста для добавления дополнительных свойств форматирования или других функциональных возможностей, которые недоступны в главном приложении (например, приложении обработки текста, приложении для работы с электронными таблицами, приложении слайдовых презентаций и т.п.), или встраиваемое дополнительное приложение или модуль стороннего разработчика может модифицировать или усовершенствовать функциональные возможности, которые уже предоставлены главным приложением. Варианты осуществления настоящего изобретения предоставляют доступ к программированию, связанному с одним или более интерфейсами пользователя главного приложения, чтобы предоставить возможность стороннему разработчику приложения модифицировать интерфейсы пользователя главного приложения для предоставления компонентов интерфейса пользователя, которые применимы к добавленной или модифицированной функциональной возможности, предоставленной заданным встраиваемым дополнительным приложением или модулем.
Очевидно, что варианты осуществления настоящего изобретения не ограничены использованием в связи со встраиваемыми дополнительными приложениями. Например, сторонний разработчик может использовать аспекты настоящего изобретения, чтобы модифицировать компоненты интерфейса пользователя приложения, не принимая во внимание добавленную функциональную возможность. Например, третья сторона может пожелать изменить поведение компонента интерфейса пользователя независимо от какой-либо добавленной функциональной возможности.
Фиг.3 представляет собой упрощенную структурную схему, иллюстрирующую взаимосвязь между примером интерфейса пользователя и XML-представлением этого примера интерфейса пользователя, которое может быть изменено для модифицирования примера интерфейса пользователя согласно вариантам осуществления настоящего изобретения. Ссылаясь на Фиг.3, интерфейс 305 пользователя главного приложения 106, например приложения обработки текста, приложения для работы с электронными таблицами, приложения слайдовых презентаций и т.п., показан как интерфейс с кнопкой 310 команды "File" (Файл), кнопкой 315 "Tab1" (Вкладка 1) и кнопкой 320 "Tab2" (Вкладка 2). Как упоминалось выше со ссылкой на Фиг.2, пример интерфейса 305 пользователя, проиллюстрированный на Фиг.3, предназначен исключительно для целей примера, и он не ограничивает огромного количества кнопок, элементов управления или других выбираемых функциональных возможностей, которые могут быть предоставлены в заданном интерфейсе пользователя согласно вариантам осуществления настоящего изобретения. Пример интерфейса 305 пользователя включает в себя первую логическую группу кнопок или элементов управления 325 и вторую логическую группу кнопок или элементов управления 330. Согласно примеру интерфейса 305 пользователя кнопка 320 "Tab2" была выбрана для предоставления первой и второй логических групп кнопок или элементов управления 325, 330.
Согласно вариантам настоящего изобретения интерфейс 305 пользователя запрограммирован и структурирован в соответствии с языком разметки, таким как язык XML. Следует понимать, что могут использоваться другие языки, подходящие для программирования и структурирования интерфейса 305 пользователя. На Фиг.3 проиллюстрирован XML-файл 340 для предоставления программирования и структуры XML для примера интерфейса 305 пользователя. Например, предоставлена корневая метка <UI> с тремя дочерними метками <FILE>, <TAB1> и <TAB2>. Метка <TAB2> включает в себя две дочерние метки - метку <LG1> (первая логическая группа кнопок или элементов управления) и метку <LG2> (вторая логическая группа кнопок или элементов управления). Следует понимать, что XML-файл 340 не предназначен для иллюстрации должным образом сформированного XML-файла, а он предоставлен исключительно для целей иллюстрации.
Разработчиками главного приложения предоставляется документ или файл (не показан) XML-схемы, которая предоставляет грамматические и синтаксические правила XML, применимые для программирования и структурирования интерфейса 305 пользователя, например, для добавления, удаления или иным образом модифицирования новых или существующих меток в XML-файле 340. Например, XML-схема может определять типы и наименования XML-меток, которые можно добавить в XML-файл 340. Например, XML-схема, связанная с интерфейсом 305 пользователя, может определять требования, чтобы каждая метка вкладки включала в себя, по меньшей мере, одну дочернюю метку логической группы. В другом примере, XML-схема, связанная с интерфейсом 305 пользователя, может определять, что определенные XML-метки в XML-файле 340 нельзя изменять, например метки логических групп под заданной меткой вкладки исходного интерфейса 305 пользователя не могут быть изменены третьей стороной.
В другом примере XML-схема может накладывать требования, что определенные свойства форматирования могут или не могут быть применены к интерфейсу 305 пользователя путем изменений XML-файла 340. Сторонним разработчикам может быть раскрыт весь файл 340 XML-схемы и весь связанный XML-файл. Альтернативно, для предоставления возможности внесения в интерфейс пользователя главного приложения ограниченного количества изменений ограниченного типа, сторонним разработчикам может быть раскрыта только часть XML-файла 340, связанного с интерфейсом 305 пользователя приложения, и только часть файла связанной XML-схемы.
XML-файл 340 для интерфейса 305 пользователя главного приложения и файл связанной XML-схемы раскрываются третьей стороне 350 для предоставления ей возможности внесения изменений в XML-файл 340 в соответствии с грамматическими и синтаксическими правилами, предоставляемыми файлом связанной XML-схемы для модифицирования интерфейса 305 пользователя. Например, третья сторона 350 может предоставить встраиваемое дополнительное программное приложение, предоставляющее дополнительную функциональную возможность, которая в текущее время недоступна в главном приложении. Например, третья сторона 350 может пожелать добавить в интерфейс 305 пользователя кнопку третьей вкладки, которая при ее выборе предоставляет дополнительную логическую группу кнопок или элементов управления под добавленной кнопкой третьей вкладки, чтобы предоставить кнопки и/или элементы управления для выбора функциональной возможности, предоставленной встраиваемым дополнительным приложением третьей стороны. Например, встраиваемое дополнительное приложение третьей стороны может добавить функциональную возможность для предоставления специализированных примечаний или сносок в приложение обработки текста. Для выставления функциональной возможности, предоставленной пользователям встраиваемым дополнением, стороннему разработчику может потребоваться предоставить дополнительную вкладку в интерфейсе 305 пользователя, например вкладку "Примечания/Сноски". Кроме добавления вкладки "Примечания/Сноски" сторонний разработчик может пожелать добавить дополнительную логическую группу кнопок или элементов управления, которые отображаются в интерфейсе 305 пользователя при выборе вкладки "Примечания/Сноски", которая предоставит кнопки и/или элементы управления для выбора различных аспектов добавленной функциональной возможности примечаний и сносок. Следует понимать, что существующие кнопки и элементы управления аналогичным образом могут быть удалены из интерфейса 305 пользователя путем модифицирования связанного XML-файла 340.
Согласно одному варианту осуществления разметка, раскрываемая стороннему разработчику посредством XML-файла 340, имеет наращиваемую сущность, так что стороннему разработчику предоставляется ограниченная возможность модифицирования интерфейса 305 пользователя главного приложения. Так, согласно одному варианту осуществления сторонний разработчик не получает XML-файл 340, который предоставляет им возможность добавлять свои компоненты интерфейса пользователя в любом месте. Вместо этого согласно этому варианту осуществления XML-файл 340 и связанная схема, раскрываемые стороннему разработчику, предоставляют ему возможность специфицировать желаемое место для нового компонента интерфейса пользователя, например для вставки нового компонента вслед за существующим компонентом ABC, и, тогда, главное приложение интегрирует измененный XML-файл с общим XML-файлом, представляющим интерфейс 305 пользователя главного приложения, чтобы отобразить измененный интерфейс 307 пользователя.
Согласно одному варианту осуществления измененный XML-файл 355, предоставляемый каждым сторонним разработчиком, идентифицируется уникальным пространством имен XML, чтобы предотвратить модифицирование компонентов интерфейса пользователя, предоставленных или модифицированных одним встраиваемым дополнением третьей стороны, другим встраиваемым дополнением. Альтернативно, фай