KR20070116594A - 그래픽 유저 인터페이스 관리 - Google Patents

그래픽 유저 인터페이스 관리 Download PDF

Info

Publication number
KR20070116594A
KR20070116594A KR1020077020156A KR20077020156A KR20070116594A KR 20070116594 A KR20070116594 A KR 20070116594A KR 1020077020156 A KR1020077020156 A KR 1020077020156A KR 20077020156 A KR20077020156 A KR 20077020156A KR 20070116594 A KR20070116594 A KR 20070116594A
Authority
KR
South Korea
Prior art keywords
child
window
child window
windows
ranking
Prior art date
Application number
KR1020077020156A
Other languages
English (en)
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 KR20070116594A publication Critical patent/KR20070116594A/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
    • 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
    • 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

Abstract

디스플레이 방식에 따라 부모 윈도우 및 부모 윈도우 내에 렌더링된 다수의 자식 윈도우들을 포함하는 GUI(graphical user interface)가 프리젠팅된다. 자식 윈도우들 중 하나의 사이즈가 변경되는 경우, 디스플레이 방식이 유지되도록, 다른 자식 윈도우들 중 하나 이상의 사이즈가 변경된다.
부모 윈도우, 자식 윈도우, GUI, 프로세서, 윈도윙 서브 시스템.

Description

