KR101099317B1 - 윈도우 관리 모드를 제공하는 시스템 및 방법 - Google Patents

윈도우 관리 모드를 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR101099317B1
KR101099317B1 KR1020077022836A KR20077022836A KR101099317B1 KR 101099317 B1 KR101099317 B1 KR 101099317B1 KR 1020077022836 A KR1020077022836 A KR 1020077022836A KR 20077022836 A KR20077022836 A KR 20077022836A KR 101099317 B1 KR101099317 B1 KR 101099317B1
Authority
KR
South Korea
Prior art keywords
application
windows
window
application windows
desktop space
Prior art date
Application number
KR1020077022836A
Other languages
English (en)
Other versions
KR20080002811A (ko
Inventor
도날드 제이. 린제이
마크 알. 리가메리
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 KR20080002811A publication Critical patent/KR20080002811A/ko
Application granted granted Critical
Publication of KR101099317B1 publication Critical patent/KR101099317B1/ko

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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels

Abstract

애플리케이션 윈도우가 타일화된 방식으로 표시될 수 있는 그래픽 사용자 인터페이스에서 윈도우를 관리하는 모드가 제공된다. 모드 호출 시에, 각각의 비활성 애플리케이션 윈도우는 축소될 수 있고, 현재의 활성 애플리케이션 윈도우로부터 떨어져서 비활성 애플리케이션 윈도우들을 설정하는 방식으로 구성될 수 있는 반면에, 활성 애플리케이션 윈도우는 전체 크기로 또는 전체 크기에 가깝게 그대로 있을 수 있으며, 데스크톱 공간 내의 중앙 위치에 놓여질 수 있다.
활성 애플리케이션 윈도우, 비활성 애플리케이션 윈도우, Z-순위, 전체 크기, 비율에 따라 축소되는 형태, 데스크톱 공간, 태스크 바

Description

윈도우 관리 모드를 제공하는 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING A WINDOW MANAGEMENT MODE}
본 발명의 실시양상은 일반적으로 운영 체제 내에서 또는 운영 체제와 함께 사용자 인터페이스 구성요소의 프리젠테이션을 관리하는 것에 관한 것이다. 더욱 구체적으로, 본 발명의 실시양상은 운영 체제 내에서 또는 운영 체제와 함께 애플리케이션 윈도우의 프리젠테이션을 관리하기 위한 동작 모드를 적용하는 방법 및 시스템에 관한 것이다.
회사직원 및 개인의 생활에서 컴퓨터의 사용이 증가한 것처럼, 컴퓨터를 더욱 쉽게 사용할 수 있기를 바라는 요구도 증가했다. 많은 운영 체제는 오늘날 애플리케이션 프로그램의 윈도우 기반 구성을 이용한다. 정보는 표시 화면 상에서 종이 몇 장 되어 보이는 것 안에 표시된다.
이와 같이, 애플리케이션 윈도우는 모든 그래픽 사용자 인터페이스(GUI) 시스템의 핵심적인 사용자 인터페이스 설비이다. 애플리케이션 윈도우들이 시스템들 상호간에 겉으로는 다르게 보일 수 있지만, 그 애플리케이션 윈도우들은 크기가 다시 정해지고 위치가 다시 정해지며, 상이한 애플리케이션과 관련된 다른 애플리케이션 윈도우들 속에서 존재하는 능력과 같은 다수의 공통 속성을 공유한다. 함께, 다수의 애플리케이션 윈도우는 서로의 위에 층을 이루고 화면 상에 동시에 나타날 수 있는데, 전형적으로 각 윈도우가 사용자에 의해 마지막으로 액세스된 순서로 표시된다.
다수의 윈도우가 동시에 열릴 때, 원하는 윈도우의 위치를 찾고, 그 윈도우를 탐색하여, 그 윈도우로 신속하게 전환하는 것은 어려울 수 있다. 예를 들어, 원하는 윈도우는 다른 열린 윈도우에 의해 부분적으로 또는 완전히 가리워질 수 있다. 또한, 원하는 윈도우는 최소화되거나 숨겨질 수 있다. 이들 시나리오는 통상적으로 윈도우 관리 문제점이라 언급될 수 있다.
윈도우 선택 인터페이스는 다양한 열린 윈도우를 통한 분류의 필요성을 최소화함으로써 그러한 윈도우 관리 문제점을 해결하는 것이 제안되어 있다. 마이크로소프트사에 의한 Windows XP 상표 운영 체제에서의 윈도우 관리 해결책은 Taskbar(태스크바)와 Alt-Tab 키 조합을 포함하는데, 그 각각은 상위 윈도우와 상이한 표현으로 열려있는 윈도우의 리스트를 나타낸다. 태스크바 내에, 각 애플리케이션 윈도우를 나타내는 제어부는 겹치지 않게 하는 방식으로 되풀이되어 표시되어 있어서, 특정 애플리케이션 윈도우가 현재 가리워져 있더라도 간접 메카니즘이 그 특정 애플리케이션 윈도우를 선택할 수 있게 한다. Alt-Tab 키보드 조합은 태스크바 제어부처럼, 사용자가 선택할 수 있는 모든 열려있고 이용가능한 애플리케이션 윈도우의 복제 리스트를 나타내는 이차 UI 설비를 호출한다. 그러나, 이들 인터페이스는 윈도우가 선택되지 않으면 사용자가 윈도우의 내용을 볼 수 없게 한다.
최근, Apple Computing, Inc.는 MAC OS X 상표 운영 체제에 엑스포제(Expose)를 도입했다. 엑스포제는 모든 열려있는 윈도우를 데스크톱 상에 섬네일(thumbnail)로서 표시하는 능력을 사용자에게 제공한다. 동작시에, 사용자가 F9 키를 누를 때, 엑스포제는 모든 열려있는 윈도우를 타일(tile)화한다. 즉, 엑스포제는 모든 열려있는 윈도우가 겹치지 않는 형태로 표시되게 할 정도의 크기로 윈도우를 축소한다. 다른 실시양상에서, 엑스포제는 특정 애플리케이션 내의 모든 열려있는 윈도우를 겹치지 않는 방식으로 표시하여 볼 수 있는 능력을 사용자에게 제공한다. 구체적으로, 사용자가 F10 키를 누르면, 엑스포제는 다른 애플리케이션과 관련된 모든 열려있는 윈도우를 회색으로 희미해지게 하면서 현재 애플리케이션의 모든 열려있는 윈도우를 겹치지 않는 형태로 타일화한다. 이것은 이전에 보이지 않은 애플리케이션 윈도우의 위치찾기 및 선택을 용이하게 하지만, 이 모드에 있는 동안 애플리케이션 윈도우와의 사용자 상호작용을 지원하지 않는다.
엑스포제는 사용자가 열려있는 윈도우들을 동시에 볼 수 있게 하지만, 다수의 윈도우가 화면 상에 타일화되어 있어서, 여전히 약간의 혼동을 초래할 수 있다. 또한, 엑스포제는 일단 사용자가 타일화된 윈도우들 중 하나를 선택하면, 사용자 인터페이스가 Z-순위 상태로 되돌아가서, 선택된 윈도우가 Z-순위의 상위에 있게 되는 일시적 상태이다.
MAC OS X 상표 운영 체제에 대한 한가지 제안된 구현에서, 최소화된 애플리케이션 윈도우를 위한 섬네일 제어부는 Dock 제어부 내에 나타내지고, 활성 애플리케이션 윈도우는 Dock 제어부가 차지하지 않은 데스크톱 공간 상에 단독으로 나타 내졌다. 열기 위한 다른 애플리케이션을 선택하기 위해, 사용자는 Dock 내의 애플리케이션 윈도우의 섬네일 제어부를 선택할 수 있었고, 시스템은 Dock 상의 그 애플리케이션 윈도우를 열고, 이전에 열린 애플리케이션 윈도우를 Dock으로 최소화했을 것이다.
사용자가 타일형 포맷으로 모든 애플리케이션 윈도우를 제공할 수 있게 하는 윈도우 관리 해결책을 제공하고, 포커스가 맞지않는 애플리케이션 윈도우의 타일화된 뷰를 유지하면서 사용자가 포커스가 맞는 윈도우와 포커스를 벗어난 윈도우를 전환할 수 있게 하는 것이 유리할 것이다.
그러므로, 애플리케이션 윈도우가 타일화될 수 있고, 타일화된 윈도우들 사이에서 포커스가 전환될 수 있어서, 사용자가 포커스가 맞는 애플리케이션 윈도우와 포커스를 벗어난 애플리케이션 윈도우를 신속하고 용이하게 전환할 수 있게 하는 설비를 제공하는 윈도우 관리 해결책을 제공할 필요가 있다.
본 발명은 사용자에 의해 언제든지 호출 또는 제거될 수 있는 새로운 동작 모드를 도입함으로써 윈도우 관리 문제를 처리한다. 한 실시양상에 따르면, 본 발명은 모든 비활성 애플리케이션 윈도우들이 현재의 활성 애플리케이션 윈도우로부터 '떨어져서 비활성 애플리케이션 윈도우들을 설정(set them aside)'하는 방식으로 크기조정될 수 있고 구성될 수 있는 방법을 제공한다. 한 구현에서, 새로운 윈도우 관리 모드를 호출하는 명령에 응답하여, 활성 애플리케이션 윈도우는 전체 크기로 또는 전체 크기에 가깝게 그대로 있을 수 있고, 비활성 애플리케이션 윈도우에 관련하여 중앙 또는 '이상적' 위치에 놓여질 수 있다.
그러한 구성에 의해 실현될 수 있는 이점은 현재 상호작용을 위해 이용가능한 활성 및 비활성 애플리케이션 윈도우를 용이하게 식별하기 위한 도구를 사용자에게 제공하는 것을 포함한다. 모든 비활성 윈도우를 언제든지 볼수 있고 이용할 수 있게 유지함으로써, 사용자는 원하는 애플리케이션 윈도우를 용이하게 식별하여 신속하게 활성화할 수 있다. 또한, 사용자는 애플리케이션 윈도우가 다른 애플리케이션 윈도우에 의해 겹쳐지거나 가리워지지 않게 하면서 다수의 애플리케이션 윈도우로 작업할 수 있다. 또한, 활성 애플리케이션 윈도우와의 사용자 상호작용은 새로운 윈도우 관리 모드가 호출되는 동안에 영향을 받지 않는다. 비활성 애플리케이션 윈도우는 그 크기가 축소되지만, 그 내용을 계속 갱신할 수 있는 한(즉, 웹 페이지를 재생하거나 비디오를 플레이하는 한) 그대로 '생존'해 있다. 사용자는 비활성 애플리케이션 윈도우가 활성 애플리케이션 윈도우로 될 때까지 그 비활성 애플리케이션 윈도우와 상호작용할 수 없다.
본 발명의 예시적인 실시예에 관한 다음의 상세한 설명뿐만 아니라 상기 요약은 청구된 발명과 관련하여 예시적으로 포함되고 제한적이지 않은 첨부 도면과 함께 읽으면 더욱 잘 이해된다.
도 1A는 본 발명의 특정 실시양상이 구현될 수 있는 범용 디지털 컴퓨팅 환경을 도시한 개략도.
도 1B 내지 1M은 본 발명의 하나 이상의 실시양상을 지원하는 범용 컴퓨터 환경을 도시한 도면.
도 2는 Z-순위 구성으로 렌더링된 다수의 애플리케이션 윈도우를 나타낸 표시 시나리오를 도시한 도면.
도 3은 본 발명의 한 실시양상에 따라 렌더링된 다수의 애플리케이션 윈도우를 나타낸 표시 시나리오를 도시한 도면.
도 4는 본 발명의 다른 실시양상에 따라 렌더링된 다수의 애플리케이션 윈도우를 나타낸 표시 시나리오를 도시한 도면.
도 5는 본 발명의 또 다른 실시양상에 따라 렌더링된 다수의 애플리케이션 윈도우를 나타낸 표시 시나리오를 도시한 도면.
도 6은 본 발명의 또 다른 실시양상에 따라 렌더링된 다수의 애플리케이션 윈도우를 나타낸 표시 시나리오를 도시한 도면.
도 7 및 8은 본 발명을 구현하는 예시적인 예제의 플로우차트를 제공한 도면.
여러가지 예시적인 실시예의 다음 설명에서, 본 발명이 실시될 수 있는 다양한 실시예의 일부를 이루면서 그 다양한 실시예가 예시적으로 도시된 첨부 도면이 참조된다. 그외 다른 실시예가 이용될 수 있으며, 본 발명의 범위를 벗어나지 않고서 구조적 및 기능적 변경이 이루어질 수 있다는 것을 이해할 것이다.
도 1A는 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명에서 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본 발명은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1A와 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1A는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매 체를 포함한다. 단지 예로서, 도 1A는 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1A에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1A에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 펜, 스타일러스 및 태블릿, 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1A에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1A는 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이의 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다. TCP/IP, 이더넷, FTP, HTTP 등과 같은 여러가지 잘 알려진 프로토콜 중의 임의의 프로토콜의 존재가 추정되고, 시스템은 사용자가 웹 기반 서버로부터 웹 페이지를 검색할 수 있게 하는 클라이언트-서버 구성으로 동작될 수 있다. 여러가지 종래의 웹 브라우저 중의 임의의 브라우저는 웹 페이지 상의 데이터를 표시하고 조작처리 하기 위해 이용될 수 있다.
프로그래밍 인터페이스(또는 더욱 단순히, 인터페이스)는 코드의 하나 이상 의 세그먼트(들)이 코드의 하나 이상의 다른 세그먼트(들)에 의해 제공된 기능과 통신하거나 그 기능을 액세스할 수 있게 하는 임의의 메카니즘, 프로세스, 프로토콜로서 간주될 수 있다. 대안적으로, 프로그래밍 인터페이스는 다른 컴포넌트(들)의 하나 이상의 메카니즘(들), 메소드(들), 함수 호출(들), 모듈(들) 등에 통신으로 연결할 수 있는 시스템의 한 컴포넌트의 하나 이상의 메카니즘(들), 메소드(들), 함수 호출(들), 모듈(들), 객체(들) 등으로서 간주될 수 있다. 앞 문장에서의 "코드의 세그먼트"라는 용어는 코드의 하나 이상의 명령어 또는 라인을 포함하고자 하는 것이고, 적용된 용어에 관계없이, 또는 코드 세그먼트들이 따로따로 컴파일되었는 지의 여부, 코드 세그먼트들이 소스, 중개자 또는 객체 코드로서 제공되었는 지의 여부, 코드 세그먼트들이 런타임 시스템 또는 프로세스에서 이용되었는 지의 여부, 그들이 동일한 또는 상이한 기계 상에 위치했는지 또는 다수의 기계에 걸쳐 분산되어 있는 지의 여부, 코드 세그먼트들에 의해 나타낸 기능이 전적으로 소프트웨어로, 전적으로 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현되었는 지의 여부에 관계없이, 예를 들어 코드 모듈, 객체, 서브루틴, 함수 등을 포함한다.
개념상, 프로그래밍 인터페이스는 일반적으로 도 1B 또는 도 1C에 도시된 바와 같이 보일 수 있다. 도 1B는 제1 및 제2 코드 세그먼트가 통신하는 관로(conduit)로서의 인터페이스 Interface1을 도시하고 있다. 도 1C는 시스템의 제1 및 제2 코드 세그먼트가 매체 M을 통해 통신할 수 있게 하는 인터페이스 객체 I1 및 I2(제1 및 제2 코드 세그먼트의 부분일 수도 있고 또는 아닐 수도 있음)를 포함 하는 것으로 인터페이스를 도시하고 있다. 도 1C에서 보면, 우리는 인터페이스 객체 I1 및 I2를 동일한 시스템의 분리된 인터페이스로서 생각할 수 있고, 우리는 또한 객체 I1 및 I2 더하기 매체 M이 인터페이스를 구성하는 것으로 생각할 수 있다. 도 1B 및 1C는 양방향 흐름, 및 각 흐름측 상의 인터페이스를 도시하고 있지만, 특정 구현에서는 한 방향으로의 정보 흐름만 있을 수도 있고(또는 후술되는 바와 같이 정보 흐름이 없을 수도 있고), 또는 한쪽에만 인터페이스 객체가 있을 수도 있다. 예제로서(제한되는 것은 아님), 애플리케이션 프로그래밍 인터페이스(API), 진입점, 메소드, 함수, 서브루틴, 원격 절차 호출 및 컴포넌트 객체 모델(COM) 인터페이스와 같은 용어는 프로그래밍 인터페이스의 정의에 포함된다.
그러한 프로그래밍 인터페이스의 양상은 제1 코드 세그먼트가 제2 코드 세그먼트로 정보(여기에서 "정보"는 가장 넓은 의미로 사용되고, 데이터, 명령, 요청 등을 포함함)를 전송하는 메소드; 및 제2 코드 세그먼트가 정보, 및 정보의 구조, 순서, 구문, 조직, 스키마, 타이밍 및 내용을 수신하는 메소드를 포함할 수 있다. 이와 관련하여, 하위 전송 매체 자체는 정보가 인터페이스에 의해 정의된 방식으로 전송되는 한, 매체가 유선이든 무선이든, 또는 이 둘의 조합이든지 간에, 인터페이스의 동작에 중요치 않을 수 있다. 어떤 상황에서는, 정보 전송이 다른 메카니즘을 통해 이루어지거나(예를 들어, 버퍼, 파일 등에 배치된 정보는 코드 세그먼트들 사이의 정보 흐름과 분리됨), 또는 하나의 코드 세그먼트가 제2 코드 세그먼트에 의해 수행된 기능을 단순히 액세스할 때처럼, 정보 전송이 존재하지 않을 수 있기 때문에, 정보는 종래의 관념으로 한 방향 또는 양방향으로 보내지지 않을 수 있다. 이러한 임의의 또는 모든 실시양상은 예를 들어, 코드 세그먼트가 느슨하게 결합된 구성의 시스템의 일부분인지 단단하게 결합된 구성의 시스템의 일부분인 지에 따라, 주어진 상황에서 중요할 수 있으므로, 이 리스트는 예시적이고 비제한적인 것으로 간주되어야 한다.
프로그래밍 인터페이스의 이러한 개념은 본 분야에 숙련된 기술자들에게 알려져 있으며, 본 발명의 상기 상세한 설명으로부터 명백하다. 그러나, 프로그래밍 인터페이스를 구현하는 다른 방식이 있으며, 특별히 제외하지 않는 한, 이들 역시 이 명세서의 뒷부분에 설명된 청구범위에 의해 포함될 수 있다. 그러한 다른 방식은 도 1B 및 1C의 극단적으로 단순화한 도면보다 더욱 정교하고 복잡한 것처럼 보일 수 있지만, 그럼에도 불구하고 그것들은 동일한 전체 결과를 달성하기 위해 유사한 함수를 수행한다. 우리는 이제 프로그래밍 인터페이스의 몇몇 예시적인 대안 구현을 설명할 것이다.
A. 분할( factoring )
한 코드 세그먼트에서 다른 코드 세그먼트로의 통신은 통신을 다수의 별개의 통신들로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 1D 및 1E에 개략적으로 도시된다. 도시된 바와 같이, 몇몇 인터페이스는 나눌 수 있는 기능 세트와 관련하여 설명될 수 있다. 그러므로, 도 1B 및 1C의 인터페이스 기능은 우리가 수학적으로 24, 또는 2x2x3x2를 제공할 수 있는 것처럼, 동일한 결과를 달성하도록 분할될 수 있다. 따라서, 도 1D에 도시된 바와 같이, 인터페이스 Interface1에 의해 제공된 함수는 동일한 결과를 달성하면서, 인터페이스의 통신을 다수의 인터페이스 Interface1A, Interface1B, Interface1C 등으로 변환하도록 세분화될 수 있다. 도 1E에 도시된 바와 같이, 인터페이스 I1에 의해 제공된 함수는 동일한 결과를 달성하면서, 다수의 인터페이스 I1a, I1b, I1c 등으로 세분화될 수 있다. 이와 마찬가지로, 제1 코드 세그먼트로부터 정보를 수신하는 제2 코드 세그먼트의 인터페이스 I2는 다수의 인터페이스 I2a, I2b, I2c 등으로 분할될 수 있다. 분할시에, 제1 코드 세그먼트와 함께 포함된 인터페이스의 수는 제2 코드 세그먼트와 함께 포함된 인터페이스의 수에 일치할 필요는 없다. 도 1D 및 1E의 어느 경우든, 인터페이스 Interface1 및 I1의 함수 정신은 각각 도 1B 및 1C에서와 동일하게 유지된다. 인터페이스의 분할은 또한 결합적인(associative), 교환가능한(commutative), 그리고 다른 수학적인 특성을 따를 수 있어서, 분할이 인식하기 어려울 수 있다. 예를 들어, 동작의 순서화는 중요치 않을 수 있고, 따라서 한 인터페이스에 의해 실행된 함수는 코드 또는 인터페이스의 다른 부분에 의해, 그 인터페이스에 도달하기 전에 또한 실행될 수 있고, 또는 시스템의 다른 컴포넌트에 의해 수행될 수 있다. 게다가, 프로그래밍 분야에 숙련된 기술자는 동일한 결과를 달성하는 상이한 함수 호출을 만드는 여러가지 방식이 있다는 것을 이해할 수 있다.
B. 재정의( redefinition )
몇몇 경우에, 의도한 결과를 여전히 달성하면서 프로그래밍 인터페이스의 소정의 애스펙트(aspect)(예를 들어, 파라미터)를 무시, 추가 또는 재정의하는 것이 가능할 수 있다. 이것은 도 1F 및 1G에 도시된다. 예를 들어, 도 1B의 인터페이스 Interface1이 3개의 파라미터, 즉 입력, 정밀도 및 출력을 포함하고, 제1 코드 세그먼트에서 제2 코드 세그먼트로 발송되는 호출인 함수 호출 스퀘어(입력, 정밀도, 출력)을 포함한다고 하자. 중간 파라미터 정밀도가 주어진 시나리오에 관계없으면, 도 1F에 도시된 바와 같이, 오히려 다행스럽게 무시될 수 있고, 또는 심지어 의미없는(이 상황에서) 파라미터로 대체될 수 있다. 우리는 또한 관계없는 추가 파라미터를 추가할 수 있다. 여하튼, 입력이 제2 코드 세그먼트에 의해 제곱(square)된 후에 출력이 반환되지 않는 한, 제곱의 기능은 달성될 수 있다. 정밀도는 컴퓨팅 시스템의 약간의 다운스트림 또는 그외 다른 부분에 대한 의미있는 파라미터로 괜찮을 수 있지만; 일단 정밀도가 제곱을 계산하는 한정된 목적에 필요하지 않다고 인식되면, 그것은 교체되거나 무시될 수 있다. 예를 들어, 유효한 정밀도 값을 보내는 대신에, 생일과 같은 의미없는 값이 결과에 나쁜 영향을 미치지 않고 보내질 수 있다. 이와 마찬가지로, 도 1G에 도시된 바와 같이, 인터페이스 I1은 인터페이스 I1'로 교체되어, 파라미터를 무시하거나 또는 파라미터를 인터페이스에 추가하도록 재정의된다. 인터페이스 I2는 이와 유사하게 인터페이스 I2'로 재정의되어, 불필요한 파라미터, 또는 다른 곳에서 처리될 수 있는 파라미터를 무시하도록 재정의될 수 있다. 여기에서 요점은, 몇몇 경우에, 프로그래밍 인터페이스가 소정의 목적에 필요하지 않은 파라미터들과 같은 애스펙트들을 포함할 수 있으므로, 그것들은 무시되거나 재정의될 수 있고, 또는 다른 목적을 위해 다른 곳에서 처리될 수 있다는 것이다.
C. 인라인 코딩(inline coding)
또한, 2개의 분리된 코드 모듈들 사이의 "인터페이스"가 형태를 바꿀 정도로 그 2개의 분리된 코드 모듈의 기능의 일부 또는 전부를 통합하는 것이 가능할 수 있다. 예를 들어, 도 1B 및 1C의 기능은 각각 도 1H 및 1I의 기능으로 변환될 수 있다. 도 1H에서, 도 1B의 이전의 제1 및 제2 코드 세그먼트는 그들 둘 다를 포함하는 하나의 모듈로 통합된다. 이 경우에, 코드 세그먼트는 여전히 서로 통신할 수 있지만, 인터페이스는 단일 모듈에 더욱 적합한 형태로 적응될 수 있다. 그러므로, 예를 들어, 형식적인 Call 및 Return 문장은 더 이상 필요하지 않을 수 있지만, 인터페이스 Interface1에 따르는 유사한 처리 또는 응답(들)은 여전히 유효할 수 있다. 이와 마찬가지로, 도 1I에 도시된 바와 같이, 도 1C로부터의 인터페이스 I2의 일부(또는 전부)는 인터페이스 I1"를 형성하기 위해 인터페이스 I1 내로 인라인식으로 기입될 수 있다. 도시된 바와 같이, 인터페이스 I2는 I2a와 I2b로 나누어지고, 인터페이스 부분 I2a는 인터페이스 I1"를 형성하기 위해 인터페이스 I1과 함께 인라인 코딩되었다. 구체적인 예를 위해, 제2 코드 세그먼트에 의해 (제곱하기 위해) 입력으로 보낸 값을 처리한 후에, 제곱한 결과를 다시 출력으로 보내는 인터페이스 I2에 의해 수신된 함수 호출 스퀘어(입력, 출력)을 도 1C로부터의 인터페이스 I1이 수행하는 것을 생각해보자. 그러한 경우에, 제2 코드 세그먼트에 의해 수행된 처리(입력 제곱)는 인터페이스에 대한 호출없이 제1 코드 세그먼트에 의해 수행될 수 있다.
D. 분리(divorce)
한 코드 세그먼트에서 다른 코드 세그먼트로의 통신은 통신을 다수의 별개의 통신들로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 1J 및 1K에 개략적으 로 도시된다. 도 1J에 도시된 바와 같이, 중간 웨어의 하나 이상의 부분(들)(이들이 오리지널 인터페이스로부터의 기능 및/또는 인터페이스 함수를 분리하기 때문에 분리 인터페이스(들)이라 함)은 상이한 인터페이스, 이 경우에 인터페이스 Interface2A, Interface2B 및 Interface2C에 적합하게 하기 위해, 제1 인터페이스 Interface1 상의 통신들을 변환하여 제공된다. 이것은 예를 들어, Interface1 프로토콜에 따라, 이를테면 운영 체제와 통신하도록 설계된 애플리케이션의 설치된 베이스가 있는 경우에 행해질 수 있는데, 이때 운영 체제는 상이한 인터페이스, 이 경우에 인터페이스 Interface2A, Interface2B 및 Interface2C를 사용하도록 변경된다. 요점은 제2 코드 세그먼트에 의해 사용된 오리지널 인터페이스가 제1 코드 세그먼트에 의해 사용된 인터페이스와 더 이상 호환할 수 없을 정도로 변경되어서, 중개자가 기존의 인터페이스와 새로운 인터페이스를 호환할 수 있게 하기 위해 사용된다는 점이다. 이와 마찬가지로, 도 1K에 도시된 바와 같이, 제3 코드 세그먼트는 인터페이스 I1로부터 통신을 수신하기 위한 분리 인터페이스 DI1이 도입될 수 있고, 예를 들어, DI2와 작업하지만 동일한 기능적 결과를 제공하도록 재설계된 인터페이스 I2a 및 I2b에 인터페이스 기능을 전송하기 위한 분리 인터페이스 DI2가 도입될 수 있다. 이와 마찬가지로, DI1 및 DI2는 동일한 또는 유사한 기능적 결과를 제공하면서, 도 1C의 인터페이스 I1 및 I2의 기능을 새로운 운영 체제로 변환하기 위해 함께 작업할 수 있다.
E. 재기입(rewriting)
또 다른 가능한 변형은 인터페이스 기능을, 동일한 전체 결과를 달성하는 다 른 어떤 것으로 대체하기 위해 코드를 동적으로 다시 쓰는 것이다. 예를 들어, 중간 언어(예를 들어, Microsoft IL, Java ByteCode 등)로 나타낸 코드 세그먼트가 (.Net 프레임워크, Java 런타임 환경, 또는 다른 유사한 런타임 유형 환경에 의해 제공된 것과 같은) 실행 환경에서 JIT(Just-in-Time) 컴파일러 또는 해석기에 제공되는 시스템이 있을 수 있다. JIT 컴파일러는 통신을 제1 코드 세그먼트에서 제2 코드 세그먼트로 동적으로 변환하도록, 즉 제2 코드 세그먼트(오리지널 또는 상이한 제2 코드 세그먼트)에 의해 요구될 수 있는 상이한 인터페이스에 적합하게 하도록 기입될 수 있다. 이것은 도 1L 및 1M에 도시된다. 도 1L에서 알 수 있는 바와 같이, 이 방법은 상술된 분리 시나리오와 유사하다. 그것은 예를 들어, 애플리케이션의 설치된 베이스가 Interface1 프로토콜에 따라 운영 체제와 통신하도록 설계되는 경우에 행해질 수 있는데, 이때 운영 체제는 상이한 인터페이스를 사용하기 위해 변경된다. JIT 컴파일러는 설치된-베이스 애플리케이션으로부터 운영 체제의 새로운 인터페이스로 가는 중에 통신을 적합하게 하기 위해 사용될 수 있다. 도 1M에 도시된 바와 같이, 인터페이스(들)을 동적으로 재기입하는 이 방법은 또한 인터페이스(들)을 동적으로 분할하거나 그렇지 않으면 변경하기 위해 적용될 수 있다.
또한 주목할 점은 대안적인 실시예를 통해 인터페이스와 동일하거나 유사한 결과를 달성하는 상술된 시나리오가 여러가지 방식으로, 즉 직렬 및/또는 병렬로 결합되거나, 또는 다른 개입(intervening) 코드와 결합될 수 있다는 것이다. 그러므로, 상술된 대안적인 실시예는 상호 배타적이지 않고, 도 1B 및 1C에서 나타낸 일반 시나리오와 동일하거나 대등한 시나리오를 생성하기 위해 혼합되고 매칭되며 결합될 수 있다. 또한 주목할 점은 프로그램 구조체에서와 같이, 여기에서 설명되지 않을 수도 있지만, 그럼에도 불구하고 본 발명의 정신 및 범위에 의해 나타내지는 인터페이스의 동일하거나 유사한 기능을 달성하는 다른 유사한 방식이 있다는 것이고, 즉 주목할 점은 그것이 최소한 부분적으로, 인터페이스 값의 기초가 되는 인터페이스에 의해 나타낸 기능이고, 그 인터페이스에 의해 가능하게 된 유리한 결과라는 것이다.
예시적인 실시예
도 2는 서로 겹치는 다수의 열린 윈도우가 있는 표시 시나리오(200)를 도시하고 있다. 다양한 윈도우(202, 204, 206, 208 및 210)는 Z-순위 방향(Z-order orientation)으로 표시된다. 본 분야에 숙련된 기술자들이라면, 윈도우 방향의 Z-순위는 본 분야에 매우 잘 알려져 있다는 것을 이해할 것이다. 도 2에서, 윈도우(202)는 윈도우(204, 206, 208 및 210)보다 Z-순위가 높다. 윈도우(204)는 윈도우(206, 208 및 210)보다 Z-순위가 높다. 윈도우(206)는 윈도우(208 및 210)보다 Z-순위가 높다. 윈도우(208)는 윈도우(210)보다 Z-순위가 높다. 윈도우(210)는 이 예에서 Z-순위의 하위에 있다. 여기에서 사용될 때, "방향"이라는 용어는 윈도우의 크기 또는 모양, 및 최소한 2개의 윈도우들 사이 또는 그 윈도우들 주위의 공유된 공통 테두리와 같이, 윈도우 또는 윈도우 그룹의 시각적인 외관에 대한 조정을 포함하는 것으로 여기에서 정의된다.
본 발명을 위해, "데스크톱 공간"은 애플리케이션 프로그램에 대응하는 윈도 우, 즉 애플리케이션 윈도우의 디스플레이를 참작한 표시 영역이다. 도 2에서의 데스크톱 공간(201)은 그러한 예를 제공한다. 디스플레이의 하부에 있는 태스크바(212)는 눈에 보일 수도 있고 최소화될 수도 있는 현재 사용중인 윈도우를 나타낸다. 태스크바는 활성화, 이동, 숨기기 및 최소화와 같이 윈도우를 열거하여 윈도우의 조작처리를 가능하게 하기 위해 사용된 온-스크린 윈도우 원격 제어부의 특정 구현이다. 데스크톱 공간은 태스크바와 같은 디스플레이 상의 제어부와 분리되고 겹치지 않는다는 것을 알 수 있을 것이다.
윈도우(202)는 태스크바 버튼(214)으로 표시될 수 있다. 윈도우(204)는 태스크바 버튼(216)으로 표시될 수 있다. 윈도우(206)는 태스크바 버튼(218)으로 표시될 수 있다. 윈도우(208)는 태스크바 버튼(220)으로 표시될 수 있다. 윈도우(210)는 태스크바 버튼(222)으로 표시될 수 있다. 태스크바 버튼(224, 226 및 228)은 숨겨진 또는 최소화된 윈도우의 애플리케이션을 나타낸다. Z-순위에 있는 하나의 애플리케이션 윈도우는 Z-순위에 있는 하나 이상의 애플리케이션 윈도우가 본 애플리케이션 윈도우를 완전히 가릴 때 숨겨질 수 있다. 또한, 애플리케이션 윈도우는 선정된 비활성 시간 후에 자동으로 숨겨질 수 있다. 예를 들어, 사용자가 30분동안 애플리케이션 윈도우와 상호작용하지 않았으면, 그 애플리케이션 윈도우는 데스크톱 공간(201)에서 제거될 수 있지만, 애플리케이션 윈도우에 대응하는 태스크바 버튼(214)을 통해 여전히 사용자에게 액세스가능하다. 애플리케이션 윈도우는 사용자 명령에 응답하여 최소화될 수 있다. 도 2의 예에 도시된 바와 같이, 5개의 윈도우가 데스크톱 공간(201)에 열려 있는 것으로 도시되지만, 3개의 숨 겨진 또는 최소화된 윈도우를 포함한 8개의 윈도우는 태스크바(212) 상에 시각적으로 표현된다. 태스크바 버튼 순서는 대응하는 윈도우가 처음 열린 순서를 좌측에서 우측으로(도시되지 않음) 나타낼 수 있다.
도 2에서의 표시 시나리오(200)는 그래픽 사용자 인터페이스 시스템이 갖는 공통적인 문제점을 나타낸다. 도 2에서, 최소한 애플리케이션 윈도우(204, 206, 208 및 210)는 Z-순위에서 그들 위에 위치한 하나 이상의 다른 애플리케이션 윈도우에 의해 부분적으로 가리워진다. 이와 같이, 하위 애플리케이션 윈도우의 내용 및 접근성은 식별하기 어려울 수 있다.
본 발명의 실시양상에 따르면, 윈도우 관리를 위한 새로운 동작 모드가 도입된다. 소정의 실시양상에서, 새로운 모드는 사용자에 의해 언제든지 호출되거나 제거될 수 있다. 예를 들어, 사용자는 모드를 호출하거나 활성화하기 위해, 마찬가지로 모드를 비활성화하기 위해, 키보드 또는 마우스 명령과 같은 명령을 내릴 수 있다. 한 실시양상에서, 새로운 윈도우 관리 동작 모드는 표시 시나리오(200)로부터 호출될 수 있다. 이 설명을 위해, 새로운 동작 모드는 도 2에 도시된 표시 시나리오(200)로부터 호출된 것처럼 설명될 것이다. 모드는 언제든지 다수의 상이한 표시 시나리오로부터 호출될 수 있다는 것을 알 수 있을 것이다. 대안적으로, 새로운 윈도우 관리 동작 모드는 디폴트 모드로서 구성될 수 있다. 윈도우 관리 모드의 호출은 애플리케이션 윈도우 내용 및 제어부(즉, 버튼 및 텍스트 필드)와의 전형적인 사용자 상호작용에 영향을 주지 않을 수 있다. 최소한 몇몇 실시양상에서, 사용자는 이 새로운 동작 모드 동안에, 자신이 표시 시나리오(200)에서의 애플 리케이션 윈도우로 행했을 수 있는 모든 작업을 행할 수 있다.
몇몇 실시양상에 따르면, 모드는 비활성 윈도우들의 프리젠테이션을 관리하는 방법을 제공하는데, 비활성 애플리케이션 윈도우들은 크기가 축소되고, 현재의 활성 애플리케이션으로부터 '떨어져서 비활성 애플리케이션 윈도우들을 설정'하는 방식으로 구성된다. 본 발명을 위해, "축소(scaled down)"라는 용어는 비활성 애플리케이션 윈도우들을 활성 애플리케이션 윈도우와 충분히 구별하기 위한 크기 감소를 의미하는 것으로 정의될 수 있는데, 예를 들어 비활성 애플리케이션 윈도우들은 크기가 50% 이상 감소될 수 있다. 크기조정의 정도는 비활성 애플리케이션 윈도우가 활성 애플리케이션 윈도우로부터 명백하게 드러날 수 있을 정도이지만, 축소된 애플리케이션 윈도우가 인식 불가능할 정도로 과감하지는 않다. 크기조정의 정도는 미리 설정될 수 있고, 또는 비활성 애플리케이션 윈도우의 수에 의존하여 선정된 범위에 속할 수 있으며, 또는 비활성 애플리케이션 윈도우에 의존하는 어떤 다른 함수일 수 있다. 소정의 실시양상에서, 크기조정은 사용자가 축소된 애플리케이션 윈도우를 식별하는 것을 돕기 위해 상대 애스펙트 비를 유지하도록 행해지는 것이 바람직하다.
그러한 구성에 의해 실현될 수 있는 이점은 상호작용을 위해 현재 이용가능한 활성 및 비활성 애플리케이션 윈도우를 용이하게 식별하는 설비를 사용자에게 제공하는 것을 포함한다. 모든 비활성 윈도우를 언제든지 볼 수 있고 이용할 수 있게 유지함으로써, 사용자는 원하는 애플리케이션 윈도우를 용이하게 식별하고 신속하게 활성화할 수 있다. 또한, 사용자는 어떤 애플리케이션 윈도우도 다른 애플 리케이션 윈도우에 의해 겹쳐지거나 가리워지지 않게 하면서 다수의 애플리케이션 윈도우를 바라볼 수 있고 또는 그러한 다수의 애플리케이션 윈도우로 작업할 수 있다.
몇몇 실시양상에 따르면, 동작 모드 호출시에, 활성 애플리케이션 윈도우는 전체 크기로 또는 전체 크기에 가깝게 렌더링되고, 비활성 애플리케이션 윈도우와 관련하여 데스크톱 공간 상의 한 위치에 놓일 수 있다. 소정의 실시양상에서, 그 위치는 이용가능한 데스크톱 공간, 활성 애플리케이션 윈도우의 크기 및 총 윈도우의 수에 기초하여 컴퓨터 시스템에 의해 동적으로 결정될 수 있다. 이 경우에, 시스템은 "이상적" 위치를 결정하는 것으로 간주될 수 있다. 대안적으로, 위치는 사용자에 의해 사전구성될 수 있다. 본 발명을 위해, "전체 크기"라는 말은 모드를 호출하기 전의 애플리케이션 윈도우의 크기를 나타내고, "전체 크기에 가깝게"라는 말은 전체 크기의 최소한 80%를 나타내고, 전체 크기보다 클 수도 있다.
동작 관점에서, 한 실시양상에 따르면, 모드의 호출은 애플리케이션 윈도우의 근본적인 기능에 영향을 미치지 않는다. 예를 들어, 활성 애플리케이션 윈도우와의 사용자 상호작용은 모드가 호출될 때 영향을 받지 않을 것이다. 비활성 애플리케이션 윈도우의 크기가 축소될 수 있지만, 그들은 여전히 "생존"해 있고, 그 내용이 계속 갱신된다(즉, 웹 페이지를 재생하거나 비디오를 플레이한다). 그러나, 몇몇 실시양상에서, 비활성 애플리케이션 윈도우와의 사용자 상호작용은 그 애플리케이션 윈도우가 활성으로 될 때까지 발생하지 않는다.
본 발명의 다른 실시양상은 사용자가 비활성 애플리케이션 윈도우를 선택하 는 것에 응답하여 활성 애플리케이션 윈도우와 위치를 바꿈으로써 비활성 애플리케이션 윈도우가 활성 윈도우로 될 수 있게 한다. 이들 실시양상에서, 비활성 애플리케이션 윈도우는 선택시에, 전체 크기로 또는 전체 크기에 가깝게 다시 크기조정되고, 크기가 축소된 이전-활성 애플리케이션 윈도우와 상대 위치를 교환한다. 이 동작은 Z-순위가 활성 애플리케이션보다 낮은 비활성 애플리케이션 윈도우를 선택하는 공지된 동작과 다소 유사한데, 비활성 애플리케이션 윈도우는 Z-순위가 최상위인 윈도우로 되어 활성으로 된다.
도 3-6은 상술된 실시양상들 중의 몇 개를 설명하기 위해 사용될 표시 시나리오를 도시하고 있다. 도 3과 관련하여, 도 2의 표시 시나리오(200)로부터의 윈도우 관리 모드의 호출은 표시 시나리오(300)가 생기게 한다. 윈도우 관리 모드의 호출은 (Win-Tab 키보드와 같은) 키보드 입력, 음성 명령 또는 다른 유형의 사용자 입력을 나타내는 입력 제어부의 사용자 선택과 같은 명령에 응답하여 발생할 수 있다. 애플리케이션 윈도우는 애니메이션에 의해 표시 시나리오(200)에서 표시 시나리오(300)로 전환될 수 있다.
모드의 호출에 응답하여, 모든 비활성 애플리케이션 윈도우는 표시되든지, 숨겨지든지, 또는 최소화되든지 간에, 크기조정될 수 있고, 모든 윈도우가 눈에 보이고, 어떤 윈도우도 겹치지 않도록 위치설정될 수 있다. 활성 애플리케이션 윈도우는 전체 크기로 또는 전체 크기에 가깝게 렌더링되고, 예를 들어 축소된 비활성 애플리케이션 윈도우의 표시를 수용하도록, 데스크톱 공간(201) 내에 다시 위치설정될 수 있다. 도 3과 관련하여, 활성 애플리케이션 윈도우(202)는 도 2에서 활성 이었고 Z-순서가 상위인 동일한 애플리케이션 윈도우이다. 축소된 형태로 표현된 비활성 애플리케이션 윈도우는 숨겨지거나 최소화되었고 도 2의 태스크바 버튼(224, 226 및 228)에 대응한 애플리케이션 윈도우(230, 232 및 234)뿐만 아니라 애플리케이션 윈도우(204, 206, 208 및 210)를 포함하여 도 2의 데스크톱 공간(201)에서 최소한 부분적으로 보였던 각 애플리케이션 윈도우를 포함한다. 도 3에서, 표시 시나리오(300)는 이 프리젠테이션 스타일이 단지 예시적인 것이긴 하지만, 태스크바 제어부(212) 위의 데스크톱 공간(201)에 일렬로 제공된 비활성 애플리케이션 윈도우를 보여준다.
본 발명의 몇몇 실시양상에서, 모드 호출 시에, 활성 애플리케이션 윈도우는 선정된 위치, 또는 현재의 조건에 기초하여 결정된 위치에 다시 놓일 수 있다. 현재의 조건은 그 중에서 특히, 비활성 애플리케이션 윈도우의 수, 비활성 애플리케이션 윈도우의 크기조정의 정도, 축소된 윈도우가 모드를 호출하는 명령에 응답하여 제공될 데스크톱 공간에서의 위치, 화면의 방향(예를 들어, 세로방향), 및 데스크톱 공간의 총면적을 포함할 수 있다. 일반적으로 말하자면, 알고리듬은 활성 애플리케이션 윈도우의 위치설정을 결정하는 상술된 조건들 중의 하나 이상을 고려하기 위해 사용될 수 있다. 몇몇 실시양상에서, 활성 애플리케이션 윈도우는 데스크톱 공간의 테두리 및 비활성 애플리케이션 윈도우가 제공될 위치에 기초하여 이용가능한 데스크톱 공간의 가운데에 놓일 수 있다. 도 3은 그러한 중앙 배치로 활성 애플리케이션 윈도우(202)를 나타내고 있다. 대안적으로, 활성 애플리케이션 윈도우가 제공되는 위치는 사용자에 의해 사전구성될 수 있고, 또는 사용자는 활성 애 플리케이션 윈도우가 놓이는 곳에 영향을 미치는 파라미터를 선택할 수 있다.
새로운 모드의 호출 다음에, 사용자는 전형적인 방식으로 활성 애플리케이션 윈도우와 여전히 계속 상호작용할 수 있다. 최소한 한 실시양상에서, 윈도우 또는 제어부 상호작용은 새로운 윈도우 관리 모드의 호출에 의해 어떤 영향도 받지 않는다. 또한, 소정의 실시양상에서, 윈도우 관리 모드는 모드를 호출하기 위해 설명된 것과 유사한 명령과 같은 명령을 사용하여 오프로 토글될 수 있다. 모드가 표시 시나리오(300)로부터 오프로 토글될 때, 표시 시나리오는 표시 시나리오(200)로 복귀할 수 있다. 대안적으로, 이전에 최소화되거나 숨겨진 비활성 애플리케이션 윈도우는 Z-순위로 데스크톱 공간에서 렌더링될 수 있다. 물론, 새로운 동작 모드에서 애플리케이션 윈도우와의 상호작용은 애플리케이션 윈도우가 데스크톱 공간(201)에서 렌더링되는 방법 및 렌더링되는 지의 여부, 및 모드가 오프로 토글될 때 애플리케이션 윈도우가 놓이는 Z-순위의 위치에 영향을 줄 수 있다.
축소된 비활성 애플리케이션 윈도우의 가로줄로부터의, 또는 도 3의 그 대응하는 태스크바 버튼으로부터의 비활성 애플리케이션 윈도우의 선택은 그 윈도우를 활성 애플리케이션 윈도우(202)로 바꾼다. 그러므로, 포인팅 장치를 통해서와 같은 사용자의 명령 발행, 축소된 비활성 애플리케이션 윈도우(206)의 선택, 또는 비활성 애플리케이션 윈도우(206)에 대응하는 태스크바 버튼(218)의 선택은 비활성 애플리케이션 윈도우(206)와 활성 애플리케이션 윈도우(202)가 도 4에 도시된 바와 같이 데스크톱 공간(201)에서 상대 위치를 서로 바꾸게 한다. 이 경우에, 비활성 애플리케이션 윈도우(206)는 활성 애플리케이션 윈도우로 되고, 이전 활성 애플리 케이션 윈도우(202)가 차지한 것과 동일한 상대 위치에서 전체 크기로 또는 전체 크기에 가깝게 렌더링된다. 또한, 애플리케이션 윈도우(202)는 비활성 애플리케이션 윈도우로 되고, 데스크톱 공간(201) 내에서 비활성 애플리케이션 윈도우의 가로줄에 축소된 형태로 렌더링된다. 상대 위치의 교환은 한 위치에서 다른 위치로의 애니메이션에 의한 애플리케이션 윈도우 전환으로 실행될 수 있다. 예를 들어, 동시에, 비활성 애플리케이션 윈도우가 활성 애플리케이션 윈도우로 대체하기 위해 커질 수(확대될) 있는 반면, 활성 애플리케이션 윈도우가 이전-비활성 애플리케이션 윈도우로 대체하기 위해 줄어든다(축소된다). 도 3 및 4와 관련하여 암시적으로 설명된 바와 같이, 본 발명의 실시양상은 사용자가 상호작용을 위한 애플리케이션 윈도우를 선택할 수 있는 태스크바(212)와 분리되어 떨어져있는 비활성 애플리케이션 윈도우를 위한 전용 설비를 제공한다.
비활성 애플리케이션 윈도우는 데스크톱 공간(201)의 상부에서 가로줄로 수평 방향으로, 또는 도 5에 도시된 바와 같이 데스크톱 공간의 한쪽 가장자리에서 아래쪽 세로줄로 수직 방향으로, 세로줄과 가로줄의 조합으로, 또는 사용자가 활성 애플리케이션 윈도우 및 각각의 비활성 애플리케이션 윈도우를 용이하게 식별할 수 있게 하는 임의의 다른 방향으로 등과 같이 상이한 프리젠테이션 스타일로 제공될 수 있다는 것을 알 수 있을 것이다. 한 실시양상에 따르면, 사용자가 2개의 표시 모니터를 갖고 있는 경우에, 활성 애플리케이션 윈도우는 한 표시 화면 상에 렌더링될 수 있고, 비활성 애플리케이션은 축소되어, 제2 표시 화면 상에 렌더링될 수 있다. 상이한 크기와 방향의 애플리케이션 윈도우를 수용하기 위해, 비활성 애플 리케이션 윈도우의 프리젠테이션을 관리하는 설비는 모든 윈도우가 데스크톱 공간(201)에 확실히 남아있을 수 있게 하기 위해 집합적으로 모두 크기조정할 수 있고, 또는 개별적으로 윈도우의 위치를 다시 설정할 수 있다. 다수의 비활성 윈도우가 포함되는 경우에, 활성 애플리케이션 윈도우를 아래에, 하지만 애플리케이션 윈도우의 전체 크기에 가깝게 제공하는 것이 적절할 수 있다. 사용자는 도 4와 같은 프리젠테이션 스타일(예를 들어, 수평 방향)로 있을 때 도 5에서와 같은 프리젠테이션 스타일(예를 들어, 수직 방향)로 변경하기 위한 명령을 내릴 수 있다는 것을 알 수 있을 것이다. 교호 프리젠테이션 스타일 사이의 그러한 변경은 애니메이션된 전환에 의해 발생할 수 있다. 또한, 활성 애플리케이션 윈도우(206)는 도 4와 5 사이에서 나타낸 바와 같이, 프리젠테이션 스타일이 데스크톱 공간(201)과 관련하여 더욱 중앙 위치에 있도록 바뀔 때 상대 위치를 변경할 수 있다.
본 발명의 다른 실시양상에 따르면, 추가 애플리케이션 윈도우는 비활성 애플리케이션 윈도우의 리스트를 관리하는 설비로부터 제거될 수 있다. 다수의 열려있는 애플리케이션 윈도우의 관리에 익숙한 사용자, 또는 다수의 열려있는 애플리케이션 윈도우의 능력을 (즉, 드래그 및 드롭 작업을 위해) 이용하고 싶어하는 사용자의 편의를 도모하기 위해, 새로운 모드는 추가 애플리케이션 윈도우가 활성 애플리케이션 윈도우와 함께 포함될 수 있게 할 수 있다. 이 경우에, 비활성 애플리케이션 윈도우는 축소된 비활성 애플리케이션 윈도우의 리스트에서 제거될 수 있고, 대신에 활성 애플리케이션 윈도우가 갖는 전체 크기로 또는 전체 크기에 가깝게 렌더링될 수 있다. 이 실시양상은 애플리케이션 윈도우 관리 문제점을 다시 끌 어들이지만, 그것은 더 작고 더욱더 관리할 수 있는 애플리케이션 윈도우 세트로 사용자가 제어하여 행하는 것이다.
이 구현의 예는 도 6과 관련하여 설명될 것이다. 도 6에 따르면, 사용자는 비활성 애플리케이션 윈도우 위를 맴돌면서 행하는 우측 클릭, 또는 키보드 입력과 같은 특정 명령을 내림으로써, 활성 애플리케이션 윈도우가 갖는 전체 크기로 또는 전체 크기에 가깝게 렌더링될 추가 윈도우를 식별할 수 있다. 도 6의 예에서, 애플리케이션 윈도우(232)는 활성 애플리케이션 윈도우였고, 설비에 의해 관리된 비활성 애플리케이션 윈도우의 리스트에서 제거되도록 애플리케이션 윈도우(234)를 선택하는 사용자 명령에 응답할 때, 애플리케이션 윈도우(234)는 전체 크기로 또는 전체 크기에 가깝게 렌더링되었고, 이전 활성 애플리케이션 윈도우(232)에 겹치는 활성 애플리케이션 윈도우로 되었다. 그 다음, 사용자는 전체 크기의 또는 전체 크기에 가까운 2개의 애플리케이션 윈도우로 드래그 및 드롭 동작과 같은 2개의 윈도우를 필요로 하는 동작을 수행할 수 있다. 이 경우에, 사용자는 도 2의 데스크톱 공간(201)에서 애플리케이션 윈도우와 상호작용할 수 있는 것과 동일한 방식으로 애플리케이션 윈도우(232 및 234)와 상호작용할 수 있다. 예를 들어, 애플리케이션 윈도우(232)의 선택은 그 윈도우를 애플리케이션 윈도우(234)와 겹쳐서 Z-순위의 상위로 이동시킬 수 있다. 다른 비활성 애플리케이션 윈도우는 특정 명령을 사용함으로써 이 그룹에 추가될 수 있다. 이 특정 명령은 오프로 토글될 수 있고, 그 경우에 포커스가 맞지 않는 각 애플리케이션 윈도우는 비활성 애플리케이션 윈도우의 설비 리스트에 남아있는 다른 비활성 애플리케이션 윈도우와 함께 축소된 형태로 제공될 수 있다.
사용자가 도 3과 관련하여 설명한 것과 유사하게 도 6에서의 비활성 애플리케이션 윈도우(230)를 선택하는 정상 선택 명령을 내렸으면, 선택된 비활성 애플리케이션 윈도우(206)는 데스크톱 공간(201) 내에서 상대 위치를 애플리케이션 윈도우(234)와 교환했을 것이고, 활성 애플리케이션 윈도우로 되어 애플리케이션 윈도우(232)와 겹쳤을 것이다.
도 7은 본 발명의 예시적인 구현에 관련된 단계를 도시한 플로우차트를 제공한다. 단계(701)에서, 운영 체제는 새로운 윈도우 관리 모드를 호출하기 위한 명령을 수신한다. 단계(703)에서, 활성 애플리케이션 윈도우는 전체 크기로 또는 전체 크기에 가깝게 렌더링되고, 단계(705)에서, 비활성 애플리케이션 윈도우는 활성 애플리케이션 윈도우에서 떨어져서 설정되고, 축소된 형태로 제공되는데, 애플리케이션 윈도우들의 어느 것도 서로 겹치지 않는다. 단계(707)에서, 운영 체제는 직접 또는 태스크바 버튼을 통해 비활성 애플리케이션 윈도우를 선택하기 위한 명령이 수신되었는지 판정한다. 그렇다면, 단계(709)에서, 운영 체제는 선택 명령이 윈도우 관리 설비로부터의 비활성 애플리케이션 윈도우의 제거를 요청하는 특정 명령인지 판정한다. 그렇지 않으면, 모드의 동작은 단계(711)로 진행하여, 현재의 활성 애플리케이션 윈도우는 비활성으로 되고, 선택된 비활성 애플리케이션 윈도우는 활성으로 된다. 단계(713)에서, 이전의 활성 애플리케이션 윈도우 및 선택된 애플리케이션 윈도우는 상대 위치를 교환하고, 이전의 활성 애플리케이션 윈도우는 축소된 형태로 제공되고, 선택된 애플리케이션 윈도우는 전체 크기로 또는 전체 크 기에 가깝게 렌더링된다. 그 후, 제어는 단계(707)로 되돌아간다.
단계(707)에서, 선택된 비활성 애플리케이션 윈도우가 없으면, 단계(715)에서, 운영 체제는 윈도우 관리 모드가 종료되었는지 그렇지 않으면 턴오프되었는지 판정한다. 모드가 종료되었으면, 단계(717)에서, 애플리케이션 윈도우는 Z-순위 프리젠테이션으로 적절하게 렌더링되는데, 여기에서 소정의 윈도우는 Z-순위로 표시될 수 없고, 상황에 따라 숨겨지거나 최소화될 수 있다. 그 후, 프로세스는 종료된다.
단계(709)에서, 도 6과 관련하여 설명된 것과 같이, 멀티-윈도우 동작을 요청하는 특정 명령이 선택되었으면, 제어는 도 8의 단계(801)로 이동한다. 단계(801)에서, 선택된 비활성 애플리케이션 윈도우는 윈도우 관리 설비에 의해 관리된 비활성 애플리케이션 윈도우의 리스트에서 제거된다. 단계(802)에서, 현재의 활성 애플리케이션 윈도우는 비활성으로 되고, 선택된 애플리케이션 윈도우는 활성으로 된다. 단계(805)에서, 선택된 애플리케이션 윈도우는 이전의 활성 애플리케이션 윈도우와 겹쳐서 전체 크기로 또는 전체 크기에 가깝게 렌더링된다. 그 후, 제어는 도 7의 단계(707)로 되돌아간다.
본 발명의 다른 구현에서, 본 발명의 여러 실시양상은 애플리케이션 프로그래밍 인터페이스(API)에 의해 수행될 수 있다. 예를 들어, 공중 API는 운영 체제와 인터페이싱하여, 운영 체제가 본 발명의 다양한 특징을 제공할 수 있게 할 수 있다. 한 실시예에서, 컴퓨터 디스플레이 상에서 겹치는 윈도우의 Z-순위를 나타내는 데이터를 처리하기 위한 하나 이상의 컴퓨터 판독가능 매체 상에 저장된 소프 트웨어 아키텍처는 데스크톱 공간에서 Z-순위의 상위에 애플리케이션 윈도우를 렌더링하고, 데스크톱 공간에서 축소된 형태로 Z-순위의 상위보다 낮은 각 애플리케이션 윈도우를 렌더링하도록 구성된 최소한 하나의 컴포넌트; 및 그 컴포넌트를 액세스하기 위한 최소한 하나의 애플리케이션 프로그램 인터페이스를 포함하는데, 렌더링 애플리케이션 윈도우들의 어느 것도 서로 겹치지 않는다. API는 활성 애플리케이션 윈도우를 전체 크기로 또는 전체 크기에 가깝게 렌더링하고 비활성 애플리케이션 윈도우의 크기를 축소함으로써 애플리케이션 윈도우를 관리하라는 요청을 수신하고, 그 동작을 수행하기 위해 필요한 함수(들)을 액세스하며, 그 다음에 결과를 운영 체제로 되돌려 보낼 수 있다. 운영 체제는 본 발명의 다양한 특징을 수행하기 위해 API로부터 제공된 데이터를 사용할 수 있다.
다른 구현에서, 운영 체제와 함께 동작할 수 있는 프로그래밍 인터페이스는 활성 애플리케이션 윈도우를 Z-순위의 상위에 렌더링하고 비활성 애플리케이션 윈도우를 활성 애플리케이션 윈도우의 아래에 렌더링하기 위한 수신지 모듈로의 명령어를 가로채는 단계, 및 렌더링된 애플리케이션 윈도우들의 어느 것도 서로 겹치지 않게, 활성 애플리케이션 윈도우를 데스크톱 공간에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하고, 비활성 애플리케이션 윈도우를 데스크톱 공간에서 축소된 형태로 렌더링하기 위한 명령어를 수신지 모듈에 제공하는 단계를 포함하는 단계를 수행할 수 있다.
본 발명의 다양한 실시양상을 구현하는 여기에서 설명된 예시적인 시스템 및 방법을 나타냈지만, 본 분야에 숙련된 기술자들이라면, 본 발명은 이들 실시예에 제한되지 않는다는 것을 이해할 것이다. 본 분야에 숙련된 기술자들에 의해, 특히 상기 교시에 비추어보아 변경이 이루어질 수 있다. 예를 들어, 상술된 실시예의 각각의 구성요소는 단독으로, 또는 다른 실시예의 구성요소들과 조합하거나 또는 부차적으로 조합하여 이용될 수 있다. 또한, 본 발명의 진정한 정신 및 범위를 벗어나지 않고서 변경이 이루어질 수 있다는 것을 알 것이고 이해할 것이다. 그러므로, 이 설명은 본 발명을 제한하는 것이 아니라 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 디스플레이 화면 상에 복수의 애플리케이션 윈도우들을 동시에 디스플레이하는 방법에 있어서,
    제1 명령에 응답하여, 복수의 애플리케이션 윈도우를 데스크톱 공간 내에서 비율에 따라 축소되는 형태(in a scaled down form)로 렌더링하고, 제1 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계 - 상기 복수의 애플리케이션 윈도우를 비율에 따라 축소되는 형태로 렌더링하는 것은
    크기조정의 정도(degree of scaling)에 따라 상기 복수의 애플리케이션 윈도우의 크기를 감소시키는 것을 포함하고, 상기 크기조정의 정도는 상기 복수의 애플리케이션 윈도우의 상대적 종횡비(relatve aspect ratio)를 유지하고, 상기 데스크톱 공간은 애플리케이션 프로그램에 대응하는 윈도우들을 디스플레이하는 것을 허용하는 디스플레이의 영역을 포함함 -;
    상기 복수의 애플리케이션 윈도우 각각을 태스크바 내의 대응되는 버튼으로서 나타내는 단계 - 상기 데스크톱 공간은 상기 태스크바로부터 분리되어 있으며 상기 태스크바와 중첩되지 않음 -;
    상기 복수의 애플리케이션 윈도우를 라이브 상태(live state)로 제공함으로써 상기 비율에 따라 축소되는 형태로 있는 상기 복수의 애플리케이션 윈도우의 기본 기능(underlying functionality)을 유지하는 단계 -
    상기 기본 기능을 유지하는 단계는
    (a) 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 사용자 상호작용(user interaction)을 제공하는 단계 - 상기 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우를 렌더링함에 의해서 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 어떠한 윈도우 상호작용도 영향을 받지 않거나 또는 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우의 기저에 있는(underlying) 애플리케이션 기능과의 제어 상호작용(control interactions)이 영향을 받지 않음 -, 및
    (b) 상기 디스플레이 화면에 제시된 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우 내의 콘텐츠를 자동으로 지속적으로 갱신하는 단계를 포함함 -; 및
    제2 명령에 응답하여, 제2 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계 - 상기 복수의 애플리케이션 윈도우 중 어느 것도 상기 제1 및 제2 애플리케이션 윈도우들과 중첩되지 않음 -
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 애플리케이션 윈도우와 상기 제2 애플리케이션 윈도우 중의 하나는 Z-순위(Z-order)의 최상위(top)에 있고, 상기 제1 애플리케이션 윈도우와 상기 제2 애플리케이션 윈도우 중의 다른 하나와 중첩되는, 방법.
  3. 제2항에 있어서,
    상기 Z-순위의 최상위 아래의 상기 제1 애플리케이션 윈도우 및 제2 애플리케이션 윈도우 중의 상기 하나에 대한 사용자 선택에 응답하여, 상기 제1 애플리케이션 윈도우 및 제2 애플리케이션 윈도우 중의 상기 다른 하나를 Z-순위의 최상위로 이동시키는, 방법.
  4. 제2항에 있어서,
    제3 명령에 응답하여, 상기 복수의 애플리케이션 윈도우 중의 하나인 제3 애플리케이션 윈도우를 선택하는 단계;
    상기 제3 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계; 및
    상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우들 중의 상기 하나를 상기 데스크톱 공간 내에서 비율에 따라 축소되는 형태로 렌더링하는 단계 - 다른 상기 복수의 애플리케이션 윈도우들과 상기 제1 및 제2 애플리케이션 윈도우들 중의 상기 다른 하나는 그 어느 것도 상기 제3 애플리케이션 윈도우 및 상기 제1 및 제2 애플리케이션 윈도우들 중의 상기 하나와 중첩되지 않고, 상기 Z-순위의 최상위에 있는 애플리케이션 윈도우의 아래에 위치한 애플리케이션 윈도우들은 부분적으로 다른 애플리케이션 윈도우에 의해서 가려짐(obscured)-
    를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제3 명령에 응답하여, 상기 제3 애플리케이션 윈도우와 상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우들 중의 상기 하나는 상기 데스크톱 공간 내에서 상대적 위치들을 교환하는, 방법.
  6. 제5항에 있어서,
    상기 데스크톱 공간 내에서 상기 제3 애플리케이션 윈도우와 상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우 중의 상기 하나가 상대적 위치를 교환하는 단계는,
    상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게, 상기 제3 애프리케이션 윈도우를 상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우 중의 상기 하나와 동일한 상대적 위치(same relative position)로 렌더링하는 단계;
    상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우 중의 상기 하나를 비율에 따라 축소되는 형태로 된 때의 상기 제3 애플리케이션 윈도우와 동일한 상대적 위치로 상기 데스크톱 내에서 비율에 따라 축소되는 형태로 렌더링하는 단계; 및
    상기 두 위치 사이를 애니메이션에 의해 전환하는 단계
    를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 두 위치 사이를 애니메이션에 의해 전환하는 단계는,
    상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우 중의 상기 하나를 대체하도록 상기 데스크톱 공간 내에서 상기 제3 애플리케이션을 전체 크기로 또는 전체 크기에 가깝게 성장시키는(growing) 단계; 및
    비율에 따라 축소되는 형태일 때의 상기 제3 애플리케이션 윈도우를 대체하도록 상기 Z-순위의 최상위에 있는 상기 제1 및 제2 애플리케이션 윈도우 중의 상기 하나를 상기 데스크톱 내에서 비율에 따라 축소되는 형태로 축소시키는(shrinking) 단계
    를 포함하는, 방법.
  8. 제4항에 있어서,
    상기 제3 명령은 비율에 따라 축소되는 형태에 있을 때의 상기 제3 애플리케이션 윈도우 위를 맴돌면서(hovering) 우측 클릭을 발행하는(issuing) 것을 포함하고, 상기 제3 명령은 상기 제1 명령 및 상기 제2 명령과는 구별되서 발행되는, 방법.
  9. 제1항에 있어서,
    제2 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계는
    컴퓨터 시스템에 의해서 동적으로 판정되는 비활성 애플리케이션 윈도우(inactive application windows)에 대한 상대적인 위치에 상기 제2 애플리케이션 윈도우를 배치하는(positioning) 단계
    를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 비활성 애플리케이션 윈도우들에 대한 상대적인 위치를 동적으로 판정하는 것은
    이용가능한 데스크톱 공간, 상기 렌더링된 제2 애플리케이션 윈도우의 크기, 및 상기 비활성 애플리케이션 윈도우의 총 수에 기초하여 상기 위치를 판정하는 것을 포함하는, 방법.
  11. 제1항에 있어서,
    상기 제2 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계는
    상기 제2 애플리케이션 윈도우를 사용자에 의해서 사전 결정된(preconfigured) 위치에 배치하는 단계
    를 포함하는, 방법.
  12. 디스플레이 화면 상에 다수의 애플리케이션 윈도우들을 동시에 디스플레이하는 방법에 있어서,
    윈도우 관리 모드(window management mode)를 호출하는(invokes) 명령을 수신하는 단계;
    데스크톱 공간 내에서 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우의 모든 비활성 애플리케이션을 렌더링하는 단계;
    상기 복수의 애플리케이션 윈도우를 라이브 상태(live state)로 제공함으로써 상기 비율에 따라 축소되는 형태로 있는 상기 복수의 애플리케이션 윈도우의 기본 기능을 유지하는 단계
    - 상기 유지하는 단계는
    (a) 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 사용자 상호작용(user interaction)을 제공하는 단계 - 상기 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우를 렌더링함에 의해서 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 어떠한 윈도우 상호작용도 영향을 받지 않거나 또는 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우의 기저에 있는 애플리케이션 기능과의 제어 상호작용이 영향을 받지 않음 -, 및
    (b) 상기 디스플레이 화면에 제시된 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우 내의 콘텐츠를 자동으로 지속적으로 갱신하는 단계를 포함함 -;
    비율에 따라 축소되는 형태의 상기 복수의 애플리케이션 윈도우 중에서, 상기 비활성 애플리케이션들 중의 하나를 활성 애플리케이션이 되게 하기 위해 식별하는 제1 선택(first selection)을 수신하는 단계;
    상기 복수의 애플리케이션 윈도우 중 상기 선택된 비활성 애플리케이션을, 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 제1 활성 애플리케이션 윈도우로서 렌더링하는 단계 - 상기 데스크톱 공간은 애플리케이션 프로그램들에 대응하는 윈도우들을 디스플레이하는 것을 허용하는 디스플레이 영역을 포함함 -;
    상기 복수의 애플리케이션 윈도우 각각을 태스크바 내의 대응되는 버튼으로서 나타내는 단계 - 상기 데스크톱 공간은 상기 태스크바로부터 분리되어 있으며 상기 태스크바와 중첩되지 않음 -;
    상기 윈도우 관리 모드를 오프로 토글링하는(toggling off) 단계;
    비율에 따라 축소되는 형태의 상기 복수의 애플리케이션 윈도우 중에서, 상기 비활성 애플리케이션들 중의 다른 하나를 활성 애플리케이션이 되게 하기 위해 식별하는 제2 선택을 수신하는 단계;
    제1 활성 애플리케이션 윈도우를 포함하는 Z-순위의 최상위에서 디스플레이되도록 상기 식별된 비활성 애플리케이션을 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 제2 활성 애플리케이션 윈도우로서 렌더링하여 활성 애플리케이션들의 그룹에 상기 제2 활성 애플리케이션 윈도우를 추가하는 단계;
    상기 윈도우 관리 모드를 온으로 토글링하는(toggling on) 단계;
    비율에 따라 축소되는 형태의 상기 복수의 애플리케이션 윈도우 중에서, 활성 애플리케이션이 되게 하기 위해 상기 비활성 애플리케이션들 또 다른 하나를 선택하는 제3 선택을 수신하는 단계; 및
    상기 제1 활성 애플리케이션 윈도우를 포함하는 Z-순위의 최상위에서 디스플레이되도록 상기 선택된 또 다른 비활성 애플리케이션을 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 제3 활성 애플리케이션 윈도우로서 렌더링하여 활성 애플리케이션들의 그룹에 상기 제3 활성 애플리케이션 윈도우를 추가하고 이전에 상기 Z-순위의 최상위에 있었던 상기 활성 애플리케이션 그룹으로부터 상기 제2 활성 애플리케이션을 제거하는 단계 - 상기 제1, 제2, 및 제3 선택은 유사한 방식에 의해서 발행됨 -
    를 포함하는, 방법.
  13. 제12항에 있어서,
    모든 비활성 애플리케이션의 수를 동적으로 판정하는 단계;
    상기 데스크톱 공간 내에서 상기 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우의 상기 모든 비활성 애플리케이션을 렌더링하는 단계 - 상기 복수의 애플리케이션 윈도우의 각각의 상기 비율에 따라 축소되는 형태의 크기조정의 정도는 상기 모든 비활성 애플리케이션의 수에 기초함 -
    를 더 포함하는, 방법.
  14. 제13항에 있어서,
    상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링되는 상기 제1 활성 애플리케이션 윈도우의 크기를 동적으로 판정하는 단계;
    상기 제1 활성 애플리케이션 윈도우를 전체 크기로 또는 전체 크기에 가깝게 렌더링한 후에 이용가능한 상기 데스크톱 공간을 동적으로 판정하는 단계; 및
    상기 복수의 애플리케이션 윈도우 각각의 상기 비율에 따라 축소되는 형태를 상기 모든 비활성 애플리케이션의 수, 상기 제1 활성 애플리케이션 윈도우의 크기, 및 상기 이용가능한 데스크톱 공간에 기초하여 조정하는 단계
    를 더 포함하는, 방법.
  15. 제14항에 있어서,
    데스크톱 공간내에서 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우의 모든 비활성 애플리케이션을 렌더링하는 단계는
    현재의 조건들에 기초하여 상기 복수의 애플리케이션 윈도우를 재배치하는(repositioning) 단계 - 상기 현재 조건들은 상기 디스플레이 화면 상의 상기 데스크톱 공간의 방향(orientation), 상기 데스크톱 공간의 총 면적, 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우가 렌더링될 것으로 예상된 상기 데스크톱 공간 내의 위치들 중 하나 또는 그 이상을 포함함 -
    를 포함하는, 방법.
  16. 컴퓨터 실행가능 명령어를 내장하고 있는 하나 이상의 컴퓨터 판독가능 저장매체로서, 상기 컴퓨터 실행가능 명령어는 실행되는 경우, 디스플레이 화면 상에 복수의 애플리케이션 윈도우를 동시에 디스플레이하는 방법을 수행하며
    상기 방법은,
    제1 명령에 응답하여,
    (a) 데스크톱 공간 내에서 비율에 따라 축소되는 형태로 복수의 애플리케이션 윈도우를 렌더링하는 것 - 상기 데스크톱 공간은 애플리케이션 프로그램들에 대응하는 윈도우들을 디스플레이하는 것을 허용하는 디스플레이의 영역을 포함함 -;
    (b) 상기 복수의 애플리케이션 윈도우를 태스크바 내의 대응되는 버튼으로서 나타내는 것 - 상기 데스크톱 공간은 상기 태스크바로부터 분리되어 있으며 상기 태스크바와 중첩되지 않음 -; 및
    (c) 상기 데스크톱 공간 내에서 제1 애플리케이션 윈도우를 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 것
    을 포함하는 프로세스를 수행하는 단계;
    상기 복수의 애플리케이션 윈도우를 라이브 상태(live state)로 제공함으로써 상기 비율에 따라 축소되는 형태로 있는 상기 복수의 애플리케이션 윈도우의 기본 기능을 유지하는 단계 -
    상기 기본 기능을 유지하는 단계는
    (a) 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 사용자 상호작용을 제공하는 단계 - 상기 비율에 따라 축소되는 형태로 상기 복수의 애플리케이션 윈도우를 렌더링함에 의해서 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우와의 어떠한 윈도우 상호작용도 영향을 받지 않거나 또는 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우의 기저에 있는 애플리케이션 기능과의 제어 상호작용이 영향을 받지 않음 -, 및
    (b) 상기 디스플레이 화면에 제시된 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우 내의 콘텐츠를 자동으로 지속적으로 갱신하는 단계를 포함함 -; 및
    제2 명령에 응답하여, 제2 애플리케이션 윈도우를 상기 데스크톱 공간 내에서 전체 크기로 또는 전체 크기에 가깝게 렌더링하는 단계 - 상기 복수의 애플리케이션 윈도우 중 어느 것도 상기 제1 및 제2 애플리케이션 윈도우들과 중첩되지 않음 -
    를 포함하는, 컴퓨터 판독가능 저장매체.
  17. 제16항에 있어서,
    상기 제1 명령은 윈도우 관리 모드를 호출하는 것
    - 상기 데스크톱 공간 내에서 상기 비율에 따라 축소되는 형태로 렌더링된 상기 복수의 애플리케이션 윈도우는 비활성 애플리케이션 윈도우들이고, 상기 데스크톱 공간에서 전체 크기로 또는 전체 크기에 가깝게 렌더링된 상기 제1 애플리케이션 윈도우는 활성 애플리케이션 윈도우임 -
    을 포함하는, 컴퓨터 판독가능 저장매체.
  18. 제17항에 있어서,
    상기 제2 명령은 상기 데스크톱 공간 내에서 상기 비율에 따라 축소되는 형태의 상기 복수의 애플리케이션 윈도우 중의 하나 위로 맴도는 우측 클릭 - 상기 윈도우 관리 모드가 호출됨 -
    을 포함하는, 컴퓨터 판독가능 저장매체.
  19. 제17항에 있어서,
    상기 제2 명령은 상기 데스크톱 공간 내에서 상기 비율에 따라 축소되는 형태의 상기 복수의 애플리케이션 중의 하나에 대응하는, 상기 태스크바 내의 버튼들 중의 하나에 대한 선택
    을 포함하는, 컴퓨터 판독가능 저장매체.
  20. 제16항에 있어서,
    상기 방법은
    상기 디스플레이 화면에 제시된 상기 비율에 따라 축소되는 복수의 애플리케이션 윈도우 내의 웹 페이지 콘텐츠를 자동으로 지속적으로 갱신하는 단계
    를 더 포함하는, 컴퓨터 판독가능 저장매체.
