АДАПТИВНЫЙ ДИСПЕТЧЕР ПАНЕЛЕЙ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
ADAPTIVE USER INTERFACE PANELS MANAGER

УРОВЕНЬ ТЕХНИКИ
[1] Многие пользовательские интерфейсы используют панели для представления пользователям функциональных возможностей и информации приложения. Панели часто относятся к конкретным особенностям или функциям приложения. Когда пользователь осуществляет задачу с использованием особенности или функции, поддерживаемой панелью, панель добавляется в пользовательский интерфейс. В пользовательском интерфейсе, панели должны совместно использовать свободное место с канвой приложения, где находится основной контент приложения. Несмотря на свою полезность, панели уменьшают величину свободного места, доступного для канвы приложения.
[2] Без ограничений, панели могут преобладать в пользовательском интерфейсе, оставляя мало или вовсе не оставляя места для канвы приложения. Один традиционный подход к управлению панелями не предусматривает управления и возлагает ответственность за управление панелями на пользователя. Панели просто открываются и остаются открытыми, пока не будут вручную закрыты пользователем. Пользователь также может выборочно изменять размер открытых панелей; однако устройства и сенсорные интерфейсы с низким разрешением или малым форм-фактором часто не способны обеспечивать точную реакцию на ввод, необходимую для поддержания пригодных размеров панелей и максимального использования экрана. Даже при достаточной точности усилия по управлению панелями ухудшают ощущения пользователя.
[3] Другой традиционный подход к управлению панелями предусматривает установление заранее определенных ограничений на количество панелей. Заранее определенные ограничения имеют смысл не во всех ситуациях и не учитывают такие факторы, как конфигурация дисплея. При наличии достаточной области отображения заранее определенное количество может без необходимости ограничивать доступ пользователя к полному количеству панелей, необходимых пользователю. С другой стороны, при наличии ограниченной области отображения, практический предел количества панелей может быть меньше заранее определенного количества.
[4] Эти и другие соображения лежат в основе настоящего изобретения. Хотя рассмотрены относительно специфические проблемы, следует понимать, что раскрытые здесь варианты осуществления не подлежат ограничению решением конкретных проблем, указанных в уровне техники.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[5] Эта сущность изобретения призвана представлять в упрощенной форме основные принципы, которые дополнительно описаны в нижеследующем подробном описании. Эта сущность изобретения не призвана идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не подлежит использованию для помощи в определении объема заявленного изобретения.
[6] Аспекты системы для автоматического управления панелями в отношении канвы приложения в пользовательском интерфейсе включают в себя вычислительное устройство, имеющее, по меньшей мере, устройство обработки, память и дисплей. Система определяет, когда происходит событие, которое может влиять на размер канвы, например, изменение конфигурации дисплея, изменение размеров окна приложения, или изменение ориентации дисплея, что, в свою очередь, может влиять на управление панелями или открытие или закрытие панели. Когда происходит такое событие, система собирает информацию, которая может включать в себя, но без ограничения, размер защищенной канвы и текущий размер пользовательского интерфейса приложения.
[7] При запрашивании открытия панели, которая на данный момент не открыта, система определяет, можно ли добавить новую панель, сохраняя размер защищенной канвы. Если новая панель помещается в доступном свободном месте, система открывает новую панель как постоянную панель. Если новая панель не помещается, система определяет, открыты ли на данный момент какие-либо постоянные панели. В отсутствие открытых постоянных панелей, система открывает новую панель в качестве временной панели, а не постоянной панели. Если открыто более одной постоянной панели, система закрывает постоянную панель с наименьшим приоритетом. Если открыта одна-единственная постоянная панель, и эта открытая панель не критична, система заменяет постоянную панель новой панелью. Если эта одна открытая панель является критической панелью, система может временно закрывать (т.е. свертывать) критическую панель. После освобождения места для новой панели путем закрытия открытой некритической панели или свертывания критической панели, система открывает новую панель как постоянную панель.
[8] При запрашивании закрытия открытой на данный момент панели или увеличении размера UI, система пытается восстановить панель, которая была автоматически закрыта, при наличии достаточного свободного места для восстановленной панели. Если размер UI уменьшается настолько, что размер канвы оказывается меньше размера защищенной канвы, система закрывает панели с наименьшим приоритетом, пока не будет достигнут размер защищенной канвы или не будут закрыты все панели. После управления панелями, система изменяет размер канвы и подходящим образом перезаполняет и/или масштабирует контент.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[9] Дополнительные признаки, аспекты и преимущества настоящего изобретения можно лучше понять, обратившись к нижеследующим чертежам, элементы которых выполнены с нарушением масштаба, чтобы более наглядно продемонстрировать детали, и при этом аналогичные ссылочные позиции указывают аналогичные элементы на нескольких видах:
фиг. 1 - блок-схема, демонстрирующая систему для автоматического управления панелями в отношении канвы приложения в пользовательском интерфейсе приложения;
фиг. 2A и 2B - обобщенная блок-схема операций одного варианта осуществления способа автоматического управления панелями в отношении канвы приложения в пользовательском интерфейсе;
фиг. 2C - обобщенная блок-схема операций, детализирующая один вариант осуществления операции открытия временной панели;
фиг. 2D - обобщенная блок-схема операций, детализирующая один вариант осуществления операции проверки свертывания критической панели;
фиг. 3A - 3E - один вариант осуществления последовательности управления панелями для приложения, выполняющегося на мониторе с более высоким разрешением в горизонтальной ориентации;
фиг. 3F - 3I - один вариант осуществления последовательности управления панелями с использованием критической панели для приложения, выполняющегося на мониторе с более высоким разрешением в горизонтальной ориентации;
фиг. 4A - 4G - один вариант осуществления последовательности управления панелями для приложения, выполняющегося на планшете с более низким разрешением;
фиг. 5 - блок-схема, демонстрирующая один вариант осуществления физических компонентов вычислительного устройства, в котором можно применять на практике варианты осуществления настоящего изобретения;
фиг. 6A и 6B - упрощенные блок-схемы мобильного вычислительного устройства, в котором можно применять на практике варианты осуществления настоящего изобретения; и
фиг. 7 - упрощенная блок-схема распределенной вычислительной системы, в которой можно применять на практике варианты осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[10] Различные варианты осуществления более подробно описаны ниже со ссылкой на прилагаемые чертежи, которые составляют часть описания изобретения, и которые демонстрируют конкретные иллюстративные варианты осуществления. Однако варианты осуществления можно реализовать во многих разных формах и не следует рассматривать как изложенные здесь ограниченные варианты осуществления; напротив, эти варианты осуществления приведены для того, чтобы это раскрытие было исчерпывающим и полным и полностью доносило объем вариантов осуществления специалистам в данной области техники. Варианты осуществления можно осуществлять на практике как способы, системы или устройства. Соответственно, варианты осуществления могут принимать форму аппаратной реализации, полностью программной реализации или реализации, объединяющей в себе программные и аппаратные аспекты. Таким образом, нижеследующее подробное описание не следует рассматривать в ограничительном смысле.
[11] Варианты осуществления системы для автоматического управления панелями в отношении канвы приложения в пользовательском интерфейсе описаны здесь и проиллюстрированы на прилагаемых чертежах. Система включает в себя диспетчер панелей, который действует совместно с приложениями для обеспечения доступа к панелям, сохраняя при этом, по меньшей мере, минимальный объем пользовательского контента видимым. Система позволяет приложению задавать размер защищенной канвы. Когда необходима панель, система определяет, существует ли достаточное место для панели или можно ли его создать путем закрытия другой панели. Если да, панель добавляется. Если нет, панель может отображаться временно. Система также реагирует на изменения размера пользовательского интерфейса. Если размер пользовательского интерфейса уменьшается настолько, что для существующих панелей уже не хватает места, одна или более из существующих панелей закрываются.
[12] Варианты осуществления изобретения описаны применительно к традиционной конфигурации пользовательского интерфейса исключительно для обеспечения стандартной системы координат; однако изобретение не ограничивается традиционными конфигурациями пользовательского интерфейса. Таким образом, использование конкретной ориентации (например, горизонтальной, вертикальной, альбомной, портретной и т.д.), направления (например, влево, вправо, вверх и вниз), позиции (например, вверху, внизу, сбоку, выше, ниже, спереди, сзади и т.д.) и размера (например, высоты, ширины и т.д.) не следует рассматривать как ограничение этими конкретными ориентацией, направлением, позицией или размером.
[13] На фиг. 1 показана блок-схема, демонстрирующая систему для автоматического управления панелями в пользовательском интерфейсе приложения. Система 100 включает в себя диспетчер 102 панелей для управления отображением панелей в пользовательском интерфейсе 104 приложения 106 на основании свойств отображения используемого устройства и текущих свойств пользовательского интерфейса (например, размера канвы, количества открытых панелей и т.д.). Диспетчер 102 панелей, пользовательский интерфейс 104, приложение 106 выполняются на вычислительном устройстве 108. Вычислительное устройство может относиться к одному из различных типов вычислительных устройств (например, планшетное вычислительное устройство, настольный компьютер, устройство мобильной связи, портативный компьютер, гибридное вычислительное устройство портативный компьютер/планшет, мультисенсорный дисплей с большим экраном, игровое устройство, интеллектуальный телевизор или другие типы вычислительных устройств) для выполнения приложений для осуществления различных задач.
[14] Пользователь 110 может использовать приложение на вычислительном устройстве для различных задач, которые могут включать в себя, например, написание текстов, вычисление, рисование, организация, подготовку презентаций, отправку и прием электронной почты, взятие и организация заметок, написание музыки и пр. Приложения могут включать в себя приложения толстого клиента, которые могут храниться локально на вычислительном устройстве, или могут включать в себя приложения тонкого клиента (т.е. веб-приложения), которые могут располагаться на удаленном сервере и быть доступны по сети, например, интернету или интрасети. Приложение тонкого клиента может располагаться в среде, управляемой браузером или кодироваться на языке, поддерживаемом браузером, и базироваться на обычном веб-браузере для обеспечения выполнения приложения на вычислительном устройстве. Вычислительное устройство может быть выполнено с возможностью приема контента для представления на дисплее 120 (который может содержать дисплей с сенсорным экраном).
[15] Приложение может быть сконфигурировано так, чтобы пользователь 110 мог использовать указательное устройство (например, мышь, перо/стилус и т.д.) и/или использовать датчики 112 (например, датчик прикосновения, акселерометр, датчик наведения, распознавание лиц, распознавание речи, датчик света, датчик близости, гироскоп, датчик наклона, GPS и т.д.) на вычислительном устройстве 110 для взаимодействия с контентом 114 в различных режимах ввода. Контент может отображаться на канве 116 приложения. Пользовательский интерфейс может включать в себя одну или более выборочно отображаемых панелей 118, которые содержат несколько выбираемых функциональных органов управления и элементов. Диспетчер панелей автоматически управляет отображением панелей на основании конфигурации 122, обеспеченной приложением, для сохранения минимальной величины свободного места на дисплее для канвы приложения.
[16] Фиг. 2A и 2B образуют обобщенную блок-схему операций одного варианта осуществления способа автоматического управления панелями в отношении канвы приложения в пользовательском интерфейсе. Способ 200 начинается, когда происходит событие, которое может влиять на размер канвы, например, изменение конфигурации дисплея (например, разрешения или ориентации) устройства (например, вызванное изменением настроек дисплея или изменением ориентации дисплея) или изменение пользовательского интерфейса (например, изменение размеров окна приложения или открытие/закрытие панели), что, в свою очередь, может влиять на управление панелями. Когда происходит такое событие, операция 202 проверки текущего размера собирает информацию, которая может включать в себя, но без ограничения, размер защищенной канвы и текущий размер пользовательского интерфейса приложения (т.е. окна). Размер защищенной канвы указывает зависящий от приложения минимальный размер канвы, чтобы гарантировать, что значительный объем пользовательского контента остается видимым. Другими словами, размер канвы не может быть меньше размера защищенной канвы. В различных вариантах осуществления размер защищенной канвы может быть указан в одном измерении (например, по ширине или высоте). Например, ширина защищенной канвы может быть указана для защиты от вторжения боковых панелей или высота защищенной канвы может быть указана для защиты от вторжения верхних/нижних панелей. В других вариантах осуществления, размер защищенной канвы может быть указан в двух измерениях (например, по ширине и высоте).
[17] Способ продолжается ответом, который зависит, по меньшей мере, частично, от типа происходящего события. Если запрашивается открытие панели, которая на данный момент не открыта (т.е. новой панели), операция 204 проверки вместимости определяет, можно ли добавить новую панель, сохраняя размер защищенной канвы. Операция проверки вместимости может учитывать различные свойства запрашиваемой панели, например, но без ограничения, выравнивание, поведение при вводе, заголовок, хром, критичность, высоту, состояние привязки и ширину. Поведение при вводе указывает, предназначена ли панель быть постоянной или временной. Постоянные (т.е. неперемещаемые) панели призваны сосуществовать с канвой и могут быть привязаны в пользовательском интерфейсе. Постоянная панель сохраняется, пока не будет вручную закрыта пользователем (например, с использованием виджета закрытия) или программно закрыта приложением. Временные панели существуют поверх канвы. Временная (т.е. легко закрываемая или всплывающая) панель сохраняется, пока пользователь не переместит фокус в область за пределы панели. Такие параметры, как поведение при вводе, приоритет и ширина, могут непосредственно влиять на обработку панели диспетчером панелей.
[18] Если новая панель помещается в доступном свободном месте, операция 216 открытия постоянной панели открывает новую панель как постоянную панель. Новая панель может располагаться внутри последней открытой панели или, если других панелей не открыто, с одной стороны пользовательского интерфейса приложения, или за пределами открытых панелей. Например, панель может открываться слева от существующих панелей. Операция 218 переконфигурирования канвы изменяет размер канвы и, при необходимости, перезаполняет и/или масштабирует контент.
[19] Если новая панель не помещается (т.е. новый размер канвы меньше размера защищенной канвы), операция 206 инвентаризации панелей определяет, открыты ли на данный момент какие-либо постоянные панели. В отсутствие открытых постоянных панелей, операция 208 открытия временной панели открывает панель как всплывающую панель, а не постоянную панель. Если открыто более одной постоянной панели, операция 214 закрытия постоянной панели закрывает постоянную панель с наименьшим приоритетом. Выбор панели с наименьшим приоритетом может базироваться на таких критериях, как, но без ограничения, старшинство (т.е. закрывается старейшая открытая панель), новизна (т.е. закрывается последняя панель, подлежащая открытию), и некритичность (т.е. некритическая панель закрывается до закрытия критической панели).
[20] Если открыта одна-единственная постоянная панель, производится определение 210 критичности. Если открытая панель не критична, способ переходит к операции 214 закрытия постоянной панели. Если только открытая панель является критической, операция 212 свертывания критической панели может временно закрывать критическую панель. В различных вариантах осуществления, операция свертывания критической панели может отмечать, что критическая панель закрыта. Критическая панель может фактически закрываться или просто становиться ненаблюдаемой.
[21] После закрытия или свертывания панелей посредством операции 212 свертывания критической панели или операции 214 закрытия постоянной панели, операция может возвращаться к операции 204 проверки вместимости для переоценки доступного свободного места. При наличии достаточного свободного места, способ продолжается операцией 216 открытия постоянной панели и, при необходимости, операции 218 переконфигурирования канвы. Если нет, операции 206-214 могут повторяться или появляться на основании текущего состояния панели.
[22] Возвращаясь к определению типа события, если происходит событие закрытия панели, операция 219 закрытия панели закрывает панель, освобождая свободное место в области UI. Операция 220 проверки свертывания критической панели пытается восстановить ранее свернутую критическую панель, при наличии достаточного свободного места для критической панели. При необходимости, способ продолжается операцией 218 переконфигурирования канвы.
[23] Возвращаясь к определению типа события, если происходит событие изменения размера UI, способ продолжается (фиг. 2B) определением 222 направления изменения размера UI. Изменение размера UI может происходить независимо от открытия или закрытия панели. Событие изменения размера UI может быть вызвано непосредственно изменением размеров области UI (т.е. окна) или компонента UI (например, канвы приложения или панели) или переконфигурированием дисплея (например, изменением разрешения или ориентации дисплея). В случае увеличения размера UI, в том смысле, что больше свободного места потенциально доступно для канвы и панелей, операция 220 проверки свертывания критической панели пытается восстановить ранее свернутую критическую панель, при наличии достаточного свободного места для критической панели. В случае уменьшения размера UI, операция 224 гарантирования размера защищенной канвы определяет, меньше ли результирующий размер канвы размера защищенной канвы и закрывает панели с наименьшим приоритетом, пока не будет достигнут размер защищенной канвы или не будут закрыты все панели. Вместо закрытия низкоприоритетных панелей, операция 224 гарантирования размера защищенной канвы может выборочно преобразовывать одну или более из низкоприоритетных постоянных панелей во временные панели для создания свободного места. Преобразование открытых на данный момент постоянных панелей во временные панели может ограничиваться только теми панелями, которые первоначально были открыты как временные панели, в отсутствие достаточного свободного места, когда эта панель открывалась. Способ продолжается, при необходимости, операцией 218 переконфигурирования канвы (фиг. 2A).
[24] На фиг. 2C показана обобщенная блок-схема операций, детализирующая один вариант осуществления операции открытия временной панели. Операция 208 открытия временной панели начинается с операции 230 открытия всплывающей панели, которая открывает новую панель в качестве временной панели, покрывающей участок канвы. Необязательная операция 232 фокусировки может обеспечивать любую специальную обработку канвы, документа и/или пользовательского интерфейса при отображении временной панели. В зависимости от приложения, операция фокусировки может манипулировать канвой или документом для поддержания наблюдаемости выбранного объекта на участке канвы, не покрытом временной панелью. Например, в приложении редактирования текста или электронной таблицы, операция фокусировки может прокручивать канву для поддержания наблюдаемости выбранного объекта. Аналогично, в приложении презентации, операция фокусировки может масштабировать документ для поддержания наблюдаемости выбранного объекта. В случае более модульного приложения, например, комбинированного приложения электронной почты, календаря и задач, операция фокусировки может, в необязательном порядке, изменять форму и/или конфигурацию пользовательского интерфейса приложения для оптимального использования оставшегося доступного свободного места. Операция 234 автоматического закрытия закрывает временную панель при переносе фокуса с временной панели. Необязательная операция 236 восстановления канвы может отменять любую специальную обработку, осуществляемую операцией над панелью. Например, операция восстановления канвы может прокручивать канву обратно в ее исходную позицию.
[25] На фиг. 2D показана обобщенная блок-схема операций, детализирующая один вариант осуществления операции проверки свертывания критической панели. Операция 220 проверки свертывания критической панели начинается с операции 240 идентификации свернутой критической панели, которая определяет, не открыта ли в данный момент панель, назначенная приложением как критическая. Если критическая панель закрыта, определение 242 проверки вместимости определяет, достаточно ли свободного места для открытия критической панели. Если да, операция 244 восстановления критической панели, при необходимости, загружает или делает видимой критическую панель. Хотя она описана применительно к критическим панелям, операция проверки свертывания критической панели может использоваться для повторного открытия других панелей (например, некритические панели, которые были автоматически закрыты).
[26] На фиг. 3A - 3E показан один вариант осуществления последовательности управления панелями для приложения, выполняющегося на мониторе с более высоким разрешением в горизонтальной ориентации. Приложение задает размер защищенной канвы, равный 400 пикселям в ширину. В горизонтальной ориентации, монитор 300 обеспечивает ширину области отображения 1600 пикселей. На фиг. 3A, никакие панели не отображаются, и канва приложения 302 занимает всю ширину дисплея.
[27] На фиг. 3B показан пользовательский интерфейс после запрашивания первой панели 304 шириной 330 пикселей. Результирующая ширина канвы равна 1270 пикселям, поэтому диспетчер панелей отображает первую панель и, соответственно, изменяет размер/перезаполняет канву.
[28] На фиг. 3C показан пользовательский интерфейс после запрашивания второй панели 306 шириной 330 пикселей. Даже после добавления второй панели, результирующая ширина канвы равна 940 пикселям, что больше размера защищенной канвы 400 пикселей. Соответственно, диспетчер панелей отображает вторую панель слева от первой панели и, соответственно, изменяет размер/перезаполняет канву.
[29] На фиг. 3D показано влияние изменения размеров пользовательского интерфейса приложения на конфигурацию разделенного экрана, которая сокращает участок дисплея, доступный пользовательскому интерфейсу приложения, до 789 пикселей. В новой конфигурации, размер канвы будет ограничен 129 пикселями в случае отображения обеих панелей. Для поддержания минимального размера защищенной канвы, диспетчер панелей закрывает первую панель, которая является старейшей панелью, и оставляет вторую панель. Соответственно, канва изменяется в размере/перезаполняется.
[30] На фиг. 3E показано влияние изменения размеров пользовательского интерфейса приложения на конфигурацию полного экрана, которая восстанавливает участок дисплея, доступный пользовательскому интерфейсу приложения, до полных 1600 пикселей. В проиллюстрированном варианте осуществления, существующие панели остаются, но ранее закрытые панели не восстанавливаются (т.е. повторно не открываются). В различных вариантах осуществления, система может пытаться восстанавливать закрытые панели при наличии свободного места. Например, система может поддерживать историю панелей и пытаться автоматически повторно открывать наиболее недавно закрытые панели по мере возникновения свободного места. В некоторых вариантах осуществления автоматически восстанавливаются только автоматически закрытые панели и критические панели. В некоторых вариантах осуществления, автоматически восстанавливаются только критические панели. Соответственно, канва изменяется в размере/перезаполняется.
[31] На фиг. 3F - 3I показан один вариант осуществления последовательности управления панелями для приложения, выполняющегося на мониторе с более высоким разрешением в горизонтальной ориентации с использованием критической панели. На фиг. 3F показан пользовательский интерфейс приложения с канвой приложения 302, ограниченной критической панелью 308 и двумя некритическими панелями 304, 306. Приложение может задавать панель как критическую панель. Критическая панель может быть панелью, которая является фундаментальной (существенно важной) для пользовательского интерфейса приложения. Критическая панель не обязана всегда присутствовать, обычно должна быть доступна пользователю. Диспетчер панелей не закрывает автоматически критическую панель, пока текущий размер пользовательского интерфейса не будет допускать открытие только одной панели за раз. Диспетчер панелей будет автоматически восстанавливать критическую панель, когда размер пользовательского интерфейса возрастает в достаточной степени, или закрывается другая панель. В различных вариантах осуществления, диспетчер панелей может автоматически восстанавливать критическую панель, даже если она закрыта вручную. В некоторых вариантах осуществления, приложение может только указывать окну панель как критическую панель.
[32] фиг. 3G показано влияние изменения размеров пользовательского интерфейса приложения на разделенный экран, что сокращает участок дисплея, доступный пользовательскому интерфейсу приложения, до 789 пикселей. В новой конфигурации, места достаточно только для одной панели, чтобы размер канвы превышал размер защищенной канвы. Соответственно, диспетчер панелей закрывает обе некритические панели и оставляет критическую панель. Соответственно, канва изменяется в размере/перезаполняется.
[33] На фиг. 3H показан пользовательский интерфейс в конфигурации разделенного экрана после запрашивания третьей панели 310 шириной 330 пикселей. Поскольку только места хватает только для одной панели, критическая панель временно свертывается в пользу третьей панели задач. Соответственно, канва изменяется в размере/перезаполняется.
[34] На фиг. 3I показано влияние изменения размеров пользовательского интерфейса приложения на конфигурацию полного экрана, которая восстанавливает участок дисплея, доступный пользовательскому интерфейсу приложения, до полных 1600 пикселей. Существующие панели остаются. Кроме того, поскольку в данный момент свободного места достаточно, критическая панель восстанавливается. Соответственно, канва изменяется в размере/перезаполняется.
[35] На фиг. 4A - 4C показан один вариант осуществления последовательности управления панелями для приложения, выполняющегося на планшете с более низким разрешением. Приложение задает размер защищенной канвы, равный 400 пикселям в ширину. В горизонтальной ориентации, планшет обеспечивает ширину области отображения 1024 пикселей. Согласно фиг. 4A, никакие панели не отображаются, и канва приложения 402 занимает всю ширину дисплея.
[36] На фиг. 4B показан пользовательский интерфейс после запрашивания первой панели 404 шириной 330 пикселей. Результирующая ширина канвы равна 694 пикселям, поэтому диспетчер панелей отображает первую панель и, соответственно, изменяет размер/перезаполняет канву.
[37] На фиг. 4C показан пользовательский интерфейс после запрашивания второй панели 406 шириной 330 пикселей. Добавление второй панели приводит к уменьшению ширины канвы до 364 пикселей, что меньше размера защищенной канвы 400 пикселей. На дисплее не помещаются одновременно первая панель и вторая панель. Соответственно, первая панель закрывается, и вторая панель добавляется. Фактически, вторая панель заменяет первую панель.
[38] На фиг. 4D показан пользовательский интерфейс приложения в конфигурации разделенного экрана, что сокращает участок дисплея, доступный пользовательскому интерфейсу приложения, до 501 пикселя. В этой конфигурации, размер канвы будет ограничен 171 пикселем в случае отображения панели. Соответственно, существующая панель закрывается. Соответственно, канва изменяется в размере/перезаполняется.
[39] На фиг. 4E показана обработка панелей, когда размер дисплея и защищенный размер приложения не позволяют отображать постоянные панели. Вместо запрета отображения всех панелей, при запрашивании панели, диспетчер панелей отображает панель в качестве временной панели 408. Временная панель покрывает, по меньшей мере, часть канвы. В проиллюстрированном варианте осуществления, временная панель покрывает часть хрома приложения. В других вариантах осуществления, временная панель может не покрывать хром приложения. Временные панели также могут выглядеть как полноэкранные панели или панели, создающие эффект близости, которые покрывают существенную часть полной области пользовательского интерфейса или полной области отображения. Канва приложения не изменяется в размерах/перезаполняется. При переносе фокуса с временной панели (т.е., когда пользователь кликает за пределами временной панели), временная панель закрывается, опять же, оставляя канву приложения полностью видимой.
[40] На фиг. 4F и 4G показан один вариант осуществления последовательности управления панелями, когда планшет принимает вертикальную ориентацию. В вертикальной ориентации, планшет обеспечивает ширину области отображения 768 пикселей. Согласно фиг. 4F, никакие панели не отображаются, и канва приложения занимает всю ширину дисплея.
[41] На фиг. 4G показан пользовательский интерфейс после запрашивания первой панели 404 шириной 330 пикселей. Результирующая ширина канвы равна 438 пикселям, поэтому диспетчер панелей отображает первую панель и, соответственно, изменяет размер/перезаполняет канву.
[42] Предмет данной заявки можно осуществлять на практике в различных вариантах осуществления в виде систем, устройств и других изделий производства, или в виде способов. Варианты осуществления можно реализовать в виде аппаратного обеспечения, программного обеспечения, компьютерно-считываемых носителей или их комбинации. Описанные здесь варианты осуществления и функциональные возможности могут действовать посредством многочисленных вычислительных систем, включающих в себя, без ограничения, настольные компьютерные системы, проводные и беспроводные вычислительные системы, мобильные вычислительные системы (например, мобильные телефоны, нетбуки, компьютеры типа планшета или графического планшета, компьютеры-ноутбуки и портативные компьютеры), карманные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, миникомпьютеры и универсальные компьютеры.
[43] Пользовательские интерфейсы и информация различных типов может отображаться посредством встроенных дисплеев вычислительных устройств или удаленных блоков отображения, связанных с одним или более вычислительными устройствами. Например, пользовательские интерфейсы и информация различных типов могут отображаться с возможностью взаимодействия с ними на поверхности стены, на которую проецируются пользовательские интерфейсы и информация различных типов. Взаимодействие с многочисленными вычислительными системами, посредством которого можно применять на практике варианты осуществления изобретения, включают в себя ввод с помощью клавиатуры, ввод с помощью сенсорного экрана, голосовой или другой аудио-ввод, жестовый ввод, когда соответствующее вычислительное устройство обладает функциональными возможностями обнаружения (например, камерой) для захвата и интерпретации жестов пользователя для управления функциональными возможностями вычислительного устройства и пр.
[44] Фиг. 5-7 и соответствующие описания обеспечивают рассмотрение различных операционных сред, в которых можно применять на практике варианты осуществления изобретения. Однако проиллюстрированные и рассмотренные устройства и системы служат для примера и иллюстрации, но не ограничения, большого количества конфигураций вычислительного устройства, которые можно использовать для практического применения вышеописанных вариантов осуществления изобретения.
[45] На фиг. 5 показана блок-схема, демонстрирующая физические компоненты (т.е. аппаратное обеспечение) вычислительного устройства 500, позволяющие применять на практике варианты осуществления изобретения. Описанные ниже компоненты вычислительного устройства могут быть пригодны для реализации вычислительных устройств, включающих в себя, но без ограничения, персональный компьютер, планшетный компьютер, поверхностный компьютер и смартфон или любое другое рассмотренное здесь вычислительное устройство. В базовой конфигурации, вычислительное устройство 500 может включать в себя, по меньшей мере, один блок 502 обработки и системную память 504. В зависимости от конфигурации и типа вычислительного устройства, системная память 504 может содержать, но без ограничения, энергозависимое хранилище (например, оперативную память), энергонезависимое хранилище (например, постоянную память), флэш-память или любую комбинацию таких запоминающих устройств. Системная память 504 может включать в себя операционную систему 505 и один или более программных модулей 506, пригодных для выполняющихся прикладных программ 520, например, диспетчера 102 панелей. Например, операционная система 505 может быть пригодна для управления работой вычислительного устройства 500. Кроме того, варианты осуществления изобретения можно применять на практике совместно с графической библиотекой, другими операционными системами, или любой другой прикладной программой без ограничения каким-либо конкретным приложением или системой. Эта базовая конфигурация проиллюстрирована компонентами, обведенными пунктирной линией 508. Вычислительное устройство 500 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 500 также может включать в себя дополнительные устройства хранения данных (сменные и/или стационарные), например, магнитные диски, оптические диски или ленту. Такое дополнительное хранилище проиллюстрировано сменным запоминающим устройством 509 и стационарным запоминающим устройством 510.
[46] Как указано выше, в системной памяти 504 может храниться несколько программных модулей и файлы данных. При выполнении на блоке 502 обработки, прикладные программы 520 могут осуществлять процессы, включающие в себя, но без ограничения, одну или более из стадий способа 200. Другие программные модули, которые можно использовать в соответствии с вариантами осуществления настоящего изобретения, могут включать в себя приложения электронной почты и контактов, приложения редактирования текста, приложения электронных таблиц, приложения базы данных, приложения слайдовой презентации или прикладные программы компьютерного рисования и т.д.
[47] Кроме того, варианты осуществления изобретения можно применять на практике в виде электрической схемы, содержащей дискретные электронные элементы, корпусные или интегральные электронные микросхемы, содержащие логические вентили, схему с использованием микропроцессора, или на едином кристалле, содержащем электронные элементы или микропроцессоры. Например, варианты осуществления изобретения можно применять на практике посредством однокристальной системы (SOC), где каждый или многие из проиллюстрированных компонентов могут быть встроены в единую интегральная схема. Такое устройство SOC может включать в себя один или более блоков обработки, графических блоков, блоков связи, блоков системной виртуализации и различных функциональных возможностей приложений, которые все объединены (или ʺвожженыʺ) на подложке микросхема в виде единой интегральной схемы. При работе посредством SOC, функциональные возможности, описанные здесь в отношении прикладных программ 520, могут осуществляться посредством логики, зависящей от применения, объединенной с другими компонентами вычислительного устройства 500 на единой интегральной схеме (микросхеме). Варианты осуществления изобретения также можно применять на практике с использованием других технологий, позволяющих осуществлять логические операции, например, И, ИЛИ и НЕ, включающие в себя, но без ограничения, механические, оптические, жидкостные и квантовые технологии. Кроме того, варианты осуществления изобретения можно применять на практике в компьютере общего назначения или в любых других схемах или системах.
[48] Вычислительное устройство 500 также может иметь одно или более устройств 512 ввода, например, клавиатуру, мышь, перо, устройство звукового ввода, устройство тактильного ввода и т.д. Также могут быть включены такие устройства 514 вывода, как дисплей, проектор, громкоговорители, принтер и т.д. Вышеупомянутые устройства являются примерами, и могут использоваться другие. Вычислительное устройство 500 может включать в себя одно или более коммуникационных соединений 516, позволяющих осуществлять связь с другими вычислительными устройствами 518. Примеры пригодных коммуникационных соединений 516 включают в себя, но без ограничения, схему RF передатчика, приемника и/или приемопередатчика; универсальную последовательную шину (USB), параллельные и/или последовательные порты.
[49] Используемый здесь термин компьютерно-считываемые носители может включать в себя компьютерные носители данных. Компьютерные носители данных могут включать в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные любым способом или согласно любой технологии хранения информации, например, компьютерно-считываемых инструкций, структур данных или программных модулей. Системная память 504, сменное запоминающее устройство 509 и стационарное запоминающее устройство 510 являются примерами компьютерных носителей данных (т.е. запоминающих устройств). Компьютерные носители данных могут включать в себя оперативную память (RAM), постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память или другую технологию памяти, компакт-диск с возможностью только чтения (CD-ROM), цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на основе магнитного диска или другие магнитные запоминающие устройства, или любое другое промышленное изделие, которое можно использовать для хранения информации и к которому вычислительное устройство 500 может осуществлять доступ. Любые такие компьютерные носители данных могут входить в состав вычислительного устройства 500.
[50] На фиг. 6A и 6B показано мобильное вычислительное устройство 600, позволяющее применять на практике варианты осуществления изобретения. Примеры пригодных мобильных вычислительных устройств включают в себя, но без ограничения, мобильный телефон, смартфон, планшетный компьютер, поверхностный компьютер и портативный компьютер. В базовой конфигурации, мобильное вычислительное устройство 600 представляет собой карманный компьютер, имеющий, как элементы ввода, так и элементы вывода. Мобильное вычислительное устройство 600 обычно включает в себя дисплей 605 и одну или более кнопок 610 ввода, которые позволяют пользователю вводить информацию в мобильное вычислительное устройство 600. Дисплей 605 мобильного вычислительного устройства 600 также может функционировать как устройство ввода (например, дисплей с сенсорным экраном). Если включен, необязательный боковой элемент 615 ввода допускает дополнительный пользовательский ввод. Боковым элементом 615 ввода может быть поворотным переключателем, кнопкой или элементом ручного ввода любого другого типа. В альтернативных вариантах осуществления, мобильное вычислительное устройство 600 может включать в себя больше или меньше элементов ввода. Например, в некоторых вариантах осуществления дисплей 605 может не иметь сенсорного экрана. В еще одном альтернативном варианте осуществления, мобильным вычислительным устройством 600 является портативная телефонная система, например сотовый телефон. Мобильное вычислительное устройство 600 также может включать в себя необязательную клавишную панель 635. Необязательная клавишная панель 635 может представлять собой физическую клавишную панель или ʺпрограммнуюʺ клавишную панель, генерируемую на дисплее с сенсорным экраном. В различных вариантах осуществления, элементы вывода включают в себя дисплей 605 для демонстрации графического пользовательского интерфейса, визуальный индикатор 620 (например, светодиод), и/или преобразователь 625 аудиосигнала (например, громкоговоритель). В некоторых вариантах осуществления, мобильное вычислительное устройство 600 включает в себя вибрационный преобразователь для предоставления пользователю тактильной обратной связи. В еще одном варианте осуществления, мобильное вычислительное устройство 600 включает в себя входной и/или выходной порты, например, аудио-вход (например, гнездо для подключения микрофона), аудио-выход (например, гнездо для подключения головные телефоны), и видео-выход (например, порт HDMI) для отправки сигналов на внешнее устройство или приема сигналов от него.
[51] На фиг. 6B показана блок-схема, демонстрирующая архитектуру одного варианта осуществления мобильного вычислительного устройства. Таким образом, мобильное вычислительное устройство 600 может включать в себя систему (т.е. архитектуру) 602 для реализации некоторых вариантов осуществления. В одном варианте осуществления, система 602 реализована в виде смартфона, способного выполнять одно или более приложений (например, браузеры, клиенты электронной почты, блокноты, диспетчеры контактов, клиенты обмена сообщениями, игры и медиа-клиенты/проигрыватели). В некоторых вариантах осуществления, система 602 объединена как вычислительное устройство, например, карманный персональный компьютер (PDA), объединенный с беспроводным телефоном.
[52] Одна или более прикладных программ 665 может загружаться в память 662 и выполняться на или совместно с операционной системой 664. Примеры прикладных программ включают в себя программы набора телефонного номера, программы электронной почты, программы личной информационной системы (PIM), программы редактирования текста, программы электронных таблиц, программы интернет-браузера, программы обмена сообщениями и т.д. Система 602 также включает в себя область 668 энергонезависимого хранения в памяти 662. Область 668 энергонезависимого хранения может использоваться для хранения постоянной информации, которая не должна утрачиваться при отключении системы 602. Прикладные программы 665 могут использовать и сохранять информацию в области 668 энергонезависимого хранения, например, электронную почту или другие сообщения, используемые приложением электронной почты, и пр. Приложение синхронизации (не показано) также установлено в системе 602 и запрограммировано для взаимодействия с соответствующим приложением синхронизации, установленным на главном компьютере, для поддержания синхронизации информации, хранящейся в области 668 энергонезависимого хранения, с соответствующей информацией, хранящейся на главном компьютере. Очевидно, другие приложения могут загружаться в память 662 и выполняться на мобильном вычислительном устройстве 600, включая описанные здесь прикладные программы 520.
[53] Система 602 имеет источник 670 питания, который можно реализовать в виде одной или более батарей. Источник 670 питания может дополнительно включать в себя внешний источник питания, например, адаптер переменного тока или силовая док-станция, которая питает или подзаряжает батареи.
[54] Система 602 также может включать в себя блок 672 радиосвязи, который осуществляет функцию передачи и приема радиопередач. Блок 672 радиосвязи облегчает беспроводное соединение между системой 602 и внешним миром через носитель связи или поставщика услуг. Передачи на и от блока 672 радиосвязи осуществляются под управлением операционной системы 664. Другими словами, передачи, принятые блоком 672 радиосвязи, могут рассылаться на прикладные программы 665 через операционную систему 664 и наоборот.
[55] Визуальный индикатор 620 может использоваться для обеспечения визуальных извещений, и/или аудиоинтерфейс 674 может использоваться для создания звуковых извещений с помощью преобразователя 625 аудиосигнала. В проиллюстрированном варианте осуществления, визуальным индикатором 620 является светодиод (LED), и преобразователем 625 аудиосигнала является громкоговоритель. Эти устройства могут быть непосредственно подключены к источнику 670 питания, благодаря чему, будучи активированы, они остаются включенными в течение интервала времени, определяемого механизмом извещения, хотя процессор 660 и другие компоненты могут отключаться для экономии энергии батареи. LED можно запрограммировать так, чтобы он оставался включенным неопределенно долго, пока пользователь не предпримет действие для указания состояния включения устройства. Аудиоинтерфейс 674 используется для подачи звуковых сигналов пользователю и приема звуковых сигналов от него. Например, помимо подключения к преобразователю 625 аудиосигнала, аудиоинтерфейс 674 также может быть подключен к микрофону для приема звукового ввода, например, для облегчения телефонного разговора. В соответствии с вариантами осуществления настоящего изобретения, микрофон также может служить аудиодатчиком для облегчения управления извещениями, как будет описано ниже. Система 602 может дополнительно включать в себя видеоинтерфейс 676, который позволяет использовать встроенную камеру 630 для записи неподвижных изображений, видеопотока и пр.
[56] Мобильное вычислительное устройство 600, реализующее систему 602, может иметь дополнительные признаки или функциональные возможности. Например, мобильное вычислительное устройство 600 также может включать в себя дополнительные устройства хранения данных (сменные и/или стационарные), например, магнитные диски, оптические диски или ленту. Такое дополнительное хранилище проиллюстрировано областью 668 энергонезависимого хранения.
[57] Данные/информация, генерируемые или захваченные мобильным вычислительным устройством 600 и сохраненные системой 602, могут храниться локально на мобильном вычислительном устройстве 600, как описано выше, или данные могут храниться на любым количестве носителей данных, к которым устройство может осуществлять доступ через блок 672 радиосвязи или через проводное соединение между мобильным вычислительным устройством 600 и отдельным вычислительным устройством, связанным с мобильным вычислительным устройством 600, например, компьютером-сервером в распределенной вычислительной сети, например, интернете. Очевидно, доступ к таким данным/информации может осуществляться через мобильное вычислительное устройство 600, через блок 672 радиосвязи или через распределенную вычислительную сеть. Аналогично, такие данные/информация легко переносить между вычислительными устройствами для сохранения и использовать согласно общеизвестному средству переноса и хранения данных/информации, включающему в себя электронную почту и системы совместного использования данных/информации для взаимодействия.
[58] На фиг. 7 показан один вариант осуществления архитектуры системы для предоставления функциональных возможностей многоголосой интерполяции шрифта одному или более клиентским устройствам, как описано выше. Контент, разработанный, подвергнутый взаимодействию или отредактированный с помощью прикладных программ 520, может храниться в разных каналах связи или других типах хранилища. Например, различные документы могут храниться с использованием службы 722 каталогов, веб-портала 724, службы 726 почтовый ящик, службы 728 мгновенного обмена сообщениями или сайта 730 социальной сети. Прикладные программы 520 могут использовать любой из этих типов систем и т.п. для обеспечения использования данных, как описано здесь. Сервер 720 может предоставлять прикладные программы 520 клиентам. В порядке одного примера, сервер 720 может быть веб-сервером, предоставляющим прикладные программы 520 по сети. Сервер 720 может предоставлять прикладные программы 520 по сети клиентам через сеть 715. В порядке примера, клиентское вычислительное устройство можно реализовать в виде вычислительного устройства 500 и воплотить в персональном компьютере 702a, планшетном компьютере 702b и/или мобильном вычислительном устройстве (например, смартфоне) 702c. Любой из этих вариантов осуществления клиентского устройства может получать контент из хранилища 716.
[59] Описание и иллюстрация одного или более вариантов осуществления, предусмотренных в этой заявке, призваны обеспечивать исчерпывающее и полное раскрытие объема изобретения специалистам в данной области техники и не призваны ограничивать объем заявленного изобретения. Варианты осуществления, примеры, и детали, предусмотренные в этой заявке, считаются достаточными для передачи владения и для того, чтобы специалисты в данной области техники могли применять на практике предпочтительные варианты осуществления заявленного изобретения. Описания структур, ресурсов, операций и этапов, считающимися общеизвестными специалистам в данной области техники, могут быть сокращены или исключены во избежание затемнения менее известных или уникальных аспектов изобретения данной заявки. Заявленное изобретение не следует рассматривать как ограниченное каким-либо вариантом осуществления, примером или деталью, предусмотренными в этой заявке, если в явном виде не указано обратное. Независимо от того, показаны или описаны ли совместно или по отдельности, различные признаки (структурные и методологические), подлежат выборочному включению или исключению для формирования вариант осуществления с конкретным набором признаков. Дополнительно, некоторые или все из показанных или описанных функций и этапов могут осуществляться в любом порядке или одновременно. На основании описания и иллюстрации настоящей заявки, специалист в данной области техники может предложить вариации, модификации и альтернативные варианты осуществления, отвечающие сущности более широких аспектов общих принципов изобретения, воплощенных в этой заявке, которые не выходят за рамки более широкого объема заявленного изобретения.