그래픽 유저 인터페이스 관리{GRAPHICAL USER INTERFACE MANAGEMENT}
PDA(Personal Digital Assistants), 포켓 PC, 셀 전화, 핸드헬드 게이밍 시스템, 핸드헬드 전자 테스팅 장비, 등과 같은 핸드헬드 컴퓨팅 장치들은 종종 디스플레이를 포함한다. 많은 핸드헬드 컴퓨팅 장치들은 그들의 디스플레이 상에 GUI(graphical user interface)를 제공한다. 불행하게도, 이 핸드헬드 컴퓨팅 장치들에서의 디스플레이들의 작은 사이즈로 인하여, 데스크탑 컴퓨터들에 사용된 디스플레이들과 같은 보다 큰 디스플레이들에 사용된 GUI는 종종 이 핸드헬드 장치들에 최적으로 되지 않는다. 이 문제는 GUI가 멀티플 윈도우들을 포함하는 경우에 더 심각하다.
도 1은 GUI가 렌더링되는 디스플레이를 포함하는 컴퓨팅 장치의 일 예를 도시한다.
도 2는 도 1의 디스플레이와 GUI 및 GUI를 제어하기 위한 GUI 관리 모듈의 일 예를 도시한다.
도 3은 도 2의 GUI 관리 모듈의 자식 윈도우 모듈의 일 예를 도시한다.
도 4는 도 2의 GUI 관리 모듈의 윈도우 관리 모듈의 일 예를 도시한다.
도 5는 도 1 및 2의 GUI를 제어하기 위한 동작 흐름의 일 예를 도시한다.
도 6은 도 1 및 2의 GUI를 제어하기 위한 동작 흐름의 다른 예를 도시한다.
도 7은 도 1 및 2의 GUI를 제어하기 위한 동작 흐름의 다른 예를 도시한다.
이하의 설명은 먼저 컴퓨팅 장치의 디스플레이 상에서 GUI(Graphical User Interface)를 프리젠팅 및 관리하는 데, 또는 그와 연계되어 이용될 수 있는 다양한 기술들의 실시에 대하여 설명한다.
여기에서 설명된 실시들 중 일부에 따르면, GUI는 미리 정해진 자식 윈도우 프리젠테이션(child window presentation) 영역을 갖는 부모 윈도우(parent window)의 형태로 컴퓨팅 장치의 디스플레이 상에 렌더링된다. 자식 윈도우 프리젠테이션 영역 내에는 다수의 자식 윈도우들이 렌더링된다. 자식 윈도우 프리젠테이션 영역 내의 각각의 자식 윈도우는 특정 프로세스와 연관된다. 여기에서 사용될 때, 프로세스는 자식 윈도우를 통하여 정보를 받고/받거나 전달하는 임의의 프로그램, 프로세스, 서비스, 등일 수 있고/있거나 아니면 자식 윈도우를 통하여 유저와 상호작용하고/작용하거나 유저에 의해 제어될 수 있다. 즉, 각각의 자식 윈도우는 연관된 프로세스에 대하여 GUI를 프리젠팅할 수 있다. 예를 들면, 하나의 자식 윈도우는 데이터 베이스 프로그램에 대한 GUI를 프리젠팅할 수 있고, 다른 자식 윈도우는 자동 스톡 인용(automatic stock quotation) 서비스를 프리젠팅할 수 있고, 다른 자식 윈도우는 이메일 프로그램의 인박스(inbox)에 대한 GUI를 프리젠팅할 수 있으며, 다른 자식 윈도우 GUI는 이메일 프로그램 등에서의 검색 기능에 대한 GUI를 프리젠팅할 수 있다.
자식 윈도우들의 각각은 다수의 비주얼/기능 모드들 중 하나에서 디스플레이될 수 있다. 즉, 언제라도, 자식 윈도우는 그 자식 윈도우에 대하여 이용 가능한 다수의 비주얼/기능 모드들로부터 선택된 하나의 비주얼/기능 모드에 따라 디스플레이될 것이다. 각각의 모드는 자식 윈도우 내의 윈도우즈 컨트롤들(예를 들면, 툴바들, 버튼들, 등)의 수 및 배치, 자식 윈도우가 디스플레이할 정보의 포맷 및 유형, 자식 윈도우의 사이즈 또는 사이즈의 범위, 자식 윈도우의 사이즈가 가변되는지 여부, 및 자식 윈도우를 통하여 유저가 이용 가능하게 될 기능 등과 같은 것들을 지정할 수 있다. 예를 들면, 이메일 프로그램에 대한 자식 윈도우는 수신된 이메일 메시지들의 리스트를 디스플레이하는 제1 모드, 이메일 프로그램의 동작 파라미터들을 변경시키기 위한 다양한 윈도우 컨트롤들을 디스플레이하는 제2 모드 및 이메일 메시지들의 선택 가능한 리스트 및 선택된 단일 이메일 메시지의 컨텐츠를 보기 위한 스크롤러블 윈도우, 등을 디스플레이하는 제3 모드를 가질 수 있다.
일 실시예에서, 미리 정해진 디스플레이 방식에 따라서 자식 윈도우 프리젠테이션 영역 내에 자식 윈도우들이 배치된다. 일반적으로 디스플레이 방식은 자식 윈도우 프리젠테이션 영역 내의 자식 윈도우들 사이에 요청된 공간적 관계를 지정한다. 예를 들어, 그리고 제한됨이 없이, 여기에서 "풀 디스플레이 영역 방식(full display area scheme)"으로 호칭되는 디스플레이 방식에 따라, 자식 윈도우 프리젠테이션 영역 내의 모든 이용 가능한 면적(real estate)이 자식 윈도우들에 의하여 완전히 점유되고(fully occupied), 어떠한 자식 윈도우들도 서로 중첩하지 않는 방식으로 자식 윈도우 프리젠테이션 영역 내에 자식 윈도우들이 배열된다.
자식 윈도우의 모드가 변경되는 경우와 같이, 자식 윈도우들 중 하나의 사이즈가 변경되는 경우, 현재의 디스플레이 방식이 유지되도록 다른 자식 윈도우들 중 하나 이상의 사이즈가 조정될 필요가 있을 것이다. 예를 들면, 풀 디스플레이 영역 방식에 따라, 하나의 자식 윈도우의 사이즈가 변경되는 경우, 다른 자식 윈도우들 중 하나 이상의 사이즈가 변경되어, 모든 자식 윈도우들은 자식 윈도우 프리젠테이션 영역을 완전히 점유하는 비중첩 방식으로 계속 디스플레이된다.
일 실시예에서, 주어진 디스플레이 방식이 유지되도록 자식 윈도우들의 모드들을 변경시키는 것은 윈도우 관리 모듈에 의하여 수행된다. 이 실시예들에서, 윈도우 관리 모듈은 특정한 디스플레이 방식을 유지하기 위하여, 자식 윈도우들의 각각이 어느 모드에 있게 되는지를 결정한다.
일부 실시예들에서, 윈도우 관리 모듈은 "자식 윈도우 랭킹 오더(child window ranking order)"를 이용하여 디스플레이 방식을 유지한다. 여기에서 사용될 때, "자식 윈도우 랭킹 오더"는 미리 정해진 기준에 기초한 자식 윈도우들의 순차 랭킹이다. 자식 윈도우 랭킹 오더는 자식 윈도우들에 대하여 중요성의 상대적 오더(relative order of importance)를 지정한다. 이 중요성의 오더는 그 후, 존재한다면 어떤 자식 윈도우들이 디스플레이 방식을 유지하기 위하여 자신의 모드들을 변경할 지를 결정할 때 이용된다. 예를 들면, 일 실시예에서, 보다 적은 디스플레이 면적을 요구하는 모드로 자식 윈도우가 전환될 필요가 있는 것으로 결정되는 경우, 높은 중요성의 오더를 갖는 자식 윈도우보다는, 낮은 중요성의 오더를 갖는 자식 윈도우가 보다 적은 디스플레이 리얼 스테이트를 요구하는 모드로 전이되는 것이 바람직할 것이다.
일부 실시예들에서, 윈도우 관리 모듈은 자식 윈도우들 각각에 대하여 "자식 윈도우 모드 프로모션/디모션 시퀀스"를 이용하여 디스플레이 방식을 유지한다. 여기에서 사용될 때, "자식 윈도우 모드 프로모션/디모션 시퀀스(child window mode promotion/demotion sequence)"는 주어진 자식 윈도우의 모드들의 순차적인 오더링(ordering)이다. 통상적으로, 반드시는 아니지만, 모드들은 각각의 모드가 얼마나 많은 디스플레이 면적을 요구할지에 따라서 자식 윈도우 내에서 오더된다. 하나의 모드로부터 다른 모드로 자식 윈도우를 변경하는 경우, 자식 윈도우는 그 후, 더 많거나 더 적은 디스플레이 면적이 요구되는지에 의존하여, 모드 시퀀스 내에서 다음 상위 또는 하위 모드로 전이된다.
일부 실시예들에서, 윈도우 관리 모듈은 자식 윈도우 랭킹 오더 및 자식 윈도우 모드 프로모션/디모션 시퀀스 모두를 이용하여 디스플레이 방식을 유지한다.
이제 도 1을 참조하여, 여기에서 설명된 바와 같은, GUI 프리젠테이션 및 관리가 실시될 수 있는 하나의 가능성 있는 컴퓨팅 장치(100)가 도시된다. 특히, 도 1은 핸드헬드 컴퓨팅 장치(100)를 도시한다. 이하의 설명은 도 1에 도시된 핸드헬드 컴퓨팅 장치(100)에 대하여 이루어지지만, 여기에 기술된 GUI 프리젠테이션 및 관리는 GUI를 프리젠팅하는데 적절한 소프트웨어 및 하드웨어를 포함하거나 그에 액세스하는 임의의 컴퓨팅 장치, 컴퓨팅 시스템, 등에서 구현될 수 있는 것이 이해되어야 한다.
여기에 설명된 바와 같이, GUI 프리젠테이션 및 관리가 실시될 수 있는 컴퓨팅 장치들의 다른 유형들의 예들은, 제한 없이, 퍼스널 컴퓨터들, 마이크로프로세서 기반 또는 프로그래머블 소비자 또는 자동차 전자 장치, 네트워크 PC, 셋톱 박스, 미니컴퓨터, 게임 콘솔, 메인프레임 컴퓨터, 전자 테스팅 장비, 등을 포함한다. 여기에 기술된 바와 같은 GUI 프리젠테이션 및 관리는 또한 분산 컴퓨팅 환경(distributed computing environment)에서 구현될 수 있으며, 여기에서 동작들의 수행 및 데이터의 저장은 통신 접속을 통하여 링크되는 프로세싱 장치들에 걸쳐 분산될 수 있다.
도 1에 도시된 바와 같이, 컴퓨팅 장치(100)는 프로세서(102), GUI(106)가 렌더링되는 디스플레이(104), 컨트롤 패널(107), 및 컴퓨터 판독 가능 매체(108)를 포함한다. 디스플레이(104)는 컴퓨팅 장치(100)에 물리적으로 통합되거나 컴퓨팅 장치(100)로부터 물리적으로 분리될 수 있다. 어느 경우에나, 디스플레이(104)는 GUI(106)를 디스플레이하는데 적절한 메커니즘 및 기능을 가질 것이다. 디스플레이(104)는 또한 유저가 GUI(106)와 상호작용할 수 있게 하는 터치 스크린, 소프트 키, 스타일러스 센서, 등과 같은 메커니즘을 포함할 수 있다. 예를 들면, 도시된 바와 같이, 디스플레이(104)는, 유저가 GUI(106)에 프리젠팅된 다양한 비주얼 및 기능 엘리먼트들(예를 들면, 윈도우즈, 윈도우즈 컨트롤, 등)과 상호 작용하는데 이용될 수 있는 터치 스크린(110) 및 스타일러스(112)를 포함한다.
컨트롤 패널(107)은 GUI(106)와의 유저 상호 작용을 용이하게 하는 키보드 및 다양한 다른 유저 입력 메커니즘을 포함한다. 디스플레이(104) 및 컨트롤 패널(107) 이외에, 컴퓨팅 장치(100)는 다른 입력 장치들(예를 들면, 마우스, 마이크로폰, 등) 및 출력 장치들(예를 들면, 스피커들, 프린터들, 및 다른 주변 장치들, 등)을 포함하거나, 그들에 동작 가능하게 접속될 수 있다. 컴퓨팅 장치(100)는 또한 다른 컴퓨터, 컴퓨터 네트워크, 주변 장치, 입력 장치 등과의 무선 또는 유선 기반 통신을 용이하게 하는 통신 접속을 포함할 수 있다.
여기에서 사용될 때, 컴퓨터 판독 가능 매체(108)는 컴퓨터에 의하여 액세스 및 이해될 수 있는 형태로 인코드되는 정보를 저장 또는 구현할 수 있는 임의의 매체일 수 있다. 컴퓨터 판독 가능 매체의 전형적인 형태들은 제한 없이 휘발성 및 비휘발성 메모리, 분리성 및/또는 비분리성 매체를 포함하는 데이터 저장 장치들, 및 통신 매체를 포함한다.
통신 매체는 반송파 또는 다른 전송 메커니즘과 같이, 변조된 데이터 신호 내에 컴퓨터 판독 가능한 정보를 구현하며, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호 내의 정보가 암호화되도록 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크(wired network) 또는 직접 유선 접속(direct-wired connection)과 같은 유선 매체, 및 음향(acoustic), RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다.
도 1에 도시된 실시예에서, 컴퓨터 판독 가능 매체(108)는 하나 이상의 프로세스들(116), GUI 관리 모듈(118), 및 윈도윙 서브 시스템(122)을 포함한다. 여기에 기술된 다양한 실시들에서, 프로세스들(116), GUI 관리 모듈(118), 및 윈도윙 서브 시스템(122)은 컴퓨터 판독 가능 매체(108)에서 구현된 소프트웨어 모듈들을 포함하거나 이들로 구성된다. 소프트웨어 모듈들은 다양한 형태들 및/또는 포맷들의 컴퓨터 실행 가능 명령어들, 및/또는 데이터, 등을 포함하거나 구현할 수 있다. 소프트웨어 모듈들은 특정한 태스크들을 수행하거나 특정한 추상 데이터형들을 실시하는 다양한 서브 모듈들, 루틴들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함할 수 있다.
여기에서는 소프트웨어 모듈들이 컴퓨터 판독 가능 매체(108)에서 구현되고 프로세서(102) 상에서 실행되는 것으로 기술되지만, 프로세스들(116), GUI 관리 모듈(118) 및 윈도윙 서브 시스템(122)은 대안적으로는 하드웨어, 펌웨어, 또는 소프트웨어, 하드웨어, 및/또는 펌웨어의 다양한 조합으로서 전부 또는 일부가 실시될 수 있음이 이해될 것이다. 또한, 여기에서는 컴퓨팅 장치(100)에서 실시되는 것으로 기술되지만, 일부 실시예들에서는, 프로세스들(116), GUI 관리 모듈(118), 및 윈도윙 서브 시스템(122) 중 어느 하나 또는 모두는 분산 컴퓨팅 환경에서 전부 또는 일부가 실시될 수 있으며, 여기에서 동작들의 수행 및 데이터의 저장은 통신 네트워크를 통하여 링크되는 프로세싱 장치들에 걸쳐 분산될 수 있다.
일반적으로, 윈도윙 서브 시스템(122)은 디스플레이(104) 상에서 윈도우들 및 윈도우 컨트롤들을 관리 및 프리젠팅하는 것과 관련하여 다양한 동작들을 처리한다. 윈도윙 서브 시스템(122)은, 제한 없이, 컴퓨팅 장치(100) 및 GUI(106)와의 유저 상호 작용들(예를 들면, 키스트로크, 스타일러스 움직임, 및 컨트롤 선택, 등)을 프로세스들(116) 및/또는 컴퓨팅 장치(100)의 오퍼레이팅 시스템(도시하지 않음)에 대한 메시지들로 번역(translating)하는 것, 메시지 큐잉(message queuing), GUI(106)의 다양한 측면들의 생성 및 관리와 같은 것들을 처리할 수 있다. 예를 들면, 윈도윙 서브 시스템(122)은 윈도우, 윈도우 컨트롤, 그래픽, 텍스트, API 및/또는 다른 리소스들과 같은, GUI(106)의 기능적 특징들 및 통상적인 비주얼 엘리먼트들을 정의 및 관리할 수 있다.
당업자는 디스플레이 상에 GUI의 프리젠테이션을 제공하거나 용이하게 하는 윈도윙 서브 시스템들의 다수의 상이한 유형들이 존재하는 것을 이해할 것이다. 통상적으로, 그러한 윈도윙 서브 시스템들은 오퍼레이팅 시스템의 일부이거나, 또 그와 연관된다. 그러한 윈도윙 서브 시스템들을 제공하는 오퍼레이팅 시스템들의 일부 예들은, 제한 없이, MICROSOFT®WINDOWS® 오퍼레이팅 시스템(예를 들면, WINDOWS®XP, WINDOWS® CE, 등)의 다양한 버전들, UNIX® 오퍼레이팅 시스템의 다양한 버전들, 및 다른 오퍼레이팅 시스템들을 포함한다. 일부 실시들에서, 윈도윙 서브 시스템(122)은 이 윈도윙 오퍼레이팅 시스템들 중 하나의 일부가 될 수 있거나, 또는 그와 연관된다. 다른 실시예에서, 윈도윙 서브 시스템(122)은 오퍼레이팅 시스템의 일부이거나, 또는 그와 별도의 다른 전유(proprietary), 비전유, 현재 이용 가능하거나, 나중에 개발된 윈도윙 시스템들을 포함할 수 있다.
당업자는 또한 윈도윙 서브 시스템은 보통은 GUI의 비주얼 엘리먼트들을 직접 디스플레이 상에 렌더링하지 않는 것을 이해할 것이다. 오히려, 컴퓨팅 장치들은 보통은 윈도윙 서브시스템 또는 오퍼레이팅 시스템으로부터 수신된 데이터에 기초하여 디스플레이 상에 GUI를 렌더링하는 다양한 하드웨어 및/또는 소프트웨어 컴포넌트들(예를 들면, 그래픽 카드, 액셀러레이터, 등)을 포함한다.
도 1에 도시된 바와 같이, 일 실시예에 따르면, GUI(106)는 정의된 자식 윈도우 프리젠테이션 영역(132)을 갖는 부모 윈도우(130)를 포함한다. 자식 윈도우 프리젠테이션 영역(132) 내에 다수의 자식 윈도우들(134-144)이 렌더링된다. 자식 윈도우 프리젠테이션 영역(132)에는 6개의 자식 윈도우들(134-144)이 도시되지만, 보다 적거나 보다 많은 윈도우들이 자식 윈도우 프리젠테이션 영역(132)에 프리젠팅될 수 있음이 주목되어야 한다.
일부 실시예들에서, 각각의 자식 윈도우(134-144)는 특정 프로세스와 연관되며, 그에 대한 GUI를 프리젠팅한다. 이전에 언급된 바와 같이, 그리고 여기에서 사용될 때, 프로세스는 자식 윈도우를 통하여 정보를 받고/받거나 전달하는 임의의 프로그램, 프로세스, 서비스, 등일 수 있고/있거나 자식 윈도우를 통하여 유저에 의하여 상호 작용하고/작용하거나 제어될 수 있다.
부모 윈도우(130)는 다양한 비주얼 스타일들(예를 들면, 윈도우 형상, 경계 유형, 및 컬러, 등)로 디스플레이될 수 있고 임의의 수의 윈도우 컨트롤들을 포함할 수 있다. 윈도우 컨트롤의 예들은 툴바, 버튼, 텍스트박스, 다이얼로그 박스, 리스트 박스, 콤보 박스, 편집 박스, 체크 박스, 마법사, 전유 시트, 라디오 버튼, 캘린더, 프로그레스 바, 스크롤바, 팔레트, 탭, 캐롯, 서브 윈도우, 등을 포함하지만, 이들에 한정되는 것은 아니다. 예를 들어, 도 1에 도시된 실시예에서, 부모 윈도우(130)는 직사각형 형상이고, 툴바(124)를 포함하며, 다양한 윈도우 컨트롤들(126)을 포함한다. 다른 실시에서, 부모 윈도우(130)는 직사각형 이외의 형상일 수 있고, 툴바가 없거나 다른 유형 또는 유형들의 툴바들을 가질 수 있으며, 다른 윈도우 컨트롤들을 가질 수 있다. 후술된 바와 같이, 일부 실시예들에서, 부모 윈도우(130)의 비주얼 및 기능적 속성들은 부모 윈도우 모듈(250)에 의하여 한정된다(도 2).
자식 윈도우 프리젠테이션 영역(132)은 부모 윈도우(130) 내에 비주얼 영역을 포함하고, 그 안에 자식 윈도우들(134-144)이 렌더링된다. 자식 윈도우 프리젠테이션 영역(132)은 자식 윈도우들(134-144, 등)을 분리하는, 외부 경계 또는 내부 경계들과 같은 다양한 비주얼 속성들 또는 특징들을 가질 수 있다. 반대로, 자식 윈도우 프리젠테이션 영역(132)은 비주얼 속성들 또는 특징들을 갖지 않을 수 있다. 후술된 바와 같이, 일부 실시예들에서, 자식 윈도우 프리젠테이션 영역(132)의 비주얼 및 기능적 속성들은, 부모 윈도우 모듈(250)에 의하여 정의된다(도 2).
여기에 기술된 다양한 실시예들에서, 각각의 자식 윈도우(134-144)는 자식 윈도우와 연관된 다수의 비주얼/기능적 모드들 중 하나에 따라 디스플레이된다. 일반적으로, 각각의 모드는 그 연관된 자식 윈도우에 대한 윈도우의 비주얼 레이아웃을 지정한다 예를 들면, 모드는 그 연관된 자식 윈도우의 사이즈, 형상, 및/또는 컬러뿐만 아니라, 그 연관된 자식 윈도우 내의 윈도우 컨트롤들의 유형, 수, 및/또는 배열을 지정할 수 있다.
추가적으로, 각각의 모드는 그 연관된 자식 윈도우에 프리젠팅된 윈도우 컨트롤들을 통하여 유저에 액세스 가능하게 될 기능성 또는 기능성의 조합을 지정할 수 있다. 모드는 그 연관된 자식 윈도우에 텍스트 또는 그래픽 정보가 디스플레이될 방법을 지정할 수 있다. 모드는 그 연관된 자식 윈도우가 사이즈 조정 가능한지 여부와, 만일 자식 윈도우가 조정 가능하다면, 자식 윈도우가 조정되는 방식 및 조정 가능한 윈도우에 대한 사이즈의 범위를 지정할 수 있다. 모드는 그 연관된 자식 윈도우가 유저 및/또는 시스템 선택 가능한지 여부를 지정할 수 있다. 모드는 또한 자식 윈도우가 숨겨지는지, 즉 디스플레이되지 않는지 여부를 지정할 수 있다. 후술된 바와 같이, 일부 실시예들에서, GUI 관리 시스템(118)의 일부이거나, 그에 의하여 참조될 수 있는 자식 윈도우 모듈들(도 2)에 의하여 자식 윈도우의 모드들이 정의된다.
일부 실시예들에서, 미리 정해진 디스플레이 방식에 따라 자식 윈도우 프리젠테이션 영역(132) 내에 자식 윈도우들(134-144)이 배열된다. 일반적으로, 디스플레이 방식은 자식 윈도우 프리젠테이션 영역(132) 내의 자식 윈도우들 사이에 요청된 공간 관계(required spatial relationship)를 지정한다. 예를 들면, 제한 없이, 디스플레이 방식은 자식 윈도우들이 서로 중첩할 수 있는지 여부, 자식 윈도우들이 전체 자식 윈도우 프리젠테이션 영역을 차지할 필요가 있을지 여부, 자식 윈도우들이 자식 윈도우 프리젠테이션 영역에서 서로에 대하여 수직으로 또는 수평으로 배열되는지 여부, 등을 지정할 수 있다.
예를 들어, 여기에서 "풀 디스플레이 영역 방식"으로 호칭되는 일 디스플레이 방식에 따르면, 자식 윈도우 프리젠테이션 영역(132) 내의 모든 이용 가능한 디스플레이 면적이 자식 윈도우들에 의하여 완전히 점유되고, 서로 중첩되는 자식 윈도우들이 없게 되는 방식으로 모든 자식 윈도우들이 자식 윈도우 프리젠테이션 영역 내에 배열된다.
여기에서 "타일링 방식(tiling scheme)"으로 호칭되는 다른 디스플레이 방식에 따르면, 모든 자식 윈도우들은 다각형 형상이며 중첩하는 자식 윈도우들이 없도록 자식 윈도우 프리젠테이션 영역 내에 배열된다.
"수직 직사각형 타일링 방식(vertical rectangular tiling scheme)"으로 호칭되는 다른 디스플레이 방식에 따르면, 모든 자식 윈도우들은 직사각형 형상이며 중첩하는 자식 윈도우들이 없도록 자식 윈도우 프리젠테이션 영역(132) 내에 수직으로 배열된다. 도 1은 수직 직사각형 타일링 방식을 예시한다.
당업자는 디스플레이 방식에 의하여 지정될 수 있는 다양한 형상들 및 사이즈들의 윈도우들의 많은 가능한 조합들 및 배열들이 존재하는 것을 이해할 것이다. 예를 들면, 도 1에 도시된 수직 직사각형 타일링 방식에 따르면, 하나의 자식 윈도우(134-144)의 사이즈가 변경되는 경우, 자식 윈도우 프리젠테이션 영역(132)을 완전히 점유하는 비중첩 방식으로 모든 자식 윈도우들 (134-144)이 계속 디스플레이되도록 다른 자식 윈도우들 중 하나 이상의 사이즈가 변경될 필요가 있다.
여기에 기술된 실시예들 중 일부에 따르면, 디스플레이 방식을 유지하는 것은 GUI 관리 모듈(118)의 기능(function)이다. 이해되는 바와 같이, GUI 관리 모듈(118)이 디스플레이 방식을 유지하는 정확한 방식은, 유지되고 있는 디스플레이 방식의 유형, 이용되고 있는 윈도윙 시스템의 유형, 및 다른 인자들에 따라, 변화할 수 있다. 그러나, 여기에 기술된 다양한 실시예들에 따르면, GUI 관리 모듈(118)은, 자식 윈도우 프리젠테이션 영역(132) 내의 자식 윈도우들(134-144)의 배열이 디스플레이 방식을 따르도록, 하나 이상의 자식 윈도우들(134-144)의 사이즈 및/또는 모드 또는 모드들을 변경시키거나, 또는 그 변경을 유발시킴으로써 디스플레이 방식을 유지한다.
일부 실시예들에 따르면, GUI 관리 모듈(118)은 어느 자식 윈도우 또는 윈도우들(134-144)이 자식 윈도우 랭킹 오더를 이용하여 그들의 사이즈 및/또는 모드들이 변경되도록 하여야 하는지 결정한다. 일반적으로, 자식 윈도우 랭킹 오더는 모드 변경을 위하여 자식 윈도우를 선택하는데 바람직한 오더를 지정한다.
이제 도 2를 참조하여, GUI 관리 모듈(118)의 하나의 특정한 실시예를 상세히 예시하는 블럭도가 도시된다. 도시된 바와 같이, GUI 관리 모듈(118)은 디스플레이 방식 관리 모듈(248), 다수(N개)의 자식 윈도우 모듈들(252-262), 및 부모 윈도우 모듈(250)을 포함하거나 참조할 수 있다.
도 2에 도시된 바와 같이, 각각의 자식 윈도우 모듈(252-262)은 단일의 자식 윈도우(134-144)와 연관되며, 자식 윈도우 모듈과 연관된 자식 윈도우의 비주얼 및/또는 기능적 특성들을 정의하는 정보를 포함한다. 예를 들면, 일 실시예에서, 각각의 자식 윈도우 모듈은 자식 윈도우 모듈과 연관된 자식 윈도우의 모든 가능한 비주얼 모드들을 지정하는 정보를 포함한다. 또한, 각각의 자식 윈도우 모듈은 각각의 가능한 모드들의 비주얼 프리젠테이션을 정의하는데 사용된, 다양한 데이터, 데이터 구조, 및/또는 로직을 포함할 수 있다. 이전에 기술된 바와 같이, 일부 실시예에서, 이 데이터 및 로직은, 자식 윈도우 프리젠테이션 영역(132)에 자식 윈도우를 디스플레이하는 경우, 전체 또는 부분적으로 윈도윙 서브 시스템(122)에 의하여 이용된다.
일부 실시예들에서, 각각의 자식 윈도우 모듈(252-262)은 관련된 자식 윈도우들의 렌더링을 지정하기 위하여 절차들, 함수들, 루틴들, 데이터, 등을 구현하는 컴퓨터 판독 가능 명령들(즉, "코드")을 포함 또는 참조한다. 그러나, 이제 기술될 실시예들에서, 각각의 자식 윈도우 모듈(252-262)은 자식 윈도우들을 렌더링하는 경우 GUI 관리 모듈(118) 및/또는 윈도윙 서브 시스템(122)에 의하여 액세스 및 이용되는 다양한 데이터 및/또는 로직을 포함하거나 참조한다.
일반적으로, 부모 윈도우 모듈(250)은 부모 윈도우(130)의 비주얼 및/또는 기능적 특성을 정의하는 정보를 포함한다. 예를 들어, 일 실시예에서, 부모 윈도우 모듈(250)은 부모 윈도우(130) 내에 프리젠팅된 윈도우 컨트롤들을 통하여 유저가 액세스 가능하게 될 기능 또는 기능의 조합을 지정하는 정보를 포함한다. 부모 윈도우 모듈(250)은 부모 윈도우(250)에 텍스트 또는 그래픽 정보가 디스플레이될 방법을 지정할 수 있다. 부모 윈도우 모듈(250)은 부모 윈도우(250)가 사이즈 조정 가능한지 여부, 그리고 만일 부모 윈도우(250)가 조정 가능하다면, 부모 윈도우(250)가 조정될 수 있는 방식을 지정할 수 있다. 부모 윈도우 모듈(250)은 또한 키보드, 스타일러스 및/또는 마우스와 같은 것들로부터의 입력이 실시될 수 있는지 여부 및 그 방법과 같은 입력 방법들을 지정할 수 있다. 부모 윈도우 모듈(250)은, 물론, 부모 윈도우(130)의 다른 비주얼 및/또는 기능적 특성들을 지정할 수 있다.
도 3은 자식 윈도우 모듈(252)의 예시적인 일 실시예를 도시한다. 여기에서는 대표적인 자식 윈도우 모듈로서 자식 윈도우 모듈(252)이 기술되고 있음이 이해될 것이다. 자식 윈도우 모듈(252)에 대하여 기술된 동일한 특성들 및 기능성은 자식 윈도우 모듈들(252-262) 중 어느 하나에, 또는 GUI 관리 모듈(118) 이외의 시스템들의 일부이거나, 또는 그와 함께 이용되는 자식 윈도우 모듈들에서 프리젠팅 수 있다.
도 3에 도시된 자식 윈도우 모듈(252)의 실시는, 제한 없이, 자식 윈도우 모드 프로모션/디모션 시퀀스(308), 현재 모드 표시자(310), 자식 윈도우 프리젠테이션 데이터(312), 자식 윈도우 속성 데이터(314), 및 모드 데이터(316)를 포함한다.
자식 윈도우 모드 프로모션/디모션 시퀀스(308)는 자식 윈도우 모듈(252)과 연관된 자식 윈도우의 모든 이용 가능한 모드들을 지정한다. 예를 들면, 제한 없이, 도 3에 도시된 예시적인 자식 윈도우 모드 프로모션/디모션은 자식 윈도우 모듈(252)과 연관된 자식 윈도우가 5개의 가능한 모드들, 즉 모드 1U, 모드 2b, 모드 3S, 모드 5M 및 모드 6을 가지는 것을 나타낸다.
자식 윈도우 모드 프로모션/디모션 시퀀스(308)는 또한 다양한 모드들 사이에서 연장하는 화살표에 의하여 도 3에 표시되는 자식 윈도우의 모드들의 프로모션 및 디모션 오더를 지정한다. 예를 들면, 자식 윈도우 모드 프로모션/디모션 시퀀스(308)는, 자식 윈도우 모듈(252)과 연관된 자식 윈도우가 현재 모드 2b에 있다면, 단일의 디모션(single demotion)으로 모드 1U로 디모션될 수 있거나 또는 단일의 프로모션(single promotion)으로 모드 3S로 프로모션될 수 있는 것을 나타낸다. 유사하게, 자식 윈도우 모듈(252)과 연관된 자식 윈도우가 현재 모드 5M에 있다면, 자식 윈도우 모드 프로모션/디모션 시퀀스(310)는 단일의 디모션으로 자식 윈도우는 모드 3S로 디모션될 수 있거나, 또는 단일 프로모션으로 모드 6으로 프로모션될 수 있는 것을 나타낸다.
현재 모드 표시자(310)는 자식 윈도우 모듈(252)과 연관된 자식 윈도우의 현재 모드를 지정한다. 예를 들면, 도 3에 도시된 현재 모드 표시자(310)는 자식 윈도우 모듈(252)과 연관된 자식 윈도우는 현재 모드 2b에 따라 디스플레이되고 있는 것을 나타낸다. 자식 윈도우 모듈(252)과 연관된 자식 윈도우의 모드가 프로모션 또는 디모션되는 경우, 현재 모드 표시자(310)는 그 후 변경을 표시하는데 적절하게 수정된다.
통상적으로, 반드시는 아니지만, 각각의 모드가 얼마나 많은 디스플레이 면적을 요구할 수 있거나 요구할 지에 따라 자식 윈도우 모드 시퀀스(308) 내에서 모드들이 오더된다. 이 실시예들에서, 디스플레이 면적의 보다 큰 양을 요구하는 모드는 보다 적은 디스플레이 면적을 요구하는 모드보다 "상위 오더된(higher ordered)" 모드로 간주될 것이다. 일부 경우에 하나 이상의 모드들은 사이즈가 변경 가능할 수 있다. 그 경우, 모드들의 최대 크기들은 프로모션/디모션 시퀀스로 모드들의 상대적인 오더링을 결정 또는 지정하는데 이용될 수 있다. 예를 들어, 일부 실시예들에서, 제2 모드의 고정된 또는 최대 가변 사이즈보다 더 큰 최대 가변 사이즈를 갖는 제1 모드는 제2 모드 보다 상위 오더된 것으로 언급될 수 있다.
통상적으로, 반드시는 아니지만, 한 모드로부터 다른 모드로 자식 윈도우를 변경하는 경우, 자식 윈도우는 그 후 보다 많거나 또는 보다 적은 디스플레이 면적인 요구되는지 여부에 따라, 그 모드 시퀀스에서 그 현재 모드로부터 다음 상위 또는 하위 모드로 전이된다.
자식 윈도우 프리젠테이션 데이터(312)는 자식 윈도우 프리젠테이션 영역(132)에서 자식 윈도우의 현재 사이즈 및 위치를 정의하는 다양한 데이터를 포함한다. 자식 윈도우 속성 데이터(314)는, 후술된 바와 같이, 자식 윈도우 랭킹을 결정하는데 사용되는 다양한 데이터를 포함한다. 이 데이터는, 제한 없이,자식 윈도우가 언제 포커스된 윈도우였는지, 자식 윈도우가 얼마나 오래 포커스된 윈도우였는지, 자식 윈도우가 얼마나 자주 포커스된 윈도우였는지, 또는 다양한 다른 데이터와 같은 것들을 포함할 수 있다.
모드 데이터(316)는 자식 윈도우의 각각의 모드의 특징 및 기능성을 정의하는 데이터를 포함한다. 이 데이터는, 각각의 모드에 대하여, 렌더링되는 윈도우 컨트롤들의 수 및 배열, 자식 윈도우가 리사이저블인지 여부, 리사이저블 윈도우의 최대 및/또는 최소 사이즈, 등과 같은 것들을 정의하는 파라미터들을 포함할 수 있다.
모드 데이터(316)는 또한 주어진 모드가 유저 선택 가능한지 및/또는 시스템 선택 가능한지 여부를 지정할 수 있다. 유저 선택 가능 모드(예를 들면, 모드 1U)는 자식 윈도우가 컴퓨팅 장치(100)와의 유저 상호 작용에 의해 취해진 조치에 기초하여 프로모션 또는 디모션될 수 있는 모드이다. 한편, 시스템 선택 가능 모드(예를 들면, 모드 3S)는 자식 윈도우가 컴퓨팅 장치(100)와의 유저 상호 작용에 의하여 취해진 조치에만 기초해서는 프로모션 또는 디모션될 수 없는 모드이다. 더 정확히는, 시스템 선택 가능 모드는 자식 윈도우가 리사이즈 로직(460)에 의하여 정의되거나 실시된 명령들에 기초하여 프로모션 또는 디모션되는 모드이다(이하 도 4에 관하여 기술됨).
일부 실시예들에 따르면, 각각의 자식 윈도우 모듈의 자식 윈도우 모드 프로모션/디모션 시퀀스는 마스터 모드 프로모션/디모션 시퀀스로 지정된 모드들의 시퀀스의 서브세트로 구성된다. 예를 들어, 자식 윈도우 모드 프로모션/디모션 시퀀스(308)는 도 3에 도시된 마스터 모드 프로모션/디모션 시퀀스(320)의 모드들의 서브세트로 구성된다.
자식 윈도우 모듈들은 다수의 방법으로 구현될 수 있다. 예를 들면, 자식 윈도우 모듈은 오브젝트 지향 환경의 오브젝트로서 구현될 수 있고 컴퓨터 판독 가능 매체 또는 매체들로 구현될 수 있다. 그러나, 자식 윈도우 모듈에 관하여 여기에 기술된 기능성은 또한 비오브젝트 지향 방식으로 구현될 수도 있으며, 오브젝트 지향 및 비오브젝트 지향된 많은 유형의 시스템들에서 구현될 수 있음이 이해되어야 한다.
이제 도 4를 참조하여, 윈도우 관리 모듈(248)의 예시적인 일 실시가 도시된다. 윈도우 관리 모듈(248)은, 제한 없이, 자식 윈도우 랭킹 오더(420), 자식 윈도우 랭킹(430), 픽셀 풀(440), 랭킹 로직(450), 및 리사이즈 로직(460)을 포함하며, 그 각각에 대하여는 후술될 것이다.
자식 윈도우 랭킹 오더(420)는 디스플레이되고 숨겨진 자식 윈도우들의 오더를 지정한다. 예를 들어, 자식 윈도우들(134-144)(CW(1)-CW(6))은 자식 윈도우 랭킹 오더(420)에 도시된다. 일반적으로, 자식 윈도우 랭킹 오더(420)는, 디스플레이 방식을 유지하기 위하여 하나 이상의 윈도우들의 모드 변경이 언제 요구되는지와 같은, 모드 변경에 대하여 자식 윈도우들이 선택될 수 있는 오더를 지정한다.
자식 윈도우 랭킹 오더(420) 내의 자식 윈도우들의 오더는 다양한 방식들로 결정될 수 있다. 예를 들어, 제한 없이, 자식 윈도우 랭킹 오더(420) 내의 자식 윈도우들의 오더는 자식 윈도우 이용의 히스토리 분석(historical analysis), 자식 윈도우 모드 변경들의 히스토리 분석, 또는 다양한 다른 분석들, 알고리즘들, 및/또는 발견적 방법(heuristics)에 따라 결정될 수 있다. 자식 윈도우 랭킹 오더(420) 내의 자식 윈도우들의 오더가 결정되는 정확한 방식은, 제한 없이, 지켜지고 있는 특정의 디스플레이 방식, GUI(106)가 채용되는 컴퓨팅 장치, 컴퓨팅 장치(100)의 의도된 사용, 및 다양한 다른 기능적 요건들과 같은 것들에 의존하여 변경될 수 있다.
일부 실시예들에서, 자식 윈도우 랭킹 오더(420)는 자식 윈도우 랭킹(430)을 이용하여 결정된다. 일반적으로, 자식 윈도우 랭킹(430)은 자식 윈도우들의 하나 이상의 랭킹들(432-436)을 포함한다. 자식 윈도우 랭킹 오더(420)의 경우, 각각의 자식 윈도우 랭킹(432-436)은 다양한 분석들, 알고리즘들, 및/또는 발견적 방법을 이용하여 다양한 방식들로 결정될 수 있다.
일 예로서, 자식 윈도우 랭킹(432)은 각각의 자식 윈도우들이 얼마나 최근에 사용되었는지에 기초하여 결정되는 것으로 도시된다. 특히, 본 실시예에서, 자식 윈도우 랭킹(432)은 가장 덜 최근에 사용된 자식 윈도우(CW(1))로부터 가장 최근에 사용된 자식 윈도우(CW(5))로 오더된다. 한편, 자식 윈도우 랭킹(434)은 자식 윈도우들의 사용의 빈도에 기초하여 결정되는 것으로 도시된다. 특히, 본 실시예에서, 자식 윈도우 랭킹(434)은 가장 적은 빈도로 사용된 자식 윈도우(CW(2))로부터 가장 많은 빈도로 사용된 자식 윈도우(CW(1))로 오더된다. 본 실시예에서, 자식 윈도우 랭킹(436)은 자식 윈도우 랭킹 오더(308) 내의 각각의 자식 윈도우의 현재 모드의 위치에 기초하여 오더된다. 이해되는 바와 같이, 자식 윈도우 랭킹은 다양한 다른 기준에 기초될 수 있다.
일부 실시예들에서, 자식 윈도우 랭킹 내의 각각의 자식 윈도우는 랭킹 내의 자식 윈도우 위치에 기초하여 랭킹값이 할당된다. 후술되는 바와 같이, 이 랭킹값들은 자식 윈도우 랭킹 오더(420)를 결정하는데 이용될 수 있다. 일 실시예에서, 자식 윈도우 랭킹 내의 제1 랭크된 윈도우로부터 자식 윈도우 랭킹 내의 최후 랭크된 윈도우로, 내림 차순(descending order)로 자식 윈도우 랭킹들 내의 윈도우들에 랭킹값들이 할당된다. 일 예로서, 자식 윈도우 랭킹들(430)의 각각의 자식 윈도우 랭킹 내의 제1 자식 윈도우는 6의 랭킹값(즉, RV=6)을 갖는 것으로 도시되고, 각각의 자식 윈도우 랭킹 내의 제2 자식 윈도우는 5의 랭킹값을 가지는 것으로 도시되며, 계속해서 내림 차순으로 각각의 자식 윈도우 랭킹 내의 랭킹 값이 1인 것으로 도시되는 제6 자식 윈도우에 이르게 된다. 도 4에 도시되고 설명된 랭킹값들은 오직 예시적인 것이 이해될 것이다.
일부 실시예들에서, 각각의 자식 윈도우 랭킹은 연관된 랭킹 가중치(ranking weight)를 갖는다. 예를 들면, 자식 윈도우 랭킹(432)은 가중치가 5인 것(W1=5)으로 도시되고, 자식 윈도우 랭킹(434)은 가중치가 3인 것(W2=3)으로 도시되며, 자식 윈도우 랭킹(436)은 가중치가 1인 것(W3=1)으로 도시된다. 도 4에 도시되고 설명된 랭킹 가중치들은 예시적인 것으로만 도시되는 것임을 이해할 것이다.
후술되는 바와 같이, 자식 윈도우 랭킹 오더(420)를 결정하는데 랭킹 가중치들이 이용될 수 있다. 각각의 자식 윈도우 랭킹과 연관된 랭킹 가중치는 다양한 방식들로 결정될 수 있다. 예를 들어, 제한 없이, 다양한 분석들, 알고리즘들, 및/또는 발견적 방법들을 이용하여 랭킹 가중치들이 결정될 수 있다. 일부 실시예들에서, 각각의 자식 윈도우 랭킹과 연관된 랭킹 가중치는 자식 윈도우 랭킹 오더(420)를 결정하는 경우 각각의 자식 윈도우 랭킹의 상대적인 중요성에 비례한다.
일단 결정되면, 랭킹 가중치들은 정적 또는 동적일 수 있다. 예를 들어, 일 실시예에서, 랭킹 가중치들은 "하드 코드(hard coded)"될 수 있다. 다른 실시예서, 랭킹 가중치들은 조정 가능하지만, 예를 들면, 유저 또는 관리자에 의하여, 또는 원격 가중치 업데이팅 메커니즘에 의하여 주로 고정될 수 있다. 또 다른 실시예에서, 랭킹 가중치들은 GUI(106), 컴퓨팅 장치(100)의 다양한 속성들, 및 그와의 상호 작용들 및/또는 컴퓨팅 장치(100)의 내부 또는 외부의 다른 속성들 또는 상호 작용들을 모니터링하는 알고리즘에 의하여 동적으로 조정될 수 있다.
상기한 바와 같이, 일부 실시예들에서, 자식 윈도우 랭킹 오더(420)는 랭킹 가중치들 및/또는 랭킹값들을 이용하여 결정된다. 예를 들면, 제한 없이, 일 실시예에서 자식 윈도우 랭킹 오더(420)는 랭킹 가중치들 및 랭킹 값들에 기초하여 윈도우들의 각각에 대하여 랭킹 스코어를 설정함으로써 결정된다. 자식 윈도우 랭킹 오더(420)는 그 후 랭킹 스코어들에 따라 윈도우들을 오더링함으로써 결정된다.
랭킹 가중치들 및 랭킹 값들이 이용되어 랭킹 스코어들을 설정할 수 있는 다수의 방식들이 존재한다. 예를 들면, 제한 없이, 일 실시예에서 자식 윈도우 랭킹값을 자식 윈도우를 포함하는 자식 윈도우 랭킹과 연관된 랭킹 가중치와 곱하기 함으로써 각각의 자식 윈도우 랭킹 내의 각각의 자식 윈도우에 대한 가중된 랭킹값이 결정된다. 각각의 자식 윈도우의 랭킹 스코어는 그 후 자식 윈도우 랭킹들의 각각의 자식 윈도우에 대한 가중된 랭킹을 합산함으로써 결정될 것이다.
예를 들어, 도 4에 프리젠팅된 예시적인 수들을 이용하여, 자식 윈도우 랭킹(432) 내의 CW1은 가중된 랭킹값이 30이며, 이것은 자식 윈도우 랭킹(432) 내의 CW(1)의 랭킹값 6과 자식 윈도우 랭킹(432)의 가중치 5를 승산함으로써 결정된다. 자식 윈도우 랭킹(434) 내의 CW1은 가중된 랭킹 값이 3이며, 이것은 자식 윈도우 랭킹(434) 내의 CW(1)의 랭킹 값 1과 자식 윈도우 랭킹(434)의 가중치 3을 승산함으로써 결정된다. 마지막으로, 자식 윈도우 랭킹(436) 내의 CW1은 가중된 랭킹 값이 6이며, 이것은 자식 윈도우 랭킹(436) 내의 CW(1)의 랭킹값 6과 자식 윈도우 랭킹(436)의 가중치 1을 승산함으로써 결정된다. 마지막으로, 자식 윈도우 랭킹들의 각각에 대하여 CW1에 대한 가중된 랭킹값들을 합산하여 CW1에 대한 랭킹 스코어가 39(즉, 30+3+6=39)가 된다.
각각의 자식 윈도우들에 대하여 유사한 계산들이 이루어져서, CW2에 대한 랭킹 스코어는 30이고, CW3에 대한 랭킹 스코어는 34이고, CW4에 대한 랭킹 스코어는 31이고, CW5에 대한 랭킹 스코어는 15이며, CW6에 대한 랭킹 스코어는 44이다. 이 계산된 랭킹 스코어들을 이용하여, 그 후 자식 윈도우들이 그들의 랭킹 스코어들에 따라, 하향 오더로 자식 윈도우 랭킹 오더(420)로 배열된다.
일부 실시예들에 따르면, 자식 윈도우 랭킹 오더(420), 자식 윈도우 랭킹들(430), 랭킹 가중치들, 랭킹값들, 및/또는 가중된 랭킹값들의 결정의 전부 또는 일부가 랭킹 로직(450)에 의하여 수행될 수 있다.
이하에 상세히 설명된 일부 실시예들에 따르면, 윈도우 관리 모듈(248)은 픽셀 풀(440)을 이용하여 디스플레이 방식을 유지한다. 일반적으로, 픽셀 풀(440)은 자식 윈도우 프리젠테이션 영역(122) 내에서 디스플레이 면적을 추적하는 메커니즘을 제공한다. 특히, 일부 실시예들에서, 픽셀 풀(440)은 자식 윈도우들에 할당되는 자식 윈도우 프리젠테이션 영역(122) 내에 디스플레이 면적의 양을 추적하는 메커니즘을 제공한다.
픽셀 풀(440)을 이용하여 디스플레이 면적의 할당이 추적될 수 있는 다수의 방식들이 존재한다. 예를 들면, 제한 없이, 일 실시예에서, 픽셀 풀(440)은 자식 윈도우 프리젠테이션 영역(122) 내의 디스플레이 면적이 "과소 할당된(under allocated)" 것인지, "과다 할당된(over allocated)" 것인지, 또는 "밸런스된(balanced)" 것인지 여부를 지정한다. 여기에서 사용될 때, "과소 할당된"은 자식 윈도우들에 할당된 디스플레이 면적이 자식 윈도우 프리젠테이션 영역(122) 내의 디스플레이 면적의 전체량보다 적은 것을 의미한다. 여기에서 사용될 때, "과다 할당된"은 자식 윈도우에 할당된 디스플레이 면적이 자식 윈도우 프리젠테이션 영역(122) 내의 디스플레이 면적의 전체량 보다 더 큰 것을 의미한다. 일부 실시예들에서, 픽셀 풀(440)은 과소 할당된 디스플레이 면적의 양 또는 과다 할당된 디스플레이 면적의 양을 지정할 수 있다. 여기에서 사용될 때, "밸런스된"은 자식 윈도우들에 할당된 디스플레이 면적이 자식 윈도우 프리젠테이션 영역(122) 내의 디스플레이 면적의 전체량과 일치하는 것을 의미한다.
디스플레이 면적을 표현하기 위하여 픽셀 풀(440)과 관련되어 이용된 단위들은 변화할 수 있다. 예를 들면, 일부 실시예들에서 디스플레이 면적은 픽셀들로 표현될 수 있다. 다른 실시예들에서 픽셀들의 라인들로 디스플레이 면적을 표현하는 것은 특히 자식 윈도우 프리젠테이션 영역(122)의 폭 및/또는 높이가 일정하게 유지되는 디스플레이 방식에 대하여 유용하다. 다른 실시예들에서, 디스플레이 면적은 픽셀들에 관련되지 않은 단위들로 표현될 수 있다. 이와 같이, 다양한 실시예들이 픽셀들 또는 픽셀들의 라인들에 관하여 기술되지만, 그러한 실시예들은 픽셀들 또는 픽셀들의 라인들 이외의 단위들을 이용할 수도 있음이 이해되어야 한다.
일부 실시예들에 따르면, 윈도우 관리 모듈(248)은 리사이즈 로직(460)을 이용하는 디스플레이 방식을 유지한다. 일반적으로, 리사이즈 로직(460)은 디스플레이 방식을 유지하기 위하여 다양한 동작들, 알고리즘들 루틴들, 등을 지정한다. 예를 들어, 일부 실시예들에 따르면, 리사이즈 로직(460)은 이제 각각 설명될, 도 5-7에 예시된 동작 흐름들 및 동작들의 전부 또는 일부를 실시한다.
도 5-7은 GUI를 관리 및 프리젠팅하는 경우 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름들을 도시한다. 도 5-7의 다음의 설명들은 도 1의 컴퓨팅 장치(100)를 참조하여 이루어진다. 특히, 도 5-7의 설명들은 GUI 관리 모듈(118)을 참조하여 이루어진다. 그러나, 도 5-7에 설명된 동작 흐름은 GUI 관리 모듈(118)에 의하여, 또는 컴퓨팅 장치(100)에서 수행되는 것에 한정되는 것은 아니라는 점이 이해되어야 한다. 도 5-7에 설명된 동작 흐름들 중 임의의 것, 또는 이 동작 흐름들에 설명된 임의의 개별 동작들은 분산 시스템들을 포함하는 다양한 다른 시스템들에서 실시될 수 있다. 또한, 도 5-7에 예시된 동작 흐름들의 각각은 동작 실행의 특정한 오더를 나타내는 한편, 다른 실시예들에서는 동작들은 상이하게 오더될 수 있음이 이해되어야 한다.
도 5는 윈도우 리사이즈 이벤트(506)의 검출 또는 발생에 응하여 윈도우 관리 모듈(248)에 의하여 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름(500)을 예시한다. 일부 실시예들에 따르면, 동작 흐름(500)은 리사이즈 로직(460)에 의하여 정의되고/정의되거나 구현된다.
일반적으로, 윈도우 리사이즈 이벤트는 윈도우의 사이즈 변화에 대하여 윈도윙 서브 시스템(122) 또는 GUI 관리 모듈(118)에 요청이 이루어지도록 하는 다양한 이벤트들 중 임의의 것일 수 있다. 예를 들면, 제한 없이, 부모 윈도우(130) 또는 자식 윈도우들(134-144) 중 하나가 어떤 종류의 윈도우 리사이징 컨트롤을 포함하는 경우, 유저가 그 컨트롤을 호출(invocation)하는 것 또는 유저가 그 컨트롤과 상호 작용하는 것은 윈도우 리사이즈 이벤트를 발생시킬 수 있다. 다른 예에서, 유저 상호 작용에 의하여 또는 GUI 관리 모듈(118)에 의하여 발생된 자식 윈도우 모드 변화는 자식 윈도우의 사이즈의 변화를 발생 또는 요청하여, 윈도우 리사이즈 이벤트를 발생시킬 수 있다.
일부 실시예들에 따르면, 리사이즈 이벤트가 발생하는 경우, 픽셀 풀(440)은 리사이즈 이벤트에 의하여 발생될 디스플레이 면적에서의 변화를 반영하도록 업데이트될 것이다. 리사이즈 이벤트가 부모 윈도우(130)의 리사이징에 관련되는 경우에, 부모 윈도우 모듈(250) 내에 부모 윈도우(130)의 사이즈를 정의하는 하나 이상의 파라미터들은 리사이즈를 반영하도록 업데이트될 것이며, 픽셀 풀(440)은 그에 따라 업데이트될 것이다. 후술된 바와 같이, 디스플레이(104) 상의 자식 또는 부모 윈도우의 실제 리사이즈는 통상적으로는 동작 흐름(500)의 이 포인트에서 발생하지 않을 것이다. 오히려, 디스플레이(104) 상의 자식 또는 부모 윈도우의 실제 리사이즈는 통상적으로는 리페인트 동작(526)에서 발생한다.
도시된 바와 같이, 리사이즈 이벤트 발생시, 윈도우 리사이즈 이벤트가 부모 윈도우(130) 또는 자식 윈도우들(134-144) 중 하나에 관련되는지 여부에 대한 결정이 동작(508)에서 이루어진다. 윈도우 리사이즈 이벤트가 부모 윈도우(130)에 관련되는 것으로 결정되면, 후술된 바와 같이, 동작 흐름(500)은 동작(518)으로 진행한다. 그러나, 윈도우 리사이즈 이벤트가 자식 윈도우(134-144)에 관련되는 것으로 동작(508)에서 결정되면, 동작 흐름(500)은 랭킹 업데이트 동작(510)으로 진행한다.
랭킹 업데이트 동작(510)에서, 자식 윈도우 랭킹들(430)(도 4)은, 분석들, 알고리즘들, 및/또는 발견적 방법이 랭킹들(432-436)을 결정하거나 정의한 것에 따라 업데이트된다. 다음, 가중된 랭킹 값 동작(512)에서, 가중된 랭킹 값들은 각각의 자식 윈도우들에 대하여 결정된다. 랭킹 스코어들은 그 후 랭킹 스코어 동작(514)에서 자식 윈도우들의 각각에 대하여 결정된다. 자식 랭킹 오더(420)(도 4)는 그 후 랭킹 스코어 동작(516)에서 결정된 랭킹 스코어에 기초하여 랭킹 오더 동작(516)에서 업데이트된다. 오더 동작(516)에 후속하여, 동작 흐름(500)은 동작(518)으로 진행한다.
다른 실시예들에서, 동작들(510-516)은 동작 흐름(500)의 외부에서 발생할 수 있다. 예를 들어, 일부 실시예들에서, 자식 윈도우가 리사이즈되는 경우 또는 자식 윈도우의 모드가 변경된 경우와 같이, 자식 윈도우의 사이즈가 변경된 경우 발생할 수 있다. 다른 실시예들에서, 부모 윈도우(130) 또는 자식 윈도우(134-144)에 대하여 리사이즈 이벤트가 발생하였다는 동작(508)에서의 결정과 무관하게, 또는 그에 더하여, 동작들(510-516)이 주기적인 간격으로 발생할 수 있다. 다른 실시예들에서, 동작들(510-516)의 실행은 일부 다른 이벤트 또는 스케쥴에 의하여 트리거될 수 있다.
동작(518)에서, 픽셀 풀(440) 내에 픽셀들이 과다 할당되어 있는지 또는 과소 할당되어 있는지 여부에 대한 결정이 이루어진다. 픽셀 풀(440) 내에 픽셀들이 과소 할당되어 있는 것으로 결정되면, 후술되는 바와 같이, 동작 흐름(500)은 픽셀 분배 동작(distribute pixel operation, 520)으로 진행한다. 픽셀 풀(440) 내에 픽셀들이 과다 할당되어 있는 것으로 결정되면, 후술되는 바와 같이, 동작 흐름(500)은 픽셀 획득 동작(acquire pixel operation, 522)으로 진행한다.
픽셀 분배 동작(520)에서, 하나 이상의 자식 윈도우들을 선택하여 과다 할당된 픽셀들을 받고 그 픽셀들을 선택된 윈도우들에 할당하기 위하여 다양한 동작들이 수행된다. 달리 말하면, 단계(520)에서, 하나 이상의 자식 윈도우들이 선택되어 그들의 사이즈(들)가 증가되며, 픽셀들이 픽셀 풀(440)로부터 취해져 상기 증가를 수용한다.
전술된 바와 같이, 일부 실시예들에 따라서, 선택된 자식 윈도우의 사이즈를 증가시키는 것은 선택된 자식 윈도우 모듈의 자식 윈도우 프리젠테이션 데이터(312)(도 3)에서 선택된 자식 윈도우의 사이즈를 정의하는 하나 이상의 파라미터들을 증가시키는 것을 포함한다.
픽셀 분배 동작(520)은 다수의 방식들로 수행될 수 있다. 픽셀 분배 동작(520)이 수행되는 정확한 방식은, 제한됨이 없이, 사용되는 특정한 디스플레이 방식 및 GUI 관리 모듈(118)의 특정한 프로그램/하드웨어 환경 및 구현과 같은 것들에 의존할 수 있다. 그러나, 일 실시예에서, 픽셀 분배 동작(520)은, 도 6을 참조하여 후술된, 동작 흐름(600)에 따라 구현된다.
픽셀 분배 동작(520)에 후속하여, 픽셀 풀(440)이 과다 할당되어 있는지 여부에 대한 결정이 동작(524)에서 이루어진다. 픽셀 풀(440)이 과다 할당되어 있는 것으로 동작(524)에서 결정되면, 동작 흐름(500)은 픽셀 획득 동작(522)으로 진행한다. 픽셀 풀(440)이 과다 할당되어 있지 않은 것으로 동작(524)에서 결정되면, 동작 흐름(500)은 후술된 조정 동작(adjust operation, 528)으로 진행한다.
픽셀 획득 동작(522)에서, 다양한 동작들이 수행되어 하나 이상의 자식 윈도우들을 선택하고, 그로부터 과소 할당된 픽셀들을 획득하고 픽셀 풀(440)에 대한 픽셀들을 획득한다. 달리 말하면, 동작(522)에서, 하나 이상의 자식 윈도우들이 선택되어 그들의 사이즈(들)이 감소되며, 픽셀들은 선택된 자식 윈도우들로부터 취해지고 픽셀 풀에 주어진다.
전술된 바와 같이, 일부 실시예들에 따르면, 선택된 자식 윈도우의 사이즈를 감소시키는 것은 선택된 자식 윈도우 모듈의 자식 윈도우 프리젠테이션 데이터(312) 내에 선택된 자식 윈도우의 사이즈를 정의하는 하나 이상의 파라미터들을 감소시키는 것을 포함한다.
픽셀 획득 동작(522)은 다수의 방식으로 수행될 수 있다. 픽셀 획득 동작(522)이 수행되는 정확한 방식은, 제한됨이 없이, 사용되고 있는 특정 디스플레이 방식 및 GUI 관리 모듈(118)의 특정 프로그램/하드웨어 환경 및 구현과 같은 것들에 의존할 수 있다. 그러나, 일 실시예에서, 픽셀 획득 동작(522)은 도 7에 간하여 후술된, 동작 흐름(700)에 따라 실시된다.
픽셀 획득 동작(522)에 후속하여, 픽셀 풀(440)이 과소 할당되어 있는지 여부에 대한 결정이 동작(526)에서 이루어진다. 픽셀 풀(440)이 과소 할당되어 있는 것으로 동작(526)에서 결정되면, 동작 흐름(500)은 전술된 픽셀 분배 동작(520)으로 진행한다. 픽셀 풀(440)이 과소 할당되지 않은 것으로 동작(526)에서 결정되면, 동작 흐름(500)은 후술된 조정 동작(528)으로 진행한다.
조정 동작(528)에서, 모든 자식 윈도우들(134-144)의 위치들이 조정된다. 일부 실시예들에서, 자식 윈도우의 위치를 조정하는 것은 자식 윈도우와 연관된 자식 윈도우 모듈(252)(도 2)의 자식 윈도우 프리젠테이션 데이터(312)(도 3) 내에 자식 윈도우의 위치를 정의하는 하나 이상의 파라미터들을 변경시키는 것을 포함한다.
조정 동작(528)에 후속하여, 자식 윈도우 프리젠테이션 영역(132) 내에서 모든 자식 윈도우들이 리페인트되며, 동작 흐름(500)은 종료한다.
도 6을 참조하여 이전에 설명된 바와 같이, 동작 흐름(500)의 픽셀 분배 동작(520)을 실시하는 경우 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름(600)이 도시된다. 일부 실시예들에서, 동작 흐름(500)은 리사이즈 로직(460)(도 4)에 의하여 정의 및/또는 실시된다.
도시된 바와 같이, 동작 흐름(600)의 개시시, 자식 윈도우 선택 동작(610)은 자식 윈도우 랭킹 오더(420)(도 4)에서 최상위 랭크를 갖는 자식 윈도우를 선택한다. 다음, 동작(612)에서, 선택된 자식 윈도우가 포커스된 자식 윈도우(focused child window)인지 여부에 대한 결정이 이루어진다. 여기에서 사용될 때, 포커스된 자식 윈도우는 유저 입력을 받도록 동작하는 자식 윈도우이다. 도 6에 도시된 픽셀 분배 동작(520)의 실시예에 따르면, 한 번에 하나의 자식 윈도우만이 유저 입력을 받도록 동작할 것이다. 따라서, 한 번에 오직 하나의 유저 윈도우만이 포커스된 자식 윈도우가 될 것이다.
일부 실시예에서는, 선택된 자식 윈도우가 포커스된 자식 윈도우인지 여부에 대한 결정은 윈도윙 서브 시스템(122)에 질의(querying)함으로써 이루어진다. 일부 실시예들에서, 이 결정은 선택된 윈도우의 자식 윈도우 속성 데이터(314) 내에서 포커스 속성을 조사함으로써 이루어진다. 다른 실시예에서, 선택된 자식 윈도우가 포커스된 자식 윈도우인지 여부에 대한 결정은 다른 방식들로 이루어질 수 있다.
선택된 자식 윈도우가 포커스된 윈도우인 것으로 동작(612)에서 결정되면, 동작 흐름(600)은 자식 윈도우 선택 동작(630)으로 진행하며, 여기에서는 자식 윈도우 랭킹 오더(420)에서 다음 상위 랭크를 갖는 자식 윈도우가 선택된다. 달리 말하면, 동작(630)에서, 자식 윈도우 랭킹 오더(420)가 조사되고 동작 흐름(600)에서 이전에 선택된 자식 윈도우 위의 다음 상위 랭크된 자식 윈도우가 선택된다. 한 번에 오직 하나의 자식 윈도우만이 선택되는 것이 이해되어야 한다. 이와 같이, 새로운 자식 윈도우가 선택되는 경우, 이전에 선택된 자식 윈도우는 더 이상은 선택된 자식 윈도우로 간주되지 않는다.
그러나, 선택된 자식 윈도우가 포커스된 윈도우가 아닌 것으로 동작(612)에서 결정되면, 동작 흐름(600)은 동작(614)으로 진행한다. 동작(614)에서, 선택된 자식 윈도우의 현재 모드가 자식 윈도우의 사이즈가 가변인 것을 지정하는지 여부에 대한 결정이 이루어진다. 달리 말하면, 선택된 자식 윈도우의 사이즈가 현재 모드에서 가변인지 여부에 대한 결정이 이루어진다. 일 실시예에서, 이 결정은 선택된 윈도우와 관련된 자식 윈도우 모듈의 모드 데이터(316) 내에서 사이즈 속성을 조사함으로써 이루어진다.
선택된 자식 윈도우의 사이즈가 현재 모드에서 가변인 것으로 결정되면, 동작 흐름(600)은 후술된 동작(616)으로 진행한다. 그러나, 동작(614)에서 선택된 자식 윈도우의 사이즈가 현재 모드에서 가변이 아닌 것으로 결정되면, 동작 흐름(600)은 후술된 동작(620)으로 진행한다.
동작(616)에서, 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있는지 여부에 대한 결정이 이루어진다. 일 실시예에서, 이 결정은 선택된 윈도우와 연관된 자식 윈도우 모듈의 모드 데이터(316) 내의 사이즈 속성을 조사함으로써 이루어진다. 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있지 않는 것으로 동작(616)에서 결정되면, 동작 흐름(600)은 후술된 리사이즈 동작(618)으로 진행한다. 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있는 것으로 동작(616)에서 결정되면, 동작 흐름(600)은 후술된 동작(620)으로 진행한다.
리사이즈 동작(618)에서, 픽셀 풀(440)이 조사되어 그곳에 과소 할당된 픽셀의 양을 결정한다. 과소 할당된 픽셀들의 양이 선택된 자식 윈도우의 사이즈를 그 최대의 가변 사이즈로 증가시키는데 필요한 픽셀 수 이상이라면, 선택된 자식 윈도우의 사이즈는 그 최대의 가변 사이즈로 증가된다. 그러나, 과소 할당된 픽셀들의 양이 선택된 자식 윈도우의 사이즈를 그 최대의 가변 사이즈로 증가시키는데 필요한 픽셀 수보다 작다면, 선택된 자식 윈도우의 사이즈는 이용 가능한 과소 할당된 픽셀들에 의하여 허용 가능한 최대의 양으로 증가된다. 일부 실시예들에서, 도 5를 참조하여 전술된 동작들(510-516) 중 임의의 것 또는 전부는 자식 윈도우의 리사이즈에 후속하여 또는 그와 함께 수행될 수 있다. 리사이즈 동작(618)에 후속하여, 동작 흐름(600)은 후술된 동작(622)으로 진행한다.
동작(620)에서, 선택된 자식 윈도우가 다른 모드로 진행될 수 있는지 여부에 대한 결정이 이루어진다. 즉, 선택된 자식 윈도우가 선택된 윈도우의 현재 모드보다 더 많은 디스플레이 면적을 요구하는 상위 오더 모드로 프로모션될 수 있는지 여부에 대한 결정이 이루어진다. 선택된 자식 윈도우가 상위 오더 모드로 프로모션될 수 없는 것으로 동작(620)에서 결정되면, 동작 흐름은 동작(622)으로 진행한다. 선택된 자식 윈도우가 상위 오더 모드로 프로모션될 수 있는 것으로 동작(620)에서 결정되면, 동작 흐름은 프로모션 동작(624)으로 진행한다.
프로모션 동작(624)에서, 선택된 자식 윈도우는 선택된 자식 윈도우의 프로모션/디모션 시퀀스(308)에서 그 다음 최상위 오더된 모드로 프로모션된다. 일부 실시예들에서, 선택된 자식 윈도우를 그 다음 최상위 모드로 프로모션하는 것은 선택된 윈도우와 연관된 자식 윈도우 모듈의 현재 모드 표시자(310)를 변경시키는 것, 자식 윈도우 프리젠테이션 데이터(312) 내의 적절한 사이즈 속성들을 변경시키는 것, 및 선택된 자식 윈도우에 할당된 픽셀들의 양을 반영하도록 픽셀 풀(440)을 업데이트하는 것을 포함한다. 일부 실시예들에서, 도 5와 관련하여 전술된 동작들(510-516) 중 임의의 것 또는 전부는 선택된 자식 윈도우의 프로모션에 후속하여 또는 그와 함께 수행될 수 있다. 프로모션 동작(624)에 후속하여, 픽셀 풀(440)은 과소 할당 유지될 수 있거나, 또는 과다 할당될 수 있음이 이해되어야 한다. 프로모션 동작(624)에 후속하여, 동작 흐름(600)은 동작(622)으로 진행한다.
동작(622)에서, 픽셀 풀이 과소 할당되어 있는지 여부에 대한 결정이 이루어진다. 픽셀 풀(440)이 과소 할당되어 있는 것으로 결정되면, 동작 흐름(600)은 전술된 자식 윈도우 선택 동작(630)으로 진행한다. 픽셀 풀(440)이 과소 할당되어 있지 않은 것으로 결정되면, 동작 흐름(600)은 종료한다.
도 7을 참조하여 이전에 설명된 바와 같이, 동작 흐름(500)의 픽셀 획득 동작(522)을 실시하는데 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름(700)이 도시된다. 일부 실시예들에 따르면, 동작 흐름(500)은 리사이즈 로직(460)(도 4)에 의하여 정의되고/정의되거나 실시된다.
도시된 바와 같이, 동작 흐름(700)의 개시시, 자식 윈도우 선택 동작(710)은 자식 윈도우 랭킹 오더(420)(도 4) 내의 최하위 랭크를 갖는 자식 윈도우를 선택한다. 다음, 동작(712)에서, 선택된 자식 윈도우가 포커스된 자식 윈도우인지 여부에 대한 결정이 이루어진다.
동작(712)에서 선택된 자식 윈도우가 포커스된 윈도우인 것으로 결정되면, 동작 흐름(700)은 자식 윈도우 선택 동작(730)으로 진행하며, 여기에서는 자식 윈도우 랭킹 오더(420) 내의 다음 최하위 랭크를 갖는 자식 윈도우가 선택된다. 그러나, 선택된 자식 윈도우가 포커스된 윈도우가 아닌 것으로 결정되면, 동작 흐름은 동작(714)으로 진행한다.
동작(714)에서, 선택된 자식 윈도우의 현재 모드가 자식 윈도우가 사이즈 가변인 것을 지정하는지 여부에 대한 결정이 이루어진다. 일 실시예에서, 이 결정은 선택된 윈도우와 연관된 자식 윈도우 모듈의 모드 데이터(316) 내의 사이즈 속성을 조사함으로써 이루어진다.
선택된 자식 윈도우의 사이즈가 그 현재 모드에서 가변인 것으로 동작(714)에서 결정되면, 동작 흐름(700)은 동작(716)으로 진행한다. 그러나, 선택된 자식 윈도우의 사이즈가 그 현재모드에서 가변이 아닌 것으로 동작(714)에서 결정되면, 동작 흐름(700)은 동작(720)으로 진행한다.
동작(716)에서, 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있는지 여부에 대한 결정이 이루어진다. 일 실시예에서, 이 결정은 선택된 윈도우와 연관된 자식 윈도우 모듈의 모드 데이터(316) 내의 사이즈 속성을 조사함으로써 이루어진다. 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있지 않은 것으로 결정되면, 동작 흐름(700)은 리사이즈 동작(718)으로 진행한다. 선택된 자식 윈도우가 그 최대의 가변 사이즈에 있는 것으로 동작(716)에서 결정되면, 동작 흐름(700)은 동작(720)으로 진행한다.
리사이즈 동작(718)에서, 선택된 자식 윈도우의 사이즈는 그 최소 가변 사이즈로 감소된다. 일부 실시예들에서, 도 5를 참조하여 전술된 동작들(510-516) 중 임의의 것 또는 전부는 선택된 자식 윈도우의 리사이즈에 후속하여 또는 그와 함께 수행될 수 있다. 리사이즈 동작(718)에 후속하여, 동작 흐름(700)은 후술된 동작(722)으로 진행한다.
동작(720)에서, 선택된 자식 윈도우가 다른 모드로 디모션될 수 있는지 여부에 대한 결정이 이루어진다. 즉, 선택된 자식 윈도우가 선택된 윈도우의 현재 모드보다 더 적은 디스플레이 면적을 요구하는 하위 오더 모드로 디모션될 수 있는지 여부에 대한 결정이 이루어진다. 선택된 자식 윈도우가 하위 오더 모드로 디모션될 수 없는 것으로 동작(720)에서 결정되면, 동작 흐름(700)은 동작(722)으로 진행한다. 선택된 자식 윈도우가 하위 오더 모드로 디모션될 수 있는 것으로 동작(720)에서 결정되면, 동작 흐름은 디모션 동작(724)으로 진행하며, 여기에서는 선택된 윈도우가 프로모션/디모션 시퀀스(308)에서 그 다음의 최하위 오더된 모드로 디모션된다.
일부 실시예들에서, 선택된 자식 윈도우를 그 다음의 최하위 오더 모드로 디모션하는 것은 선택된 윈도우와 연관된 자식 윈도우 모듈 내의 현재 모드 표시자(310)를 변경시키는 것, 자식 윈도우 프리젠테이션 데이터(312) 내의 적절한 사이즈 속성들을 변경시키는 것, 및 선택된 자식 윈도우로부터 획득된 픽셀들의 양을 반영하도록 픽셀 풀(440)을 업데이트하는 것을 포함한다. 일부 실시예들에서, 도 5에 대하여 전술된 동작들(510-516) 중 임의의 것 또는 전부는 선택된 자식 윈도우의 디모션에 후속하여 또는 그와 함께 수행될 수 있다. 디모션 동작(724)에 후속하여, 픽셀 풀(440)은 과다 할당을 유지할 수 있거나, 또는 과소 할당될 수 있음이 이해되어야 한다.
동작(722)에서, 픽셀 풀이 과다 할당되어 있는지 여부에 대한 결정이 이루어진다. 픽셀 풀(440)이 과다 할당되어 있는 것으로 결정되면, 동작 흐름(700)은 전술된 자식 윈도우 선택 동작(730)으로 진행한다. 픽셀 풀(440)이 과다 할당되어 있지 않은 것으로 결정되면, 동작 흐름(700)은 종료한다.
일부 특정한 실시예들이 첨부도면들로 도시되었고 이전의 상세한 설명에 기술되었지만, 여기에 기술된 주제는 기술된 특정의 실시예들에 한정되는 것이 아님이 이해될 것이다. 오히려, 여기에 기술된 주제는 후속하는 청구범위에 의하여 설명되고 정의된 취지로부터 벗어나지 않고 다수의 재배열, 수정 및 대체가 가능하다. 따라서, 본 발명의 범위는 전술된 특정한 실시예들로 한정되는 것이 아니라, 후술된 청구범위 및 그 균등물에 의해서만 정의되어야 한다.

