KR20230107690A - 다수의 아이템 복사 및 붙여넣기의 운영 체제 수준관리 - Google Patents

다수의 아이템 복사 및 붙여넣기의 운영 체제 수준관리 Download PDF

Info

Publication number
KR20230107690A
KR20230107690A KR1020237021488A KR20237021488A KR20230107690A KR 20230107690 A KR20230107690 A KR 20230107690A KR 1020237021488 A KR1020237021488 A KR 1020237021488A KR 20237021488 A KR20237021488 A KR 20237021488A KR 20230107690 A KR20230107690 A KR 20230107690A
Authority
KR
South Korea
Prior art keywords
clipboard
content
item
content item
user interface
Prior art date
Application number
KR1020237021488A
Other languages
English (en)
Other versions
KR20230107690A9 (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 KR20230107690A publication Critical patent/KR20230107690A/ko
Publication of KR20230107690A9 publication Critical patent/KR20230107690A9/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • 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/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

시스템 및 방법이 설명되며, 이들은 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여, 상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하는 단계, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며 및 검출된 붙여넣기 작업에 기초하여 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현의 생성을 트리거하는 단계 및 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 단계를 포함하며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링된다.

Description

다수의 아이템 복사 및 붙여넣기의 운영 체제 수준 관리
관련 출원에 대한 상호 참조
또한 본 출원은 2020년 12월 31일 출원된 미국 출원 번호 제17/247,940호에 대해 우선권을 주장하며, 그 전체 내용은 참조로서 본 명세서에 통합된다.
기존의 클립보드 애플리케이션은 가장 최근에 복사된 텍스트에 대한 액세스를 제공할 수 있다. 예를 들어, 사용자는 클립보드에서 가장 최근에 복사된 텍스트를 생성하기 위해 텍스트 복사 명령을 사용할 수 있다. 가장 최근에 복사된 텍스트가 클립보드 애플리케이션에 의해 프로세싱되면, 사용자는 텍스트를 붙여넣기 명령을 사용할 수 있다. 붙여넣기 명령을 수신함에 응답하여, 가장 최근에 복사된 텍스트가 사용자가 선택한 애플리케이션에 가져와 진다. 그러한 종래의 클립보드 애플리케이션은 애플리케이션 사용자 인터페이스를 사용하지 않고 액세스될 수 있다(예를 들어, 이들은 키보드 단축키를 통해 액세스될 수 있다).
본 명세서에 기술된 시스템 및 방법은 사용자가 하나의 애플리케이션(예를 들어, 앱, 문서, 온라인 앱 또는 온라인 문서 등)으로부터 다른 그러한 애플리케이션으로 다수의 콘텐츠 아이템들을 액세스, 수정 및/또는 동시에 전송할 수 있도록 클립보드 히스토리 사용자 인터페이스(UI)를 생성함으로써 향상된 클립보드 히스토리를 관리하는 기능을 할 수 있다. 예를 들어, 본 명세서에 기술된 시스템 및 방법은 종래의 운영 체제 클립보드보다 더 깊은 클립보드를 생성하고 저장할 수 있다. 더 깊은 클립보드의 한 예는 스크린샷 콘텐츠, 다운로드 콘텐츠, 복사 콘텐츠, 잘라내기 콘텐츠, 온라인 콘텐츠, 문서 콘텐츠 또는 그 일부를 포함하지만 이에 제한되지 않는 다수의 이전에 캡처된 콘텐츠 아이템들을 포함할 수 있다.
클립보드 히스토리 UI를 사용하여 다수의 콘텐츠 아이템들(예: 텍스트, 링크, 이미지, 파일 등)을 한 애플리케이션에서 다른 애플리케이션으로 빠르게 전송할 수 있다. 예를 들어, 다수의 저장된 콘텐츠 아이템들을 캡처하고 붙여넣기 하기 위해 애플리케이션들 사이를 여러번 앞뒤로 이동할 필요없이 제1 애플리케이션에 있는 동안 콘텐츠를 복사하고 제2 애플리케이션에서 클립보드 히스토리 UI로부터 콘텐츠를 선택함으로써, 사용자는 클립보드 히스토리 UI에서 선택된 콘텐츠를 생성하기 위해 제1 애플리케이션에서 둘 이상의 콘텐츠 아이템들을 선택(예: 잘라내기, 복사)하고, 후속적으로 선택된 콘텐츠 아이템들을 다른 애플리케이션에 전송(예: 붙여넣기, 드래그 등)할 수 있다. 이 접근 방식의 장점은 예를 들어 서로 다른 애플리케이션들 사이를 전환하기 위해 여러 사용자 입력이 필요할 수 있는 스마트폰이나 태블릿과 같은 터치스크린 디바이스와 관련하여 더 잘 인식될 수 있다.
또한, 여기에 설명된 시스템 및 방법은 각 콘텐츠 아이템의 특정 시각적 콘텐츠를 사용자에게 표시하는 방식으로 시각적으로 제시되도록 클립보드 히스토리 UI의 여러 아이템들을 구성할 수 있다. 예를 들어, 여기에 설명된 시스템 및 방법은 콘텐츠 아이템에 대한 잘라내기 또는 복사 작업(예: 명령)을 수신할 수 있고 클립보드 히스토리 사용자 인터페이스에 대한 콘텐츠 아이템의 뷰를 생성할 수 있다. 뷰는 파일 유형, 파일 콘텐츠, 이미지 콘텐츠, html 또는 텍스트 콘텐츠, 메타데이터 등을 고려할 수 있다. 콘텐츠 아이템의 대표적인 뷰를 시각적으로 제시(또는 제공)함으로써 사용자는 클립보드 히스토리 UI의 여러 아이템들을 더 잘 구별할 수 있다. 일부 구현예에서, 여기에 설명된 시스템 및 방법은 붙여넣기 작업이 수신되는 경우 아이템들이 표시될 콘텐츠 아이템들을 미리 보는 방식을 사용자에게 제공할 수 있다. 이 접근 방식의 기술적 이점은 종종 작은 화면 크기를 갖거나 그렇지 않으면 제한된 화면 '공간'을 갖는 모바일 컴퓨팅 디바이스와 관련하여 더욱 인식될 수 있다. 콘텐츠 아이템의 대표 뷰를 디스플레이함으로써 사용자는 디스플레이 영역을 확대하거나 조정할 필요 없이 여러 콘텐츠 아이템들을 더 잘 구별할 수 있다; 따라서 모바일 컴퓨팅 디바이스의 작은 디스플레이 화면 사용에 내재된 일부 제한 사항을 극복할 수 있다.
하나 이상의 컴퓨터의 시스템이 동작 중 시스템으로 하여금 액션을 수행하게 하도록 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합에 의해 특정한 동작 또는 액션을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 프로세싱 장치에 의해 실행될 때 상기 장치로 하여금 동작을 수행하게 하는 명령어를 포함함으로써 특정한 동작 또는 액션을 수행하도록 구성될 수 있다.
제1 일반적 양태에서, 컴퓨터로 구현되는 방법이 설명되며, 상기 방법은 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여, 상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하는 단계를 포함하며, 상기 검색은 콘텐츠 유형을 결정하도록 구성된다. 또한 방법은 검출된 붙여넣기 작업에 기초하여: 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현의 생성, 및 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 단계를 포함하며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링된다.
구현예들은 다음 구성들 중 하나 이상을 포함할 수 있다. 일부 구현예에서, 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 상기 콘텐츠 아이템의 텍스트 표현을 생성하는 것 및 상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 태깅 언어 표현을 생성하는 것을 포함한다.
일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스의 렌더링은 콘텐츠 아이템들의 다수의 세트들 내의 각 콘텐츠 아이템에 대해 결정된 콘텐츠 유형에 따라 콘텐츠 아이템들 다수의 세트들 각각의 표현을 렌더링을 포함한다. 일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은 상기 복사 작업 또는 상기 잘라내기 작업의 시간적 근접성 및 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템의 캡처와 연관된 기간에 따라 상기 클립보드 히스토리 사용자 인터페이스에서 그룹화된다. 일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템에서 표현된 검출 오브젝트에 따라 상기 클립보드 히스토리 사용자 인터페이스에서 그룹화된다.
일부 구현예에서, 방법은 입력 필드에서 커서를 검출하는 단계 및 상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하는 단계를 더 포함한다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 엘리먼트로서 제공하는 것을 포함하고, 상기 렌더링된 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함한다.
일부 구현예에서, 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 상기 콘텐츠 아이템과 연관된 태깅 언어 정보 검출에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함한다.
일부 구현예에서, 방법은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출하는 것에 응답하여, 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하는 단계를 더 포함하며, 상기 미리보기는 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함한다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성된다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성된다.
일부 구현예에서, 방법은 상기 클립보드 히스토리 사용자 인터페이스와 연관된 제2 붙여넣기 작업을 검출하는 단계 및 상기 콘텐츠 아이템이 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 제2 붙여넣기 작업과 연관된 콘텐츠 아이템을 덮어쓰는 단계를 더 포함하며, 상기 덮어쓰는 단계는 상기 제2 붙여넣기 작업을 수신하는 애플리케이션에서 상기 콘텐츠 아이템을 렌더링할 때 상기 콘텐츠 아이템을 난독화한다.
일부 구현예에서, 방법은 상기 클립보드 히스토리 사용자 인터페이스와 연관된 복사 작업을 검출하는 단계, 상기 미리보기 데이터가 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 검출된 복사 작업과 연관된 미리보기 데이터를 덮어쓰는 단계를 더 포함하고, 상기 덮어쓰는 단계는 상기 클립보드 히스토리 사용자 인터페이스에 묘사된 상기 데이터의 미리보기를 난독화한다. 또한 방법은 상기 미리보기 데이터에 대응하는 적어도 하나의 콘텐츠 아이템을 렌더링하는 대신 상기 덮어쓰기된 미리보기 데이터로 상기 클립보드 히스토리 사용자 인터페이스를 렌더링하는 단계를 더 포함한다.
일부 구현예들에서, 상기 방법은, 각각의 콘텐츠 아이템과 연관된 각각의 후속적으로 검출된 복사 작업 또는 잘라내기 작업에 대해, 상기 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거링하는 단계, 상기 데이터의 검색은 상기 데이터가 적어도 하나의 태그를 포함하는지 여부를 결정하도록 구성되며, 상기 데이터의 검색에 기초하여 상기 각각의 콘텐츠 아이템의 각각의 표현을 생성하는 단계, 및 상기 각각의 표현에 따라 렌더링된 각 개별 콘텐츠 아이템으로 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 단계를 더 포함한다. 일부 구현예에서, 상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템을 표현하도록 구성된 운영 체제 기반 가상 디지털 클립보드를 생성하는 단일 브라우저 프로세스를 사용하여 렌더링된다.
제2 일반적 양태에서, 저장된 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체가 기술되며, 상기 명령어들은 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 적어도: 클립보드 히스토리 사용자 인터페이스를 생성하게 하고, 상기 클립보드 히스토리 사용자 인터페이스는 복수의 콘텐츠 아이템들을 렌더링하도록 구성되며; 그리고 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여 상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하게 하고, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며, 및 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하게 한다. 상기 명령어들은 또한 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것을 포함하며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링되며, 상기 콘텐츠 아이템과 상기 다른 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 함께 그룹화된다.
구현예들은 다음 구성들 중 하나 이상을 포함할 수 있다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스의 렌더링은 붙여넣기 작업의 검출에 응답하여 발생한다. 일부 실시예에서, 상기 명령어들은 상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 콘텐츠 아이템의 텍스트 표현 생성을 포함하여, 콘텐츠 유형에 기초하여 콘텐츠 아이템의 표현을 생성하는 것 및 상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 태깅 언어 표현을 생성하는 것을 포함한다.
일부 구현예에서, 상기 명령어들은 상기 컴퓨팅 시스템으로 하여금 추가로 입력 필드에서 커서를 검출하게 하고, 상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하게 하도록 구성된다. 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 엘리먼트로서 제공하는 것을 포함하고, 상기 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함한다.
일부 구현예에서, 콘텐츠 아이템과 연관된 데이터의 검색은 상기 클립보드 히스토리 사용자 인터페이스와 연관된 버퍼로부터, 상기 콘텐츠 아이템과 연관된 태깅 언어 정보를 검색하는 것 및 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정하는 것을 포함하며, 그리고 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함한다.
일부 구현예에서, 상기 명령어들은 상기 컴퓨팅 시스템으로 하여금 추가로 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출함에 응답하여, 상기 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하게 하도록 구성되며, 상기 미리보기는 상기 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함한다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성된다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성된다.
일부 구현예에서, 상기 명령어들은 상기 컴퓨팅 시스템으로 하여금 추가로 상기 클립보드 히스토리 사용자 인터페이스와 연관된 복사 작업을 검출하게 하고, 상기 미리보기 데이터가 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 검출된 복사 작업과 연관된 미리보기 데이터를 덮어쓰는 단계, 상기 덮어쓰게 하고, 상기 클립보드 히스토리 사용자 인터페이스에 묘사된 상기 데이터의 미리보기를 난독화하며, 그리고 상기 미리보기 데이터에 대응하는 적어도 하나의 콘텐츠 아이템을 렌더링하는 대신 상기 덮어쓰기된 미리보기 데이터로 상기 클립보드 히스토리 사용자 인터페이스를 렌더링하게 하도록 구성된다.
일부 구현예에서, 상기 명령어들은 상기 컴퓨팅 시스템으로 하여금 추가로, 각각의 콘텐츠 아이템과 연관된 각각의 후속적으로 검출된 복사 작업 또는 잘라내기 작업에 대해, 상기 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거링하게 하고, 상기 데이터의 검색은 상기 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정하도록 구성되며, 및 상기 데이터의 검색에 기초하여 상기 각각의 콘텐츠 아이템의 각각의 표현을 생성하게 하고, 그리고 상기 각각의 표현에 따라 렌더링된 각 개별 콘텐츠 아이템으로 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하게 하도록 구성된다. 일부 구현예에서, 상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템을 저장, 추적, 채우고 업데이트하도록 구성된 운영 체제 기반 가상 디지털 클립보드를 생성하는 단일 운영 체제 프로세스를 사용하여 렌더링된다.
제3의 일반적인 양태에서, 시스템은 메모리 및 메모리에 결합된 적어도 하나의 프로세서를 포함할 수 있으며, 여기서 적어도 하나의 프로세서는 클립보드 모듈 및 렌더링 모듈을 활용하도록 구성된다. 클립보드 모듈은 클립보드 히스토리 사용자 인터페이스를 생성하고, 상기 클립보드 히스토리 사용자 인터페이스는 복수의 콘텐츠 아이템들을 렌더링하도록 구성되며; 그리고 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여 상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하게 하고, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며 및 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하도록 구성된다.
렌더링 모듈은 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하도록 구성되며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링되며, 상기 콘텐츠 아이템과 상기 다른 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 함께 그룹화된다.
구현예들은 다음 구성들 중 하나 이상을 포함할 수 있다. 일부 구현예에서, 클립보드 모듈은 입력 필드에서 커서를 검출하고 상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하도록 구성된다. 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 메뉴로서 제공하는 것을 포함하고, 상기 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함한다.
일부 구현예에서, 상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 태깅 언어 정보가 상기 콘텐츠 아이템과 연관된다는 것을 검출함에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함한다.
일부 구현예에서, 상기 렌더링 모듈은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출함에 응답하여, 상기 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하도록 더 구성되며, 상기 미리보기는 상기 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함한다.
일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성된다. 일부 구현예에서, 상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성된다.
일부 구현예에서, 클립보드 모듈은 상기 클립보드 히스토리 사용자 인터페이스와 연관된 제2 붙여넣기 작업을 검출하고 그리고 상기 콘텐츠 아이템이 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 제2 붙여넣기 작업과 연관된 콘텐츠 아이템의 덮어쓰기를 트리거하도록 더 구성되며, 상기 덮어쓰는 것은 상기 제2 붙여넣기 작업을 수신하는 애플리케이션에서 상기 콘텐츠 아이템을 렌더링할 때 상기 콘텐츠 아이템을 난독화한다.
상기 시스템 및 양태는 상기 기술된 양태의 임의의 조합을 수행하도록 구성될 수 있으며, 이들 각각은 상기 나열된 구성 및 양태의 임의의 적합한 조합과 함께 구현될 수 있다.
설명된 기법의 구현예는 하드웨어, 방법 또는 프로세스 또는 컴퓨터 액세스 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다. 하나 이상의 구현예의 세부 내용들이 첨부 도면과 아래의 설명에서 기술된다. 다른 구성들은 아래의 설명, 도면들 및 청구항들로부터 명백해질 것이다.
도 1은 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 사용자 인터페이스(UI)의 예시적 사용을 도시하는 블록도이다.
도 2a-2c는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI를 생성하고 채우도록 구성된 예시적 컴퓨팅 시스템을 도시하는 블록도이다.
도 3은 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI를 사용하기 위한 UI 트리거를 도시하는 스크린샷이다.
도 4는 본 명세서에 기술된 구현예에 따라 애플리케이션 내에 남아 있는 동안 클립보드 히스토리 UI에 여러 콘텐츠 아이템들을 복사하는 것을 도시하는 예시적 스크린샷이다.
도 5는 본 명세서에 기술된 구현예에 따라 애플리케이션 내의 클립보드 히스토리 UI의 제공 및 사용을 도시하는 예시적 스크린샷이다.
도 6은 본 명세서에 기술된 구현예에 따라 애플리케이션 내의 클립보드 히스토리 UI의 제공 및 사용을 도시하는 또 다른 예시적 스크린샷이다.
도 7은 본 명세서에 기술된 구현예에 따라 활성 입력 필드와 연관된 클립보드의 제공 및 사용을 도시하는 예시적 스크린샷이다.
도 8은 본 명세서에 기술된 구현예에 따라 가상 키보드 내에서 클립보드 히스토리 UI의 제공 및 사용을 도시하는 다른 예시적 스크린샷이다.
도 9는 본 명세서에 기술된 구현예에 따라 컨텍스트 메뉴 내에서 제시된 예시적 클립보드 콘텐츠를 나타내는 스크린샷이다.
도 10은 본 명세서에 기술된 구현예에 따라 추가 메뉴 옵션이 있는 예시적 클립보드 히스토리 UI를 나타내는 스크린샷이다.
도 11a-11b는 본 명세서에 기술된 구현예에 따른 예시적 클립보드 히스토리 UI를 나타내는 스크린샷이다.
도 12는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI에서 복사된 콘텐츠를 숨기는 예를 나타내는 스크린샷이다.
도 13은 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI에 저장된 콘텐츠를 사용하여 제안을 제공하는 예를 나타내는 스크린샷이다.
도 14는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 사용자 인터페이스를 렌더링하는 예시적 프로세스의 흐름도이다.
도 15는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 사용자 인터페이스를 렌더링하는 예시적 프로세스의 흐름도이다.
도 16은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨터 디바이스와 모바일 컴퓨터 디바이스의 예시를 도시한다.
다양한 도면에서 유사하거나 동일한 참조 번호의 사용은 유사하거나 동일한 엘리먼트 또는 구성의 존재를 나타내기 위한 것이다.
본 문서는 캡처된 콘텐츠 아이템들을 시각적으로 렌더링(또는 디스플레이)하기 위한 클립보드 히스토리 사용자 인터페이스(UI)를 설명한다. 캡처된 콘텐츠 아이템들은 이러한 콘텐츠 아이템들 및 이러한 콘텐츠 아이템들 내의 콘텐츠와 연관된 유형의 정확한 묘사를 제공하도록 수정될 수 있다. 예를 들어, 콘텐츠 아이템이 온라인 스프레드시트의 일부를 포함하는 경우, 여기에 설명된 시스템 및 방법은 콘텐츠 아이템이 나타내는 것의 시각적 정보를 사용자에게 제공하기 위해 상기 일부의 버전을 선별할 수 있다. 그런 다음 특정 콘텐츠 아이템의 생성된 버전은 향후 사용자 선택 및 사용을 위해 클립보드 히스토리 UI에 렌더링된다.
일부 구현예에서, 클립보드 히스토리 UI는 이전에 복사된 콘텐츠를 빠르게 식별하는데 사용자를 도울 수 있는 시각적 콘텐츠 아이템 복사 히스토리를 나타낼 수 있다. 여기에 설명된 클립보드 히스토리 UI는 사용자가 복사 히스토리에서 단일 콘텐츠 아이템을 제공하고 그러한 아이템을 사용자가 붙여넣기 작업을 수행할 때까지 볼 수 없는 종래의 시스템과 달리 멀티 아이템 복사 히스토리에서 콘텐츠를 이해할 수 있게 할 수 있다. 따라서, 본 명세서에 기술된 시스템 및 방법은 클립보드 히스토리 UI에서 각각의 특정 콘텐츠 아이템의 사용자 인식을 가능하게 하기 위해 클립보드 히스토리 UI 내에서 캡처된 콘텐츠 아이템의 미리보기를 렌더링하는 이점을 제공한다.
여기에 설명된 클립보드 히스토리 UI는 사용자가 현재 애플리케이션 세션의 컨텍스트에 남아 있는 동안 캡처된 콘텐츠 아이템들을 보고 사용할 수 있게 한다. 이러한 UI는 UI와 연관된 선택 및/또는 바로 가기를 사용하여 멀티 아이템 복사 및 붙여넣기 작업을 가능하게 할 수 있다. 예를 들어, 클립보드 히스토리 UI는 클립보드 히스토리 UI가 고정, 플로팅, 그렇지 않으면 현재 애플리케이션 세션 또는 O/S 세션의 일부에 첨부되기 때문에 애플리케이션 윈도우와 클립보드 히스토리 UI 사이에서 최소화, 최대화 또는 이동할 필요없이, 클립보드 히스토리 UI는 사용자가 다수의 아이템들을 애플리케이션에 복사 및/또는 붙여넣기하게 한다. 이렇게 하면 서로 다른 애플리케이션들 간에 전환할 때 사용자 입력을 줄일 수 있다. 일부 구현예에서, 사용자가 바로가기를 제공할 때 클립보드 히스토리 UI는 예를 들어 활성 애플리케이션에 붙여넣을 하나 이상의 콘텐츠 아이템들을 사용자가 빠르게 선택하게 하는 입력 필드 또는 커서에 표시된다. 일부 구현예에서, 클립보드 히스토리 UI는 입력 필드를 채울 목적으로 입력 필드에서 사용자 선택을 위해 제안된 콘텐츠 아이템들을 생성하고 제공할 수 있다.
동작 중에, 본 명세서에 기술된 시스템 및 방법은 반복적인 데이터 입력(예: 다수의 복사/붙여넣기 작업)을 피하면서 다수의 콘텐츠 아이템들(예를 들어, 텍스트, 마크업, 이미지 또는 기타 콘텐츠)을 빠르게 전송하는데 사용될 수 있는 시각적 클립보드 히스토리를 제공하는 O/S 레벨 UI로서 클립보드 히스토리 UI를 생성할 수 있다. 본 명세서에 기술된 클립보드 히스토리 UI는 한 장소에서 다른 장소로 다수의 콘텐츠 아이템들을 신속하게 전송하기 위해 종래의 시스템보다 사용자가 더 깊은 클립보드(예를 들어, 마지막으로 복사한 5개 항목)에 액세스하게 할 수 있다. 또한, 클립보드 히스토리 UI가 이전에 복사/잘라내기한 하나 이상의 콘텐츠 아이템을 유지하기 때문에 여기에 설명된 클립보드 히스토리 UI는 이전 복사/잘라내기 작업으로부터 콘텐츠를 덮어쓰는 것을 완화할 수 있다.
일부 구현예에서, 여기에 설명된 시스템 및 방법은 O/S가 클립보드 히스토리 UI에 HTML 콘텐츠(또는 XML, XHTML, TeX, SOAP, OWL 또는 기타 태깅/마크업 언어 콘텐츠)를 생성하고 시각적으로 렌더링할 수 있도록 운영 체제(O/S)를 통해 O/S 프로세스를 활용할 수 있다. 콘텐츠는 콘텐츠에 대한 분석(및/또는 관련 검색)에 따라 렌더링되어 사용자가 한눈에 콘텐츠를 식별할 수 있도록 콘텐츠가 제시될 수 있다. 또한 O/S는 렌더링되지 않은 콘텐츠에 따라 사용자에게 렌더링되는 실제 클립보드 UI 히스토리를 조작하고 수정하기 위해 렌더링되지 않은(예: 보이지 않는) 구성에서 콘텐츠 아이템들을 시뮬레이트, 수정 및 추적하기 위해 O/S 프로세스를 사용할 수 있다. 이렇게 하면 클립보드 히스토리 UI에 각 개별 콘텐츠 아이템이 채워진 순서에 관계없이 표준 복사 및/또는 붙여넣기 작업이 클립보드 히스토리 UI의 여러 아이템들 중 일부 또는 모두와 함께 사용될 수 있게 한다. 본 명세서에서 O/S 프로세스는 브라우저 프로세스, 렌더링 프로세스, CPU 프로세스 및/또는 애플리케이션 프로세스 등을 나타낼 수 있다.
본 명세서의 시스템 및 방법은 특정 사용자 또는 사용자 세션에 대한 클립보드 히스토리의 콘텐츠들을 결정하는 기술적 과제(예를 들어, 문제)를 해결할 수 있다. 예를 들어, 서로 다른 시나리오는 서식이 있는 붙여넣기 작업 또는 서식이 없는(예: 일반 텍스트) 붙여넣기 작업을 활용한다. 사용자가 붙여넣기 작업을 제공할 때 정확히 무엇이 붙여넣어질 것인지에 대한 사용자 예상을 설정하기 위해 클립보드 히스토리에 있는 콘텐츠 아이템의 정확한 시각적 표현(예: 줌, 늘이기, 클립, 자르기, 링크할 이미지, 이미지에 대한 링크, 마크업에 텍스트, 텍스트에 마크업 등)을 사용자에게 제공하는 시스템이 필요하다. 이는 텍스트 크기로 인해 서로 다른 콘텐츠 아이템들을 쉽게 구별하기 어려울 수 있는 작은 디스플레이 화면이 있는 디바이스에서 더 많은 이점을 가질 수 있다. 종래의 시스템은 붙여넣은 콘텐츠를 보기 위해 붙여넣기 작업을 실제로 수행하기 전에는 사용자가 붙여넣기 작업 결과를 볼 수 없거나 알 수 없는 복사 및 붙여넣기 작업에 대한 기본 설정을 제공한다. 여기에 설명된 시스템 및 방법은 여기에 설명된 클립보드 히스토리 UI를 생성하도록 컴퓨터 O/S를 구성함으로써 기술적 문제에 대한 기술적 해결책을 제공하며, 이는 O/S가 UI를 커서, 입력 필드, 오버레이 등을 사용하여 여러 콘텐츠 아이템들을 빠르게 붙여넣게 하기 위해 렌더링하게 한다. 일부 구현예에서, 본 명세서에 설명된 UI는 콘텐츠(예를 들어, 마지막 3개, 5개, 10개 등의 복사된 콘텐츠 아이템)가 있는 보이지 않는 클립보드를 생성하기 위해 백그라운드에서 실행되는 단일 프로세스에서 관리될 수 있다. 프로세스는 사용자가 일반적인 단축키(예: ctrl- v, 엔터, 선택, 스크린샷, 캡처) 또는 저장된 콘텐츠 아이템들의 일부 또는 전체를 복사/붙여넣기하는 기타 입력을 활용하여, 핫스왑, 선택 등이 될 수 있는 콘텐츠 아이템들과 함께 시각적 클립보드 히스토리 UI를 생성하기 위한 복사 작업(예를 들면, 콘텐츠 복사 명령)을 수신할 수 있다. 단일 프로세스는 클립보드 콘텐츠 아이템을 사용하기 위해 작업(예: 명령)이 수신될 때마다 새로운 프로세스를 생성 및 실행하기 위해 기다릴 필요 없이 클립보드 콘텐츠 아이템들의 빠른 액세스 및 사용의 이점을 제공하기 위해 미리 결정된 시간 동안 계속 실행될 수 있다. 단일 프로세스를 재사용하면 전체 런타임 및 시스템 메모리 사용량을 줄일 수 있다. HTML 콘텐츠(또는 다른 태깅 언어 콘텐츠)는 HTML 콘텐츠가 클립보드 내에서 사용자에게 렌더링/제시되어야 하는 방법을 결정하기 위해 클립보드에 복사될 때 분석될 수 있다(예: 이미지/테이블에 대한 검사는 HTML 콘텐츠를 일반 텍스트나 비트맵 이미지 또는 GIF로 렌더링할 방법에 대한 결정으로 이어질 수 있음). 일부 구현예에서, 단일 프로세스는 브라우저 프로세스이다. 일부 구현예에서, 단일 프로세스는 렌더링 프로세스이다. 일부 구현예에서 단일 프로세스는 애플리케이션 프로세스이다.
본 명세서에서 설명하는 기술적 해결책은 웨어러블, 모바일 장치와 같은 소형 디바이스뿐만 아니라 랩톱, 데스크톱 등을 포함하는 더 큰 디바이스를 포함하는 다양한 디바이스에 폭넓게 적용될 수 있는 O/S 레벨의 콘텐츠 캡처 히스토리 UI(예: 클립보드 히스토리 UI)를 제공하는 기술적 효과를 제공할 수 있다. 그러한 디바이스들에 대해, 본 명세서에 기술된 UI는 클립보드 히스토리를 커서 또는 선택된 입력 필드에 도시하는 이점을 제공하여 별도의 애플리케이션 또는 윈도우를 열지 않아도 되게 한다. 단일 프로세스(예를 들어, 단일 브라우저 프로세스)가 사용자 세션에서 수행된 임의의 수의 복사, 붙여넣기 또는 복사 및 붙여넣기 작업에 사용되기 때문에, 본 명세서에 기술된 UI는 종래의 클립보드 시스템보다 콘텐츠 아이템들의 클립보드에 대한 빠른 액세스를 제공할 수 있고, 그에 따라 일반적으로 수신된 작업마다 트리거되는 기존 시스템의 여러 시간 소모 및 프로세싱 집약적 구현의 생성을 방지한다. 따라서 런타임 및 메모리 사용이 줄어들 수 있다.
일부 구현예에서, 여기에 설명된 시스템 및 방법은 마크업 언어 콘텐츠(예를 들어, 태깅 언어 콘텐츠)를 시각적으로 정확하게 렌더링하기 위해 특정 콘텐츠 아이템들에 대한 논리 패턴을 결정할 수 있다. 그러한 결정된 패턴은 본 명세서에 기술된 콘텐츠 아이템들을 렌더링하기 위해 저장된 및/또는 내부의 데이터에 관련될 수 있다. 패턴은 콘텐츠 아이템의 정확하고 사용자가 인식가능한 시각적 표현이 클립보드 히스토리 UI에서 사용자에게 제시되도록 하는데 사용될 수 있다. 예를 들어, HTML 콘텐츠 아이템들(또는 다른 태깅 언어 콘텐츠 아이템들)이 클립보드 히스토리 UI에 정확하게 표시될 수 있도록 하기 위해 콘텐츠 아이템과 관련된 데이터의 패턴이 평가될 수 있다. 일부 구현예에서, 본 명세서에 기술된 시스템은 데이터에서 테이블 태그 및/또는 이미지 태그와 같은 패턴을 검출(예를 들어, 검색)할 수 있고 데이터 패턴을 HTML 콘텐츠 아이템(또는 다른 태깅 언어 콘텐츠 아이템)에 관한 것으로 결정할 수 있다. 이에 응답하여, 본 명세서에 기술된 시스템은 태깅 언어 서식을 사용하여 그러한 콘텐츠 아이템들을 렌더링하도록 결정할 수 있다. 유사한 방식으로, 본 명세서에 기술된 시스템은 특정 콘텐츠 아이템에 속하는 데이터의 상이한 패턴을 검출함으로써(또는 데이터에서 다른 특정 패턴의 결여를 검출함으로써) 콘텐츠 아이템들을 일반 텍스트로 렌더링할지 여부를 결정할 수 있다. 달리 표시되지 않는 아이템들을 일반 텍스트로 렌더링하면 프로세스를 보다 효율적으로 수행할 수 있다.
도 1은 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 사용자 인터페이스(UI)(100)의 예시적 사용을 도시하는 블록도이다. 클립보드 히스토리 사용자 인터페이스(100)는 사용자 세션 동안 사용자에 의해 채워진 임의의 수의 콘텐츠 아이템들을 포함할 수 있다. 예를 들어, 사용자는 사용자 세션 전체에 걸쳐 임의의 수의 애플리케이션들(102)에 액세스할 수 있고, 콘텐츠 아이템을 O/S 클립보드(104)와 같은 클립보드에 복사(예를 들어, 캡처, 스닙 등)할 수 있다. UI(100)는 복사, 잘라내기 및/또는 다운로드한 콘텐츠의 히스토리를 나타낼 수 있고, 콘텐츠 아이템들을 분석하여 복사, 잘라내기 또는 다운로드한 콘텐츠 아이템들을 시각적으로 표현할 수 있다.
일부 구현예에서, 여기에 설명된 시스템은 O/S 클립보드(104)로부터의 콘텐츠에 액세스하고 이를 활용하여 클립보드 히스토리 UI(100)에 콘텐츠 아이템들을 생성할 수 있다. 예를 들어, 컴퓨팅 디바이스의 O/S는 콘텐츠를 예시적 클립보드 히스토리 UI(100)에 채우기 위해 O/S 클립보드(104)를 활용할 수 있다. 일부 구현예에서, 본 명세서에 기술된 시스템은 UI(100)를 채우기 위한 복사된 콘텐츠를 얻기 위해 O/S 클립보드(104)와 연관된 작업에 대신 액세스할 수 있다. 예를 들어, 콘텐츠 아이템들은 복사 또는 잘라내기 작업이 완료될 때마다 액세스되어 UI(100)에 배치될 수 있다. 따라서, O/S 클립보드(104)는 UI(100)의 채움에 의해 변경되거나 수정되지 않지만, O/S 클립보드(104)와 함께 활용되는 콘텐츠는 예를 들어 사용자 세션 전반에 걸쳐 사용된다. 도시된 바와 같이, O/S 클립보드(104)는 단일 최신 아이템(106)을 포함한다. 아이템(106)은 사용자가 O/S 클립보드(104)에 넣은 마지막 캡처(예: 잘라내기, 복사, 스크린샷, 스니핑) 콘텐츠 아이템일 수 있다.
대조적으로, 예시적인 클립보드 히스토리 UI(100)는 사용자가 콘텐츠 아이템을 잘라내고, 복사하고, 및/또는 다운로드함에 따라 저장된 다수의 콘텐츠 아이템들을 포함한다. UI(100)는 나중에 다른 문서 및/또는 애플리케이션에 붙여넣기 위해 다수의 아이템들에 쉽게 액세스하기 위해 사용자가 다수의 아이템들을 클립보드 저장소(예를 들어 브라우저 애플리케이션과 연관됨)에 복사할 수 있게 하는 범용 클립보드를 나타낼 수 있다. 일반적으로 UI(100)로 표현되는 범용 클립보드는 컴퓨팅 디바이스의 O/S에 의해 지원된다.
도시된 바와 같이, UI(100)는 다양한 유형의 콘텐츠를 포함한다. 예를 들어, UI(100)는 텍스트 콘텐츠 아이템(108a) 및 텍스트 콘텐츠 아이템(110a), 이미지 콘텐츠 아이템(112a), 파일 콘텐츠 아이템(114a), 온라인 콘텐츠 아이템(116a)(예: 온라인 저장 문서), GIF 또는 기타 애니메이션 콘텐츠 아이템 및 링크 콘텐츠 아이템(118a)을 포함한다. 텍스트 콘텐츠 아이템(108a) 및 텍스트 콘텐츠 아이템(110a)은 둘 모두 사용자가 다른 소스(예를 들어, 문서, 웹사이트 등)로부터 복사했을 수 있는 고유한 텍스트 스니펫을 포함한다. 이미지 콘텐츠 아이템(112a)은 UI(100) 외부의 다른 소스로부터 이전에 사용자에 의해 캡처되거나 복사된 이미지를 포함한다. 파일 콘텐츠 아이템(114a)은 UI(100) 외부의 다른 소스로부터 이전 시간에 캡처되거나 복사된 비용 보고서의 일부를 나타내는 휴대용 데이터 파일을 포함한다. 온라인 콘텐츠 아이템(116a)은 UI(100) 외부의 다른 소스로부터 이전에 사용자에 의해 캡처되거나 복사된 html 링크를 포함한다.
본 명세서에 기술된 시스템의 동작에서, 사용자는 예를 들어 다가오는 수의사 회의에 대한 초대를 나타내는 전자 문서를 생성하기 위해 애플리케이션(102a)에 액세스할 수 있다. 사용자는 세션 동안 클립보드 히스토리 사용자 인터페이스(100)를 생성했을 수 있다. 초대를 생성하기 위해, 사용자는 애플리케이션(102a)에서 문서(120)를 열어 콘텐츠를 문서(120)에 붙여넣기(또는 멀티 아이템 붙여넣기)를 시작할 수 있다. 도시된 바와 같이, 사용자는 콘텐츠 아이템(108a), 콘텐츠 아이템(112a) 및 콘텐츠 아이템(110a) 및 콘텐츠 아이템(116a)을 선택하여 텍스트(108b), 텍스트(110b), 이미지(112b) 및 표(116b)로 도시된 바와 같이 콘텐츠를 문서(120)에 각각 붙여넣었다. 6개의 콘텐츠 아이템들이 UI(100)에 표시되지만, 임의의 수의 콘텐츠 아이템들이 제공될 수 있다. 예를 들어, 특정 UI(100)는 콘텐츠 아이템들의 수를 5개로 제한할 수 있다. 일부 구현예에서, UI(100)는 5개 내지 15개의 콘텐츠 아이템들을 저장할 수 있다. 일부 구현예에서, UI(100)는 5개 미만의 콘텐츠 아이템들을 저장할 수 있다. 일부 구현예에서, UI(100)는 특정 기간 동안 복사된 모든 콘텐츠를 저장할 수 있어 예를 들어 수백 개의 스크롤 가능한 콘텐츠 아이템이 표시될 수 있다.
도 2a는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI를 생성하고 채우도록 구성된 예시적 컴퓨팅 시스템(200)을 도시하는 블록도이다. 시스템(200)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 시스템(202) 및 서버 컴퓨팅 시스템(204)) 및/또는 다른 디바이스(도 2에 도시되지 않음)를 구성하는데 사용되어 클립보드 히스토리 UI(100)를 작동시킨다. 예를 들어, 시스템(200)은 다운로드 저장소(210) 및/또는 클립보드 저장소(212)와 같은 콘텐츠 아이템들(208)로부터 클립보드 히스토리 UI 생성기(206)를 사용하여 클립보드 히스토리 UI(100)를 생성할 수 있다. 일부 구현예에서, 콘텐츠 아이템들(208)은 컴퓨팅 시스템(202)과 연관된 클립보드 애플리케이션으로부터 획득될 수 있다. 일부 구현예에서, 콘텐츠 아이템들(208)은 복사 또는 잘라내기 작업으로부터 직접 획득될 수 있다. 콘텐츠 아이템들(208)은 예를 들어 클립보드 히스토리 UI(100)에서 시각적 UI 데이터를 정확하게 묘사하기 위해 콘텐츠 관리자(214)에 의해 수정될 수 있다.
도 2에 도시된 바와 같이, 컴퓨팅 시스템(202)은 운영 체제(O/S)(216)를 포함한다. O/S(216)는 애플리케이션(218), 클립보드 히스토리 UI 생성기(206), 콘텐츠 관리자(214), 클립 제안 엔진(220), 데이터 캡처 엔진(222) 및 UI 애니메이션 엔진/렌더러(224)를 실행하거나 관리할 수 있다. O/S(216)는 애플리케이션, UI 인터렉션, 액세스된 서비스 및/또는 도시되지 않은 디바이스 통신을 실행 및/또는 제어하는 기능을 할 수 있다.
애플리케이션(218)은 컴퓨팅 시스템(202)(또는 서버 컴퓨팅 시스템(204) 또는 외부 서비스를 통해)에 의해 실행/전달될 수 있는 임의의 유형의 컴퓨터 프로그램일 수 있다. 애플리케이션(218)은 사용자가 각각의 애플리케이션(218)의 기능과 인터렉션할 수 있도록 사용자 인터페이스(예를 들어, 애플리케이션 윈도우)를 제공할 수 있다. 특정 애플리케이션(218)의 애플리케이션 윈도우는 메뉴(들), 아이콘, 위젯 등과 같은 임의의 유형의 컨트롤과 함께 애플리케이션 데이터를 디스플레이할 수 있다. 애플리케이션들(218)은 앱 정보(226) 및 세션 데이터(228)를 포함하거나 그에 액세스할 수 있으며, 둘 모두 콘텐츠 및/또는 데이터를 생성하고 이러한 콘텐츠 및/또는 데이터를 디바이스 인터페이스를 통해 사용자 및/또는 O/S(216)에 제공하는데 사용될 수 있다. 앱 정보(226)는 특정 애플리케이션(218)에 의해 실행되거나 액세스되는 정보에 대응할 수 있다. 예를 들어, 앱 정보(226)는 입력, 출력 또는 애플리케이션(218)과의 인터렉션과 연관된 텍스트, 이미지, 제어 신호를 포함할 수 있다. 일부 구현예에서, 앱 정보(226)는 다운로드 저장소(210)로부터의 다운로드 데이터 및/또는 클립보드 저장소(212)로부터의 클립보드 데이터를 포함할 수 있다. 일부 구현예에서, 앱 정보(226)는 메타데이터, 테이블 태그, 이미지 태그, 타임스탬프 데이터, URL 데이터 등을 포함하지만 이에 제한되지 않는 특정 애플리케이션(218)과 연관된 데이터를 포함할 수 있다. 일부 구현예에서, 애플리케이션들(218)은 브라우저(227)를 포함할 수 있다. 브라우저(227)는 클립보드 히스토리 UI 생성기(206)에 의해 활용되어 클립보드 히스토리 UI(100)에 제시하기 위한 콘텐츠 아이템들(208)을 구성할 수 있다.
세션 데이터(228)는 애플리케이션(218)과의 사용자 세션(230)에 관련될 수 있다. 예를 들어, 사용자는 컴퓨팅 시스템(202) 상의 또는 그와 연관된 사용자 프로필(234)을 통해, 또는 대안적으로 서버 컴퓨팅 시스템(204)을 통해 사용자 계정(232)에 액세스할 수 있다. 사용자 계정(232)에 액세스하는 것은 사용자 이름/암호 또는 다른 유형의 인증 자격증명 및/또는 허가 데이터(236)를 제공하는 것을 포함할 수 있다. 사용자가 사용자 자격증명을 제공할 수 있도록 로그인 화면이 디스플레이될 수 있으며, 인증되면 사용자가 컴퓨팅 시스템(202)의 기능에 액세스할 수 있다. 세션은 액세스된 것으로 결정되는 사용자 계정(232)에 응답하여 또는 컴퓨팅 시스템(202)의 하나 이상의 사용자 인터페이스(UI)가 디스플레이될 때 시작될 수 있다. 일부 구현예에서, 세션 및 사용자 계정은 서버 컴퓨팅 시스템(204)과 통신하지 않고 컴퓨팅 시스템(202)을 사용하여 인증 및 액세스될 수 있다.
일부 구현예에서, 사용자 프로필(234)은 단일 사용자에 대한 다수의 프로필을 포함할 수 있다. 예를 들어, 사용자는 비즈니스 사용자 프로필과 개인 사용자 프로필을 가질 수 있다. 두 프로필은 두 사용자 프로필로부터 저장된 콘텐츠 아이템들을 사용하기 위해 동일한 클립보드 히스토리 UI(100)를 이용할 수 있다. 따라서, 사용자가 직업 프로필로 열린 브라우저 세션 및 개인 사용자 프로필로 열린 온라인 파일 또는 애플리케이션을 가지고 있는 경우, 클립보드 히스토리 UI(100)는 두 프로필로부터 클립핑, 다운로드, 잘라내기, 복사 등이 된 콘텐츠 아이템을 저장하는데 사용될 수 있다. 예를 들어, 시스템(200)은 클립보드 히스토리 UI(100)에 대한 액세스 권한을 가진 사용자와 연관된 2개의 사용자 프로필로부터 UI(100)에 렌더링된 콘텐츠 아이템이 검색되는 클립보드 히스토리 UI(100)의 뷰를 제공할 수 있다. 이는 복사/붙여넣기 액션을 수행하기 위한 사용자 입력을 줄이고 필요한 시간을 줄이는데 도움이 될 수 있다. 따라서 더 적은 시스템 리소스가 사용될 수 있다.
세션 동안(및 사용자에 의해 승인된 경우) 세션 데이터(228)가 생성된다. 세션 데이터(228)는 특정 컴퓨팅 세션(230) 동안 사용자에 의해 사용/활성화되는 세션 아이템에 대한 정보를 포함한다. 세션 아이템은 클립보드 콘텐츠, 브라우저 탭/윈도우, 애플리케이션(예: 웹 애플리케이션, 네이티브 애플리케이션), 가상 데스크, 디스플레이 상태(또는 모드)(예: 분할 화면, PIP, 전체 화면 모드 등) 및/또는 기타 그래픽 제어 엘리먼트(예: 파일, 윈도우, 제어 화면 등)을 포함할 수 있다. 예를 들어, 세션(230) 동안, 사용자는 다수의 다운로드 및/또는 스크린샷을 수집할 수 있다. 세션 아이템은 다운로드 및/또는 스크린샷을 포함할 수 있다. 이러한 세션 아이템들은 예를 들어 세션의 길이 동안 클립보드 히스토리 UI(100)에 제공하기 위해 저장될 수 있다. 일부 구현예에서, 세션 아이템들은 미리 결정된 기간에 기초한 세션의 길이보다 더 길게 저장될 수 있다. 예를 들어, 세션 아이템들은 일주일 동안의 사용자 허가 데이터(236)에 기초하여 저장될 수 있다. 일부 구현예에서, 세션 아이템들은 현재 세션의 추가와 함께 미리 결정된 기간 동안 저장될 수 있다. 예를 들어, 세션 동안 세션 아이템들을 제거하는 것을 피하기 위해, O/S(216)는 사용자가 현재 세션에 있지 않는 한 미리 결정된 기간 동안 세션 아이템을 저장할 수 있으며, 이 경우 O/S(216)는 세션 아이템들로부터 아이템들을 제거하려면 세션이 끝날 때까지 기다릴 수 있다.
사용자가 사용자 인터페이스에서 이러한 세션 아이템들을 실행, 활성화 및/또는 조작함에 따라 세션 데이터(228)가 생성된다. 세션 데이터는 어떤 세션 아이템이 런칭, 구성 또는 활성화되었는지에 대한 식별, 윈도우 포지션, 윈도우 크기, 세션 아이템이 포어그라운드 또는 백그라운드에 위치하는지 여부, 세션 아이템이 포커스되거나 포커스되지 않았는지 여부, 세션 아이템이 사용된(또는 마지막으로 사용된) 시간 및/또는 세션 아이템의 최근 또는 마지막 등장 순서를 포함할 수 있다. 일부 예에서, 세션 데이터(228)는 특정 클립보드 히스토리 UI 및/또는 애플리케이션 탐색 상태(예를 들어, 활동 스택 또는 애플리케이션이 디스플레이하고 있는 화면의 다른 식별)에 대한 세션 아이템 할당을 포함할 수 있다.
일부 예에서, 세션 데이터(228)는 네트워크(240)를 통해 서버 컴퓨팅 시스템으로 전송되며, 여기서 데이터는 서버 컴퓨팅 시스템(204)에서 사용자의 사용자 허가 데이터(236)에 따라 사용자 계정(232)과 연관되어 메모리(242)에 저장될 수 있다. 예를 들어, 사용자가 사용자 인터페이스에서 세션 아이템을 런칭 및/또는 조작함에 따라, 세션 아이템에 대한 세션 데이터가 서버 컴퓨팅 시스템(204)으로 전송될 수 있다. 일부 구현예에서, 세션 데이터(228)는 컴퓨팅 시스템(202) 상의 메모리 디바이스(244) 내에 대신(또는 또한) 저장된다.
클립보드 히스토리 UI 생성기(206)는 클립보드 히스토리 UI(예를 들어, 클립보드 히스토리 UI(100))에서 렌더링하기 위한 콘텐츠 아이템을 생성할 수 있다. 클립보드 히스토리 UI 생성기(206)는 콘텐츠 아이템이 클립보드 히스토리 UI(100)에서 특정 연대순 내에서 정확하고 효율적으로 렌더링되도록 보장하기 위해 검색, 콘텐츠 아이템 분석, 브라우저 프로세스 개시, 및 기타 프로세싱 활동을 수행할 수 있다. 예를 들어, 생성기(206)는 특정 콘텐츠 아이템들이 일반 텍스트 포맷, 이미지 포맷, HTML(또는 다른 태깅/마크업 언어) 포맷 등으로 UI(100)에 묘사되는지 여부를 결정할 수 있다. 일부 구현예에서, 생성기(206)는 콘텐츠 아이템들에 대한 서식을 추가할 수 있다. 일부 구현예에서, 생성기(206)는 콘텐츠 아이템들로부터 서식을 제거할 수 있다.
예를 들어, 클립보드 히스토리 UI 생성기(206)는 특정 콘텐츠 아이템에 대한 잘라내기 또는 복사 또는 다운로드 작업을 사용자로부터 수신할 수 있다. 생성기(206)는 클립보드 히스토리 UI(100)와 연관된 버퍼(예를 들어, 다운로드 저장소(210) 또는 클립보드 저장소(212) 또는 다른 통신 가능하게 결합된 저장소)로부터 콘텐츠 아이템과 연관된 태깅 언어 정보를 검색하기 위해 콘텐츠 아이템으로 수행될 검색을 트리거할 수 있다. 생성기(206)는 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정할 수 있다. 예를 들어, 콘텐츠 아이템은 콘텐츠, 메타데이터 또는 태깅 언어를 나타내는 테이블 태그 또는 이미지 태그를 포함할 수 있는 다른 연관 데이터를 포함할 수 있다. 일부 구현예에서, 예를 들어 메타데이터가 아이콘 또는 사용자가 한눈에 콘텐츠 아이템을 식별하는데 사용할 수 있는 다른 식별 정보를 포함하는 경우 메타데이터는 UI(100)에서 콘텐츠 아이템으로서 생성될 수 있다.
생성기(206)는 검색 결과 및 콘텐츠 아이템 데이터 또는 관련 데이터를 사용하여 콘텐츠 아이템의 표현을 생성할 수 있다. 표현은 태깅 언어 콘텐츠 유형(테이블 유형, 이미지 유형 등과 같은)에 대응하거나 연관될 수 있으며, 태깅 언어 콘텐츠 유형은 각각의 태깅 언어 정보에 포함된 하나 이상의 태그에 기초하여 선택된다. 일 예에서, 생성기(206)는 콘텐츠 아이템이 무엇인지에 기초하여 콘텐츠 아이템의 일부를 확대할지 또는 클리핑할지 또는 크롭될지를 결정할 수 있다. 예를 들어, 콘텐츠 아이템이 스프레드시트인 경우, 생성기(206)는 사용자가 UI(100)에서 스프레드시트 크롭된 렌더링을 볼 때 콘텐츠 아이템이 무엇인지에 대한 아이디어를 사용자에게 제공하기 위해 제목, 열 또는 행에 속하는 스프레드시트의 일부를 크롭할 수 있다. 다른 예에서, 스프레드시트를 식별하는 방법으로 대신 스프레드시트의 다른 부분이 선택될 수 있다. UI(100)의 렌더링에서 콘텐츠 아이템을 표현하는 방법을 결정할 때, 생성기(206)는 렌더링된 클립보드 히스토리 UI(100)에서 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 콘텐츠 아이템 부분의 결정된 줌 또는 클립핑 또는 크롭핑을 수행할 수 있다. 부분의 줌 또는 클립핑 또는 크롭핑의 수행은 태깅 언어 정보가 특정 콘텐츠 아이템과 연관되고 적어도 하나의 테이블 태그 또는 적어도 하나의 브라우저 또는 이미지 태그를 포함한다는 결정에 응답하여 수행될 수 있다. 예를 들어, 스프레드시트가 HTML 또는 다른 태깅/마크업 언어 콘텐츠를 포함하는 온라인 스프레드시트인 경우, 생성기(206)는 테이블 태그를 검출할 수 있고 UI(100)에서 스프레드시트를 표현하는 방법이 테이블 태그와 연관된 정보의 일부를 크롭핑하는 것이라고 결정할 수 있다. 그런 다음 스프레드시트의 크롭 또는 일부를 나타내는 콘텐츠 아이템이 생성된다. 일부 구현예에서, 콘텐츠 아이템은 콘텐츠 유형 또는 콘텐츠 아이템 내의 콘텐츠와 상관없이 HTML 또는 다른 태깅 언어로서 UI(100)에서 렌더링되도록 구성될 수 있다.
클립보드 히스토리 UI 생성기(206)는 붙여넣기 작업이 렌더링된 콘텐츠 아이템을 사용하여 수행되는 경우 사용자가 보게 될 것을 시각적으로 확인하는 렌더링의 이점을 제공할 수 있다. 클립보드 히스토리 UI 생성기(206)는 사용자가 컴퓨팅 시스템(202)의 세션에 액세스함에 따라 클립보드 히스토리 UI(100)를 유지하도록 구성될 수 있다. 예를 들어, 생성기(206)는 도 2c와 관련하여 추가로 설명되는 바와 같이 O/S(216)에 의해 구현될 수 있으며, O/S(216)는 브라우저 프로세스(264)를 사용하여 클립보드 히스토리 UI(100)에서 렌더링된 콘텐츠 아이템들 및 각 개별 콘텐츠 아이템을 저장, 추적, 채우기 및 업데이트하도록 구성된 가상 디지털 클립보드를 생성 및 유지 관리할 수 있다.
콘텐츠 관리자(214)는 클립보드 히스토리 UI(100)에서 콘텐츠 아이템들을 관리하는 기능을 할 수 있다. 클립 제안 엔진(220)은 UI(100)로부터 양식, 문서 또는 애플리케이션에 어떤 콘텐츠 아이템을 붙여넣을 것인지에 대한 제안을 생성하고 제공하는 기능을 할 수 있다.
데이터 캡처 엔진(222)은 O/S 클립보드(104) 및 클립보드 히스토리 UI(100)를 통해 복사 및 붙여넣기 작업을 제공할 수 있다. 엔진(222)은 캡처된 콘텐츠 아이템들에 데이터를 저장하고 매핑할 수 있다.
UI 애니메이션 엔진/렌더러(224)는 액세스 모드, 사용 중인 애플리케이션에 따라 및/또는 사용자 권한(254) 및 선호 설정(256)에 기초하여 다양한 상태로 UI(100)를 제공하도록 구성될 수 있다. 예를 들어, UI 애니메이션 엔진/렌더러(224)는 콘텐츠를 렌더링하고, 애니메이션 콘텐츠를 렌더링하고 및/또는 컴퓨팅 시스템(202)에 대한 정보를 제시할 수 있다.
도 2a에 도시된 바와 같이, O/S(216)는 서비스(246), 통신 모듈(248), 카메라(250), 메모리(244) 및 CPU/GPU(252)를 포함하거나 이에 대한 액세스를 가질 수 있다. 컴퓨팅 시스템(202)은 정책 및 허가(254) 및 선호 설정(256)을 포함하거나 및/또는 그에 액세스할 수 있다. 추가로, 컴퓨팅 시스템(202)은 또한 입력 디바이스(258), 출력 디바이스(260)을 포함하거나 그에 액세스할 수 있다.
서비스(246)는 온라인 스토리지, 콘텐츠 아이템 액세스, 계정 세션 또는 프로필 액세스, 권한 데이터 액세스 등을 포함할 수 있다. 일부 구현예에서, 서비스(246)는 사용자 정보 및 계정(232)이 서비스를 통해 액세스되는 서버 컴퓨팅 시스템(204)을 대체하도록 기능할 수 있다. 유사하게, 클립보드 히스토리 UI(100)는 서비스(246)를 통해 액세스될 수 있다.
카메라(250)는 컴퓨팅 시스템(202)(또는 컴퓨팅 시스템(202)과 통신하는 다른 디바이스)에 의해 수행된 카메라 캡처와 연관된 백그라운드 데이터의 변화를 검출할 수 있는 하나 이상의 이미지 센서들(미도시)을 포함할 수 있다. 카메라(250)는 후면 촬영 모드와 전면 촬영 모드를 포함할 수 있다.
컴퓨팅 시스템(202)은 특정 정책 및 허가(254) 및 선호 설정(256)을 생성 및/또는 분산할 수 있다. 정책 및 허가(254) 및 선호 설정(256)은 컴퓨팅 시스템(202)의 디바이스 제조사 및/또는 사용자 액세스 시스템(202)에 의해 구성될 수 있다. 정책(254) 및 선호 설정(256)은 오디오 명령, 시각적 명령, 일정 기반 명령, 또는 기타 구성 가능한 명령에 기초하여 트리거하는 루틴(즉, 작업 세트)을 포함할 수 있다. 예를 들어, 사용자는 특정 시간에 디스플레이되도록 특정 UI를 설정할 수 있고 이에 응답하여 시스템(202)은 구성된 시간에 UI를 디스플레이할 수 있다. 다른 정책(254) 및 선호 설정(256)은 물론 정책 및 허가(254) 및/또는 선호 설정(256)으로 구성된 시스템(202)과 연관된 콘텐츠를 수정 및/또는 제어하도록 구성될 수 있다.
입력 디바이스(258)는 예를 들어 촉각적 사용자 입력을 수신할 수 있는 터치 입력 디바이스, 키보드, 마우스, 핸드 컨트롤러, 모바일 디바이스(또는 다른 휴대용 전자 디바이스), 청각적 사용자 입력을 수신할 수 있는 마이크로폰 등을 통해 수신된 데이터를 시스템(202)에 제공할 수 있다. 출력 디바이스(260)는 예를 들면, 시각적 출력을 위한 디스플레이, 오디오 출력을 위한 스피커 등을 위한 콘텐츠를 생성하는 디바이스들을 포함할 수 있다.
일부 구현예에서, 컴퓨팅 시스템(202)은 저장소에 특정 애플리케이션 및/또는 O/S 데이터를 저장할 수 있다. 예를 들어, 다운로드는 시스템(202)의 사용자로부터 잘라내기, 클립핑 또는 복사 작업을 수신하면 다운로드 저장소(210)에 저장될 수 있다. 마찬가지로, 시스템(202)의 사용자로부터 잘라내기, 클립핑 또는 복사 작업을 수신하면 스크린샷 및 클립핑된 콘텐츠 아이템들이 클립보드 저장소(212)에 저장될 수 있다.
서버 컴퓨팅 시스템(204)은 다수의 상이한 디바이스들, 예를 들어 표준 서버, 그러한 서버들의 그룹, 또는 랙 서버 시스템의 형태를 취하는 임의의 컴퓨팅 디바이스들을 포함할 수 있다. 일부 예에서, 서버 컴퓨팅 시스템(204)은 프로세서(262) 및 메모리(242)와 같은 컴포넌트를 공유하는 단일 시스템일 수 있다. 사용자 계정(232)은 시스템(204)과 연관될 수 있고, 세션(230) 구성 및/또는 사용자 권한 데이터(236)에 따른 프로필(234) 구성은 예를 들어 사용자 계정(232)의 사용자 요청시 시스템(202)에 제공될 수 있다.
네트워크(240)는 근거리 통신망(LAN), 광역 통신망(WAN), 셀룰러 네트워크, 위성 네트워크 또는 다른 유형의 데이터 네트워크와 같은 인터넷 및/또는 다른 유형의 데이터 네트워크를 포함할 수 있다. 네트워크(240)는 또한 네트워크(240) 내에서 데이터를 수신 및/또는 전송하도록 구성된 임의의 수의 컴퓨팅 디바이스(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크(240)는 임의의 수의 고정 배선 및/또는 무선 연결을 더 포함할 수 있다.
서버 컴퓨팅 시스템(204)은 기판에 형성된 하나 이상의 프로세서(262), 운영 체제(미도시) 및 하나 이상의 메모리 디바이스(242)를 포함할 수 있다. 메모리 디바이스(242)는 임의의 종류(또는 다수의 종류)의 메모리(예를 들어, RAM, 플래시, 캐시, 디스크, 테이프 등)를 나타낼 수 있다. 일부 예에서(미도시), 메모리 디바이스(242)는 외부 저장소, 예를 들어 물리적으로 원격이지만 서버 컴퓨팅 시스템(204)에 의해 액세스 가능한 메모리를 포함할 수 있다. 서버 컴퓨팅 시스템(204)은 특별히 프로그래밍된 소프트웨어를 나타내는 하나 이상의 모듈 또는 엔진을 포함할 수 있다.
일반적으로, 컴퓨팅 디바이스(202 및 204)는 예를 들어, 본 명세서에 기술된 기법 및 시스템을 사용하여 서로 통신 모듈(248)을 통해 통신할 수 있고 및/또는 네트워크(240)를 통해 무선으로 데이터를 전송할 수 있다. 일부 구현예에서, 각 시스템(200)은 시스템(200)과 연관된 다른 디바이스와 통신하도록 시스템(200)에서 구성될 수 있다.
도 2b에 도시된 바와 같이, O/S(216)는 클립보드 히스토리 UI(100) 및 추가 애플리케이션(218)을 포함한다. 예를 들어, 애플리케이션(218)은 또한 브라우저 애플리케이션(227)을 포함할 수 있다. 브라우저 애플리케이션(227)은 인터넷 상의 정보에 액세스하도록 구성된 웹 브라우저를 나타낸다. 브라우저 애플리케이션(227)은 하나 이상의 브라우저 프로세스(264)를 런칭하여 브라우저 콘텐츠 또는 다른 브라우저 기반 동작을 생성할 수 있다. 브라우저 애플리케이션(227)은 또한 하나 이상의 브라우저 윈도우(268)와 관련하여 브라우저 탭(266)을 런칭할 수 있다. 애플리케이션들(218)은 웹 애플리케이션들(270)을 포함할 수 있다. 웹 애플리케이션(270)은 원격 서버(예를 들어, 웹 서버)에 저장되고 예를 들어 브라우저 탭(266)을 통해 네트워크(240)를 통해 전달되는 애플리케이션 프로그램을 나타낸다. 일부 구현예에서, 웹 애플리케이션(270)은 디바이스에 저장되고 오프라인에서 사용될 수 있는 프로그레시브 웹 애플리케이션이다. 애플리케이션들(218)은 또한 컴퓨팅 시스템(202)에 적어도 부분적으로 저장된(예를 들어, 로컬에 저장된) 프로그램일 수 있는 웹이 아닌 애플리케이션을 포함할 수 있다. 일부 예에서 웹이 아닌 애플리케이션은 O/S(216)에 의해 실행 가능(또는 그 위에서 실행)될 수 있다.
애플리케이션들(218)은 네이티브 애플리케이션들(272)을 더 포함할 수 있다. 네이티브 애플리케이션(272)은 특정 플랫폼 또는 디바이스에서 사용하기 위해 개발된 소프트웨어 프로그램을 나타낸다. 일부 예에서, 네이티브 애플리케이션(272)은 다수의 플랫폼 또는 디바이스용으로 개발된 소프트웨어 프로그램이다. 일부 예에서, 네이티브 애플리케이션(272)은 모바일 플랫폼에서 사용하기 위해 개발되고 또한 데스크톱 또는 랩톱 컴퓨터에서 실행되도록 구성된 소프트웨어 프로그램이다.
애플리케이션(218)은 O/S 클립보드 애플리케이션(104)과 같은 클립보드 애플리케이션을 더 포함할 수 있다. 클립보드 애플리케이션(104)은 사용자 세션(230) 동안 수신된 가장 최근의 캡처, 잘라내기 또는 복사 작업에 기초하여 가장 최근 아이템(106)을 저장하도록 구성될 수 있다.
애플리케이션(218)은 사용자가 데이터를 클립보드에 복사하고 및/또는 클립보드 데이터를 메모리에 저장할 수 있게 하는 복사/잘라내기 작업을 지원하도록 구성될 수 있다. 클립보드 데이터는 O/S 클립보드(104)와 관련될 수 있다. 또한, 애플리케이션(218)은 이력적으로 복사된 여러 콘텐츠 아이템이 저장되고 검색될 수 있게 하는 클립보드 히스토리 UI(100)에 데이터를 복사하도록 구성될 수 있다. 도 2에는 도시되어 있지 않았지만, 컴퓨팅 시스템(202)은 네트워크 또는 다른 원격 저장 디바이스를 통해 액세스 가능한 클립보드 히스토리 UI에 콘텐츠 아이템을 저장하도록 구성될 수 있다.
일반적으로, 애플리케이션(218)은 애플리케이션(218) 내에서 텍스트, HTML, 이미지, 객체, 표 또는 기타 선택 가능한 콘텐츠 아이템의 선택을 지원하도록 구성될 수 있다. 선택된 데이터는 필드, 문서, 인쇄물, 예술 등에서 데이터를 생성하는데 사용할 수 있다. 또한, 선택된 데이터는 검색 용어 및/또는 하이퍼링크 콘텐츠, 텍스트 콘텐츠 또는 기타 형식 콘텐츠를 생성하는데 사용되는 주소를 생성하는데 사용될 수 있다.
도 2c에 도시된 바와 같이, 클립보드 히스토리 UI(100)는 클립보드 히스토리 UI 생성기(206)에 의해 채워질 수 있다. 생성기(206)는 O/S(216)에 의해 구현될 수 있으며, O/S(216)는 단일 브라우저 프로세스(264)를 사용하여 클립보드 히스토리 UI(100)에서 렌더링된 콘텐츠 아이템들 및 각 개별 콘텐츠 아이템을 저장, 추적, 채우기 및 업데이트하도록 구성된 가상 디지털 클립보드(264)를 생성 및 유지 관리할 수 있다. 일부 구현예에서, O/S(216)는 대신 애플리케이션 프로세스(미도시) 또는 다른 프로세싱 스레드를 활용하여 콘텐츠 아이템들 및 클립보드 히스토리 UI(100)에서 렌더링된 각 개별 콘텐츠 아이템을 저장, 추적, 채우기, 업데이트 및 표현하도록 구성된 가상 디지털 클립보드(274)를 생성 및 유지할 수 있다. 클립보드 히스토리 UI 생성기(206)는 예를 들어 O/S 클립보드(104)를 활용하여 복사 또는 다운로드된 콘텐츠 아이템들을 검색하고 이러한 콘텐츠를 가상 디지털 클립보드에 나타낼 수 있다. 이러한 방식으로, 본 접근 방식은 키보드 단축키와 같은 기존 O/S 기능과 태깅 언어 콘텐츠 및/또는 다중 복사 및 다중 붙여넣기 작업의 렌더링 통합을 용이하게 할 수 있다.
이 예에서, 사용자는 다운로드한 mp3를 나타내는 콘텐츠 아이템(276), 링크를 나타내는 콘텐츠 아이템(278), 이미지를 나타내는 콘텐츠 아이템(280), 링크 콘텐츠 아이템(282)을 나타내는 콘텐츠 아이템(282) 및 이미지를 나타내는 콘텐츠 아이템(284)을 복사했다.
가상 디지털 클립보드(274)는 복사, 잘라내기 또는 다운로드한 콘텐츠의 복사본을 저장할 수 있다. O/S(216)는 클립보드 히스토리 UI 생성기(206)를 사용하여 콘텐츠 아이템들(276-284)의 사용자 인식 및 용이한 사용을 허용하기 위해 클립보드 히스토리 UI(100)에서 이러한 콘텐츠 아이템을 렌더링하는 방법을 결정할 수 있다. 또한, 복사, 잘라내기 또는 다운로드된 추가 콘텐츠를 수신하면 다른 콘텐츠 아이템들(286, 288) 또는 추가 콘텐츠 아이템들이 저장될 수 있다.
생성기(206)는 각각의 콘텐츠 아이템과 연관된 각각의 후속적으로 검출된 복사 작업 또는 잘라내기 작업 또는 다운로드 작업에 대해, 상기 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하고, 상기 검색은 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정하도록 구성되며 (즉, 검색은 콘텐츠 유형을 결정하도록 구성되며, 콘텐츠 유형은 콘텐츠 아이템과 연관된 데이터에 포함된 하나 이상의 태그에 기초하여 또는 임의의 다른 적절한 방식으로 결정될 수 있음), 상기 검색에 기초하여 상기 각각의 콘텐츠 아이템의 각각의 표현을 생성하고, 그리고 상기 각각의 표현에 따라 렌더링된 각각의 콘텐츠 아이템으로 클립보드 히스토리 UI(100)의 렌더링을 트리거할 수 있다. 대안적으로, 렌더링의 트리거링은 각각의 후속 검출 작업 후에 발생할 수 있다. 예를 들어, 테이블 태그 또는 이미지 태그가 검색에서 발견되면, HTML 유사 콘텐츠가 생성되어 UI(100)의 특정 콘텐츠 아이템을 나타내도록 렌더링될 수 있다. 이러한 태그가 검색에서 발견되지 않으면 일반 텍스트 또는 정확히 복사된 텍스트가 UI(100)의 특정 콘텐츠 아이템으로 렌더링될 수 있다.
도 2c에서, 콘텐츠 아이템(276)은 아이템(276)의 유형 및/또는 콘텐츠를 결정하기 위해 HTML(또는 다른 태깅 언어 콘텐츠)에 대해 검색될 수 있는 다운로드된 mp3 파일이다. 이 예에서, 생성기(206)는 mp3 확장자가 오디오 파일을 나타낸다고 결정할 수 있고 추후 선택을 위해 UI(100)에서 오디오 파일 콘텐츠 아이템(290)을 생성할 수 있다. 이 예에서, 생성기(206)는 콘텐츠 아이템(290)에 도시된 바와 같이 악보의 이미지를 생성했을 수 있다.
유사하게, 생성기(206)는 아이템이 특정 웹사이트에서의 구매에 대한 URL 링크를 포함하는지 결정하기 위해 콘텐츠 아이템(278)을 평가 및/또는 검색할 수 있다. 그런 다음 생성기(206)는 구매가 이루어질 수 있기 때문에 링크 자체가 사용자가 나중에 예를 들어 구매를 위해 브라우저를 선택하고 입력하는데 유용한 표현이 될 수 있다고 결정할 수 있다. 따라서, 생성기(206)는 복사된 콘텐츠 아이템(278)을 나타내는 URL을 생성할 수 있다.
생성기(206)는 또한 콘텐츠 아이템(280)을 분석하여 이미지가 표현되는지 결정할 수 있다. 상기 이미지는 표준 이미지일 수도 있고, 이미지로 표현되는 링크일 수도 있다. 이 예에서, 생성기(206)는 콘텐츠 아이템(280)이 UI(100)에서 실제 스니핑, 클립핑, 복사 등의 이미지를 제공함으로써 사용자에게 잘 표현될 수 있다고 결정할 수 있다.
생성기(206)는 콘텐츠 아이템(282)을 분석하여 이미지 및 관련 콘텐츠와의 링크가 표현되는지를 결정할 수 있다. 생성기(206)는 콘텐츠 아이템(296)에 의해 도시된 바와 같이 이미지 자체의 스닙(snip) 대신 기사의 링크 및 제목을 포함하는 이미지를 제공함으로써 콘텐츠 아이템(282)이 사용자에게 잘 표현될 수 있다고 결정할 수 있다.
생성기(206)는 콘텐츠 아이템(284)을 분석하여 이미지가 표현되지만 다른 세부 사항은 이미지와 함께 표시되거나 사용가능하지 않다는 것을 결정할 수 있다. 생성기(206)는 콘텐츠 아이템(284)이 콘텐츠 아이템(298)에 의해 도시된 바와 같이 간단한 선택 가능한 이미지로서 사용자에게 잘 표현되었다고 결정할 수 있다.
동작시, 가상 디지털 클립보드(274)는 클립보드(274)를 생성하지만 언제든지 클립보드(274)를 렌더링하지 않는 렌더러 프로세스를 나타낸다. 가상 디지털 클립보드(274)는 적절한 시간에 클립보드 히스토리 UI(100)를 채우기 위해 사용될 수 있는 브라우저 프로세스(264)에서 실행되는 큐로서 기능한다. 가상 디지털 클립보드(274)는 클립보드(274)가 콘텐츠 아이템들이 UI(100)에 제시될 때마다 O/S(216)에 의해 유지되고 재사용되는 단일 브라우저 프로세스(예를 들어, 단일 스레드)에 의존하기 때문에 UI(100) 콘텐츠 아이템을 렌더링할 때 렌더링 시간을 절약하는 이점을 제공한다. 클립보드(274)를 생성하기 위해 단일 브라우저 프로세스를 재사용함으로써, 각각의 콘텐츠 아이템에 대해 새로운 브라우저 프로세스를 시작하는 것과 비교하여 전체 런타임 및 시스템 메모리가 감소될 수 있다. 클립보드(274)는 사용자가 O/S의 사용자 세션 내에서 작업하는 동안 백그라운드(즉, 보이지 않음)에서 유지되고 생성될 수 있다. 예를 들어, 클립보드(274)는 나중에 UI(100)의 콘텐츠 아이템으로서 콘텐츠를 생성하고 렌더링하기 위해 O/S 클립보드(104)에서 캡처된 콘텐츠를 추적하고 매핑할 수 있다. 클립보드 히스토리 UI(100)(즉, 멀티 아이템 작업을 지원하도록 구성됨)가 트리거될 때마다, 브라우저 프로세스(264)를 통해 O/S(216)는 클립보드(274)로부터 콘텐츠 아이템을 렌더링하도록 UI(100)를 트리거할 수 있다. UI(100)에서 렌더링된 콘텐츠 아이템은 표준 붙여넣기 작업(예를 들어, Control-v) 또는 디스플레이/렌더링된 UI(100)에서의 선택이 UI(100) 내에서 특정 아이템의 붙여넣기를 트리거할 수 있음을 보장하기 위해 클립보드(274)를 사용하여 추적될 수 있다. 종래의 시스템은 가장 최근의 콘텐츠 아이템(106)의 복사 및 붙여넣기를 허용하고, 사용자가 가장 최근의 콘텐츠 아이템(106)을 새로운 콘텐츠 아이템으로 교체하지 않는 한 붙여넣을 추가 아이템을 제공하지 않는다. 그러나 가장 최근의 콘텐츠 아이템(106)은 클립보드(104)에서 제거되면 더 이상 선택하거나 붙여넣을 수 없다. 또한, 종래의 시스템은 다수의 콘텐츠 아이템을 복사 및 붙여넣기 위해 다수의 브라우저 프로세스(264)를 사용해야 할 수 있다. 예를 들어, 기존 시스템이 HTML 콘텐츠 아이템을 렌더링하도록 요청될 때마다 새로운 브라우저 프로세스(264)가 트리거되고 추가 메모리 및 프로세싱 리소스가 사용된다. 따라서 시스템 리소스는 여기에 설명된 접근 방식으로 보다 효율적으로 사용될 수 있다.
동작시, 가상 디지털 클립보드(274)는 브라우저 프로세스(264)를 사용하여 백그라운드에서 플레이스홀더 이미지를 생성할 수 있으며, 여기서 플레이스홀더 이미지는 표시되거나 렌더링되지 않는다. 예를 들어, 브라우저 프로세스(264)는 가상 디지털 클립보드(274)를 나타내는(그러나 사용자에게 디스플레이되지 않음) 렌더링된 복사 표면을 생성하기 위해 계속해서 사용될 수 있다. 가상 디지털 클립보드(274)의 각각의 이미지는 분석되어 UI(100)에 대한 실제 렌더링된 콘텐츠 아이템을 생성하는데 사용될 수 있다. 따라서 시스템 리소스를 보다 효율적으로 사용할 수 있다. 또한, 렌더링된 복사 표면을 백그라운드에 유지함으로써, 트리거(예: 사용자 입력)에 응답하여 UI(100)를 디스플레이하거나 제공(렌더링)하는 지연 시간도 감소될 수 있다. 콘텐츠가 HTML(또는 다른 태깅/마크업 언어) 콘텐츠가 아닌 경우, 가상 디지털 클립보드(274)는 사용되지 않을 수 있는데, 표준 비정형 텍스트가 클립보드(274)에 의해 활용되는 추가 분석 없이 UI(100)에서 렌더링을 위해 대신 생성될 수 있기 때문이다.
일부 구현예에서, 클립보드(274)는 사용자 붙여넣기 작업을 수신할 때 UI(100)를 채우기(예를 들어, 채우기) 위해 저장될 수 있다. 일부 구현예에서, 사용자가 클립보드 히스토리 UI(100)로부터 제1 아이템을 선택하면, O/S(216)는 붙여넣기 작업을 보내서 UI(100)의 제1 아이템을 사용하여 커서에서 또는 커서 근처에서 채워지는 커서의 포커스에 있는 애플리케이션 또는 문서에 제1 아이템을 붙여넣을 수 있다. 대신 사용자가 UI(100)에서 제2 아이템을 선택하면, 시스템(200)은 표준 붙여넣기 작업이 UI(100)의 제2 아이템과 기능하도록 허용하기 위해 가상 디지털 클립보드(274)의 제2 아이템과 제1 아이템을 핫스왑할 수 있다. 마찬가지로, 목록의 추가 콘텐츠 아이템은 클립보드(274)를 통해 제1 아이템과 핫스왑되어 동일한 바로가기 붙여넣기 작업이 UI(100)의 모든 콘텐츠 아이템과 함께 작동하도록 할 수 있다.
가상 디지털 클립보드(274)는 타임아웃 설정에 도달할 때까지 단일 브라우저 프로세스(264)가 활성 상태로 유지되는 타임아웃 설정으로 동작할 수 있다. 타임아웃 세션의 예는 5분에서 10분 또는 기타 사용자가 구성할 수 있는 시간표일 수 있다.
동작시, 시스템(200)은 클립보드 히스토리 UI(100)를 생성할 수 있다. 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업을 검출하는 것에 응답하여, 시스템(200)은 콘텐츠 아이템과 연관된 데이터의 검색을 트리거할 수 있다. 검색은 콘텐츠 유형을 결정하도록 구성될 수 있다. 시스템(200)은 검색에 기초하여 콘텐츠 아이템의 표현을 추가로 생성하고, 표현에 따라 클립보드 히스토리 UI에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 UI(100)의 렌더링을 트리거할 수 있다. 시스템은 클립보드 히스토리 UI에 렌더링된 다른 콘텐츠 아이템들과 함께 콘텐츠 아이템을 렌더링할 수 있다. 콘텐츠 아이템 및 기타 콘텐츠 아이템들은 해당 복사 작업 또는 잘라내기 작업에 따라 클립보드 히스토리 UI에 순차적으로 채워진다.
도 3은 여기에 설명된 구현에 따라 클립보드 히스토리 UI를 사용하기 위한 UI 표시기(302)를 도시하는 스크린샷(300)이다. 예를 들어, 사용자는 여행 웹사이트에 정보를 입력할 수 있다. O/S(216)는 예를 들어 사용자가 동일한 사용자 세션 동안 콘텐츠 아이템을 복사하거나 잘라냄을 검출함에 응답하여 다수의 복사된 콘텐츠 아이템들에 대한 클립보드 히스토리 UI의 가용성을 사용자에게 알리기 위해 UI 표시기(302)(예를 들어, 넛지, 팁, 도움말 팝업 등)를 생성할 수 있다. 복사된 또는 잘라낸 콘텐츠 아이템들은 클립보드 히스토리 UI(304)와 같은 클립보드 히스토리를 위해 캡처될 수 있다.
UI 표시기(302)는 사용자가 보고 선택/붙여넣을 수 있는 표시를 포함할 수 있고, 예를 들어 다수의 복사된 콘텐츠 아이템들 중 임의의 것은 클립보드 히스토리 UI(304)로부터 사용하기 위해 런칭될 수 있다. 일부 구현예에서, UI 표시기(302)는 사용자가 동일한 정보로 자주 중단되지 않도록 보장하기 위해 시간 기간에 기초하여 제공될 수 있다. 예를 들어, UI 표시기(302)는 사용자가 미리 결정된 시간 기간 내에 복사, 잘라내기, 붙여넣기 작업을 1회 이상 수행한 경우 제공될 수 있다. 예를 들어, 시스템(200)은 예를 들어 3분 내지 10분의 기간 내에 2개 내지 5개의 작업이 수신되는 경우 UI 표시기(302)를 제공할 수 있다. 일부 구현예에서, 이러한 표시기는 24시간 기간 내에 최대 횟수로 트리거될 수 있다.
일부 구현예에서, UI 표시기(302)는 작업 패턴이 수신될 때 트리거될 수 있다. 예를 들어, O/S(216)는 단일 사본을 검출하고 표시기(302)를 제시할 수 있다. 다른 예에서, O/S(216)는 표시기(302)를 제시하기 전에 복사 작업(또는 잘라내기 작업) 및 붙여넣기 작업을 검출하도록 구성될 수 있다. 다른 패턴도 가능하며 O/S(216)으로 구성할 수 있다.
UI 표시기(302)가 제시되면, 사용자는 클립보드 히스토리 UI(304)를 런칭하기 위해 표시기(302)를 선택할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(304)는 O/S(116)가 구성된 작업(예를 들어, 명령) 패턴을 검출하는 것에 응답하여 자동으로 런칭될 수 있다. 이 예에서, 사용자는 클립보드 히스토리 UI(304)를 런칭하기 위해 UI 표시기(302)를 선택했다. 여기에 도시된 바와 같이, UI(304)는 사용자의 ID, 계정 정보 및 최근에 다운로드한 문서를 나타내는 친구의 여정 시간 문서를 포함한다. UI(304)의 이러한 정보는 예를 들어 스크린샷(300)에 도시된 웹사이트를 묘사하는 컴퓨팅 시스템으로 사용자가 수행한 이전 인터렉션으로부터 최근에 복사, 붙여넣기, 다운로드 또는 저장되었을 수 있다.
전체 클립보드 히스토리 UI(100)에 대한 대안적인 구현예에서, 시스템(200)은 UI(100)의 디스플레이 또는 제공(렌더링)을 트리거하지 않고 제안 및 제안 선택에 대한 액세스를 제공하기 위해 UI(100)의 일부를 생성 및 제공할 수 있다. UI(100)의 이러한 부분은 자동 채우기와 유사하게 기능하도록 구성될 수 있지만, 정보는 웹 페이지 또는 문서에 입력된 이전 데이터가 아닌 클립보드 히스토리로부터 검색된다. 예를 들어, 전체 UI(304)를 제공하는 대신에, 시스템(200)은 예를 들어 전체 UI(304)의 저장된 버전으로부터 사용자 ID를 제안하는 부분 클립보드 히스토리 UI(306)를 제공할 수 있다.
도 4는 본 명세서에 기술된 구현예에 따라 애플리케이션 내에 남아 있는 동안 클립보드 히스토리 UI에 여러 콘텐츠 아이템들을 복사하는 것을 도시하는 스크린샷(400)이다. 이 예에서 사용자는 다른 사용자 그룹과 함께 여행을 계획할 수 있다. 사용자는 온라인 문서에서 공유 여정 문서를 생성할 수 있다. 하나 이상의 사용자는 다중 복사 작업을 수행하여 여행 문서에 남아 여러 콘텐츠 아이템들을 단순히 클립핑(예를 들어, 복사, 자르기)하기 위해 선택하는 동안 클립보드 히스토리 UI(예: 클립보드 히스토리 UI(100)과 유사하나 상이한 콘텐츠 아이템들을 가짐)에 대한 콘텐츠를 생성한다. 이러한 콘텐츠 아이템들은 클립보드 히스토리 UI를 채울 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(110)는 복사 작업이 발생하는 동안 디스플레이되지 않을 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(100)는 도킹, 플로팅, 커서에 부착, 문서에 부착, 메뉴에서 사용 가능, 또는 사용자가 콘텐츠 아이템들을 클립핑하는 애플리케이션의 포커스 이동 없이 클리핑하는 동안 사용자가 콘텐츠 아이템들을 볼 수 있게 하기 위한 비-방해적 방식으로 도시된다.
콘텐츠를 클립보드 히스토리 UI(100)에 클립핑할 때, 사용자는 여정을 캘린더 애플리케이션의 개별 이벤트로 전송하기를 원할 수 있다. 이를 위해 클립보드 히스토리 UI(100)가 사용될 수 있다. 예를 들어, 시스템(200)은 사용자가 콘텐츠 아이템들을 복사, 잘라내기, 붙여넣기 등을 함에 따라 클립보드 히스토리 UI(100)를 생성할 수 있다. 사용자는 클립보드 히스토리 UI(100)를 사용하여 제1 애플리케이션(예: 앱, 온라인 문서, 웹페이지 등)에서 제2 애플리케이션(예: 캘린더 애플리케이션)으로 다수의 콘텐츠를 복사하여 붙여넣을 수 있다. 예를 들어, O/S(216)는 클립보드 히스토리 UI(100)를 열기 위해 제2 애플리케이션의 입력 필드를 클릭하고(예를 들어, 키보드 단축키, 컨텍스트 메뉴 또는 UI 표시기를 사용하여) 클립보드 히스토리 UI로부터 복사된 콘텐츠 아이템을 제2 애플리케이션에 붙여넣음으로써 사용자가 제1 애플리케이션으로부터 제2 애플리케이션으로 전송될 다수의 콘텐츠 아이템들을 연속적으로 복사하게 할 수 있다. 따라서 사용자는 시트 또는 문서의 각 셀에서 한 번에 하나씩 콘텐츠 아이템을 복사하고 캘린더의 입력에 각 콘텐츠 아이템을 별도 작업으로 붙여넣어야 하는 기존 시스템과 달리 복사/붙여넣기 작업의 수를 최소화한다. 클립보드 히스토리 UI(100)는 사용자가 사용자의 애플리케이션(예를 들어, 여정 문서)의 컨텍스트 내에 머물 수 있게 하고, 제2 애플리케이션(예를 들어, 캘린더 애플리케이션)에서 나중에 채우기 위해 모든 콘텐츠 아이템을 복사할 수 있도록 구성될 수 있다.
도 4에 도시된 바와 같이, 사용자는 여행 웹사이트에서 클립보드 히스토리 UI(100)에 커서 포커스를 변경하지 않고 콘텐츠 아이템(402-410)을 렌더링하기 위한 클립보드 히스토리 UI(100)를 생성하는 여러 콘텐츠 아이템들(예를 들어, 콘텐츠 아이템(402), 콘텐츠 아이템(404), 콘텐츠 아이템(406), 콘텐츠 아이템(408) 및 콘텐츠 아이템(410))을 선택한다. 여기서, 사용자는 복사 작업(412)(예를 들어, 선택, 클릭, 키보드 단축키)을 수행하여 클립보드 히스토리 UI(100) 채우기를 시작할 수 있다. 콘텐츠 아이템(402-410) 및/또는 임의의 다른 콘텐츠 아이템을 선택한 후, 사용자는 도 5에 설명된 바와 같이 다른 애플리케이션에서 콘텐츠 아이템을 사용하기를 원할 수 있다.
도 5는 본 명세서에 기술된 구현예에 따라 애플리케이션 내의 클립보드 히스토리 UI의 제공 및 사용을 도시하는 예시적 스크린샷(500)이다. 이 예에서, 사용자는 사용자가 제1 애플리케이션으로부터 복사한 임의 개수의 아이템들을 포함하는 클립보드 히스토리 UI(502)를 생성했을 수 있다. 여기에서 사용자는 캘린더(즉, 제2) 애플리케이션에 콘텐츠를 추가하기 시작할 수 있다. 예를 들어, 사용자는 입력 필드(504)에서 클립보드 히스토리 UI(502)의 렌더링을 트리거하기 위해 커서에 의해 도시된 바와 같이 입력 필드(504)를 클릭할 수 있다. UI(502)는 사용자가 입력 필드(504)에 이전에 복사 또는 다운로드한 콘텐츠 아이템(또는 관련 데이터)을 선택할 수 있는 옵션을 제공한다. 이 예에서 사용자는 항공사 및 항공편 번호 텍스트 콘텐츠 아이템(506)을 선택하여 텍스트 콘텐츠 아이템을 입력 필드(504)에 붙여넣는다. 이 예에서 콘텐츠 아이템은 텍스트 콘텐츠 유형으로 생성된다. 일정 아이템의 제목이 붙여넣어지기 전 어느 시점에 사용자는 노트 섹션(508)의 UI(502)로부터 다른 콘텐츠 아이템을 선택했을 수 있다.
일반적으로, O/S(216)는 클립보드 히스토리 UI(502)를 활성 입력 필드 내의 특정 위치(예를 들어, 위, 아래, 오른쪽 또는 왼쪽) 또는 컨텍스트 메뉴(미도시)의 적절한 옵션 근처에 배치할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(502)는 컨텍스트 메뉴에 배치된다. UI(502)의 배치(또는 렌더링 상태)에 관계없이, 사용자는 콘텐츠를 UI(502)에 계속 복사할 수 있다.
도 6은 본 명세서에 기술된 구현예에 따라 애플리케이션 내의 클립보드 히스토리 UI(502)의 제공 및 사용을 도시하는 또 다른 예시적 스크린샷(600이다. UI(502)는 클립보드에 놓을 다수의 아이템을 선택한 사용자에 의해 이전에 생성된다. 사용자는 UI(502)로부터 스크린샷(600)의 캘린더 애플리케이션으로 콘텐츠를 계속 붙여넣고 있을 수 있다.
예를 들어, 사용자는 UI(502)에서 시간(602)을 선택할 수 있다. 시간(602)은 이전에 액세스된 애플리케이션(예를 들어, 도 4)에서 항공편으로부터 이전에 복사된 것을 나타낼 수 있다. 시간(602)을 선택하면 입력 필드(604)가 선택된 시간으로 설정된다. 클립보드 히스토리 UI(502)를 사용하여 캘린더 애플리케이션 전체에서 유사한 선택 및 붙여넣기가 수행될 수 있다.
일반적으로, 클립보드 히스토리 UI(502)는 사용자가 윈도우들 사이에서 커서를 다시 포커싱할 필요없이 캘린더 애플리케이션의 입력을 채울 수 있도록 뷰에서 제거될 수 있고 및/또는 입력 커서의 포커스가 아닐 수 있는 드롭다운 메뉴 또는 다른 플로팅 또는 임시 메뉴로서 제공될 수 있다. UI(502)에 표시된 콘텐츠 아이템이 별도의 플로팅 아이템으로 표시되는 경우, 특정 입력 필드에 포커싱할 때 각 아이템을 선택되어, 애플리케이션에서 입력 필드로 커서 포커스를 떼지 않고 입력 필드에서 선택된 콘텐츠 아이템을 붙여넣을 수 있다.
도 7은 본 명세서에 기술된 구현예에 따라 활성 입력 필드와 함께 클립보드의 제공 및 사용을 도시하는 예시적 스크린샷(700)이다. 예를 들어, 사용자는 여행 웹사이트에 정보를 입력할 수 있다. 사용자가 입력 필드(702)와 같은 입력 필드에 커서를 놓는 것에 응답하여, O/S(216)는 클립보드 히스토리 UI(704)를 생성 및 렌더링하여 다수의 복사된 콘텐츠 아이템에 대한 클립보드 히스토리 UI의 사용 가능성을 사용자에게 알릴 수 있다.
이 예에서, O/S(216)는 입력 필드(702)와 같은 입력 필드에서 커서를 검출할 수 있다. 그러면 O/S(216)는 상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스(704)의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정한다. 예를 들어, O/S(216)는 사용자가 이전에 사용자 ID(706)를 복사했다고 결정할 수 있고, 입력 필드(702)로의 입력으로서 제안을 위해 표시된 적어도 하나의 콘텐츠 아이템(예를 들어, 사용자 ID(706))을 갖는 입력 필드(702)에 인접한 UI 엘리먼트(예를 들어, 메뉴, 컨텍스트 메뉴, 목록, 액션 아이템, 컨트롤 등)로서 클립보드 히스토리 UI(704)의 렌더링을 트리거할 수 있다. 예를 들어, 클립보드 제안 엔진(220)은 스크린샷(700)에서 UI(704) 및 애플리케이션을 평가하여 제안을 생성할 수 있다. 사용자가 제안된 콘텐츠 아이템(706)을 선택하면, 시스템(200)은 선택된 아이템(706)으로 입력 필드(702)를 채울 수 있다. 사용자가 UI(704)에서 다른 콘텐츠 아이템을 선택하면, 시스템(200)은 선택된 다른 콘텐츠 아이템으로 입력 필드(702)를 채울 수 있다. 사용자가 UI(704)로부터 어떠한 콘텐츠 아이템도 사용하기를 원하지 않는다면, UI(704)는 커서 포커싱 또는 재포커싱 액션을 유발하지 않고 천천히 사라질 수 있다. 이 예는 콘텐츠 아이템(706)과 같은 텍스트 콘텐츠 유형을 사용하여 생성된 콘텐츠 아이템과 태깅 언어 콘텐츠 유형을 사용하여 생성된 콘텐츠 아이템을 보여준다.
도 8은 본 명세서에 기술된 구현예에 따라 가상 키보드 내에서 클립보드 히스토리 UI의 제공 및 사용을 도시하는 다른 예시적 스크린샷(800)이다. 이 예에서, 사용자는 가상 또는 소프트 키보드가 사용 중인 모바일 디바이스에서 클립보드 UI(802)에 액세스할 수 있다. 사용자는 임의의 수의 이전에 액세스한 애플리케이션으로부터 현재 애플리케이션에 콘텐츠 아이템(804), 콘텐츠 아이템(806), 콘텐츠 아이템(808), 콘텐츠 아이템(810), 콘텐츠 아이템(812) 및 콘텐츠 아이템(814)을 복사하기로 결정할 수 있다. UI(802)는 예를 들어 아이콘(816)을 선택함으로써 가상 키보드로부터 디스플레이/보기를 위해 트리거될 수 있다. 가상 키보드 또는 단축키를 통해 아이콘(816)을 선택하면 클립보드 히스토리 UI(802)가 나타나도록 트리거할 수 있다. 그런 다음 사용자는 UI(802)에서 콘텐츠를 선택하고 붙여넣기 시작할 수 있다.
도 8에 도시된 바와 같이, 이미지(818)로 표시된 바와 같이, 사용자는 스크린샷(800)에 도시된 문서에 아이템을 붙여넣기 위해 UI(802) 및 선택된 콘텐츠 아이템(814)에 액세스했다. 사용자가 콘텐츠 아이템(814)을 선택하기 전에, 시스템(200)(즉, 생성기(206))은 콘텐츠 아이템(814)에 대해 이전 애플리케이션으로부터 복사 또는 잘라내기 작업을 수신했을 수 있다. 복사 또는 잘라내기 작업의 검출에 응답하여, 콘텐츠 아이템(814)의 콘텐츠 유형이 결정될 수 있고, 결정된 콘텐츠 유형에 기초하여 표현이 생성될 수 있다. 여기서, 콘텐츠 유형은 콘텐츠 아이템(814)의 표현 이미지(818)가 (HTML과 같은) 태깅 언어 콘텐츠로서 클립보드 UI(820)에서 시각적으로 렌더링되어야 함을 나타내는 태깅 언어 콘텐츠 유형일 수 있다. 생성기(206)는 리소스를 절약하기 위해 및/또는 나중에 클립보드 히스토리 UI로부터 붙여넣기 작업을 수행하려는 사용자가 이미지를 인식할 수 있도록 하기 위해 콘텐츠 아이템(814)과 연관된 이미지의 확대된 버전을 생성하도록 결정할 수 있다. 콘텐츠 아이템(814)의 이미지는 문서에 표시된 붙여넣은 이미지(818)의 일부이다. 생성기(206)는 UI(802)를 어지럽히지 않고 사용자를 위해 인식 가능한 콘텐츠를 생성하기 위해 픽셀을 줌 및 제거하거나 이미지를 클립핑할 수 있다. 콘텐츠 아이템(814)은 원래 이미지의 크기가 조정된 버전이며 이미지(818)로 붙여넣어 표시된다. 일반적으로 특정 콘텐츠 아이템(804-814)과 관련하여 선택, 탭 또는 드래그하면 특정 콘텐츠 아이템이 스크린샷(800)에 묘사된 문서와 같은 포커싱된 문서로 복사될 수 있다. 또한, 사용자는 2개 이상의 콘텐츠 아이템(804-814)에 대해 키보드 단축키 선택 또는 스위핑 다중 선택을 수행할 수 있으며, 이는 선택된 아이템을 문서에 붙여넣는다. 일부 구현예에서 콘텐츠 아이템을 탭하면 콘텐츠 아이템을 문서에 붙여넣는 작업이 트리거될 수 있다.
다른 예에서, 생성기(206)는 큰 스프레드시트 또는 테이블(예를 들어, 또는 동일한 유형의 온라인 문서)에서 줌 작업을 수행하여 스프레드시트의 일부가 UI(802)에서 콘텐츠 아이템으로 제시될 때 읽을 수 있음을 보장할 수 있다. 다른 예로, 비트맵 이미지가 브라우저 애플리케이션으로부터 복사되면 비트맵이 파일로 다운로드될 수 있지만 대신 이미지가 온라인 문서로부터 복사되면 이미지 엘리먼트에 대한 링크를 나타내는 HTML로 이미지가 복사된다. 따라서, 생성기(206)는 복사된 콘텐츠 아이템(예를 들어, 비트맵 이미지)과 연관된 테이블 태그 또는 이미지 태그를 찾기 위해 검색을 수행할 수 있고, 이 문서 전반에 걸쳐 설명된 바와 같이 검색 결과에 따라 콘텐츠 아이템을 디스플레이하도록 결정할 수 있다. 본 명세서에 설명된 예 중 임의의 예에서, 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 콘텐츠 아이템의 일부를 확대할지 또는 클리핑할지 여부를 결정하는 것은 콘텐츠 아이템의 하나 이상의 속성에 기초할 수 있다. 예를 들어 콘텐츠 아이템의 크기, 태깅 언어 콘텐츠 유형, 태깅 언어 정보 또는 기타 적절한 속성이다.
일부 구현예에서, 여기에 설명된 시스템은 콘텐츠 아이템의 미리보기를 제공할 수 있다. 예를 들어, 사용자가 호버 작업(또는 다른 사용자 액션)을 수행하면 특정 콘텐츠 아이템의 미리보기가 렌더링될 수 있다. 특히, 시스템(200)은 하나 이상의 콘텐츠 아이템의 미리보기를 생성하고 제공할 수 있다. 예를 들어, 생성기(206)는 UI(802) 내에서 렌더링된 콘텐츠 아이템(808)의 미리보기(820)를 생성할 수 있다. 미리보기를 생성하는 것은 붙여넣기 작업을 시뮬레이션하는 콘텐츠 아이템의 렌더링을 생성하는 것을 포함할 수 있다. 도 8에 도시된 바와 같이, 미리보기(820)는 입력 작업(822)(예를 들어, 호버 입력, 선택, 명령 선택, 바로 가기 명령 등)을 수신하는 것에 응답하여 복사 작업과 연관된 이미지의 이미지를 묘사한다(즉, 콘텐츠 아이템(808)에 표시된 파일 이름).
일부 구현예에서, UI(802)는 사용자가 선택 가능한 컨트롤(824)을 통해 콘텐츠 아이템을 삭제하기 위해 키보드를 사용하는 것을 가능하게 할 수 있다. 일부 구현예에서, UI(802)는 사용자가 키보드를 사용하여 선택 가능한 컨트롤(826)을 통해 입력 필드, 애플리케이션 또는 문서에 붙여넣을 콘텐츠 아이템을 선택하도록 할 수 있다. 다른 명령들도 가능하다. 예를 들어 콘텐츠 아이템을 길게 누르면 삭제 또는 기타 콘텐츠 아이템 대화형 옵션이 선택되어 제공될 수 있다.
도 9는 본 명세서에 기술된 구현예에 따라 컨텍스트 메뉴 내에서 제시된 예시적 클립보드 콘텐츠를 나타내는 스크린샷(900)이다. 일반적으로, O/S(216)는 클립보드 히스토리 UI(906)를 클립보드 옵션(904)로부터 붙여넣은 컨텍스트 메뉴(902) 및 클립보드 히스토리 UI(906)에 의해 도시된 바와 같이 활성 입력 필드 내의 특정 위치(예를 들어, 위, 아래, 오른쪽 또는 왼쪽) 또는 컨텍스트 메뉴의 적절한 옵션 근처에 배치할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(906)는 사용자가 클립보드 히스토리 UI(906)로부터 원하는 콘텐츠 아이템(예를 들어, 콘텐츠 아이템(908))을 선택할 때 닫히도록 구성될 수 있는 컨텍스트 메뉴에 배치된다. UI(906)의 배치(또는 렌더링 상태)에 관계없이, 사용자는 콘텐츠를 UI(906)에 계속 복사할 수 있다. 입력 경계를 제공하지 않는 애플리케이션(예를 들어, 온라인 문서)의 경우, O/S(216)는 도 10에 도시된 바와 같이 마우스 커서(미도시)의 위치에 클립보드 히스토리 UI(906)를 배치할 수 있다.
일부 구현예에서 커서 입력 위치를 결정할 수 없다. 그러한 예에서, 시스템(200)은 마우스 커서 위치에서 클립보드 히스토리 UI(906)를 생성할 수 있다. 기존 시스템은 일반적으로 메뉴 표시줄 또는 마지막으로 알려지거나 사용된 포지션에 클립보드를 배치하는 특정 포지션으로 기본 설정된다.
도 10은 본 명세서에 기술된 구현예에 따라 추가 메뉴 옵션이 있는 예시적 클립보드 히스토리 UI를 나타내는 스크린샷(1000)이다. 이 예에서 온라인 문서는 스크린샷(1000)에 도시되고 클립보드 히스토리 UI(1002)는 커서(1004)에 제시된다.
일부 구현예에서, 클립보드 히스토리 UI(1002)가 열려 있는 동안(도 10에 도시된 바와 같이), 사용자는 예를 들어 순차적 붙여넣기 작업을 기다리기 위해 콘텐츠 아이템들의 목록의 다음 콘텐츠 아이템에 커서(1004)를 오토포커싱하기 전에 UI(1002)로부터 문서로 현재 포커싱된 콘텐츠 아이템을 붙여넣기 위해 키보드 단축키를 선택하거나 수행할 수 있다.
일부 구현예에서, UI(1002)는 각각의 특정 UI(1002)에 대한 메뉴(1006) 또는 사용자가 입력한 호버 작업(예를 들어, 명령)에 기초하여 트리거되는 옵션을 갖는 특정 콘텐츠 아이템을 나타내는 호버 메뉴를 생성 및 디스플레이할 수 있다. 일부 구현예에서, 시스템(200)은 콘텐츠 아이템의 서식(또는 서식 없음)에 관계없이 콘텐츠 아이템을 일반 텍스트로 붙여넣기 위해 사용자가 Shift 키를 누른 상태에서 Enter 키를 누르는(또는 클릭하는) 것을 허용하도록 구성될 수 있다.
일부 구현예에서, 시스템(200)은 사용자가 제1 미리 정의된 키 명령을 사용하여 특정 콘텐츠 아이템에 포커싱하고, 탐색 키(위/아래 및 왼쪽/오른쪽 화살표)를 사용하여 콘텐츠들 사이를 탐색하고, 제2 미리 정의된 키 명령을 사용하거나 명령을 선택하기 위해 클릭하여 콘텐츠 아이템을 선택하고, 제3 미리 정의된 키 명령을 사용하거나 명령을 선택하기 위해 클릭하여 활성 입력 필드, 문서, 애플리케이션 등에 선택한(예: 포커스된) 콘텐츠 아이템을 붙여넣게 하도록 구성될 수 있다. 일부 구현예에서, 이러한 미리 정의된 키 명령은 예를 들어 하나 이상의 다른 키 명령과 조합하여 다른 키 명령을 사용하는 다중 선택 모드인 멀티 아이템 작업에서 기능하도록 구성될 수 있다. 다른 멀티 아이템 작업은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하도록 구성될 수 있지만 이에 한정되지 않는다. 일부 구현예에서, 멀티 아이템 작업 각각은 클립보드 히스토리 UI에서 검출된 단일 입력에 의해 트리거되도록 구성될 수 있다.
일부 구현예에서, 시스템(200)은 사용자가 각각의 콘텐츠 아이템 위로 호버링할 때 각각의 콘텐츠 아이템에 대해 렌더링될 수 있는 삭제 옵션(예를 들어, 삭제 컨트롤(1008))을 생성하도록 구성될 수 있다. 사용자는 컨트롤(1008)을 선택하여 콘텐츠 아이템(1010)을 삭제할 수 있다.
일부 구현예에서, 시스템(200)은 사용자가 디스플레이 화면 내에서 클립보드 히스토리 UI(1002)를 드래그하도록 구성될 수 있다. 일부 구현예에서, UI(1002)는 멀티 붙여넣기 및 순차적 붙여넣기 작업을 허용하기 위해 사용자가 닫을 때까지 지속될 수 있다. 일부 구현예에서, 시스템(200)은 사용자가 복사된 웹 콘텐츠를 나타내는 콘텐츠 아이템(예를 들어, 콘텐츠 아이템 1012) 위에 호버링하여 콘텐츠 아이템(1012)으로 표현된 웹 콘텐츠와 연관된 소스 웹사이트의 런칭을 트리거할 수 있도록 구성될 수 있다.
일부 구현예에서, 시스템(200)은 사용자가 클립보드 히스토리 UI(1002)로부터 입력 필드, 문서 및/또는 애플리케이션으로 콘텐츠 아이템을 드래그하도록 구성될 수 있다. 일부 구현예에서, 시스템(200)은 사용자가 시프트 키를 선택하고 키 명령을 입력하거나 클릭하여 명령을 선택함으로써 클립보드 히스토리 UI(1002)로부터 일반 텍스트를 붙여넣을 수 있도록 구성될 수 있다. 시프트 키를 누르면 콘텐츠 아이템의 시각적 표현(예: 미리보기)이 디스플레이되어 콘텐츠 아이템의 일반 텍스트 표현이 입력 필드, 문서, 애플리케이션 등에 붙여넣었을 때의 모습처럼 보일 수 있다.
도 11a는 본 명세서에 기술된 구현예에 따라 예시적 클립보드 히스토리 UI(1100)를 나타내는 스크린샷이다. 예시적 UI(1100)는 UI(100)를 나타내며 다양한 유형의 콘텐츠를 포함할 수 있다. 콘텐츠는 사용자에 의해 순차적으로 복사되거나 다운로드되는 콘텐츠 아이템들을 포함할 수 있다. 일부 구현예에서, 콘텐츠 아이템들은 복사된 초기 아이템에 복사된 마지막 아이템의 순차적인 순서로 디스플레이된다. 일부 구현예에서, 콘텐츠 아이템들은 콘텐츠 유형에 기초하여 특정 우선 순위로 디스플레이된다. 예를 들어, UI(1100)는 콘텐츠 아이템들의 목록에서 특정 파일 유형을 다른 파일 유형보다 먼저 디스플레이할 수 있다. 예를 들어, 비트맵 이미지가 먼저 묘사될 수 있고(이들은 비트맵 콘텐츠 유형을 가질 수 있거나, 이 설명의 목적을 위해 텍스트 콘텐츠 유형을 갖는 것으로 간주될 수 있음) 태깅/마크업 언어(예: HTML) 이미지가 두 번째로 디스플레이될 수 있다. 일부 구현예에서, 이미지가 로드되거나 획득될 수 없는 경우에 플레이스홀더 이미지가 UI(1100)에 대신 묘사될 수 있다. 텍스트 콘텐츠 아이템들은 HTML(또는 기타 태깅 또는 마크업 언어) 콘텐츠 아이템들 앞에 디스플레이될 수 있는 반면, RTF(서식 있는 텍스트 형식) 콘텐츠 아이템들은 HTML 콘텐츠 아이템들 뒤에 디스플레이될 수 있다. 일부 구현예에서 링크, 책갈피 제목 및/또는 파일 애플리케이션 콘텐츠 아이템들은 UI에서 마지막으로 디스플레이될 수 있다.
일부 구현예에서, 시스템(200)은 UI(1100)를 렌더링할 때 클립보드 히스토리 UI(1100)의 제1 콘텐츠 아이템에 커서를 오토포커싱할 수 있다. 일부 구현예에서, UI(1100)는 UI(1100)에서 콘텐츠 아이템을 보는 사용자에게 컨텍스트를 제공하기 위해 메타데이터, 소스 데이터, 타임스탬프 데이터 또는 기타 정보를 포함하는 추가 데이터를 렌더링할 수 있다.
동작시, 시스템(200)은 사용자가 클립보드 히스토리 UI(1100)를 열기 위한 실행 바로가기 또는 선택을 입력하게 할 수 있다. 클립보드가 열려 있는 동안 사용자가 붙여넣기 명령을 입력하면 시스템(200)은 클립보드에서 현재 포커싱된 콘텐츠 아이템을 붙여넣을 수 있다. 그러면 시스템(200)은 콘텐츠의 순차적 붙여넣기를 용이하게 하기 위해 콘텐츠 아이템들의 목록의 다음 콘텐츠 아이템에 커서를 오토포커싱(즉, 배치)할 수 있다. 이러한 예에서, 사용자는 초기적으로 제1 아이템을 붙여넣기 위해 붙여넣기 명령을 수행할 수 있으며, 다른 콘텐츠 아이템들은 단일 키를 선택하여 UI(1100)의 목록에 있는 각 아이템을 순차적으로 붙여넣음으로써 붙여넣을 수 있다. 다른 키들을 사용하여 콘텐츠 아이템들을 붙여넣을 때 서식을 선택하거나 서식을 지정하지 않을 수 있다. 일부 구현예에서, 검출된 붙여넣기 명령은 사용자가 세션 내에서 수행한 제1 붙여넣기 명령일 수 있다. 제1 붙여넣기 명령은 전체 UI(1100)가 사용자에게 렌더링되도록 트리거할 수 있다.
클립보드 히스토리 UI(1100) 내에서, 시스템(200)은 운영 체제(216)를 통해 사용자가 제1 특정 키(예를 들어, 탭 키 또는 다른 구성 가능한 키)를 사용하여 특정 콘텐츠에 포커싱하게 할 수 있다. 유사하게, 시스템(200)은 탐색 키(예를 들어, 위/아래 및 왼쪽/오른쪽 화살표 키)를 사용하여 콘텐츠 아이템 사이를 탐색하고, 제2 특정 키(예를 들어, 백스페이스 키 또는 다른 구성 가능한 키 또는 클릭)를 사용하여 콘텐츠 아이템을 선택하고, 제3 구성된 키(예: Enter 키 또는 클릭)를 사용하여 활성 입력 필드에 선택/포커스된 콘텐츠 아이템을 붙여넣을 수 있다.
도 11a에 도시된 바와 같이, UI(1100)는 텍스트 콘텐츠 아이템(1108a) 및 텍스트 콘텐츠 아이템(1110a), 이미지 콘텐츠 아이템(1112a), 파일 콘텐츠 아이템(1114a), 온라인 콘텐츠 아이템(1116a)(예를 들어, 온라인 저장 문서), 링크 콘텐츠 아이템(1118a) 및 개인 콘텐츠(1120)를 포함하는 이전에 복사된 아이템을 묘사한다. 텍스트 콘텐츠 아이템(1108a) 및 텍스트 콘텐츠 아이템(1110a)은 둘 모두 사용자가 다른 소스(예를 들어, 문서, 웹사이트 등)로부터 복사했을 수 있는 고유한 텍스트 스니펫을 포함한다. 텍스트 콘텐츠 아이템은 텍스트 콘텐츠 유형을 가지며, 계산 리소스를 보다 효율적으로 사용하기 위해 일반 텍스트로 렌더링될 수 있다. 이미지 콘텐츠 아이템(1112a)은 UI(1100) 외부의 다른 소스로부터 이전에 사용자에 의해 캡처되거나 복사된 이미지를 포함한다. 이미지 콘텐츠(1112a)는 태깅 언어 콘텐츠 유형을 사용하여 생성되며 원본 캡처/복사 이미지의 적어도 일부를 태깅 언어 콘텐츠로 렌더링하는 것을 포함한다. 파일 콘텐츠 아이템(1114a)은 UI(1100) 외부의 다른 소스로부터 이전 시간에 캡처되거나 복사된 비용 보고서의 일부를 나타내는 휴대용 데이터 파일을 포함한다. 온라인 콘텐츠 아이템(1116a)은 UI(1100) 외부의 다른 소스로부터 이전에 사용자에 의해 캡처되거나 복사된 html 링크를 포함하고, 콘텐츠의 적어도 일부를 태깅 언어 콘텐츠로 렌더링하는 것을 포함한다. 비공개 콘텐츠(1120)는 볼 수 있지만 붙여넣기할 수는 없다. 콘텐츠 아이템들에 추가하여 클립보드 히스토리 UI(1100)는 사용자가 UI(1100)와 인터렉션하는 것을 돕기 위한 팁 또는 도움말 부분(1122)을 포함할 수 있다. 이러한 방식으로, 사용자는 서로 다른 콘텐츠 아이템들을 더 잘 구별할 수 있을 뿐만 아니라 사용자가 복사한 특정 콘텐츠를 시각적으로 확인할 수 있다. 따라서, 본 명세서에 기술된 렌더링된 클립보드 히스토리 사용자 인터페이스의 디스플레이로, 작은 디스플레이 화면과 연관된 하나 이상의 기술적 제한이 극복될 수 있는데, 이는 사용자가 콘텐츠 아이템들의 적절한 선택을 하기 위해 디스플레이/렌더링된 콘텐츠의 크기를 확대하거나 증가시킬 필요가 없기 때문이다.
도 11b는 본 명세서에 기술된 구현예에 따라 다른 예시적 클립보드 히스토리 UI(1150)를 나타내는 스크린샷이다. UI(1150)는 사용자가 화면에서 복사, 캡처 또는 잘라낸 모든 것(예: 텍스트, 이미지, 스크린샷, URL, 파일 등)에서 생성된 클립보드 히스토리 콘텐츠에 사용자가 액세스하게 하는 플로팅 인터페이스를 나타낸다. UI(1150)의 플로팅 인터페이스는 콘텐츠의 특정 영역을 가리는 솔리드 윈도우 UI 없이 쉽게 액세스할 수 있는 이점을 제공할 수 있다. 사용자는 콘텐츠를 결합하고 콘텐츠를 다듬어 목표(예: 최종 문서)를 달성함으로써 작업을 완료하기 위해 많은 리소스(앱, 문서, 폴더 등) 사이를 이동하는데, 일반적인 모델은 작업 리소스를 빌드(예: 쓰기, 붙여넣기, 그리기 등)하기 위한 장소로서 작업 리소스 및 사용자가 참조할 수 있는 여러 공개 지원 리소스를 갖는다. 기존 시스템을 사용하여 특히 작은 화면에서 최적의 방식으로 모든 리소스를 재배열하는 것은 어려울 수 있다. 시스템(200)은 플로팅 클립보드 히스토리 UI(1150)를 활성화하여 사용자가 화면(들) 내에서 어디를 클릭하든 관계없이 작업 리소스 위에 콘텐츠(예: 이미지, 텍스트, 링크, 파일, 스크린샷 등)를 플로팅하도록 할 수 있고, UI(1150)는 UI 화면의 최상위 레벨에 남아 있다. 사용자는 이러한 플로팅 아티팩트를 화면 어디에서나 이동할 수 있다. 사용자는 플로팅 아티팩트의 크기를 조정할 수도 있다.
도 11b에 도시된 바와 같이, 클립보드 히스토리 UI(1150)는 사용자가 문서(1160) 외부의 다른 리소스로부터 캡처한(예를 들어, 스크린샷, 잘라내기, 붙여넣기, 끌기, 선택) 콘텐츠 아이템들(1152, 1154, 1156, 1158)을 포함한다. 이 예에서, 사용자는 생일 파티를 계획하고 있을 수 있고 타임라인 문서를 생성하기 위해 온라인 문서(1160) 또는 앱에 액세스할 수 있다. 파티 콘텐츠 및 아이템을 큐레이팅하는 동안 사용할 수 있는 엘리먼트는 사용자가 문서에 정보를 입력할 때 사용자에게 도움이 될 수 있다. 콘텐츠 아이템의 플로팅 UI(1150)를 가까이에 두는 것은 사용자가 파티 계획 작업을 위해 콘텐츠 아이템에 대한 참조를 갖도록 하는 기능을 할 수 있다. 예를 들어 콘텐츠 아이템은 사용자가 초대 초안을 작성할 때 참조할 수 있는 스니펫을 포함할 수 있다. 다른 콘텐츠 아이템은 파티를 위해 이루어진 다른 구매를 참조하기 위한 파티 색상을 포함할 수 있다. 이러한 예에서, 사용자는 콘텐츠 아이템들(1152-1158) 중 임의의 아이템을 화면에서 액세스되는 다른 참조 문서 또는 리소스로 또는 그로부터 드래그할 수 있다.
콘텐츠 아이템(1152)은 사용자가 구매하고자 하는 제품에 대한 URL을 나타낸다. 콘텐츠 아이템(1152)의 URL은 예를 들어 사용자가 구매했을 수 있는 엘리먼트의 이미지 미리보기를 보기 위해 위에 호버링될 수 있다. 일부 구현예에서, 이미지가 사용자에 대한 컨텍스트를 제공할 수 있다고 시스템(200)이 결정하는 것에 응답하여 이미지가 URL 대신 콘텐츠 아이템(1152)에 제시될 수 있다.
콘텐츠 아이템(1154)은 예를 들어 다른 프로젝트(여기서 UI(1150)가 디스플레이될 수 있음)에서 작업하는 동안 작업을 수행하도록 사용자를 상기시키기 위해 사용자가 문서(1160)로부터 얻은 문자열 텍스트 스니펫을 나타낸다. 콘텐츠 아이템(1156)은 사용자가 초대장에 인쇄하기 위해 다운로드했을 수 있는 이미지를 나타낸다. 콘텐츠 아이템(1158)은 사용자가 파티를 위해 생성하기를 원할 수 있는 음악 재생 목록의 일부를 나타낼 수 있다.
콘텐츠 아이템들(1152-1158)을 플로팅하면 작업 문서(예를 들어, 작업 리소스)와 웹 사이트, 지원 문서 및 지원 리소스 사이에서 앞뒤로 전환하는 것을 완화할 수 있다. 일부 구현예에서, 콘텐츠 아이템들(1152-1158)은 아이템들 때문에 화면 및 작업 리소스 주위에서 이동될 수 있으며, UI(1150)의 일부는 모든 화면 콘텐츠를 오버레이하는 보이지 않는 UI로 제시된다. UI(1150)가 문서(1160) 상에 텍스트를 오버레이하지만, 사용자 또는 시스템(200)은 텍스트 및/또는 이미지를 포함하지 않는 화면의 부분에 UI(1150)의 콘텐츠 아이템을 생성함으로써 텍스트 및/또는 이미지의 가려짐을 피할 수 있다. 유사하게, 콘텐츠 아이템은 줌, 축소, 확대, 최소화, 최대화 및/또는 라이브 콘텐츠를 보기 위해 또는 선택된 콘텐츠 아이템에 속하는 저장된 폴더 및/또는 파일로 전송하기 위해 클릭될 수 있다. 일부 구현예에서, 사용자는 단일 명령을 사용하여 전체 클립보드 히스토리 UI(1150)를 문서 내의 위치 또는 작업 표시줄로 최소화(또는 소형화)할 수 있다. 일부 구현예에서, 플로팅 UI(1150)는 UI(1100)와 유사한 컨텍스트 메뉴, 바로 가기 메뉴 또는 입력 필드의 일부가 될 수 있다.
도 12는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI에서 복사된 콘텐츠를 숨기는 예를 나타내는 스크린샷(1200)이다. 시스템(200)은 클립보드 히스토리 UI 생성기(206)에 액세스하여 허가 데이터(236), 정책 및 허가(254) 및/또는 선호 설정(256)을 활용하여 클립보드 히스토리 UI에 복사될 수 있는 데이터 콘텐츠를 숨길 수 있다. 예를 들어, 특정 콘텐츠 아이템들을 클립보드 히스토리 UI 이외의 다른 위치에 붙여넣지 못하도록 비활성화할 수 있다. 일부 구현예에서, 시스템(200)은 클립보드 히스토리 UI에 복사되고 저장된 사용자 데이터를 보호하기 위해 다른 난독화 기술 및/또는 규칙을 사용할 수 있다.
도 12에 도시된 바와 같이, 3개의 예시적인 클립보드 히스토리 UI는 UI 상에 저장 및 렌더링된 콘텐츠 아이템을 숨기거나, 난독화하거나, 비활성화하거나, 보호하는 다른 방법을 포함한다. 스크린샷(1200)에 묘사된 3개의 UI는 예시적 옵션이며 일반적으로 시스템 구성, 사용자 권한 등에 기초하여 단일 클립보드 히스토리 UI가 제공된다.
제1 예시적 클립보드 히스토리 UI(1202)는 제1 텍스트 콘텐츠 아이템(1204), 제1 이미지 콘텐츠 아이템(1206), 제2 이미지 콘텐츠 아이템(1208), 제2 텍스트 콘텐츠 아이템(1210) 및 링크 콘텐츠 아이템(1212)을 포함한다. 이 예에서, 제2 텍스트 콘텐츠 아이템(1210)은 텍스트 또는 데이터 콘텐츠 대신 도트들로 난독화된(예를 들어, 가려진 텍스트) 것으로 표시된다. 또한, 정보가 붙여넣기되도록 구성되지 않았음을 사용자에게 나타내는 붙여넣기 없음 아이콘(1214)이 도시되어 있다. 예를 들어, 사용자가 아이템을 문서에 붙여넣기 위해 콘텐츠 아이템(1210)을 선택한 경우, 시스템(200)은 클립보드 히스토리 UI(1202)와 연관된 이전에 구성된 설정 또는 데이터 콘텐츠 아이템(1210)과 연관된 이전에 구성된 설정에 기초하여 붙여넣기 작업이 발생하는 것을 차단할 수 있다. 사용자는 UI(1202)에서 모든 아이템 삭제를 선택하여 클립보드의 모든 아이템을 삭제할 수 있다.
예를 들어, 시스템(200)은 클립보드 히스토리 UI에 표시될 때 콘텐츠 아이템과 연관된 프리뷰 데이터가 덮어쓰이는 것을 방지할 수 있다. 이 예에서 미리보기 데이터는 클립보드 히스토리 UI의 콘텐츠 아이템에 대해 볼 수 있는 데이터와 관련될 수 있다. 동작시, 시스템(200)은 클립보드 히스토리 UI(1202)(콘텐츠 아이템(1210))와 연관된 복사 작업을 검출할 수 있고, 미리보기 데이터가 비공개로 표시된다는 검출에 응답하여 검출된 복사 작업과 연관된 특정 미리보기 데이터를 덮어쓸 수 있다. 덮어쓰기는 미리보기 데이터에 대응하는 적어도 하나의 콘텐츠 아이템(1210)을 렌더링하는 대신 콘텐츠 아이템(1210)과 연관된 실제 데이터를 교체하고 클립보드 히스토리 UI(1202)를 덮어쓴 미리보기 데이터로 렌더링함으로써 클립보드 히스토리 UI(1202)에 묘사된 데이터의 미리보기를 난독화한다.
제2 예시적 클립보드 히스토리 UI(1218)는 비공개의 붙여넣기 불가 콘텐츠 아이템에 대한 다른 구성 가능한 옵션을 도시한다. 이 예에서, 콘텐츠 아이템(1220)은 기밀성을 나타내는 파일 이름과 함께 표시되는 파일 다운로드를 나타낸다. 파일 이름은 클립보드에 액세스하는 사용자에게 파일 또는 파일 내용을 다른 위치에 붙여넣을 수 없음을 나타낼 수 있다.
동작시, 시스템(200)은 클립보드 히스토리 UI(1218)와 연관된 붙여넣기 작업을 검출할 수 있다. 예를 들어, 시스템(200)은 콘텐츠 아이템(1220)을 선택할 때 사용자가 붙여넣기 명령을 입력했음을 검출할 수 있다. 콘텐츠 아이템(1220)이 비공개로 표시된 것을 검출한 것에 응답하여, 시스템(200)은 UI(1218)에서 콘텐츠 아이템(1220)을 덮어쓸 수 있다(검출된 붙여넣기 작업과 연관됨). 덮어쓰기는 붙여넣기 작업을 수신하는 애플리케이션에서 콘텐츠 아이템을 렌더링할 때 콘텐츠 아이템(1220)을 난독화할 수 있다. 예를 들어, 시스템(200)은 UI(1218)에서 아이템(1220)을 디스플레이할 때 콘텐츠 아이템의 일부 또는 전부를 난독화함으로써 텍스트 콘텐츠 아이템(1220)이 비공개임을 나타낼 수 있다. 또한, 예를 들어 콘텐츠 아이템(1220)이 애플리케이션 또는 문서에 붙여넣기가 허용되는 경우, 붙여넣기 작업은 아이템을 붙여넣지 않아야 한다는 표시 또는 이미지를 붙여넣을 수 있다. 따라서 붙여넣기 작업을 방지할 수 없더라도 콘텐츠 아이템(1220)의 콘텐츠에 대한 붙여넣기 생성을 중지할 수 있다.
제3 예시적 클립보드 히스토리 UI(1222)는 비공개의 붙여넣기 불가 콘텐츠 아이템에 대한 다른 구성 가능한 옵션을 도시한다. 여기에서, 콘텐츠 아이템(1224)은 잠금 아이콘과 함께 표시되고 난독화된/가려진 텍스트는 콘텐츠가 비공개임을 나타낸다. 사용자는 콘텐츠 아이템(1224)을 선택하고 미리 구성된 비밀번호를 입력함으로써 콘텐츠에 액세스할 수 있다.
도 13은 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI에 저장된 콘텐츠를 사용하여 제안을 제공하는 예를 나타내는 스크린샷(1300)이다. 이 예에서 사용자는 구매 주문서에 데이터를 입력할 수 있다. 구매 주문은 온라인 또는 오프라인일 수 있다. 일부 구현예에서, 구매 주문은 브라우저(227)에 입력될 수 있다. 일부 구현예에서, 구매 주문은 오프라인 또는 온라인 애플리케이션에 입력될 수 있다. 시스템(200)(예를 들어, 클립 제안 엔진(220))은 구매 주문 내에서 제안된 콘텐츠, 구매 주문의 필드, 구매 주문에 오버레이된 것 등을 제공하기 위한 기초로서 클립보드 히스토리 UI(100)를 사용할 수 있다.
구매 주문 세부 사항을 입력하는 사용자는 이전 애플리케이션, 문서 또는 이전 구매 주문에서 콘텐츠 아이템(1302)을 복사하거나 잘라냈을 수 있다. 사용자는 양식, 애플리케이션 콘텐츠 등을 채우기 위한 제안으로서 클립보드 콘텐츠 아이템들을 수신하는 것이 도움이 될 수 있음을 알 수 있다. 따라서, 클립 제안 엔진(220)은 특정 입력 필드(예를 들어, 주소 필드(1304))의 커서 포커스를 결정하기 위해 기계 학습 분류기를 이용할 수 있다. 결정된 입력 필드는 클립보드 UI에서 관련 콘텐츠 아이템을 제안하는데 도움이 되도록 사용될 수 있다. 예를 들어, 클립 제안 엔진(220)은 주소 필드(1304)에 포커싱이 맞춰져 있다고 결정할 수 있고, 부분 클립보드 히스토리 UI(1306)로부터 콘텐츠 아이템(1302)을 제안할 수 있다. 제안은 콘텐츠 아이템의 콘텐츠 유형에 대해 적어도 부분적으로 이루어질 수 있다. 예를 들어, 텍스트 입력이 필요한 입력 필드에는 텍스트 콘텐츠 유형으로 생성된 콘텐츠 아이템만 제안될 수 있다. 데이터, 시간, 이메일, 비행 번호, 전화 번호, 추적 번호, URL 등을 포함하지만 이에 제한되지 않는 다른 입력 필드는 UI 또는 입력 필드에서 렌더링하기 위해 클립보드 히스토리 UI(100)로부터의 제안을 결정하기 위해 분류기 입력으로 사용될 수 있다.
일부 구현예에서, UI(1306)는 클립보드 히스토리 UI(100)의 일부를 나타낼 수 있다. 일부 구현예에서, 전체 또는 부분 클립보드 히스토리 UI(1306)는 드롭다운 메뉴에서 렌더링될 수 있다. 일부 구현예에서, 전체 또는 부분 클립보드 히스토리 UI(1306)는 활성 입력 필드에 대한 오버레이로서 렌더링될 수 있다. 일부 구현예에서, UI(1306)는 콘텐츠를 입력 필드(1304)의 하나 이상의 사용자 제공 입력에 일치시키는 것을 포함할 수 있다. 예를 들어, 사용자는 입력 필드(1304)에 "6"을 입력했다. 입력과 일치하는 클립보드 UI(100)로부터의 콘텐츠가 제공될 수 있고 입력 필드(1304)를 자동 채우기 위해 선택 가능할 수 있다. 이 예에서 주소 콘텐츠 아이템(1302)과 주소 콘텐츠 아이템(1308)은 둘 다 클립보드 UI(100)에 있고 필드(1304)의 사용자 입력과 일치하기 때문에 제공된다.
도 14는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI를 렌더링하는 예시적 프로세스(1400)의 흐름도이다. 일반적으로, 프로세스(1400)는 클립보드 히스토리 UI(100)에서 콘텐츠 아이템을 생성하고 렌더링하기 위해 본 명세서에 기술된 시스템 및 알고리즘을 활용한다. 프로세스(1400)는 적어도 하나의 프로세싱 디바이스 및 실행시 프로세싱 디바이스(들)로 하여금 청구범위에 기재된 복수의 동작들 및 컴퓨터 구현 단계들을 수행하게 하는 명령어들을 저장하는 메모리를 갖는 하나 이상의 컴퓨팅 시스템들을 활용할 수 있다. 일반적으로, 시스템(200) 및/또는 시스템(1500)은 프로세스(1400)의 설명 및 실행에 사용될 수 있다.
블록(1402)에서, 프로세스(1400)는 클립보드 히스토리 사용자 인터페이스를 생성하는 것을 포함한다. 클립보드 히스토리 UI는 복수의 콘텐츠 아이템들을 렌더링하도록 구성될 수 있다. 예를 들어, 가장 최근에 복사된 콘텐츠 아이템을 수용하는 종래의 클립보드가 아니라, 시스템(200)은 임의의 수의 콘텐츠 아이템들을 렌더링하도록 구성된 클립보드 히스토리 UI(100)를 생성할 수 있다. 예를 들어, 시스템(200)(예를 들어, 클립보드 히스토리 UI 생성기(206))은 임의의 수의 잘라내기, 복사 또는 다운로드된 콘텐츠 아이템들을 수용하기 위해 클립보드 히스토리 UI(100)를 생성할 수 있다. 동작시, 클립보드 히스토리 UI 생성기(206)는 O/S 클립보드(104), 다운로드 저장소(210) 및/또는 클립보드 저장소(212)로부터 콘텐츠 아이템들을 검색할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(100)는 블랭크로 남아 있고 예를 들어 사용자가 사용자 세션(230) 내에서 콘텐츠를 캡처하기 시작할 때까지 렌더링되지 않는다. 일부 구현예에서, 시스템(200)과 연관된 시스템 프로세스는 UI(100)를 생성할 수 있지만(콘텐츠 아이템의 표현을 생성하는 것을 선택적으로 포함), 사용자가 UI(100)를 트리거할 때까지(예를 들어, 보기를 요청함), UI(100) 및/또는 연관된 콘텐츠 아이템들의 디스플레이(즉, 렌더링)을 기다릴 수 있다.
블록(1404)에서, 프로세스(1400)는 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업을 검출하는 것을 포함한다. 예를 들어, 클립보드 히스토리 UI 생성기(206)는 사용자가 클립보드에 대해 콘텐츠 캡처를 시작하고 있음을 검출할 수 있다. 검출에 응답하여, 프로세스(1400)는 블록(1406-1410)을 수행할 수 있다.
블록(1406)에서, 프로세스(1400)는 복사 또는 붙여넣기 작업의 검출에 응답하여, 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하는 것을 포함한다. 검색은 콘텐츠 유형을 결정하도록 구성될 수 있다. 예를 들어, O/S(216)는 콘텐츠 관리자(214)를 호출하여 태깅 언어 엘리먼트가 콘텐츠 아이템과 연관되어 있는지 여부를 결정하기 위한 검색을 생성할 수 있다. 특히, 검색은 콘텐츠 아이템이 HTML 콘텐츠(또는 다른 태깅 언어 콘텐츠)임을 추론하기 위해 콘텐츠 아이템에서 테이블 태그 또는 이미지 태그를 찾을 수 있다. 유사하게, 콘텐츠 관리자(214)는 일반 텍스트 또는 이미지 양태가 콘텐츠 아이템과 연관되어 있음을 추론하기 위해 태깅 언어 엘리먼트의 결여와 같은 다른 패턴을 결정하는 검색을 수행할 수 있다. 이에 응답하여, 그러한 패턴에 따라 디스플레이를 위해 콘텐츠 아이템이 생성될 수 있다.
일부 구현예에서, 콘텐츠 아이템과 연관된 데이터의 검색은 클립보드 히스토리 UI(100)와 연관된 버퍼로부터 예를 들어, 콘텐츠 아이템과 연관된 태깅 언어 정보를 검색하는 것과 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그 또는 임의의 기타 적절한 태그를 포함하는지 여부를 결정하는 것을 포함한다. 일부 구현예에서, 콘텐츠 아이템과 연관된 데이터의 검색은 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함한다. 이러한 검색은 사용자가 콘텐츠를 빠르게 인식할 수 있도록 UI(100)에 렌더링된 콘텐츠 아이템이 특정 시각적 엘리먼트를 포함하도록 보장하기 위해 실제 콘텐츠 아이템을 수정하는 방법을 제공할 수 있다. 예를 들어, 캡처된 링크가 UI(100)에 제공될 수 있지만 캡처된 링크에 표시된 이미지는 링크 콘텐츠가 향하는 대상에 대한 개선된 표시를 제공할 수 있다.
블록(1408)에서, 프로세스(1400)는 복사 또는 붙여넣기 작업의 검출에 응답하여 콘텐츠 유형에 기초하여 콘텐츠 아이템의 표현을 생성하는 것을 포함한다. 예를 들어, 콘텐츠 관리자(214)는 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 콘텐츠 아이템의 검색으로부터 결정된 패턴(예: 콘텐츠 유형)을 사용하여 클립보드 히스토리 UI(100)에서 텍스트 콘텐츠 유형으로서 콘텐츠 아이템의 표현을 생성할 수 있다. 그러한 예에서, 콘텐츠 관리자(214)는 콘텐츠 아이템이 텍스트를 포함하지만 테이블 태그 및 이미지 태그를 나타내는 마크업 언어를 포함하지 않는다고 결정할 수 있다. 일부 구현예에서, 콘텐츠 관리자(214)는 이미지가 콘텐츠 아이템과 연관되어 있다고 결정할 수 있다. 이미지가 비트맵이면, 시스템(200)은 비트맵 이미지로서 표현을 생성할 수 있다. 텍스트 또는 이미지의 표현은 실제 콘텐츠 아이템의 일부 또는 전체일 수 있다.
일부 구현예에서, 콘텐츠 관리자(214)는 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 콘텐츠 아이템의 검색으로부터 결정된 패턴(예: 콘텐츠 유형)을 사용하여 클립보드 히스토리 UI(100)에서 태깅 언어 콘텐츠 유형으로서 콘텐츠 아이템의 표현을 생성할 수 있다. 이러한 방식으로, 테이블, 이미지 또는 다른 태깅 언어 콘텐츠(예: HTML 콘텐츠)가 UI(100) 내에서 시각적으로 렌더링될 수 있다.
블록(1410)에서, 프로세스(1400)는 표현에 따라 클립보드 히스토리 UI(100)에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것을 더 포함한다. 예를 들어, 클립보드 모듈(예를 들어, 클립보드 히스토리 UI 생성기(206))은 콘텐츠 관리자(214) 및 렌더러(224)와 함께 작업하여 각 콘텐츠 아이템에 대한 특정 표현이 UI(100)에서 렌더링되도록 할 수 있다. 일반적으로 콘텐츠 아이템은 클립보드 히스토리 UI(100)에서 렌더링되는 다른 콘텐츠 아이템과 함께 렌더링될 수 있다. 클립보드 히스토리 UI(100)의 렌더링은 붙여넣기 작업 검출에 응답하여 트리거될 수 있다. 예를 들어, 사용자가 붙여넣기 작업을 입력하면(예: 키보드 단축키, 오른쪽 클릭 및 붙여넣기 선택 등), 클립보드 모듈(예: 클립보드 히스토리 UI 생성기(206))이 전체 클립보드 히스토리 UI(100)의 렌더링을 트리거하여, 사용자가 추가 콘텐츠 아이템을 쉽게 선택할 수 있도록 한다. 붙여넣기 작업은 사용자가 UI(100)에 렌더링된 추가 콘텐츠 아이템을 붙여넣기를 원할 수 있다는 표시기로서 시스템(202)에 의해 검출되고 추론될 수 있다.
일부 구현예에서, 상기 클립보드 히스토리 UI(100)의 렌더링은 콘텐츠 아이템들의 다수의 세트들 내의 각 콘텐츠 아이템에 대해 결정된 콘텐츠 유형에 따라 콘텐츠 아이템들 다수의 세트들 각각의 표현을 렌더링을 포함한다. 예를 들어, 시스템(202)은 콘텐츠 아이템의 특정 세트가 이미지를 나타내고 콘텐츠 아이템의 다른 세트는 URL, 온라인 문서, 텍스트 콘텐츠, 파일 콘텐츠 등의 일부 또는 전부를 나타낸다고 결정할 수 있다. 그런 다음 시스템(202)은 아이템을 유형별로 그룹화하기 위해 이러한 서로 다른 콘텐츠 아이템 세트를 렌더링할 수 있다. 그룹화된 이미지 세트 내에서, 특정 콘텐츠 아이템(예: 콘텐츠 아이템의 표현)은 시스템 또는 사용자 제공 규칙에 따라 정렬될 수 있다. 예를 들어, 시스템은 동일한 유형의 콘텐츠 아이템을 자동으로 그룹화하고 콘텐츠 아이템의 캡처(또는 UI 채우기) 날짜에 따라 아이템을 정렬할 수 있다. 일부 구현예에서, 시스템(202)은 UI(100)와 연관된 자동화된 규칙에 따라 콘텐츠를 주문할 수 있다. 일부 구현예에서, 시스템(202)은 콘텐츠 아이템을 주문하는 방법에 대한 자동 추천 및/또는 콘텐츠 아이템을 그룹화하는 방법에 대한 자동 추천을 제공할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템에 대한 사용자 선호 설정 및 용이한 액세스를 수용하기 위해 콘텐츠 아이템 렌더링의 그룹화 및/또는 순서 지정 측면을 커스터마이징할 수 있다. 일반적으로, 그룹화는 콘텐츠 관리자(214), 클립보드 히스토리 UI 생성기(206) 및/또는 정책 및 허가(254)에 의해 결정될 수 있다.
일부 구현예에서, UI(100)는 (클립보드 히스토리 UI(100)를 선택하는 사용자 입력을 검출하는 것에 응답하여 입력 필드의 사용자 선택과 같은) 다른 적절한 트리거를 검출하는 것에 응답하여 렌더링될 수 있다. 일부 예에서, 콘텐츠 아이템의 표현은 클립보드 히스토리 UI(100)의 렌더링이 트리거될 때까지 미리 생성되고 저장될 수 있다; 이렇게 하면 렌더링이 트리거될 때 클립보드 히스토리 사용자 인터페이스 렌더링시 지연 시간을 줄일 수 있다.
일부 구현예에서, 클립보드 히스토리 UI(100)의 렌더링은 UI(100)를 보도록 요청하는 사용자로부터 입력을 수신하는 것에 기초하여 트리거될 수 있다. 예를 들어, UI(100)의 메뉴 선택, UI(100)에 접근하기 위한 키보드 단축키 또는 입력된 붙여넣기 작업이 UI(100) 렌더링을 트리거할 수 있다.
클립보드 히스토리 UI(100)에 해당 복사 또는 잘라내기 작업에 따라 콘텐츠 아이템과 기타 콘텐츠 아이템이 그룹화될 수 있다. 예를 들어, 콘텐츠 아이템 및 다른 콘텐츠 아이템은 캡처 시간에 따라 그룹화되어 모든 콘텐츠 아이템이 UI(100)에 순차적으로 업로드되고 채워지는 것을 보장할 수 있다. 일부 구현예에서, 콘텐츠 아이템과 연관된 시간적 근접성은 UI(100) 내에서 콘텐츠 아이템을 그룹화 및/또는 그렇지 않으면 렌더링하기 위한 기준으로 사용될 수 있다.
일부 구현예에서, 그룹화 기준의 조합은 콘텐츠 아이템을 그룹화하는데 사용될 수 있다. 예를 들어, 콘텐츠 아이템은 콘텐츠 유형, 복사/잘라내기 작업의 시간적 근접성, 캡처 일, 주, 월, 연도, 파일 유형, 작성자, 애플리케이션 연관 또는 이들의 조합에 따라 그룹화될 수 있다.
일부 구현예에서, 콘텐츠 아이템들은 콘텐츠 유형에 따라 UI(100)에서 그룹으로 렌더링될 수 있다. 예를 들어, 각 아이템 유형(텍스트, 이미지, 파일, 표, 온라인 문서, 링크 등)은 동일한 유형의 다른 콘텐츠 아이템과 함께 그룹화될 수 있다. 예를 들어, 이미지 콘텐츠 아이템은 UI(100)의 제1 영역에서 함께 그룹화되어 제시될 수 있는 반면, 텍스트 콘텐츠 아이템은 UI(100)의 제2 영역에서 함께 그룹화될 수 있다.
일부 구현예에서, 콘텐츠 아이템은 콘텐츠 아이템의 의미론적 이해에 따라 UI(100)에서 그룹으로 렌더링될 수 있다. 예를 들어, 컴퓨팅 시스템(202)은 특정 콘텐츠 아이템의 사용자 액세스 및 사용에 관한 컨텍스트를 결정할 수 있다. 이 컨텍스트는 UI(100)에서 콘텐츠 아이템을 그룹화하고 렌더링하는 기준으로 사용될 수 있다. 예를 들어, 시스템(202)은 UI(100)에서 편리하게 선택 가능한 위치에 렌더링된 자주 사용되는(또는 최근에 사용된) 콘텐츠 아이템으로 UI(100)를 큐레이팅하기 위해 어떤 콘텐츠 아이템이 자주 사용되는지(또는 최근에 사용되었는지) 결정하고 해석할 수 있다.
일부 구현예에서, 콘텐츠 아이템들은 다수의 규칙 및/또는 컨텍스트에 따라 그룹으로 렌더링될 수 있다. 예를 들어, 시스템(202)은 채움 시간 또는 시퀀스, 콘텐츠 유형, 컨텍스트, 사용자 생성 규칙, 콘텐츠 아이템의 의미론적 이해 및/또는 이들의 임의의 조합에 따라 콘텐츠 아이템을 렌더링하도록 구성될 수 있다. 사용자 생성 규칙은 콘텐츠 아이템을 그룹화하는 방법에 대한 우선 순위를 결정하는데 사용될 수 있다.
일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템(예: 콘텐츠 아이템들의 세트들)은 상기 복사 작업 또는/또는 상기 잘라내기 작업의 시간적 근접성 및 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템의 캡처와 연관된 기간에 따라 상기 클립보드 히스토리 UI(100)에서 그룹화된다. 일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템에서 표현된 검출 오브젝트에 따라 상기 클립보드 히스토리 UI(100)에서 그룹화된다. 예를 들어, 콘텐츠 아이템들(1154 및 1156)(도 11b) 둘 모두 풍선 이미지를 포함한다. 시스템(202)은 2개의 콘텐츠 아이템(1154 및 1156)이 유사한 콘텐츠를 포함하기 때문에 함께 그룹화될 수 있다고 결정할 수 있다. 유사한 방식으로, 시스템(202)은 다른 컨텍스트 또는 콘텐츠 유사성을 결정할 수 있고 결정된 그룹화에 따라 이러한 콘텐츠를 렌더링하기 위해 이러한 컨텍스트 또는 유사성에 기초하여 콘텐츠 아이템을 그룹화하도록 결정할 수 있다.
일부 구현예에서, 콘텐츠 아이템은 UI(100)를 렌더링할 때 액세스되는 애플리케이션(들) 또는 문서에 기초하여 UI(100)에서 렌더링될 수 있다. 예를 들어, 클립보드 히스토리 UI(100)는 사용자가 특정 입력 필드, 앱 또는 문서에 커서를 포커싱하고 있는 경우 편리한 사용 순서를 위해 콘텐츠 아이템들을 렌더링할 수 있다. 예를 들어, 프로세스(1400)는 입력 필드에서 커서를 검출하고, 입력 필드가 클립보드 히스토리 UI(100)의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정할 수 있고, 클립보드 히스토리 UI(100)를 입력 필에 인접한 메뉴로서 제공함으로써 UI(100)의 렌더링을 트리거할 수 있다. 일부 구현예에서, UI(100)는 또한 입력 필드로의 입력으로서 제안을 위해 표시된 하나 이상의 콘텐츠 아이템과 함께 제시될 수 있다.
일부 구현예에서, 클립보드 히스토리에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출하는 것은 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기 생성을 트리거할 수 있고, 상기 미리보기는 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함할 수 있다. 그런 다음 붙여넣기 작업의 시뮬레이션을 사용자에게 디스플레이하여 과거 작업 결과를 시각적으로 표시할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(100)는 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필로부터 검색된 콘텐츠 아이템들을 포함하도록 구성된다.
일부 구현예에서, 클립보드 히스토리 UI(100)는 멀티 아이템 작업을 지원하도록 구성된다. 예를 들어, 사용자는 UI(100)를 사용하여 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 수행할 수 있으며 여기서 각 멀티 아이템 작업은 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성된다. 예를 들어, UI(100)의 모든 콘텐츠를 집중된 문서, 입력 필드, 웹 사이트 등에 붙여넣기 위해 하나의 키로 전체 선택 작업을 수행할 수 있다.
사용자가 콘텐츠를 계속 복사/잘라내기/다운로드하면 시간이 지남에 따라 다수의 콘텐츠 아이템들이 UI(100)에 추가될 수 있다. 예를 들어, 각각의 콘텐츠 아이템과 연관된 각각의 후속 검출된 복사 작업 또는 잘라내기 작업에 대해, 시스템(200)은 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거할 수 있고, 데이터의 검색에 기초하여 각각의 콘텐츠 아이템의 각각의 표현을 생성할 수 있다. 각각의 표현은 클립보드 히스토리 사용자 인터페이스의 렌더링이 후속적으로 트리거될 때까지 저장될 수 있거나, 일부 예에서, 각각의 후속 검출된 복사 작업은 각각의 표현에 따라 렌더링되는 각각의 콘텐츠 아이템과 함께 UI(100)의 렌더링을 트리거할 수 있다.
일부 구현예에서, UI(100)에 캡처된 각 개별 콘텐츠 아이템은 예를 들어 O/S 기반 가상 디지털 클립보드(274)를 생성하는 단일 브라우저 프로세스를 사용하여 렌더링될 수 있다. 단일 브라우저 프로세스를 사용하면 태깅 언어 콘텐츠를 렌더링할 때마다 새 브라우저 프로세스를 시작하는 것과 비교할 때 런타임 및 시스템 메모리 사용량을 줄일 수 있다. 가상 디지털 클립보드(274)는 O/S에 의해 트리거되는 임의의 프로세스에 의해 생성될 수 있다. 가상 디지털 클립보드는 일반적으로 보이지 않으며, 콘텐츠 아이템 및 클립보드 히스토리 UI(100)에 렌더링된 각 개별 콘텐츠 아이템을 저장, 추적, 채우기 및 업데이트하는데 사용된다. 예를 들어, 사용자가 클립보드 히스토리 UI(100)에 제시하기 위해 콘텐츠 아이템을 계속 캡처함에 따라, 가상 디지털 클립보드(274)는 사용자 명령이 여러 콘텐츠 또는 순서가 맞지 않는 콘텐츠의 복사 및/또는 붙여넣기를 허용하기 위해 가상으로 콘텐츠 아이템들을 추적, 수정 및 이동할 수 있다. 가상 디지털 클립보드(274)는 UI(100)를 시각적으로 수정할 필요 없이 UI(100)의 아이템 매핑을 나타낼 수 있다. 일부 구현예에서, 클립보드(274)로부터의 콘텐츠 아이템들은 사용자가 요청된 변경을 UI(100)에 입력할 때(예를 들어, 아이템 삭제, 아이템 추가, 아이템 붙여넣기 등) UI(100)에 복사된다.
도 15는 본 명세서에 기술된 구현예에 따라 클립보드 히스토리 UI를 렌더링하는 예시적 프로세스(1500)의 흐름도이다. 일반적으로, 프로세스(1500)는 클립보드 히스토리 UI(100)에서 콘텐츠 아이템을 생성하고 렌더링하기 위해 본 명세서에 기술된 시스템 및 알고리즘을 활용한다. 프로세스(1500)는 적어도 하나의 프로세싱 디바이스 및 실행시 프로세싱 디바이스(들)로 하여금 청구범위에 기재된 복수의 동작들 및 컴퓨터 구현 단계들을 수행하게 하는 명령어들을 저장하는 메모리를 갖는 하나 이상의 컴퓨팅 시스템들을 활용할 수 있다. 일반적으로, 시스템(200) 및/또는 시스템(1600)은 프로세스(1500)의 설명 및 실행에 사용될 수 있다. 일부 구현예에서, 클립보드 히스토리 UI 생성기(206)는 렌더러(224)와 함께 기능하여 프로세스(1500)를 수행한다.
블록(1502)에서, 프로세스(1500)는 콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업을 검출하는 것을 포함한다. 예를 들어, 클립보드 히스토리 UI 생성기(206)는 사용자가 클립보드에 대해 콘텐츠 캡처를 시작하고 있음을 검출할 수 있다. 검출에 응답하여, 프로세스(1500)는 수행될 콘텐츠 아이템과 연관된 데이터의 검색을 트리거할 수 있다. 검색은 콘텐츠 아이템의 콘텐츠 유형을 결정하도록 구성될 수 있다. 예를 들어, O/S(216)는 콘텐츠 관리자(214)를 호출하여 태깅 언어 엘리먼트가 콘텐츠 아이템과 연관되어 있는지 여부를 결정하기 위한 검색을 생성할 수 있다. 특히, 검색은 콘텐츠 아이템이 HTML 콘텐츠(또는 다른 태깅 언어 콘텐츠)임을 추론하기 위해 콘텐츠 아이템에서 태깅 정보(예: 테이블 태그 또는 이미지 태그)를 찾을 수 있다. 유사하게, 콘텐츠 관리자(214)는 일반 텍스트 또는 이미지 양태가 콘텐츠 아이템과 연관되어 있음을 추론하기 위해 태깅 언어 엘리먼트의 결여와 같은 다른 패턴을 결정하는 검색을 수행할 수 있다. 이에 응답하여, 그러한 패턴에 따라 디스플레이를 위해 콘텐츠 아이템의 표현이 생성될 수 있다.
일부 구현예에서, 콘텐츠 아이템과 연관된 데이터의 검색은 클립보드 히스토리 UI(100)와 연관된 버퍼로부터 예를 들어, 콘텐츠 아이템과 연관된 태깅 언어 정보를 검색하는 것과 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그 또는 임의의 기타 적절한 태그를 포함하는지 여부를 결정하는 것을 포함한다. 일부 구현예에서, 상기 콘텐츠 아이템과 연관된 데이터의 검색은 태깅 언어 정보가 아이템과 연관된다는 것을 검출함에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함한다. 이러한 검색은 사용자가 콘텐츠를 빠르게 인식할 수 있도록 UI(100)에 렌더링된 콘텐츠 아이템이 특정 시각적 엘리먼트를 포함하도록 보장하기 위해 실제 콘텐츠 아이템을 수정하는 방법을 제공할 수 있다. 예를 들어, 캡처된 링크가 UI(100)에 제공될 수 있지만 캡처된 링크에 표시된 이미지(예: UI(100)의 표현)는 링크 콘텐츠가 향하는 대상에 대한 개선된 표시를 제공할 수 있다.
블록(1506)에서 그리고 블록(1504)에서 붙여넣기 작업의 검출에 응답하여, 프로세스(1500)는 콘텐츠 유형에 기초하여 콘텐츠 아이템의 표현을 생성하는 것을 포함한다. 예를 들어, 콘텐츠 관리자(214)는 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 콘텐츠 아이템의 검색으로부터 결정된 패턴(예: 콘텐츠 유형)을 사용하여 콘텐츠 아이템의 텍스트 표현을 생성할 수 있다. 그러한 예에서, 콘텐츠 관리자(214)는 콘텐츠 아이템이 텍스트를 포함하지만 테이블 태그 및 이미지 태그(또는 기타 태그)를 나타내는 마크업 언어를 포함하지 않는다고 결정할 수 있다. 일부 구현예에서, 콘텐츠 관리자(214)는 이미지가 콘텐츠 아이템과 연관되어 있다고 결정할 수 있다. 이미지가 비트맵이면, 시스템(200)은 비트맵 이미지로서 표현을 생성할 수 있다. 텍스트 또는 이미지의 표현은 실제 콘텐츠 아이템의 일부 또는 전체일 수 있다. 일부 구현예에서, 표현은 콘텐츠 아이템과 연관된 다른 식별 데이터를 포함할 수 있다.
일부 구현예에서, 콘텐츠 관리자(214)는 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 콘텐츠 아이템의 검색으로부터 결정된 패턴(예: 콘텐츠 유형)을 사용하여 콘텐츠 아이템의 태깅 언어 표현을 생성할 수 있다. 이러한 방식으로, 테이블, 이미지 또는 다른 태깅 언어 콘텐츠(예: HTML 콘텐츠)가 UI(100) 내에서 시각적으로 렌더링될 수 있다.
블록(1508)에서, 블록(1504)에서 붙여넣기 작업을 검출함에 응답하여, 프로세스(1500)는 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것을 포함하며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링된다. 예를 들어, 클립보드 모듈(예를 들어, 클립보드 히스토리 UI 생성기(206))은 콘텐츠 관리자(214) 및 렌더러(224)와 함께 작업하여 각 콘텐츠 아이템에 대한 특정 표현이 UI(100)에서 렌더링되도록 할 수 있다. 일반적으로 콘텐츠 아이템은 클립보드 히스토리 UI(100)에서 렌더링되는 다른 콘텐츠 아이템과 함께 렌더링될 수 있다. 클립보드 히스토리 UI(100)의 렌더링은 붙여넣기 작업 검출에 응답하여 트리거될 수 있다. 예를 들어, 사용자가 붙여넣기 작업을 입력하면(예: 키보드 단축키, 오른쪽 클릭 및 붙여넣기 선택 등), 클립보드 모듈(예: 클립보드 히스토리 UI 생성기(206))이 전체 클립보드 히스토리 UI(100)의 렌더링을 트리거하여, 사용자가 추가 콘텐츠 아이템을 쉽게 선택할 수 있도록 한다. 붙여넣기 작업은 사용자가 UI(100)에 렌더링된 추가 콘텐츠 아이템을 붙여넣기를 원할 수 있다는 표시기로서 시스템(202)에 의해 검출되고 추론될 수 있다.
일부 구현예에서, 상기 클립보드 히스토리 UI(100)의 렌더링은 콘텐츠 아이템들의 다수의 세트들 내의 각 콘텐츠 아이템에 대해 결정된 콘텐츠 유형에 따라 콘텐츠 아이템들 다수의 세트들 각각의 표현을 렌더링을 포함한다. 예를 들어, 시스템(202)은 콘텐츠 아이템의 특정 세트가 이미지를 나타내고 콘텐츠 아이템의 다른 세트는 URL, 온라인 문서, 텍스트 콘텐츠, 파일 콘텐츠 등의 일부 또는 전부를 나타낸다고 결정할 수 있다. 그런 다음 시스템(202)은 아이템을 유형별로 그룹화하기 위해 이러한 서로 다른 콘텐츠 아이템 세트를 렌더링할 수 있다. 그룹화된 이미지 세트 내에서, 특정 콘텐츠 아이템(예: 콘텐츠 아이템의 표현)은 시스템 또는 사용자 구성 규칙에 따라 정렬될 수 있다. 예를 들어, 시스템은 동일한 유형의 콘텐츠 아이템을 자동으로 그룹화하고 콘텐츠 아이템의 캡처(또는 UI 채우기) 날짜에 따라 아이템을 정렬할 수 있다. 일부 구현예에서, 시스템(202)은 UI(100)와 연관된 자동화된 규칙에 따라 콘텐츠를 주문할 수 있다. 일부 구현예에서, 시스템(202)은 콘텐츠 아이템을 주문하는 방법에 대한 자동 추천 및/또는 콘텐츠 아이템을 그룹화하는 방법에 대한 자동 추천을 제공할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템에 대한 사용자 선호 설정 및 용이한 액세스를 수용하기 위해 콘텐츠 아이템 렌더링의 그룹화 및/또는 순서 지정 측면을 커스터마이징할 수 있다. 일반적으로, 그룹화는 콘텐츠 관리자(214), 클립보드 히스토리 UI 생성기(206) 및/또는 정책 및 허가(254)에 의해 결정될 수 있다.
일부 구현예에서, UI(100)는 (클립보드 히스토리 UI(100)를 선택하는 사용자 입력을 검출하는 것에 응답하여 입력 필드의 사용자 선택과 같은) 다른 적절한 트리거를 검출하는 것에 응답하여 렌더링될 수 있다. 일부 예에서, 콘텐츠 아이템의 표현은 클립보드 히스토리 UI(100)의 렌더링이 트리거될 때까지 미리 생성되고 저장될 수 있다; 이렇게 하면 렌더링이 트리거될 때 클립보드 히스토리 사용자 인터페이스 렌더링시 지연 시간을 줄일 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(100)의 렌더링은 UI(100)를 보도록 요청하는 사용자로부터 입력을 수신하는 것에 기초하여 트리거될 수 있다. 예를 들어, UI(100)의 메뉴 선택, UI(100)에 접근하기 위한 키보드 단축키 또는 입력된 붙여넣기 작업이 UI(100) 렌더링을 트리거할 수 있다.
일부 구현예에서, 클립보드 히스토리 UI(100)에 해당 복사 또는 잘라내기 작업에 따라 콘텐츠 아이템과 기타 콘텐츠 아이템이 그룹화될 수 있다. 예를 들어, 콘텐츠 아이템 및 다른 콘텐츠 아이템은 캡처 시간에 따라 그룹화되어 모든 콘텐츠 아이템이 UI(100)에 순차적으로 업로드되고 채워지는 것을 보장할 수 있다. 일부 구현예에서, 콘텐츠 아이템과 연관된 시간적 근접성은 UI(100) 내에서 콘텐츠 아이템을 그룹화 및/또는 그렇지 않으면 렌더링하기 위한 기준으로 사용될 수 있다.
일부 구현예에서, 그룹화 기준의 조합은 콘텐츠 아이템을 그룹화하는데 사용될 수 있다. 예를 들어, 콘텐츠 아이템은 콘텐츠 유형, 복사/잘라내기 작업의 시간적 근접성, 캡처 일, 주, 월, 연도, 파일 유형, 작성자, 애플리케이션 연관 또는 이들의 조합에 따라 그룹화될 수 있다.
일부 구현예에서, 콘텐츠 아이템들은 콘텐츠 유형에 따라 UI(100)에서 그룹으로 렌더링될 수 있다. 예를 들어, 각 아이템 유형(텍스트, 이미지, 파일, 표, 온라인 문서, 링크 등)은 동일한 유형의 다른 콘텐츠 아이템과 함께 그룹화될 수 있다. 예를 들어, 이미지 콘텐츠 아이템은 UI(100)의 제1 영역에서 함께 그룹화되어 제시될 수 있는 반면, 텍스트 콘텐츠 아이템은 UI(100)의 제2 영역에서 함께 그룹화될 수 있다.
일부 구현예에서, 콘텐츠 아이템은 콘텐츠 아이템의 의미론적 이해에 따라 UI(100)에서 그룹으로 렌더링될 수 있다. 예를 들어, 컴퓨팅 시스템(202)은 특정 콘텐츠 아이템의 사용자 액세스 및 사용에 관한 컨텍스트를 결정할 수 있다. 이 컨텍스트는 UI(100)에서 콘텐츠 아이템을 그룹화하고 렌더링하는 기준으로 사용될 수 있다. 예를 들어, 시스템(202)은 UI(100)에서 편리하게 선택 가능한 위치에 렌더링된 자주 사용되는(또는 최근에 사용된) 콘텐츠 아이템으로 UI(100)를 큐레이팅하기 위해 어떤 콘텐츠 아이템이 자주 사용되는지(또는 최근에 사용되었는지) 결정하고 해석할 수 있다.
일부 구현예에서, 콘텐츠 아이템들은 다수의 규칙 및/또는 컨텍스트에 따라 그룹으로 렌더링될 수 있다. 예를 들어, 시스템(202)은 채움 시간 또는 시퀀스, 콘텐츠 유형, 컨텍스트, 사용자 생성 규칙, 콘텐츠 아이템의 의미론적 이해 및/또는 이들의 임의의 조합에 따라 콘텐츠 아이템을 렌더링하도록 구성될 수 있다. 사용자 생성 규칙은 콘텐츠 아이템을 그룹화하는 방법에 대한 우선 순위를 결정하는데 사용될 수 있다.
일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템(예: 콘텐츠 아이템들의 세트들)은 상기 복사 작업 또는/또는 상기 잘라내기 작업의 시간적 근접성 및 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템의 캡처와 연관된 기간에 따라 상기 클립보드 히스토리 UI(100)에서 그룹화된다. 일부 구현예에서, 상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템에서 표현된 검출 오브젝트에 따라 상기 클립보드 히스토리 UI(100)에서 그룹화된다. 예를 들어, 콘텐츠 아이템들(1154 및 1156)(도 11b) 둘 모두 풍선 이미지를 포함한다. 시스템(202)은 2개의 콘텐츠 아이템(1154 및 1156)이 유사한 콘텐츠를 포함하기 때문에 함께 그룹화될 수 있다고 결정할 수 있다. 유사한 방식으로, 시스템(202)은 다른 컨텍스트 또는 콘텐츠 유사성을 결정할 수 있고 결정된 그룹화에 따라 이러한 콘텐츠를 렌더링하기 위해 이러한 컨텍스트 또는 유사성에 기초하여 콘텐츠 아이템을 그룹화하도록 결정할 수 있다.
일부 구현예에서, 콘텐츠 아이템은 UI(100)를 렌더링할 때 액세스되는 애플리케이션(들) 또는 문서에 기초하여 UI(100)에서 렌더링될 수 있다. 예를 들어, 클립보드 히스토리 UI(100)는 사용자가 특정 입력 필드, 앱 또는 문서에 커서를 포커싱하고 있는 경우 편리한 사용 순서를 위해 콘텐츠 아이템들을 렌더링할 수 있다. 예를 들어, 프로세스(1500)는 입력 필드에서 커서를 검출하고, 입력 필드가 클립보드 히스토리 UI(100)의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정할 수 있고, 클립보드 히스토리 UI(100)를 입력 필에 인접한 메뉴로서 제공함으로써 UI(100)의 렌더링을 트리거할 수 있다. 일부 구현예에서, UI(100)는 또한 입력 필드로의 입력으로서 제안을 위해 표시된 하나 이상의 콘텐츠 아이템과 함께 제시될 수 있다.
일부 구현예에서, 클립보드 히스토리에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출하는 것은 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기 생성을 트리거할 수 있고, 상기 미리보기는 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함할 수 있다. 그런 다음 붙여넣기 작업의 시뮬레이션을 사용자에게 디스플레이하여 과거 작업 결과를 시각적으로 표시할 수 있다. 일부 구현예에서, 클립보드 히스토리 UI(100)는 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필로부터 검색된 콘텐츠 아이템들을 포함하도록 구성된다.
일부 구현예에서, 클립보드 히스토리 UI(100)는 멀티 아이템 작업을 지원하도록 구성된다. 예를 들어, 사용자는 UI(100)를 사용하여 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 수행할 수 있으며 여기서 각 멀티 아이템 작업은 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성된다. 예를 들어, UI(100)의 모든 콘텐츠를 집중된 문서, 입력 필드, 웹 사이트 등에 붙여넣기 위해 하나의 키로 전체 선택 작업을 수행할 수 있다.
사용자가 콘텐츠를 계속 복사/잘라내기/다운로드하면 시간이 지남에 따라 다수의 콘텐츠 아이템들이 UI(100)에 추가될 수 있다. 예를 들어, 각각의 콘텐츠 아이템과 연관된 각각의 후속 검출된 복사 작업 또는 잘라내기 작업에 대해, 시스템(200)은 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거할 수 있고, 데이터의 검색에 기초하여 각각의 콘텐츠 아이템의 각각의 표현을 생성할 수 있다. 각각의 표현은 클립보드 히스토리 사용자 인터페이스의 렌더링이 후속적으로 트리거될 때까지 저장될 수 있거나, 일부 예에서, 각각의 후속 검출된 복사 작업은 각각의 표현에 따라 렌더링되는 각각의 콘텐츠 아이템과 함께 UI(100)의 렌더링을 트리거할 수 있다.
일부 구현예에서, UI(100)에 캡처된 각 개별 콘텐츠 아이템은 예를 들어 O/S 기반 가상 디지털 클립보드(274)를 생성하는 단일 브라우저 프로세스를 사용하여 렌더링될 수 있다. 단일 브라우저 프로세스를 사용하면 태깅 언어 콘텐츠를 렌더링할 때마다 새 브라우저 프로세스를 시작하는 것과 비교할 때 런타임 및 시스템 메모리 사용량을 줄일 수 있다. 가상 디지털 클립보드(274)는 O/S에 의해 트리거되는 임의의 프로세스에 의해 생성될 수 있다. 가상 디지털 클립보드는 일반적으로 보이지 않으며, 콘텐츠 아이템 및 클립보드 히스토리 UI(100)에 렌더링된 각 개별 콘텐츠 아이템을 저장, 추적, 채우기 및 업데이트하는데 사용된다. 예를 들어, 사용자가 클립보드 히스토리 UI(100)에 제시하기 위해 콘텐츠 아이템을 계속 캡처함에 따라, 가상 디지털 클립보드(274)는 사용자 명령이 여러 콘텐츠 또는 순서가 맞지 않는 콘텐츠의 복사 및/또는 붙여넣기를 허용하기 위해 가상으로 콘텐츠 아이템들을 추적, 수정 및 이동할 수 있다. 가상 디지털 클립보드(274)는 UI(100)를 시각적으로 수정할 필요 없이 UI(100)의 아이템 매핑을 나타낼 수 있다. 일부 구현예에서, 클립보드(274)로부터의 콘텐츠 아이템들은 사용자가 요청된 변경을 UI(100)에 입력할 때(예를 들어, 아이템 삭제, 아이템 추가, 아이템 붙여넣기 등) UI(100)에 복사된다.
도 16는 본 명세서에 기술된 기법들과 사용될 수 있는 컴퓨터 디바이스(1600)와 모바일 컴퓨터 디바이스(1650)의 예시를 도시한다. 컴퓨팅 디바이스(1600)는 랩톱, 데스크톱, 태블릿, 워크 스테이션, 개인 휴대 정보 단말기, 스마트 디바이스, 가전, 전자 센서 기반 디바이스, 텔레비전, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨팅 디바이스와 같은 다양한 형태의 디지털 컴퓨터를 나타내기 위한 것이다. 컴퓨팅 디바이스(1650)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(1600)는 프로세서(1602), 메모리(1604), 저장 디바이스(1606), 메모리(1604) 및 고속 확장 포트(1610)에 연결되는 고속 인터페이스(1608) 및 저속 버스(1614) 및 저장 디바이스(1606)에 연결되는 저속 인터페이스(1612)를 포함한다. 프로세서(1602)는 반도체 기반 프로세서일 수 있다. 메모리(1604)는 반도체 기반 메모리일 수 있다. 컴포넌트들(1602, 1604, 1606, 1608, 1610 및 1612) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(1602)는 메모리(1604) 또는 저장 디바이스(1606)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(1600) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(1608)에 연결된 디스플레이(1616)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(1600)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(1604)는 컴퓨팅 디바이스(1600) 내에 정보를 저장한다. 일 구현예에서, 메모리(1604)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(1604)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(1604)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태일 수 있다. 일반적으로, 컴퓨터 판독가능 매체는 비일시적 컴퓨터 판독가능 매체일 수 있다.
저장 디바이스(1606)는 컴퓨팅 디바이스(1600)에 대한 대형 스토리지를 제공할 수 있다. 일 구현예에서, 저장 디바이스(1606)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법 및/또는 컴퓨터로 구현되는 방법을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(1604), 저장 디바이스(1606) 또는 프로세서(1602)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(1608)는 컴퓨팅 디바이스(1600)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(1612)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(1608)는 메모리(1604), 디스플레이(1616)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(1610)에 연결된다. 구현예에서, 저속 제어기(1612)는 저장 디바이스(1606) 및 저속 확장 포트(1614)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(1600)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(1620)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랙 서버 시스템(1624)의 일부로서 구현될 수 있다. 또한, 랩톱 컴퓨터(1622)와 같은 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(1600)로부터의 컴포넌트들은 디바이스(1650)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(1600, 1650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(1600, 1650)로 구성될 수 있다.
컴퓨팅 디바이스(1650)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(1652), 메모리(1664), 디스플레이(1654)와 같은 입/출력 디바이스, 통신 인터페이스(1666) 및 송수신기(1668)를 포함한다. 디바이스(1650)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(1650, 1652, 1664, 1654, 1666 및 1668) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(1652)는 메모리(1664)에 저장된 명령어들을 포함하는 컴퓨팅 디바이스(1650) 내의 명령어들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스들, 디바이스(1650)에 의해 실행되는 애플리케이션 및 디바이스(1650)에 의한 무선 통신과 같은 디바이스(1650)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(1652)는 제어 인터페이스(1658) 및 디스플레이(1654)에 연결된 디스플레이 인터페이스(1656)를 통해 사용자와 통신할 수 있다. 디스플레이(1654)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(1656)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(1654)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(1658)는 사용자로부터 명령을 수신하고, 프로세서(1652)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(1662)는 프로세서(1652)와의 통신에 제공되어 다른 디바이스들과 디바이스(1650)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(1662)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(1664)는 컴퓨팅 디바이스(1650) 내에 정보를 저장한다. 메모리(1664)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(1674)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(1672)를 통해 디바이스(1650)에 제공되고 접속될 수 있다. 상기 확장 메모리(1674)는 디바이스(1650)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 애플리케이션들 또는 디바이스(1650)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(1674)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(1674)는 디바이스(1650)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(1650)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 예를 들어 송수신기(1668) 또는 외부 인터페이스(1662)를 통해 수신될 수 있는 메모리(1664), 확장 메모리(1674) 또는 프로세서(1652)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
디바이스(1650)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(1666)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(1666)는 다른 것들 중에서도 GSM 보이스 콜들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(1668)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(1670)은 디바이스(1650)상에서 실행되는 애플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(1650)에 제공할 수 있다.
디바이스(1650)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(1660)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(1660)은 마찬가지로, 예를 들어 디바이스(1650)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(1650)상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(1650)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(1680)로서 구현될 수 있다. 또한 스마트폰(1682), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
이들 컴퓨터 프로그램(모듈, 프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 "기계 판독가능 매체", "컴퓨터 판독가능 매체"는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 디바이스 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 "기계 판독가능 신호"는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터 또는 LED(light emitting diode)) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 인터렉션을 제공하기 위해 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백(예: 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
일부 실시예에서, 도 16에 도시된 컴퓨팅 디바이스는 가상 현실 또는 헤드셋(VR/AR 헤드셋/HMD 디바이스(1690))과 인터페이싱하는 센서들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(1650) 또는 도 16에 도시된 다른 컴퓨팅 디바이스에 포함된 하나 이상의 센서는 AR/VR 헤드셋(1690)에 입력을 제공하거나 일반적으로 AR/VR 공간에 입력을 제공할 수 있다. 센서는 터치 스크린, 가속도계, 자이로스코프, 압력 센서, 생체 센서, 온도 센서, 습도 센서 및 주변광 센서를 포함할 수 있지만 이에 제한되지 않는다. 컴퓨팅 디바이스(1650)는 AR/VR 공간으로의 입력으로서 사용될 수 있는 AR/VR 공간 내의 컴퓨팅 디바이스의 절대 위치 및/또는 검출된 회전을 결정하기 위해 센서들을 사용할 수 있다. 예를 들어, 컴퓨팅 디바이스(1650)는 제어기, 레이저 포인터, 키보드, 무기 등과 같은 가상 오브젝트로서 AR/VR 공간에 통합될 수 있다. AR/VR 공간에 통합된 경우 사용자에 의한 컴퓨팅 디바이스/가상 오브젝트의 위치는 사용자로 하여금 컴퓨팅 디바이스를 위치시켜 AR/VR 공간에서 특정 방식으로 가상 오브젝트를 보게 한다.
일부 실시예에서, 컴퓨팅 디바이스(1650)에 포함되거나 연결되는 하나 이상의 입력 디바이스들이 AR/VR 공간에 대한 입력으로 사용될 수 있다. 입력 디바이스들은 터치 스크린, 키보드, 하나 이상의 버튼들, 트랙 패드, 터치 패드, 포인팅 디바이스, 마우스, 트랙볼, 조이스틱, 카메라, 마이크로폰, 이어폰 또는 입력 기능이 있는 버드, 게임 컨트롤러 또는 기타 연결 가능한 입력 디바이스들을 포함할 수 있으며, 이제 한정되지 않는다. 컴퓨팅 디바이스가 AR/VR 공간에 통합될 때 컴퓨팅 디바이스(1650)에 포함된 입력 디바이스와 인터렉션하는 사용자는 특정한 액션이 AR/VR 공간에서 발생하도록 할 수 있다.
일부 실시예에서, 컴퓨팅 디바이스(1650)에 포함된 하나 이상의 출력 디바이스들은 AR/VR 공간에서 AR/VR 헤드셋(1690)의 사용자에게 출력 및/또는 피드백을 제공할 수 있다. 출력 및 피드백은 시각적, 촉각적 또는 청각적일 수 있다. 출력 및/또는 피드백은 AR/VR 공간 또는 가상 환경 렌더링, 진동, 하나 이상의 조명 또는 스트로브의 켜고 끄기 또는 깜박임 및/또는 플래시, 알람 울리기, 차임을 치는 것, 노래 연주 및 오디오 파일의 재생 등을 포함할 수 있으며, 이에 한정되지 않는다. 출력 디바이스들은 진동 모터, 진동 코일, 압전 디바이스, 정전기 디바이스, 발광 다이오드(LED), 스트로브 및 스피커를 포함할 수 있으며, 이제 한정되지 않는다.
일부 실시예에서, 컴퓨팅 디바이스(1650)는 AR/VR 시스템을 생성하기 위해 AR/VR 헤드셋(1690) 내에 배치될 수 있다. AR/VR 헤드셋(1690)은 AR/VR 헤드셋(1690) 내의 적절한 위치에 스마트폰(1682)과 같은 컴퓨팅 디바이스(1650)의 배치를 허용하는 하나 이상의 포지셔닝 엘리먼트들을 포함할 수 있다. 이러한 실시예에서, 스마트폰(1682)의 디스플레이는 AR/VR 공간 또는 가상 환경을 나타내는 입체 이미지를 렌더링할 수 있다.
일부 실시예에서, 컴퓨팅 디바이스(1650)는 컴퓨터 생성 3D 환경에서 다른 오브젝트로서 표시될 수 있다. 사용자에 의한 컴퓨팅 디바이스(1650)와의 인터렉션들(예를 들어, 회전, 흔들기, 터치스크린 터치, 터치 스크린을 가로지르는 손가락 스와이핑)은 AR/VR 공간에서 오브젝트와의 인터렉션들로서 해석될 수 있다. 단지 하나의 예로서, 컴퓨팅 디바이스는 레이저 포인터일 수 있다. 이러한 예에서, 컴퓨팅 디바이스(1650)는 컴퓨터 생성 3D 환경에서 가상 레이저 포인터로 보여진다. 사용자가 컴퓨팅 디바이스(1650)를 조작함에 따라, AR/VR 공간에서의 사용자는 레이저 포인터의 움직임을 보게된다. 사용자는 컴퓨팅 디바이스(1650)상의 AR/VR 환경 또는 AR/VR 헤드셋(1690)상의 컴퓨팅 디바이스(1650)와의 인터렉션들로부터 피드백을 수신한다.
일부 실시예에서, 컴퓨팅 디바이스(1650)는 터치스크린을 포함할 수 있다. 예를 들어, 사용자는 터치스크린에서 일어나는 일을 AR/VR 공간에서 일어나는 일처럼 보이게하는 특정한 방식으로 터치스크린과 인터렉션할 수 있다. 예를 들어, 사용자는 터치스크린에 디스플레이된 콘텐츠를 확대하기 위해 핀칭-유형 모션을 사용할 수 있다. 터치스크린 상의 상기 핀칭-유형 모션은 AR/VR 공간에 제공된 정보가 확대되도록 할 수 있다. 일부 구현예에서, 컴퓨팅 디바이스는 컴퓨터로 생성된 3D 환경에서 가상 책으로서 렌더링될 수 있다. AR/VR 공간에서 책의 페이지는 AR/VR 공간에 디스플레이될 수 있고, 터치스크린을 통해 사용자의 손가락을 스와이핑하는 것은 가상 책의 페이지를 넘기거나 뒤집는 것으로 해석될 수 있다. 각 페이지가 넘김/뒤집힘에 따라, 페이지 콘텐츠가 변화를 볼 수 있음에 더하여, 책에 페이지를 넘기는 소리와 같은 오디오 피드백이 사용자에게 제공될 수 있다.
일부 실시예에서, 컴퓨팅 디바이스(예를 들어, 마우스, 키보드)에 더하여 하나 이상의 입력 디바이스들이 컴퓨터로 생성된 3D 환경에서 렌더링 될 수 있다. 렌더링된 입력 디바이스(예 : 렌더링된 마우스, 렌더링된 키보드)는 AR/VR 공간에서 렌더링된 대로 사용되어 AR/VR 공간의 오브젝트들을 제어할 수 있다.
다수의 실시예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 있다.
상기 기술에 더하여, 사용자가 본 명세서에 기술된 시스템들, 프로그램들, 디바이스들, 네트워크들 또는 구성들이 사용자 정보의 수집(예를 들어, 사용자의 소셜 네트워크에 관한 정보, 사회적 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치)을 하는 경우 및 콘텐츠 또는 서버로부터 통신에 사용자가 전송되는 경우에 관한 선택을 하게 하는 제어들이 사용자에게 제공된다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 사용자 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 사용자 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 어떤 정보가 수집될지, 정보가 어떻게 사용될지, 그리고 어떤 정보가 사용자에게 제공될지에 관한 제어를 가질 수 있다.
컴퓨터 시스템(예: 컴퓨팅 디바이스)은 무선 주파수(RF), 마이크로파 주파수(MWF), 및/또는 적외선 주파수(IRF) 무선 통신 기술 및 네트워크를 통한 통신에 적합한 프로토콜을 포함하는 임의의 알려진 무선 통신 기술 및 프로토콜을 사용하여, 네트워크 서버와 설정된 통신 링크를 통해 네트워크를 통해 네트워크 서버와 무선으로 통신하도록 구성될 수 있다.
본 명세서의 양태에 따라, 본 명세서에 기술된 다양한 기법의 구현예는 디지털 전자 회로에서 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에서 구현될 수 있다. 구현예는 데이터 프로세싱 장치(예: 프로그래머블 프로세서, 컴퓨터 또는 다수의 컴퓨터)에 의해 프로세싱하거나 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 프로그램 물(예: 정보 캐리어에 유형적으로 수록된 컴퓨터 프로그램, 기계 판독가능 저장 디바이스, 컴퓨터 판독가능 매체, 유형적 컴퓨터 판독가능 매체)로서 구현될 수 있다. 일부 구현예에서, 유형적 컴퓨터 판독가능 저장 매체는 실행될 때 프로세서로 하여금 프로세스를 수행하게 하는 명령어를 저장하도록 구성될 수 있다. 상기 기술된 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에서 또는 다수의 사이트에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터에서 프로세싱되도록 배포될 수 있다.
본 명세서에 개시된 특정 구조적 및 기능적 세부사항은 예시적 실시예를 설명하기 위한 목적으로만 대표된다. 그러나, 예시적 실시예는 많은 대안적인 형태로 구현될 수 있으며, 여기에서 설명하는 실시예로만 제한되는 것으로 해석되어서는 안 된다.
본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 명세서에 사용된 바와 같이, 단수 형태 "a", "an" 및 "the"는 문맥이 명백하게 다르게 나타내지 않는 한 복수 형태도 포함하는 것으로 의도된다. 본 명세서에서 사용될 때 "comprises", "comprising", "includes" 및/또는 "including"이라는 용어는 명시된 구성, 단계, 동작, 엘리먼트 및/또는 컴포넌트를 포함하지만, 하나 이상의 다른 구성, 단계, 동작, 엘리먼트, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다.
또한, 엘리먼트가 다른 엘리먼트 상에 "결합", "연결"되거나 또는 다른 엘리먼트에 "응답"하거나 또는 다른 엘리먼트 "상에" 존재하는 것으로 언급되는 경우, 엘리먼트는 다른 엘리먼트에 직접 결합, 연결되거나 그에 응답하거나 그 위에 존재하거나 또는 중간 엘리먼트들이 존재할 수 있다는 것이 이해될 것이다. 대조적으로, 엘리먼트가 다른 엘리먼트에 "직접 결합", "직접 연결" 또는 "직접 응답" 또는 "바로 위"에 존재하는 것으로 언급되는 경우, 중간 엘리먼트가 존재하지 않을 수 있다. 본 명세서에 사용된 바와 같이, "및/또는"이라는 용어는 연관된 나열된 아이템 중 하나 이상의 임의의 그리고 모든 조합을 포함한다.
"beneath", "below", "lower", "above", "upper" 등과 같은 공간적으로 상대적인 용어는 도면에 도시된 다른 엘리먼트(들) 또는 구성(들)과 관련하여 하나의 엘리먼트 또는 구성을 설명하기 위한 설명의 편의를 위해 본 명세서에서 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시된 배향에 추가하여 사용 또는 동작 중인 디바이스의 다른 배향을 포함하도록 의도된 것으로 이해될 것이다. 예를 들어, 도면의 디바이스가 뒤집힌 경우 다른 엘리먼트 또는 구성 "아래(below)" 또는 "아래(beneath)"로 설명된 엘리먼트는 다른 엘리먼트 또는 구성 "위(above)"를 배향한다. 따라서 "아래(below)"라는 용어는 위와 아래의 배향을 모두 포함할 수 있다. 디바이스는 다르게 배향될 수 있으며(70도 또는 다른 배향으로 회전), 본 명세서에서 사용된 공간적으로 상대적인 기술자는 그에 따라 해석될 수 있다.
개념의 예시적 실시예는 예시적 실시예의 이상적인 실시예(및 중간 구조)의 개략도인 도시인 단면도를 참조하여 본 명세서에 설명된다. 이와 같이, 예를 들어 제조 기법 및/또는 허용 오차의 결과로서 예시의 형상으로부터의 변형이 예상된다. 따라서, 설명된 개념의 예시적 실시예는 본 명세서에 예시된 영역의 특정 형상으로 제한되는 것으로 해석되어서는 안 되며, 예를 들어 제조로부터 초래되는 형상의 편차를 포함해야 한다. 따라서, 도면에 도시된 영역은 본질적으로 도식적이며, 그 형상은 디바이스의 영역의 실제 형상을 예시하기 위한 것이 아니며, 예시적 실시예의 범위를 제한하기 위한 것이 아니다.
"제1", "제2" 등의 용어가 다양한 엘리먼트를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 엘리먼트는 이러한 용어에 의해 제한되어서는 안 된다는 것이 이해될 것이다. 이러한 용어는 한 엘리먼트를 다른 엘리먼트와 구별하는데만 사용된다. 따라서, 현재 실시예의 교시를 벗어나지 않으면서 "제1" 엘리먼트는 "제2" 엘리먼트로 명명될 수 있다.
다르게 정의되지 않는 한, 본 명세서에서 사용되는 용어(기술적, 과학적 용어 포함)는 해당 개념이 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 기술 및/또는 본 명세서의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며 본 명세서에 명시적으로 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않을 것임을 이해해야 한다.
기술된 구현예의 특정 구성들이 본 명세서에 기술된 바와 같이 설명되었지만, 많은 수정, 대체, 변경 및 균등물이 통상의 기술자로 인해 발생할 것이다. 그러므로, 첨부된 청구범위는 구현의 범위 내에 있는 그러한 수정 및 변경을 포함하도록 의도된 것으로 이해되어야 한다. 이들 실시예는 제한적인 것이 아닌 예시일 뿐이며, 형태 및 세부사항의 다양한 변경이 이루어질 수 있음이 이해되어야 한다. 본 명세서에 기술된 장치 및/또는 방법의 임의의 부분은 상호 배타적인 조합을 제외하고는 임의의 조합으로 결합될 수 있다. 본 명세서에 기술된 구현예들은 기재된 다른 구현예들의 기능, 컴포넌트 및/또는 구성들의 다양한 조합 및/또는 서브 조합을 포함할 수 있다.

Claims (31)

  1. 컴퓨터로 구현되는 방법으로서,
    콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여:
    상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하는 단계, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며; 및
    검출된 붙여넣기 작업에 기초하여:
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현의 생성; 및
    상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 단계를 포함하며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링되는, 컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스의 렌더링은 콘텐츠 아이템들의 다수의 세트들 내의 각 콘텐츠 아이템에 대해 결정된 콘텐츠 유형에 따라 콘텐츠 아이템들 다수의 세트들 각각의 표현을 렌더링을 포함하는, 컴퓨터로 구현되는 방법.
  3. 청구항 1 또는 2에 있어서,
    상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은:
    상기 복사 작업 또는 상기 잘라내기 작업의 시간적 근접성; 또는
    상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템의 캡처와 연관된 기간에 따라 상기 클립보드 히스토리 사용자 인터페이스에서 그룹화되는, 컴퓨터로 구현되는 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서,
    상기 콘텐츠 아이템 및 상기 다른 콘텐츠 아이템은 상기 콘텐츠 아이템 또는 상기 다른 콘텐츠 아이템에서 표현된 검출 오브젝트에 따라 상기 클립보드 히스토리 사용자 인터페이스에서 그룹화되는, 컴퓨터로 구현되는 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서,
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은:
    상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 상기 콘텐츠 아이템의 텍스트 표현을 생성하는 것; 및
    상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 태깅 언어 표현을 생성하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서,
    입력 필드에서 커서를 검출하는 단계;
    상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하는 단계를 더 포함하며; 그리고
    상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 엘리먼트로서 제공하는 것을 포함하고, 상기 렌더링된 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함하는, 컴퓨터로 구현되는 방법.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서,
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 상기 콘텐츠 아이템과 연관된 태깅 언어 정보 검출에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서,
    상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출하는 것에 응답하여, 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하는 단계를 더 포함하며, 상기 미리보기는 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함하는, 컴퓨터로 구현되는 방법.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성되는, 컴퓨터로 구현되는 방법.
  10. 청구항 1 내지 9 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성되는, 컴퓨터로 구현되는 방법.
  11. 청구항 1 내지 10 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스와 연관된 제2 붙여넣기 작업을 검출하는 단계; 및
    상기 콘텐츠 아이템이 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 제2 붙여넣기 작업과 연관된 콘텐츠 아이템을 덮어쓰는 단계를 더 포함하며, 상기 덮어쓰는 단계는 상기 제2 붙여넣기 작업을 수신하는 애플리케이션에서 상기 콘텐츠 아이템을 렌더링할 때 상기 콘텐츠 아이템을 난독화하는, 컴퓨터로 구현되는 방법.
  12. 청구항 1 내지 11 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스와 연관된 복사 작업을 검출하는 단계;
    상기 미리보기 데이터가 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 검출된 복사 작업과 연관된 미리보기 데이터를 덮어쓰는 단계, 상기 덮어쓰는 단계는 상기 클립보드 히스토리 사용자 인터페이스에 묘사된 상기 데이터의 미리보기를 난독화하며; 및
    상기 미리보기 데이터에 대응하는 적어도 하나의 콘텐츠 아이템을 렌더링하는 대신 상기 덮어쓰기된 미리보기 데이터로 상기 클립보드 히스토리 사용자 인터페이스를 렌더링하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  13. 청구항 1 내지 12 중 어느 한 항에 있어서,
    각각의 콘텐츠 아이템과 연관된 각각의 후속적으로 검출된 복사 작업 또는 잘라내기 작업에 대해:
    상기 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거링하는 단계, 상기 데이터의 검색은 상기 데이터가 적어도 하나의 태그를 포함하는지 여부를 결정하도록 구성되며; 및
    상기 데이터의 검색에 기초하여 상기 각각의 콘텐츠 아이템의 각각의 표현을 생성하는 단계;
    상기 각각의 표현에 따라 렌더링된 각 개별 콘텐츠 아이템으로 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  14. 청구항 1 내지 13 중 어느 한 항에 있어서,
    상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 상기 콘텐츠 아이템 및 각 개별 콘텐츠 아이템을 표현하도록 구성된 운영 체제 기반 가상 디지털 클립보드를 생성하는 단일 프로세스를 사용하여 렌더링되는, 컴퓨터로 구현되는 방법.
  15. 저장된 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금:
    클립보드 히스토리 사용자 인터페이스를 생성하게 하고, 상기 클립보드 히스토리 사용자 인터페이스는 복수의 콘텐츠 아이템들을 렌더링하도록 구성되며;
    콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여:
    상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하게 하고, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며; 그리고
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하게 하고; 그리고
    상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하게 하도록 구성되며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링되며, 상기 콘텐츠 아이템과 상기 다른 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 함께 그룹화되는, 컴퓨터 판독가능 저장 매체.
  16. 청구항 15에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스의 렌더링은 붙여넣기 작업의 검출에 응답하여 발생하는, 컴퓨터 판독가능 저장 매체.
  17. 청구항 15 내지 16 중 어느 한 항에 있어서,
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은:
    상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하지 않는다는 결정에 응답하여, 상기 콘텐츠 아이템의 텍스트 표현을 생성하는 것; 및
    상기 콘텐츠 아이템과 연관된 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 태깅 언어 표현을 생성하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  18. 청구항 15 내지 17 중 어느 한 항에 있어서,
    상기 명령어들 추가로 상기 컴퓨팅 시스템으로 하여금:
    입력 필드에서 커서를 검출하게 하고;
    상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하게 하도록 구성되며; 그리고
    상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 엘리먼트로서 제공하는 것을 포함하고, 상기 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함하는, 컴퓨터 판독가능 저장 매체.
  19. 청구항 15 내지 18 중 어느 한 항에 있어서,
    상기 콘텐츠 아이템과 연관된 데이터의 검색은 상기 클립보드 히스토리 사용자 인터페이스와 연관된 버퍼로부터 상기 콘텐츠 아이템과 연관된 태깅 언어 정보를 검색하는 것과 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정하는 것을 포함하며; 및
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 상기 태깅 언어 정보가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함한다는 결정에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  20. 청구항 15 내지 19 중 어느 한 항에 있어서,
    상기 명령어들 추가로 상기 컴퓨팅 시스템으로 하여금:
    상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출함에 응답하여, 상기 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하게 하도록 구성되며, 상기 미리보기는 상기 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함하는, 컴퓨터 판독가능 저장 매체.
  21. 청구항 15 내지 20 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  22. 청구항 15 내지 21 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성되는, 컴퓨터 판독가능 저장 매체.
  23. 청구항 15 내지 22 중 어느 한 항에 있어서,
    상기 명령어들 추가로 상기 컴퓨팅 시스템으로 하여금:
    상기 클립보드 히스토리 사용자 인터페이스와 연관된 복사 작업을 검출하게 하고;
    상기 미리보기 데이터가 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 검출된 복사 작업과 연관된 미리보기 데이터를 덮어쓰게 하고, 상기 덮어쓰게 하고, 상기 클립보드 히스토리 사용자 인터페이스에 묘사된 상기 데이터의 미리보기를 난독화하며; 그리고
    상기 미리보기 데이터에 대응하는 적어도 하나의 콘텐츠 아이템을 렌더링하는 대신 상기 덮어쓰기된 미리보기 데이터로 상기 클립보드 히스토리 사용자 인터페이스를 렌더링하게 하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  24. 청구항 15 내지 23 중 어느 한 항에 있어서,
    상기 명령어들 추가로 상기 컴퓨팅 시스템으로 하여금:
    각각의 콘텐츠 아이템과 연관된 각각의 후속적으로 검출된 복사 작업 또는 잘라내기 작업에 대해:
    상기 각각의 콘텐츠 아이템과 연관된 데이터의 검색을 트리거링하게 하고, 상기 데이터의 검색은 상기 데이터가 적어도 하나의 테이블 태그 또는 적어도 하나의 이미지 태그를 포함하는지 여부를 결정하도록 구성되며; 및
    상기 데이터의 검색에 기초하여 상기 각각의 콘텐츠 아이템의 각각의 표현을 생성하게 하고;
    상기 각각의 표현에 따라 렌더링된 각 개별 콘텐츠 아이템으로 상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하게 하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  25. 컴퓨팅 시스템으로서,
    클립보드 모듈, 상기 클립보드 모듈은:
    클립보드 히스토리 사용자 인터페이스를 생성하고, 상기 클립보드 히스토리 사용자 인터페이스는 복수의 콘텐츠 아이템들을 렌더링하도록 구성되며;
    콘텐츠 아이템과 연관된 복사 작업 또는 잘라내기 작업 검출에 응답하여:
    상기 콘텐츠 아이템과 연관된 데이터의 검색을 트리거하고, 상기 검색은 콘텐츠 유형을 결정하도록 구성되며; 그리고
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하도록 구성되며; 및
    렌더링 모듈을 포함하며, 상기 렌더링 모듈은 검출된 붙여넣기 작업에 기초하여, 상기 표현에 따라 클립보드 히스토리 사용자 인터페이스에서 렌더링된 콘텐츠 아이템으로 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하도록 구성되며, 상기 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 렌더링된 다른 콘텐츠 아이템과 함께 렌더링되며, 상기 콘텐츠 아이템과 상기 다른 콘텐츠 아이템은 상기 클립보드 히스토리 사용자 인터페이스에서 함께 그룹화되는, 시스템.
  26. 청구항 25에 있어서,
    상기 클립보드 모듈은:
    입력 필드에서 커서를 검출하고;
    상기 입력 필드가 상기 클립보드 히스토리 사용자 인터페이스의 적어도 하나의 콘텐츠 아이템에 대응한다고 결정하도록 더 구성되며; 그리고
    상기 클립보드 히스토리 사용자 인터페이스의 렌더링을 트리거하는 것은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스를 상기 입력 필드에 인접한 메뉴로서 제공하는 것을 포함하고, 상기 클립보드 히스토리 사용자 인터페이스는 상기 입력 필드에 대한 입력으로서 제안하도록 표시된 적어도 하나의 콘텐츠 아이템을 포함하는, 시스템.
  27. 청구항 25 또는 청구항 26에 있어서,
    상기 콘텐츠 유형에 기초하여 상기 콘텐츠 아이템의 표현을 생성하는 것은 태깅 언어 정보가 상기 콘텐츠 아이템과 연관된다는 것을 검출함에 응답하여, 상기 콘텐츠 아이템의 일부를 확대/축소할지 클립핑할지 여부를 결정하는 것과 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 상기 콘텐츠 아이템의 스케일링된 버전을 생성하기 위해 상기 콘텐츠 아이템의 일부의 확대/축소 또는 클립핑을 수행하는 것을 포함하는, 시스템.
  28. 청구항 25 내지 27 중 어느 한 항에 있어서,
    상기 렌더링 모듈은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 적어도 하나의 렌더링된 콘텐츠 아이템에 대한 입력을 검출함에 응답하여, 상기 적어도 하나의 렌더링된 콘텐츠 아이템의 미리보기를 생성하도록 더 구성되며, 상기 미리보기는 상기 적어도 하나의 콘텐츠 아이템에 대한 붙여넣기 작업을 시뮬레이션하는 렌더링을 포함하는, 시스템.
  29. 청구항 25 내지 28 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 상기 클립보드 히스토리 사용자 인터페이스에 대한 액세스 권한을 가진 사용자와 연관된 둘 이상의 사용자 프로필들로부터 검색된 콘텐츠 아이템들을 포함하도록 구성되는, 시스템.
  30. 청구항 25 내지 29 중 어느 한 항에 있어서,
    상기 클립보드 히스토리 사용자 인터페이스는 멀티 아이템 작업을 지원하도록 구성되고, 상기 멀티 아이템 작업들은 멀티 아이템 복사 작업, 멀티 아이템 붙여넣기 작업 및 멀티 아이템 렌더링 작업을 포함하며, 멀티 아이템 작업들 각각은 상기 렌더링된 클립보드 히스토리 사용자 인터페이스에서 검출된 단일 입력에 의해 트리거되도록 구성되는, 시스템.
  31. 청구항 25 내지 30 중 어느 한 항에 있어서,
    상기 클립보드 모듈은:
    상기 클립보드 히스토리 사용자 인터페이스와 연관된 제2 붙여넣기 작업을 검출하고; 그리고
    상기 콘텐츠 아이템이 비공개로 표시되었다는 것을 검출함에 응답하여, 상기 제2 붙여넣기 작업과 연관된 콘텐츠 아이템의 덮어쓰기를 트리거하도록 더 구성되며, 상기 덮어쓰는 것은 상기 제2 붙여넣기 작업을 수신하는 애플리케이션에서 상기 콘텐츠 아이템을 렌더링할 때 상기 콘텐츠 아이템을 난독화하는, 시스템.

KR1020237021488A 2020-12-31 2021-12-15 다수의 아이템 복사 및 붙여넣기의 운영 체제 수준 관리 KR20230107690A9 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/247,940 2020-12-31
US17/247,940 US11960447B2 (en) 2020-12-31 2020-12-31 Operating system-level management of multiple item copy and paste
PCT/US2021/072933 WO2022147403A1 (en) 2020-12-31 2021-12-15 Operating system-level management of multiple item copy and paste

Publications (2)

Publication Number Publication Date
KR20230107690A true KR20230107690A (ko) 2023-07-17
KR20230107690A9 KR20230107690A9 (ko) 2024-03-25

Family

ID=79687078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237021488A KR20230107690A9 (ko) 2020-12-31 2021-12-15 다수의 아이템 복사 및 붙여넣기의 운영 체제 수준 관리

Country Status (4)

Country Link
US (1) US11960447B2 (ko)
EP (1) EP4217867A1 (ko)
KR (1) KR20230107690A9 (ko)
WO (1) WO2022147403A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10438437B1 (en) * 2019-03-20 2019-10-08 Capital One Services, Llc Tap to copy data to clipboard via NFC
CN112698966A (zh) * 2020-12-25 2021-04-23 北京小米移动软件有限公司 剪切板信息读写方法、剪切板信息读写装置及存储介质
US11625160B2 (en) * 2020-12-31 2023-04-11 Google Llc Content navigation method and user interface
US20220222495A1 (en) * 2021-01-13 2022-07-14 International Business Machines Corporation Using contextual transformation to transfer data between targets
US20230205393A1 (en) * 2021-12-29 2023-06-29 Atlassian Pty Ltd. Dynamic visualization of an object tracked by an object tracking system in a graphical user interface
US20230229850A1 (en) * 2022-01-14 2023-07-20 Microsoft Technology Licensing, Llc Smart tabular paste from a clipboard buffer
US11899910B2 (en) * 2022-03-15 2024-02-13 International Business Machines Corporation Multi-location copying and context based pasting
US11861139B1 (en) * 2022-10-31 2024-01-02 Microsoft Technology Licensing, Llc Deferring and accessing deferred content from multiple applications

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496853B2 (en) * 2003-05-08 2009-02-24 International Business Machines Corporation Method of managing items on a clipboard
US7870493B2 (en) * 2005-10-03 2011-01-11 Microsoft Corporation Distributed clipboard
US20090083738A1 (en) * 2007-09-25 2009-03-26 Microsoft Corporation Automated data object set administration
US7818458B2 (en) * 2007-12-03 2010-10-19 Microsoft Corporation Clipboard for application sharing
US8103951B2 (en) * 2008-09-30 2012-01-24 Apple Inc. Dynamic schema creation
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
US9507512B1 (en) * 2012-04-25 2016-11-29 Amazon Technologies, Inc. Using gestures to deliver content to predefined destinations
KR101371923B1 (ko) * 2012-09-07 2014-03-07 주식회사 팬택 휴대 단말 제어 장치 및 방법
US9325775B2 (en) * 2012-09-11 2016-04-26 Google Inc. Clipboard
US20140160049A1 (en) * 2012-12-10 2014-06-12 Samsung Electronics Co., Ltd. Clipboard function control method and apparatus of electronic device
US20150363069A1 (en) * 2013-03-15 2015-12-17 Nec Corporation Display control
US20140280132A1 (en) * 2013-03-15 2014-09-18 Desire2Learn Incorporated Method and system for network enabled digital clipboard
US9710147B2 (en) * 2013-05-29 2017-07-18 Lg Electronics Inc. Mobile terminal and controlling method thereof
US20150012861A1 (en) * 2013-07-02 2015-01-08 Dropbox, Inc. Syncing content clipboard
JP2015014960A (ja) * 2013-07-05 2015-01-22 ソニー株式会社 情報処理装置、および記憶媒体
CN105404616A (zh) * 2014-06-19 2016-03-16 国际商业机器公司 用于数据移动的方法和***
US20170294212A1 (en) * 2015-04-10 2017-10-12 OMiro IP LLC Video creation, editing, and sharing for social media
US20160342449A1 (en) * 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Data exchange across multiple computing devices through a proactive intelligent clipboard
US10489032B1 (en) * 2015-07-29 2019-11-26 Google Llc Rich structured data interchange for copy-paste operations
US10908774B2 (en) * 2015-12-28 2021-02-02 Successfactors, Inc. Copy-paste history on a mobile device
EP3362920A4 (en) * 2016-01-14 2018-12-05 Samsung Electronics Co., Ltd. Method and system for automatically managing content in an electronic device
KR20180002208A (ko) * 2016-06-29 2018-01-08 엘지전자 주식회사 단말기 및 그 제어 방법
US10627993B2 (en) * 2016-08-08 2020-04-21 Microsoft Technology Licensing, Llc Interacting with a clipboard store
CN106339221A (zh) * 2016-08-23 2017-01-18 Tcl移动通信科技(宁波)有限公司 一种基于移动终端的剪贴板控制方法及***
US10417320B2 (en) * 2016-12-28 2019-09-17 Microsoft Technology Licensing, Llc Providing insertion feature with clipboard manager application
US10509546B2 (en) * 2017-08-31 2019-12-17 Salesforce.Com, Inc. History component for single page application
US10783012B2 (en) * 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
US10949272B2 (en) * 2018-06-14 2021-03-16 Microsoft Technology Licensing, Llc Inter-application context seeding
US11099865B2 (en) * 2019-01-02 2021-08-24 Vmware, Inc. Auditing clipboard operations in virtual desktop environments
US11144372B2 (en) * 2019-08-08 2021-10-12 Microsoft Technology Licensing, Llc Cross-platform stateless clipboard experiences
CN110515510B (zh) * 2019-08-20 2021-03-02 北京小米移动软件有限公司 数据处理方法、装置、设备及存储介质
US11132115B1 (en) * 2020-06-30 2021-09-28 Microsoft Technology Licensing, Llc Copying user interface artifacts with dynamic levels of detail and shortcut keys
US11321153B1 (en) * 2021-04-08 2022-05-03 International Business Machines Corporation Contextual copy and paste across multiple devices

Also Published As

Publication number Publication date
KR20230107690A9 (ko) 2024-03-25
US11960447B2 (en) 2024-04-16
US20220206995A1 (en) 2022-06-30
EP4217867A1 (en) 2023-08-02
WO2022147403A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US11960447B2 (en) Operating system-level management of multiple item copy and paste
KR102490421B1 (ko) 터치 감응형 이차 디스플레이에서 사용자 인터페이스 제어부들을 동적으로 제공하기 위한 시스템들, 디바이스들, 및 방법들
CN109690481B (zh) 用于动态功能行定制的方法和设备
US11423209B2 (en) Device, method, and graphical user interface for classifying and populating fields of electronic forms
US11269483B2 (en) Device, method, and graphical user interface for managing content items and associated metadata
CN111339032B (zh) 管理具有多页面的文件夹的设备、方法和图形用户界面
US10248305B2 (en) Manipulating documents in touch screen file management applications
US10331321B2 (en) Multiple device configuration application
CN108319491B (zh) 管理用户界面中的工作空间
KR101617598B1 (ko) 식별자들의 목록을 내비게이션하기 위한 장치, 방법 및 그래픽 사용자 인터페이스
EP2856300B1 (en) Optimization schemes for controlling user interfaces through gesture or touch
US11625160B2 (en) Content navigation method and user interface
US20150169285A1 (en) Intent-based user experience
US20130205189A1 (en) Apparatus And Method For Interacting With An Electronic Form
EP3627303A1 (en) Method and apparatus for providing user interface of portable device
US10402470B2 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
MX2013003562A (es) Vista previa de contenido.
US20150317388A1 (en) Information search system and method
US10921974B2 (en) Using drag and drop to apply metadata
CN106797547A (zh) 操作***对位置卡的支持
CN112230909A (zh) 小程序的数据绑定方法、装置、设备及存储介质
US20160231876A1 (en) Graphical interaction in a touch screen user interface
US20220365639A1 (en) Browser tab management
US9928220B2 (en) Temporary highlighting of selected fields
US20230244325A1 (en) Learned computer control using pointing device and keyboard actions

Legal Events

Date Code Title Description
G170 Re-publication after modification of scope of protection [patent]