KR101487632B1 - 사용자 인터페이스에서의 항목 관리 - Google Patents

사용자 인터페이스에서의 항목 관리 Download PDF

Info

Publication number
KR101487632B1
KR101487632B1 KR1020137009583A KR20137009583A KR101487632B1 KR 101487632 B1 KR101487632 B1 KR 101487632B1 KR 1020137009583 A KR1020137009583 A KR 1020137009583A KR 20137009583 A KR20137009583 A KR 20137009583A KR 101487632 B1 KR101487632 B1 KR 101487632B1
Authority
KR
South Korea
Prior art keywords
container
representations
items
pointer
cluster
Prior art date
Application number
KR1020137009583A
Other languages
English (en)
Other versions
KR20130069802A (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 KR20130069802A publication Critical patent/KR20130069802A/ko
Application granted granted Critical
Publication of KR101487632B1 publication Critical patent/KR101487632B1/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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

사용자 인터페이스에서 항목들을 이동시키는 것에 관한 사용자 인터페이스 변경이 개시된다. 사용자 인터페이스에서 커서나 포인팅 장치를 이동시킴으로써 동작(예를 들어, 드래그 동작)이 개시될 수 있고, 선택된 항목들의 표현들이 그들 각각의 원래 위치로부터 커서나 포인팅 장치의 현재 위치를 향하여 이동하고 커서나 포인팅 장치의 현재 위치 부근에 클러스터를 형성하는 것을 나타내는 애니메이션이 보여질 수 있다. 항목들의 클러스터가 사용자 인터페이스에서 컨테이너 객체 위로 이동될 때, 항목들의 표현들은 컨테이너 객체에 의해 정의된 외관 스타일을 채택할 수 있다. 항목들의 표현들은 또한, 컨테이너 객체 내로의 드롭 동작의 미리보기로서, 클러스터를 떠나 컨테이너 객체 내에서의 항목들의 예상 위치를 향하여 이동하는 것으로 보여질 수 있다.

Description

사용자 인터페이스에서의 항목 관리{MANAGING ITEMS IN A USER INTERFACE}
본 개시는 대체로 컴퓨팅 장치에서 정보 항목을 관리하는 것에 관한 것이다.
현대의 컴퓨팅 장치는 종종, 파일 시스템 계층구조 내의 다양한 디렉터리 또는 서브디렉터리(예를 들어, 폴더)에 정보 항목을 저장하는 파일 시스템을 포함한다. 그래픽 사용자 인터페이스(GUI)에서, 정보 항목의 표현(예를 들어, 아이콘)은, 파일 시스템 계층구조 내의 그 정보 항목의 위치를 나타내기 위해 정보 항목의 부모 항목과 연관된 각 컨테이너 객체(예를 들어, 데스크탑, 폴더 윈도우)에 표시될 수 있다.
각 컨테이너 객체는 외관 스타일(예를 들어, 큰 아이콘 보기, 작은 아이콘 보기, 목록 보기, 열 보기 등)과 연관될 수 있다. 컨테이너 객체에 포함된 정보 항목의 표현은 컨테이너 객체와 연관된 외관 스타일에 따라 각각의 외관을 띨 수 있다. 항목이 한 컨테이너로부터 상이한 외관 스타일을 갖는 또 다른 컨테이너로 이동될 때, 또는 현재 컨테이너의 외관 스타일이 수정될 때, 항목의 표현의 외관은 그 항목의 현재 컨테이너의 현재 외관 스타일에 따라 변경될 수 있다.
많은 운영 체제는, GUI에서 현재 선택된 항목에 드래그 앤 드롭 동작이 수행되는 것을 가능하게 한다. 드래그 앤 드롭 동작에서, 선택된 항목들의 표현들은, 포인터(예를 들어, 마우스 커서 또는 터치 감응면 상의 포인팅 장치)의 이동을 따라, 한 컨테이너 객체로부터 또 다른 컨테이너 객체로 사용자 인터페이스에서 이동(또는 "드래그")될 수 있다. 항목이 원하는 타겟 컨테이너의 드롭 구역 위에서 릴리스(또는 "드롭")될 때, 선택된 항목은 타겟 컨테이너의 콘텐츠 항목이 되고, 그 항목의 표현은 타겟 컨테이너에서 타겟 컨테이너와 연관된 외관 스타일에 따라 나타날 것이다.
사용자 또는 애플리케이션은, 사용자 인터페이스에서 하나 이상의 항목 표현을 선택하고, 사용자 인터페이스에서 커서의 이동(예를 들어, 마우스 커서나 트랙볼 커서) 또는 포인팅 장치(예를 들어, 손가락이나 스타일러스)의 이동에 의해, 선택된 항목의 표현에 동작(예를 들어, 드래그 동작)을 시작할 수 있다. 동작이 개시되면, 항목 표현들이 사용자 인터페이스에서 커서나 포인팅 장치의 현재 위치를 향해 이동하고 커서나 포인팅 장치의 현재 위치의 부근에서 클러스터를 형성하는 것을 나타내는 애니메이션이 보여질 수 있다. 커서 또는 포인팅 장치가 사용자 인터페이스에서 이동할 때, 항목 표현들의 클러스터는 사용자 인터페이스에서 커서나 포인팅 장치와 함께 이동할 수 있다. 클러스터 내의 각 항목 표현은, 클러스터 내의 다른 항목 표현들과는 상이한 경로를 따라, 그리고 상이한 속도나 가속도로 사용자 인터페이스에서 이동할 수 있다.
항목 표현들이 처음 선택될 때, 항목 표현들은, 그 항목 표현들이 선택되는 컨테이너 객체와 연관된 외관 스타일에 따라 각각의 제1 외관을 가질 수 있다. 항목 표현들의 클러스터가 사용자 인터페이스에서 컨테이너 객체의 드롭 구역으로 이동될 때, 클러스터 내의 항목 표현들은 그 컨테이너 객체와 연관된 외관 스타일에 기초하여 각각의 외관을 띨 수 있다.
일부 구현에서, 사용자가 사용자 인터페이스에서 다른 목적지에 도착하기 위해 거쳐가는 컨테이너 객체 위로 클러스터를 이동시키고 있다면 외관의 변경은 보여지지 않으며, 외관의 변경은, 사용자가 컨테이너 객체에 클러스터를 배치할 의향을 갖고 컨테이너 객체 위로 클러스터를 이동시키고 있다는 판정시에 보여진다. 사용자의 의도는, 클러스터가 컨테이너 객체 위로 이동될 때 사용자 인터페이스에서 커서나 포인팅 장치의 속도나 가속도와 같은 움직임 특성에 기초하여 추정될 수 있다.
일부 구현에서, 항목 표현들의 클러스터가 비적격 드롭 타겟의 영역 위로 이동되면, 클러스터 내의 항목 표현들은, 항목 표현들의 선택이 이루어지는 소스 컨테이너에서의 그들의 원래 외관과는 상이한 각각의 외관을 띨 수 있다. 새로운 외관은, 소스 컨테이너에 의해 정의되는 비적격 드롭 타겟에 대한 외관 스타일에 기초할 수 있다. 일부 구현에서, 소스 컨테이너는, 상이한 트리거 이벤트들(예를 들어, 비적격 드롭 타겟 위에서의 항목 표현의 호버링, 소스 컨테이너 내의 특정 영역 위로의 항목 표현의 통과 등)에 기초하여 항목 표현에 적용될 수 있는 임의 개수의 상이한 외관 스타일들을 정의할 수 있다.
일부 구현에서, 포인터 또는 클러스터가 정의된 기간보다 오래 동안 잠재적 타겟 컨테이너 위에서 호버링할 때, 항목 표현들이 클러스터를 떠나 타겟 컨테이너 객체에서의 표현들의 예상된 위치를 향해 이동하는 것을 나타내는 애니메이션이 타겟 컨테이너 객체 내로의 드롭 동작의 미리보기로서 보여질 수 있다. 항목 표현들은 항목 표현들의 예상된 위치나 그 부근에서 (예를 들어, 반투명 오버레이로서) 미리보기 상태로 나타날 수 있으며, 잠재적 타겟 컨테이너 객체와 연관된 외관 스타일을 채택할 수 있다. 일부 항목 표현들의 예상된 위치가 사용자 인터페이스에서 현재 볼 수 없는 잠재적 타겟 컨테이너 객체의 영역에 있다면, 이들 항목 표현들은 클러스터로부터 사용자 인터페이스 내의 각각의 경로를 따라 볼 수 없는 영역으로 이동되는 것으로 보여질 수 있다.
일부 구현에서, 커서나 포인팅 장치가 선택된 항목들의 드롭없이 잠재적 타겟 컨테이너로부터 멀리 이동된다면, 선택된 항목들의 표현은, 예상된 위치나 그 부근에서 그들 각각의 위치로부터 벗어나 커서나 포인팅 장치의 현재 위치 부근에서 클러스터에 합류하는 것으로 애니메이션될 수 있다. 대안으로서, 선택된 항목들이 잠재적 타겟 컨테이너 내에 릴리스된다면, 선택된 항목들의 표현은, 제1 상태(예를 들어, 반투명 상태)로부터 제2 상태(예를 들어, 불투명 상태)로 천이하여 잠재적 타겟 컨테이너 내의 항목들의 예상 위치에 정착하는 것으로 애니메이션될 수 있다.
일부 구현은, 호출 프로그램 코드가 하나 이상의 인터페이스를 통해 피호출중인 다른 프로그램 코드와 상호작용하는 환경에서, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; application programming interface)를 포함한다. 다양한 종류의 파라미터를 더 포함할 수도 있는, 다양한 함수 호출, 메시지 또는 기타 유형의 기동(invocation)이, 호출 프로그램과 피호출 코드 사이에서 API를 통해 전달될 수 있다. 또한, API는, API에서 정의되고 피호출 프로그램 코드에서 구현된 데이터 타입이나 클래스를 이용하는 능력을 호출 프로그램 코드에 제공할 수도 있다.
적어도 소정의 구현은, 호출 소프트웨어 컴포넌트가 API를 통해 피호출 소프트웨어 컴포넌트와 상호작용하는 환경을 포함한다. 이러한 환경에서 API를 통해 동작하기 위한 방법은, 하나 이상의 함수 호출, 메시지, 및 기타 유형의 기동이나 파라미터를 API를 통해 전달하는 단계를 포함한다.
일부 구현에서, 항목 표현은, 소스 컨테이너 객체에 의해 정의된 다양한 외관 스타일과 다양한 잠재적 드롭 타겟 컨테이너에 기초하여 운영 체제에 의해 생성된 외관을 가질 수 있다. 각 외관 스타일은 대응하는 컨테이너에 의해 API를 통해 정의될 수 있다. 각 외관 스타일은 항목 표현에 대해 하나 이상의 레이어(layer)를 지정할 수 있으며, 각 레이어는, 레이어의 외관, 레이어의 애니메이션 스타일 등을 제어하는 상이한 속성 및 규칙과 연관될 수 있다. 상이한 레이어들에는 상이한 애니메이션들이 서로 독립적으로 수행될 수 있다.
개개의 항목 표현의 외관 스타일 외에도, 각 컨테이너 객체는 또한, 항목 표현들이 다양한 외관으로 존재할 때 복수의 항목(예를 들어, 선택된 모든 항목)에 대해 각각의 대형 스타일(formation style)을 집합적으로 또한 정의할 수 있다. 대형 스타일들은 또한, 그들의 대응하는 컨테이너 객체에 의해 API를 통해 정의될 수 있다. 대형 스타일들의 예로서는, 그들의 소스 컨테이너 내에서의 항목 표현들의 레이아웃, 포인터 부근의 클러스터 대형, 여기서 설명된 바와 같은 잠재적 드롭 타겟 컨테이너 내의 미리보기 대형이 포함될 수 있다. 다른 대형 스타일들도 정의될 수 있다. 외관과 대형 사이의 각각의 천이를 나타내기 위해 적용될 수 있는 상이한 애니메이션 스타일들도 역시, 소스 컨테이너 또는 잠재적 드롭 타겟 컨테이너에 의해 API를 통해 지정될 수 있다.
사용자 인터페이스에서 항목들을 관리하는 하나 이상의 구현의 상세사항이 첨부된 도면과 이하의 상세한 설명에 개시되어 있다. 다른 특징들, 양태들, 및 이점들은, 상세한 설명, 도면, 및 청구항들로부터 명백해질 것이다.
도 1a 내지 도 1c는, 선택된 항목들에 관한 정의된 동작(예를 들어, 드래그 동작)의 개시에 응답하여 복수의 선택된 항목들의 표현들이 포인터의 현재 위치를 향해 이동하여 포인터의 현재 위치 부근에서 클러스터를 형성하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1d는 항목 표현들의 클러스터가 사용자 인터페이스에서 포인터의 이동을 추종하는 이동을 보여주는 예시적인 사용자 인터페이스 변경을 나타낸다.
도 1e 내지 도 1f는, 클러스터가 잠재적 타겟 컨테이너의 드롭 구역 내에 있는 동안 잠재적 타겟 컨테이너의 외관 스타일에 따라 클러스터 내의 항목 표현들이 그들의 외관을 변경하는 것을 보여주고 있는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1g는, 선택된 항목들이 잠재적 타겟 컨테이너 내에 드롭되는 경우 컨테이너의 구성의 미리보기로서 항목 표현들이 클러스터를 벗어나 잠재적 타겟 컨테이너 내에서의 그들 각각의 예상 위치를 향하여 이동하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1h는, 선택된 항목들이 잠재적 타겟 컨테이너 내에 릴리스 또는 드롭될 때 선택된 항목들의 표현들이 그들 각각의 예상 위치에 정착하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1i는, (예를 들어, 사용자가 선택된 항목들을 잠재적 타겟 컨테이너 내에 드롭하지 않기로 결정한 경우) 항목 표현들의 클러스터가 잠재적 타겟 컨테이너를 떠나 포인터의 이동을 추종하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1j 및 도 1k는, 항목 표현들의 클러스터가 제2 외관 스타일과 연관된 제2 잠재적 타겟 컨테이너 내로 드래그되고 있는 것과 항목 표현들의 클러스터가 제2 잠재적 타겟 컨테이너의 외관 스타일에 따라 그들의 외관을 변경하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1l은, 선택된 항목들이 제2 잠재적 타겟 컨테이너 내에 드롭되는 경우 컨테이너의 구성의 미리보기로서 선택된 항목들의 표현들이 클러스터를 벗어나 제2 잠재적 타겟 컨테이너 내에서의 그들 각각의 예상 위치를 향하여 이동하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1m은, 항목들이 제2 잠재적 타겟 컨테이너 내에 드롭될 때 선택된 항목들의 표현들이 그들 각각의 예상 위치에 정착하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1n 내지 도 1p는 제1 컨테이너로부터 자유-배열된 상태의 제2 컨테이너로의 하나 이상의 항목의 선택과 드래그를 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1q 및 도 1r은, 항목 표현들이 제2 컨테이너에서의 그들의 예상 위치에서 디스플레이되는 미리보기와 미리보기 동안에 제2 컨테이너 객체에서 포인터에 의해 이동되고 있는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1s는 선택된 항목들이 제2 컨테이너 내에 릴리스된 후에 선택된 항목들이 미리보기에서 보여준 바와 같은 그들 각각의 위치에 정착하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 2a는, 선택된 항목들에 관한 정의된 동작(예를 들어, 드래그 동작)의 개시에 응답하여 선택된 항목들의 표현들로 하여금 포인터의 현재 위치 부근에서 클러스터를 형성하게 하기 위한, 예시적 프로세스의 흐름도이다.
도 2b는 선택된 항목들의 표현들로 하여금 클러스터에서 포인터의 계속된 이동을 추종하게 하기 위한 예시적 프로세스의 흐름도이다.
도 3은 항목 표현들의 클러스터가 상이한 외관 스타일과 연관된 컨테이너로 이동될 때 항목 표현들의 외관을 변경하기 위한 예시적 프로세스의 흐름도이다.
도 4a는 잠재적 타겟 컨테이너에서의 각각의 예상 위치에 있는 항목 표현들의 미리보기를 보여주기 위한 예시적 프로세스의 흐름도이다.
도 4b는 선택된 항목을 잠재적 타겟 컨테이너에 드롭하기 위한 예시적 프로세스의 흐름도이다.
도 5는 선택된 항목을 잠재적 타겟 컨테이너에 드롭하지 않고 미리보기 이후에 잠재적 타겟 컨테이너로부터 멀리 이동시키기 위한 예시적 프로세스의 흐름도이다.
도 6은 잠재적 타겟 컨테이너 내에서의 예상 위치에 있는 항목 표현들의 미리보기를 보여줄지 여부를 결정하기 위한 예시적 프로세스의 흐름도이다.
도 7은 항목들이 한 컨테이너로부터 또 다른 컨테이너로 드래그되고 있을 때 항목 표현들의 외관을 변경하기 위한 예시적 프로세스의 흐름도이다.
도 8a 내지 도 8c는, 도 1a 내지 도 1s를 참조하여 설명된 메뉴 표시 프로세스를 구현하기 위한 예시적 소프트웨어 아키텍쳐를 나타낸다.
도 9는 도 1 내지 도 8c를 참조하여 설명된 사용자 인터페이스 및 프로세스를 구현하기 위한 예시적 하드웨어 아키텍쳐의 블록도이다.
다양한 도면에서 유사한 참조 기호는 유사한 요소를 가리킨다.
사용자 인터페이스에서 항목을 드래그 앤 드롭하기 위한 예시적 사용자 인터페이스
파일 시스템에서, 정보 항목(예를 들어, 파일 및 폴더)은 파일 시스템 계층구조로 조직될 수 있다. 각 정보 항목(예를 들어, 파일 및 폴더)은 파일 시스템 계층구조 내의 부모 항목(예를 들어, 부모 폴더)에 포함될 수 있다. 문서를 편집하기 위한 애플리케이션 프로그램(예를 들어, html 편집기, 워드 프로세서, 전자메일 편집기 등)에서, 콘텐츠 항목(예를 들어, 이미지, 비디오, 데이터 객체 등)이 문서 내의 특정 위치 내에 임베딩될 수 있다. 또한, 정보 항목(예를 들어, 주소록 엔트리, 데이터 객체)과 사용자 인터페이스 요소(예를 들어, 버튼)는 애플리케이션 윈도우 내의 정의된 위치로부터 이동되거나 정의된 위치에 삽입될 수 있다.
그래픽 사용자 인터페이스(GUI)에서, 데스크탑, 폴더 윈도우 및/또는 애플리케이션 윈도우와 같은 컨테이너 객체는, 폴더들을 파일 시스템 계층구조로 표현하고, 새로운 또는 기존의 애플리케이션 문서들을 보여주고, 및/또는 사용자 인터페이스 요소 또는 데이터 객체를 보여주는데 이용될 수 있다. 부모 폴더에 포함된 정보 항목(예를 들어, 파일 및 폴더)의 표현(예를 들어, 아이콘)은, GUI에서 부모 폴더를 나타내는 컨테이너 객체(예를 들어, 폴더 윈도우 또는 데스크탑) 내에 디스플레이될 수 있다. 마찬가지로, 콘텐츠 항목(예를 들어, 이미지, 비디오 클립, 데이터 객체 등)의 표현(예를 들어, 썸네일 이미지 또는 아이콘)은, 콘텐츠 항목들이 임베딩되어 있는 애플리케이션 문서를 보여주는 컨테이너 객체(예를 들어, 애플리케이션 윈도우) 내에 디스플레이될 수 있다. 마찬가지로, 사용자 인터페이스 요소와 데이터 객체의 표현(예를 들어, 버튼 또는 데이터 객체의 아이콘)도 역시 컨테이너 객체(예를 들어, 애플리케이션 윈도우, 파인더 윈도우)에 보여질 수 있다.
종래의 GUI에서, 사용자 또는 애플리케이션은 소스 컨테이너(예를 들어, 데스크탑 또는 폴더 윈도우) 내의 항목들의 표현(예를 들어, 아이콘)을 선택하고, 선택된 항목 표현을 포인터(예를 들어, 마우스 커서, 터치-감응 디스플레이 상의 스타일러스 또는 손가락)를 이용하여 타겟 컨테이너의 드롭 구역(예를 들어, 데스크탑의 가용 영역 또는 폴더 윈도우의 윈도우 영역) 내로 이동(예를 들어, 드래그)하고, 선택된 항목 표현을 타겟 컨테이너 내에 드롭할 수 있다. 드래그 앤 드롭 동작 후에, 선택된 항목 표현은, 사용자 인터페이스 상의 소스 컨테이너로부터 타겟 컨테이너로 이동될 수 있다. 파일 시스템에서, 선택된 표현에 대응하는 항목은, 파일 시스템 계층구조에서 소스 컨테이너와 연관된 위치로부터 타겟 컨테이너와 연관된 또 다른 위치로 이동된다.
종래의 GUI에서, 사용자가 선택된 항목을 사용자 인터페이스에서 이동할 때, 전체로서의 선택된 항목들의 이동은, 선택된 항목들의 표현들이 커서나 포인팅 장치를 따라 드래그되는 것을 포함하는 이미지로서 나타낼 수 있다. 선택된 항목들의 외관과 공간적 관계는, 그 이미지가 사용자 인터페이스 내의 한 위치로부터 또 다른 위치로 드래그될 때 이미지 내에서 정적이다. (예를 들어 타겟 컨테이너의 외관 변경으로 표시되는 바와 같이) 이미지가 타겟 컨테이너의 드롭 구역 내에 들어간 후에 릴리스되면, 이미지는 타겟 컨테이너 내로 사라져 이동의 완료를 나타낸다.
여기서 개시된 바와 같이, 사용자는 사용자 인터페이스에서 하나 이상의 항목을 선택할 수 있고, 항목들이 선택되는 동안, 사용자는 커서나 포인팅 장치의 이동에 의해 선택된 항목들에 관한 정의된 동작(예를 들어, 드래그 동작)을 개시할 수 있다. 동작이 개시되면, 선택된 항목들의 표현들(예를 들어, 아이콘들)이 사용자 인터페이스에서 그들의 원래 위치로부터 커서나 포인팅 장치의 현재 위치를 향해 이동하고 커서나 포인팅 장치의 현재 위치 부근에서 클러스터를 형성하는 것을 나타내는 애니메이션이 보여질 수 있다. 이하에서부터, 용어 "포인터"는 커서(예를 들어, 마우스나 트랙볼 커서)와 포인팅 장치(예를 들어, 터치-감응 디스플레이 상의 손가락이나 스타일러스)를 기술하기 위해 사용될 것이다.
일부 구현에서, 사용자가 드래그 동작 동안에 포인터를 계속 이동시킬 때, 선택된 항목들의 표현들은 포인터(예를 들어, 사용자 인터페이스 내의 커서, 또는 터치 감응 디스플레이 상의 손가락이나 스타일러스의 터치 포인트)를 따라 클러스터로서 사용자 인터페이스에서 이동할 수 있다. 클러스터 내의 각 항목 표현의 개개 이동은, 클러스터 내의 다른 항목 표현들에 관해 경로, 속도, 및 가속도의 관점에서 독립적으로 표현될 수 있다. 일부 구현에서, 항목 표현들은 클러스터 내의 다양한 거리에서 포인터의 현재 위치를 뒤쫓을 수 있다.
또한, 일부 구현에서, 사용자 인터페이스에 디스플레이된 컨테이너 객체는 상이한 외관 스타일과 연관될 수 있고, 각 컨테이너 객체 내에 디스플레이된 항목들의 표현들은 컨테이너 객체와 연관된 외관 스타일에 따른 특징적 외관을 띨 수 있다. 일반적인 외관 스타일로는, 예를 들어, 큰 아이콘 보기, 작은 아이콘 보기, 목록 표기, 열 보기, 또는 픽쳐 보기가 포함될 수 있다. 애플리케이션 윈도우와 연관된 다른 외관 스타일은, 애플리케이션 윈도우를 제공하는 애플리케이션 프로그램에 의해, 예를 들어, 운영 체제와 연관된 API를 통해, 정의될 수 있다. 개개의 항목 표현에 대한 외관 스타일 외에도, 각 컨테이너 객체는 또한 선택된 항목 표현들에 대한 대형 스타일(formation style)을 집합적으로 정의할 수 있다. 예시적 대형 스타일로는, 자유-배열 레이아웃, 배열-유지 레이아웃, 클러스터 등이 포함된다.
일부 구현에서, 항목들이 처음 선택될 때, 선택된 항목들의 표현들은, 항목들 각각의 소스 컨테이너와 연관된 외관 스타일에 따른 각각의 제1 외관을 가질 수 있다. 선택된 항목들의 표현들이 클러스터를 형성하며 사용자 인터페이스 내의 상이한 컨테이너 객체의 드롭 구역 위로 이동될 때, 클러스터 내의 선택된 항목들의 표현들은, 항목 표현들의 클러스터가 현재 위치해 있는 컨테이너 객체와 연관된 외관 스타일에 따라 상이한 외관을 띨 수 있다. 일부 구현에서, 클러스터 내의 선택된 항목들이 비적격 드롭 타겟 컨테이너의 영역 위에 있을 때, 클러스터 내의 선택된 항목들의 표현들은, 소스 컨테이너 객체에 의해 정의된 비적격 드롭 타겟 컨테이너에 대한 다른 외관 스타일에 기초한 외관을 띨 수 있다. 선택된 항목들의 대형 스타일도 역시, 소스 컨테이너에 의해 정의된 비적격 드롭 타겟 컨테이너에 대한 대형 스타일에 따라 변할 수 있다.
도 1a 내지 도 1c는, 포인터에 의한 선택된 항목들에 관한 정의된 동작(예를 들어, 드래그 동작)의 개시에 응답하여 복수의 선택된 항목들의 표현들이 포인터의 현재 위치를 향해 이동하여 포인터의 현재 위치 부근에서 클러스터를 형성하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1a에서, 예시적 사용자 인터페이스(100)가 나타나 있다. 예시적 사용자 인터페이스(100)는 운영 체제의 데스크탑일 수 있다. 다수의 컨테이너 객체(예를 들어, 폴더 윈도우(104), 폴더 윈도우(106), 및 애플리케이션 윈도우(108))가, 예를 들어, 데스크탑의 디스플레이 영역(102) 내에서, 사용자 인터페이스(100) 상에 디스플레이되어 있다.
도 1a에 도시된 바와 같이, 폴더 윈도우(104)는 큰 아이콘 보기로 나타낸 항목들의 표현(예를 들어, 항목 표현(110, 112, 114, 116, 및 118))을 포함하고 있다. 큰 아이콘 보기에서, 각 항목의 표현은, 항목의 내용의 미리보기를 보여주는 썸네일 이미지와, 항목의 명칭을 보여주는 텍스트 라벨을 포함할 수 있다. 예를 들어, 항목이 이미지 파일이라면, 큰 아이콘 보기로 된 항목의 표현은, 이미지 파일의 파일명을 보여주는 텍스트 라벨을 갖는 이미지 파일의 축소된 복제판일 수 있다. 또 다른 예의 경우, 항목이 폴더이면, 큰 아이콘 보기로 된 항목의 표현은, 확대된 폴더 아이콘의 표면 상에 폴더의 대표적 내용과 폴더의 이름을 보여주는 텍스트 라벨을 드러내는 확대된 폴더 아이콘일 수 있다. 크기, 투명도, 색상 방식 등과 같은 다른 외관 특성들이 큰 아이콘 보기로 된 항목들의 표현들과 연관될 수 있다.
일부 구현에서, 폴더 윈도우는 또한 작은 아이콘 보기로 될 수 있고, 여기서, 항목을 나타내는 더 작은 아이콘들이 디스플레이될 수 있다. 항목들의 작은 아이콘 표현들은 항목들의 큰 아이콘 표현보다 더 적은 시각적 정보를 포함할 수 있다. 예를 들어, 항목의 작은 아이콘 표현은 항목의 파일 타입(예를 들어, 이미지 파일, 텍스트 문자, 폴더 등)을 나타낼 수 있지만, 항목의 임의의 구체적인 내용에 관한 정보를 생략한다. 항목의 큰 아이콘 표현 및 작은 아이콘 표현은 양쪽 모두 항목의 파일명을 나타내는 텍스트 라벨을 포함할 수 있다. 일부 구현에서, 항목의 큰 아이콘 표현과 작은 아이콘 표현의 텍스트 라벨은 상이한 외관을 가질 수 있다.
일부 구현에서, 큰 아이콘 보기(또는 작은 아이콘 보기)로 된 폴더 윈도우(예를 들어, 폴더 윈도우(104))는 자유-배열 상태 또는 배열-유지 상태일 수 있다. 자유-배열 상태에서, 항목들의 표현들은 폴더 윈도우의 디스플레이 영역 내의 임의의 좌표 위치에 놓이거나 이동될 수 있다. 배열-유지 상태에서는, 항목들의 표현들은 균등하게 이격된 격자 상에 놓일 수 있으며, 하나 이상의 배열-유지 기준(예를 들어, 파일명별, 수정 시간별, 크기별, 파일 타입별 등)에 따라 분류될 수 있다.
일부 구현에서, 폴더 윈도우가 배열-유지 상태에 있을 때, 새로운 항목이 폴더 윈도우 내에 도입되거나, 또는 배열-유지 기준(예를 들어, 분류 기준)과 연관된 속성이 폴더 윈도우 내의 하나 이상의 항목에 대해 변경된다면, 폴더 윈도우는 하나 이상의 배열-유지 기준 및 속성들의 새로운 값에 따라 폴더 윈도우의 디스플레이 영역 상에서 항목들을 재조직하도록 업데이트될 수 있다.
일부 구현에서, 폴더 윈도우(예를 들어, 폴더 윈도우(104))는, 폴더 윈도우의 디스플레이 영역의 일부만이 사용자 인터페이스(100) 상에서 볼 수 있도록, 크기조정될 수 있다. 사용자는 폴더 윈도우의 뷰 포트를 이동시켜 디스플레이 영역의 은닉 부분을 드러내거나 폴더 윈도우를 확대하여 폴더 윈도우의 디스플레이 영역의 더 많은 부분을 드러내기 위해 스크롤 제어를 이용할 수 있다.
또한, 도 1a에 도시된 바와 같이, 폴더 윈도우(104)는 현재 큰 아이콘 보기와 자유-배열 상태로 나타나 있다. 항목들(110, 112, 114, 116, 및 118)의 큰 아이콘 표현은 자유-배열 구성의 폴더 윈도우(104)의 디스플레이 영역에 위치해 있다. 또한, 도 1a에 도시된 바와 같이, 사용자는 항목(110, 114, 및 118)을 선택했다(항목(110, 114, 및 118)의 음영으로 표시).
도 1a에 도시된 바와 같이, 폴더 윈도우(106)는 현재 목록 보기로 나타나 있다. 폴더 윈도우(106)는 파일 시스템 계층구조에서 폴더(예를 들어, 폴더 "Drop Target 1")를 나타낸다. 폴더 윈도우(106)에 도시된 항목은 폴더 윈도우(106)에 의해 표현된 폴더에 포함된 항목이다. 폴더 윈도우(106)에 도시된 항목들의 표현들(예를 들어, 항목 표현(122a 및 122b)) 각각은 항목을 나타내는 작은 아이콘과 항목의 파일명을 보여주는 텍스트 라벨을 포함할 수 있다. 항목의 목록 보기 표현의 작은 아이콘은 항목의 작은 아이콘 표현의 그래픽 부분과 동일할 수 있지만, 목록 표기 표현과 작은 아이콘 표현의 텍스트 라벨들은 2개 표현에서 상이하게 위치될 수 있다. 예를 들어, 목록 보기 표현에서, 텍스트 라벨은 작은 아이콘의 우측에 위치하고; 반면 작은 아이콘 표현에서는, 텍스트 라벨은 작은 아이콘의 아래에 위치한다.
도 1a에 도시된 바와 같이, 목록 보기 폴더 윈도우(106) 내의 항목 표현(예를 들어, 항목 표현(122a 및 122b))은, 파일명별, 크기별, 수정 시간별, 항목 타입별 등과 같은 배열-유지 기준에 따라 분류될 수 있다. 폴더 윈도우(106)에서, 2개의 항목(122a 및 122b)의 표현들은 그들의 파일명에 따라 배열된다.
큰 아이콘 보기, 작은 아이콘 보기, 및 목록 보기 외에도, 폴더 윈도우는 또한 열 보기(column)로 나타날 수 있다(도 1a에는 미도시). 열 보기로 된 폴더 윈도우는 하나 이상의 열을 포함할 수 있다. 각 열은 파일 시스템 계층구조의 각 레벨에 대응할 수 있으며, 파일 시스템 계층구조의 각 레벨의 부모 레벨로부터의 각 부모 항목과 연관될 수 있다. 열 보기 폴더 윈도우 내의 연속된 열들은 파일 시스템 계층구조의 연속된 레벨들에 대응한다. 각 열은, 그 열의 좌측에 인접한 열 내의 현재 선택된 항목의 자식 항목인 항목들의 표현들을 나타낼 수 있다. 열 보기 폴더 윈도우 내의 항목의 표현들은 목록 보기 폴더 윈도우 내의 항목들의 표현들과 유사한 외관을 가질 수 있다.
폴더 윈도우 및 애플리케이션 윈도우의 다른 보기들이 정의될 수 있다. 운영 체제는, 항목들의 표현들이 다양한 보기의 폴더 윈도우 및 애플리케이션 윈도우에 나타날 때 가질 수 있는 다양한 외관 특성을 지정하는 애플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있다. 일부 구현에서, 폴더 윈도우의 각 보기는, 개개의 항목 표현이 해당 보기에서 어떻게 나타나야 하는지를 제어하는 외관 스타일로 지정될 수 있다. 각 외관 스타일은 항목 표현들의 상이한 컴포넌트들에 대해 하나 이상의 레이어를 지정할 수 있다. 예를 들어, 항목 표현의 아이콘 이미지, 항목 표현의 텍스트 라벨, 및 항목 표현의 배경 이미지에 대해 각 레이어가 정의될 수 있다. 각 레이어는, 컴포넌트가 어떻게 나타나야하는지, 및 현재의 외관 스타일로부터 상이한 외관 스타일로의 천이 동안에 컴포넌트가 어떻게 애니메이션될 수 있는지를 정의하는 연관된 속성을 가질 수 있다.
도 1a는, 사용자가 폴더 윈도우(104)에서 항목(110, 114 및 118)을 선택했다는 것을 도시한다. 항목의 선택은, 포인터, 키보드, 또 다른 입력 장치, 또는 이들 중 하나 이상의 조합에 의해 달성될 수 있다. 포인터의 현재 위치는, 커서(예를 들어, 커서(120))에 의해 사용자 인터페이스(100) 상에 표시될 수 있다. 일부 구현에서, 포인터가 터치 감응 디스플레이 상의 손가락 또는 스타일러스인 경우, 사용자 인터페이스(100) 상에는 어떠한 커서도 나타낼 필요가 없고, 포인터의 현재 위치는 터치 감응 디스플레이 상의 손가락 또는 스타일러스의 터치 포인트이다.
도 1b는, 정의된 동작(예를 들어, 드래그 동작)의 개시가 검출된 후에 항목들의 표현들이 폴더 윈도우(104) 내에서의 그들의 원래 위치로부터 포인터의 현재 위치를 향하여 이동하는 것을 나타낸다.
일부 구현에서, 사용자 인터페이스(100)에서 항목들이 선택된 채로 남아 있는 동안, 정의된 동작(예를 들어, 드래그 동작)의 개시는, 폴더 윈도우(104) 안쪽의 위치로부터 폴더 윈도우(104)의 바깥쪽의 다른 위치로의 포인터의 이동에 의해 표시될 수 있다. 일부 구현에서, 정의된 동작은, 입력 장치(예를 들어, 마우스나 키보드) 상에서 홀드 버튼(예를 들어, 마우스 버튼 또는 "SHIFT" 키)이 눌러진 상태로 포인터가 이동할 때 개시되어 지속된다. 일부 구현에서, 정의된 동작의 개시는, 제1 위치로부터 정의된 임계 거리보다 먼 또 다른 위치로의 포인터의 이동에 의해 개시될 수 있고, 제2 위치가 폴더 윈도우(104)의 내부이든 외부이든 무관하다. 일부 구현에서, 홀드 버튼은 정의된 동작 동안에 눌러질 필요가 없다.
도 1b에 도시된 바와 같이, (폴더 윈도우(104) 바깥의 커서(120)의 현재 위치로 표시된 바와 같이) 정의된 동작(예를 들어, 드래그 동작)의 개시가 검출된 후에, 선택된 항목들의 각 표현들이 사용자 인터페이스(100) 상에서 그들의 원래 위치로부터 포인터의 현재 위치를 향하여 이동하는 것을 나타내기 위하여 사용자 인터페이스(100)에서 애니메이션이 보여질 수 있다. 각 항목 표현의 이동은 사용자 인터페이스(100)에서 각 경로(예를 들어, 점선 곡선으로 표시)를 따를 수 있다. 일부 구현에서, 선택된 항목들의 각 표현(예를 들어, 항목 표현 110, 114, 및 118)은 폴더 윈도우(104)에서의 그들의 원래 위치에 남아 있고, 한편으로는 표현들(110, 114, 및 118)로부터 표현들의 사본들(예를 들어, 항목 표현 110', 114', 및 118')이 벗겨져 나와(peeled off) 그들 각각의 경로를 따라 포인터의 현재 위치를 향하여 이동하는 것이 보여질 수 있다.
일부 구현에서, 각 항목 표현(예를 들어, 항목 표현들 110', 114', 및 118'의 각각)에 대한 속도, 가속도, 및 경로 형상은 서로 독립적으로 달라질 수 있다. 일부 구현에서, 포인터의 시작 위치에 더 가까이 위치한 항목 표현(예를 들어, 항목 표현 114')은, 폴더 윈도우(104) 내에서의 포인터의 시작 위치로부터 더 멀리 떨어진 항목 표현(예를 들어, 항목 표현 110' 및 118')보다 일찍 벗겨져 나오는 것으로 보여질 수 있다.
일부 구현에서, 항목 표현들은, 포인트가 이동을 개시하자마자 포인터의 현재 위치를 향하여 그들 각각의 이동을 개시할 수 있고, 포인터의 현재 위치가 폴더 윈도우(104)의 가장자리에 도달하기 이전에 선택된 항목들이 릴리스된다면, 선택된 항목들의 표현들은 사용자 인터페이스(100)에서 그들 각각의 경로를 따라 폴더 윈도우(104) 내의 그들의 원래 위치로 되돌아가는 것으로 보여질 수 있다.
일부 구현에서, 항목 표현들(예를 들어, 항목 표현들 110', 114', 및 118')은, 포인터가 이동하기 시작하자마자 포인터의 현재 위치를 향해 더 느리고 더 균일한 속도로 그들 각각의 이동을 개시하는 것으로 보여질 수 있다. 그리고, 포인터의 현재 위치가 폴더 윈도우(104)를 넘어서자마자(또는 대안으로서, 포인터가 폴더 윈도우(104) 내의 그 시작 위치로부터 임계 거리보다 멀리 이동하자마자), 항목들의 표현들은 포인터의 현재 위치를 향하여 더욱 신속하게 이동(또는 가속)되고, 포인터의 현재 위치 부근에 클러스터를 형성하는 것으로 보여진다.
일부 구현에서, 포인터가 폴더 윈도우(104) 내에서 이동할 때, 선택된 항목들의 표현들은 포인터의 이동을 정적 이미지(static image)로서 추종할 수 있으며, 여기서 선택된 항목들 사이의 공간적 관계는 이동 동안에 변하지 않는다. 그리고, 포인터가 폴더 윈도우(104) 바깥으로 이동하자마자, 선택된 항목들의 표현들은 그들 각각의 경로를 따라 포인터의 현재 위치를 향해 이동하고(또는 "떼지어 모이고"), 포인터의 현재 위치 부근에서 클러스터를 형성하는 것으로 보여질 수 있다.
일부 구현에서, 항목 표현들의 대형(예를 들어, 클러스터)는 소스 컨테이너 객체(예를 들어, 폴더 윈도우(104))에 의해 API를 통해 정의될 수 있다. 항목 표현들의, 그들 각각의 원래 위치로부터 대형(예를 들어, 클러스터) 내에서의 그들 각각의 위치로의 각각의 이동을 나타내는 애니메이션 스타일(예를 들어, 경로 형상, 속도, 가속도)도 역시 소스 컨테이너에 의해 API를 통해 정의될 수 있다. 일부 구현에서, 항목 표현들의 외관 스타일 및 대형 스타일은, 소스 컨테이너와 잠재적 드롭 타겟 컨테이너에 의해 공동으로 결정될 수 있다.
도 1c에 도시된 바와 같이, 선택된 항목들의 각각의 표현(표현 110', 114', 및 118')이 (예를 들어, 커서 120으로 표시된 바와 같은) 포인터의 현재 위치 부근에서 그들 각각의 위치에 도달하여, 포인터의 현재 위치 부근에서 클러스터(124)를 형성하였다. 일부 구현에서, 항목들의 표현들은 상이한 시간에 클러스터(124)에 도달할 수 있다.
일부 구현에서, 도 1c에 도시된 바와 같이, 선택된 항목들의 표현들에 의해 형성된 클러스터(124)는, 선택된 항목들의 표현들(예를 들어, 항목 표현들 110', 114', 및 118')을 포함하는 스택이다. 일부 구현에서, 스택 내의 항목들의 표현들의 순서는, 표현들이 스택 내에 도달한 순서에 의존할 수 있고, 이것은 간접적으로, 폴더 윈도우(104) 내에서의 각 항목의 원래 위치와 폴더 윈도우(104) 내의 포인터의 시작 위치 사이의 각각의 거리에 의존할 수 있다. 일부 구현에서, 스택 내에서의 항목들의 표현들의 순서는, 폴더 윈도우(104)에서 항목들이 선택된 순서에 의존할 수 있다. 일부 구현에서, 클러스터(124) 내에서의 항목 표현들의 다른 순서(예를 들어, 무작위 순서)도 역시 가능하다. 일부 구현에서, 항목들의 표현들의 순서는 잠재적 드롭 타겟(예를 들어, 데스크탑)과 연관된 대형 스타일에서 정의될 수 있다. 일부 구현에서, 항목들의 표현들의 순서는 소스 컨테이너(예를 들어, 폴더 윈도우(104))와 연관된 대형 스타일에서 정의될 수 있다.
일부 구현에서, 항목 표현들은 클러스터(124)에서 반드시 스택을 형성하지 않아도 된다. 클러스터(124) 내에서의 항목들의 다른 배열도 가능하다. 예를 들어, 클러스터 내의 항목 표현들의 개수가 작다면, 항목들은 포인터의 현재 위치 부근에서 격자 상에 또는 곡선 경로(예를 들어, 원)를 따라 레이아웃될 수 있다. 일부 구현에서, 항목들의 표현들이 클러스터 내에서 중첩하면, 미리정의된 입력 명령(예를 들어, 팽창 명령)에 응답하여 클러스터 내에서의 항목들의 표현들은 일시적으로 쫙 펼쳐져 중첩을 제거할 수 있다. 대형 내의 항목의 개수, 포인터의 현재 위치 등과 같은 상이한 트리거 이벤트와 함께, 상이한 대형 스타일 또는 배열들이 정의될 수 있다. 상이한 대형 스타일들은, 그들의 대응하는 트리거 이벤트들이 사용자 인터페이스에서 검출될 때 항목 표현들을 배열하는데 이용될 수 있다.
일부 구현에서, 항목들의 표현들(예를 들어, 항목 표현들 110', 114', 및 118')이 (예를 들어, 커서(120)로 표시된 바와 같은) 포인터의 현재 위치 부근에서 클러스터(124)를 형성한 후에, 항목 표현들은 클러스터(124) 내의 정의된 범위 내에서 독립적으로 이동될 수 있다. 예를 들어, 각 항목 표현(110', 114', 및 118')은, 마치 항목 표현(110', 114', 및 118')이 물속에 떠 있고, 물속의 조류에 의해 흔들리는 것과 같은 방식으로 클러스터(124) 내의 포인터의 현재 위치 부근에서 움직이는 것으로 보여질 수 있다.
일부 구현에서, 클러스터(124) 부근에 또는 이에 부착되어 카운트 표시자(126)가 표시될 수 있다. 카운트 표시자(126)는 클러스터(124)에 모인 항목 표현들의 개수를 나타내는 숫자를 보여줄 수 있다. 도 1c에 도시된 바와 같이, 3개의 항목 표현(예를 들어, 항목 표현 110', 114', 및 118')이 포인터의 현재 위치 부근에 모여 있고, 클러스터(124)를 형성하였으며, 클러스터(124)에 부착된 카운트 표시자(126)는 숫자 "3"을 보여주고 있다. 일부 구현에서, 카운트 표시자는 클러스터 내의 그 자신의 레이어에서 정의될 수 있고, 클러스터 내의 항목 표현들과는 독립적으로 애니메이션될 수 있다. 소스 컨테이너는 클러스터에 대한 대형 스타일을 제공할 수 있고, 대형 스타일은 항목 표현들이 클러스터 내에서 어떻게 레이아웃될 것인지를 지정할 수 있다.
도 1c에 도시된 바와 같이, 포인터의 현재 위치는 데스크탑의 디스플레이 영역(102) 상에 있다. 데스크탑 자체는, 데스크탑의 디스플레이 영역(102)에 항목들의 표현들(예를 들어, 데스크탑 폴더 내의 파일 및 폴더에 대한 아이콘들)을 디스플레이하는 컨테이너일 수 있다. 데스크탑은 큰 아이콘 보기 또는 작은 아이콘 보기로 항목들을 나타낼 수 있고, 데스크탑 내의 항목들의 표현들은 자유-배열 구성이나 배열-유지 구성일 수 있다.
이 예에서는, 데스크탑은 큰 아이콘 보기로 되어 있다. 따라서, 항목들의 표현이 데스크탑 상에서 폴더 윈도우(104)로부터 포인터의 현재 위치로 이동할 때, 항목 표현들의 외관은, 그들이 데스크탑에서 클러스터(124)를 형성할 때 변경되지 않는다. 그러나, 데스크탑이 작은 아이콘 보기로 되어 있다면, 항목 표현들은, 항목 표현들이 데스크탑 상에서 클러스터링될 때 (폴더 윈도우(104)에 도시된 바와 같은) 그들의 원래의 큰 아이콘 외관으로부터 그들의 작은 아이콘 외관으로 변경될 수 있다.
일부 구현에서, (예를 들어, 포인터나 키보드 상의 홀드 버튼의 릴리스에 의한, 또는 터치 감응 디스플레이로부터 손가락의 들어올림에 의한) 드래그된 항목들이 릴리스되기 이전에, 항목 표현들은 클러스터(예를 들어, 클러스터(124))의 사용자 인터페이스(100) 내의 포인터의 이동을 추종할 수 있다.
도 1d에 도시된 바와 같이, (예를 들어, 커서(120)로 표시된 바와 같은) 포인터의 현재 위치가 사용자 인터페이스(100) 내의 (예를 들어, 데스크탑의 디스플레이 영역(102) 내의) (점선 곡선(128a)으로 표시된 바와 같은) 경로를 따라 이동할 때, 클러스터(124) 내의 항목 표현들은 (점선 곡선(128b-d)으로 표시된 바와 같은) 표현의 각각의 경로를 따라 포인터의 이동을 추종한다.
일부 구현에서, 클러스터(124) 내의 항목 표현들은 상이한 속도 및 상이한 가속도로 이동할 수 있고, 커서(120)를 따라 자취를 남기며 상이한 거리만큼 이동할 수 있다. 일부 구현에서, 포인터가 사용자 인터페이스(100)에서(예를 들어, 화살표 방향의 곡선 경로(128a)의 끝에서) 정지할 때, 클러스터(124) 내의 각 항목 표현은 사용자 인터페이스(100) 내의 포인터의 정지 위치 부근의 위치에 도달할 때 감속되는 것으로 보여질 수 있다.
도 1e 내지 도 1f는, 클러스터가 잠재적 타겟 컨테이너의 드롭 구역 내에 있는 동안 잠재적 타겟 컨테이너의 외관 스타일에 따라 클러스터 내의 선택된 항목 표현들이 그들의 외관을 변경하는 것을 보여주고 있는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1a 내지 도 1d에 도시된 예를 계속하면, 사용자가 선택된 항목 표현(110', 114', 및 118') 상에서 드래그 동작을 계속한다면, 항목 표현(110', 114', 및 118')에 의해 형성된 클러스터(124)는 (도 1e에 도시된 바와 같은) 폴더 윈도우(106) 내로의 포인터의 이동을 추종할 수 있다. 클러스터(124)가 처음에 폴더 윈도우(106)에 들어가면, 클러스터(124) 내의 항목 표현들의 외관은, 클러스터(124)가 데스크탑의 디스플레이 영역(102)에 있을 때의 클러스터(124) 내의 항목 표현들의 외관과 동일할 수 있다.
일부 구현에서, 클러스터(124)가 정지되거나 감속되지 않고 폴더 윈도우(106)를 가로질러 빠르게 드래그된다면, 클러스터(124) 내의 항목 표현들의 외관은 변경될 필요가 없다. 일부 구현에서, 운영 체제는, 클러스터(124)가 사용자 인터페이스(100) 상의 소정 위치에서 다른 위치로 드래그될 때 포인터의 이동 패턴을 모니터링할 수 있다. 컨테이너 객체(예를 들어, 폴더 윈도우, 애플리케이션 윈도우, 또는 데스크탑) 위에서의 포인터의 이동 패턴이 그 컨테이너 객체를 클러스터(124) 내의 선택된 항목들에 대한 잠재적 타겟 컨테이너로서 사용자가 고려한다는 것을 나타낸다면, 클러스터(124) 내의 항목 표현들에 대한 외관 변경이 실행될 수 있다. 컨테이너 객체 위에서의 포인터의 이동 패턴이, 사용자가 단순히 사용자 인터페이스 상의 또 다른 위치로 가는 경로 상에서 그 컨테이너 객체를 지나치는 것임을 나타낸다면, 클러스터(124) 내의 항목 표현들에 대한 외관 변경은 개시되지 않는다.
일부 구현에서, 소정 컨테이너를 클러스터(124) 내의 선택된 항목들에 대한 잠재적 타겟 컨테이너로서 사용자가 고려한다는 것을 나타내는 이동 패턴의 특성은, 포인터가 그 컨테이너에 들어간 후 포인터의 감속, 또는 임계 시간양 보다 오래동안 그 컨테이너 내부에서의 포인터의 잠시멈춤(예를 들어, 호버링)을 포함할 수 있다. 일부 구현에서, 사용자가 사용자 인터페이스(100) 내의 또 다른 위치로 가기 위해 단순히 소정 컨테이너 위로 포인터를 이동하고 있을 뿐이라는 것을 나타내는 이동 패턴의 특성은, 어떤 감속도 없는 그 컨테이너 위로의 포인터의 빠르고 부드러운 이동을 포함할 수 있다.
일부 구현에서, 도 1f에 도시된 바와 같이, 포인터가 폴더 윈도우(106) 내부에서 감속되거나 잠시멈출 때, 클러스터(124) 내의 항목 표현들의 외관은 데스크탑과 연관된 큰 아이콘 보기로부터 폴더 윈도우(106)와 연관된 목록 보기로 변할 수 있다. 예를 들어, 선택된 항목들의 표현(110', 114', 및 118')은 항목들의 큰 아이콘 표현이고, 도 1f에서, 클러스터(124) 내의 큰 아이콘 표현(110', 114', 및 118')은, 각각 선택된 항목들(110, 114, 및 118)의 목록 보기 표현인 표현(110", 114", 및 118")으로 대체되었다.
도 1f에 도시된 바와 같이, 클러스터(124) 내의 선택된 항목들의 목록 보기 표현(110", 114", 및 118") 각각은 작은 아이콘과 텍스트 라벨을 포함할 수 있다. 일부 구현에서, 클러스터(124) 내의 목록 보기 표현들은 폴더 윈도우(106)의 배열-유지 기준(예를 들어, 파일명별, 크기별, 파일 타입별, 수정 시간별 등)에 따라 클러스터(124)에서 분류될 수 있다. 일부 구현에서, 클러스터(124) 내의 목록 보기 표현(110", 114", 및 118")의 순서는 외관 변화가 발생하기 전후에 동일하게 유지될 수 있다.
일부 구현에서, 항목 표현들이 클러스터 내에서의 그들의 큰 아이콘 외관으로부터 클러스터 내에서의 그들의 목록 보기 외관으로 천이하는 것을 나타내는 애니메이션이 보여질 수 있다. 항목 표현들의 상이한 레이어(예를 들어, 아이콘 이미지 레이어 및 텍스트 라벨 레이어)에 대해 상이한 애니메이션이 적용될 수 있다. 예를 들어, 항목 표현의 큰 아이콘 이미지가 항목 표현의 작은 아이콘 표현으로 축소되는 것을 나타내는 애니메이션이 아이콘 이미지 레이어에 적용될 수 있다. 동시에, 큰 아이콘 이미지의 하부로부터 작은 아이콘 이미지의 우측으로 항목 표현의 텍스트 라벨이 이동하는 것을 나타내는 또 다른 애니메이션이 텍스트 라벨 레이어에 적용될 수 있다. 또한, 텍스트 라벨 그 자체의 외관도 애니메이션 동안에 역시 변할 수 있다. 예를 들어, 텍스트 라벨 부근에 테두리가 추가될 수 있고, 텍스트 라벨의 색상과 폰트가 또한 변경될 수 있다.
도 1g는, 선택된 항목들이 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106)) 내에 드롭되는 경우 컨테이너의 구성의 미리보기로서 선택된 항목들의 표현들이 클러스터(124)를 벗어나 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106)) 내에서의 그들 각각의 예상 위치를 향하여 이동하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
일부 구현에서, 사용자가 컨테이너(예를 들어, 폴더 윈도우(106)) 내부에서 연장된 시간 동안(예를 들어, 최소 임계 기간보다 오래) 포인터를 잠시멈출 때, 또는 사용자가 미리정의된 미리보기 명령을 입력할 때, 클러스터(124) 내의 항목 표현들(예를 들어, 항목 표현 110", 114", 및 118")이 클러스터(124)에서의 그들의 원래 위치를 떠나, 그 컨테이너(예를 들어, 폴더 윈도우(106)) 내에 항목들이 릴리스될 경우의 그들 각각의 예상 위치로 이동해가는 것을 나타내는 애니메이션이 사용자 인터페이스(100)에서 보여질 수 있다.
일부 구현에서, 항목 표현들의 예상 위치는, 컨테이너(예를 들어, 폴더 윈도우(106))와 연관된 배열-유지 기준(예를 들어, 파일명별, 파일 크기별, 파일 타입별, 수정 시간별 등에 의한 분류)과 클러스터 내의 선택된 항목들과 컨테이너 내의 기존 항목들의 관련 속성값(예를 들어, 파일명, 파일 크기, 파일 타입, 수정 시간 등)에 따라 결정될 수 있다. 예를 들어, 선택된 항목들(110, 114, 및 118)과 기존의 항목들(122a 및 122b)은, 그들 각각의 파일명에 의해 분류될 때, 다음과 같은 순서를 가질 것이다: (1) 항목(122a), (2) 항목(118), (3) 항목(114), (4) 항목(110), 및 (5) 항목(122b). 이 순서에 기초하여, 폴더 윈도우(106) 내에서의 항목 표현들(110", 114", 및 118")의 예상 위치가 결정될 수 있다.
도 1g에 도시된 바와 같이, 항목 표현들(110", 114", 및 118")은 클러스터(124)를 떠나, 선택된 항목들이 폴더 윈도우(106)에 드롭되었을 경우에 항목 표현들이 폴더 윈도우(106)에서 갖게 될 각각의 예상 위치로 이동하였다. 일부 구현에서, 기존 항목들의 표현들(예를 들어, 항목 표현 122a 및 122b)은 폴더 윈도우(106)에서 이동되어 클러스터(124) 내의 선택된 항목들의 표현들을 위한 공간을 만들 수 있다.
일부 구현에서, 클러스터(124)로부터의 항목 표현들(예를 들어, 항목 표현 110", 114", 및 118")은 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106))에서의 그들의 예상 위치에서 디스플레이될 수 있다. 일부 구현에서, 항목 표현들(예를 들어, 항목 표현 110", 114", 및 118")은 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106))에서의 그들의 예상 위치 부근에 디스플레이될 수 있다.
일부 구현에서, 선택된 항목들의 표현들이 잠재적 타겟 컨테이너에서의 그들의 예상 위치나 그 부근에 표시될 때, 이 표현들은 사용자 인터페이스 상에서 반투명 오버레이로서 디스플레이될 수 있다. 일부 구현에서, 항목 표현들이 미리보기 동안 그들의 예상 위치나 그 부근에서 표시될 때 항목 표현들에는 다른 시각적 표시가 제공될 수 있다.
일부 구현에서, 클러스터(124) 내의 항목 표현들(예를 들어, 항목 표현 110", 114", 및 118")이 클러스터를 떠나 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106))에서의 표현들의 각각의 예상 위치로 이동한 후에, 사용자가 선택된 항목들을 잠재적 타겟 컨테이너 내에 드롭할 것을 선택한다면, 선택된 항목들의 각각의 표현들(예를 들어, 표현 110", 114", 및 118")은 (이들이 이미 그들 각각의 예상 위치에 디스플레이되어 있지 않다면) 그들 각각의 예상 위치로 이동하여 정착하고 제1 상태(예를 들어, 반투명 상태)로부터 제2 상태(예를 들어, 불투명 상태)로 변하는 것으로 보여질 수 있다. 일부 구현에서, 미리보기 동안 항목 표현들의 일시적 상태를 나타내는 다른 외관 특성들은, 항목 표현들이 잠재적 타겟 컨테이너 내에 드롭될 때 제거될 수 있다.
도 1h는, 항목들이 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106)) 내에 드롭될 때 선택된 항목들의 표현들이 그들 각각의 예상 위치에 정착하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
일부 구현에서, 도 1h에 도시된 바와 같이, 드롭 동작의 완료시에, 각각의 목록 보기 외관으로 된 선택된 항목들의 표현들이 도 1g의 미리보기 동안에 보여진 그들 각각의 예상 위치에서 폴더 윈도우(106) 내에 삽입되었다. 드롭 동작의 완료시에, 폴더 윈도우(104) 내의 선택된 항목들의 표현들은, 도 1h에도 도시된 바와 같이, 사용자 인터페이스(100)로부터 제거될 수 있다. 상기 예에서, 드래그 앤 드롭 동작이 선택된 항목들에 수행되고, 드래그 앤 드롭은 파일 시스템에서 선택된 항목들의 이동을 야기한다. 일부 구현에서, 드래그 앤 드롭 동작은 또한 선택된 항목들의 사본에 수행될 수 있고, 선택된 항목들의 표현들은 폴더 윈도우(104)에서 좌측에 있고, 드래그 앤 드롭 이후에 (예를 들어, 도 1a에 도시된 음영없이) 그들의 정규의 큰 아이콘 보기로 되돌아 갈 수 있다.
일부 구현에서, 사용자는 선택된 항목들을 잠재적 타겟 컨테이너 내에, 그들 각각의 예상 위치에서의 항목의 미리보기가 표시되기를 기다리지 않고, 드롭할 수 있다. 예를 들어, 사용자는 포인터가 잠재적 타겟 컨테이너의 드롭 구역 내로 이동한 직후에 항목들을 릴리스할 수 있다. 예를 들어, 드롭 동작은 사용자 인터페이스(100)가 도 1e에 도시된 바와 같은 상태에 있을 때 개시될 수 있다. 대안으로서, 사용자는, 항목들이 큰 아이콘 보기로부터 목록 보기로 그들의 외관을 변경한 후에 그 항목들을 릴리스할 수 있다. 예를 들어, 드롭 동작은 사용자 인터페이스(100)가 도 1f에 도시된 바와 같은 상태에 있을 때 개시될 수 있다. 항목들이 릴리스될 때, 항목들의 표현들은 그들 각각의 현재 위치로부터 그들의 예상 위치로 항목들 각각의 경로를 따라 이동하여 결국 도 1h에 도시된 바와 같이 항목들의 예상 위치에 정착하는 것으로 보여질 수 있다.
도 1i는, (예를 들어, 도 1f 및 도 1g에 도시된 상태에 후속하여, 사용자가 선택된 항목들을 잠재적 타겟 컨테이너 내에 드롭하지 않기로 결정한 경우) 항목 표현들의 클러스터가 잠재적 타겟 컨테이너를 떠나 포인터의 이동을 추종하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
일부 구현에서, 사용자가 항목 표현들(예를 들어, 항목 표현 110", 114", 및 118")을 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106)) 내에 릴리스하지 않기로 결정하고, 포인터를 사용자 인터페이스(100) 내의 상이한 위치로(예를 들어, 폴더 윈도우(106) 밖으로) 이동하면, 항목 표현들은 폴더 윈도우(106) 내의 그들 각각의 예상 위치로부터 벗어나 포인터의 현재 위치를 향해 이동하여 포인터의 현재 위치 부근에서 클러스터(124)에 재합류하는 것으로 보여질 수 있다.
도 1i에 도시된 바와 같이, 포인터가 잠재적 타겟 컨테이너(예를 들어, 폴더 윈도우(106)) 바깥으로 이동하면, 클러스터(124)는 포인터의 커서(120)를 추종한다. 또한, 클러스터(124)가 데스크탑의 디스플레이 영역(102) 상에 있을 때, 클러스터(124) 내의 항목 표현들은 그들 각각의 목록 보기 외관으로부터 그들 각각의 큰 아이콘 보기 외관으로 변할 수 있다.
도 1j 및 도 1k는, 항목 표현들의 클러스터가 애플리케이션-정의된 외관 스타일과 연관된 제2 잠재적 타겟 컨테이너(예를 들어, 애플리케이션 윈도우(108)) 내로 드래그되고 있는 것과 항목 표현들의 클러스터가 제2 잠재적 타겟 컨테이너의 애플리케이션-정의된 외관 스타일에 따라 그들의 외관을 변경하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1a 내지 도 1i에 도시된 예를 계속하면, 사용자가 선택된 항목들을 폴더 윈도우(106) 내에 릴리스하지 않았고 선택된 항목들의 클러스터를 애플리케이션 윈도우(108) 내에 드래그하였다고 가정하자. 애플리케이션 윈도우(108)는 기존의 또는 새로운 문서(130)를 보여줄 수 있고, 문서(130)는 편집될 준비가 되어 있다. 애플리케이션 윈도우(108)는 대응하는 소프트웨어 애플리케이션에 의해 제공될 수 있다. 일부 구현에서, 소프트웨어 애플리케이션은, 문서가 소프트웨어 애플리케이션에 의해 제공된 애플리케이션 윈도우에 보여질 때 콘텐츠 항목(예를 들어, 이미지 파일, 비디오 클립, 데이터 객체 등)이 문서에서 어떻게 표시될 수 있는지를 정의할 수 있다. 일부 구현에서, 소프트웨어 애플리케이션은, 운영 체제에게 필요한 정보(예를 들어, 애플리케이션-정의된 외관 스타일의 콘텐츠 항목의 위치, 크기, 해상도, 및 포맷)를 제공하여 항목 표현들이 애플리케이션 윈도우(108) 내외로 드래그되고 있을 때 항목 표현들에 대한 외관 변화를 구현하기 위해, 애플리케이션 프로그래밍 인터페이스(API)를 통해 운영 체제와 통신할 수 있다.
일부 구현에서, 애플리케이션은 항목 표현들의 외관 스타일에서 복수의 레이어를 지정할 수 있다. 각 레이어는 항목 표현의 컴포넌트(예를 들어, 아이콘 이미지, 텍스트 라벨, 및 배경 이미지)에 대응할 수 있다. 각 레이어는, 컴포넌트의 크기, 색상, 위치, 및 외관 스타일들간의 천이시에 컴포넌트의 애니메이션 스타일을 지정하는 속성과 같은, 그 자신의 속성과 연관될 수 있다. 각 레이어는 또한, 레이어 이름이나 키 이름과 연관될 수 있다. 예를 들어, 항목 표현의 텍스트 라벨을 보여주는 레이어에는 키 이름 "라벨"이 부여될 수 있는 반면, 항목 표현의 아이콘 이미지를 보여주는 레이어에는 키 이름 "아이콘"이 부여될 수 있다. 레이어의 키 이름은, 특별한 외관 및/또는 애니메이션이 적용될 수 있는 항목 표현의 모음 내의 (예를 들어, 클러스터 내의) 레이어들을 식별하기 위해 운영 체제에 의해 이용될 수 있다. 예를 들어, 운영 체제는 클러스터 내의 항목 표현들의 모든 "라벨" 레이어들을 식별할 수 있고, 항목 표현들이 클러스터 내에 도달했을 때 항목 표현들의 텍스트 라벨들의 모두 또는 일부(예를 들어, 1개를 제외한 모두)를 페이드 아웃시킬 수 있다.
도 1j에 도시된 바와 같이, 애플리케이션 윈도우(108)를 제공하는 소프트웨어 애플리케이션은 전자메일 편집기이고, 애플리케이션 윈도우(108)에 나타난 문서는 편집중인 전자메일 메시지(예를 들어, "메시지 1")이다. 문서는 현재 일부 텍스트를 포함하고 있지만, 문서 내에는 어떠한 다른 항목도 임베딩되어 있지 않다. 소프트웨어 애플리케이션은 문서(130) 내의 삽입 포인트로의 콘텐츠 항목의 드래그 앤 드롭을 지원한다.
사용자가 선택된 항목(예를 들어, 표현 110', 114', 및 118')의 표현을 포함하는 클러스터(124)를 애플리케이션 윈도우(108) 내로 드래그했을 때, 처음에, 표현들은, 도 1j에 도시된 바와 같이, 그들의 큰 아이콘 외관을 유지할 수 있다. 운영 체제는 사용자의 포인터의 움직임 특성을 모니터링하고 클러스터(124)가 단순히 애플리케이션 윈도우(108) 위를 통과하여 드래그되고 있는지 여부를 판정하거나, 사용자가 애플리케이션 윈도우(108)를 클러스터(124) 내의 선택된 항목들에 대한 잠재적 타겟 컨테이너로서 고려하고 있는지 여부를 판정할 수 있다.
예를 들어, 운영 체제는 클러스터(124)가 애플리케이션 윈도우(108) 내로 드래그된 속도를 모니터링할 수 있고, 포인터가 애플리케이션 윈도우(108) 내에서 현재 정지되어 있는지를 모니터링할 수 있다. 포인터가 애플리케이션 윈도우(108) 내에서 상당히 감속되었거나 정지했다면, 운영 체제는 클러스터(124) 내의 항목 표현들의 외관을 애플리케이션 윈도우(108)와 연관된 외관 스타일에 따라 변경하기로 결정할 수 있다. 포인터가 어떤 의미있는 감속이나 정지없이 애플리케이션 윈도우(108)를 통과하여 이동하고 있다고 운영 체제가 판단하면, 운영 체제는, 이동 패턴에서의 의미있는 변화가 검출될 때까지 클러스터 내의 항목 표현들의 외관을 그대로 유지할 수 있다.
이 예에서, 사용자는 애플리케이션 윈도우(108)에서 포인터를 정지시켰다. 운영 체제가 애플리케이션 윈도우(108) 내에서의 포인터의 정지를 검출하면, 클러스터 내의 항목 표현들의 외관은, 그들의 큰 아이콘 외관(예를 들어, 표현 110', 114', 및 118')으로부터 그들의 픽쳐 보기 외관(예를 들어, 표현 110''', 114''', 및 118''')으로 변경될 수 있다. 선택된 항목의 픽쳐 보기 외관은, 항목이 문서(130) 내에 삽입되는 경우에 어떻게 보일 것인지에 따라 애플리케이션 프로그램에 의해 정의될 수 있다. 예를 들어, 선택된 항목들이 이미지 파일이고, 이미지 파일들이 애플리케이션 윈도우(108)에 도시된 전자메일 메시지 내에 삽입된다면, 이미지는 페이지 폭의 절반의 균일한 측방향 크기를 갖도록 크기조정된다. 애플리케이션 윈도우(108)의 외관 스타일은 하나 이상의 API 호출을 통해 운영 체제에 제공될 수 있고, 운영 체제는 애플리케이션 윈도우(108)의 외관 스타일에 따라 선택된 항목들의 픽쳐 보기 표현을 생성할 수 있다. 선택된 항목들의 픽쳐 보기 표현(예를 들어, 표현 110''', 114''', 및 118''')이 생성된 후에, 도 1k에 도시된 바와 같이, 선택된 항목들의 큰 아이콘 보기를 대체하여, 픽쳐 보기 표현이 클러스터(124)에서 보여질 수 있다.
일부 구현에서, 이미지 파일의 픽쳐 보기 표현은, 해상도나 컬러 정보가 적은 축소된 이미지일 수 있다. 일부 구현에서, 픽쳐 보기 표현은 반투명일 수 있다. 소프트웨어 애플리케이션은, 콘텐츠 항목의 다양한 보기와 연관된 다른 외관 스타일을 정의할 수 있고, 항목 표현들은, 소프트웨어 애플리케이션에 의해 제공된 애플리케이션 윈도우에 대한 외관 스타일의 정의에 따라 운영 체제에 의해 생성될 수 있다.
도 1l은, 선택된 항목들이 제2 잠재적 타겟 컨테이너 내로 드롭된다면 컨테이너의 구성의 미리보기로서, 선택된 항목들의 표현들(예를 들어, 항목 표현들 110''', 114''', 및 118''')이 클러스터(124)를 벗어나 제2 잠재적 타겟 컨테이너(예를 들어, 애플리케이션 윈도우(108)) 내에서의 그들 각각의 예상 위치를 향하여 이동하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1l에 도시된 바와 같이, 클러스터(124) 내의 각 항목 표현은 각각의 경로를 따라 잠재적 타겟 컨테이너 내에서의 그 각각의 예상 위치를 향하여 이동할 수 있다. 항목들의 표현들의 예상 위치는, 애플리케이션 윈도우(108)를 제공하는 애플리케이션 프로그램의 명세와 문서의 내용에 따라 결정될 수 있다. 예를 들어, 애플리케이션 윈도우(108)를 제공하는 애플리케이션 프로그램은, 선택된 항목들을 문서(130) 내에 삽입할 때의 순서와 레이아웃을 지정할 수 있고, 그 명세를 API를 통해 운영 체제에 제공할 수 있다. 운영 체제는, 항목 표현들이 애플리케이션 윈도우(108) 내의 문서(130) 내에서의 그들 각각의 예상 위치로 이동하는 것을 나타내는 사용자 인터페이스 변경을 구현할 수 있다.
일부 시나리오에서, 애플리케이션 윈도우는 제한된 크기일 수 있고, 문서(130)는 애플리케이션 윈도우(108)의 뷰 포트 내에서 완전히 드러날 수 없다. 사용자는 애플리케이션 윈도우(108)의 크기를 증가시키거나 문서(130)의 은닉 부분을 애플리케이션 윈도우(108)의 뷰 포트 내로 이동시키기 위해 스크롤 제어를 이용할 수 있다. 클러스터(124) 내의 항목 표현들에 대해 예상 위치가 결정되면, 일부 항목 표현들의 예상 위치는 애플리케이션 윈도우(108)에서 현재 볼 수 없는 문서(130)의 영역에 있을 수도 있다. 이러한 시나리오에서, 이들 항목들의 표현은, 클러스터(124)를 떠나 각각의 경로를 따라 그들의 각각의 위치를 향하여 이동하는 것으로 보여질 수 있다. 항목 표현들은, 애플리케이션 윈도우(108)에서 현재 볼 수 없는 예상 위치로 이어지는 궤적을 따라 애플리케이션 윈도우(108)의 가시 영역을 벗어나는 것으로 보여질 수 있다.
예를 들어, 도 1l에 도시된 바와 같이, 항목 표현(118''')의 예상 위치는 부분적으로 애플리케이션 윈도우(108)의 가시 영역 내에 있다. 항목 표현들의 그들 예상 위치에서의 미리보기 동안에, 항목 표현(118''')이 부분적으로 문서의 볼 수 없는 영역 내로 이동하는 것을 보여주는 애니메이션이 보여질 수 있다. 마찬가지로, 항목 표현(110''')의 예상 위치는 애플리케이션 윈도우(108)의 가시 영역의 완전히 바깥이며, 미리보기 동안에, 애니메이션은, 항목 표현(110''')이 경로(132)를 따라 애플리케이션 윈도우(108)의 볼 수 없는 영역 내로 이동하는 것을 보여줄 수 있다. 애니메이션을 보임으로써, 사용자는, 항목 표현(110''')이 단순히 사라진 것이 아니라, 이미지 표현(118''') 아래의 문서(130) 내의 삽입 포인트에 위치해 있다는 것을 기억해둘 필요가 있다.
사용자가 애플리케이션 윈도우(108)에서의 그들의 예상 위치에서의 항목 표현들의 미리보기를 본 후에 선택된 항목들을 드롭하기로 결정하면, 사용자는 (예를 들어, 마우스나 키보드 상의 홀드 버튼을 릴리스하거나, 터치 감응 디스플레이로부터 손가락이나 스타일러스를 들어올림으로써) 항목들을 릴리스할 수 있다. 도 1m은, 항목들이 제2 잠재적 타겟 컨테이너(예를 들어, 애플리케이션 윈도우(108)) 내에 드롭될 때 선택된 항목들의 표현들이 그들 각각의 예상 위치에 정착하는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1m에 도시된 바와 같이, 항목 표현(114''' 및 118''')은 반투명 상태로부터 불투명 상태로 바뀌었다. 항목 표현(110''')이 애플리케이션 윈도우(108)의 드러난 디스플레이 영역에서 현재 볼 수 없지만, 사용자가 애플리케이션 윈도우(108)에서 더 아래로 스크롤하면, 항목 표현(110''')이 드러날 것이다. 드롭 동작이 완료된 후에, 항목 표현(110, 114, 및 118)은 그들의 원래 컨테이너(예를 들어, 폴더 윈도우(104))로부터 제거될 수 있다.
도 1a 내지 도 1m은, 항목들이 배열-유지 상태에 있는 컨테이너 객체 위로 드래그되거나 그 내부에 드롭되는 경우 사용자 인터페이스 변경을 나타낸다. 도 1n 내지 도 1p는 제1 컨테이너 객체로부터 자유-배열된 상태의 제2 컨테이너 객체로의 항목의 선택과 드래그를 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
도 1m에 도시된 상태에 후속하는 상기 예를 계속하면, 사용자가 이제 애플리케이션 윈도우(108) 내에 드롭되었던 3개의 항목들 중 2개(예를 들어, 항목 표현 114''' 및 118''')를 선택하여 (도 1n에 도시된 바와 같이) 선택된 항목들을 애플리케이션 윈도우(108)로부터 멀리 드래그하기 시작한다고 가정한다.
포인터에 의한 드래그 동작의 개시가 운영 체제에 의해 검출될 때, 운영 체제는, 선택된 항목 표현들(예를 들어, 항목 표현 114''' 및 118''')이 애플리케이션 윈도우(108)에서의 그들의 원래 위치로부터 커서(120)로 표시된 포인터의 현재 위치를 향하여 이동하는 것을 보여주는 애니메이션을 나타낼 수 있다. 일부 구현에서, 항목 표현의 이동은, 포인터가 애플리케이션 윈도우(108) 바깥으로 이동하지 않았을 때에는 느리고 일정할 수 있으며, 포인터가 애플리케이션 윈도우(108)를 벗어나자마자 포인터의 현재 위치를 향하여 가속될 수 있다.
도 1o는, 선택된 항목 표현들(또는 선택된 항목 표현들의 사본)이 애플리케이션 윈도우(108) 바깥으로 이동하여 (커서(120)의 위치로 표시된 바와 같은) 포인터의 현재 위치 부근에 클러스터(134)를 형성한 것을 도시하고 있다. 또한, 클러스터(134) 내의 항목 표현들의 외관은, 픽쳐 보기 표현(114''' 및 118''')으로부터 항목들의 큰 아이콘 표현(114' 및 118')로 변하였다. 클러스터(134) 부근에, 클러스터(134)에 포함된 항목 표현들의 개수를 나타내는 카운트 표시자(136)(예를 들어, 뱃지)가 디스플레이될 수 있다. 단 2개의 항목만이 선택되어 있으므로, 카운트 표시자에 나타난 숫자는 "2"이다.
도 1p는, 사용자가 클러스터(134)를 다시 폴더 윈도우(104) 내로 드래그한 것을 도시한다. 폴더 윈도우(104)는 자유-배열 상태의 큰 아이콘 보기와 연관된다. 데스크탑도 역시 큰 아이콘 보기와 연관되어 있고, 클러스터가 데스크탑 영역(102) 내로 드래그될 때 클러스터(134) 내의 항목 표현들은 이미 그들 각각의 큰 아이콘 외관으로 업데이트되었기 때문에, 클러스터(134)가 데스크탑 영역(102)으로부터 폴더 윈도우(104) 내로 드래그될 때 클러스터(134) 내의 항목 표현들의 외관은 업데이트될 필요가 없다.
도 1q 및 도 1r은, 항목 표현들이 자유-배열 컨테이너에서의 그들의 예상 위치에서 디스플레이되는 미리보기와 미리보기 동안에 자유-배열 컨테이너에서 포인터에 의해 이동되고 있는 것을 보여주는 예시적 사용자 인터페이스 변경을 나타낸다.
사용자가, 항목 표현들의 자유-배열 컨테이너에서의 그들의 예상 위치에서의 미리보기를 보기 위한 명령을 입력하면, 항목 표현들(114' 및 118')이 클러스터(134)를 떠나 폴더 윈도우(104)에서의 그들의 예상 위치를 향하여 이동하는 애니메이션이 예시적으로 도시될 수 있다. 폴더 윈도우(104)는 자유-배열 상태이므로, 항목 표현들(114' 및 118')은 그들 사이에 어떤 고정된 간격을 유지한 채 그들의 현재 위치에서 단순히 드롭될 것이다. 도 1q에 도시된 바와 같이, 항목 표현들은, 그들의 현재 위치에서 폴더 윈도우(104) 내에 드롭된다면, 폴더 윈도우(104) 내의 기존 항목들과 중첩할 수 있다.
도 1r은, 사용자가 선택된 항목들을 폴더 윈도우(104) 내에 릴리스하기 이전에, 사용자가 미리보기 상태에서 팽창된 구성의 항목 표현들을 이동시킴으로써 항목 표현들(114' 및 118')의 현재 위치를 조정할 수 있다는 것을 나타내고 있다. 예를 들어, 도 1r에 도시된 바와 같이, 항목 표현들은, 그들이 팽창된 상태에 있는 동안 적절한 위치가 발견될 때(예를 들어, 항목 표현(114' 및 118')이 폴더 윈도우(104) 내의 기존 항목 표현(112 및 116)과 더 이상 중첩하지 않을 때)까지 전체로서 이동될 수 있다.
사용자가 폴더 윈도우(104)에서 선택된 항목들을 릴리스한 후에, 항목들은 미리보기에서 앞서 보여진 바와 같은 그들 각각의 위치 내에 정착하는 것으로 보여질 수 있다. 도 1s에 도시된 바와 같이, 항목 표현(114' 및 118')은 반투명 상태로부터 불투명 상태로 변하였고 미리보기에서 보여진 그들의 최종 위치에 정착하였으며, 항목들은 이제 도 1s의 항목 표현(114 및 118)으로 표시된다. 항목들은 애플리케이션 윈도우(108)로부터 제거되는 것으로 보여질 수 있고, 항목 표현(110''')은 스크린에서 위로 이동하여 애플리케이션 윈도우(108)에 디스플레이될 수 있다.
일부 구현에서, 도 1a 내지 도 1s에 나타낸 바와 같이, 항목 표현들의 클러스터는 포인터의 현재 위치 부근에 디스플레이되지만, 포인터의 현재 위치와 중첩하지 않는다. 포인터가 사용자 인터페이스에서 이동되고 있을 때 뿐만 아니라 포인터가 사용자 인터페이스 상의 영역 위에서 호버링하고 있을 때, 포인팅 장치의 현재 위치와 항목 표현들 사이에는 갭이나 간격이 유지된다. 항목 표현과 포인터 사이에 간격이나 갭을 유지함으로써, 항목 표현은 포인터의 현재 위치 바로 아래 및/또는 인접 영역을 비워둘 수 있으므로, 사용자는 항목을 그 위치로 이동시키거나 드롭하기로 결심하기 이전에 그 영역을 더욱 잘 볼 수 있다.
상기 예들은 단지 예시일 뿐이다. 이벤트들의 특정 시퀀스가 도시되었지만, 당업자라면 용이하게 이해하는 바와 같이, 항목들의 선택, 컨테이너 윈도우의 보기 구성, 및 한 위치로부터 다른 위치로의 포인터의 이동은 많은 변형을 가질 수 있다.
일부 구현에서, 상기 예에서 나타낸 바와 같이, 각 소스 컨테이너 객체(예를 들어, 도 1a의 폴더 윈도우(104), 및 도 1m의 애플리케이션 윈도우(108))는, 소스 컨테이너 내부에 디스플레이되는 항목 표현들의 하나 이상의 외관 스타일을 정의할 수 있다. 상이한 트리거 이벤트들의 발생시에 상이한 외관 스타일들이 트리거되어 항목 표현들에 적용될 수 있다. 예시적인 트리거 이벤트는, 컨테이너 객체 내의 정의된 위치 위에서의 항목 표현의 호버링, 정의된 이동 패턴이나 정의된 방향에 따른 항목 표현의 이동, 컨테이너 객체와 연관된 현재의 외관 스타일을 변경시키는 사용자 입력 등일 수 있다.
일부 구현에서, 각 소스 컨테이너는 또한, 항목 표현들이 소스 컨테이너 객체 바깥으로 이동하거나 비적격 드롭 타겟 컨테이너의 영역 상으로 이동될 때 항목 표현들에 대한 하나 이상의 외관 스타일을 정의할 수 있다. 소스 컨테이너는, 항목 표현들이 상이한 비적격 드롭 타겟 컨테이너 위에 있을 때 항목 표현들에 대해 상이한 외관 스타일을 정의할 수 있다.
일부 구현에서, 각각의 잠재적 드롭 타겟 컨테이너는 또한, 항목 표현들이 잠재적 드롭 타겟 컨테이너의 드롭 구역 내로 이동될 때 하나 이상의 외관 스타일을 정의할 수 있다. 외관 스타일들 각각은 또한 상이한 트리거 이벤트들을 가질 수 있고, 특정한 외관 스타일의 트리거 이벤트가 검출될 때, 그 트리거 이벤트와 연관된 외관 스타일이, 잠재적 드롭 타겟 컨테이너의 드롭 구역에 들어간 항목 표현에 적용될 수 있다. 상기 예들에서, 도 1f에 도시된 클러스터(124) 내의 항목 표현들의 목록 보기 외관과, 도 1o에 도시된 클러스터(134) 내의 항목 표현들의 큰 아이콘 외관은, 항목 표현들에 적용된 외관 스타일의 예이다.
일부 구현에서, 각 외관 스타일은 항목 표현에 대해 하나 이상의 레이어를 지정할 수 있다. 각 레이어는 항목 표현의 컴포넌트(예를 들어, 아이콘 이미지, 텍스트 라벨 등)에 대응할 수 있다. 각 레이어는, 그 레이어의 위치, 크기, 색상, 및 다른 외관 속성을 제어하는 하나 이상의 연관된 속성을 가질 수 있다. 각 레이어는 또한, 항목 표현이 한 외관으로부터 또 다른 외관으로 변경될 때 컴포넌트의 애니메이션 스타일을 제어하는 속성과 연관될 수 있다. 항목 표현의 상이한 레이어들과 연관된 속성들은 서로 상이할 수 있다.
일부 구현에서, 상이한 컨테이너 객체들에 의해 제공되는 외관 스타일들은 상이한 개수의 레이어들을 가질 수 있다. 각 레이어는, 항목 표현이 상이한 외관 스타일들에 따라 그 외관을 변경할 때 항목 표현으로부터 레이어가 어떻게 도입되고 제거될 수 있는지를 지정하는 속성과 연관될 수 있다. 예를 들어, 텍스트 라벨 레이어는, 항목 표현에 텍스트 라벨이 어떻게 추가될 수 있는지의 애니메이션 스타일(예를 들어, 팝업, 페이드인, 좌측으로부터의 슬라이드 인 등)을 지정하는 연관된 속성을 가질 수 있다. 또 다른 예의 경우, 텍스트 라벨 레이어는, 항목 표현으로부터 텍스트 라벨이 어떻게 제거될 수 있는지의 애니메이션 스타일(예를 들어, 페이드 아웃, 쉬머 아웃(shimmer-out), 우측으로의 슬라이드 아웃 등)을 지정하는 또 다른 연관된 속성을 가질 수 있다.
각 소스 컨테이너 객체는 또한, 컨테이너 객체에, 및/또는 비적격 드롭 타겟 위의 포인터 부근에, 현재 나타나 있는 항목 표현에 대한 하나 이상의 대형 스타일을 정의할 수 있다. 대형의 예로서는, 컨테이너 내에서의 항목 표현들의 자유-배열 레이아웃, 포인터의 현재 위치 부근에 디스플레이된 항목 표현들의 클러스터링된 구성, 목록으로 된 배열-유지 레이아웃, 하나 이상의 열로 된 배열-유지 레이아웃 등이 있을 수 있다. 마찬가지로, 각각의 잠재적 드롭 타겟 컨테이너는 또한, 항목 표현들이 잠재적 드롭 타겟 컨테이너의 드롭 구역에 들어갈 때 항목 표현에 대한 하나 이상의 대형 스타일을 정의할 수 있다. 예를 들어, 잠재적 드롭 타겟 컨테이너 내에서의 그들 각각의 예상 위치 부근에서 항목 표현들을 보여주는 미리보기 대형은, 잠재적 드롭 타겟 컨테이너에 의해 지정된 대형 스타일에 따라 구현될 수 있다.
여기서 설명된 바와 같이, 각각의 컨테이너 객체와 연관된 외관 스타일 및 대형 스타일은 컨테이너 객체에 의해 API에 따라 지정될 수 있다. 항목 표현들의 상이한 외관들, 및 항목 표현들의 모임의 상이한 대형은, 운영 체제에 의해, 상이한 외관 스타일 및 관련 소스 컨테이너 객체 및/또는 잠재적 드롭 타겟 컨테이너(들)의 대형 스타일에 따라 생성될 수 있다. 운영 체제는, 운영 체제에 의해 상이한 외관 스타일 및 대형 스타일들과 연관된 어떤 트리거 이벤트들이 현재 존재하거나 검출되는지에 기초하여, 항목 표현들에 어떤 외관 스타일 및/또는 대형 스타일을 적용할지를 결정할 수 있다. 하나의 외관으로부터 또 다른 외관으로, 및 하나의 대형으로부터 또 다른 대형으로의 천이를 보여주는 애니메이션은, 운영 체제에 의해, 그 외관 스타일 및 대형 스타일과 연관된 속성에 따라 보여질 수 있다.
사용자 인터페이스에서 항목을 드래그 앤 드롭하기 위한 예시적 프로세스
도 2a는, 선택된 항목들에 관한 동작(예를 들어, 드래그 동작)의 개시에 응답하여 선택된 항목들의 표현들로 하여금 포인터의 현재 위치 부근에서 클러스터를 형성하게 하기 위한 예시적 프로세스(200)의 흐름도이다.
예시적 프로세스(200)에서, 입력이 수신된다(202). 입력은 사용자 인터페이스에서 하나 이상의 선택된 항목에 관한 동작(예를 들어, 드래그 동작)을 개시하는 포인터의 이동일 수 있다. 입력에 응답하여, 운영 체제는 애니메이션이 표시되게끔 할 수 있다. 애니메이션에서, 하나 이상의 선택된 항목의 각각의 표현은, 사용자 인터페이스에서의 항목들 각각의 원래 위치로부터 사용자 인터페이스에서의 포인터의 현재 위치를 향해 이동할 수 있고, 포인터의 현재 위치 부근에서 클러스터를 형성한다(204).
일부 구현에서, 클러스터는, 스택 내에 배열된 하나 이상의 선택된 항목들의 표현들을 포함한다. 일부 구현에서, 클러스터는 정의된 입력 명령에 응답하여 선택된 항목들의 개개 표현을 보여주도록 팽창가능하다. 일부 구현에서, 사용자 인터페이스에서 항목들의 표현들의 이동은 비동기이다.
일부 구현에서, 예시적 프로세스(200)에서, 운영 체제는 카운트 표시자가 클러스터 부근에 표시되게끔 할 수 있고, 카운트 표시자는 클러스터 내의 항목 표현들의 개수를 보여준다.
일부 구현에서, 사용자 인터페이스 내의 포인터는, 터치 감응 디스플레이 상의 손가락이나 스타일러스이다. 일부 구현에서, 사용자 인터페이스 내의 포인터는, 마우스의 커서, 트랙볼, 터치 감응면 상의 손가락이나 스타일러스이다. 일부 구현에서, 항목들의 표현들의 각 위치는 클러스터 내의 정의된 범위 내에서 독립적으로 변할 수 있다.
도 2b는 선택된 항목들의 표현들로 하여금 클러스터 내의 포인터의 계속된 이동을 추종하게 하기 위한 예시적 프로세스(210)의 흐름도이다. 예시적 프로세스(210)에서, 사용자 인터페이스에서 하나 이상의 선택된 항목을 드래그하고 있는 포인터의 계속적 이동이 검출될 수 있다(212). 계속적 이동에 응답하여, 운영 체제는, 항목들의 표현들의 클러스터가 포인터의 계속적 이동을 추종하는 것을 애니메이션할 수 있다(214).
일부 구현에서, 클러스터 내의 각 항목 표현은, 포인터의 계속적 이동을 추종하면서 클러스터 내의 다른 항목 표현들의 각 경로와는 독립적인 경로를 따라 이동할 수 있다. 일부 구현에서, 클러스터 내의 각 항목 표현은, 포인터의 계속적 이동을 추종하면서 클러스터 내의 다른 항목 표현들과는 상이한 속도로 이동할 수 있다.
도 3은 항목 표현들의 클러스터가 상이한 외관 스타일과 연관된 컨테이너로 이동될 때 항목 표현들의 외관을 변경하기 위한 예시적 프로세스(300)의 흐름도이다.
일부 구현에서, 사용자 인터페이스에서 하나 이상의 항목들이 제1 컨테이너로부터 선택되었고, 각 항목 표현은 제1 컨테이너와 연관된 각각의 제1 외관을 가진다. 프로세스(300)에서, 사용자 인터페이스에서 제2 컨테이너의 드롭 구역 내에서 포인터의 현재 위치가 검출될 수 있다(302). 포인터의 현재 위치가 제2 컨테이너의 드롭 구역 내에 있는 동안, 운영 체제는 선택된 항목들의 표현들이 각각의 제2 외관을 채택하게끔 할 수 있고, 여기서, 각각의 제2 외관은 항목들이 제2 컨테이너에 드롭되는 경우에 항목들의 표현들의 각각의 예상되는 외관을 닮는다(304).
일부 구현에서, 제1 컨테이너와 제2 컨테이너 각각은, 데스크탑이거나 테스크탑 상의 윈도우이고, 제1 컨테이너와 제2 컨테이너 각각은, 각각 큰 아이콘 보기, 작은 아이콘 보기, 목록 보기, 열 보기, 또는 픽쳐 보기와 연관되며, 각각의 보기는 자유-배열 상태이거나 배열-유지 상태이다.
일부 구현에서, 제1 컨테이너와 제2 컨테이너 중 적어도 하나는 애플리케이션 윈도우이고, 애플리케이션 윈도우는 선택된 항목을 애플리케이션-정의된 뷰로 표시하도록 동작할 수 있다. 일부 구현에서, 선택된 항목의 애플리케이션-정의된 뷰는 사용자 인터페이스와 연관된 애플리케이션 프로그래밍 인터페이스(API)를 통해 정의된다.
도 4a는 잠재적 타겟 컨테이너 내의 항목 표현들 각각의 예상 위치에서의 항목 표현들의 미리보기를 보여주기 위한 예시적 프로세스(400)의 흐름도이다.
예시적 프로세스(400)에서, 항목들의 표현들이 제2 컨테이너에 드롭되는 미리보기를 요청하는 입력이 검출될 수 있다(402). 입력의 검출에 응답하여, 운영 체제는, 선택된 항목들의 표현들이 클러스터를 떠나 제2 컨테이너에서의 그들 각각의 예상 위치로 이동하는 것을 애니메이션할 수 있고, 여기서, 각각의 예상 위치는, 항목들이 제2 컨테이너에 드롭되는 경우에 표현들이 갖게 될 위치이다(404). 일부 구현에서, 미리보기를 요청하는 입력은, 제2 컨테이너의 드롭 구역 위에서의 포인터의 연장된 호버링이다.
일부 구현에서, 선택된 항목들의 표현들은, 항목들의 각 예상 위치에서 또는 그 부근에서 각각의 반투명 오버레이로서 디스플레이된다.
일부 구현에서, 선택된 항목들 중 적어도 하나의 예상 위치는, 사용자 인터페이스에서 현재 볼 수 없는 제2 컨테이너의 영역 내에 있고, 적어도 하나의 항목의 표현은 클러스터를 떠나 사용자 인터페이스에서 각 경로를 따라 제2 컨테이너의 볼 수 없는 영역 내로 들어간다.
도 4b는 선택된 항목을 잠재적 타겟 컨테이너에 드롭하기 위한 예시적 프로세스(410)의 흐름도이다.
예시적 프로세스(410)에서, 하나 이상의 선택된 항목을 제2 컨테이너의 드롭 구역 내에 릴리스하는 입력이 검출될 수 있다(412). 릴리스 입력에 응답하여, 운영 체제는, 하나 이상의 선택된 항목이, 제2 컨테이너 내에서의 선택된 항목들의 각 예상 위치에서 삽입되게끔 할 수 있다(414).
일부 구현에서, 제2 컨테이너의 가시 영역 내에서의 그들 각각의 예상 위치를 갖는 항목 표현들의 경우, 항목들의 각각의 예상 위치로의 항목들의 삽입의 완료에 응답하여, 항목 표현들은 반투명 상태로부터 불투명 상태로 변할 수 있다.
도 5는 선택된 항목을 잠재적 타겟 컨테이너에 드롭하지 않고 미리보기 이후에 잠재적 타겟 컨테이너로부터 멀리 이동시키기 위한 예시적 프로세스(500)의 흐름도이다.
예시적 프로세스(500)에서, 제2 컨테이너를 벗어나는 포인터의 이동이 검출될 수 있다(502). 제2 컨테이너를 벗어나는 이동에 응답하여, 운영 체제는 하나 이상의 선택된 항목들의 각각의 표현이 제2 컨테이너에서의 항목들의 각각의 예상 위치로부터 포인터의 현재 위치를 향해 이동하여, 포인터의 현재 위치 부근에서 클러스터에 재합류하는 것을 애니메이션할 수 있다(504).
도 6은 잠재적 타겟 컨테이너 내의 예상 위치에서의 항목 표현들의 미리보기를 보여줄지를 결정하기 위한 예시적 프로세스(600)의 흐름도이다.
예시적 프로세스(600)에서, 운영 체제는, 사용자 인터페이스에서 하나 이상의 선택된 항목의 표현을 드래그하기 위한 포인터의 움직임 특성을 모니터링할 수 있다(602). 운영 체제는, 제2 컨테이너의 드롭 구역 위에서의 포인터의 움직임 특성이 정의된 기준을 만족한다는 판정시에 선택된 항목들의 표현들이 각각의 제2 외관을 채택하게끔 할 수 있다(604). 일부 구현에서, 포인터의 움직임 특성은, 포인터의 속도와 가속도 중 하나 이상이고, 정의된 기준은, 항목들의 표현들이 그들 각각의 제2 외관을 채택하게끔 하는 속도나 가속도의 특징적 값을 지정한다. 일부 구현에서, 속도나 가속도의 특징 값은 사용자-정의된 값이다.
도 7은 항목들이 한 컨테이너로부터 또 다른 컨테이너로 드래그될 때 항목 표현들의 외관을 변경하기 위한 예시적 프로세스(700)의 흐름도이다.
예시적 프로세스(700)에서, 하나 이상의 선택된 항목들의 각각의 표현을 제1 컨테이너로부터 제2 컨테이너의 드롭 구역 내로 드래그하는 입력이 수신될 있고, 여기서 각 항목의 각각의 표현은 제1 컨테이너와 연관된 각각의 제1 외관을 갖는다(702). 하나 이상의 선택된 항목들의 각각의 표현이 적어도 부분적으로 제2 컨테이너의 드롭 구역 내에 있는 동안, 운영 체제는 선택된 항목들의 표현들이 각각의 제2 외관을 채택하게끔 할 수 있고, 여기서, 각각의 제2 외관은 항목들이 제2 컨테이너에 드롭되는 경우에 항목들의 표현들의 예상되는 외관을 모방한다(704).
일부 구현에서, 각 항목의 각각의 제1 외관은 제1 컨테이너에 의해 애플리케이션 프로그래밍 인터페이스(API)를 통해 정의되고, 각 항목의 각각의 제2 외관은 제2 컨테이너에 의해 API를 통해 정의된다.
일부 구현에서, 각 항목의 표현은 항목의 제1 및 제2 외관 중 적어도 하나에 대해 2개 이상의 레이어를 포함하고, 하나 이상의 선택된 항목들의 각각의 표현은, 항목의 제1 외관으로부터 항목의 제2 외관으로의 각각의 천이를 나타내도록 애니메이션될 수 있으며, 여기서 각각의 애니메이션은 천이를 나타내기 위해 상기 2개 이상의 레이어들 각각에 수행된다.
일부 구현에서, 2개 이상의 레이어들 각각은, 레이어에 수행되는 각각의 애니메이션에 대한 각각의 애니메이션 스타일과 연관된다.
일부 구현에서, 하나 이상의 선택된 항목들의 각각의 표현은 적어도 부분적으로, 비적격 드롭 타겟의 영역 내에 있고, 선택된 항목들의 표현들은 제1 컨테이너와 연관된 각각의 제3 외관을 채택하게끔 유발될 수 있다. 일부 구현에서, 각각의 제3 외관은 제1 컨테이너에 의해 애플리케이션 프로그래밍 인터페이스(API)를 통해 정의된다.
일부 구현에서, 선택된 항목들의 각각의 표현은 그들 각각의 제1 외관으로 나타날 때에는 제1 대형을 이루고, 선택된 항목들의 각각의 표현은 그들 각각의 제2 외관으로 나타날 때에는 제2 대형을 이루며, 애플리케이션 프로그래밍 인터페이스(API)를 통해, 제1 대형은 제1 컨테이너에 의해 정의되고, 제2 대형은 제2 컨테이너에 의해 정의된다.
상기 프로세스들은 단지 예일 뿐이다. 상기 프로세스들의 다양한 조합들이 가능하다.
예시적 소프트웨어 아키텍쳐
도 8a는 도 1 내지 도 7에서 설명된 프로세스와 사용자 인터페이스를 구현하기 위한 예시적 소프트웨어 아키텍쳐이다. 일부 구현에서, 이들 프로세스를 구현하는 프로그램 모듈은 소프트웨어 아키텍쳐 또는 스택의 프레임워크의 일부가 될 수 있다. 예시적인 소프트웨어 스택(800)은, 애플리케이션 레이어(802), 프레임워크 레이어(804), 서비스 레이어(806), OS 레이어(808), 및 하드웨어 레이어(810)를 포함할 수 있다. 애플리케이션(예를 들어, 전자메일, 워드 프로세싱, 텍스트 메시징 등)은 액세스빌리티 API로의 함수 후크(function hook)를 병합할 수 있다. 프레임워크 레이어(804)는 드래그 앤 드롭 UI 수정 엔진(812)을 포함할 수 있다. 드래그 앤 드롭 UI 수정 엔진(812)은 서비스 레이어(806) 또는 OS 레이어(808) 내의 그래픽 서비스나 라이브러리로의 API 호출을 행하여 도 1 내지 도 7을 참조하여 설명된 작업들의 전부 또는 일부를 수행할 수 있다. 드래그 앤 드롭 UI 수정 엔진(812)은 또한, 애플리케이션 레이어(802)로의 API 호출을 행하여 디스플레이 객체를 정의하는데 필요한 정보를 얻을 수 있고, 본 명세서에서 개시된 설명에 따라 디스플레이 객체의 위치와 콘텐츠 영역을 결정할 수 있다. 드래그 앤 드롭 UI 수정 엔진(812)은 또한, 서비스 레이어(806) 또는 OS 레이어(808) 내의 서비스나 라이브러리(예를 들어, 텍스트 서비스)로의 API 호출을 행하여 그 작업들의 전부 또는 일부를 수행할 수 있다.
서비스 레이어(806)는, 애플리케이션 레이어(802) 내의 애플리케이션들(예를 들어, 전자메일 편집기 애플리케이션)과 드래그 앤 드롭 UI 수정 엔진(812)의 그래픽 기능을 지원하기 위해, 다양한 그래픽, 애니메이션 및 UI 서비스를 제공할 수 있다. 일부 구현에서, 서비스 레이어(806)는 또한, 터치 모델 API에 정의된 호출 규약을 이용하여 애플리케이션에 의해 액세스될 수 있는, 터치 이벤트(예를 들어, 제스쳐, 로테이션)로의 터치 감응 장치로부터의 미가공 터치 데이터의 해석과 맵핑을 위한 터치 모델을 포함할 수 있다. 서비스 레이어(806)는 또한, 무선 통신을 위한 통신 소프트웨어 스택을 포함할 수 있다.
OS 레이어(808)는 전체 운영 체제(예를 들어, MAC OS) 또는 커널(예를 들어, UNIX 커널)일 수 있다. 하드웨어 레이어(810)는 도 1 내지 도 7을 참조하여 설명된 작업들을 수행하는데 필요한 하드웨어: (애플리케이션 및 통신 기저대역 프로세서를 포함한) 프로세서 또는 프로세싱 코어, 전용 신호/이미지 프로세서, ASIC, 그래픽 프로세서(예를 들어, GNU), 메모리 및 스토리지 장치, 통신 포트 및 장치, 주변장치 등 포함하지만, 이것으로 제한되는 것은 아니다.
일부 구현에서는 하나 이상의 API(Application Programming Interface)가 이용될 수도 있다. API는, 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하에서는 "API 구현 컴포넌트)에 의해 구현되는 인터페이스로서, 상이한 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하에서는 "API 호출 컴포넌트")가, API 구현 컴포넌트에 의해 제공되는 하나 이상의 함수, 메소드, 프로시져, 데이터 구조, 클래스, 및/또는 기타의 서비스를 액세스하여 이용하는 것을 허용하는 인터페이스이다. API는 API 호출 컴포넌트와 API 구현 컴포넌트 사이에서 전달되는 하나 이상의 파라미터를 정의할 수 있다.
API는, (제3자 개발자일 수도 있는) API 호출 컴포넌트의 개발자가 API 구현 컴포넌트에 의해 제공된, 명시된 특징을 레버리지하는 것을 허용한다. 하나의 API 호출 컴포넌트가 있거나, 하나보다 많은 이러한 컴포넌트가 있을 수도 있다. API는, 애플리케이션으로부터의 서비스들에 대한 요청을 지원하기 위해 컴퓨터 시스템이나 프로그램 라이브러리가 제공하는 소스 코드 인터페이스일 수 있다. 운영 체제(OS)는 OS에서 실행중인 애플리케이션들이 이들 API들 중 하나 이상을 호출하는 것을 허용하기 위해 복수의 API를 가질 수 있고, (프로그램 라이브러리와 같은) 서비스는 그 서비스를 이용하는 애플리케이션이 이들 API들 중 하나 이상을 호출하는 것을 허용하기 위해 복수의 API를 가질 수 있다. API는 애플리케이션이 구축될 때 인터프리트되거나 컴파일될 수 있는 프로그래밍 언어의 관점에서 명시될 수 있다.
일부 구현에서, API 구현 컴포넌트는 하나 보다 많은 API를 제공할 수도 있고, 각각의 API는 API 구현 컴포넌트에 의해 구현되는 기능에 액세스하는 상이한 양태를 갖거나 상이한 양태의 상이한 뷰를 제공한다. 예를 들어, API 구현 컴포넌트의 한 API는 제1 세트의 함수를 제공할 수 있고, 제3자 개발자들에게 노출될 수 있으며, API 구현 컴포넌트의 또 다른 API는 은닉될 수 있고(노출되지 않음), 제1 세트의 함수들의 서브셋을 제공하며, 제1 세트의 함수들에 있지 않는 테스팅이나 디버깅 함수와 같은 또 다른 세트의 함수를 제공한다. 다른 구현에서, API 구현 컴포넌트는 그 자신이 기저 API를 통해 하나 이상의 다른 컴포넌트들을 호출할 수도 있으므로, API 호출 컴포넌트 및 API 구현 컴포넌트 양쪽 모두가 될 수 있다.
API는, API 구현 컴포넌트의 명시된 특징을 액세스하여 이용할 때 API 호출 컴포넌트가 이용하는 언어와 파라미터를 정의한다. 예를 들어, API 호출 컴포넌트는, API에 의해 노출된 (예를 들어 함수나 메소드 호출에 의해 구현되는) 하나 이상의 API 호출이나 기동을 통해 API 구현 컴포넌트의 명시된 특징을 액세스하고, API 호출이나 기동을 통한 파라미터를 이용하여 데이터와 제어 정보를 전달한다. API 구현 컴포넌트는, API 호출 컴포넌트로부터의 API 호출에 응답하여 API를 통해 값을 반환할 수도 있다. API가 API 호출의 구문론(syntax)과 결과(예를 들어, API 호출을 기동하는 방법과 API 호출이 무엇을 하는지)를 정의하지만, API는, API 호출이 API 호출에 의해 명시된 함수를 어떻게 달성하는지를 드러내지 않을 수도 있다. 호출측(API 호출 컴포넌트)과 API 구현 컴포넌트 사이의 하나 이상의 애플리케이션 프로그래밍 인터페이스를 통해 다양한 API 호출이 전달된다. API 호출을 전달하는 것은, 함수 호출이나 메시지를 발행, 개시, 기동, 호출, 수신, 반환, 또는 이에 응답하는 것을 포함할 수도 있다; 즉, 전달하는 것은 API 호출 컴포넌트나 API 구현 컴포넌트 중 어느 하나에 의한 행위를 기술할 수 있다. API의 함수 호출이나 기타의 기동은, 파라미터 목록이나 기타의 구조를 통해 하나 이상의 파라미터를 전달 또는 수신할 수도 있다. 파라미터는, 상수, 키, 데이터 구조, 객체, 객체 클래스, 변수, 데이터 타입, 포인터, 어레이, 목록, 또는 API를 통해 전달되는 데이터나 기타의 항목을 참조하는 함수나 방법이나 기타의 방식에 대한 포인터일 수 있다.
또한, 데이터 타입이나 클래스는, API에 의해 제공되고 API 구현 컴포넌트에 의해 구현될 수도 있다. 따라서, API 호출 컴포넌트는 변수를 선언하고, 포인터를 이용하고, API에서 제공된 정의를 이용함으로써 이러한 타입이나 클래스의 상수값들을 이용하거나 인스턴스화(instantiate)할 수도 있다.
일반적으로, API는, API 구현 컴포넌트에 의해 제공된 서비스나 데이터를 액세스하거나 API 구현 컴포넌트에 의해 제공되는 동작이나 계산의 실시를 개시하기 위해 이용될 수 있다. 예로서, API 구현 컴포넌트 및 API 호출 컴포넌트 각각은, 운영 체제, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 또는 기타의 모듈 중 임의의 것일 수도 있다(API 구현 컴포넌트 및 API 호출 컴포넌트는 서로 동일하거나 상이한 타입의 모듈일 수도 있다는 점을 이해하여야 한다). API 구현 컴포넌트는 일부 경우에는 적어도 부분적으로 펌웨어, 마이크로코드, 또는 기타의 하드웨어 로직으로 구현될 수도 있다. 일부 구현에서, API는, 클라이언트 프로그램이 소프트웨어 개발 키트(SDK; Software Development Kit) 라이브러리에 의해 제공되는 서비스들을 이용하는 것을 허용할 수도 있다. 다른 구현에서, 애플리케이션 또는 기타의 클라이언트 프로그램은 애플리케이션 프레임워크에 의해 제공되는 API를 이용할 수도 있다. 이들 구현들에서, 애플리케이션 또는 클라이언트 프로그램은, SDK에 의해 제공되고 API에 의해 제공되는 함수나 메소드에 대한 호출을 포함하거나, SDK에서 정의되고 API에 의해 제공되는 데이터 타입이나 객체를 이용할 수도 있다. 애플리케이션 프레임워크는, 이들 구현들에서, 프레임워크에 의해 정의된 다양한 이벤트에 응답하는 프로그램에 대한 메인 이벤트 루프(main event loop)를 제공한다. API는 애플리케이션이 애플리케이션 프레임워크를 이용하여 이벤트와 이벤트에 대한 응답을 명시하는 것을 허용한다. 일부 실시예들에서, API 호출은, 입력 능력 및 상태, 출력 능력 및 상태, 처리 능력, 전력 상태, 스토리지 용량 및 상태, 통신 능력 등과 같은 양태들에 관련된 것을 포함한 하드웨어 장치의 능력이나 상태를 애플리케이션에 보고할 수 있으며, API는 부분적으로, 펌웨어, 마이크로코드, 또는 부분적으로 하드웨어 컴포넌트에서 실행되는 기타의 하위 레벨 로직에 의해 구현될 수도 있다.
API 호출 컴포넌트는, 로컬 컴포넌트(즉, API 구현 컴포넌트와 동일한 데이터 처리 시스템 상)이거나, 네트워크를 거쳐 API를 통하여 API 구현 컴포넌트와 통신하는 (즉, API 구현 컴포넌트와 상이한 데이터 처리 시스템 상의) 원격 컴포넌트일 수도 있다. API 구현 컴포넌트는 API 호출 컴포넌트로서 동작할 수도 있고(즉, 상이한 API 구현 컴포넌트에 의해 노출된 API에 대한 API 호출을 행할 수 있다), API 호출 컴포넌트는 상이한 API 호출 컴포넌트에 노출되는 API를 구현함으로써 API 구현 컴포넌트로서 동작할 수도 있다는 점을 이해하여야 한다.
API는 상이한 프로그래밍 언어로 씌어진 복수의 API 호출 컴포넌트들이 API 구현 컴포넌트와 통신하는 것을 허용할 수도 있다(따라서, API는 호출을 변환하고 API 호출 컴포넌트와 API 구현 컴포넌트 사이에서 반환하는 특징을 포함할 수도 있다); 그러나 API는 특정의 프로그래밍 언어의 관점에서 구현될 수도 있다. API 호출 컴포넌트는, 한 실시예에서, OS 제공자로부터의 한 세트의 API, 플러그인 제공자로부터의 또 다른 세트의 API, 및 또 다른 제공자(예를 들어, 소프트웨어 라이브러리의 제공자)나 또 다른 세트의 API 생성자로부터의 또 다른 세트의 API와 같은 상이한 제공자들로부터의 API를 호출할 수 있다.
도 8b는, 여기서 개시된 일부프로세스와 사용자 인터페이스 변경의 구현에 이용될 수 있는, 예시적인 API 아키텍쳐를 나타내는 블록도이다. 도 8b에 도시된 바와 같이, API 아키텍쳐(820)는, API(824)를 구현하는 API 구현 컴포넌트(822)(예를 들어, 운영 체제, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 소프트웨어나 기타의 모듈)를 포함한다. API(824)는, API 호출 컴포넌트(826)에 의해 이용될 수도 있는 하나 이상의 함수, 메소드, 클래스, 객체, 프로토콜, 데이터 구조, 포맷 및/또는 API 구현 컴포넌트의 다른 특징들을 명시한다. API(824)는, API 구현 컴포넌트의 함수가 API 호출 컴포넌트로부터 파라미터들을 어떻게 수신하는지, 및 이 함수가 API 호출 컴포넌트에 결과를 어떻게 반환하는지를 명시하는 적어도 하나의 호출 규약(calling convention)을 명시할 수 있다. API 호출 컴포넌트(826)(예를 들어, 운영 체제, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 또는 소프트웨어나 기타의 모듈)는 API(824)에 의해 명시되는 API 구현 컴포넌트(822)의 특징들을 액세스하여 이용하기 위해 API(824)를 통해 API 호출을 행한다. API 구현 컴포넌트(822)는, API 호출에 응답하여 API(824)를 통해 API 호출 컴포넌트(826)에 값을 반환할 수도 있다.
API 구현 컴포넌트(822)는, API(824)를 통해 명시되지 않고 API 호출 컴포넌트(826)에게 이용가능하지 않은 추가의 함수, 메소드, 클래스, 데이터 구조, 및/또는 기타의 특징들을 포함할 수도 있다는 것을 이해할 것이다. API 호출 컴포넌트(826)는 API 구현 컴포넌트(822)와 동일한 시스템에 있거나, 네트워크를 통해 API(824)를 이용하여 API 구현 컴포넌트(822)에 원격으로 위치하여 액세스할 수도 있다는 것을 이해해야 한다. 도 8b는 API(824)와 상호작용하는 하나의 API 호출 컴포넌트(830)를 나타내지만, API 호출 컴포넌트(826)와는 상이한 언어(또는 동일한 언어)로 씌어질 수도 있는 다른 API 호출 컴포넌트가 API(824)를 이용할 수도 있다는 점을 이해하여야 한다.
API 구현 컴포넌트(822), API(824), 및 API 호출 컴포넌트(826)는, 머신(예를 들어, 컴퓨터 또는 기타의 데이터 처리 시스템)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함하는 머신-판독가능한 매체에 저장될 수도 있다. 예를 들어, 머신-판독가능한 매체는, 자기 디스크, 광학 디스크, 랜덤 액세스 메모리; 판독 전용 메모리, 플래시 메모리 장치 등을 포함한다.
도 8c("소프트웨어 스택" 830)에서, 예시적 구현, 애플리케이션은 수 개의 서비스 API(서비스 API A 및 서비스 API B)를 이용하여 서비스 A(832) 또는 서비스 B(834)에 호출을 행하거나, 수 개의 OS API를 이용하여 운영 체제(OS)(836)에 호출을 행할 수 있다. 서비스 A(832) 및 서비스 B(834)는 수 개의 OS API를 이용하여 OS(836)에 호출을 행할 수 있다.
서비스 B(834)는 2개의 API를 가지며, 그 중 하나(서비스 B API A(838))는 애플리케이션 A(840)로부터 호출을 수신하여 애플리케이션 A(840)에 값들을 반환하고, 다른 하나(서비스 B API B(842))는 애플리케이션 B(844)로부터 호출을 수신하여 애플리케이션 B(844)에 값들을 반환한다는 점에 유의한다. (예를 들어, 소프트웨어 라이브러리일 수 있는) 서비스 A(832)는 OS API A(846)에 호출을 행하고 이로부터 반환된 값들을 수신하며, (예를 들어, 소프트웨어 라이브러리일 수 있는) 서비스 B(834)는 OS API A(846) 및 OS API B(848) 양쪽 모두에 호출을 행하고 이들로부터 반환된 값들을 수신한다. 애플리케이션 B(844)는 OS API B(848)에 호출을 행하고 이로부터 반환된 값들을 수신한다.
예시적 모바일 장치 아키텍쳐
도 9는 도 1 내지 도 8을 참조하여 설명된 드래그 앤 드롭 UI 수정 프로세스 및 인터페이스를 구현하는 장치에 대한 예시적 하드웨어 아키텍쳐의 블록도이다. 이 장치는, 메모리 인터페이스(902), 하나 이상의 데이터 프로세서, 이미지 프로세서 및/또는 프로세서(904), 및 주변장치 인터페이스(906)를 포함할 수 있다. 메모리 인터페이스(902), 하나 이상의 프로세서(904) 및/또는 주변장치 인터페이스(906)는 별개의 컴포넌트들이거나 하나 이상의 집적 회로 내에 집적될 수 있다. 예를 들어, 장치 내의 다양한 컴포넌트들은 하나 이상의 통신 버스나 신호선에 의해 결합될 수 있다.
센서, 장치, 및 서브시스템은 복수의 기능을 가능케 하기 위해 주변장치 인터페이스(906)에 결합될 수 있다. 예를 들어, 움직임 센서(910), 광 센서(912), 근접 센서(914),는 모바일 장치의 배향, 조명, 및 근접 기능을 가능케 하기 위해 주변장치 인터페이스(906)에 결합될 수 있다. 위치 프로세서(915)(예를 들어, GPS 수신기)는 주변장치 인터페이스(906)에 접속되어 위치판정을 제공할 수 있다. 전자 자력계(916)(예를 들어, 집적 회로 칩)가 또한 주변장치 인터페이스(906)에 접속되어 자기 북극의 방향을 판정하는데 이용될 수 있는 데이터를 제공할 수 있다. 따라서, 전자 자력계(916)는 전자 콤파스(electronic compass)로서 사용될 수 있다. 가속도계(917)가 또한 주변장치 인터페이스(906)에 접속되어 모바일 장치의 속도의 변화와 이동 방향을 판정하는데 이용될 수 있는 데이터를 제공할 수 있다.
사진 및 비디오 클립의 녹화와 같은 카메라 기능을 가능케 하기 위해, 카메라 서브시스템(920)과 광 센서(922), 예를 들어, CCD(charged coupled device) 또는 CMOS(complementary metal-oxide semiconductor) 광 센서가 이용될 수 있다.
무선 주파수 수신기 및 송신기 및/또는 광(예를 들어, 적외선) 수신기 및 송신기를 포함할 수 있는 하나 이상의 무선 통신 서브시스템(924)을 통해 통신 기능이 가능할 수 있다. 통신 서브시스템(924)의 특정 설계 및 구현은 모바일 장치가 작동하기로 의도되어 있는 통신 네트워크(들)에 의존할 수 있다. 예를 들어, 모바일 장치는, GSM 네트워크, GPRS 네트워크, EDGE 네트워크, Wi-Fi 또는 WiMax 네트워크, 및 Bluetooth 네트워크 상에서 동작하도록 설계된 통신 서브시스템(924)을 포함할 수 있다. 특히, 무선 통신 서브시스템(924)은, 모바일 장치가 다른 무선 장치에 대한 기지국으로서 구성될 수 있도록 호스팅 프로토콜을 포함할 수 있다.
오디오 서브시스템(926)이 스피커(928) 및 마이크로폰(930)에 결합되어, 음성 인식, 음성 복제, 디지털 녹음, 전화 기능과 같은 음성-가능형 기능을 가능케 할 수 있다.
I/O 서브시스템(940)은 터치 스크린 제어기(942) 및/또는 기타의 입력 제어기(들)(944)을 포함할 수 있다. 터치 스크린 제어기(942)는 터치 스크린(946) 또는 패드에 결합될 수 있다. 터치 스크린(946) 및 터치 스크린 제어기(942)는, 예를 들어, 용량성, 저항성, 적외선, 및 표면 탄성파 기술 뿐만 아니라 터치 스크린(946)과의 하나 이상의 접촉 포인트를 판정하기 위한 기타의 근접 센서 어레이나 기타의 소자를 포함하지만 이들만으로 한정되지 않는, 복수의 터치 감지 기술들 중 임의의 것을 이용하여 접촉 및 그 이동이나 중단을 검출할 수 있다.
하나 이상의 버튼, 락커 스위치, 썸휠(thumb-wheel), 적외선 포트, USB 포트, 및/또는 스타일러스와 같은 포인터 장치와 같은, 다른 입력/제어 장치(948)에 다른 입력 제어기(들)(944)이 결합될 수 있다. 하나 이상의 버튼(미도시)은, 스피커(928) 및/또는 마이크로폰(930)의 볼륨 제어용 업/다운 버튼을 포함할 수 있다.
한 구현에서, 제1 지속기간 동안의 버튼의 누름은 터치 스크린(946)의 잠금을 해제하고; 제1 지속기간보다 긴 제2 지속기간 동안의 버튼의 누름은 장치로의 전력을 온 또는 오프할 수 있다. 사용자는 하나 이상의 버튼의 기능을 맞춤화할 수 있을 것이다. 터치 스크린(946)은 또한, 예를 들어, 가상 또는 소프트 버튼 및/또는 키보드를 구현하는데 이용될 수 있다.
일부 구현에서, 장치는 MP3, AAC, 및 MPEG 파일과 같은 기록된 오디오 및/또는 비디오 파일을 보여줄 수 있다. 일부 구현에서, 장치는 iPodTM과 같은 MP3 플레이어의 기능을 포함할 수 있다. 따라서, 장치는 iPod과 호환되는 핀 커넥터를 포함할 수 있다. 다른 입력/출력과 제어 장치들도 역시 사용될 수 있다.
메모리 인터페이스(902)는 메모리(950)에 결합될 수 있다. 메모리(950)는, 하나 이상의 자기 디스크 스토리지 장치, 하나 이상의 광학 스토리지 장치, 및/또는 플래시 메모리(예를 들어, NAND, NOR)와 같은 고속 랜덤 액세스 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(950)는, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS와 같은 운영 체제(952), 또는 VxWorks와 같은 임베딩형 운영 체제를 저장할 수 있다. 운영 체제(952)는, 기본적인 시스템 서비스를 처리하고 하드웨어 의존형 작업을 수행하기 위한 명령어들을 포함할 수 있다. 일부 구현에서, 운영 체제(952)는 커널(예를 들어, UNIX 커널)을 포함할 수 있다.
메모리(950)는 또한, 하나 이상의 추가 장치, 하나 이상의 컴퓨터 및/또는 하나 이상의 서버와의 통신을 가능케 하는 통신 명령어(954)를 저장할 수 있다. 메모리(950)는, 그래픽 사용자 인터페이스 처리를 가능케 하는 그래픽 사용자 인터페이스 명령어(956); 센서 관련 처리와 기능을 가능케 하는 센서 처리 명령어(958); 전화 관련 처리와 기능을 가능케 하는 전화 명령어(960); 전자 메시징 관련 처리와 기능을 가능케 하는 전자 메시징 명령어(962); 웹 브라우징 관련 처리와 명령을 가능케 하는 웹 브라우징 명령어(964); 미디어 처리 관련 처리와 기능을 가능케 하는 미디어 처리 명령어(966); GPS 및 네비게이션 관련 처리와 기능을 가능케 하는 GPS/네비게이션 명령어(968); 및 카메라 관련 처리와 기능을 가능케 하는 카메라 명령어(970)를 포함할 수 있다. 메모리(950)는 또한, 보안 명령어, 웹 비디오 관련 처리와 기능을 가능케 하는 웹 비디오 명령어, 및/또는 웹 쇼핑 관련 처리와 기능을 가능케 하는 웹 쇼핑 명령어와 같은 (도시되지 않은) 다른 소프트웨어 명령어를 저장할 수 있다. 일부 구현에서, 미디어 처리 명령어(966)는, 오디오 처리 관련 처리와 기능 및 비디오 처리 관련 처리와 기능을 각각 가능케 하기 위해 오디오 처리 명령어와 비디오 처리 명령어로 분할된다. 작동 레코드 및 IMEI(International Mobile Equipment Identity) 또는 유사한 하드웨어 식별자도 또한 메모리(950)에 저장될 수 있다. 메모리(950)는 또한 다른 명령어(972)를 포함할 수 있다.
상기 식별된 명령어들 및 애플리케이션들 각각은, 전술된 하나 이상의 기능을 수행하기 위한 한 세트의 명령어에 대응할 수 있다. 이들 명령어는 별개의 소프트웨어 프로그램, 프로시져, 또는 모듈로서 구현될 필요는 없다. 메모리(950)는 추가의 명령어를 포함하거나, 더 적은 명령어를 포함할 수 있다. 또한, 모바일 장치의 다양한 기능들이, 하나 이상의 신호 처리 및/또는 주문형 집적 회로를 포함한, 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
설명된 특징들은, 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 특징들은, 프로그램가능한 프로세서에 의해 실행되기 위한, 정보 캐리어, 예를 들어, 머신 판독가능한 스토리지 장치에 유형적으로 구현된 컴퓨터 프로그램 제품으로 구현될 수 있으며; 방법 단계들은, 입력 데이터 상에 작용하여 출력을 생성함으로써 설명된 구현들의 기능을 수행하는 명령어들의 프로그램을 실행하는 프로그램가능한 프로세서에 의해 수행될 수 있다.
설명된 특징들은 유익하게도, 데이터 스토리지 장치, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치와 데이터 및 명령어를 주고 받도록 결합된 적어도 하나의 프로그램가능한 프로세서를 포함하는 프로그램가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램에서 구현될 수 있다. 컴퓨터 프로그램은, 컴퓨터에서 직접 또는 간접으로 이용되어 소정의 활동을 수행하거나 소정의 결과를 야기할 수 있는 한 세트의 명령어이다. 컴퓨터 프로그램은, 컴파일형 또는 인터프리터형 언어를 포함한 임의 형태의 프로그래밍 언어(예를 들어, Objective-C, Java)로 씌어질 수 있으며, 단독형 프로그램이나 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하기에 적합한 기타의 유닛을 포함한 임의 형태로 배치될 수 있다.
명령어들로 된 프로그램을 실행하기에 적합한 프로세서로는, 예로서, 범용 및 특별 목적 마이크로프로세서, 임의 종류의 컴퓨터의 복수의 프로세서나 코어 중 하나 또는 유일한 프로세서가 포함된다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 본질적 요소는, 명령어를 실행하기 위한 프로세서와, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 또한, 데이터 파일을 저장하기 위한 하나 이상의 대용량 스토리지 장치를 포함하거나 이와 연동되어 통신할 것이다; 이러한 스토리지 장치로는, 내부 하드 디스크 및 착탈식 디스크와 같은 자기 디스크; 광자기 디스크; 및 광 디스크가 포함된다. 컴퓨터 프로그램 명령어 또는 데이터를 유형적으로 구현(tangibly embodying)하기에 적합한 스토리지 장치로는, 예로서, EPROM, EEPROM, 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 내부 하드 디스크 및 착탈식 디스크와 같은 자기 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한, 모든 형태의 비휘발성 메모리 장치가 포함된다. 프로세서와 메모리는 ASIC(application-specific integrated circuits)에 의해 보충되거나 ASIC에 병합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 이 특징들은, 사용자가 컴퓨터에 입력을 제공하는데 이용할 수 있는 키보드, 마우스나 트랙볼, 또는 포인팅 장치(예를 들어, 터치 감응면이나 터치 감응 디스플레이 상의 손가락 또는 스타일러스)와, 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치를 갖는 컴퓨터 상에서 구현될 수 있다.
이 특징들은, 데이터 서버와 같은 백-엔드 컴포넌트를 포함하거나, 애플리케이션 서버나 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터나 웹 브라우저와 같은 프런트-엔드 컴포넌트를 포함하거나, 이들의 조합을 포함하는 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은, 임의 형태나 미디어의 통신 네트워크와 같은 디지털 데이터 통신에 의해 접속될 수 있다. 통신 네트워크의 예로서는, 예를 들어, LAN, WAN, 및 인터넷을 형성하는 컴퓨터 및 네트워크가 포함된다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로는 서로 멀리 떨어져 있고 통상 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각 컴퓨터 상에서 실행중이며 서로에 관해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들 때문에 발생하는 것이다.
여기서 개시된 하나 이상의 특징 및 단계들은 API를 이용하여 구현될 수 있다. API는, 호출측 프로그램과, 서비스를 제공하거나, 데이터를 제공하거나, 또는 동작이나 계산을 수행하는 다른 소프트웨어 코드(예를 들어, 운영 체제, 라이브러리 루틴, 함수) 사이에 전달되는 하나 이상의 파라미터를 정의할 수 있다.
API는, API 명세 문서에 정의된 호출 규약에 기초하여 파라미터 리스트나 다른 구조를 통해 하나 이상의 파라미터를 송수신하는 프로그램 코드 내의 하나 이상의 호출로서 구현될 수 있다. 파라미터는, 상수, 키, 데이터 구조, 객체, 객체 클래스, 변수, 데이터 타입, 포인터, 어레이, 리스트, 또는 또 다른 호출일 수 있다. API 호출과 파라미터는 임의의 프로그래밍 언어로 구현될 수 있다. 프로그래밍 언어는, 프로그래머가 API를 지원하는 기능에 액세스하기 위해 채용하는 어휘와 호출 규약을 정의할 수 있다.
일부 구현에서, API 호출은, 입력 기능, 출력 기능, 처리 기능, 전원 기능, 통신 기능 등과 같은, 애플리케이션을 실행하는 장치의 기능을 애플리케이션에 보고할 수 있다.
다수의 구현이 설명되었다. 그럼에도 불구하고, 다양한 수정이 이루어질 수 있다는 점을 이해할 것이다. 예를 들어, 하나 이상의 구현들의 요소들은, 결합되거나, 삭제되거나, 수정되거나, 추가 구현을 형성하도록 보완될 수 있다. 역시 또 다른 예로서, 도면에 나타낸 논리 흐름은, 원하는 결과를 얻기 위해, 도시된 특정의 순서, 순차적 순서를 요구하지 않는다. 또한, 설명된 흐름으로부터 다른 단계들이 제공되거나, 단계들이 제거될 수도 있고, 설명된 시스템으로부터 다른 컴포넌트가 추가되거나 제거될 수도 있다. 따라서, 다른 구현들도 이하의 청구항들의 범위 내에 있다.

Claims (20)

  1. 장치의 하나 이상의 프로세서에 의해 수행되는 컴퓨터-구현된 방법으로서, 상기 방법은,
    컨테이너 내에 2개 이상의 선택된 항목들을 표시하는 단계;
    입력을 수신하는 단계; 및
    상기 입력에 응답하여, 2개 이상의 선택된 항목들의 표현들을, 사용자 인터페이스에서의 상기 항목들의 각각의 원래 위치들로부터 상기 사용자 인터페이스에서의 포인터의 현재 위치를 향하여 이동시키고, 상기 포인터가 상기 컨테이너 내에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 공간적 관계(spatial relationship)를 유지하고, 상기 포인터가 상기 컨테이너 밖에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 상기 공간적 관계를 변경하여 상기 포인터 부근에 상기 표현들의 클러스터를 형성하는 단계
    를 포함하는 컴퓨터-구현된 방법.
  2. 제1항에 있어서, 상기 사용자 인터페이스에서의 상기 2개 이상의 선택된 항목들의 표현들의 움직임들은 비동기적(asynchronous)인 컴퓨터-구현된 방법.
  3. 제1항에 있어서, 카운트 표시자(count indicator)가 상기 클러스터 부근에 제시되게 하는 단계를 더 포함하고, 상기 카운트 표시자는 상기 클러스터 내의 항목 표현들의 카운트를 나타내는 컴퓨터-구현된 방법.
  4. 제1항에 있어서, 상기 클러스터 내의 각 항목 표현은, 상기 포인터의 계속적 이동을 추종하면서 상기 클러스터 내의 다른 항목 표현들의 각각의 경로들과는 독립적인 경로를 따라 이동하는 컴퓨터-구현된 방법.
  5. 제1항에 있어서,
    상기 2개 이상의 항목들을 상기 사용자 인터페이스에서의 제1 컨테이너로부터 선택하는 단계 - 상기 2개 이상의 선택된 항목들 각각의 표현은 상기 제1 컨테이너와 연관된 각각의 제1 외관(appearance)을 가짐 - ;
    상기 사용자 인터페이스에서의 제2 컨테이너의 드롭 구역(drop zone) 내의 상기 포인터의 현재 위치를 검출하는 단계; 및
    상기 포인터의 현재 위치가 상기 제2 컨테이너의 상기 드롭 구역 내에 있는 동안, 상기 2개 이상의 선택된 항목들의 표현들이 상기 제2 컨테이너와 연관된 각각의 제2 외관을 채택하게 하는 단계
    를 포함하는 컴퓨터-구현된 방법.
  6. 제5항에 있어서,
    상기 제2 컨테이너 내에 드롭되는 상기 2개 이상의 선택된 항목들의 표현들의 미리보기를 요청하는 입력을 검출하는 단계; 및
    상기 입력의 검출에 응답하여, 상기 선택된 항목들의 표현들을, 상기 클러스터를 떠나 상기 제2 컨테이너에서의 그들 각각의 예상 위치들을 향하여 이동하도록 애니메이션하는 단계
    를 더 포함하는 컴퓨터-구현된 방법.
  7. 제6항에 있어서,
    상기 제2 컨테이너를 벗어나는 상기 포인터의 이동을 검출하는 단계; 및
    상기 제2 컨테이너를 벗어나는 이동에 응답하여, 상기 2개 이상의 선택된 항목들의 각각의 표현들을, 상기 제2 컨테이너에서의 상기 항목들의 각각의 예상 위치들로부터 상기 포인터의 현재 위치를 향하여 이동하여 상기 포인터의 현재 위치 부근에서 상기 클러스터에 재합류(rejoin)하도록 애니메이션하는 단계
    를 더 포함하는 컴퓨터-구현된 방법.
  8. 명령어들이 저장된 컴퓨터-판독가능한 매체로서,
    상기 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    컨테이너 내에 2개 이상의 선택된 항목들을 표시하는 동작,
    입력을 수신하는 동작, 및
    상기 입력에 응답하여, 2개 이상의 선택된 항목들의 표현들을, 사용자 인터페이스에서의 상기 항목들의 각각의 원래 위치들로부터 상기 사용자 인터페이스에서의 포인터의 현재 위치를 향하여 이동시키고, 상기 포인터가 상기 컨테이너 내에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 공간적 관계를 유지하고, 상기 포인터가 상기 컨테이너 밖에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 상기 공간적 관계를 변경하여 상기 포인터 부근에 상기 표현들의 클러스터를 형성하는 동작
    을 포함하는 동작들을 수행하게 하는 컴퓨터-판독가능한 매체.
  9. 제8항에 있어서, 상기 사용자 인터페이스에서의 상기 항목들의 표현들의 움직임들은 비동기적인 컴퓨터-판독가능한 매체.
  10. 제8항에 있어서, 상기 동작들은, 카운트 표시자가 상기 클러스터 부근에 제시되게 하는 동작을 더 포함하고, 상기 카운트 표시자는 상기 클러스터 내의 항목 표현들의 카운트를 나타내는 컴퓨터-판독가능한 매체.
  11. 제8항에 있어서, 상기 클러스터 내의 각 항목 표현은, 상기 포인터의 계속적 이동을 추종하면서 상기 클러스터 내의 다른 항목 표현들의 각각의 경로들과는 독립적인 경로를 따라 이동하는 컴퓨터-판독가능한 매체.
  12. 제8항에 있어서,
    상기 2개 이상의 항목들을 상기 사용자 인터페이스에서의 제1 컨테이너로부터 선택하는 동작 - 상기 2개 이상의 선택된 항목들 각각의 표현은 상기 제1 컨테이너와 연관된 각각의 제1 외관을 가짐 - ;
    상기 사용자 인터페이스에서의 제2 컨테이너의 드롭 구역 내의 상기 포인터의 현재 위치를 검출하는 동작; 및
    상기 포인터의 현재 위치가 상기 제2 컨테이너의 상기 드롭 구역 내에 있는 동안, 상기 2개 이상의 선택된 항목들의 표현들이 상기 제2 컨테이너와 연관된 각각의 제2 외관을 채택하게 하는 동작
    을 포함하는 컴퓨터-판독가능한 매체.
  13. 제12항에 있어서, 상기 동작들은,
    상기 제2 컨테이너 내에 드롭되는 상기 2개 이상의 선택된 항목들의 표현들의 미리보기를 요청하는 입력을 검출하는 동작; 및
    상기 입력의 검출에 응답하여, 상기 선택된 항목들의 표현들을, 상기 클러스터를 떠나 상기 제2 컨테이너에서의 그들 각각의 예상 위치들을 향하여 이동하도록 애니메이션하는 동작
    을 더 포함하는 컴퓨터-판독가능한 매체.
  14. 제13항에 있어서, 상기 동작들은,
    상기 제2 컨테이너를 벗어나는 상기 포인터의 이동을 검출하는 동작; 및
    상기 제2 컨테이너를 벗어나는 이동에 응답하여, 상기 2개 이상의 선택된 항목들의 각각의 표현들을, 상기 제2 컨테이너에서의 상기 항목들의 각각의 예상 위치들로부터 상기 포인터의 현재 위치를 향하여 이동하여 상기 포인터의 현재 위치 부근에서 상기 클러스터에 재합류하도록 애니메이션하는 동작
    을 더 포함하는 컴퓨터-판독가능한 매체.
  15. 하나 이상의 프로세서; 및
    명령어들이 저장된 메모리
    를 포함하고,
    상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    컨테이너 내에 2개 이상의 선택된 항목들을 표시하는 동작;
    입력을 수신하는 동작; 및
    상기 입력에 응답하여, 2개 이상의 선택된 항목들의 표현들을, 사용자 인터페이스에서의 상기 항목들의 각각의 원래 위치들로부터 상기 사용자 인터페이스에서의 포인터의 현재 위치를 향하여 이동시키고, 상기 포인터가 상기 컨테이너 내에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 공간적 관계를 유지하고, 상기 포인터가 상기 컨테이너 밖에 있는 경우 상기 2개 이상의 선택된 항목들의 표현들 간의 상기 공간적 관계를 변경하여 상기 포인터 부근에 상기 표현들의 클러스터를 형성하는 동작
    을 포함하는 동작들을 수행하게 하는 시스템.
  16. 제15항에 있어서, 상기 사용자 인터페이스에서의 상기 2개 이상의 선택된 항목들의 표현들의 움직임은 비동기적인 시스템.
  17. 제15항에 있어서,
    상기 클러스터 내의 각 항목 표현은, 상기 포인터의 계속적 이동을 추종하면서 상기 클러스터 내의 다른 항목 표현들의 각각의 경로들과는 독립적인 경로를 따라 이동하는 시스템.
  18. 제15항에 있어서,
    상기 2개 이상의 항목들을 상기 사용자 인터페이스에서의 제1 컨테이너로부터 선택하는 동작 - 상기 2개 이상의 선택된 항목들 각각의 표현은 상기 제1 컨테이너와 연관된 각각의 제1 외관을 가짐 - ;
    상기 사용자 인터페이스에서의 제2 컨테이너의 드롭 구역 내의 상기 포인터의 현재 위치를 검출하는 동작; 및
    상기 포인터의 현재 위치가 상기 제2 컨테이너의 드롭 구역 내에 있는 동안, 상기 2개 이상의 선택된 항목들의 표현들이 상기 제2 컨테이너와 연관된 각각의 제2 외관을 채택하게 하는 동작
    을 포함하는 시스템.
  19. 제18항에 있어서, 상기 동작들은,
    상기 제2 컨테이너 내에 드롭되는 상기 2개 이상의 선택된 항목들의 표현들의 미리보기를 요청하는 입력을 검출하는 동작; 및
    상기 입력의 검출에 응답하여, 상기 선택된 항목들의 표현들을, 상기 클러스터를 떠나 상기 제2 컨테이너에서의 그들 각각의 예상 위치들을 향하여 이동하도록 애니메이션하는 동작
    을 더 포함하는 시스템.
  20. 제19항에 있어서, 상기 동작들은,
    상기 제2 컨테이너를 벗어나는 상기 포인터의 이동을 검출하는 동작; 및
    상기 제2 컨테이너를 벗어나는 이동에 응답하여, 상기 2개 이상의 선택된 항목들의 각각의 표현들을, 상기 제2 컨테이너에서의 상기 항목들의 각각의 예상 위치들로부터 상기 포인터의 현재 위치를 향하여 이동하여 상기 포인터의 현재 위치 부근에서 상기 클러스터에 재합류하도록 애니메이션하는 동작
    을 더 포함하는 시스템.
KR1020137009583A 2010-09-30 2011-09-29 사용자 인터페이스에서의 항목 관리 KR101487632B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/895,770 2010-09-30
US12/895,770 US9323442B2 (en) 2010-09-30 2010-09-30 Managing items in a user interface
PCT/US2011/053901 WO2012044779A1 (en) 2010-09-30 2011-09-29 Managing items in a user interface

Publications (2)

Publication Number Publication Date
KR20130069802A KR20130069802A (ko) 2013-06-26
KR101487632B1 true KR101487632B1 (ko) 2015-01-29

Family

ID=44789630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137009583A KR101487632B1 (ko) 2010-09-30 2011-09-29 사용자 인터페이스에서의 항목 관리

Country Status (8)

Country Link
US (1) US9323442B2 (ko)
EP (1) EP2622445B1 (ko)
JP (1) JP5514371B2 (ko)
KR (1) KR101487632B1 (ko)
CN (2) CN103189828B (ko)
AU (1) AU2011308814B2 (ko)
NL (1) NL2007490C2 (ko)
WO (1) WO2012044779A1 (ko)

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120012541A (ko) * 2010-08-02 2012-02-10 삼성전자주식회사 터치 디바이스에서 폴더 운용 방법 및 장치
US9323442B2 (en) 2010-09-30 2016-04-26 Apple Inc. Managing items in a user interface
US9013488B2 (en) * 2010-10-19 2015-04-21 Apple Inc. Grouping items in a folder
US20120131483A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Drag-and-drop actions for web applications using an overlay and a set of placeholder elements
KR101762611B1 (ko) * 2010-12-10 2017-07-28 삼성전자 주식회사 터치스크린을 구비한 휴대 단말기의 화면 표시 방법 및 장치
US9342569B2 (en) * 2010-12-15 2016-05-17 Sap Se System and method of adding user interface element groups
JP5648473B2 (ja) * 2010-12-27 2015-01-07 ソニー株式会社 電子機器、表示制御方法およびプログラム
JP2012142825A (ja) * 2011-01-05 2012-07-26 Sony Corp 情報処理装置、情報表示方法及びコンピュータプログラム
TWI441051B (zh) * 2011-01-25 2014-06-11 Compal Electronics Inc 電子裝置及其資訊呈現方法
US9753630B1 (en) 2011-03-18 2017-09-05 Amazon Technologies, Inc. Card stack navigation
US8479110B2 (en) * 2011-03-20 2013-07-02 William J. Johnson System and method for summoning user interface objects
JP5516473B2 (ja) * 2011-03-24 2014-06-11 コニカミノルタ株式会社 画像形成装置、表示方法および表示プログラム
US20140181753A1 (en) * 2011-04-26 2014-06-26 Kyocera Corporation Electronic device
US9116607B2 (en) 2011-05-11 2015-08-25 Microsoft Technology Licensing, Llc Interface including selectable items corresponding to single or multiple data items
US9671954B1 (en) * 2011-07-11 2017-06-06 The Boeing Company Tactile feedback devices for configurable touchscreen interfaces
US8949857B2 (en) * 2011-07-15 2015-02-03 Microsoft Corporation Value provider subscriptions for sparsely populated data objects
KR101857571B1 (ko) * 2011-07-19 2018-05-14 삼성전자 주식회사 아이템 이동 방법 및 장치
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US9886188B2 (en) * 2011-08-25 2018-02-06 International Business Machines Corporation Manipulating multiple objects in a graphic user interface
US20130086525A1 (en) * 2011-09-30 2013-04-04 Nokia Corporation Method, Apparatus, Computer Program and User Interface
US10248293B2 (en) * 2011-09-30 2019-04-02 Nokia Technologies Oy Method, apparatus, computer program and user interface
US8860763B2 (en) * 2012-01-31 2014-10-14 Xerox Corporation Reversible user interface component
KR101892567B1 (ko) * 2012-02-24 2018-08-28 삼성전자 주식회사 단말기에서 콘텐츠 이동 방법 및 장치
CN102681847B (zh) * 2012-04-28 2015-06-03 华为终端有限公司 触屏终端对象处理方法及触屏终端
WO2013169846A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying additional information in response to a user contact
AU2013259613B2 (en) 2012-05-09 2016-07-21 Apple Inc. Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
CN104487928B (zh) 2012-05-09 2018-07-06 苹果公司 用于响应于手势而在显示状态之间进行过渡的设备、方法和图形用户界面
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
CN104471521B (zh) 2012-05-09 2018-10-23 苹果公司 用于针对改变用户界面对象的激活状态来提供反馈的设备、方法和图形用户界面
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
AU2013259642A1 (en) 2012-05-09 2014-12-04 Apple Inc. Device, method, and graphical user interface for moving and dropping a user interface object
CN106201316B (zh) 2012-05-09 2020-09-29 苹果公司 用于选择用户界面对象的设备、方法和图形用户界面
US9246958B2 (en) * 2012-08-02 2016-01-26 Facebook, Inc. Systems and methods for multiple photo selection
US9785314B2 (en) * 2012-08-02 2017-10-10 Facebook, Inc. Systems and methods for displaying an animation to confirm designation of an image for sharing
KR101961860B1 (ko) * 2012-08-28 2019-03-25 삼성전자주식회사 사용자 단말 장치 및 그 제어 방법
US9507912B2 (en) 2012-08-31 2016-11-29 Nuvectra Corporation Method and system of simulating a pulse generator on a clinician programmer
US9259577B2 (en) 2012-08-31 2016-02-16 Greatbatch Ltd. Method and system of quick neurostimulation electrode configuration and positioning
US8983616B2 (en) 2012-09-05 2015-03-17 Greatbatch Ltd. Method and system for associating patient records with pulse generators
US8812125B2 (en) 2012-08-31 2014-08-19 Greatbatch Ltd. Systems and methods for the identification and association of medical devices
US9594877B2 (en) 2012-08-31 2017-03-14 Nuvectra Corporation Virtual reality representation of medical devices
US9615788B2 (en) 2012-08-31 2017-04-11 Nuvectra Corporation Method and system of producing 2D representations of 3D pain and stimulation maps and implant models on a clinician programmer
US9375582B2 (en) 2012-08-31 2016-06-28 Nuvectra Corporation Touch screen safety controls for clinician programmer
US8761897B2 (en) 2012-08-31 2014-06-24 Greatbatch Ltd. Method and system of graphical representation of lead connector block and implantable pulse generators on a clinician programmer
US8903496B2 (en) 2012-08-31 2014-12-02 Greatbatch Ltd. Clinician programming system and method
US9180302B2 (en) 2012-08-31 2015-11-10 Greatbatch Ltd. Touch screen finger position indicator for a spinal cord stimulation programming device
US8868199B2 (en) 2012-08-31 2014-10-21 Greatbatch Ltd. System and method of compressing medical maps for pulse generator or database storage
US10668276B2 (en) 2012-08-31 2020-06-02 Cirtec Medical Corp. Method and system of bracketing stimulation parameters on clinician programmers
US9471753B2 (en) 2012-08-31 2016-10-18 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter Groups
US9767255B2 (en) 2012-09-05 2017-09-19 Nuvectra Corporation Predefined input for clinician programmer data entry
US8757485B2 (en) 2012-09-05 2014-06-24 Greatbatch Ltd. System and method for using clinician programmer and clinician programming data for inventory and manufacturing prediction and control
KR20140062527A (ko) * 2012-11-12 2014-05-26 삼성전자주식회사 메일 데이터 삽입영역 전환방법 및 장치
CN103885664B (zh) * 2012-12-20 2017-03-22 腾讯科技(深圳)有限公司 桌面文件映射方法和系统
CN103049272B (zh) * 2012-12-28 2016-08-31 北京新媒传信科技有限公司 控件拖拽方法和装置
KR101958582B1 (ko) 2012-12-29 2019-07-04 애플 인크. 터치 입력에서 디스플레이 출력으로의 관계들 사이에서 전환하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
EP2939095B1 (en) 2012-12-29 2018-10-03 Apple Inc. Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
CN109375853A (zh) 2012-12-29 2019-02-22 苹果公司 对用户界面分级结构导航的设备、方法和图形用户界面
KR101812329B1 (ko) 2012-12-29 2017-12-26 애플 인크. 콘텐츠를 스크롤할지 선택할지 결정하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
EP2912542B1 (en) 2012-12-29 2022-07-13 Apple Inc. Device and method for forgoing generation of tactile output for a multi-contact gesture
WO2014105279A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for switching between user interfaces
US9728224B2 (en) * 2013-01-08 2017-08-08 Marcus van Bavel Video editing system user interface using virtual film equipment
CN103970395A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 关闭后台程序的方法和装置
JP5907096B2 (ja) * 2013-03-12 2016-04-20 アイシン・エィ・ダブリュ株式会社 情報端末装置、画像表示方法および画像表示プログラム
CN103226473B (zh) * 2013-04-08 2016-08-17 小米科技有限责任公司 一种整理图标的方法、装置和设备
US9535569B2 (en) * 2013-05-23 2017-01-03 Rakuten Kobo, Inc. System and method for a home multimedia container
TWI633461B (zh) * 2013-09-03 2018-08-21 蘋果公司 用於操縱使用者介面物件之電腦實施方法、非暫時性電腦可讀儲存媒體及電子器件
US11068128B2 (en) 2013-09-03 2021-07-20 Apple Inc. User interface object manipulations in a user interface
US9531722B1 (en) 2013-10-31 2016-12-27 Google Inc. Methods for generating an activity stream
US20150135110A1 (en) * 2013-11-09 2015-05-14 International Business Machines Corporation Utilizing object cloning to enable nested drag and drop
US9614880B1 (en) 2013-11-12 2017-04-04 Google Inc. Methods for real-time notifications in an activity stream
US9596319B2 (en) * 2013-11-13 2017-03-14 T1V, Inc. Simultaneous input system for web browsers and other applications
CN103645857B (zh) * 2013-12-27 2018-08-31 联想(北京)有限公司 一种控制电子设备的方法及电子设备
US20150193521A1 (en) * 2014-01-09 2015-07-09 Google Inc. Methods for Generating an Activity Stream
US9509772B1 (en) 2014-02-13 2016-11-29 Google Inc. Visualization and control of ongoing ingress actions
US9489685B2 (en) * 2014-04-04 2016-11-08 Hopela Inc. Visual and spatial controls for privacy settings in a charitable giving application
CA2947433A1 (en) 2014-04-30 2015-11-05 Michael Flynn Mobile computing system with user preferred interactive components
US9536199B1 (en) 2014-06-09 2017-01-03 Google Inc. Recommendations based on device usage
US9507791B2 (en) 2014-06-12 2016-11-29 Google Inc. Storage system user interface with floating file collection
US10078781B2 (en) 2014-06-13 2018-09-18 Google Llc Automatically organizing images
CN106462340B (zh) 2014-06-27 2019-09-13 苹果公司 尺寸减小的用户界面
CN110072131A (zh) 2014-09-02 2019-07-30 苹果公司 音乐用户界面
TWI582641B (zh) 2014-09-02 2017-05-11 蘋果公司 按鈕功能性
US20160062571A1 (en) 2014-09-02 2016-03-03 Apple Inc. Reduced size user interface
WO2016036509A1 (en) 2014-09-02 2016-03-10 Apple Inc. Electronic mail user interface
US10664488B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation Semantic searches in a business intelligence system
US10417247B2 (en) 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
US10516980B2 (en) 2015-10-24 2019-12-24 Oracle International Corporation Automatic redisplay of a user interface including a visualization
US9870420B2 (en) 2015-01-19 2018-01-16 Google Llc Classification and storage of documents
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9632664B2 (en) 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US9990107B2 (en) 2015-03-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US10152208B2 (en) 2015-04-01 2018-12-11 Apple Inc. Devices and methods for processing touch inputs based on their intensities
US10739939B2 (en) 2015-04-28 2020-08-11 International Business Machines Corporation Control of icon movement on a graphical user interface
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9674426B2 (en) 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
CA2987696A1 (en) * 2015-06-07 2016-12-15 Wix.Com Ltd System and method for the generation of an adaptive user interface in a website building system
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10346030B2 (en) 2015-06-07 2019-07-09 Apple Inc. Devices and methods for navigating between user interfaces
US10416800B2 (en) 2015-08-10 2019-09-17 Apple Inc. Devices, methods, and graphical user interfaces for adjusting user interface objects
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US10248308B2 (en) 2015-08-10 2019-04-02 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interfaces with physical gestures
CN105205108A (zh) * 2015-08-27 2015-12-30 北京金山安全软件有限公司 一种文件夹的解散方法及装置
CN107224720B (zh) * 2016-03-25 2019-04-30 网易(杭州)网络有限公司 拖拽式管理队伍的方法、装置及触控设备
US20170322695A1 (en) * 2016-05-04 2017-11-09 Icebox, Inc. Methods and systems for managing data and files
US10339934B2 (en) * 2016-06-27 2019-07-02 Google Llc Asynchronous processing of user requests
CN106815030B (zh) * 2017-02-07 2020-04-24 浪潮通用软件有限公司 一种通用的处理用户界面显示规则的方法
DK180127B1 (en) 2017-05-16 2020-05-26 Apple Inc. DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR MOVING USER INTERFACE OBJECTS
US10705713B2 (en) * 2017-05-16 2020-07-07 Apple Inc. Drag and drop for touchscreen devices
US10917587B2 (en) 2017-06-02 2021-02-09 Oracle International Corporation Importing and presenting data
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
US11614857B2 (en) 2017-06-02 2023-03-28 Oracle International Corporation Importing, interpreting, and presenting data
US10444975B2 (en) * 2017-07-18 2019-10-15 Google Llc Graphical icon manipulation
US10628109B2 (en) * 2017-08-09 2020-04-21 Google Llc Dynamically adapting panels of a user interface
FR3071639B1 (fr) * 2017-09-22 2020-01-31 Lithium Media Procede d’exploitation d’un dispositif informatique et dispositif informatique mettant en œuvre celui-ci
US11341544B2 (en) * 2017-11-28 2022-05-24 Snap Inc. Media collection navigation with opt-out interstitial
US10901604B2 (en) * 2017-11-28 2021-01-26 Microsoft Technology Licensing, Llc Transformation of data object based on context
JP2019120997A (ja) * 2017-12-28 2019-07-22 コニカミノルタ株式会社 情報処理装置、画像形成装置およびプログラム
JP2019128714A (ja) * 2018-01-23 2019-08-01 シャープ株式会社 入力表示装置、入力表示方法および入力表示プログラム
US10712921B2 (en) * 2018-04-09 2020-07-14 Apple Inc. Authoring a collection of images for an image gallery
US11269500B2 (en) * 2018-05-21 2022-03-08 Samsung Electronics Co., Ltd. Method and system for modular widgets in smart devices
CN109213765A (zh) * 2018-08-20 2019-01-15 中国平安人寿保险股份有限公司 数据表关联的方法、装置、计算机设备和存储介质
US11435830B2 (en) 2018-09-11 2022-09-06 Apple Inc. Content-based tactile outputs
US10996761B2 (en) 2019-06-01 2021-05-04 Apple Inc. User interfaces for non-visual output of time
CN110659227B (zh) * 2019-10-10 2020-10-02 北京机电工程研究所 一种面向无人智能装备数据总线的自动订阅方法
US11368538B2 (en) * 2020-09-14 2022-06-21 Box, Inc. Platform-agnostic drag-and-drop operations
US20220164078A1 (en) * 2020-11-20 2022-05-26 Microsoft Technology Licensing, Llc Dynamic and selective presentation of interaction zones by a computer program based on user interaction with content from other computer programs
CN115705119A (zh) * 2021-08-09 2023-02-17 北京小米移动软件有限公司 小窗退出方法及装置、电子设备、存储介质
CN113986079B (zh) * 2021-10-28 2023-07-14 腾讯科技(深圳)有限公司 虚拟按钮的设置方法和装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003233446A (ja) 2002-02-06 2003-08-22 Just Syst Corp アイコン表示装置、アイコン表示方法およびその方法をコンピュータに実行させるプログラム
US20050283742A1 (en) * 2004-04-23 2005-12-22 Microsoft Corporation Stack icons representing multiple objects
US20070192749A1 (en) * 2003-02-03 2007-08-16 Microsoft Corporation Accessing remote screen content
US7752566B1 (en) * 2005-10-28 2010-07-06 Adobe Systems Incorporated Transparent overlays for predictive interface drag and drop

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483261A (en) 1992-02-14 1996-01-09 Itu Research, Inc. Graphical input controller and method with rear screen image detection
US5880411A (en) 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
US5488204A (en) 1992-06-08 1996-01-30 Synaptics, Incorporated Paintbrush stylus for capacitive touch sensor pad
US5742286A (en) 1995-11-20 1998-04-21 International Business Machines Corporation Graphical user interface system and method for multiple simultaneous targets
US5825352A (en) 1996-01-04 1998-10-20 Logitech, Inc. Multiple fingers contact sensing method for emulating mouse buttons and mouse operations on a touch sensor pad
US5801699A (en) * 1996-01-26 1998-09-01 International Business Machines Corporation Icon aggregation on a graphical user interface
US5835079A (en) 1996-06-13 1998-11-10 International Business Machines Corporation Virtual pointing device for touchscreens
US6310610B1 (en) 1997-12-04 2001-10-30 Nortel Networks Limited Intelligent touch display
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
EP1717678B1 (en) 1998-01-26 2017-11-22 Apple Inc. Method for integrating manual input
GB2337435B (en) * 1998-05-14 2002-07-10 Mitel Corp 3d view of incoming communications
US6188391B1 (en) 1998-07-09 2001-02-13 Synaptics, Inc. Two-layer capacitive touchpad and method of making same
JP4542637B2 (ja) 1998-11-25 2010-09-15 セイコーエプソン株式会社 携帯情報機器及び情報記憶媒体
JP3800984B2 (ja) 2001-05-21 2006-07-26 ソニー株式会社 ユーザ入力装置
JP2003173237A (ja) 2001-09-28 2003-06-20 Ricoh Co Ltd 情報入出力システム、プログラム及び記憶媒体
US6690387B2 (en) 2001-12-28 2004-02-10 Koninklijke Philips Electronics N.V. Touch-screen image scrolling system and method
US7370281B2 (en) 2002-02-22 2008-05-06 Bea Systems, Inc. System and method for smart drag-and-drop functionality
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
US7337409B2 (en) 2002-09-25 2008-02-26 Siemens Aktiengesellschaft Customizable drag and drop for industrial software applications
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
KR100703690B1 (ko) * 2004-11-19 2007-04-05 삼성전자주식회사 스킨 이미지를 사용하여 아이콘을 그룹별로 관리하는사용자 인터페이스 및 방법
US8464176B2 (en) * 2005-01-19 2013-06-11 Microsoft Corporation Dynamic stacking and expansion of visual items
EP1722295A1 (de) * 2005-05-10 2006-11-15 Siemens Aktiengesellschaft Verfahren, Vorrichtung und Computerprogrammprodukt zur Bereitstellung von Benutzerinformationen innerhalb einer grafischen Benutzeroberfläche
JP4759743B2 (ja) * 2006-06-06 2011-08-31 国立大学法人 東京大学 オブジェクト表示処理装置、オブジェクト表示処理方法、およびオブジェクト表示処理用プログラム
US8091045B2 (en) * 2007-01-07 2012-01-03 Apple Inc. System and method for managing lists
US8189880B2 (en) * 2007-05-29 2012-05-29 Microsoft Corporation Interactive photo annotation based on face clustering
US8619038B2 (en) * 2007-09-04 2013-12-31 Apple Inc. Editing interface
WO2009086194A2 (en) * 2007-12-19 2009-07-09 Nevins David C Apparatus, system, and method for organizing information by time and place
KR101012300B1 (ko) * 2008-03-07 2011-02-08 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 사용자 인터페이스장치 및 그 방법
JP4605279B2 (ja) * 2008-09-12 2011-01-05 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
KR101609162B1 (ko) * 2008-11-13 2016-04-05 엘지전자 주식회사 터치 스크린을 구비한 이동 단말기 및 이를 이용한 데이터 처리 방법
CN101770326B (zh) * 2008-12-31 2012-07-25 北京联想软件有限公司 触摸屏上移动对象的实现方法及计算设备
JP2010183244A (ja) * 2009-02-04 2010-08-19 Fujifilm Corp 撮像装置及び撮像装置の制御方法
US20100275122A1 (en) * 2009-04-27 2010-10-28 Microsoft Corporation Click-through controller for mobile interaction
BRPI1008121A2 (pt) * 2009-05-29 2016-03-08 Koninkl Philips Electronics Nv método para fornecer orientação a uma equipe de prestação de serviço para atender ao cliente nos estabelecimentos comerciais e sistema de orientação para prover orientação a uma equipe de prestação de serviço para atender a um cliente nos estabelecimentos comerciais
US8479107B2 (en) * 2009-12-31 2013-07-02 Nokia Corporation Method and apparatus for fluid graphical user interface
US8751939B2 (en) * 2010-04-26 2014-06-10 Salesforce.Com, Inc. Side tab navigation and page views personalization systems and methods
US9323442B2 (en) 2010-09-30 2016-04-26 Apple Inc. Managing items in a user interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003233446A (ja) 2002-02-06 2003-08-22 Just Syst Corp アイコン表示装置、アイコン表示方法およびその方法をコンピュータに実行させるプログラム
US20070192749A1 (en) * 2003-02-03 2007-08-16 Microsoft Corporation Accessing remote screen content
US20050283742A1 (en) * 2004-04-23 2005-12-22 Microsoft Corporation Stack icons representing multiple objects
US7752566B1 (en) * 2005-10-28 2010-07-06 Adobe Systems Incorporated Transparent overlays for predictive interface drag and drop

Also Published As

Publication number Publication date
US20120084689A1 (en) 2012-04-05
EP2622445B1 (en) 2017-06-21
JP5514371B2 (ja) 2014-06-04
CN105930064B (zh) 2019-04-23
CN105930064A (zh) 2016-09-07
CN103189828A (zh) 2013-07-03
KR20130069802A (ko) 2013-06-26
CN103189828B (zh) 2016-03-02
JP2013542514A (ja) 2013-11-21
AU2011308814A1 (en) 2013-04-11
WO2012044779A1 (en) 2012-04-05
AU2011308814B2 (en) 2014-09-11
US9323442B2 (en) 2016-04-26
EP2622445A1 (en) 2013-08-07
NL2007490C2 (en) 2012-04-17

Similar Documents

Publication Publication Date Title
KR101487632B1 (ko) 사용자 인터페이스에서의 항목 관리
US11150780B2 (en) Updating display of workspaces in a user interface for managing workspaces in response to user input
KR101733839B1 (ko) 사용자 인터페이스에서의 작업 공간 관리
TWI522889B (zh) 管理使用者介面中之工作空間
US20120096396A1 (en) Managing Workspaces in a User Interface
AU2016203694B2 (en) Managing items in a user interface
AU2014274587B2 (en) Managing items in a user interface
AU2019202690B2 (en) Managing workspaces in a user interface
AU2013216607B2 (en) Managing workspaces in a user interface

Legal Events

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

Payment date: 20171219

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 6