Claims (20)

  1. 디스플레이 방식(display scheme)에 따라 부모 윈도우 내에 복수의 자식 윈도우들을 디스플레이하는 단계 - 각각의 자식 윈도우는 해당 자식 윈도우와 연관되어 있는 오더된 모드들의 그룹 중 하나의 모드에서 디스플레이 가능하며, 각각의 모드는 연관되는 자식 윈도우에 대한 디스플레이 사이즈를 지정함 - ; 및
    상기 복수의 자식 윈도우들 중 제1 자식 윈도우의 디스플레이 사이즈의 변화에 응하여, 상기 미리 정해진 디스플레이 방식을 유지하도록 상기 복수의 자식 윈도우들 중 제2 자식 윈도우의 모드를 변경시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제2 자식 윈도우의 모드를 변경시키는 단계는 픽셀 풀에 액세스하는 단계를 포함하며, 상기 픽셀 풀은 상기 자식 윈도우들에 할당된 상기 부모 윈도우 내에서의 디스플레이 면적(real estate)의 총량을 나타내는 방법.
  3. 제1항에 있어서, 각각의 모드들의 그룹 내의 모드들은 자식 윈도우 프로모션/디모션 시퀀스로 오더되는 방법.
  4. 제1항에 있어서, 상기 제2 자식 윈도우의 모드들은 자식 윈도우 프로모션/디모션 시퀀스로 오더되며, 상기 자식 윈도우 프로모션/디모션 시퀀스에 기초하여 적어도 상기 자식 윈도우들 중 제2 자식 윈도우의 모드를 변경시키는 단계가 수행되는 방법.
  5. 제1항에 있어서, 각각의 모드 그룹은 마스터 모드 프로모션/디모션 시퀀스의 모드들의 서브세트를 포함하는 방법.
  6. 제1항에 있어서, 각각의 모드는 연관된 상기 자식 윈도우에 대한 윈도우 컨트롤을 더 지정하는 방법.
  7. 제1항에 있어서, 디스플레이 방식에 따라 부모 윈도우 내에 복수의 자식 윈도우들을 디스플레이하는 단계는 상기 자식 윈도우들이 상기 부모 윈도우의 미리 정해진 부분을 집합적으로 점유하고 어떠한 자식 윈도우도 다른 자식 윈도우와 중첩하지 않도록 모든 자식 윈도우들을 디스플레이는 단계를 포함하는 방법.
  8. 프로세서 실행 가능 명령들을 구현하는 하나 이상의 컴퓨터 판독 가능 매체로서, 상기 명령들은 하나 이상의 프로세서들에 의하여 실행될 때,
    디스플레이 상에 GUI(graphical user interface)를 프리젠팅하는 단계 - 상기 GUI는 하나의 부모 윈도우와 상기 부모 윈도우 내의 복수의 자식 윈도우들을 포함하는 비주얼 엘리먼트들을 포함하고, 각각의 자식 윈도우는 해당 자식 윈도우와 연관된 복수의 비주얼 모드들 중 하나의 비주얼 모드에서 디스플레이되며, 각각의 자식 윈도우는 자식 윈도우 랭킹 오더로 다른 자식 윈도우들과 관련하여 랭크됨 - ; 및
    상기 비주얼 엘리먼트들 중 하나의 디스플레이 사이즈의 변화에 응하여, 상기 자식 윈도우 랭킹 오더 및 상기 자식 윈도우들에 할당된 디스플레이 면적의 양을 나타내는 픽셀 풀에 기초하여 상기 자식 윈도우들 중 하나의 디스플레이 사이즈를 변경시키는 단계
    를 포함하는 방법을 실행하는 것인 하나 이상의 컴퓨터 판독 가능 매체.
  9. 제8항에 있어서, 상기 자식 윈도우 랭킹 오더는 상기 자식 윈도우들의 사용의 빈도에 기초하여 결정되는 하나 이상의 컴퓨터 판독 가능 매체.
  10. 제8항에 있어서, 상기 자식 윈도우 랭킹 오더는 상기 자식 윈도우들의 사용 시간에 기초하여 결정되는 하나 이상의 컴퓨터 판독 가능 매체.
  11. 제8항에 있어서, 상기 자식 윈도우 랭킹 오더는 복수의 자식 윈도우 랭킹들에 기초하여 결정되는 하나 이상의 컴퓨터 판독 가능 매체.
  12. 제8항에 있어서, 상기 자식 윈도우 랭킹 오더는 복수의 가중된 자식 윈도우 랭킹들에 기초하여 결정되는 하나 이상의 컴퓨터 판독 가능 매체.
  13. 제8항에 있어서, 상기 자식 윈도우들 중 하나의 디스플레이 사이즈를 변경시키는 단계는 상기 자식 윈도우들 중 상기 하나의 모드를 변경시키는 단계를 포함하는 하나 이상의 컴퓨터 판독 가능 매체.
  14. 제8항에 있어서, 각각의 자식 윈도우와 연관된 상기 복수의 비주얼 모드들은 프로모션/디모션 시퀀스로 오더되는 하나 이상의 컴퓨터 판독 가능 매체.
  15. 디스플레이를 포함하는 컴퓨팅 장치;
    상기 디스플레이 상에 GUI(graphical user interface)를 프리젠팅하는 수단 - 상기 GUI는 하나의 부모 윈도우와 상기 부모 윈도우 내의 복수의 자식 윈도우들을 포함하는 비주얼 엘리먼트들을 포함하고, 각각의 자식 윈도우는 상기 자식 윈도우와 연관된 복수의 비주얼 모드들 중 하나의 비주얼 모드에서 디스플레이됨 - ; 및
    상기 비주얼 엘리먼트들 중 하나의 디스플레이 사이즈의 변화에 응하여, 상기 자식 윈도우들의 랭킹 오더에 기초하여 자식 윈도우의 사이즈를 변경시키는 수단
    을 포함하는 시스템.
  16. 제15항에 있어서, 상기 GUI를 프리젠팅하는 수단은 복수의 자식 윈도우 모듈들을 포함하며, 각각의 자식 윈도우 모듈은 상기 자식 윈도우 모듈과 연관된 상기 모드들의 프로모션/디모션 시퀀스를 지정하는 시스템.
  17. 제15항에 있어서, 상기 GUI를 프리젠팅하는 수단은 복수의 자식 윈도우 모듈들을 포함하며, 각각의 자식 윈도우 모듈은 그와 연관된 자식 윈도우의 사이즈가 가변되는지 여부를 지정하는 시스템.
  18. 제15항에 있어서, 상기 변경시키는 수단은 상기 자식 윈도우들의 오더링을 지정하는 자식 윈도우 랭킹 오더를 포함하는 윈도우 관리 모듈을 포함하는 시스템.
  19. 제15항에 있어서, 상기 변경시키는 수단은 하나의 자식 윈도우 랭킹 오더 및 복수의 자식 윈도우 랭킹들을 포함하는 윈도우 관리 모듈을 포함하고, 각각의 자식 윈도우 랭킹은 어떤 기준에 기초하여 상기 자식 윈도우들의 고유한 오더링을 지정하며, 상기 자식 윈도우 랭킹 오더는 상기 자식 윈도우 랭킹들에 기초하여 상기 자식 윈도우들의 오더링을 지정하는 시스템.
  20. 제15항에 있어서, 상기 변경시키는 수단은 자식 윈도우 랭킹 오더, 복수의 자식 윈도우 랭킹들, 및 픽셀 풀을 포함하는 윈도우 관리 모듈을 포함하고, 각각의 자식 윈도우 랭킹은 어떤 기준에 기초하여 상기 자식 윈도우들의 고유 오더링을 지정하고, 상기 자식 윈도우 랭킹 오더는 상기 자식 윈도우 랭킹들에 기초하여 상기 자식 윈도우들의 오더링을 지정하며, 상기 픽셀 풀은 상기 자식 윈도우들에 할당된 디스플레이 면적의 양을 지정하는 시스템.