KR1020077022836A 2005-04-29 2005-08-25 윈도우 관리 모드를 제공하는 시스템 및 방법 KR101099317B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/117,717 US20060248471A1 (en) 2005-04-29 2005-04-29 System and method for providing a window management mode
US11/117,717 2005-04-29

Publications (2)

Publication Number Publication Date
KR20080002811A KR20080002811A (ko) 2008-01-04
KR101099317B1 true KR101099317B1 (ko) 2011-12-26

Family

ID=37235852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022836A KR101099317B1 (ko) 2005-04-29 2005-08-25 윈도우 관리 모드를 제공하는 시스템 및 방법

Country Status (7)

Country Link
US (2) US20060248471A1 (ko)
KR (1) KR101099317B1 (ko)
CN (1) CN101167122B (ko)
AU (1) AU2005331259B2 (ko)
CA (1) CA2604763C (ko)
NO (1) NO20075164L (ko)
WO (1) WO2006118589A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150143630A (ko) * 2013-04-15 2015-12-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 창 레이아웃 관리를 위한 애플리케이션 창 분할기 컨트롤

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966379B2 (en) 2010-10-01 2015-02-24 Z124 Dynamic cross-environment application configuration/orientation in an active user environment
US8933949B2 (en) 2010-10-01 2015-01-13 Z124 User interaction across cross-environment applications through an extended graphics context
US9047102B2 (en) 2010-10-01 2015-06-02 Z124 Instant remote rendering
US20130024812A1 (en) * 2011-07-13 2013-01-24 Z124 Foreground/background assortment of hidden windows
US8819705B2 (en) 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
US8726294B2 (en) 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
US9207717B2 (en) * 2010-10-01 2015-12-08 Z124 Dragging an application to a screen using the application manager
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7707255B2 (en) 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US7730418B2 (en) * 2005-05-04 2010-06-01 Workman Nydegger Size to content windows for computer graphics
KR100727954B1 (ko) * 2005-07-27 2007-06-14 삼성전자주식회사 사용자 인터페이스 표시장치 및 방법
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US7996758B2 (en) 2005-11-02 2011-08-09 Sourcecode Technologies Holding, Inc. Methods and apparatus for storing data associated with an electronic form
US8239226B2 (en) 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
US8010940B2 (en) 2005-11-02 2011-08-30 Sourcecode Technologies Holdings, Inc. Methods and apparatus for designing a workflow process using inheritance
US20070130138A1 (en) * 2005-11-02 2007-06-07 Sourcecode Technology Holding, Inc. Methods and apparatus for storing a collaboratively designed workflow process
US8224853B2 (en) 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
US7600190B2 (en) * 2005-11-15 2009-10-06 Mitac Technology Corp. Window switching method and system
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US8108785B2 (en) * 2006-01-09 2012-01-31 Microsoft Corporation Supporting user multi-tasking with clipping lists
GB0605587D0 (en) * 2006-03-20 2006-04-26 British Broadcasting Corp Graphical user interface methods and systems
US7595810B2 (en) 2006-03-22 2009-09-29 Apple Inc. Methods of manipulating a screen space of a display device
US7620905B2 (en) * 2006-04-14 2009-11-17 International Business Machines Corporation System and method of windows management
US8756528B2 (en) * 2006-05-08 2014-06-17 Ascom (Sweden) Ab System and method of customizing video display layouts having dynamic icons
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8464177B2 (en) * 2006-07-26 2013-06-11 Roy Ben-Yoseph Window resizing in a graphical user interface
US20080034037A1 (en) * 2006-08-04 2008-02-07 Jean-Pierre Ciudad Sharing Graphical User Interface Output In Chat Environment
US7996789B2 (en) * 2006-08-04 2011-08-09 Apple Inc. Methods and apparatuses to control application programs
US8869027B2 (en) * 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US20080034038A1 (en) * 2006-08-04 2008-02-07 Jean-Pierre Ciudad Sharing Application Output In Chat Environment
US10503342B2 (en) * 2006-08-04 2019-12-10 Apple Inc. User interface spaces
KR20080024734A (ko) * 2006-09-14 2008-03-19 삼성전자주식회사 웹문서 구성 장치 및 방법과 웹문서 배열 설정 장치
US7988549B2 (en) 2006-09-26 2011-08-02 Lightning Box Games Pty Limited Electronic system for playing of reel-type games
US8056014B2 (en) * 2006-10-04 2011-11-08 International Business Machines Corporation Web portal page interactive user interfaces with maximum accessibility to user selected portlets
US8245154B2 (en) * 2006-11-03 2012-08-14 International Business Machines Corporation Most-recently-used task switching among parent and child windows
US7937349B2 (en) * 2006-11-09 2011-05-03 Pucher Max J Method for training a system to specifically react on a specific input
WO2008137998A1 (en) 2007-05-08 2008-11-13 Sourcecode Technology Holding, Inc. Methods and apparatus for exposing workflow process definitions as business objects
US8127239B2 (en) 2007-06-08 2012-02-28 Apple Inc. Object transitions
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
JP2009031862A (ja) * 2007-07-24 2009-02-12 Ntt Docomo Inc 情報処理装置およびプログラム
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US8314789B2 (en) * 2007-09-26 2012-11-20 Autodesk, Inc. Navigation system for a 3D virtual scene
US8286090B2 (en) * 2007-10-22 2012-10-09 General Electric Company Systems and methods for displaying and visualizing information
US20090132939A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Method and apparatus for a floating island for user navigation in an interactive environment
US20090150435A1 (en) * 2007-12-08 2009-06-11 International Business Machines Corporation Dynamic updating of personal web page
US8214760B2 (en) * 2008-01-16 2012-07-03 Microsoft Corporation Window minimization trigger
US8555193B2 (en) * 2008-01-17 2013-10-08 Google Inc. System for intelligent automated layout and management of interactive windows
US9588781B2 (en) * 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
JP5448576B2 (ja) * 2008-06-03 2014-03-19 キヤノン株式会社 表示制御装置、表示制御方法及びプログラム
TW201001229A (en) * 2008-06-19 2010-01-01 Acer Inc Multi-display operating system and method thereof
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
KR20100009989A (ko) * 2008-07-21 2010-01-29 삼성전자주식회사 디스플레이 장치 및 그 방법
US20100031189A1 (en) * 2008-08-01 2010-02-04 International Business Machines Corporation Connecting Standard Operating System Windows with a Visual Tack
US8543935B2 (en) * 2008-08-20 2013-09-24 Red Hat, Inc. Full-screen heterogeneous desktop display and control
JP5153538B2 (ja) * 2008-09-18 2013-02-27 シスメックス株式会社 保守端末装置及びコンピュータプログラム
US8959446B2 (en) * 2008-11-20 2015-02-17 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
US20100138784A1 (en) * 2008-11-28 2010-06-03 Nokia Corporation Multitasking views for small screen devices
US20100146449A1 (en) * 2008-12-09 2010-06-10 Michael William Brown Method, apparatus and system for management of application switching in an electronic device
JP5133919B2 (ja) * 2009-02-19 2013-01-30 株式会社沖データ アプリケーションプログラム及び画像処理装置
US20100241958A1 (en) * 2009-03-23 2010-09-23 Ram David Adva Fish Method and system to manage and prioritize windows based on touch strip inputs
US20100281430A1 (en) * 2009-05-02 2010-11-04 Samir Hanna Safar Mobile applications spin menu
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
KR101601040B1 (ko) * 2009-05-19 2016-03-09 삼성전자주식회사 휴대 단말기의 화면 표시 방법 및 이를 지원하는 휴대 단말기
US8555185B2 (en) * 2009-06-08 2013-10-08 Apple Inc. User interface for multiple display regions
CN101996072B (zh) * 2009-08-21 2013-12-25 联想(北京)有限公司 一种操作系统的窗口管理方法及计算机
KR101691823B1 (ko) * 2009-09-09 2017-01-02 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
JP5067409B2 (ja) * 2009-09-28 2012-11-07 カシオ計算機株式会社 シンクライアントシステム及びプログラム
US9110568B2 (en) * 2009-10-13 2015-08-18 Google Inc. Browser tab management
US20110113486A1 (en) * 2009-11-10 2011-05-12 James Anthony Hunt Credentialing User Interface for Gadget Application Access
CN101763270B (zh) 2010-01-28 2011-06-15 华为终端有限公司 组件显示处理方法和用户设备
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
KR101690786B1 (ko) * 2010-02-12 2016-12-28 삼성전자주식회사 멀티태스킹 수행 장치 및 방법
CN102207813A (zh) * 2010-03-31 2011-10-05 宏碁股份有限公司 多屏幕电子装置及其操控方法
US8291344B2 (en) * 2010-04-07 2012-10-16 Apple Inc. Device, method, and 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
US8775958B2 (en) 2010-04-14 2014-07-08 Microsoft Corporation Assigning Z-order to user interface elements
EP2385452A1 (en) * 2010-05-06 2011-11-09 Amadeus S.A.S. Computer navigation method
EP2605413B1 (en) * 2010-08-13 2018-10-10 LG Electronics Inc. Mobile terminal, system comprising the mobile terminal and a display device, and control method therefor
JP5635850B2 (ja) * 2010-09-16 2014-12-03 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法
US9001149B2 (en) 2010-10-01 2015-04-07 Z124 Max mode
US8898443B2 (en) 2010-10-01 2014-11-25 Z124 Multi-operating system
US8842080B2 (en) 2010-10-01 2014-09-23 Z124 User interface with screen spanning icon morphing
WO2012044716A1 (en) 2010-10-01 2012-04-05 Imerj LLC Flick move gesture in user interface
CN103262057B (zh) 2010-10-01 2016-02-10 Flex Electronics ID Co.,Ltd. 跨环境通信框架
US8713474B2 (en) 2010-10-05 2014-04-29 Citrix Systems, Inc. Providing user interfaces and window previews for hosted applications
WO2012045371A1 (en) 2010-10-08 2012-04-12 Abb Research Ltd Method and system for monitoring an industrial process
US8761831B2 (en) 2010-10-15 2014-06-24 Z124 Mirrored remote peripheral interface
US9542202B2 (en) 2010-10-19 2017-01-10 Apple Inc. Displaying and updating workspaces in a user interface
US10740117B2 (en) * 2010-10-19 2020-08-11 Apple Inc. Grouping windows into clusters in one or more workspaces in a user interface
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US20120159383A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
WO2012108714A2 (en) * 2011-02-11 2012-08-16 Samsung Electronics Co., Ltd. Method and apparatus for providing graphic user interface in mobile terminal
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9361715B2 (en) * 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US8539373B1 (en) * 2011-07-05 2013-09-17 Google Inc. Sliding window manager
CN102866907B (zh) * 2011-07-06 2015-11-25 腾讯科技(深圳)有限公司 桌面切换方法和装置
US8788863B2 (en) 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US9588576B2 (en) 2011-09-12 2017-03-07 Microsoft Technology Licensing, Llc Managing processes within suspend states and execution states
US9952897B2 (en) 2011-09-12 2018-04-24 Microsoft Technology Licensing, Llc Managing processes within suspend states and execution states
US8621494B2 (en) 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
US8878794B2 (en) * 2011-09-27 2014-11-04 Z124 State of screen info: easel
US9135022B2 (en) * 2011-11-14 2015-09-15 Microsoft Technology Licensing, Llc Cross window animation
US9645733B2 (en) 2011-12-06 2017-05-09 Google Inc. Mechanism for switching between document viewing windows
JP5844632B2 (ja) * 2011-12-16 2016-01-20 京セラ株式会社 携帯端末装置、プログラムおよび画面更新方法
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
CN102799385B (zh) * 2012-07-19 2016-12-21 腾讯科技(深圳)有限公司 桌面控制方法和装置
CN102780650A (zh) * 2012-07-21 2012-11-14 上海量明科技发展有限公司 即时通信交互界面调整的方法及客户端
US9696879B2 (en) 2012-09-07 2017-07-04 Google Inc. Tab scrubbing using navigation gestures
CN102929478A (zh) * 2012-09-25 2013-02-13 东莞宇龙通信科技有限公司 应用切换方法及通信终端
US9152173B2 (en) * 2012-10-09 2015-10-06 Microsoft Technology Licensing, Llc Transparent display device
US9477404B2 (en) 2013-03-15 2016-10-25 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US20140298245A1 (en) * 2013-03-28 2014-10-02 Microsoft Corporation Display Instance Management
WO2014170714A1 (en) * 2013-04-18 2014-10-23 Wakefield Franz Antonio A tangible portable interactive electronic computing device
CN104123032A (zh) * 2013-04-26 2014-10-29 联发科技股份有限公司 电子装置控制方法
US9250761B2 (en) * 2013-04-30 2016-02-02 Microsoft Technology Licensing, Llc Auto-grouping of application windows
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
US9535565B2 (en) * 2013-05-13 2017-01-03 Microsoft Technology Licensing, Llc Smart insertion of applications into layouts
KR102148725B1 (ko) * 2013-07-31 2020-08-28 삼성전자주식회사 어플리케이션을 표시하는 방법 및 장치
KR102263161B1 (ko) * 2013-07-31 2021-06-10 삼성전자주식회사 어플리케이션을 표시하는 방법 및 장치
KR102266198B1 (ko) * 2013-08-02 2021-06-18 삼성전자주식회사 이종 애플리케이션들을 포함하는 그룹을 나타내는 탭 윈도우를 관리하는 방법 및 장치.
US9910884B2 (en) 2014-01-13 2018-03-06 Microsoft Technology Licensing, Llc Resuming items in their last-used presentation modes
GB2522453A (en) * 2014-01-24 2015-07-29 Barco Nv Dynamic display layout
JP2015197587A (ja) * 2014-04-01 2015-11-09 セイコーエプソン株式会社 双方向表示方法および双方向表示装置
US10402034B2 (en) * 2014-04-02 2019-09-03 Microsoft Technology Licensing, Llc Adaptive user interface pane manager
EP3126969A4 (en) 2014-04-04 2017-04-12 Microsoft Technology Licensing, LLC Expandable application representation
WO2015154273A1 (en) 2014-04-10 2015-10-15 Microsoft Technology Licensing, Llc Collapsible shell cover for computing device
CN105359055A (zh) 2014-04-10 2016-02-24 微软技术许可有限责任公司 计算设备的滑盖
CN104063128B (zh) * 2014-06-26 2018-02-27 联想(北京)有限公司 一种信息处理方法及电子设备
US20160004393A1 (en) * 2014-07-01 2016-01-07 Google Inc. Wearable device user interface control
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10638082B2 (en) 2014-08-28 2020-04-28 Gregory A. Pearson, Inc. Systems and methods for picture-in-picture video conference functionality
US20160105628A1 (en) * 2014-10-13 2016-04-14 Mediatek Inc. Method for controlling an electronic device with aid of user input back channel, and associated apparatus and associated computer program product
US9674335B2 (en) 2014-10-30 2017-06-06 Microsoft Technology Licensing, Llc Multi-configuration input device
US10209849B2 (en) 2015-01-21 2019-02-19 Microsoft Technology Licensing, Llc Adaptive user interface pane objects
US10042655B2 (en) 2015-01-21 2018-08-07 Microsoft Technology Licensing, Llc. Adaptable user interface display
US9699411B2 (en) * 2015-05-09 2017-07-04 Ricoh Company, Ltd. Integration of videoconferencing with interactive electronic whiteboard appliances
US10209851B2 (en) 2015-09-18 2019-02-19 Google Llc Management of inactive windows
US10891106B2 (en) 2015-10-13 2021-01-12 Google Llc Automatic batch voice commands
US11010542B2 (en) * 2016-02-03 2021-05-18 Ricoh Company, Ltd. Interactive electronic whiteboard appliance with adaptive application management
DE102016202694A1 (de) * 2016-02-22 2017-08-24 Siemens Aktiengesellschaft Benutzerschnittstelle mit mehreren Anzeigen und Verfahren zur Positionierung von Inhalten auf mehreren Anzeigen
CN107391094A (zh) * 2016-05-17 2017-11-24 天津三星电子有限公司 一种窗口显示方法及装置
KR102340199B1 (ko) * 2017-06-14 2021-12-16 삼성전자주식회사 영상 표시 장치 및 그 동작방법
US11294530B2 (en) * 2017-08-07 2022-04-05 Microsoft Technology Licensing, Llc Displaying a translucent version of a user interface element
CN107544809B (zh) * 2017-09-07 2021-07-27 北京小米移动软件有限公司 显示页面的方法和装置
US11797169B2 (en) 2019-03-29 2023-10-24 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
US11269492B2 (en) 2019-03-29 2022-03-08 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
WO2020205293A1 (en) * 2019-03-29 2020-10-08 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
GB2584327A (en) * 2019-05-31 2020-12-02 Continental Automotive Gmbh Multimedia system with optimized performance
KR102053818B1 (ko) * 2019-06-05 2019-12-09 주식회사 시메이션 이미지 매칭 방법 및 장치
US11138912B2 (en) * 2019-10-01 2021-10-05 Microsoft Technology Licensing, Llc Dynamic screen modes on a bendable computing device
CN110795194B (zh) * 2019-10-31 2021-09-07 北京字节跳动网络技术有限公司 桌面显示控制的方法、装置、终端及存储介质
WO2021174662A1 (zh) * 2020-03-04 2021-09-10 海信视像科技股份有限公司 显示设备以及操作指南的显示方法
US11543945B1 (en) * 2020-03-30 2023-01-03 Amazon Technologies, Inc. Accurate local depiction of preview of a program window included in a remote graphical desktop
CN112698758B (zh) * 2020-10-19 2022-04-29 统信软件技术有限公司 一种窗口显示方法及计算设备
US11520608B1 (en) 2021-12-20 2022-12-06 Biosense Webster (Israel) Ltd. Method and system for selectively cloning computer display monitors
US11886685B1 (en) 2022-10-20 2024-01-30 Stardock Corporation Desktop container peek interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018340A (en) 1997-01-27 2000-01-25 Microsoft Corporation Robust display management in a multiple monitor environment
US20040261037A1 (en) 2003-06-20 2004-12-23 Apple Computer, Inc. Computer interface having a virtual single-layer mode for viewing overlapping objects
US6957395B1 (en) 2000-01-04 2005-10-18 Apple Computer, Inc. Computer interface having a single window mode of operation

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2191917A (en) * 1986-06-16 1987-12-23 Ibm A multiple window display system
JPH0457089A (ja) 1990-06-27 1992-02-24 Casio Comput Co Ltd マルチウインドウ表示装置
JPH0511962A (ja) * 1990-10-10 1993-01-22 Fuji Xerox Co Ltd ウインドウ管理装置
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
JPH0721400A (ja) 1993-06-16 1995-01-24 Fujitsu Ltd マルチウィンドウシステムにおける画面切り替え方法
US5522025A (en) * 1993-10-25 1996-05-28 Taligent, Inc. Object-oriented window area display 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
DE69523543T2 (de) * 1994-12-13 2002-04-04 Microsoft Corp Taskbar mit Startmenü
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 マルチ画面表示制御装置
US5806821A (en) * 1996-03-28 1998-09-15 Matthews Studio Equipment, Inc. Positionable support head
US6049812A (en) * 1996-11-18 2000-04-11 International Business Machines Corp. Browser and plural active URL manager for network computers
JP4057089B2 (ja) 1997-02-13 2008-03-05 株式会社豊田自動織機 織機における織段発生防止方法及び装置
CA2285313A1 (en) * 1997-03-31 1998-10-08 G & R Associates Incorporated Computer-telephony integration employing an intelligent keyboard and method for same
US5923655A (en) * 1997-06-10 1999-07-13 E--Net, Inc. Interactive video communication over a packet data network
US6025841A (en) * 1997-07-15 2000-02-15 Microsoft Corporation Method for managing simultaneous display of multiple windows in a graphical user interface
US6160554A (en) * 1998-03-19 2000-12-12 Hewlett Packard Company Computer file content preview window
US7346850B2 (en) * 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US20040208158A1 (en) * 1998-08-19 2004-10-21 Fellman Ronald D. Methods and apparatus for providing quality-of-service guarantees in computer networks
US6489975B1 (en) * 1998-12-14 2002-12-03 International Business Machines Corporation System and method for improved navigation between open windows in an application program using window tabs
US6909443B1 (en) * 1999-04-06 2005-06-21 Microsoft Corporation Method and apparatus for providing a three-dimensional task gallery computer interface
WO2000060442A1 (en) * 1999-04-06 2000-10-12 Microsoft Corporation Method and apparatus for providing a three-dimensional task gallery computer interface
US6806892B1 (en) * 1999-12-20 2004-10-19 International Business Machines Corporation Layer viewport for enhanced viewing in layered drawings
JP2001222406A (ja) 2000-02-14 2001-08-17 Canon Inc ウィンドウシステム切換え装置、その制御方法および記憶媒体
US6781611B1 (en) * 2000-06-28 2004-08-24 International Business Machines Corporation Method and system for navigating between applications, documents, and files
TW594556B (en) * 2000-11-03 2004-06-21 Synq Technology Inc Computer system for displaying multiple window screens
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
JP2003186593A (ja) 2001-12-14 2003-07-04 Sumitomo Electric Ind Ltd マルチウィンドウ表示方法及びシステム
US7114129B2 (en) * 2002-03-28 2006-09-26 International Business Machines Corporation Method and system for controlling an application displayed in an inactive window
CN1466076A (zh) * 2002-07-02 2004-01-07 陈文清 探索浏览器
US7913183B2 (en) * 2002-10-08 2011-03-22 Microsoft Corporation System and method for managing software applications in a graphical user interface
US7176943B2 (en) * 2002-10-08 2007-02-13 Microsoft Corporation Intelligent windows bumping method and system
US8230359B2 (en) * 2003-02-25 2012-07-24 Microsoft Corporation System and method that facilitates computer desktop use via scaling of displayed objects with shifts to the periphery
EP1467347A3 (en) * 2003-04-07 2007-08-29 NEC Corporation Window control system for a multi-application environment
US8484576B2 (en) * 2003-04-17 2013-07-09 Supersonic Aerospace International, Llc System and method for customizing multiple windows of information on a display
US20040261039A1 (en) * 2003-06-19 2004-12-23 International Business Machines Corporation Method and system for ordering on-screen windows for display
US7496846B2 (en) * 2004-02-09 2009-02-24 Portalis, Lc Computer presentation and command integration apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018340A (en) 1997-01-27 2000-01-25 Microsoft Corporation Robust display management in a multiple monitor environment
US6957395B1 (en) 2000-01-04 2005-10-18 Apple Computer, Inc. Computer interface having a single window mode of operation
US20040261037A1 (en) 2003-06-20 2004-12-23 Apple Computer, Inc. Computer interface having a virtual single-layer mode for viewing overlapping objects

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150143630A (ko) * 2013-04-15 2015-12-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 창 레이아웃 관리를 위한 애플리케이션 창 분할기 컨트롤
KR102113371B1 (ko) * 2013-04-15 2020-05-20 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 창 레이아웃 관리를 위한 애플리케이션 창 분할기 컨트롤
US11294529B2 (en) 2013-04-15 2022-04-05 Microsoft Technology Licensing, Llc Application window divider control for window layout management

Also Published As

Publication number Publication date
CN101167122B (zh) 2012-09-12
AU2005331259B2 (en) 2010-04-22
CA2604763A1 (en) 2006-11-09
WO2006118589A1 (en) 2006-11-09
KR20080002811A (ko) 2008-01-04
AU2005331259A1 (en) 2006-11-09
US20060248404A1 (en) 2006-11-02
CA2604763C (en) 2013-11-05
NO20075164L (no) 2007-11-29
US20060248471A1 (en) 2006-11-02
CN101167122A (zh) 2008-04-23
US7681143B2 (en) 2010-03-16

Similar Documents

Publication Publication Date Title
KR101099317B1 (ko) 윈도우 관리 모드를 제공하는 시스템 및 방법
KR101183396B1 (ko) 애플리케이션 윈도우의 그룹핑 및 관리를 위한 방법 및장치
US7487454B2 (en) Managing arbitrary window regions for more effective use of screen space
US7747965B2 (en) System and method for controlling the opacity of multiple windows while browsing
EP1866730B1 (en) Method and apparatus for application window grouping and management
Florins et al. Graceful degradation of user interfaces as a design method for multiplatform systems
US5577188A (en) Method to provide for virtual screen overlay
JP3312037B2 (ja) 表示システム、xウィンドウサーバーシステム及び表示方法
JP2723208B2 (ja) データ処理システム
US9141264B2 (en) Variable refresh rates for portions of shared screens
US7861171B2 (en) Pointright based point-of-presence system and architecture
US20120311501A1 (en) Displaying graphical object relationships in a workspace
US20060236255A1 (en) Method and apparatus for providing audio output based on application window position
EP1571548A2 (en) Hosted application as a designer in an integrated development environment
US20030184592A1 (en) Method and system for controlling an application displayed in an inactive window
JP2017532681A (ja) 異種アプリケーションタブ
CN115269094A (zh) 管理用户界面中的工作空间
EP0788646A1 (en) Object-oriented system for servicing windows
JPH08115198A (ja) ウィンドウ変更のための方法、システム、及びメモリ
TW201545052A (zh) 擴展螢幕模式下之應用程式運作方法以及使用該方法的平板電腦
US10970087B2 (en) Windows content transfer methods and systems
JP2003531429A (ja) デジタルドキュメント処理
JPH09507322A (ja) 複合文書のパーツ間のインタフェースを提供するフレーム構造
KR20190115401A (ko) 링크 뷰 방법, 링크 뷰 장치 및 링크 뷰 프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8