панорамирование контента с использованием операции перетаскивания

Классы МПК:
Автор(ы):, , , , , , ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2009-04-23
публикация патента:

Изобретение относится к машиночитаемому носителю, компьютерной системе и компьютеризированному способу панорамирования контента. Техническим результатом является обеспечение несенсорному приложению возможности использовать свою функциональность прокрутки контента при выполнении жестов на интерфейсе сенсорного дисплея. Первоначально аспекты инициированного пользователем ввода включают в себя место активизации (например, точка касания для интерфейса сенсорного дисплея) и жест. После подтверждения того, что место активизации находилось в пределах зоны контента, и того, что жест представляет собой операцию перетаскивания, на основании расстояния непрерывного тактильного контакта с интерфейсом сенсорного дисплея, может быть активизирован режим панорамирования. В режиме панорамирования в случае, если приложение, представляющее контент в области просмотра, поддерживает функциональность прокрутки, жест будет управлять передвижением контента в пределах зоны контента. В частности, операция перетаскивания для жеста будет панорамировать контент в пределах области просмотра, если она имела место на поверхности интерфейса сенсорного дисплея. 3 н. и 15 з.п. ф-лы, 5 ил. панорамирование контента с использованием операции перетаскивания, патент № 2523169

панорамирование контента с использованием операции перетаскивания, патент № 2523169 панорамирование контента с использованием операции перетаскивания, патент № 2523169 панорамирование контента с использованием операции перетаскивания, патент № 2523169 панорамирование контента с использованием операции перетаскивания, патент № 2523169 панорамирование контента с использованием операции перетаскивания, патент № 2523169

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

1. Машиночитаемый носитель информации, на котором воплощены машиноисполняемые инструкции, которыми при их исполнении осуществляется способ панорамирования контента в пределах области просмотра, представляемой на компьютерном устройстве, при этом способ включает в себя этапы, на которых:

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

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

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

определяют, поддерживает ли несенсорное приложение функциональность прокрутки в отношении контента в зоне контента;

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

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

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

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

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

4. Машиночитаемый носитель по п.2, при этом при распознавании жеста как операции перетаскивания посредством устранения неоднозначности операции перетаскивания относительно операции нажатия:

обнаруживают направление непрерывного движения перетаскивания операции перетаскивания;

определяют прокручиваемое направление зоны контента, причем прокручиваемое направление соответствует направлению, в котором контент можно панорамировать в пределах зоны контента, как предписывается несенсорным приложением; и

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

5. Машиночитаемый носитель по п.4, при этом расстояние непрерывного движения перетаскивания получают посредством сравнения декартовых координат места активации инициированного пользователем ввода на интерфейсе сенсорного дисплея с декартовыми координатами места завершения движения перетаскивания.

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

7. Компьютерная система, выполненная с возможностью предоставлять возможность панорамирования касанием несенсорному приложению, при этом компьютерная система включает в себя:

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

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

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

(a) компонент поиска полосы прокрутки для анализа несенсорного приложения с целью обнаружения того, предоставляет ли несенсорное приложение функциональность прокрутки контента в пределах зоны контента, и

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

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

8. Компьютерная система по п.7, в которой операционная система дополнительно содержит компонент ввода для приема входной информации от драйвера экрана в устройстве ввода, при этом входная информация содержит места касания, ассоциированные с временными метками.

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

10. Компьютерная система по п.9, в которой выдача сообщений панорамирования в несенсорное приложение включает в себя:

интерпретацию входной информации от драйвера экрана;

постановку интерпретированной входной информации в соответствие функциональности прокрутки несенсорного приложения; и

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

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

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

определяют, удовлетворяет ли операция перетаскивания заранее заданным системным метрикам, причем при данном определении:

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

(b) определяют, что направление операции перетаскивания, по существу, выровнено относительно заранее определенного прокручиваемого направления несенсорного приложения;

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

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

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

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

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

15. Компьютеризированный способ по п.14, в котором при подтверждении того, что операция перетаскивания удовлетворяет заранее заданным системным метрикам:

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

на основе величины затраченного времени и расстояния для операции перетаскивания отличают операцию перетаскивания от операции нажатия.

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

идентифицируют основную ось операции перетаскивания на основе усредненного направления, по существу, непрерывного движения перетаскивания;

сравнивают основную ось с одним или более направлениями прокрутки, допускаемыми функциональностью прокрутки зоны контента области просмотра; и

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

17. Компьютеризированный способ по п.14, дополнительно содержащий этапы, на которых:

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

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

18. Компьютеризированный способ по п.17, дополнительно содержащий этапы, на которых:

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

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

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

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

УРОВЕНЬ ТЕХНИКИ