KR1020077020156A 2005-04-01 2006-03-29 그래픽 유저 인터페이스 관리 KR20070116594A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/097,490 US20060224992A1 (en) 2005-04-01 2005-04-01 Graphical user interface management
US11/097,490 2005-04-01

Publications (1)

Publication Number Publication Date
KR20070116594A true KR20070116594A (ko) 2007-12-10

Family

ID=37072092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077020156A KR20070116594A (ko) 2005-04-01 2006-03-29 그래픽 유저 인터페이스 관리

Country Status (5)

Country Link
US (1) US20060224992A1 (ko)
EP (1) EP1859364A4 (ko)
KR (1) KR20070116594A (ko)
CN (1) CN101208651A (ko)
WO (1) WO2006107668A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015199A2 (ko) * 2010-07-27 2012-02-02 (주)잉카인터넷 메인 프로세스 연계 부가 프로세스 실행 방법
KR101438000B1 (ko) * 2013-03-04 2014-09-05 서울대학교병원 (분사무소) 전자의무기록 시스템 기반 출력 윈도우 제어 방법 및 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047047B2 (en) * 2010-10-01 2015-06-02 Z124 Allowing multiple orientations in dual screen view
US20070006095A1 (en) * 2005-07-01 2007-01-04 Liangkui Feng Auto layout of user interface elements in a window
US7890882B1 (en) * 2006-04-20 2011-02-15 Adobe Systems Incorporated Content and proximity based window layout optimization
US7607105B2 (en) * 2006-05-25 2009-10-20 Research In Motion Limited System and method for navigating in a display window
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
US9116593B2 (en) * 2007-07-06 2015-08-25 Qualcomm Incorporated Single-axis window manager
US8266187B2 (en) 2008-02-19 2012-09-11 Hewlett-Packard Development Company, L.P. Integration of static and dynamic data for database entities and the unified presentation thereof
US8209355B2 (en) * 2008-07-28 2012-06-26 Microsoft Corporation Automatic user interface generation for entity interaction
US9715332B1 (en) 2010-08-26 2017-07-25 Cypress Lake Software, Inc. Methods, systems, and computer program products for navigating between visual components
US8780130B2 (en) 2010-11-30 2014-07-15 Sitting Man, Llc Methods, systems, and computer program products for binding attributes between visual components
EP2354914A1 (en) * 2010-01-19 2011-08-10 LG Electronics Inc. Mobile terminal and control method thereof
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
IT1401439B1 (it) * 2010-08-24 2013-07-26 Università Degli Studi Di Bergamo Metodo e sistema per l'identificazione assistita di fenomeni tecnici.
CN102375668B (zh) * 2010-08-25 2015-06-03 中兴通讯股份有限公司 一种移动终端的窗口管理方法和装置
CN102541492B (zh) * 2010-12-28 2017-05-24 联想(北京)有限公司 显示方法和电子设备
JP2012146268A (ja) * 2011-01-14 2012-08-02 Kyocera Corp 携帯電子機器、制御方法及び制御プログラム
US20130013399A1 (en) * 2011-02-03 2013-01-10 Redigi Inc. Methods and systems for advertisement selection detection and delayed presentation
CH705457A1 (de) * 2011-08-31 2013-03-15 Ferag Ag Generieren einer Benutzerschnittstelle auf einer Anzeige.
US9223591B2 (en) * 2012-08-30 2015-12-29 International Business Machines Corporation Sizing a pane of a window presented on a display
KR101957173B1 (ko) 2012-09-24 2019-03-12 삼성전자 주식회사 터치 디바이스에서 멀티윈도우 제공 방법 및 장치
US9769106B2 (en) 2012-12-28 2017-09-19 Intel Corporation Displaying notifications on a mobile computing device
US20140201659A1 (en) * 2013-01-11 2014-07-17 International Business Machines Corporation Method and system for providing a twisty user interface element
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9569076B2 (en) 2014-01-15 2017-02-14 Accenture Global Services Limited Systems and methods for configuring tiles in a user interface
US20150268838A1 (en) * 2014-03-20 2015-09-24 Institute For Information Industry Methods, systems, electronic devices, and non-transitory computer readable storage medium media for behavior based user interface layout display (build)
US9933922B2 (en) * 2014-03-27 2018-04-03 Sybase, Inc. Child container control of parent container of a user interface
US10254942B2 (en) * 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
CN105404512B (zh) * 2015-11-25 2019-05-10 飞天诚信科技股份有限公司 一种应用程序窗口界面更改方法及装置
US10114525B2 (en) 2016-12-28 2018-10-30 Byung Jin Kim Device and method for organizing and displaying instant messages in various structured fashions
US11442591B2 (en) * 2018-04-09 2022-09-13 Lockheed Martin Corporation System, method, computer readable medium, and viewer-interface for prioritized selection of mutually occluding objects in a virtual environment
WO2019240303A1 (en) * 2018-06-11 2019-12-19 Byung Jin Kim Device and method for organizing and displaying instant messages in various structured fashions
US11112926B1 (en) * 2020-09-25 2021-09-07 Advanced Micro Devices, Inc. User interface system for display scaling events
CN114281287A (zh) * 2021-11-30 2022-04-05 广州品唯软件有限公司 一种子视图的显示方法、装置及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060170A (en) * 1989-08-09 1991-10-22 International Business Machines Corp. Space allocation and positioning method for screen display regions in a variable windowing system
US5390295A (en) * 1991-12-20 1995-02-14 International Business Machines Corporation Method and apparatus for proportionally displaying windows on a computer display screen
US5977966A (en) * 1993-04-28 1999-11-02 Microsoft Corporation System-provided window elements having adjustable dimensions
US5513342A (en) * 1993-12-28 1996-04-30 International Business Machines Corporation Display window layout system that automatically accommodates changes in display resolution, font size and national language
US5819055A (en) * 1994-12-13 1998-10-06 Microsoft Corporation Method and apparatus for docking re-sizeable interface boxes
US5838317A (en) * 1995-06-30 1998-11-17 Microsoft Corporation Method and apparatus for arranging displayed graphical representations on a computer interface
US5666502A (en) * 1995-08-07 1997-09-09 Apple Computer, Inc. Graphical user interface using historical lists with field classes
US5870091A (en) * 1996-11-07 1999-02-09 Adobe Systems Incorporated Combining palettes on a computer display
US5977973A (en) * 1997-05-14 1999-11-02 Microsoft Corporation Window linking
US5886694A (en) * 1997-07-14 1999-03-23 Microsoft Corporation Method for automatically laying out controls in a dialog window
US6313854B1 (en) * 1998-10-16 2001-11-06 International Business Machines Corporation Display mechanism for HTML frames
US6414698B1 (en) * 1999-04-13 2002-07-02 International Business Machines Corporation Method for enabling adaptive sizing of display elements
US6603493B1 (en) * 1999-04-13 2003-08-05 International Business Machines Corporation Method for arranging display elements
US6950993B2 (en) * 2001-08-02 2005-09-27 Microsoft Corporation System and method for automatic and dynamic layout of resizable dialog type windows
US6944829B2 (en) * 2001-09-25 2005-09-13 Wind River Systems, Inc. Configurable user-interface component management system
US7417644B2 (en) * 2003-05-12 2008-08-26 Microsoft Corporation Dynamic pluggable user interface layout
US7272790B2 (en) * 2004-03-05 2007-09-18 Nokia Corporation Method and device for automatically selecting a frame for display

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015199A2 (ko) * 2010-07-27 2012-02-02 (주)잉카인터넷 메인 프로세스 연계 부가 프로세스 실행 방법
WO2012015199A3 (ko) * 2010-07-27 2012-05-03 (주)잉카인터넷 메인 프로세스 연계 부가 프로세스 실행 방법
KR101438000B1 (ko) * 2013-03-04 2014-09-05 서울대학교병원 (분사무소) 전자의무기록 시스템 기반 출력 윈도우 제어 방법 및 장치
WO2014137106A1 (ko) * 2013-03-04 2014-09-12 서울대학교병원 (분사무소) 전자의무기록 시스템 기반 출력 윈도우 제어 방법 및 장치
US10061893B2 (en) 2013-03-04 2018-08-28 Seoul National University Bundang Hospital Method and apparatus for controlling electronic medical record system based output window

