RU2409833C2 - Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон - Google Patents

Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон Download PDF

Info

Publication number
RU2409833C2
RU2409833C2 RU2007138968/08A RU2007138968A RU2409833C2 RU 2409833 C2 RU2409833 C2 RU 2409833C2 RU 2007138968/08 A RU2007138968/08 A RU 2007138968/08A RU 2007138968 A RU2007138968 A RU 2007138968A RU 2409833 C2 RU2409833 C2 RU 2409833C2
Authority
RU
Russia
Prior art keywords
window
icon
content
original
application
Prior art date
Application number
RU2007138968/08A
Other languages
English (en)
Other versions
RU2007138968A (ru
Inventor
Грег ШЕХТЕР (US)
Грег ШЕХТЕР
Джеван САКС (US)
Джеван САКС
Крис ФОРТЬЕР (US)
Крис ФОРТЬЕР
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2007138968A publication Critical patent/RU2007138968A/ru
Application granted granted Critical
Publication of RU2409833C2 publication Critical patent/RU2409833C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Изобретение относится к области манипуляции пиктограммами в администраторе окон. Техническим результатом является повышение удобства программного доступа для манипуляции пиктограммами окон. Система выполнена с возможностью модификации пиктограммы, соответствующей окну приложения, на основе модификаций в окне приложения. Модификации пиктограммы могут осуществляться в реальном масштабе времени. Система содержит администратор окон рабочего стола (DWM), который регистрирует исходное окно и целевое окно и/или может обновлять или модифицировать пиктограмму, ассоциированную с исходным окном. Система содержит дисплей для отображения панели задач с кнопкой панели задач, соответствующей пиктрограмме, дисплей для отображения исходного окна, администратор для регистрации пиктограммы, процессор и память. 3 н. и 14 з.п. ф-лы, 21 ил.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[1] Аспекты настоящего изобретения относятся к пиктограммам окон и, в частности, к интерфейсу и системе манипуляции пиктограммами в администраторе окон.
УРОВЕНЬ ТЕХНИКИ
[2] Компьютерные системы отображают множество окон, в которых пользователи могут вводить данные, манипулировать данными или активизировать процедуры. При одновременной работе более одного приложения на дисплее компьютера может быть отображено несколько окон, при этом каждое окно соответствует приложению. Также для любого одного приложения может существовать множество окон. Например, если пользователь вводит текст в программу обработки текста, при этом работая в программе электронной таблицы, на дисплее могут быть открыты два окна. Одно из окон представляет собой окно приложения обработки текста, а второе окно представляет собой окно программы электронной таблицы. Если пользователь дополнительно рассматривает видео в приложении медиа-плейера, дополнительно присутствует окно, соответствующее приложению медиа-плейера. С увеличением количества активных приложений, увеличивается и количество окон, которые отображаются на дисплее компьютера.
[3] Пользователь, который одновременно использует множество приложений, часто сталкивается с наличием на дисплее множества окон, что является причиной переполненности рабочего стола, вызывающей замешательство и раздражение от беспорядка, увиденного на дисплее. Например, на дисплее может быть такое большое количество перекрывающихся окон, что пользователю, возможно, нужно будет тратить какое-то время на нахождение желаемого окна всякий раз, когда пользователь хочет завершить работу в другом приложении. С целью облегчения этой проблемы пользователь может минимизировать размер окна или выйти из всех приложений для уменьшения беспорядка (и количества окон на дисплее). Однако если окна минимизированы, то пользователь не имеет непосредственного доступа к соответствующему приложению. Если в определенном приложении, в котором окно было минимизировано, должно быть произведено действие, пользователь должен сначала определить местонахождение желаемого окна и открыть желаемое окно после определения его местоположения. Этот процесс отнимает много времени. Аналогично, если пользователь выходит из всех приложений, чтобы очистить перегруженность рабочего стола, то приложение больше не будет активным. В этом случае, пользователь должен повторно запустить приложение для завершения желаемой задачи и потратить еще больше времени. Кроме того, если приложение выполняет текущую функцию, эта функция не будет выполняться в то время, когда приложение не является активным.
[4] Обычно, когда окно приложения минимизировано, кнопка панели задач может отображаться на панели задач для указания того, что приложение является активным. Хотя кнопка панели задач может указывать на то, что приложение является активным, часто на кнопке панели задач имеется только иконка или название приложения. Не имея дополнительной информации, пользователю надо будет открыть окно, чтобы рассмотреть его контент. Однако, открывая и закрывая окно просто, чтобы проверить контент окна (например, чтобы установить идентичность окна), пользователь тратит время и силы, которые приводят к снижению эффективности и производительности. Эта проблема усложняется с увеличением количества активных приложений и количества окон, поскольку пользователь должен открывать и закрывать множество окон, чтобы найти желаемое.
[5] Таким образом, в данной области техники существует необходимость в системе и способе предоставления удобного программного доступа для манипуляции пиктограммами окон или приложений и визуализации пиктограмм с тем, чтобы обеспечить гибкость при отображении пиктограмм и контента пиктограммы. Также, в данной области техники существует необходимость в интерфейсе программирования и способе реализации интерфейса программирования для эффективного управления и реализации окон приложений и пиктограмм и показа окон и пиктограмм гибким способом.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[6] Аспекты настоящего изобретения предоставляют интерфейс, систему или способ для отображения окна на дисплее, таким образом решая одну или несколько проблем, описанных выше. Также предоставляется динамическая пиктограмма, соответствующая окну приложения, в котором модификации контента в окне приложения отображаются в соответствующей динамической пиктограмме. Модификация контента окна приложения дополнительно может быть отражена в соответствующей динамической пиктограмме в реальном масштабе времени.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[7] На Фиг. 1A показан пример системы реализации изобретения, которое включает в себя вычислительное устройство общего назначения в виде компьютера.
[8] На Фиг.1B-1M показана компьютерная среда общего назначения, поддерживающая один или несколько аспектов настоящего изобретения.
[9] Фиг.2A представляет собой диаграмму в виде дерева графа сцены или дисплея, иллюстрирующую пример компонентов дисплея.
[10] На Фиг.2B показаны компоненты, отображенные на дисплее в соответствии с Фиг.2A.
[11] Фиг.3A представляет собой диаграмму в виде дерева графа сцены или дисплея, показывающую примеры компонентов отображения на дисплее настоящего изобретения.
[12] На Фиг.3B показано отображение на дисплее, соответствующее Фиг.3A.
[13] На Фиг.4A и 4B показан один из примеров применения настоящего изобретения при обеспечении пиктограмм окон приложений.
[14] На Фиг.5 показано другое приложение пиктограммы настоящего изобретения, в котором пиктограммы отображены в меню ALT-TAB.
[15] Фиг.6 представляет собой блок-схему последовательности операций, иллюстрирующую пример процесса предоставления пиктограмм.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[16] В помощь читателю документ разделен на секции. Эти секции включают в себя следующие: Краткий обзор; Вычислительная Среда Общего Назначения; Пиктограммы.
[17] Необходимо отметить, что между элементами в нижеприведенном описании существуют разнообразные связи. Необходимо отметить, что эти связи в общем случае, если не определено иное, могут быть прямыми или косвенными, и что настоящее описание не следует рассматривать в качестве ограничивающего в этом отношении.
КРАТКИЙ ОБЗОР
А. Статичные пиктограммы
[18] В одном из подходов пиктограмма может быть ассоциирована с приложением. При помощи пиктограммы может быть показана небольшая по размеру версия окна приложения для указания на исходный контент окна приложения, что позволяет пользователю примерно идентифицировать контент окна. Однако эти пиктограммы могут не предоставлять обновленный контент окна приложения. Таким образом, если в окне приложения были сделаны модификации, пиктограмма может быть устаревшей и не может обеспечить надлежащее изображение фактического контента окна приложения. Таким образом, пользователю сложно должным образом идентифицировать окно желаемого приложения без необходимости открыть само окно приложения.
[19] Кроме того, пиктограммы не обладают гибкостью в терминах отображения контента, размещения, изменения размера и/или эффектов. Пиктограмма окна приложения обеспечивает статичное изображение исходного контента окна приложения. Однако, мало того, что контент остается статичным и потенциально устаревшим, но также и особенности, и размещение пиктограммы может быть задано и может не изменяться в любой момент времени в зависимости от потребностей пользователя.
[20] Компьютерные операционные системы используют уровень программного обеспечения, ответственный за управление объектами пользовательского интерфейса, такие как пиктограммы, и предоставления услуг пользовательского интерфейса для приложений программного обеспечения. Уровень программного обеспечения может называться администратором окон рабочего стола (DWM). Логика визуализации, направление входных событий и интерфейсы прикладного программирования (API) администратора окон рабочего стола (DWM) все вместе воплощают пользовательскую политику интерфейса, которая, в свою очередь, определяет полное восприятие пользователем операционной системы. При визуализации рабочего стола DWM обычно обрабатывает обновления экрана, такие как перемещение окон, путем координации отрисовки непосредственно на экране дисплея. Следовательно, если перекрывающее окно закрывают или отодвигают, заново отображенное расположенное снизу окно или рабочий стол должно быть перерисовано. Это замедляет процесс, при котором напрасно расходуются время и ресурсы. Также, если на дисплее окна нарисованы непосредственно в конкретном положении и в конкретной конфигурации, как это обычно бывает, соответствующее изображение окна устанавливается в конкретном положении и конфигурации. Модификации положения или конфигурации окна потребуют большого расхода ресурсов для перерисовки изображения.
В. Динамические пиктограммы
[21] В другом аспекте настоящего изобретения предоставлены интерфейс, система и способ отображения пиктограммы на дисплее, в которых администратор окон рабочего стола (DWM) обеспечивает интерфейс прикладного программирования (API), регистрирующий исходное окно и целевое окно. В этом примере целевое окно представляет собой окно, в котором может быть визуализирована пиктограмма. Пиктограмма, визуализированная в пределах целевого окна, может представлять, по меньшей мере, часть соответствующего исходного окна. Следовательно, пиктограмма может представлять ассоциацию между исходным окном и целевым окном путем предоставления, по меньшей мере, части исходного окна, нарисованного в, по меньшей мере, части целевого окна. DWM может получить дескриптор окна (HWND), соответствующий исходному окну, и HWND, соответствующий целевому окну. Приложение может дополнительно получить дескриптор, представляющий регистрацию пиктограммы, соответствующей исходному окну.
[22] В другом аспекте настоящего изобретения предоставлены интерфейс, система и способ отображения пиктограммы на дисплее, в которых администратор окон рабочего стола (DWM) обновляет или модифицирует пиктограмму, ассоциированную с соответствующим исходным окном. В этом примере DWM может принимать данные, определяющие размер целевого окна, область исходного окна, которая должна быть нарисована в целевом окне в виде пиктограммы, непрозрачность пиктограммы, видимость пиктограммы, специальные эффекты пиктограммы и т.д.
[23] Дополнительный аспект настоящего изобретения дополнительно предоставляет динамическую пиктограмму, содержащую экспортирование интерфейса прикладного программирования для регистрации дескриптора пиктограммы, поддержки списка регистраций пиктограмм, рисование пиктограммы или целевого окна на основе исходного окна, причем исходное окно может быть окном приложения, обновления свойства пиктограммы и отмены регистрации динамической пиктограммы. Кроме того, модификация в исходном окне может автоматически обрабатываться для выполнения соответствующей модификации в целевом окне.
[24] Необходимо отметить, что в нижеприведенном описании между элементами существуют разнообразные связи. Необходимо отметить, что эти связи в общем случае, если не определено иное, могут быть прямыми или косвенными и что настоящее описание не следует рассматривать в качестве ограничивающего в этом отношении.
[25] Аспекты настоящего изобретения предоставляют интерфейс прикладного программирования (API), систему и способ управления отображением элементов отображения, таких как окна, или другое представление окон, такое как пиктограммы на дисплее. В одном из примеров настоящего изобретения альтернативная версия окна приложения представляет собой более мелкую версию окна приложения и отображается на дисплее. Более мелкая версия окна приложения, которая отличается от исходного окна приложения, может быть дополнительно отображена в любом местоположении на дисплее. В качестве альтернативы, исходное окно приложения может быть минимизировано таким образом, что исходное окно приложения не будет отображаться до тех пор, пока на дисплее отображается более мелкая версия окна приложения. Кроме того, более мелкая версия окна приложения сама может быть минимизирована, например, если на дисплее необходимо дополнительное место. Хотя альтернативная версия окна приложения может представлять собой более мелкую версию приложения, как описано, необходимо отметить, что альтернативная версия окна приложения может быть больше исходного окна приложения или иметь любой другой размер в зависимости от потребностей пользователя.
[26] Например, альтернативная версия окна приложения может представлять собой пиктограмму окна приложения. Пиктограмма обычно представляет собой небольшое изображение или представление большего графического изображения, или части большего изображения, соответствующего окну приложения. Пиктограмма также может представлять ассоциацию между исходным окном, предоставляя источник или контент пиктограммы, и целевым окном, которое может представлять собой окно, в котором пиктограмма предоставляет контент исходного окна. Пиктограммы обеспечивают преимущество, заключающееся в способности отображать сразу несколько окон в удобном формате, минимизируя использование места на дисплее. Также, пиктограммы могут использоваться для более легкого выбора и сортировки изображений и окон.
[27] В другом аспекте настоящего изобретения пиктограмма или альтернативная версия окна приложения может быть отображена на дисплее при необходимости. Например, зависание курсора над кнопкой панели задач может вызывать отображение пиктограммы окна приложения. В одном из примеров пиктограмма представляет собой динамическую пиктограмму и может изменяться при изменении исходного окна приложения. Например, изменения, сделанные в окне приложения, отображаются в динамической пиктограмме, соответствующей окну приложения. Такие изменения, например, могут отражаться в динамической пиктограмме в реальном масштабе времени.
[28] В другом аспекте настоящего изобретения пиктограммы или динамические пиктограммы могут быть размещены в пределах другого окна, или целевого окна. Например, множество динамических пиктограмм из различных приложений могут быть включены в целевое окно таким образом, что целевое окно отображает пиктограммы из каждого из различных приложений. Кроме того, любая из динамических пиктограмм, отображаемая в целевом окне, может отражать текущий статус соответствующего окна приложения. В качестве альтернативы, пиктограмма может быть отображена в другой пиктограмме, или пиктограммы могут быть расположены каскадом таким образом, что первая пиктограмма может быть отображена во второй пиктограмме, которая, в свою очередь, может быть отображена в третьей пиктограмме и т.д.
[29] В другом аспекте настоящего изобретения предоставлены система и способ для подготовки окон без вывода на экран. Затем может быть выполнена композиция окон на экране, таким образом экономя компьютерные ресурсы. Кроме того, подготовка окон без вывода на экран и композиция окон на экране предоставляет возможность для функционирования пиктограммы, как описано в настоящем изобретении.
ВЫЧИСЛИТЕЛЬНАЯ СРЕДА ОБЩЕГО НАЗНАЧЕНИЯ
[30] На Фиг.1A показан пример подходящей вычислительной среды 100, в которой может быть осуществлено изобретение. Вычислительная среда 100 представляет собой только один из примеров подходящей вычислительной среды и не предназначена для любого ограничения объема использования или функциональных возможностей изобретения. Вычислительную среду 100 не следует интерпретировать как имеющую какую-либо зависимость или требования относительно любых компонентов или их комбинации, проиллюстрированных в иллюстративной операционной среде 100.
[31] Настоящее изобретение может функционировать в многочисленных других вычислительных средах или конфигурациях общего назначения или специального назначения. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут быть подходящими для использования с изобретением, включают в себя без ограничений персональные компьютеры, серверные компьютеры, карманные или портативные устройства, мультипроцессорные системы, системы на основе микропроцессоров, программируемую бытовую электронику, PC сети, миникомпьютеры, мэйнфреймы, распределенную вычислительную среду, которая включает любую из вышеуказанных систем или устройств и т.п.
[32] Как показано на Фиг.1A, иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать без ограничения блок 120 обработки, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включая системную память с блоком 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из множества архитектур шин. В качестве неограничивающего примера такая архитектура включает в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA) и шину взаимодействия периферийных компонентов (PCI), также известную как шина расширения.
[33] Компьютер 110 обычно включает в себя множество читаемых компьютером сред. Читаемая компьютером среда включает в себя энергозависимую и энергонезависимую среду, съемную и несъемную среду. В качестве неограничивающего примера читаемые компьютером среды могут содержать компьютерные носители информации и среду для передачи данных и включают в себя без ограничения RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое дисковое устройство хранения, магнитные кассеты, магнитную ленту, магнитное дисковое устройство хранения или другие магнитные устройства хранения, или любую другую среду, которая может использоваться для хранения желаемой информации и которая может быть доступна компьютеру 110. Среды для передачи данных обычно реализуют читаемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая, или другой механизм передачи, и включают в себя любые среды передачи информации. Термин "модулированный сигнал данных" означает сигнал, который имеет один или несколько наборов характеристик или измененный таким образом, чтобы кодировать информацию в сигнал. В качестве неограничивающего примера среды для передачи данных включают в себя проводные среды, такие как проводная сеть или непосредственное проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеперечисленных сред также должны быть включены в объем читаемых компьютером сред.
[34] Системная память 130 включает в себя компьютерные носители информации в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство 131 (ROM) и запоминающее устройство 132 с произвольным доступом (RAM). Базовая система 133 ввода/вывода (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, например, во время запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или в настоящее время исполняются блоком 120 обработки. В качестве неограничивающего примера на Фиг.1 показана операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
[35] Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Только в качестве примера, на Фиг.1 показан жесткий диск 141, который считывает или записывает данные в несъемную, энергонезависимую магнитную среду, магнитный дисковод 151, который считывает или записывает данные на съемный, энергонезависимый магнитный диск 152, и оптический дисковод 155, который считывает или записывает данные на съемный, энергонезависимый оптический диск 156, такой как CD-ROM, или другие оптические среды. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации, которые могут использоваться в иллюстративной операционной среде, включают без ограничения магнитные кассетные ленты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельную RAM, твердотельную ROM и т.п. Жесткий диск 141 обычно соединен с системной шиной 121 через интерфейс несъемной памяти, такой как интерфейс 140, и магнитный дисковод 151 и оптический дисковод 155 обычно соединены с системной шиной 121 интерфейсом съемной памяти, таким как интерфейс 150.
[36] Драйверы (дисководы) и ассоциированные с ними компьютерные носители информации, описанные выше и показанные на Фиг.1A, обеспечивают хранение читаемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 110. На Фиг.1A, например, жесткий диск 141 показан как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Следует отметить, что эти компоненты могут быть теми же самыми или отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ в настоящем описании присвоены другие ссылочные позиции, как минимум, для иллюстрации того, что они представляют собой различные копии. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162 и указывающее устройство 161, обычно называемое мышью, трекболом или сенсорной панелью. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую консоль, спутниковую антенну, сканер или т.п. Эти и другие устройства ввода часто соединены с блоком 120 обработки посредством пользовательского интерфейса 160 ввода, который соединен с системной шиной, но может быть соединен другим интерфейсом и структурами шин, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также соединен с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. Помимо монитора компьютеры также могут включать в себя другие периферийные устройства вывода, такие как спикеры 197 и принтер 196, которые могут быть связаны посредством периферийного интерфейса 190 вывода.
[37] Компьютер 110 может работать в сетевой среде, используя логические соединения, с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой PC, одноранговое устройство или другой общий сетевой узел, и обычно включает в себя многие или все элементы, описанные выше в отношении компьютера 110, хотя на Фиг.1A показано только устройство 181 памяти. Логические соединения, показанные на Фиг.1A, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды представляют собой обычные офисные, корпоративные компьютерные сети, интранет и Интернет.
[38] При использовании в сетевой среде LAN компьютер 110 соединен с LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 или другое средство для установки связи с WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через пользовательский интерфейс 160 ввода или другой подходящий механизм. В сетевой среде программные модули, показанные в отношении компьютера 110, или их части, могут храниться в удаленном устройстве памяти. В качестве неограничивающего примера на Фиг.1A показаны удаленные прикладные программы 185 как постоянно хранящиеся в устройстве 181 памяти. Очевидно, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие средства установки линий связи между компьютерами.
[39] Очевидно, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие средства установки линий связи между компьютерами. Предполагается наличие любого из хорошо известных протоколов, таких как TCP/IP, Ethernet, FTP, HTTP и т.п., и система может работать в конфигурация клиент-сервер, давая возможность пользователю извлекать веб-страницы из веб-сервера. Для отображения и манипуляции данными на веб-страницах может использоваться любой из различных обычных web-браузеров.
[40] Интерфейс программирования (или просто "интерфейс") может быть рассмотрен в качестве любого механизма, процесса, протокола для предоставления возможности одному или нескольким сегментам кода осуществлять связь или получать доступ к функциональным возможностям, предоставляемым одним или несколькими другими сегментами кода. В качестве альтернативы, интерфейс программирования может быть рассмотрен как один или несколько механизмов, способов, вызовов функции, модулей, объектов и т.д. системного компонента, способного к соединению для передачи данных с одним или несколькими механизмами, способами, вызовами функций, модулями и т.д. другого компонента(компонентов). Термин "сегмент кода" в предыдущем предложении охватывает одну или несколько инструкций или строк кода и включает в себя, например, модули кода, объекты, подпрограммы, функции и т.д., независимо от применяемой терминологии или от того, скомпилированы ли сегменты кода отдельно, или предоставлены в качестве исходного кода, промежуточного кода или объектного кода, используются ли сегменты кода во время выполнения системы или процесса, или расположены ли они на одной или различных машинах или распределены во множестве машин, или реализованы ли функциональные возможности, представленные сегментами кода, полностью в программном обеспечении, полностью в аппаратных средствах, или в виде комбинации аппаратных средств и программного обеспечения.
[41] Абстрактно, интерфейс программирования может быть рассмотрен в общем, как показано на Фиг.1B или Фиг.1C. На Фиг.1B показан интерфейс Интерфейс_1 в виде канала, через который осуществляется связь между первым и вторым сегментом кода. На Фиг.1C показан интерфейс как содержащий объекты интерфейсов I1 и I2 (которые могут быть или могут не быть частью первого и второго сегментов кода), что позволяет первому и второму сегментам кода системы осуществлять связь через среду М. С точки зрения Фиг.1C можно рассматривать объекты интерфейсов I1 и I2 как отдельные интерфейсы одной и той же системы, и можно считать, что объекты I1 и I2 плюс среда М составляют интерфейс. Хотя на Фиг.1B и 1C показан двунаправленный поток и интерфейсы с каждой стороны потока, конкретные реализации могут иметь поток информации только в одном направлении (или не иметь никакого потока информации, как описано ниже) или могут иметь объект интерфейса только на одной стороне. В качестве неограничивающего примера термины, такие как интерфейс прикладного программирования (API), точка ввода, метод, функция, подпрограмма, вызов удаленной процедуры и интерфейс объектной модели программных компонентов (COM) охвачены в пределах определения интерфейса программирования.
[42] Аспекты такого интерфейса программирования могут включать в себя метод, посредством которого первый сегмент кода передает информацию (где "информация" используется в своем самом широком смысле и включает данные, команды, запросы и т.д.) во второй сегмент кода; метод, посредством которого второй сегмент кода принимает информацию; и структура, последовательность, синтакс, организация, схема, таймирование и контент данной информации. В этом отношении, основная транспортная среда может не иметь значения для работы интерфейса, независимо от того, является ли среда проводной или беспроводной, или их комбинацией, при условии, что информация передается таким образом, как определено интерфейсом. В определенных ситуациях информация может не передаваться в одном или обоих направлениях в обычном смысле, поскольку передача информации может осуществляться либо при помощи другого механизма (например, информации, помещенной в буфер, файл и т.д., отдельно от потока информации между сегментами кода), либо не осуществляться, когда один сегмент кода просто получает доступ к функциональным возможностям, выполняемым вторым сегментом кода. В данной ситуации любые или все из этих аспектов могут иметь значение, например, в зависимости от того, являются ли сегменты кода частью системы в свободно соединенной или жестко соединенной конфигурации, и таким образом этот список следует рассматривать как иллюстративный и неограничивающий.
[43] Этот взгляд на интерфейс программирования известен специалистам в данной области техники и является очевидным из вышеприведенного подробного описания изобретения. Однако имеются другие способы реализации интерфейса программирования, и, если они не исключены в явном виде, они также охватываются в соответствии с формулой изобретения, приведенной в конце этого описания. Такие другие пути могут казаться более сложными или комплексными, чем упрощенное представление, показанное на Фиг.1B и 1C, но, тем не менее, они выполняют подобную функцию с целью достижения того же самого конечного результата. Ниже кратко описаны некоторые иллюстративные альтернативные реализации интерфейса программирования.
РАЗЛОЖЕНИЕ
[44] Осуществление связи одного сегмента кода с другим может осуществляться косвенно путем разбивки линии связи на множество дискретных линий связи. Это схематично изображено на Фиг.1D и 1E. Как показано, некоторые интерфейсы могут быть описаны в терминах делимых наборов функциональных возможностей. Таким образом, функциональные возможности интерфейса по Фиг.1B и 1C могут быть разложены для достижения того же результата, который, с математической точки зрения, может быть представлен как 24, или 2 по 2 по 2 по 3 раза. Соответственно, как показано на Фиг.1D, функция, предоставляемая интерфейсом Интерфейс_1, может быть подразделена таким образом, чтобы преобразовать линии связи интерфейса во множество интерфейсов: Интерфейс_1A, Интерфейс_1B, Интерфейс_1C и т.д., достигая того же самого результата. Как показано на Фиг.1Е, функция, предоставляемая интерфейсом I1, может быть подразделена на множество интерфейсов I1a, I1b, I1c и т.д. для достижения того же самого результата. Аналогично, интерфейс I2 второго сегмента кода, который принимает информацию от первого сегмента кода, может быть разложен на множество интерфейсов I2a, I2b, I2c и т.д. При разложении количество интерфейсов, включенных в 1-й сегмент кода, не должны соответствовать количеству интерфейсов, включенных во 2-й сегмент кода. В любом из случаев по Фиг.1D и 1E функциональность интерфейсов Интерфейс_1 и I1 остается той же самой, что и на Фиг.1B и 1C, соответственно. Разложение интерфейсов может также соответствовать ассоциативным, коммутативным и другим математическим свойствам так, что разложение может быть трудно определяемым. Например, упорядочивание операций может быть неважным, и, следовательно, функция, выполняемая интерфейсом, может быть заранее до достижения интерфейса выполнена другой частью кода или интерфейса или выполнена отдельным компонентом системы. Более того, специалисту в области программирования может быть очевидным существование множества способов создания запросов различных функций, которые достигают того же самого результата.
ПЕРЕОПРЕДЕЛЕНИЕ
[45] В некоторых случаях, можно проигнорировать, добавить или переопределить некоторые аспекты (например, параметры) интерфейса программирования, тем не менее достигая намеченного результата. Это показано на Фиг.1F и 1G. Например, предположим, что интерфейс Интерфейс_1 по Фиг.1B включает в себя вызов функции Square (входные данные, точность, выходные данные) (функция возведения в квадрат), вызов, который включает в себя три параметра, входные данные, точность, выходные данные, и которая вызывается из 1-го сегмента кода во 2-й сегмент кода. Если средний параметр, точность, в данном сценарии не представляет интереса, как показано на Фиг.1F, его с таким же успехом можно проигнорировать или даже заменить бессмысленным (в этой ситуации) параметром. Также можно добавить дополнительный, незначимый параметр. Так или иначе, функция возведения в квадрат может быть достигнута, при условии, что выходные данные выдаются после того, как входные данные были возведены в квадрат вторым сегментом кода. Точность может быть очень значимым параметром при дальнейшей обработке или в другой части вычислительной системы; однако, после узнавания того, как установлено, что точность не является необходимой для конкретной операции возведения, она может быть заменена или проигнорирована. Например, вместо того, чтобы передавать реальное значение точности, можно передавать бессмысленную величину, такую как дата рождения, не влияя неблагоприятным образом на результат. Аналогично, как показано на Фиг.1G, интерфейс I1 заменен интерфейсом I1', переопределенный с целью игнорирования или добавления параметров к интерфейсу. Аналогично интерфейс I2 может быть переопределен как интерфейс I2', переопределенный для игнорирования ненужных параметров, или параметров, которые могут быть обработаны в другом месте. Суть этого заключается в том, что в некоторых случаях интерфейс программирования может включать в себя аспекты, такие как параметры, которые не являются необходимыми для некоторой цели, и поэтому они могут быть проигнорированы или переопределены или обработаны в другом месте для других целей.
ЛИНЕЙНОЕ КОДИРОВАНИЕ
[46] Также возможно слияние некоторых или всех функциональных возможностей двух отдельных модулей кода таким образом, что "интерфейс" между ними изменяет форму. Например, функциональные возможности по Фиг.1B и 1C могут быть преобразованы в функциональные возможности по Фиг.1H и 1I, соответственно. На Фиг.1H предыдущие 1-й и 2-й сегменты кода по Фиг.1B слиты в модуль, содержащий оба сегмента. В этом случае, сегменты кода могут все еще осуществлять связь друг с другом, но интерфейс может быть адаптирован к виду, который является более подходящим для единичного модуля. Таким образом, например, может отсутствовать необходимость в формальных операторах Call и Return, но подобная обработка, или ответ(ответы) в соответствии с интерфейсом Интерфейс_1 тем не менее может иметь место. Аналогично, как показано на Фиг.1I, часть (или весь) интерфейса I2 по Фиг.1C может быть линейно записана в интерфейсе I1, формируя интерфейс I1". Как показано, интерфейс I2 разделен на I2a и I2b, и часть интерфейса I2a кодирована линейно с интерфейсом I1, формируя интерфейс I1". В качестве конкретного примера, предположим, что интерфейс, I1 по Фиг.1C выполняет вызов функции возведения в квадрат (входные данные, выходные данные), который получает интерфейс I2, который после обработки значения, пришедшего в виде входных данных (для вычисления результата возведения в квадрат) во второй сегмент кода, передает назад результат возведения в квадрат в виде выходных данных. В этом случае, обработка, выполняемая вторым сегментом кода (возведения в квадрат входных данных), может быть выполнена первым сегментом кода без вызова интерфейса.
РАЗДЕЛЕНИЕ
[47] Осуществление связи одного сегмента кода с другим может быть достигнуто косвенно, разделением линии связи на множество дискретных линий связи. Это схематично показано на Фиг.1J и 1K. Как показано на Фиг.1J, предоставлены одна или несколько частей кода (интерфейс(интерфейсы) Разделения, так как они разделяют функциональные возможности и/или функции интерфейса от исходного интерфейса), для преобразования линий связи первого интерфейса, Интерфейс_1, для согласования с другим интерфейсом, в этом случае интерфейсами Интерфейс2A, Интерфейс2В и Интерфейс2С. Это может быть сделано, например, там, где есть установленная база приложений, разработанных для осуществления связи, скажем, с операционной системой в соответствии с протоколом Интерфейс_1, но затем операционная система изменилась таким образом, что стала использовать другой интерфейс, в этом случае интерфейсы Интерфейс2А, Интерфейс2В и Интерфейс2С. Суть этого заключается в том, что исходный интерфейс, используемый 2-м Сегментом кода, изменился таким образом, что он больше не является совместимым с интерфейсом, используемым 1-м Сегментом кода, и таким образом используется посредник, чтобы сделать старые и новые интерфейсы совместимыми. Аналогично, как показано на Фиг.1K, может вводиться третий сегмент кода с интерфейсом 1D Разделения для приема линий связи от интерфейса I1 и с интерфейсом DI2 Разделения для взаимодействия с, например, интерфейсами I2a и I2b, перепроектированными для работы с DI2, при этом обеспечивая тот же самый функциональный результат. Аналогично, DI1 и DI2 могут работать вместе для обеспечения функциональных возможностей интерфейсов I1 и 12 по Фиг.1C в новой операционной системе, обеспечивая тот же самый или подобный функциональный результат.
ЗАМЕНА
[48] Еще один возможный вариант представляет собой динамическое переписывание (замену) кода для замены функциональных возможностей интерфейса чем-то еще, но который дает тот же результат. Например, может иметь место система, в которой сегмент кода, представленный на промежуточном языке (например, Microsoft IL, Java ByteCode и т.д.), направляется в динамический компилятор (JIT) или интерпретатор в среде исполнения (например, инфраструктурой.Net, динамической средой Ява или другой подобной средой динамического типа). Компилятор JIT может быть написан таким образом, чтобы выполнять динамическое преобразование линий связи из 1-го Сегмента кода во 2-й Сегмент кода, то есть, согласование их с другим интерфейсом, как может потребоваться 2-м Сегментом кода (или исходным или другим 2-м Сегментом кода). Это показано на Фиг.1L и 1M. Как можно видеть на Фиг.1L, этот подход подобен сценарию Разделения, описанному выше. Это можно сделать, например, там, где установленная база данных приложений разработана для осуществления связи с операционной системой в соответствии с протоколом Интерфейс_1, но затем операционная система изменилась таким образом, что она использует другой интерфейс. Компилятор JIT может быть использован для согласования “на лету” линий связи из инсталлированных базой приложений с новым интерфейсом операционной системы. Как показано на Фиг.1M, этот подход динамического переписывания интерфейса(интерфейсов) может быть применен для динамического разложения или какого-либо другого изменения интерфейса(интерфейсов).
[49] Также следует отметить, что вышеописанные сценарии для достижения того же самого или подобного результата, что и обеспечиваемый интерфейсом через альтернативные варианты осуществления, также могут быть объединены различными способами, последовательно и/или параллельно или посредством другого чередующегося кода. Таким образом, альтернативные варианты осуществления, представленные выше, не являются взаимоисключающими и могут быть смешаны, согласованы и объединены для получения сценариев, таких же или эквивалентных общим сценариям, представленным на Фиг.1B и 1C. Также следует отметить, что, как и большинство программных конструкций, существуют другие аналогичные способы достижения тех же самых или подобных функциональных возможностей интерфейса, которые могут быть не раскрыты в настоящем описании, но тем не менее, соответствуют сущности и объему изобретения, то есть, следует отметить, что это представляет собой, по меньшей мере частично, функциональные возможности, представленные, и выигрышные результаты, определяемые интерфейсом, который определяет достоинства данного интерфейса.
ПИКТОГРАММЫ
[50] На Фиг.4A и 4B показан один из примеров приложения настоящего изобретения для предоставления пиктограмм окон приложений. В примере по Фиг.4A показана панель 400 задач, которая содержит кнопки панели задач. Каждая из кнопок на панели задач соответствует активному приложению. Кнопка 402 панели задач соответствует прикладной программе Солитер в настоящее время, выполняемой компьютером. Аналогично, кнопка 403 панели задач соответствует окну прикладной программы обработки текста, кнопка 405 панели задач соответствует окну прикладной программы Медиа Плейер, и кнопка 406 панели задач соответствует окну прикладной программы Калькулятор. Пиктограмма 401 Солитер предоставлена для окна прикладной программы Солитер, а пиктограмма 404 Медиа Плейер предоставлена для прикладной программы Медиа Плейер. Соответствующие пиктограммы могут быть вызваны множеством способов. В одном неограничивающем примере пиктограммы могут быть вызваны при нависании курсора над соответствующей кнопкой панели задач. Например, пиктограмма 401 Солитер может быть вызвана нависанием курсора над кнопкой 402 Солитер панели задач.
[51] Также показанные на Фиг.4A динамические пиктограммы могут обеспечивать обновляемый или "текущий" контент, соответствующий прикладной программе. Например, приложение Медиа Плейер может проигрывать видео. При проигрывании видео в окне приложения Медиа Плейер (не показано), видео также проигрывается в пиктограмме 404 Медиа Плейер. Если окно приложения Медиа Плейер минимизировано, то пиктограмма 404 Медиа Плейер может показывать последнюю перед уменьшением сцену в окне приложения Медиа Плейер. В качестве альтернативы, пиктограмма 404 Медиа Плейер может продолжать показывать видео до тех пор, пока продолжается воспроизведение в приложении Медиа Плейер даже в том случае, когда окно приложения Медиа Плейер минимизировано.
[52] На Фиг.4B показан другой пример пиктограмм настоящего изобретения. Показано, что панель 410 задач содержит кнопку 411 Солитер панели задач, соответствующую окну приложения Солитер (не показано), кнопку 412 обработки текста панели задач, соответствующую окну приложения обработки текста (не показано), кнопку 413 Медиа Плейер панели задач, соответствующую окну приложения Медиа Плейер (не показано), и кнопку 414 Калькулятор панели задач, соответствующую окну приложения Калькулятор (не показано). В этом примере представлена пиктограмма 415 Калькулятор. Пиктограмма 415 Калькулятор отображает текущий и обновленный контент окна приложения Калькулятор. В одном из вариантов осуществления настоящего изобретения пиктограмма 415 Калькулятор также может обновлять окно приложения. Например, вычисление может быть выполнено через пиктограмму 415 Калькулятор для получения математического результата. Этот результат может быть отображен на пиктограмме 415 Калькулятор, а также в окне приложения Калькулятор (не показано). В этом примере клавишу "=" выбирают в пиктограмме 415 Калькулятор, и результат отображается на пиктограмме Калькулятор (т.е., "4"). Этот результат также может быть отражен в окне приложения Калькулятор (не показано), даже если вычисление было выполнено посредством пиктограммы 415 Калькулятор.
[53] На Фиг.5 показано другое применение пиктограммы настоящего изобретения, в котором пиктограммы отображены в меню ALT-TAB. Как показано на Фиг.5, дисплей 500 отображает окна приложений. В этом случае, на дисплее 500 видны часть окна 502 приложения Калькулятор и часть окна 501 приложения Солитер. У каждого из приложений есть соответствующая кнопка панели задач на панели задач. У приложения Калькулятор есть соответствующая кнопка 503 Калькулятор панели задач, а у приложения Солитер есть соответствующая кнопка 504 Солитер панели задач. Приложение Медиа Плейер также является активным (не показано), и соответствующая кнопка 506 Медиа Плейер панели задач также присутствует на панели задач.
[54] В примере, показанном на Фиг.5, представлено меню 505 ALT-TAB, которое отображает динамические пиктограммы активных приложений. В этом примере каждая из динамических пиктограмм показывает "текущий" (то есть, обновленный) контент соответствующего окна приложения. Контент динамической пиктограммы может обновляться в реальном масштабе времени. По мере модификации или обновления окон приложений соответствующая динамическая пиктограмма также может соответственно обновляться. Обновление динамической пиктограммы также может происходить в реальном времени. В этом примере меню 505 ALT-TAB содержит динамическую пиктограмму каждого из активных приложений, независимо от того, видимо или нет окно приложения соответствующего приложения. Пиктограмма 507 Калькулятор, пиктограмма 508 Медиа Плейер и пиктограмма 509 Солитер показаны в меню 505 ALT-TAB с выбранной пиктограммой 509 Солитер. Каждая из динамических пиктограмм может предоставлять "текущий" контент. Например, в пиктограмме 508 Медиа Плейер может воспроизводиться видео в реальном масштабе времени.
[55] Фиг.2A и 2B представляют собой диаграммы, показывающие компоненты, отображенные на дисплее. Рабочий стол на Фиг.2A представлен в дереве графы сцены или дисплея как элемент 200 и содержит обои 201 рабочего стола и два приложения, Калькулятор 202 и Солитер 203. Кроме того, рабочий стол дополнительно содержит панель 208 задач. В этом способе представления рамки вокруг окон и клиентская область каждого окна представляют собой все части графа сцены. Перемещение окна становится изменяющимися значениями преобразований на дереве дисплея. Каждое из приложений в этом примере содержит оконную рамку 204, 205, соответственно, и, соответственно, контент 206, 207 окна. Панель 208 задач содержит контент 209 окна. На Фиг.2A элементы на дисплее визуализированы слева направо. Следовательно, обои 201 рабочего стола визуализированы сзади окна 203 приложения Калькулятор, которое визуализировано сзади окна 202 приложения Солитер.
[56] На Фиг.2B показано изображение на дисплее, как представлено на Фиг.2A. На заднем плане изображение на дисплее содержит обои 220 рабочего стола. Окно 222 приложения Калькулятор показано перед обоями рабочего стола, а окно 221 приложения Солитер показано перед окном 222 приложения Калькулятор и обоями 220 рабочего стола. Как показано на Фиг.2B, каждое из окон приложения может быть представлено кнопками панели задач на панели 225 задач. В этом примере приложение Калькулятор представлено кнопкой 223 панели задач на панели 225 задач, и прикладная программа Солитер представлена кнопкой 224 панели задач на панели 225 задач. Каждое окно 222 приложения Калькулятор и окно 221 приложения Солитер содержит оконную рамку, и контент окна, отображенное на обоях 220 рабочего стола.
[57] Любой подузел дерева, изображенного на Фиг.2A, может использоваться в качестве контента другого узла дерева. Следуя этому, контент одной части дерева можно увидеть в другом местоположении в другом месте на дереве. Существует множество способов визуализации узла на дереве в другом местоположении в другом месте на дереве. В качестве одного из неограничивающих примеров, может быть использована Visual Brush. "Visual Brush" представляет собой способ, используемый для ссылки на существующую часть графа сцены, но для визуализации его с "текущим" набором графического контекста, такого как положение, масштаб, поворот, непрозрачность, эффект и т.д. Это заставляет часть дерева, визуализированного в одном месте, быть визуализированным в любом другом месте. Например, если нужна динамическая пиктограмма окна приложения Калькулятор, то можно вызвать соответствующий интерфейс программирования (например, интерфейс прикладного программирования или API) для предоставления дескриптора HWND хоста пиктограммы или дескриптора окна. Этот пример показан на Фиг.3A и 3B.
[58] Фиг.3A представляет собой диаграмму графа сцены или дерева, иллюстрирующую пример компонентов изображения на дисплее настоящего изобретения. Рабочий стол представлен на Фиг.3A как элемент или узел 300 и содержит обои 301 рабочего стола и два приложения, Калькулятор 302 и Солитер 303. Каждое из приложений в этом примере содержит оконную рамку 305, 306, соответственно, и контент 307, 308 окна, соответственно. Рабочий стол в этом примере дополнительно содержит панель 307 задач.
[59] В этом примере предоставлена пиктограмма окна приложения Калькулятора путем вызова соответствующего API. Как показано на Фиг.3A, дескриптор окна HWND 304 хоста пиктограммы создан приложением и может регистрировать пиктограмму приложения, такую как приложение Калькулятор. Например, на Фиг.3A панель 307 задач содержит HWND 304 хоста пиктограммы и контент 310 окна. HWND 304 хоста пиктограммы содержит пиктограмму 311 Калькулятор и может присоединять пиктограмму окна приложения к хосту пиктограммы. Пунктирная стрелка на Фиг.3A показывает, что пиктограмма 311 Калькулятор HWND 304 хоста пиктограммы указывает на или перерисовывает Калькулятор из окна приложения Калькулятор. В результате предоставляется "текущая" или динамическая пиктограмма, которая представляет обновленный контент соответствующего окна приложения (в этом случае, окна приложения Калькулятор), а не просто статические представления контента окна приложения.
[60] Как и в примере на Фиг.2A, элементы на дисплее, представленные на Фиг.3A, визуализированы слева направо. Следовательно, обои рабочего стола 301 визуализированы сзади окна приложения Калькулятор 302, которое визуализировано сзади окна приложения Солитер 303 и панели 208 задач. На Фиг.3B показано изображение на дисплее, соответствующее Фиг.3A. Как показано на Фиг.3B, изображение на дисплее содержит обои 320 рабочего стола на заднем плане. Окно 322 приложения Калькулятор отображается перед обоями 320 рабочего стола, а окно 321 приложения Солитер отображается перед окном 322 приложения Калькулятор и обоями 320 рабочего стола. Также отображается панель 326 задач. Каждое из приложений ассоциировано с соответствующей кнопкой панели задач на панели 326 задач. В этом примере приложение Калькулятор ассоциировано с кнопкой 324 панели задач, а приложение Солитер ассоциировано с кнопкой 325 панели задач. Кроме того, на Фиг.3B показано, что представлена пиктограмма, которая ассоциирована с приложением Калькулятор. Прикладная программа Калькулятор и окно 322 ассоциировано с кнопкой 324 панели задач на панели 326 задач, а прикладная программа Солитер и окно 321 ассоциировано с кнопкой 325 панели задач.
[61] Также на Фиг.3B показана динамическая пиктограмма 323 окна 322 приложения Калькулятор. Пиктограмма 323 предоставлена узлом 311 Пиктограммы Калькулятор для HWND 304 хоста пиктограммы, который указывает на или перерисовывает оконную рамку 305 и контент 308 окна приложения 302 Калькулятор, как изображено на Фиг.3A. Результат представляет собой динамическую пиктограмму 323 окна 322 приложения Калькулятор, которая является "текущей", т.е. пиктограмма меняется при соответствующих модификациях, происходящих в самом окне приложения. Как показано на Фиг.3B, значение "243", вычисленное в окне 322 приложения Калькулятор, также отражается в соответствующей пиктограмме 323.
[62] В одном из аспектов настоящего изобретения динамические пиктограммы формируются посредством таких свойств пиктограммы, как регистрация, отмена регистрации и обновление. Такие свойства как регистрация, отмена регистрации и обновление или модификация пиктограмм могут выполняться посредством интерфейсов прикладного программирования (API) в администраторе окон рабочего стола (DWM). Описаны три иллюстративных API для обеспечения пиктограмм настоящего изобретения.
Пример 1 API - Регистрация пиктограммы
[63] Пиктограмма может быть сгенерирована из окна, например, окна приложения. Окно приложения, в этом случае, представляет собой исходное окно, поскольку окно приложения обеспечивает основу для контента пиктограммы. В одном из примеров пиктограмма представляет собой миниатюризированную версию окна приложения и содержит весь контент окна приложения. В качестве альтернативы, пиктограмма может содержать только выбранную часть исходного окна.
[64] Контент пиктограммы исходного окна визуализирован во второй области. Эта вторая область определяется целевым окном, которое подстраивает контент пиктограммы на основе исходного окна. Целевое окно может само формировать основу пиктограммы. Например, для показа пиктограммы на основе окна приложения в качестве целевого окна может использоваться небольшая оконная рамка в местоположении, отличающемся от местоположения окна приложения, обозначенная область на дисплее или всплывающее меню.
[65] Когда пиктограмма зарегистрирована, может быть выполнена операция, которая устанавливает отношения между исходным окном и целевым окном. Может быть определен дескриптор (HWND) окна, который определяет целевое окно. Определенное целевое окно может служить в качестве мишени визуализации пиктограммы и принадлежит процессу, вызывающему или регистрирующему пиктограммы. Если процесс, регистрирующий пиктограмму, также владеет целевым окном, то можно избежать нежелательных изменений в приложении, вызываемых другими приложениями. Аналогично, может также быть определен HWND для исходного окна.
[66] Также может быть определен размер кэшированного изображения в растровом формате пиктограммы. Например, может быть указан минимальный размер таким образом, что системе сообщают о последнем известном изображении исходного окна в растровом формате. Таким образом, если исходное окно затем минимизируется и не видимо на дисплее, при этом, тем не менее, сохраняется изображение окна в растровом формате, и пиктограмма все еще доступна. Размер может изменяться в зависимости от потребностей вызывающего приложения. Если имеет место множество регистраций одного и того же исходного окна, процесс может определить, какой размер пиктограммы применить, исходя из существующих потребностей. Например, в случае множества регистраций изменяющихся размеров пиктограммы может использоваться наибольший размер.
[67] API также может содержать дескриптор, представляющий регистрацию пиктограммы. Этот дескриптор может быть уникальным для процесса, который осуществляет вызов таким образом, что впоследствии регистрация пиктограммы может быть отменена только из процесса, при помощи которого она зарегистрирована.
[68] Ниже приведен пример API для регистрации пиктограммы:
Typedef HANDLE HTHUMBNAIL;
HRESULT
DwmRegisterThumbnail (
HWND
HWND
SIZE
OUT HTHUMBNAIL
dstWindow,
srcWindow,
*lpMinimizedSize,
*lphThumbnail
);
[69] В котором dstWindow представляет целевое окно, srcWindow представляет исходное окно, lpMinimizedSize представляет размер, в котором система кэширует последнее известное изображение исходного окна в растровом формате (srcWindow) после минимизации srcWindow, и lphThumbnail представляет собой возвращаемое значение, представляющее уникальный дескриптор, представляющий регистрацию, осуществленную при вызове.
Пример 2 API - модификация или установка свойств пиктограммы
[70] После регистрации пиктограммы контент исходного окна, или его часть, размещают в виде пиктограммы в целевом окне. Например, при вызове, свойства API Обновление пиктограммы могут изменить или обновить свойства визуализации пиктограммы в целевом окне. Например, могут использоваться свойства UpdateThumbnail для установки свойств пиктограмм, таких как видимость, форма, прямоугольники и т.д. Свойства API Обновление пиктограммы могут указывать на дескриптор пиктограммы, предназначенный для обновления. Обновление пиктограмм включает в себя любую модификацию пиктограммы, включая без ограничений расположение пиктограммы, размер пиктограммы, часть исходного окна, которая должна использоваться для пиктограммы, часть целевого окна, которая должна использоваться для пиктограммы, непрозрачность или прозрачность пиктограммы, видимость пиктограммы, специальные эффекты пиктограммы (например, вращение, деформация, разрушение и т.д.), и т.д.
[71] В другом примере пиктограммы могут обновляться или изменяться из процессов, в которых они были зарегистрированы. В одном из примеров дескриптор пиктограммы неоднократно вызывается в целевом окне таким образом, что пиктограмма может перемещаться внутри целевого окна. В этом случае, местоположение пиктограммы может изменяться в пределах целевого окна. Например, в окне ALT-TAB можно изменить порядок размещения пиктограмм путем вызова пиктограммы в целевом окне.
[72] При модификации или установке свойств пиктограммы могут использоваться параметры. Существует много примеров параметров для модификации или установки свойств пиктограммы, например, без ограничения, флаги. С помощью этих параметров структура API может легко изменяться, делая API более гибким для будущих обновлений. Параметры могут определять свойства пиктограммы, которые должны быть использованы, и сами могут определяться указанными константами. Например, параметры могут определять и соответствовать параметру исходного окна, который определяет область или часть исходного окна, предназначенного для использования в качестве пиктограммы в целевом окне, когда желательно использовать для пиктограммы размер, меньший чем все исходное окно. В этом примере для пиктограммы в целевом окне используется только определенная часть исходного окна, как указано параметром исходного окна. В одном из примеров часть исходного окна, предназначенная для использования, в качестве пиктограммы в целевом окне, определена в виде координат на дисплее. Например, если желаемая часть представляет собой прямоугольник в пределах исходного окна, API может определить параметр, чтобы указать координаты прямоугольника, пересекающегося с исходным окном для получения конечного прямоугольника, который будет использоваться в качестве пиктограммы. В качестве примера, координаты (0,0) могут быть установлены как верхний левый угол области окна. Параметр, определяющий и соответствующий желаемому параметру исходного окна, может быть установлен для того, чтобы указать, что только определенная часть исходного окна должна быть использована в виде пиктограммы, при этом определенная часть исходного окна определяется в терминах предоставляемых координат. Несмотря на то что существует множество способов определения координат и желаемой части исходного окна, один из примеров может включать в себя использование части исходного окна, определенной пересечением предоставленного прямоугольника с пересекаемым фактическим исходным окном.
[73] Кроме того, часть целевого окна, которая должна быть использована для пиктограммы, может быть определена при помощи параметра, который определяет и соответствует параметру целевого окна. В этом случае, если желательно использовать не все целевое окно, которое должно быть использовано для пиктограммы, а только часть целевого окна, которое должно быть использовано для пиктограммы, то область целевого окна, в котором может быть визуализирована пиктограмма, может быть определена параметром целевого окна. В этом случае, один из подходов мог бы представлять собой визуализацию только в пределах желаемой определенной области, как определено параметром целевого окна (т.е. усечение изображения при визуализации происходит за пределами определяемой области). Кроме того, один из способов определения местоположения части целевого окна, в котором может быть нарисована пиктограмма, представляет собой определение пересечения части целевого окна, предназначенного для использования, и самого целевого окна. Это предотвращает визуализацию за пределами заданной области. Кроме того, параметр, определяющий и соответствующий параметру целевого окна, может использоваться для определения области в пределах целевого окна, предназначенного для использования в качестве пиктограммы, из исходного окна. В этом примере, если параметр целевого окна не определен, то для контента пиктограммы может быть использовано все заданное окно.
[74] В API может быть определено любое число других свойств пиктограммы. Например, может быть определена непрозрачность или прозрачность пиктограммы. В одном из аспектов этого примера настоящего изобретения может быть назначен параметр для определения непрозрачности (или прозрачности) пиктограммы, например, 255 может быть назначен для указания полной непрозрачности, в то время как 0 может быть назначен для указания полной прозрачности. Таким образом, если установлен параметр, определяющий и соответствующий параметру непрозрачности, может быть применено определенное назначенное цифровое значение для непрозрачности пиктограммы. В результате пиктограмма может иметь различную степень непрозрачности по желанию пользователя.
[75] В качестве дополнительного примера, пиктограмма может быть сделана видимой или невидимой по необходимости. Может быть предоставлен параметр, определяющий и соответствующий параметру видимости. Параметр видимости может представлять собой Булево значение таким образом, что когда параметр видимости представляет собой значение TRUE, пиктограмма будет видимой, в то время как пиктограмма будет невидимой, если параметр видимости имеет значение FALSE. Настоящее изобретение не ограничено никакой конкретной модификацией пиктограммы, поскольку любая модификация пиктограммы находится в пределах объема настоящего изобретения.
[76] Ниже приведен пример API обновления или изменения пиктограммы DwmUpdateThumbnailProperties:
HRESULT
DwmUpdateThumbnailProperties (
HTHUMBNAIL hThumbnail,
DWM_THUMBNAIL_PROPERTIES *ptnProperties
);
#define
#define
#define
#define
typedef
DWM_TNP_RECTDESTINATION 0X00000001
DWM_TNP_RECTSOURCE 0X00000002
DWM_TNP_OPACITY 0X00000004
DWM_TNP_VISIBILITY 0X00000008
struct_DWM_THUMBNAIL_PROPERTIES
{
DWORD
RECT
RECT
BYTE
BOOL
dwFlags;
rcDestination;
resource;
opacity;
fVisible;
} DWM_THUMBNAIL_PROPERTIES;
[77] где dwFlags определяют параметры или флаги, соответствующие параметрам, которые определяют последующие свойства, которые должны быть использованы. В этом примере параметр rcSource представляет собой параметр исходного окна, который определяет область исходного окна (srcWindow), предназначенную для использования в виде пиктограммы, rcDestination представляет собой параметр целевого окна, который определяет целевое окно (dstWindow), в котором визуализируется пиктограмма, Opacity представляет собой параметр непрозрачности, который управляет непрозрачностью пиктограммы (например, устанавливаемый от 0 до 255), и fVisible представляет собой параметр видимости, который определяет пиктограмму как невидимую или видимую на основе Булева значения.
Пример 3 API - Отмена регистрации пиктограммы
[78] Ассоциация между исходным и целевым окнами удаляется, когда она больше не нужна. Например, если окно больше не является активным, ассоциация между окном и пиктограммой может осуществляться путем отмены регистрации ассоциации. Это приводит к освобождению ресурсов. Более того, пиктограммы могут дополнительно освобождаться при завершении процесса регистрации. Ниже приведен пример API для отмены регистрации пиктограммы DwmUnregisterThumbnail:
HRESULT
DwmUnregisterThumbnail (
HTHUMBNAIL hThumbnail
);
[79] Фиг.6 представляет собой блок-схему последовательности операций, иллюстрирующую пример процесса предоставления пиктограмм, включая "текущие" или динамические пиктограммы настоящего изобретения. На этапе 601 предоставляется API, при помощи которого приложение может запросить первое окно верхнего уровня или исходное окно показать пиктограмму, которая также может быть расположена в секции второго окна верхнего уровня или целевого окна. Следовательно, первое окно верхнего уровня или исходное окно может быть визуализировано в виде объекта самого высокого уровня в пределах целевого окна. Один из неограничивающих примеров этой реализации представляет собой окно ATL-TAB, в котором пиктограмма, соответствующая исходному окну, предоставляется в пределах окна ALT-TAB (то есть целевого окна).
[80] На этапе 602 генерируется вызов Регистратора для DWM, который может предоставить дескриптор пиктограммы. Также может иметь место множество случаев вызова в одном и том же исходном окне или одном и том же целевом окне. В примере ALT-TAB множество случаев вызова в одном и том же исходном окне и одном и том же целевом окне приводит к размещению пиктограмм в другом порядке в пределах окна ALT-TAB, а также предоставление увеличенного и/или стилизованного представления пиктограммы приложения при выборе пиктограммы. В другом примере Z-порядок пиктограммы может быть изменен последующими вызовами регистрации. Если нужна модификация z-порядка пиктограммы относительно других элементов дисплея, новая пиктограмма может быть зарегистрирована при помощи другого вызова регистрации пиктограммы. После установки свойств для новой пиктограммы, которая соответствует старой пиктограмме, регистрация старой пиктограммы может быть отменена. Таким образом, в этом примере, z-порядок пиктограммы может быть изменен посредством множества регистраций пиктограммы.
[81] В качестве альтернативы, может быть вызвано множество исходных окон для одного и того же целевого окна. В этом примере, вызовы множества исходных окон для одного целевого окна приводят к предоставлению множества различных пиктограмм в пределах целевого окна.
[82] В другом примере динамические пиктограммы могут быть отображены в пределах других динамических пиктограмм. Например, первая динамическая пиктограмма с более высоким z-порядком может быть размещена в более динамической пиктограмме приложения с более низким z-порядком. В этом примере пиктограммы могут быть вложены в другие пиктограммы. Более того, к пиктограммам или к любым вложенным пиктограммам могут быть применены эффекты. В качестве альтернативы, пиктограммы любого z-порядка могут быть размещены в виде каскада в другой пиктограмме любого z-порядка. Например, по меньшей мере, одна пиктограмма (независимо от z-порядка) может быть помещена в большую динамическую пиктограмму приложения любого z-порядка. Аналогично, большая динамическая пиктограмма может быть помещена в другую динамическую пиктограмму любого z-порядка. Таким образом, пиктограммы могут быть размещены в виде каскада независимо от z-порядка.
[83] На этапе 603 DWM регистрирует пару процесс/ID для пиктограммы. DWM может дополнительно поддерживать глобальный список регистраций пиктограмм, в котором каждому приложению соответствует дескриптор пиктограммы (HWND). Глобальный список может поддерживаться множеством способов в зависимости от потребностей пользователя. Например, один из удобных способов поддержки глобального списка состоит в индексации пиктограмм целевым окном (dstWindow) таким образом, что любое желаемое целевое окно может быть эффективно доступным. Кроме того, пиктограммы в любом конкретном целевом окне могут быть дополнительно организованы в логическом порядке, таком как в порядке наложения или основанном на z-порядке.
[84] В другом примере DWM может "захватывать" контенты окна (т.е. спасать текущие контенты окна) перед минимизацией этого окна. DWM захватывает контенты окна, например, в виде изображения в растровом формате конкретного размера. Размер может быть определен API регистрацией и является подходящим размером для отображения пиктограммы. После минимизации окна контент окна сохраняется таким образом, что пиктограмма, соответствующая окну приложения, может все еще быть доступной. В качестве альтернативы, окна, которые минимизированы, могут быть временно "оставленными" без вывода на экран, а не действительно минимизироваться. В этом случае, приложения могут продолжать посылать информацию и данные для обновления пиктограммы. Таким образом, если происходит регистрация пиктограммы после "минимизации" окна приложения, пиктограммы все еще могут регистрироваться и обновляться, как будто окно не было минимизировано. В качестве альтернативы, пиктограммы могут быть заменены иконками или заголовками окна, если регистрация пиктограммы невыполнима.
[85] На этапе 604 определяются и происходят обновления свойств пиктограмм. При модификации или обновлении свойств пиктограммы DWM может модифицировать глобальный список соответствующим образом. Например, приложение DWM может добавить пиктограммы к своему собственному графу сцены (например, см. Фиг.2A или Фиг.3A), в котором перерисовывается подходящий узел окна верхнего уровня, который представляет целевое окно, из исходного окна (т.е., sreWindow) на основе дополнительных инструкций для выполнения рисования. Также в пиктограмму могут быть включены любые дополнительные определенные изменения или эффекты, например, масштабирование, позиционирование, непрозрачность, невидимость или специальные эффекты.
[86] На этапе 605 пиктограмма модифицируется на основе полученных инструкций. Например, API UpdateThumbnail может изменять видимость узла пиктограммы, если параметр fVisible равен TRUE, или API UpdateThumbnail может увеличить (или уменьшить) непрозрачность пиктограммы. После выполнения всех желательных модификаций в пиктограмме процесс DWM определяет, нужна ли отмена регистрации пиктограммы. Этот процесс определения, если отмена регистрации пиктограммы нужна, может быть выполнен отдельно от процесса UpdateThumbnail. В этом случае, отмена регистрации может происходить в результате вызова API UnregisterThumbnail (не показано). На этапе 606 определяют, получен ли процессом DWM API отмены регистрации. Если API отмены регистрации получен, удаляется спаривание процесса и соответствующего ID пиктограммы (например, из глобального списка регистрации пиктограмм, поддерживаемого в процессе DWM). На этапе 607, в результате отмены регистрации пиктограммы повторно выдается поток инструкций окна верхнего уровня. В результате пиктограмма удаляется.
[87] В одном из примеров курсор нависает над кнопкой панели задач, приводя к отображению пиктограммы соответствующего приложения. Когда курсор нависает над кнопкой панели задач, процесс создает новый дескриптор (HWND) окна верхнего уровня, которое хостирует пиктограмму. Процесс вызывает API регистрацию, которая использует дескриптор (HWND) окна приложения в качестве источника контента для пиктограммы (т.е., srcWindow). Новый HWND верхний уровень, который хостирует пиктограмму, представляет собой целевое окно (dstWindow). Затем контент из исходного окна, или желаемая его часть, размещается в целевом окне для отображения пиктограммы. Пиктограмма может содержать весь контент исходного окна или может содержать только заданную или выбранную часть, как описано выше. UpdateThumbnail API может изменять или перемещать пиктограмму. Например, пиктограмма может быть перемещена относительно соответствующей иконки, или в пиктограмме могут быть применены специальные эффекты (например, прозрачность, невидимость, искажение и т.д.). При отведении курсора в сторону от кнопки панели задач регистрация HWND верхнего уровня, хостирующего пиктограмму, может быть отменена, таким образом, что пиктограмма будет скрыта. В качестве альтернативы, пиктограмма может быть обновлена, чтобы стать невидимой таким образом, что пиктограмма все еще будет зарегистрирована и может быть вызвана впоследствии. В альтернативном способе каждому окну после создания может быть назначена пиктограмма, созданная для этого при помощи панели задач. В этом примере код панели задач может быть использован, например, для манипуляции видимостью пиктограмм и целевым прямоугольником для размещения пиктограммы.
[88] Является очевидным, что аспекты настоящего изобретения могут относиться ко множеству форм и вариантов осуществления. Варианты осуществления, раскрытые в настоящем описании, предназначены для иллюстрации, а не ограничения изобретения, очевидно, что могут быть сделаны изменения без отступления от сущности и объема изобретения. Хотя показаны и описаны иллюстративные варианты осуществления изобретения, для вышеприведенного описания подразумевается широкий диапазон модификаций, изменений и замен, и в некоторых случаях некоторые признаки настоящего изобретения могут использоваться без соответствующего использования других признаков. Следовательно, очевидно, что прилагаемая формула изобретения должна рассматриваться максимально широко в соответствии с объемом настоящего изобретения.

Claims (17)

1. Реализуемый компьютером способ отображения окна,
содержащего пиктограмму на устройстве отображения, отличающийся тем, что:
отображают панель задач с кнопкой панели задач, соответствующей пиктограмме, причем каждая кнопка панели задач соответствует активному приложению;
отображают исходное окно, причем исходное окно содержит первый контент, который способен модифицироваться;
отображают целевое окно, в котором, по меньшей мере, часть целевого окна включает в себя пиктограмму, причем пиктограмма включает в себя второй контент, соответствующий, по меньшей мере, части первого контента исходного окна;
регистрируют пиктограмму для установления связи между исходным окном и целевым окном через хост приложения программного интерфейса чтобы указать на и изменить второй контент, соответствующий, по меньшей мере, части первого контента исходного окна;
динамически модифицируют второй контент пиктограммы посредством постоянного интерфейса между первым контентом исходного окна и вторым контентом пиктограммы, который определяет, был ли изменен первый контент с момента предыдущего сравнения первого контента исходного окна со вторым контентом пиктограммы, и вне зависимости от того, изменился ли первый контент исходного окна, модифицируют второй контент на основе изменений первого контента исходного окна; и
позволяют начатое пользователем представление измененного второго контента, когда пользователь располагает указывающее устройство над минимизированным вариантом целевого окна.
2. Способ по п.1, дополнительно отличающийся на этапе регистрации пиктограммы, причем регистрация пиктограммы содержит получение дескриптора окна для указанного исходного окна.
3. Способ по п.2, в котором этап регистрации дополнительно отличается тем, что устанавливают ассоциацию между первым контентом исходного окна и вторым контентом пиктограммы так, чтобы, по меньшей мере, часть первого контента исходного окна была нарисована в пиктограмме.
4. Способ по п.3, в котором этап регистрации дополнительно отличается тем, что получают параметр размера и сохраняют первым контент исходного окна с размером, соответствующим этому параметру размера.
5. Способ по п.4, в котором регистрация дополнительно отличается тем, что получают уникальный дескриптор, представляющий ассоциацию между первым контентом исходного окна и вторым контентом пиктограммы.
6. Способ по п.5, дополнительно отличающийся этапом отмены регистрации пиктограммы, причем отмена регистрации содержит удаление уникального дескриптора, представляющего ассоциацию между первым контентом исходного окна и вторым контентом пиктограммы.
7. Способ по п.6, в котором этап отмены регистрации пиктограммы отличается тем, что удаляют указанный уникальный дескриптор, представляющий ассоциацию между первым контентом исходного окна и вторым контентом пиктограммы.
8. Способ по п.6, дополнительно отличающийся тем, что поддерживают список ассоциаций окон, причем список ассоциаций окон содержит информацию об ассоциации между первым контентом исходного окна и вторым контентом пиктограммы.
9. Способ по п.1, дополнительно отличающийся тем, что получают первый параметр для определения, по меньшей мере, части исходного окна, причем указанная модификация содержит определение, по меньшей мере, части исходного окна, которая должна быть нарисована в пиктограмме, на основе указанного первого параметра.
10. Способ по п.9, дополнительно отличающийся тем, что получают второй параметр для определения, по меньшей мере, части целевого окна, причем указанная модификация дополнительно содержит определение, по меньшей мере, части целевого окна, предназначенного для визуализации пиктограммы, на основе указанного второго параметра.
11. Читаемый компьютером носитель информации, имеющий исполняемые компьютером инструкции, которые при исполнении их компьютером приводят к реализации упомянутым компьютером способа отображения окна, содержащего пиктограмму на дисплее, при этом способ содержит этапы, на которых:
отображают панель задач с кнопкой панели задач, соответствующей пиктограмме, причем каждая кнопка панели задач соответствует активному приложению;
отображают исходное окно на дисплее, причем исходное окно содержит первый контент, который способен модифицироваться;
отображают целевое окно, в котором, по меньшей мере, часть целевого окна включает в себя пиктограмму, причем пиктограмма включает в себя второй контент, соответствующий, по меньшей мере, части контента исходного окна; и
регистрируют пиктограмму для установления связи между исходным окном и целевым окном через хост приложения программного интерфейса, чтобы указать назад на и изменить второй контент, соответствующий, по меньшей мере, части первого контента исходного окна;
динамически модифицируют второй контент пиктограммы посредством постоянного интерфейса между первым контентом исходного окна и вторым контентом пиктограммы, который определяет, был ли изменен первый контент с момента предыдущего сравнения первого контента исходного окна со вторым контентом пиктограммы, и вне зависимости от того, изменился ли первый контент исходного окна, модифицируют второй контент на основе изменений первого контента исходного окна;
позволяют начатое пользователем представление измененного второго контента, когда пользователь располагает указывающее устройство над минимизированным вариантом целевого окна.
12. Читаемый компьютером носитель информации по п.11, имеющий дополнительные исполняемые компьютером инструкции для выполнения этапов, на которых:
регистрируют пиктограмму;
поддерживают список ассоциаций окон, содержащих информацию об ассоциации между исходным окном и соответствующей пиктограммой.
13. Читаемый компьютером носитель информации по п.11, в котором указанная регистрация содержит этапы, на которых:
получают дескриптор окна для исходного окна;
устанавливают ассоциацию между первым контентом исходного окна и соответствующим вторым контентом пиктограммы так, чтобы, по меньшей мере, часть первого контента исходного окна была нарисована в составе второго контента пиктограммы;
получают параметр размера и сохраняют первый контент исходного окна с размером, соответствующим указанному параметру размера;
получают уникальный дескриптор, представляющий ассоциацию между первым контентом исходного окна и целевым окном.
14. Читаемый компьютером носитель информации по п.12, в котором указанная модификация содержит этапы, на которых:
определяют, по меньшей мере, часть исходного окна, которая должна быть нарисована в целевом окне, на основе первого параметра для определения, по меньшей мере, части исходного окна;
определяют, по меньшей мере, часть целевого окна, предназначенного для визуализации второго контента, на основе второго параметра для определения пиктограммы;
получают управляющее значение и устанавливают непрозрачность пиктограммы на основе указанного управляющего значения;
получают Булево значение и делают пиктограмму невидимой на основе указанного Булева значения.
15. Читаемый компьютером носитель информации по п.12, содержащий дополнительные исполняемые компьютером инструкции для выполнения этапа, на котором отменяют регистрацию пиктограммы, содержащую удаление уникального дескриптора, представляющего ассоциацию между первым контентом исходного окна и вторым контентом пиктограммы.
16. Система для отображения окна, содержащего пиктограмму, на устройстве отображения, причем система содержит:
дисплей для отображения панели задач с кнопкой панели задач, соответствующей пиктограмме, причем каждая кнопка панели задач соответствует активному приложению;
дисплей для отображения исходного окна, содержащего контент, который способен модифицироваться, и целевое окно, соответствующее указанному исходному окну;
администратор для регистрации пиктограммы, причем пиктограмма находится в целевом окне и соответствует, по меньшей мере, части исходного окна, при этом указанная регистрация содержит:
получение дескриптора окна для указанного исходного окна через хост приложения программного интерфейса чтобы указать на изменение целевого окна, соответствующего, по меньшей мере, части исходного окна;
установку ассоциации между исходным окном и пиктограммой так, чтобы, по меньшей мере, часть контента исходного окна была нарисована в пиктограмме;
получение параметра размера окна, соответствующего исходному окну, и сохранение исходного окна с размером, соответствующим указанному параметру размера; и
получение уникального дескриптора, представляющего ассоциацию между исходным окном и пиктограммой;
процессор и
память, хранящую компьютерно исполняемые инструкции, которые при исполнении процессором заставляют систему выполнять способ динамической модификации пиктограммы посредством постоянного интерфейса между первым контентом исходного окна и вторым контентом пиктограммы, который определяет, был ли изменен первый контент с момента предыдущего сравнения первого контента исходного окна со вторым контентом пиктограммы, и вне зависимости от того, изменился ли первый контент исходного окна, и позволяют начатое пользователем представление измененного целевого окна, когда пользователь располагает указывающее устройство над минимизированным вариантом целевого окна, указанный способ содержит этапы, на которых
определяют, по меньшей мере, часть исходного окна, которая должна быть нарисована в пиктограмме, на основе первого параметра для определения, по меньшей мере, части исходного окна, при этом первый параметр включает в себя одну или более координат исходного окна;
определяют пиктограмму, предназначенную для визуализации, на основе второго параметра для определения, по меньшей мере, части целевого окна, в которой должна быть визуализирована пиктограмма;
получают управляющее значение и устанавливают непрозрачность, по меньшей мере, части пиктограммы на основе указанного управляющего значения;
получают Булево значение и устанавливают видимость, по меньшей мере, части пиктограммы на основе указанного Булева значения.
17. Система по п.16, в которой администратор выполнен с возможностью отмены регистрации пиктограммы, при этом отмена регистрации содержит этап удаления ассоциации между исходным окном и пиктограммой.
RU2007138968/08A 2005-04-22 2005-08-25 Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон RU2409833C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/111,983 2005-04-22
US11/111,983 US7673255B2 (en) 2005-04-22 2005-04-22 Interface and system for manipulating thumbnails of live windows in a window manager

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2010135599/08A Division RU2569802C2 (ru) 2005-04-22 2005-08-25 Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон

Publications (2)

Publication Number Publication Date
RU2007138968A RU2007138968A (ru) 2009-04-27
RU2409833C2 true RU2409833C2 (ru) 2011-01-20

Family

ID=37188582

Family Applications (2)

Application Number Title Priority Date Filing Date
RU2007138968/08A RU2409833C2 (ru) 2005-04-22 2005-08-25 Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон
RU2010135599/08A RU2569802C2 (ru) 2005-04-22 2005-08-25 Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2010135599/08A RU2569802C2 (ru) 2005-04-22 2005-08-25 Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон

Country Status (12)

Country Link
US (3) US7673255B2 (ru)
EP (2) EP1872194B1 (ru)
JP (1) JP4981032B2 (ru)
KR (1) KR101278771B1 (ru)
BR (1) BRPI0520186B1 (ru)
CA (1) CA2605601C (ru)
ES (1) ES2634676T3 (ru)
MX (1) MX2007013102A (ru)
MY (1) MY147084A (ru)
RU (2) RU2409833C2 (ru)
TW (2) TWI533147B (ru)
WO (1) WO2006115531A1 (ru)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2589854C2 (ru) * 2013-06-13 2016-07-10 Олег Александрович Серебренников Система создания и отображения планов
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
RU2597522C2 (ru) * 2011-09-01 2016-09-10 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Упорядочение плиток
RU2598333C2 (ru) * 2011-09-09 2016-09-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Группирование выбираемых плиток
RU2600543C2 (ru) * 2011-09-09 2016-10-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Интерфейс программирования для семантического масштабирования
RU2604419C2 (ru) * 2012-05-30 2016-12-10 Тэнцэнт Текнолоджи (Шеньчжэнь) Компани Лимитед Способ и устройство для выполнения операции перемещения области в таблице
US9535597B2 (en) 2011-05-27 2017-01-03 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
RU2607272C2 (ru) * 2011-02-11 2017-01-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для обеспечения графического пользовательского интерфейса в мобильном терминале
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9569090B2 (en) 2011-02-11 2017-02-14 Samsung Electronics Co., Ltd. Method and apparatus for providing graphic user interface in mobile terminal
RU2617387C2 (ru) * 2013-02-22 2017-04-24 Сяоми Инк. Способ и устройство отображения динамической пиктограммы
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
US9671926B2 (en) 2013-02-22 2017-06-06 Xiaomi Inc. Method and terminal device for displaying dynamic icon
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
RU2629446C2 (ru) * 2013-04-08 2017-08-29 Сяоми Инк. Способ, инструментарий и устройство для упорядочивания значков
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
RU2665296C2 (ru) * 2014-04-01 2018-08-28 Сейко Эпсон Корпорейшн Способ двунаправленного отображения и устройство двунаправленного отображения
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
RU2685984C1 (ru) * 2015-07-31 2019-04-23 ЭЙЗО Корпорайшн Устройство управления отображением, устройство отображения, система отображения и программа
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations

Families Citing this family (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813954B1 (en) * 2001-12-14 2010-10-12 Keen Personal Media, Inc. Audiovisual system and method for displaying segmented advertisements tailored to the characteristic viewing preferences of a user
US7600190B2 (en) * 2005-11-15 2009-10-06 Mitac Technology Corp. Window switching method and system
US20070136678A1 (en) * 2005-11-23 2007-06-14 Brown Michael W Software process and method that allows a computer program to run in memory, but display as a digital graphic or text window
US9817831B2 (en) * 2005-12-30 2017-11-14 Microsoft Technology Licensing, Llc Monetization of multimedia queries
US7620905B2 (en) * 2006-04-14 2009-11-17 International Business Machines Corporation System and method of windows management
US20070245250A1 (en) * 2006-04-18 2007-10-18 Microsoft Corporation Microsoft Patent Group Desktop window manager using an advanced user interface construction framework
US8683362B2 (en) * 2008-05-23 2014-03-25 Qualcomm Incorporated Card metaphor for activities in a computing device
US8893038B2 (en) * 2006-10-03 2014-11-18 International Business Machines Corporation Graphical association of task bar entries with corresponding desktop locations
JP2008147838A (ja) * 2006-12-07 2008-06-26 Sony Corp 画像処理装置、画像処理方法、およびプログラム
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
JP4772708B2 (ja) * 2007-01-29 2011-09-14 コニカミノルタビジネステクノロジーズ株式会社 制御装置及び制御方法並びに制御プログラム
EP1983414A1 (en) * 2007-04-19 2008-10-22 Research In Motion Limited Multiple display window handling
EP2153631B1 (en) * 2007-04-26 2020-02-12 Nokia Technologies Oy Improved method and apparatus for switching between different modes in a mobile communication terminal
US7941749B2 (en) * 2007-05-15 2011-05-10 Microsoft Corporation Composition of electronic document layout
US20090037817A1 (en) * 2007-07-30 2009-02-05 Christopher Lee Bennetts Source and preview panes for media content
US20090049409A1 (en) * 2007-08-15 2009-02-19 Archos Sa Method for generating thumbnails for selecting video objects
US8024670B1 (en) * 2007-10-30 2011-09-20 Intuit Inc. Workflow management using live thumbnails
US20090144648A1 (en) * 2007-12-04 2009-06-04 Google Inc. Tabbed windows for viewing multimedia programs
TWI356337B (en) * 2007-12-26 2012-01-11 Htc Corp A user interface of electronic apparatus
US8555193B2 (en) * 2008-01-17 2013-10-08 Google Inc. System for intelligent automated layout and management of interactive windows
US8490019B2 (en) * 2008-01-29 2013-07-16 Microsoft Corporation Displaying thumbnail copies of each running item from one or more applications
US20090199127A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Previewing target display areas
US8839300B2 (en) * 2008-02-19 2014-09-16 At&T Intellectual Property I, Lp Method and system for presenting electronic programming guides
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US20140033171A1 (en) * 2008-04-01 2014-01-30 Jon Lorenz Customizable multistate pods
TWI361377B (en) 2008-04-24 2012-04-01 Htc Corp Method for switching user interface, electronic device and recording medium using the same
US20090315900A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Generic surface manager
US9030418B2 (en) * 2008-06-24 2015-05-12 Lg Electronics Inc. Mobile terminal capable of sensing proximity touch
US8819585B2 (en) * 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management
US8499254B2 (en) * 2008-10-27 2013-07-30 Microsoft Corporation Surfacing and management of window-specific controls
US8381131B1 (en) * 2009-01-22 2013-02-19 Amdocs Software Systems Limited System, method, and computer program for displaying tasks as interactive thumbnails for interaction therewith by a user
CN101504658B (zh) * 2009-01-23 2011-09-28 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及系统
JP5419486B2 (ja) * 2009-02-10 2014-02-19 キヤノン株式会社 データ処理装置、データ処理方法、およびプログラム
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8427438B2 (en) * 2009-03-26 2013-04-23 Apple Inc. Virtual input tools
KR101601040B1 (ko) * 2009-05-19 2016-03-09 삼성전자주식회사 휴대 단말기의 화면 표시 방법 및 이를 지원하는 휴대 단말기
US20110099523A1 (en) * 2009-10-28 2011-04-28 Van Zee Pieter Product selection and management workflow
US9177298B2 (en) 2009-12-15 2015-11-03 International Business Machines Corporation Abbreviated user interface for instant messaging to minimize active window focus changes
US8698845B2 (en) * 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface with interactive popup views
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US9052926B2 (en) * 2010-04-07 2015-06-09 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
AU2015202565B2 (en) * 2010-04-07 2017-03-02 Apple Inc. Gesture based graphical user interface for managing concurrently open software applications
US9823831B2 (en) * 2010-04-07 2017-11-21 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
AU2015230769B2 (en) * 2010-04-07 2017-08-31 Apple Inc. Gesture based graphical user interface for managing concurrently open software applications
US9513801B2 (en) 2010-04-07 2016-12-06 Apple Inc. Accessing electronic notifications and settings icons with gestures
EP2385452A1 (en) * 2010-05-06 2011-11-09 Amadeus S.A.S. Computer navigation method
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US8661369B2 (en) * 2010-06-17 2014-02-25 Lg Electronics Inc. Mobile terminal and method of controlling the same
US9612715B2 (en) * 2010-06-28 2017-04-04 International Business Machines Corporation Real-time preview of uniform resource identifier addressable dynamic content
US8866822B2 (en) 2010-09-07 2014-10-21 Microsoft Corporation Alternate source for controlling an animation
JP5635850B2 (ja) * 2010-09-16 2014-12-03 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法
JP5440873B2 (ja) * 2010-09-30 2014-03-12 ブラザー工業株式会社 デバイス、及びプログラム
KR101685991B1 (ko) * 2010-09-30 2016-12-13 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
DE102010056603A1 (de) 2010-12-31 2012-07-05 Global IP Telecommunications Ltd. Verfahren zum Erweitern der grafischen Benutzeroberfläche in einem Datenverarbeitungssystem
US20120185805A1 (en) * 2011-01-14 2012-07-19 Apple Inc. Presenting Visual Indicators of Hidden Objects
US20120209413A1 (en) * 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
DE112011104981T5 (de) * 2011-03-31 2014-02-06 Hewlett-Packard Development Co., L.P. Ergänzung von Elementen der Benutzeroberfläche
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US20120272178A1 (en) * 2011-04-21 2012-10-25 Opera Software Asa Method and device for providing easy access in a user agent to data resources related to client-side web applications
US8806369B2 (en) 2011-08-26 2014-08-12 Apple Inc. Device, method, and graphical user interface for managing and interacting with concurrently open software applications
US20130067394A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Pointer invocable navigational user interface
US11301345B2 (en) * 2011-11-30 2022-04-12 Red Hat, Inc. Desktop sound source discovery
US20130155112A1 (en) * 2011-12-20 2013-06-20 Nokia Corporation Method, apparatus and computer program product for graphically transitioning between multiple program interface levels of a program
US9207837B2 (en) 2011-12-20 2015-12-08 Nokia Technologies Oy Method, apparatus and computer program product for providing multiple levels of interaction with a program
US9128605B2 (en) * 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
CN108287651B (zh) 2012-05-09 2021-04-13 苹果公司 用于针对在用户界面中执行的操作提供触觉反馈的方法和装置
EP3264252B1 (en) 2012-05-09 2019-11-27 Apple Inc. Device, method, and graphical user interface for performing an operation in accordance with a selected mode of operation
DE202013012233U1 (de) 2012-05-09 2016-01-18 Apple Inc. Vorrichtung und grafische Benutzerschnittstelle zum Anzeigen zusätzlicher Informationen in Antwort auf einen Benutzerkontakt
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
CN109062488B (zh) 2012-05-09 2022-05-27 苹果公司 用于选择用户界面对象的设备、方法和图形用户界面
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
CN104487928B (zh) 2012-05-09 2018-07-06 苹果公司 用于响应于手势而在显示状态之间进行过渡的设备、方法和图形用户界面
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
CN109298789B (zh) 2012-05-09 2021-12-31 苹果公司 用于针对激活状态提供反馈的设备、方法和图形用户界面
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
US9563715B2 (en) * 2012-07-08 2017-02-07 Htc Corporation Method for performing information monitoring control of at least one target division block of at least one web page with aid of at least one monitoring control server, and associated apparatus and associated monitoring system
CN103577176A (zh) * 2012-08-02 2014-02-12 腾讯科技(深圳)有限公司 视频独立播放的实现方法及实现该方法的移动终端设备
KR102183071B1 (ko) 2012-12-06 2020-11-25 삼성전자주식회사 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법
US10386992B2 (en) 2012-12-06 2019-08-20 Samsung Electronics Co., Ltd. Display device for executing a plurality of applications and method for controlling the same
CN107831991B (zh) 2012-12-29 2020-11-27 苹果公司 用于确定是滚动还是选择内容的设备、方法和图形用户界面
JP6138274B2 (ja) 2012-12-29 2017-05-31 アップル インコーポレイテッド ユーザインタフェース階層をナビゲートするためのデバイス、方法、及びグラフィカルユーザインタフェース
EP2939095B1 (en) 2012-12-29 2018-10-03 Apple Inc. Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
KR20170081744A (ko) 2012-12-29 2017-07-12 애플 인크. 다중 접촉 제스처에 대한 촉각적 출력의 발생을 보류하는 디바이스, 방법, 및 그래픽 사용자 인터페이스
KR101958582B1 (ko) 2012-12-29 2019-07-04 애플 인크. 터치 입력에서 디스플레이 출력으로의 관계들 사이에서 전환하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
US9658740B2 (en) 2013-03-15 2017-05-23 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
KR102117937B1 (ko) * 2013-03-15 2020-06-02 엘지전자 주식회사 영상 표시 장치 및 그것의 제어 방법
US9477404B2 (en) 2013-03-15 2016-10-25 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US10656800B2 (en) * 2013-03-29 2020-05-19 Microsoft Technology Licensing, Llc Visual configuration and activation
TWI597659B (zh) * 2013-04-15 2017-09-01 晨星半導體股份有限公司 開啟顯示器前更新欲顯示內容的處理方法、模塊及其電子裝置
US10452222B2 (en) 2013-05-29 2019-10-22 Microsoft Technology Licensing, Llc Coordination of system readiness tasks
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US20150046812A1 (en) 2013-08-12 2015-02-12 Google Inc. Dynamic resizable media item player
KR20150032097A (ko) * 2013-09-17 2015-03-25 삼성전자주식회사 영상표시장치, 영상표시장치의 구동방법 및 영상표시방법
US10007810B2 (en) * 2013-10-05 2018-06-26 Excalibur Ip, Llc Alternate screen reveal for instant privacy
KR102192155B1 (ko) * 2013-11-12 2020-12-16 삼성전자주식회사 어플리케이션 정보를 제공하는 방법 및 장치
GB2525198A (en) * 2014-04-15 2015-10-21 Ibm Controlling an application instance using a graphical user interface
CN104503693B (zh) 2014-11-28 2017-12-22 英业达科技有限公司 多段文件内容的选取方法
US10102664B1 (en) * 2014-12-03 2018-10-16 Charles Schwab & Co., Inc. System and method for causing graphical information to be rendered
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10489013B2 (en) * 2015-03-17 2019-11-26 International Business Machines Corporation Intelligent taskbar shortcut menu for webpage control
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
KR20160141614A (ko) * 2015-06-01 2016-12-09 삼성전자주식회사 전자 장치, 저장 매체 및 전자 장치에서 데이터를 표시하는 방법
US9674426B2 (en) 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
KR102519424B1 (ko) * 2015-09-25 2023-04-10 삼성메디슨 주식회사 초음파 이미지 디스플레이 방법 및 이를 위한 장치
US10133446B2 (en) 2016-03-23 2018-11-20 Microsoft Technology Licensing, Llc Content chase-ability for apps
US10637986B2 (en) 2016-06-10 2020-04-28 Apple Inc. Displaying and updating a set of application views
US20180088565A1 (en) * 2016-08-22 2018-03-29 Fisher-Rosemount Systems, Inc. Operator Display Switching Preview
KR101873655B1 (ko) * 2016-11-30 2018-07-02 엘에스산전 주식회사 모니터링 화면 표시 방법
US10795532B1 (en) 2019-03-14 2020-10-06 International Business Machines Corporation Interactive graphical user interface thumbnail
CN110262720B (zh) * 2019-06-21 2021-06-08 网易(杭州)网络有限公司 浮窗的控制方法、装置、设备和存储介质
WO2021158706A1 (en) 2020-02-03 2021-08-12 Apple Inc. Cursor integration with a touch screen user interface
CN111610912B (zh) * 2020-04-24 2023-10-10 北京小米移动软件有限公司 应用显示方法、应用显示装置及存储介质
CN114721751B (zh) * 2020-12-18 2024-06-28 广州视源电子科技股份有限公司 一种窗口截图方法、装置、电子设备及存储介质
US11175807B1 (en) * 2021-02-03 2021-11-16 Adobe Inc. Intelligent contextual video thumbnail display
CN115705229A (zh) * 2021-08-06 2023-02-17 北京小米移动软件有限公司 显示控制方法和系统、移动终端、存储介质
US11579748B1 (en) * 2022-06-13 2023-02-14 Illuscio, Inc. Systems and methods for interacting with three-dimensional graphical user interface elements to control computer operation
US11983382B2 (en) 2022-06-13 2024-05-14 Illuscio, Inc. Systems and methods for generating three-dimensional menus and toolbars to control computer operation
US11886685B1 (en) 2022-10-20 2024-01-30 Stardock Corporation Desktop container peek interface
US12086372B1 (en) * 2023-03-29 2024-09-10 Lenovo (Singapore) Pte. Ltd. Unique window preview generation
CN117348828B (zh) * 2023-09-27 2024-07-09 广东保伦电子股份有限公司 一种基于wpf的选择性投屏方法、系统、介质及设备

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4651146A (en) * 1983-10-17 1987-03-17 International Business Machines Corporation Display of multiple data windows in a multi-tasking system
US4653020A (en) * 1983-10-17 1987-03-24 International Business Machines Corporation Display of multiple data windows in a multi-tasking system
GB2191917A (en) * 1986-06-16 1987-12-23 Ibm A multiple window display system
JP2557358B2 (ja) * 1986-12-26 1996-11-27 株式会社東芝 情報処理装置
US5333256A (en) 1989-05-15 1994-07-26 International Business Machines Corporation Methods of monitoring the status of an application program
JPH0511962A (ja) * 1990-10-10 1993-01-22 Fuji Xerox Co Ltd ウインドウ管理装置
JP2957316B2 (ja) * 1990-11-20 1999-10-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 複数のソフトウェア・アプリケーションにアクセスするための方法およびシステム
JPH0580965A (ja) * 1991-09-25 1993-04-02 Nec Aerospace Syst Ltd ウインドウ表示認識方式
US5307086A (en) * 1991-10-08 1994-04-26 International Business Machines Corporation Method of implementing a preview window in an object oriented programming system
EP0605945B1 (en) * 1992-12-15 1997-12-29 Sun Microsystems, Inc. Method and apparatus for presenting information in a display system using transparent windows
US5412776A (en) * 1992-12-23 1995-05-02 International Business Machines Corporation Method of generating a hierarchical window list in a graphical user interface
US5499334A (en) * 1993-03-01 1996-03-12 Microsoft Corporation Method and system for displaying window configuration of inactive programs
US6040833A (en) * 1993-12-10 2000-03-21 International Business Machines Corp. Method and system for display manipulation of multiple applications in a data processing system
US5657463A (en) * 1994-01-19 1997-08-12 Apple Computer, Inc. Method and apparatus for positioning a new window on a display screen based on an arrangement of previously-created windows
DE69523593T2 (de) * 1994-06-17 2002-09-26 Intel Corp Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
US5546528A (en) * 1994-06-23 1996-08-13 Adobe Systems Incorporated Method of displaying multiple sets of information in the same area of a computer screen
DE69523543T2 (de) * 1994-12-13 2002-04-04 Microsoft Corp Taskbar mit Startmenü
US6072488A (en) * 1995-05-05 2000-06-06 Apple Computer, Inc. Systems and methods for replacing open windows in a graphical user interface
US5675755A (en) * 1995-06-07 1997-10-07 Sony Corporation Window system preventing overlap of multiple always-visible windows
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5712995A (en) * 1995-09-20 1998-01-27 Galileo Frames, Inc. Non-overlapping tiling apparatus and method for multiple window displays
JPH09128192A (ja) * 1995-10-26 1997-05-16 Brother Ind Ltd マルチ画面表示制御装置
US5880733A (en) * 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5841435A (en) * 1996-07-26 1998-11-24 International Business Machines Corporation Virtual windows desktop
JP3528451B2 (ja) * 1996-07-26 2004-05-17 ソニー株式会社 電子番組ガイド表示制御装置及びその方法
US5892511A (en) * 1996-09-30 1999-04-06 Intel Corporation Method for assisting window selection in a graphical user interface
US6008809A (en) * 1997-09-22 1999-12-28 International Business Machines Corporation Apparatus and method for viewing multiple windows within a dynamic window
US7346850B2 (en) * 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
JP2000105655A (ja) * 1998-09-29 2000-04-11 Nec Software Kyushu Ltd ウィンドウ内容表示方法
US8595764B2 (en) * 1999-06-25 2013-11-26 Jlb Ventures, Llc Image-oriented electronic programming guide
US7028264B2 (en) * 1999-10-29 2006-04-11 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6724403B1 (en) * 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6724406B1 (en) * 1999-11-10 2004-04-20 International Business Machines Corporation Method of controlling web applications from redirecting a client to another web address
US6806892B1 (en) * 1999-12-20 2004-10-19 International Business Machines Corporation Layer viewport for enhanced viewing in layered drawings
US6606105B1 (en) * 1999-12-22 2003-08-12 Adobe Systems Incorporated Layer enhancements in digital illustration system
US20020163545A1 (en) * 2001-05-01 2002-11-07 Hii Samuel S. Method of previewing web page content while interacting with multiple web page controls
TW501072B (en) * 2001-05-09 2002-09-01 Ulead Systems Inc Visualization process method of image file and image editor having visualization process function and the readable storage medium of computer to store program
WO2003025899A1 (en) * 2001-09-14 2003-03-27 Genesys Telecommunications Laboratories, Inc. Patch navigation utilizing smart patches as tabs with real-time status icons in a universal agent desktop application
JP2003099173A (ja) * 2001-09-21 2003-04-04 Canon Inc 表示画面制御装置
JP2003162355A (ja) * 2001-11-26 2003-06-06 Sony Corp タスクの表示切り替え方法及び携帯機器及び携帯通信機器
US7346855B2 (en) * 2001-12-21 2008-03-18 Microsoft Corporation Method and system for switching between multiple computer applications
US7010755B2 (en) * 2002-04-05 2006-03-07 Microsoft Corporation Virtual desktop manager
US7558318B2 (en) * 2002-06-11 2009-07-07 Sanyo Electric Co., Ltd. Method and apparatus for processing images, method and apparatus for recording and reproducing images, and television receiver utilizing the same
US7721216B2 (en) 2002-06-18 2010-05-18 Microsoft Corporation Visual group interface for group connectivity
JP2004219759A (ja) * 2003-01-15 2004-08-05 Chi Mei Electronics Corp 画像表示処理方法、画像表示処理装置、画像表示装置および画像表示処理システム
US7343567B2 (en) * 2003-04-25 2008-03-11 Microsoft Corporation System and method for providing dynamic user information in an interactive display
KR101130368B1 (ko) * 2003-06-02 2012-03-27 디즈니엔터프라이지즈,인크. 소비자용 비디오 플레이어를 위한 프로그램된 윈도우 제어 시스템 및 방법
US7757182B2 (en) * 2003-06-25 2010-07-13 Microsoft Corporation Taskbar media player
US7665031B2 (en) * 2004-12-08 2010-02-16 Microsoft Corporation Method and system of taskbar button interfaces
US7478326B2 (en) * 2005-01-18 2009-01-13 Microsoft Corporation Window information switching system

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
US11126333B2 (en) 2010-12-23 2021-09-21 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US10969944B2 (en) 2010-12-23 2021-04-06 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9870132B2 (en) 2010-12-23 2018-01-16 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9864494B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
RU2607272C2 (ru) * 2011-02-11 2017-01-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для обеспечения графического пользовательского интерфейса в мобильном терминале
US9569090B2 (en) 2011-02-11 2017-02-14 Samsung Electronics Co., Ltd. Method and apparatus for providing graphic user interface in mobile terminal
US9535597B2 (en) 2011-05-27 2017-01-03 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US11698721B2 (en) 2011-05-27 2023-07-11 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
RU2597522C2 (ru) * 2011-09-01 2016-09-10 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Упорядочение плиток
US10579250B2 (en) 2011-09-01 2020-03-03 Microsoft Technology Licensing, Llc Arranging tiles
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
RU2600543C2 (ru) * 2011-09-09 2016-10-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Интерфейс программирования для семантического масштабирования
RU2598333C2 (ru) * 2011-09-09 2016-09-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Группирование выбираемых плиток
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US11392288B2 (en) 2011-09-09 2022-07-19 Microsoft Technology Licensing, Llc Semantic zoom animations
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
RU2604419C2 (ru) * 2012-05-30 2016-12-10 Тэнцэнт Текнолоджи (Шеньчжэнь) Компани Лимитед Способ и устройство для выполнения операции перемещения области в таблице
US9671926B2 (en) 2013-02-22 2017-06-06 Xiaomi Inc. Method and terminal device for displaying dynamic icon
RU2617387C2 (ru) * 2013-02-22 2017-04-24 Сяоми Инк. Способ и устройство отображения динамической пиктограммы
RU2629446C2 (ru) * 2013-04-08 2017-08-29 Сяоми Инк. Способ, инструментарий и устройство для упорядочивания значков
RU2589854C2 (ru) * 2013-06-13 2016-07-10 Олег Александрович Серебренников Система создания и отображения планов
RU2665296C2 (ru) * 2014-04-01 2018-08-28 Сейко Эпсон Корпорейшн Способ двунаправленного отображения и устройство двунаправленного отображения
RU2685984C1 (ru) * 2015-07-31 2019-04-23 ЭЙЗО Корпорайшн Устройство управления отображением, устройство отображения, система отображения и программа

Also Published As

Publication number Publication date
WO2006115531A1 (en) 2006-11-02
TWI533147B (zh) 2016-05-11
CA2605601C (en) 2012-08-21
US20170322818A1 (en) 2017-11-09
US7673255B2 (en) 2010-03-02
US9733954B2 (en) 2017-08-15
JP4981032B2 (ja) 2012-07-18
MY147084A (en) 2012-10-31
RU2007138968A (ru) 2009-04-27
KR20080002847A (ko) 2008-01-04
RU2010135599A (ru) 2012-02-27
TW200638222A (en) 2006-11-01
KR101278771B1 (ko) 2013-06-25
TWI394052B (zh) 2013-04-21
US20060242602A1 (en) 2006-10-26
EP1872194B1 (en) 2017-04-26
EP2474901B1 (en) 2017-05-31
TW201227349A (en) 2012-07-01
BRPI0520186B1 (pt) 2017-11-21
JP2008538631A (ja) 2008-10-30
ES2634676T3 (es) 2017-09-28
MX2007013102A (es) 2008-01-14
EP2474901A1 (en) 2012-07-11
RU2569802C2 (ru) 2015-11-27
US20100138773A1 (en) 2010-06-03
EP1872194A4 (en) 2010-02-24
EP1872194A1 (en) 2008-01-02
CA2605601A1 (en) 2006-11-02
BRPI0520186A2 (pt) 2009-04-22

Similar Documents

Publication Publication Date Title
RU2409833C2 (ru) Интерфейс и система для манипуляции пиктограммами активных окон в администраторе окон
US7453473B2 (en) Method and apparatus for high-performance rendering and hit testing of a window tree
EP3111318B1 (en) Cross-platform rendering engine
US7689926B2 (en) Selective window exclusion for captured content
US20060248471A1 (en) System and method for providing a window management mode
US20110258534A1 (en) Declarative definition of complex user interface state changes
US20070016873A1 (en) Visual expression of a state of an application window
JP2007509420A (ja) 映像およびシーングラフインターフェイス
JP2008535083A (ja) アプリケーションウィンドウのグループ化および管理のための方法および装置
US7603624B2 (en) System and method for styling content in a graphical user interface control
US9396001B2 (en) Window management for an embedded system
JPH07271586A (ja) コンパイルされたオブジェクトにおける呼び出しの動的指定
US20070229520A1 (en) Buffered Paint Systems
CN111813404B (zh) 基于混合图形显示的应用方法、介质及客户端
JP2020204985A (ja) コンピュータプログラム、サーバ装置、端末装置、プログラム生成方法、及び方法
JPH1195969A (ja) ウィンドウシステム制御装置
JPH1027086A (ja) 表示装置
JP2004302728A (ja) コントロールエリア描画処理方法、プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH03157718A (ja) データ処理装置
JPH0317746A (ja) オブジェクトのクラス推定装置

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526