Вычислительные устройства (например, персональный цифровой помощник, сотовые телефоны, ноутбуки, беспроводные мобильные устройства и т.п.), реализующие интерфейсы сенсорного дисплея, становятся все более популярными на коммерческих рынках. Такие интерфейсы сенсорного дисплея являются важной отличительной чертой вычислительных устройств и другой электроники, поскольку они имеет тенденцию к обеспечению интуитивно понятного взаимодействия с интегрированным в них программным обеспечением. В оптимальном варианте, интерфейсы сенсорного дисплея должны полностью обеспечивать интерфейс программного обеспечения, посредством которого можно управлять программным обеспечением с целью достижения всей функциональности, доступной в обычном устройстве ввода. Однако значительный объем представленного программного обеспечения не был спроектирован с учетом сенсорного ввода; такое программное обеспечение ниже в данном документе будет называться несенсорными приложениями. Например, для случая несенсорных приложений, которые сконфигурированы для прокрутки контента, отображаемого в области просмотра дисплея пользовательского интерфейса (UI), функциональность прокрутки не полностью интегрирована с интерфейсом сенсорного дисплея. То есть возможность прокручивания контента посредством применения операции перетаскивания в зоне контента в пределах области просмотра не доступна для интерфейса сенсорного дисплея. Как правило, вместо этого пользователи мыши прокручивают контент с помощью обычного ввода посредством мыши, применяемого к полосе прокрутки, а пользователи клавиатуры используют клавиши «на страницу вверх» (page up) или «на страницу вниз» (page down), или комбинацию быстрого вызова, такую как ctrl-end, или переключаются на использование мыши. Такие клавиатурные способы не согласуются с сенсорным интерфейсом, и применение прикосновения к сенсорному интерфейсу таким же образом, как у пользователей мыши (то есть попытка точного управления полосой прокрутки с помощью позиционирующего устройства), является затруднительным по причине проблем с точностью и наведением, которые пользователи обычно имеют при использовании прикосновения.

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

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

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

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

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

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

Настоящее изобретение ниже описывается подробно со ссылкой на прилагаемые чертежи, на которых:

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

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

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

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

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

В примерном варианте осуществления, если была распознана операция перетаскивания в вертикальном направлении, то активируется режим панорамирования независимо от того, поддерживает ли приложение вертикальную и/или горизонтальную прокрутку. Горизонтальные движения перетаскивания сгенерировали бы сообщения мыши, даже если приложение поддерживало бы горизонтальную прокрутку. Соответственно, пользователь все еще мог бы осуществить горизонтальное панорамирование путем выполнения вертикального перетаскивания с последующей сменой направления. Другими словами, вертикальные перетаскивания становятся прокруткой, тогда как горизонтальные перетаскивания становятся перетаскиваниями мыши. Таким образом, вводится единообразная система перемещения, которая запускает режим панорамирования для большинства приложений.

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

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

В вариантах осуществления изобретение относится к интерпретации жестов, принятых интерфейсом сенсорного дисплея, и выдаче приложению сообщений на основании интерпретации. Использование термина "приложение" не является ограничивающим, но может охватывать любое программное обеспечение или программу, функционирование которых контролируется операционной системой, при этом операционная система получает информацию ввода от интерфейса сенсорного дисплея при обнаружении инициированного пользователем ввода. Например, приложение может представлять собой стороннее приложение, которое воспроизводит прокручиваемый контент на компоненте представления и/или интерфейсе сенсорного дисплея. В этом случае считается, что приложение поддерживает функциональность прокрутки. Также функциональность прокрутки может детектироваться в случае, если инструмент полосы прокрутки размещен в пределах области просмотра на UI-дисплее.

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

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

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

Выше был приведен краткий обзор вариантов осуществления настоящего изобретения и некоторых состояний окон, представленных в них, а ниже будет описана типовая операционная среда, подходящая для реализации настоящего изобретения.

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

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

Продолжим рассматривать Фиг. 1; вычислительное устройство 100 включает в себя шину 110, которая прямо или опосредованно соединяет следующие устройства: память 112, один или более процессоров 114, один или более компонентов представления 116, порты ввода/вывода (I/O) 118, компоненты I/O 120 и иллюстративный источник питания 122. Шина 110 может представлять собой одну или более шин (таких как адресная шина, шина данных или их комбинация). Хотя различные блоки на Фиг. 1 показаны линиями в целях ясности, в реальности очерчивание различных компонентов не является настолько очевидным, и, метафорически, точнее было бы изображать линии серыми или размытыми. Например, можно рассматривать компонент представления, такой как устройство отображения, в качестве компонента I/O. Также процессоры имеют память. Изобретателям в отношении этого известно, что таковой является природа техники, и следует повторить, что диаграмма на Фиг. 1 является лишь иллюстрацией типового вычислительного устройства, которое может быть использовано в связи с одним или более вариантами осуществления настоящего изобретения. Не делается различий между такими категориями, как "рабочая станция", "сервер", "ноутбук", "мобильное устройство" и т.д., поскольку считается, что все вышеперечисленное находится в рамках сущности, которая на Фиг. 1 называется "компьютером" или "вычислительным устройством".

Вычислительное устройство 100 обычно содержит множество машиночитаемых носителей. В качестве примера, а не ограничения, машиночитаемые носители могут включать оперативное запоминающее устройство (RAM); постоянное запоминающее устройство (ROM); электронно-стираемое программируемое постоянное запоминающее устройство (EEPROM); флеш-память или запоминающие устройства на основе других технологий; CDROM, универсальные цифровые диски (DVD) или другие оптические или голографические носители; магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства; или любой другой носитель, который может быть использован для кодирования желаемой информации и к которому может осуществляться доступ вычислительным устройством 100.

Память 112 включает в себя запоминающее устройство вычислительной машины в форме энергозависимой и/или энергонезависимой памяти. Память может быть съемной, несъемной или представлять собой комбинацию указанного выше. Типовые устройства аппаратного обеспечения включают твердотельные накопители, жесткие диски, приводы оптических дисков и т.д. Вычислительное устройство 100 содержит один или более процессоров, которые считывают данные из различных сущностей, таких как память 112 или компоненты I/O 120. Компонент(-ы) представления 116 представляет(-ют) данные пользователю или другому устройству. Типовые компоненты представления включают устройство отображения, громкоговоритель, компонент печати, вибрирующий компонент и т.д. Порты I/O 118 позволяют вычислительному устройству 100 логически соединяться с другими устройствами, содержащими компоненты I/O 120, некоторые из которых могут быть встроенными. Иллюстративные компоненты включают микрофон, джойстик, игровой планшет, антенну спутниковой связи, сканер, принтер, беспроводное устройство и т.д.

Обратимся теперь к Фиг. 2, на которой показана схематическая диаграмма типовой архитектуры системы 200, подходящей для использования при реализации вариантов осуществления настоящего изобретения, в соответствии с одним из вариантов осуществления настоящего изобретения. Специалистам в данной области техники будет понятно, что типовая архитектура системы 200, показанная на Фиг. 2, является только примером одной из подходящих сред вычислений и не предназначена для наложения каких-либо ограничений на рамки применения или функциональности настоящего изобретения. Также типовая архитектура системы 200 не должна интерпретироваться как имеющая зависимость или какие-либо требования относительно любого из компонентов или комбинации компонентов, проиллюстрированных в настоящем документе.

Первоначально предоставляется вычислительное устройство 215. Вычислительное устройство 215 может иметь форму различных типов вычислительных устройств. Только в качестве примера, вычислительное устройство 215 может представлять собой персональное вычислительное устройство (например, вычислительное устройство 100 на Фиг. 1), портативное устройство (например, карманный персональный компьютер), мобильное устройство (например, ноутбук, сотовый телефон, медиа-плейер, планшетный ПК), бытовое электронное устройство, различные серверы и т.п. Кроме того, вычислительное устройство может включать в себя два или более электронных устройств, сконфигурированных для совместного использования информации.

В вариантах осуществления компонент представления 250, устройство ввода 221 и процессор (например, аппаратный компонент) могут быть функционально соединены с вычислительным устройством 215 и/или размещены в нем. Обычно операционная система 220 устанавливается на процессор. Вычислительное устройство 215 сконфигурировано для представления UI-дисплея на компоненте представления 250. Компонент представления 250, который может быть функционально соединен с процессорным компонентом 225, может быть сконфигурирован в форме любого устройства отображения, которое может представлять информацию пользователю, такого как монитор, электронный дисплей, сенсорный экран, жидкокристаллический экран (LCD), плазменный экран, один или более светоизлучающих диодов (LED), лампа накаливания, лазер, электролюминесцентный источник света, химический свет, гибкий световой провод и/или флуоресцентная лампа, или дисплей любого другого типа, или может содержать отражающую поверхность, на которую проецируется визуальная информация. В одном типовом варианте осуществления UI-дисплей, представляемый компонентом представления 250, сконфигурирован для представления области просмотра 223 с зоной контента (не показана), при этом контент, представляемый приложением 230, размещается на поверхности в пределах зоны контента. В другом типовом варианте осуществления UI-дисплей может обеспечивать визуальную индикацию панорамирования контента в пределах зоны контента или передвижения области просмотра 223 в пределах участка UI-дисплея.

В вариантах осуществления, вычислительное устройство 215 функционально соединено с устройством ввода 221 и компонентом представления 250. В этой связи, взаимодействие между устройством ввода 221, компонентом представления 250 и операционной системой 220 может поддерживаться средой распределенных вычислений, такой как удаленный сервер (не показан), или произвольная комбинация серверов. В вариантах осуществления изобретения, которые применяются на практике в средах распределенных вычислений, взаимодействие осуществляется через соответствующие соединения. Такие соединения могут быть проводными и беспроводными. Примеры конкретных проводных вариантов осуществления, в рамках настоящего изобретения, включают USB-соединения и кабельные соединения. Примеры конкретных беспроводных вариантов осуществления, в рамках настоящего изобретения, включают беспроводную сеть ближней связи и радиочастотную технологию. Следует понимать, что наименование "беспроводная сеть ближней связи" не предназначено для ограничения и должно интерпретироваться в широком смысле как включающее, по меньшей мере, следующие технологии: беспроводные согласованные периферийные устройства (NWP); беспроводные воздушные сети ближней связи (например, беспроводная личная сеть (wPAN), беспроводная локальная сеть (wLAN), беспроводная глобальная сеть (wWAN), Bluetoothпанорамирование контента с использованием операции перетаскивания, патент № 2523169 и т.п.); беспроводное двухточечное соединение (например, сверхширокополосное); и любой протокол, который поддерживает беспроводную передачу данных между устройствами. Кроме того, лицам, знакомым с областью техники, к которой относится изобретение, будет понятно, что беспроводная сеть ближней связи может использоваться на практике посредством различных методов передачи данных (например, спутниковая передача, телекоммуникационная сеть и т.д.). Следовательно, подчеркивается, что варианты осуществления соединений между вычислительным устройством 215 и другими удаленными компонентами, функционально соединенными с ним, не ограничиваются описанными примерами, но охватывают широкое множество методов связи.

Устройство ввода 221 обеспечивает прием инициированного пользователем ввода 295, воздействующего, помимо прочего, на панорамирование контента в пределах зоны контента. В типовом варианте осуществления устройство ввода 221 принимает инициированный пользователем ввод 295, направленный на область просмотра 223, представленную на UI-дисплее. Иллюстративные устройства включают интерфейс сенсорного дисплея (например, одновременно используемый в качестве компонента представления 250), компоненты I/O 120 с Фиг. 1, цифровые датчики прикосновений или любой другой компонент, способный принимать инициированный пользователем ввод 295, который включает в себя жест, и передавать указания об этом вводе операционной системе 220. Только в качестве примера, устройство ввода 221 может определять координаты места, в котором инициированный пользователем ввод 295 инициирует контакт с ним (например, место активизации) и координаты места, в котором инициированный пользователем ввод 295 завершает контактировать с ним (например, место отрыва), относительно элементов, представленных в GUI. Такие координаты мест могут сравниваться друг с другом с целью определения расстояния непрерывного движения и его направления, что подробнее обсуждается ниже. Соответственно, операция перетаскивания может быть отделена от жеста, применяемого к устройству ввода 221. В вариантах осуществления ввод предварительно обрабатывается драйвером экрана, который извлекает информацию ввода из необработанных входных данных до ее передачи операционной системе 220.

Несмотря на то, что выше было описано несколько различных конфигураций устройства ввода 221, специалистам в данной области техники следует понимать, что в качестве устройства ввода 221 могут использоваться различные типы устройств ввода, которые принимают ввод от физического контакта 290, или другими способами (например, системы "касаний", которые осуществляют взаимодействие/ответ при поднесении объекта близко к экрану без фактического контакта), и что варианты осуществления настоящего изобретения не ограничиваются теми устройствами ввода 221, которые показаны и описаны как включенные в компонент представления 250. Например, компонент представления 250 может являться монитором, функционально соединенным с компьютером (например, вычислительное устройство 215), тогда как устройство ввода 221 может представлять собой отдельный емкостной сенсорный экран, находящийся в беспроводном взаимодействии (обсуждается выше) с вычислительным устройством. Однако, для целей краткости и ясности, устройство ввода 221 и компонент представления 250 будут ниже в данном документе совместно называться интерфейсом сенсорного дисплея, который представляет собой сенсорный экран, предлагающий функциональность и отображающего элемента, и элемента ввода в форме одного блока.

Термин «операционная система» (OS) 220 обычно относится к программному обеспечению, которое управляет совместным использованием ресурсов процессорного компонента и предоставляет программистам интерфейс, используемый для доступа к этим ресурсам. В процессе своей работы операционная система 220 интерпретирует системные данные и обнаруживает инициированный пользователем ввод 295 (например, через устройство ввода 210), и отвечает путем исполнения таких процессов, как приведенные ниже, в произвольном порядке: прием ввода 295 от физического объекта 290 (например, однопальцевый жест, нажатие пером и т.п.) через интерфейс сенсорного дисплея, определение того, какой жест выполняется посредством ввода 295, определение того, что приложение 230 поддерживает функциональность прокрутки, и фильтрацию взаимодействия ввода 295 и приложения 230 в случае, если жест отображается на операцию перетаскивания в направлении, допускающем прокрутку. При использовании в настоящем документе фраза "направление, допускающее прокрутку" не предполагается в качестве ограничивающей, но обычно относится к направлению, в котором контент разрешается перемещать в пределах зоны контента, что регулируется приложением 230. В одном из случаев, направление, допускающее прокрутку, в основном параллельно ориентации (например, горизонтальной или вертикальной) полосы прокрутки.

В примерном варианте осуществления, операционная система 220 запускается на процессоре и поддерживает выполнение одного или более приложений, включая приложение 230. В другом варианте осуществления операционная система 220 и/или приложение 230 могут частично или полностью размещаться в расположенном удаленно вычислительном устройстве (например, в другой операционной системе, на сервере, определяемом посредством Интернет-адреса и т.д.). В различных вариантах осуществления операционная система 220 определяет, выдавать ли сообщения панорамирования приложению 230, на основании входной информации 245, полученной от устройства ввода 221. Несмотря на то, что инициированный пользователем ввод 295 принимается от интерфейса сенсорного дисплея, проиллюстрированного на Фиг. 2, следует понимать, что операционная система 220 может принимать и интерпретировать другие типы вводов от различных других устройств ввода (например, удаленная панель тактильного ввода); соответственно, рамки настоящего изобретения не ограничиваются вводами и устройствами ввода, описанными в настоящем документе. Если расстояние и/или направление жеста, включенные во ввод 295, удовлетворяют метрикам системы для оценки того, будет ли инициирован режим панорамирования, то операционная система 220 может выдавать сообщения прокрутки приложению 230, что вызовет панорамирование контента в соответствии с жестом. В этом случае автоматически вызывается функциональность панорамирования приложения 230, отображаемая на операцию перетаскивания жеста.

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

Такая структура операционной системы для операционной системы 220 представляет собой лишь один из примеров подходящей структуры, которая может быть запущена на процессоре, и не предполагает наложения каких-либо ограничений на рамки применения или функциональности изобретения. Также проиллюстрированная операционная система 220 не должна интерпретироваться как имеющая зависимость или какие-либо требования относительно инициированного пользователем ввода 295 в форме входной информации 245 или выдачи сообщений 235, либо их комбинации, в соответствии с проиллюстрированным. Кроме того, приложение 230 может быть интегрировано в операционную систему 220 и является примером по своей природе и количеству, и не должно рассматриваться как ограничивающее.

В примерном варианте осуществления операционная система 220 включает в себя компонент ввода 205, обработчик жестов 280, который содержит компонент исправления 225 и компонент выбора 226, средство поиска полосы прокрутки 210 и компонент интерфейса приложений 235.

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

Такая структура операционной системы для операционной системы 220 представляет собой лишь один из примеров подходящей структуры, которая может быть запущена на вычислительном устройстве 215, и не предполагает наложения каких-либо ограничений на рамки применения или функциональности изобретения. Также проиллюстрированная операционная система 220 не должна интерпретироваться как имеющая зависимость или какие-либо требования относительно любого из компонентов 205, 210, 225, 226, 280 или 250, либо их комбинации, в соответствии с проиллюстрированным. В некоторых вариантах осуществления один или более компонентов 205, 210, 225, 226, 280 или 250 могут быть реализованы в форме обособленных приложений. В других вариантах осуществления один или более компонентов 205, 210, 225, 226, 280 или 250 могут быть интегрированы напрямую в устройство отображения 221 вычислительного устройства 215, приложение 230, или в их комбинацию. Только в качестве примера, компонент интерфейса приложений 250 может быть смонтирован вместе с устройством отображения 221. Специалистам в данной области техники будет ясно, что компоненты 205, 210, 225, 226, 280 или 250, проиллюстрированные на Фиг. 2, являются примерами по своей природе и количеству и не должны рассматриваться как ограничения.

Произвольное количество компонентов может быть использовано для достижения желаемой функциональности в пределах рамок вариантов осуществления настоящего изобретения. Несмотря на то, что различные блоки на Фиг. 2 показаны линиями в целях ясности, в реальности очерчивание различных компонентов не является настолько очевидным, и, метафорически, точнее было бы изображать линии серыми или размытыми. Кроме того, хотя некоторые компоненты и устройства на Фиг. 2 изображены как одиночные блоки, такие изображения являются примерами по своей природе и количеству и не должны рассматриваться как ограничивающие (например, хотя показано только одно устройство отображения 215, много больше может быть функционально соединено с вычислительным устройством 210, при этом функционируя совместно для представления UI-дисплея 225).

Первоначально компонент ввода 205 сконфигурирован для приема входной информации 245 от интерфейса сенсорного дисплея. В типовом варианте осуществления, входная информация 245 может быть извлечена из ввода 290. В качестве примера, ввод 290 может включать инициированный пользователем физический контакт, когда пользователь касается (например, касание однопальцевым жестом) интерфейса сенсорного дисплея. В других вариантах осуществления входная информация 245 включает в себя место активизации интерфейса сенсорного дисплея (например, положение в декартовых координатах) и данные, относящиеся к жесту (например, расстояние непрерывного движения, направление движения, продолжительность активизации и т.п.). Данная входная информация 245 может предварительно обрабатываться драйвером экрана (не показан), который передает данные компоненту ввода 205. Компонент ввода 205 может затем обрабатывать входную информацию 205 до отправки обработчику жестов 280.

Средство поиска полосы прокрутки 210 определяет, поддерживает ли приложение 230 функциональность прокрутки. В одном из случаев определение выполняется посредством анализа приложения с целью обнаружения, существует ли полоса прокрутки в области просмотра 223. Если приложение 230 поддерживает функциональность прокрутки, то приложению могут быть отправлены сообщения прокрутки для выполнения движений панорамирования контента на основании операции перетаскивания принятого жеста. В противном случае приложению 230 передаются стандартные "сообщения мыши". Сообщения мыши представляют собой нефильтрованный ввод 295, переданный несенсорному приложению (то есть не сконфигурированному для принятии жестов от интерфейса сенсорного дисплея), управляющий приложением таким образом, который ожидался бы при использовании инструмента мыши.

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

Обработчик жестов 280 сконфигурирован для определения признаков жеста, который выполняется пользователем вычислительного устройства 215. Например, обработчик жестов 280 может обрабатывать продолжительное непрерывное движение для жеста и/или продолжительность жеста с использованием таймера. Если продолжительность жеста не включает расстояние непрерывного движения, превышающее заранее заданное расстояние, или не соответствует заранее заданному пороговому периоду времени, то жест считается операцией нажатия (например, нажатие, имитирующее клик мышью). В противном случае жест считается операцией перетаскивания.

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

Соответственно, контент в зоне контента прокручивается пальцем пользователя при выполнении им/ей перетаскивания. Соответственно, данный подход позволяет пользователю перемещать свой палец в зоне контента с целью панорамирования и применять различные жесты для перетаскивания или выбора в пределах зоны контента. Например, пользователи могут перемещаться в списке элементов меню обозревателя файлов путем перемещения пальца по поверхности списка файлов и затем могут выполнять различные жесты для выбора и перемещения файла (например, выполнять точечное касание в строке заголовка или на границе области просмотра 230).

Если пользователь выполняет операцию перетаскивания в зоне непрокручиваемого контента (например, область заголовка, граница, полоса прокрутки и т.п.), представленного приложением 230, то приложению посылаются сообщения мыши с использованием компонента 250 интерфейса приложений, в результате чего перемещение пальцем выполняет ту же функцию, что нажатие и перетаскивание мышью. Это позволяет пользователям перетаскивать или панорамировать область 223 просмотра по экрану (например, UI-дисплею), перетаскивать ползунок зоны прокручиваемого контента, переупорядочивать иконки рабочего стола и т.д.

В общем смысле, обработчик 280 жестов фильтрует ввод посредством выдачи соответствующих сообщений 235 приложению 230. Прокручиваемый контент при перетаскивании в прокручиваемом направлении будет передвигаться от точки контакта на интерфейсе сенсорного дисплея. В вариантах осуществления применяется механизм усреднения для ошибочных или непреднамеренных движений в рамках жеста с целью сглаживания перемещений контента. Пользователю выдается указание на доступность панорамирования контента после просмотра полосы прокрутки, представленной в области 223 просмотра. В силу этого пользователь будет интуитивно выполнять перетаскивание одним пальцем с целью панорамирования контента (например, страницы в пределах документа или карты в пределах программы просмотра). В случае, когда пользователь передвигает свой палец по области прокручиваемого контента в направлении, в основном параллельном элементу полосы прокрутки, контент панорамируется в соответствующем направлении. Панорамирование продолжается до тех пор, пока пользователь не поднимет палец или не прервет непрерывное движение операции перетаскивания. Кроме того, панорамирование контента может управлять ползунком в полосе прокрутки с целью выдачи визуальной обратной связи относительно выполнения панорамирования (например, автоматическое передвижение полосы прокрутки для пользователя). В типовом варианте осуществления такое управление вводом 295 с целью управления панорамированием контента, представляемого приложением 230, может взаимодействовать с различными реализациями полосы прокрутки.

В процессе работы обработчик 280 жестов определяет тип имевшего место жеста, где жест происходил, и доступны ли другие атрибуты жеста. После интерпретации этой информации компонент 226 выбора выполняет распознавание соответствующего действия, отображенного на дешифрованный жест. Данное соответствующее действие выдается компоненту 250 интерфейса приложений, который посылает соответствующее сообщение 235 приложению 230. Например, если обработчик жестов определяет, что пользователь перетаскивает непрокручиваемую часть области просмотра, то через отображение вызывается обычное действие перетаскивания по левой кнопке мыши. Если пользователь выполняет перетаскивание в направлении, по которому не осуществляется прокрутка (например, перпендикулярно полосе прокрутки), то происходит действие, аналогичное перетаскиванию левой кнопкой мыши, которое обычно становится выделением или перетаскиванием и отпусканием в приложении. В качестве альтернативы, пользователь может выделять контент посредством выполнения жеста «удержание и перетаскивание» с целью вызова обычного действия перетаскивания по левой кнопке мыши.

В вариантах осуществления при перемещении пользователем пальца или физического объекта 290 в зоне контента области 223 просмотра (например, окно, сгенерированное обозревателем Интернета (Internet Explorer), медиа-плейер, документ Блокнота, Word, Outlook, меню «Пуск», панель управления или обрабатываемый приложением UI) в том же общем направлении, что и направление полосы прокрутки (например, вверх или вниз для вертикальной полосы прокрутки), контент под пальцем (например, список папок, список писем электронной почты, сгруппированный список писем электронной почты, прокручиваемый список шрифтов) должен панорамироваться. Кроме того, должен быть задействован только контент выбранной области 223 просмотра, в которой было инициировано перетаскивание. В связи с этим никакой другой контент в других областях окна не должен прокручиваться или демонстрировать состояние наведения независимо от того, где проходит путь перетаскивания. И опять, перетаскивание в областях просмотра 223, которые не допускают прокручивания (например, статические изображения на youtube.com), вызовет панорамирование на странице всей области 223 просмотра. В целях осуществления данных действий обработчик 280 жестов передает поток информации приложению 223 для обеспечения того, что приложение 223 будет обрабатывать ввод 295 специальным образом.

Компонент 226 выбора сконфигурирован для выбора соответствующего действия для отправки компоненту 250 интерфейса приложений на основании входной информации 245. Кроме того, компонент 226 выбора сконфигурирован для определения того, что пользователь выполняет панорамирование за пределами области прокрутки, и выполнения действия при выходе за пределы панорамирования, которое выдает визуальную обратную связь для сообщения пользователю о том, что он/она достиг/ла предела доступного прокручиваемого контента. В одном из вариантов осуществления, действие при выходе за пределы панорамирования состоит в передвижении всего окна в направлении движения пальца пользователя на интерфейсе сенсорного дисплея. Предпочтительно, может быть реализована данная визуальная обратная связь, вызывающая перемещение или масштабирование всей области 223 просмотра для работы с унаследованным приложением. В частности, поскольку операционная система 220 имеет возможность передвижения окна по экрану, действие при выходе за пределы панорамирования, состоящее в перемещении области просмотра по UI-дисплею, может быть реализовано без взаимодействия или ответного действия от приложения 230. Соответственно, действие при выходе за пределы панорамирования обеспечивает ясное указание на то, что функциональность прокрутки доступна, но при этом был достигнут конец страницы.

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

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

Компонент 225 исправления сконфигурирован для обеспечения устойчивости к смещению при перетаскивании в случае, когда направление в основном выровнено относительно полосы прокрутки. Например, когда пользователь начинает панорамирование (например, посредством перетаскивания вверх в пределах зоны прокручиваемого контента), компонент 226 выбора будет перемещать страницу вверх и вниз, даже если пользователь немного сместит движение влево или вправо при осуществлении вертикальной прокрутки. Другими словами, пользователи имеют возможность вертикального (то есть напрямую вверх/вниз), или горизонтального (например, напрямую влево/вправо) панорамирования даже в случае, когда движения перетаскивания, выполняемое пальцем, происходит не точно в этих направлениях при выполнении операции перетаскивания. Данная возможность может быть выключена, если предпочтение пользователя состоит в том, что диагональное панорамирование является более эффективным. Однако обычно компонент 225 исправления является активным, поскольку панорамирование контента в зоне контента вверх, или вниз, или в стороны является менее отвлекающим и более привычным/интуитивно понятным движением при просмотре.

По причине наличия трения при перетаскивании и общей эргономики движения руки в целом при создании ввода, пользователям сложно достичь точного перетаскивания через интерфейс сенсорного дисплея. В результате имеет место смещение и/или покачивание, присущее операции перетаскивания. В процессе работы компонент 225 исправления обнаруживает покачивание и/или смещение перетаскивания и ослабляет этот ввод таким образом, что контент панорамируется по прямой линии, как если бы он двигался по рельсам. В одном из вариантов осуществления, ослабление выполняется посредством определения основной оси направления операции перетаскивания. Дополнительное движение по оси, не являющейся основной, затем фильтруется с целью способствования прокручиванию в конкретном направлении операции перетаскивания. Соответственно, пользователям предоставляется возможность отклонения в некоторой степени при перетаскивании, что способствует панорамированию интуитивно понятным и удобным образом.

В вариантах осуществления, которые обсуждаются со ссылками на Фиг. 4 и 5, пороговые границы могут быть ассоциированы с основной осью, которая определяется таким образом, что значительное дополнительное движение (например, перпендикулярное перетаскивание в случае, когда основная ось является вертикальной) инициирует вторичное действие, такое как выделение контента, размещенного вблизи точки касания. То есть, если пользователь при перетаскивании отходит от основной оси достаточно далеко, то может инициироваться вторичное действие. Соответственно, посредством направленного управления перетаскиванием вдоль неосновной оси пользователь может производить специфичное для направления действие, например выделение текста.

В ситуации, в которой значительная доля перетаскивания происходит в неожидаемом направлении (например, не по основной оси), амортизация, применяемая компонентом исправления 225 к операции перетаскивания, может быть деактивирована, с тем чтобы пользователь мог свободно выполнять панорамирование в направлении, соответствующем своему реальному жесту. То есть компонент исправления 225, после обнаружения пороговой величины отклонения, может переключать действие с управляемого панорамирования на панорамирование, основанное на реальном движении жеста. Также пользователь может корректировать способ панорамирования (то есть выходить из режима панорамирования) путем преодоления порогового значения смещения при применении жеста. После перехода за пороговое значение способа панорамирования, пользователь может выполнять "обычные операции перетаскивания", такие как операции типа «перетаскивание мышью». В других вариантах осуществления, не переходя за пороговое значение компонента исправления 225, пользователи все же могут выполнять вторичные действия, обсуждаемые выше. В вариантах осуществления пользователь может выполнять, по меньшей мере, следующие операции с интерфейсом сенсорного дисплея для выполнения вторичных действий: нажатие и удержание в течение заранее определенного периода времени, затем перетаскивание; выполнение операции двойного касания (в пределах конкретного временного интервала), затем перетаскивание; или выполнение ввода с множественными касаниями, такого как двухпальцевое перетаскивание. Другие операции, которые пользователь может выполнять в пределах зоны прокручиваемого контента для вызова вторичных действий, могут включать перетаскивание слева направо в области просмотра, которая ограничена прокруткой вверх и вниз. После обработки вторичного действия, приложение 230 будет вести себя, как если бы пользователь выполнил нажатие и перетаскивание мышью. Обычно вторичное действие является полезным при выделении текста в пределах приложения. После получения указания на данное вторичное действие, компонент интерфейса приложений может посылать приложению 230 сообщения мыши, а не сообщения прокрутки.

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

Обратимся к Фиг. 3, на которой показано представление в виде диаграммы 300 области просмотра 328 на интерфейсе сенсорного дисплея 320, которое иллюстрирует способ панорамирования контента на нем в соответствии с одним из вариантов осуществления представленного изобретения. Вначале вычислительное устройство 215, или другое вычислительное устройство (например, вычислительное устройство 100), оборудуется интерфейсом сенсорного дисплея 320. Интерфейс сенсорного дисплея 320 сконфигурирован для представления областей просмотра 328, 337 и 341 на поверхности UI-дисплея 305. Операция перетаскивания 335 показана как выполненная физическим объектом 315 (например, посредством однопальцевого жеста) в пределах зоны контента 325. Обычно операция перетаскивания 335 будет панорамировать контент 327 в направлении 333, в котором производится операция перетаскивания 335 (например, перемещение в основном вниз, в соответствии с проиллюстрированным). Операция перетаскивания включает точку начала 334, или место активизации, в соответствии с описанным выше и точку касания 336. Кроме того, полоса 329 прокрутки может обеспечивать визуальную обратную связь для операции панорамирования.

В проиллюстрированном примере операция перетаскивания 335 представляет собой жест, соответствующий перемещению в основном в направлении вниз. Соответственно, контент 327 будет панорамироваться в направлении вниз 333, таким образом, перемещаясь в соответствии с движением физического объекта 315. Полоса прокрутки 329 может обеспечивать визуальную обратную связь, указывающую на панорамирование вниз, посредством автоматического перемещения ползунка 332 в направлении вверх 331 относительно предыдущего положения 330. В случае если при выполнении операции перетаскивания вниз 335 достигается конец контента 327, может вызываться действие при выходе за пределы панорамирования. В одном из случаев, действие при выходе за пределы панорамирования может включать перемещение области просмотра 328 вниз в пределах UI-дисплея 305. Кроме того, в типовом варианте осуществления, если компонент исправления 225 с Фиг. 2 активен, то контент 327 может прокручиваться в основном в вертикальном направлении 333, даже если операция перетаскивания 335 включает небольшое смещение.

После выполнения ввода в области просмотра 328 активируется соответствующее ей приложение. Поскольку приложение, соответствующее области просмотра 328, является активным, тогда как приложения, соответствующие областям просмотра 337 и 341, являются пассивными, то области просмотра 337 и 341 являются невосприимчивыми к вводу в течение панорамирования в области просмотра 328. Например, если операция перетаскивания 335 продолжается от точки касания 336 в зону контента 338 области просмотра 337, то контент в пределах области просмотра 338 не будет панорамироваться. Вместо этого может быть прекращено панорамирование в вертикальном направлении 333, если физический объект 315 переходит нижнюю границу зоны контента 325. В качестве альтернативы, область просмотра 328 может целиком передвигаться вниз по UI-дисплею 305 с целью указания на выход за границу контента.

Область 337 просмотра содержит горизонтальную полосу прокрутки 339. В связи с этим, в отличие от вертикальной полосы прокрутки 329 области просмотра 328, горизонтальная операция перетаскивания в зоне 338 контента будет вызывать действие панорамирования, тогда как вертикальная операция перетаскивания в зоне 338 контента вызывает вторичное действие, такое как функция выделения для выделения текста в зоне 338 контента.

Область просмотра 340 не содержит полосы прокрутки. Соответственно, пользователь визуально информируется о том, что приложение, соответствующее области просмотра 340, не поддерживает функциональность прокрутки. Соответственно, операция перетаскивания в пределах границы 341 области просмотра 340 будет вызывать сдвиг области просмотра 340 вдоль UI-дисплея 305 в связи с движением физического объекта 315. В качестве альтернативы, для инициирования сдвига области просмотра 328 место активизации жеста должно находиться вне зоны контента 325, например в пределах блока границы/заголовка 326 области просмотра 328.

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

Как проиллюстрировано на Фиг. 4, первоначальное перетаскивание 405 сдвигается в верхний квадрант; таким образом, жест рассматривается как операция вертикального перетаскивания в направлении вверх. Соответственно, если приложение поддерживает функциональность прокрутки в вертикальном направлении, то контент может перемещаться в соответствии с первоначальным перетаскиванием 405. В случае, когда активен компонент исправления 225 с Фиг. 2, любое смещение или покачивание в первоначальном перетаскивании 405 амортизируется, если оно не пересекает одну из пороговых границ 410 и 415. Обратимся к Фиг. 5, на которой вторичное перетаскивание 505 пересекает пороговую границу 515. В одном из вариантов осуществления, пересечение пороговой границы 515 приостанавливает функциональность панорамирования. В другом варианте осуществления, вторичное перетаскивание 515 может вызывать вторичное действие, или деактивировать компонент исправления 225 с Фиг. 2, в результате чего отключается функциональность амортизации. Соответственно, контент следует операции перетаскивания вместо движения вдоль направления основной оси.

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

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

Наверх