Also Published As

Publication number Publication date
US20060224992A1 (en) 2006-10-05
CN101208651A (zh) 2008-06-25
WO2006107668A2 (en) 2006-10-12
EP1859364A4 (en) 2008-12-17
WO2006107668A3 (en) 2007-11-15
EP1859364A2 (en) 2007-11-28

Similar Documents

Publication Publication Date Title
KR20070116594A (ko) 그래픽 유저 인터페이스 관리
US6970173B2 (en) System for providing multiple display support and method thereof
USRE38865E1 (en) System and method for optimizing computer software and hardware
US8952991B1 (en) Selective zoom response behavior in computing systems
US5420605A (en) Method of resetting a computer video display mode
US8856682B2 (en) Displaying a user interface in a dedicated display area
US9584457B2 (en) Indicating status of application program with icons
JP6195182B2 (ja) アプリケーションシナリオの識別方法、電力消費の管理方法、装置、および端末デバイス
US5546521A (en) Dynamic presentation of contextual help and status information
CN102918490B (zh) 与在平板计算装置的虚拟桌面内显示的远程应用交互
US8522247B2 (en) System and method for indicating usage of system resources using taskbar graphics
EP1521168A2 (en) Hierarchical In-Place Menus
AU2013211505B2 (en) Immersive mode for a web browser
US20100269060A1 (en) Navigating A Plurality Of Instantiated Virtual Desktops
US20090019385A1 (en) Management of Icons in a Display Interface
US20110144970A1 (en) Apparatus and method for partitioning a display surface into a plurality of virtual display areas
US20080301577A1 (en) Information processing device and computer readable medium
JPH0855002A (ja) オープンアプリケーションを表示画面に表示する方法及び仮想デスクトップシステム
JP5249686B2 (ja) 情報処理装置及びプログラム
CA2587020A1 (en) Dynamic graphical user interface for a desktop environment
JP5643462B2 (ja) データ表示装置、データ表示方法およびプログラム
US20120066640A1 (en) Apparatus for providing multi-mode warping of graphical user interface objects
US20150324095A1 (en) Dynamic, optimized placement of computer-based windows
US20060078228A1 (en) Information processing device and program
US20110167368A1 (en) Information-processing device and program

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid