KR101159390B1 - 페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기위한 방법 및 시스템 - Google Patents

페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기위한 방법 및 시스템 Download PDF

Info

Publication number
KR101159390B1
KR101159390B1 KR1020077018761A KR20077018761A KR101159390B1 KR 101159390 B1 KR101159390 B1 KR 101159390B1 KR 1020077018761 A KR1020077018761 A KR 1020077018761A KR 20077018761 A KR20077018761 A KR 20077018761A KR 101159390 B1 KR101159390 B1 KR 101159390B1
Authority
KR
South Korea
Prior art keywords
data
document
content
command
page
Prior art date
Application number
KR1020077018761A
Other languages
English (en)
Other versions
KR20070108176A (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 KR20070108176A publication Critical patent/KR20070108176A/ko
Application granted granted Critical
Publication of KR101159390B1 publication Critical patent/KR101159390B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

콘텐트와의 사용자 대화를 가능케하는 것을 포함하는 문서 뷰잉 기능을 해당 프로그램에 제공하도록 다른 컴퓨터 프로그램에 의해 호스팅될 수 있는 문서 뷰어 컨트롤(도 4, 204)이 제공된다. 인터페이스는 스크롤(도 4, 441), 확대/축소(도 4, 442), 찾기(도 4, 443), 레이아웃(도 4, 444), 복사 등을 포함하는 문서 뷰잉 기능에의 플러그 인 액세스를 프로그램에 제공한다. 속성은 인터페이스를 통해 검색 및 설정될 수 있고, 커맨드가 발행될 수 있다. 그 결과 어떤 프로그램도 문서 뷰잉 기능을 동일한 방식으로 제공할 수 있게 된다. 또한, 스타일 등을 통해, 프로그램 개발자는 디폴트 기능을 비활성화시키고/거나 덮어쓰기하여, 소정의 프로그램에 대해 소망에 따라 그 문서 뷰어를 커스터마이즈하고/거나 확장할 수 있다.
Figure R1020077018761
문서 뷰잉 컨트롤, 문서 뷰어, 콘텐트, 메뉴 컨트롤, 스크롤 컨트롤, 찾기 컨트롤, 레이아웃 컨트롤, 프린트 컨트롤

Description

페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR DISPLAYING AND INTERACTING WITH PAGINATED CONTENT}
본 발명은 일반적으로 컴퓨터에 관한 것이며, 보다 구체적으로는 컴퓨터 시스템상에서 콘텐트를 디스플레이하는 것에 관한 것이다.
컴퓨터 시스템의 가장 일반적인 사용 중 한 가지는 문서의 콘텐트를 디스플레이하는 것이다. 현대의 컴퓨터 시스템 및 프로그램은 문서에 있는 하이퍼링크된 위치로 점프하기, 콘텐트를 확대/축소하기(zooming), 사용자로 하여금 원하는 페이지 번호를 지시함으로써 원하는 페이지로 점프하도록 하는 것, 스크롤 및 키보드 키를 사용하여 문서를 탐색하도록 하는 것, 여러 다른 문서 뷰잉 옵션을 수행하도록 하는 것을 포함하여 문서를 볼 때에 상당한 유연성을 제공한다.
하지만, 페이지 매겨진 콘텐트를 디스플레이하길 원하는 애플리케이션 프로그램 개발자는 전형적으로 그들 자신의 문서 뷰잉 기능을 제공하도록 코드를 기입한다. 어느 정도, 이는 이제까지 일반적으로 개발자가 이런 뷰잉 기능을 제공하는 다른 방법이 없었기 때문일 뿐만 아니라, 서로 다른 유형의 애플리케이션 프로그램과 콘텐트가 존재하고, 애플리케이션 개발자는 그들의 특정 프로그램과 디스플레이시킬 콘텐트의 유형에 대해 알 수 있는 피처(features)를 제공하길 원하기 때문이 기도 하다.
동시에, 콘텐트 뷰잉 코드가 제공하는 여러 기능과 피처는 프로그램들 간에서 공통적이다. 예를 들어, 확대/축소하기, 스크롤하기, 텍스트 검색 등은 브라우저, 워드 프로세서, 문서 판독기, 및 다른 프로그램들에서 발견될 수 있다. 이들 피처를 모든 애플리케이션 내로 개별적으로 코딩하는 것은 매우 비효율적이며, 일반적으로 많은 관습적인 코드가 존재하게 되어 많은 버그들이 있을 수 있다는 점에서 견고성을 낮춘다. 또한, 이는 다양한 애플리케이션들 각각이 콘텐트를 보기 위해 그들 각자의 방식을 제공한다는 점에서 일관성이 없게 만든다. 결과적으로, 사용자는 단순히 콘텐트를 보기 위해 여러 다른 유형의 프로그램들과 그들의 사용자 인터페이스들을 학습해야 하며; 때때로, 사용자에게는 다른 프로그램에 의해 제공되는 것과 동일한 피처처럼 보이는 것이 실제로는 상당히 다르게 동작한다. 마찬가지로, 키 조합 및/또는 펑션 키는 종종 프로그램별로 서로 다른 의미를 갖는다.
기능과 피처가 프로그램들 간에 일관성 있고 견고성을 갖도록 하기 위해서, 프로그램들이 공통의 문서 뷰잉 기능과 피처를 포함하는 방법이 요구된다. 동시에, 이러한 해법은 어떠한 것이라도, 개발자가 일정 레벨의 커스터마이제이션(customization)을 추가하여 문서 뷰잉이 소정의 프로그램에서 동작하는 방법을 희망에 따라 변형할 수 있도록, 확장가능해야 한다.
간략하게 말해서, 본 발명은, 컨트롤 중인 문서 뷰어에 애플리케이션 프로그래밍 인터페이스가 제공되는 방법 및 시스템과, 호스팅 프로그램이 문서 뷰어의 기능을 포함하고 그 기능을 확장할 수 있게 해주는 방법들을 제공한다. 문서 뷰어 컨트롤은 페이지 레이아웃, 탐색, 및 적절하게 포맷된 콘텐트와의 일반적인 사용자 대화를 관리하는 기능을 한다. 펑션은 프린팅, 키워드 찾기, 비례적 확대/축소, 콘텐트 흐름의 다중 경로 레이아웃, 및/또는 콘텐트의 탐색을 포함한다. 호스팅 프로그램은 그들 피처 중 원하지 않는 임의의 피처를 선택적으로 비활성화시킬 수 있고, 이용가능하지만 디폴트로 활성화되어 있지 않은 피처를 활성화시킬 수 있고, 또한 추가 피처들로 문서 뷰어 컨트롤을 증대시킬 수 있다.
호스트 프로그램은 문서 뷰잉 컨트롤을 이용하여 그 가시 공간에 콘텐트를 디스플레이한다. 문서 뷰잉 컨트롤 중 하나는, 일반적으로 상단에 툴바 영역 및 그 아래에 콘텐트 뷰잉 영역(뷰포트)(viewport)을 포함하는 디폴트 사용자 인터페이스를 제공한다. 이 툴바 영역에는, 문서 뷰잉 컨트롤이 문서가 표시되는 방법을 관리하기 위한 하나 이상의 버튼, 및 다른 대화형 아이템 등의 사용자 인터페이스 구성요소를 디스플레이할 수 있다. 또한, 스크롤바도 제공된다. 디폴트로, 공통의 문서 대화 펑션이 툴바 또는 메뉴를 통해, 스크롤 및 확대/축소, 찾기(텍스트 검색), 및 복사하기 위해 활성화되는 커맨드들로서 제공된다. 프린트가 제공될 수 있다. 호스팅 프로그램은 디폴트 문서 뷰어 피처 전부보다는 적은 피처를 선택적으로 사용할 수 있고/있거나 디폴트로 인에이블되어 있지 않은 피처 및 기능을 활성화시킬 수 있다. 한 가지 예시적인 툴바 영역은 메뉴 버튼, 확대(zoom-in) 버튼, 확대/축소 콤보박스(zoom combobox), 축소(zoom-out) 버튼, 복사 버튼, 및 찾기 버튼을 제공한다.
한 가지 예시적인 구현예에서, 문서 뷰잉 컨트롤은 수개의 속성 및 커맨드를 공용 메소드를 통해 노출시킨다. 문서 뷰잉 컨트롤은 문서 뷰잉 기능을 수행하기 위한 그 밖의 컨트롤, 예컨대, 스크롤 행동을 조정하기 위한 스크롤 컨트롤, 확대/축소 조정을 위한 확대/축소 컨트롤, 텍스트에 일치하는 텍스트 콘텐트를 검색하기 위한 찾기 컨트롤, 사용자가 탐색할 페이지의 그리드를 레이아웃하기 위한 레이아웃 컨트롤, 및 메뉴 관련 기능을 조정하기 위한 메뉴 컨트롤을 포함할 수 있다.
프로그램에 리턴될 수 있는 속성은 콘텐트 관련 데이터, 페이지 카운트 데이터, 첫번째 가시(visible) 페이지 데이터, 마지막 가시 페이지 데이터, 수평 오프셋 데이터, 수직 오프셋 데이터, 범위(extent) 너비 데이터, 범위 높이 데이터, 뷰포트 너비 데이터, 뷰포트 높이 데이터, 페이지 경계가 표시될지 여부를 나타내는 데이터, 확대/축소 백분율 데이터, 그리드 컬럼 카운트 데이터, 수직 페이지 이격(spacing) 데이터, 수평 페이지 이격 데이터, 문서 시작인지 여부를 나타내는 데이터, 문서 끝인지 여부를 나타내는 데이터, 문서가 확대될 수 있는지 여부를 나타내는 데이터, 문서가 축소될 수 있는지 여부를 나타내는 데이터, 및 툴바 상태를 나타내는 데이터를 포함할 수 있다. 프로그램이 설정할 수 있는 속성은 콘텐트 관련 데이터, 첫번째 가시 페이지 데이터, 수평 오프셋 데이터, 수직 오프셋 데이터, 페이지 경계 표시 데이터, 확대/축소 백분율 데이터, 그리드 컬럼 카운트 데이터, 수직 페이지 이격 데이터, 수평 페이지 이격 데이터, 및 툴바 상태를 변경하기 위한 데이터를 포함할 수 있다. 커맨드는 툴바 토글 커맨드, 그리드 컬럼 카운트에 대한 피트 커맨드, 문서 재처리 커맨드, 섬네일 뷰 커맨드, 너비에 대한 피트 뷰 커맨드, 및 높이에 대한 피트 뷰 커맨드를 포함한다.
문서 뷰잉 컨트롤은 콘텐트를 디스플레이할 필요가 있을 때마다 문서 뷰어로서 디폴트로 자동으로 제공될 수 있다. 프로그램은 디폴트 문서 뷰잉 컨트롤을 그 자신의 커스터마이즈된 문서 뷰잉 컨트롤로 덮어쓰기(override)할 수 있다. 문서 뷰잉 컨트롤이 스타일 지정될 수 있으므로, 문서 뷰어를 소망에 따라 표시하기 위하여, 문서 뷰어의 특성(characteristics)은 단 한번만 지정될 필요가 있다. 애플리케이션 프로그램은 단순히 스타일을 통해, 그것이 어떤 피처들을 원하는지를 기술할 수 있고, 지정된 스타일로 문서 뷰어가 표시된다. 스타일은 명명될 수 있어서, 이로써 프로그램은 서로 다른 스타일의 문서 뷰어를 정의할 수 있고, 그런 다음 프로그램 실행 동안 어떤 스타일을 적절한 시점에 이용할 것인지를 다양화한다.
그 밖의 다른 양상은 도면과 관련하여 취해진 이후의 상세한 설명으로부터 분명해질 수 있다.
도 1은 본 발명이 포함될 수 있는 컴퓨터 시스템을 나타내는 블록도이다.
도 2는 본 발명의 다양한 양상에 따른, 문서 뷰잉 컨트롤이 프로그램에 의해 호스팅될 수 있는 예시적인 구성을 도시한다.
도 3은 본 발명의 다양한 양상에 따른, 문서 뷰잉 컨트롤과의 대화에 사용되는 사용자 인터페이스 구성요소를 나타내는 예시적인 스크린샷을 도시한다.
도 4는 본 발명의 다양한 양상에 따른, 예시적인 문서 뷰잉 컨트롤이 다양한 다른 컨트롤들로 이루어지는 구성에 대한 블록도이다.
도 5는 본 발명의 다양한 양상에 따른, 스크롤-관련된 인터페이스를 포함하여 그리드 레이아웃을 위한 예시적인 레이아웃 클래스를 도시한다.
예시적인 운영 환경( EXEMPLARY OPERATING ENVIRONMENT )
도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 한 가지 예일 뿐이며, 본 발명의 사용 또는 기능의 범위를 제한하는 것으로 의도되지 않는다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에서 도시된 임의의 하나의 컴포넌트 또는 컴포넌트들의 조합에 관련해 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안 된다.
본 발명은 수많은 기타 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 본 발명에 사용하기에 적합할 수 있는 공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예로서, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋톱 박스, 프로그램가능한 소비자 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치들 중 임의의 것을 포함하고 있는 분산 컴퓨팅 환경 등을 들 수 있으나, 이에만 한정되지는 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실현 가능하다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함한 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 1을 참조해 보면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110) 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함해서 다양한 시스템 컴포넌트들을 프로세싱 유닛(120)에 결합시키는 시스템 버스(121)를 포함할 수 있으며, 이에만 한정되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하여 여러 형태의 버스 구조들 중 임의의 것일 수 있다. 예로서, 이런 아키텍처는 업계 표준 구조(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 확장 ISA(Enhanced ISA) 버스, 비디오 전자 공학 표준 협회(VESA) 로컬 버스, 및 메자닌 버스라고 알려진 주변 장치 상호 접속(PCI) 버스를 또한 포함하며, 이에만 한정되지는 않는다.
컴퓨터(110)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스 될 수 있는, 휘발성 혹은 비휘발성 매체, 분리형 혹은 비분리형 매체 모두를 포함하는 임의 이용가능한 매체일 수 있다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있으며, 이에만 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 기타 데이터와 같은 정보를 저장하기 위해 모든 방법 또는 기술로 구현되는 휘발성 혹은 비휘발성, 분리형 혹은 비분리형 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD, 또는 기타 광디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장하는데 사용될 수 있는 기타 다른 매체들을 포함하며, 이에만 한정되지 않는다. 통상, 통신 매체는 반송파 또는 기타 전송 메커니즘 등의 변조된 데이터 신호에서 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 기타 데이터를 구현하고, 모든 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 신호 내의 정보를 부호화하는 방법으로 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크, 다이렉트 유선 연결과 같은 유선 매체와, 음향, RF, 적외선 같은 무선 매체, 기타 무선 매체를 포함하며, 이에만 한정되지 않는다. 상기 매체의 모든 조합들이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM:130) 및 임의 접근 메모리(RAM:132)와 같은 휘발성 및/또는 비휘발성 형태로 된 컴퓨터 저장 매체를 포함한다. 기동 시, 컴퓨터(110) 내부의 구성요소들 사이에서 정보 전송을 돕는 기본 루틴들을 포함하는 기본 입력/출력 시스템(BIOS)(133)은 전형적으로 ROM(131)에 저장된다. RAM(132)은 전형적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고/있거나 현재 프로세싱 유닛(120)에 의해서 동작되는 프로그램 모듈들 및/또는 데이터 를 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램들(135), 기타 프로그램 모듈들(136), 및 프로그램 데이터(137)를 예시하며, 이에만 한정되지 않는다.
컴퓨터(110)는 또한 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1은 비분리형 비휘발성 자기 매체로부터 판독하거나 이것에 기입하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 이것에 기입하는 자기 디스크 드라이브(151), 및 CD-ROM 디스크 또는 기타 광매체와 같은 분리형 비휘발성 광디스크(156)로부터 판독하거나 이것에 기입하는 광디스크 드라이브(155)를 예시한다. 예시적인 운영 환경에서 사용될 수 있는 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테입 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테입, 고체 RAM, 고체 ROM 등이 될 수 있으며, 이에만 한정되지 않는다. 하드 디스크 드라이브(141)는 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 전형적으로 연결되고, 자기 디스크 드라이브(151) 및 광디스크 드라이브(155)는 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 전형적으로 연결된다.
도 1에서 예시 및 전술된 드라이브들 및 그 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 및 컴퓨터(110)의 그 밖의 다른 데이터를 저장한다. 도 1에서, 예를 들면 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램들(145), 기타 프로그램 모듈들(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이런 컴포넌트들은 운영 체제(134), 애플리케이션 프로그램들(135), 기타 프로그램 모듈들(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있음에 유의해야 한다. 운영 체제(144), 애플리케이션 프로그램들(145), 기타 프로그램 모듈들(146), 및 프로그램 데이터(147)에 다른 번호가 주어졌다는 것은 적어도 이들이 서로 다른 사본이라는 것을 나타낸다. 사용자는 키보드(162), 일반적으로 마우스라 지칭되는 포인팅 장치(161), 트랙볼, 또는 터치 패드 등의 입력 장치를 통해 명령들 및 정보를 컴퓨터(110)에 입력할 수 있다. 기타 입력 장치(도시 생략)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 휴대형 PC, 또는 기타 기입용 타블릿의 터치-감응형 스크린 등을 포함할 수 있다. 상기 장치들과 기타 입력 장치들은 시스템 버스(121)에 결합된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 종종 연결되지만, 예를 들면, 병렬 포트, 게임 포트, 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스 및 버스 구조들에 의해 연결될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 연결된다. 모니터 이외에, 컴퓨터는 출력 주변 장치 인터페이스(195)를 통해 연결될 수 있는 스피커(197)와 프린터(196) 등의 기타 주변 출력 장치들도 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터들로의 논리적 연결을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는, 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치, 또는 기타 공통 네트워크 노드일 수 있고, 도 1에서는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관련되어 전술된 구성요소들 중 대부분 혹은 전부를 전형적으로 포함한다. 도 1에 도시된 논리적 연결들은 근거리 통신망(LAN:171)과 원거리 통신망(173:WAN)을 포함하나, 기타 네트워크들도 포함할 수 있다. 그러한 네트워킹 환경들은 사무실들, 회사 전체에 걸친 컴퓨터 네트워크들, 인트라넷 및 인터넷에서 일반적이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스(170)나 어댑터를 통해 LAN(171)으로 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 전형적으로 인터넷과 같은 WAN(173)상에서의 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장 또는 외장될 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)로 연결될 수 있다. 네트워크 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 설명된 프로그램 모듈들은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 메모리 장치(181)상에 상주하는 것으로 예시하지만, 이에만 한정되지 않는다. 도시된 네트워크 연결들은 예시적이며, 컴퓨터들 사이에 통신 링크를 설정하기 위한 기타 수단들이 이용될 수 있음을 인식해야 한다.
페이지 매겨진 콘텐트 디스플레이 및 대화( PAGINATED CONTENT DISPLAY AND INTERACTION )
본 발명은 일반적으로, 프로그램에 특정 기능을 제공하도록 다른 프로그램에 의해 호스팅될 수 있는 본질적으로 오브젝트이며 컨트롤로서 제공되는 문서 뷰어에 관한 것이다. 문서 뷰어 컨트롤은 페이지 레이아웃, 탐색, 및 적절하게 포맷된 콘텐트와의 일반적인 사용자 대화를 관리하는 기능을 하는 대화형 뷰잉 솔루션을 제공한다. 예를 들어, 일 구현예에서, 문서 뷰어 컨트롤은 문서 뷰어 컨트롤을 구현한 고객 솔루션은 물론, iDocumentPaginator 인터페이스를 구현한 임의 콘텐트를 볼 수 있게 해준다.
본 발명의 다양한 양상에 따라, 문서 뷰어 컨트롤은 오브젝트로서, 임의 적절하게 구성된 애플리케이션 프로그램에 추가될 수 있다. 프로그램은 문서 뷰어 컨트롤을 자동으로 또는 명시적으로, 예컨대, 마크업을 통해, 호출할 수 있다. 문서 뷰어는 일단 추가되면, 페이지 그리드를 이용한 혼합된 포맷(크기 및/또는 고정된 콘텐트 및/또는 이용가능한 공간에 기초하여 예컨대, 텍스트 랩(wraps)을 조정하는 재처리될 수 있는 콘텐트에 대한) 레이아웃, 프린팅, 키워드 찾기, 비례적 확대/축소, 콘텐트 흐름의 다중-경로 레이아웃 및/또는 콘텐트의 탐색을 포함하여 피처들의 코어 세트(core set)를 제공한다. 호스팅 프로그램은 이들 피처 중 원하지 않는 임의의 피처를 선택적으로 비활성화시킬 수 있고, 이용가능하지만 디폴트로 활성화되어 있지 않은 피처를 활성화시킬 수 있고, 또한 추가적인 피처들로 문서 뷰어 컨트롤을 증대시킬 수 있다.
본 발명을 구현하는 수많은 방법이 실현가능하며, 본원에서는 대안들 중 단지 일부만 기술되어 있는 것을 이해할 것이다. 예를 들어, 본 발명은 주로 문서 뷰잉 컨트롤이 자신의 기능 중 일부를 제공하는 다른 컨트롤 오브젝트를 포함하고 있는 복합 컨트롤 오브젝트 모델을 참조로 하여 하기에 기술되어 있다. 하지만, 이는 본 발명에 필수적인 것이 아니며, 문서 뷰어가 다른 오브젝트를 포함함 없이 뷰잉 기능, 피처, 및 로직을 직접 포함하는 다른 모델들도 실현가능하다. 이와 같이, 본 발명은 본원에 기술된 임의의 특정 예 또는 구현예에 한정되지 않으며, 오히려 일반적인 컴퓨팅에 이점 및 장점을 제공하는 다양한 방법으로 이용될 수 있다.
도 2를 참조해 보면, 본 발명의 다양한 양상에 따라 본 발명이 동작할 수 있는 예시적인 구성을 나타내는 블록도가 도시되어 있다. 본 구성은 호스트(예컨대, 애플리케이션) 프로그램(200)과, 뷰포트(210)라 지칭되는 그 뷰잉 영역에 콘텐트를 디스플레이하는 문서 뷰잉 컨트롤(204)를 포함하며, 본원에서 사용된 바와 같이, 문서는 본질적으로 임의 유형의 가시 콘텐트를 포함하므로, 텍스트, 그래픽, 동화상(animated) 텍스트 및/또는 그래픽 및 비디오, 또는 그들의 임의의 조합을 포함할 수 있다. 호스트 프로그램(200)은 도 1의 컴퓨터 시스템(110)과 같은 컴퓨터 시스템상에서 실행되는 컴퓨터 프로그램을 포함하고, 통상의 애플리케이션 프로그램, 운영 체제 컴포넌트 또는 유틸리티, 다른 컨트롤 등일 수 있다.
일 구현예에서, DocumentViewer라고 명명된 문서 뷰잉 컨트롤(204)은 일반적으로 상단에 툴바 영역(212) 및 그 아래에 콘텐트 뷰잉 영역(뷰포트(210))을 포함하는 디폴트 사용자 인터페이스를 포함한다. 툴바 영역(212)에서는, 문서 뷰잉 컨트롤(204)이 하나 이상의 버튼 등의 사용자 인터페이스 구성요소와, 문서가 표시되 는 방식을 관리하기 위한 다른 대화형 아이템을 디스플레이할 수 있다. 또한, 도 2의 예시적인 문서 뷰어 스크린샷에는 뷰포트(210) 내에서 사용자가 콘텐트를 스크롤할 수 있게 해주는 스크롤바 사용자 인터페이스 구성요소(214)가 도시되어 있다.
일 구현예에서, 문서 뷰잉 컨트롤(204)은 예컨대, 탐색, 찾기(텍스트 검색), 복사, 및 확대/축소 등의 수많은 공통 문서 대화 펑션을 디폴트로 제공한다. 프린트는 디폴트로 제공될 수 있는 사용자 대화 펑션의 또 다른 예이다. 본 발명의 다양한 양상에 따르면, 애플리케이션 프로그램은, 하기에 기술된 바와 같이 자신의 디폴트 기능을 갖기 위해 컨트롤을 단순히 "플러그 인"시킬 수 있다. 호스팅 프로그램(200)은 예컨대, 디폴트를 삭제하기, 숨기기, 디스에이블시키기, 및/또는 덮어쓰기함으로써, 디폴트 문서 뷰어 피처 전부보다는 적은 수의 피처를 선택적으로 사용할 수 있다. 프로그램(200)은 또한 디폴트로 인에이블되어 있지 않은 피처 및 기능을 활성화시킬 수 있다.
일부 디폴트 피처의 예로서, 도 3은 본 발명의 다양한 양상에 따라 동작하는 문서 뷰잉 컨트롤(204)에 대한 하나의 예시적인 표시를 나타낸 스크린샷이다. 이 도면에서, 문서 뷰잉 컨트롤(204)의 툴바 영역(212)은 메뉴 버튼(320), 확대 버튼(321), 확대/축소 콤보박스(322), 축소 버튼(323), 복사 버튼(324), 및 찾기 버튼(325)을 포함하는 툴바 아이템(321 내지 325)을 포함한다. 다른 버튼(프린트 버튼 등)은 디폴트로 제공되지 않기 때문에, 또는 디폴트로 제공된 경우라면, 대응하는 기능을 제공하길 원하지 않는 호스팅 프로그램에 의해 비활성화되었기 때문에 나타나 있지 않음에 유의해야 한다. 또한, 문서 뷰잉 컨트롤(240) 및/또는 호스팅 애플리케이션 프로그램(200)은 예컨대, 추가 툴바 아이템을 추가하고 기존의 임의의 아이템을 제거하도록 허용함으로써, 사용자가 툴바를 커스터마이즈할 수 있도록 해주는 인터페이스를 제공할 수 있음에 유의해야 한다.
도 4에 전반적으로 도시된 일 구현예에서, 문서 뷰잉 컨트롤(204)은 인스턴스화되고, 호스팅되고, 실행될 때 공용 메소드(들)(440)을 통해 수개의 속성 및 커맨드를 노출시킬 수 있는 오브젝트를 포함한다. 공용 메소드(440)를 통해, 문서 뷰잉 컨트롤(204)은 그 자신의 펑션을 액세스할 수 있고, 또한 다른 문서 뷰잉 기능을 수행하기 위해 다른 내포된 컨트롤(441 내지 446)을 액세스할 수 있다. 예를 들어, 문서 뷰잉 컨트롤(204)은 스크롤 행위를 조정하기 위한 스크롤 컨트롤(441), 확대/축소를 조정하기 위한 확대/축소 컨트롤(442), 텍스트에 일치하는 텍스트 콘텐트를 찾기 위한 찾기 컨트롤(443), 사용자가 탐색할 페이지들을 그리드로 레이아웃하는 레이아웃 컨트롤(444), 및 툴바를 최소화할 때를 포함하여 사용자가 커맨드들을 대화식으로 발행하도록 하는 다른 방법을 제공하는 것과 같은 메뉴 관련 기능을 조정하기 위한 메뉴 컨트롤(445)을 포함할 수 있다. 스크롤, 확대/축소, 및 레이아웃은, 그 각각이 본 발명의 양수인에게 양도되어, 본원에 참조로 포함되어 본원과 함께 동시에 출원된, 발명의 명칭이 각각 "Method and System for Navigating Paginated Content in Page - Based Increments", "Method and System for Zooming in and out of Paginated Content", 및 "Method and System for Laying Out Paginated Content for Viewing"인 대응 미국 특허 출원에 전반적으로 기술되어 있다. 다른 컨트롤(예컨대, "복사" 동작을 조정하기 위한 컨트롤)은, 도 4에 도시된 바와 같이, 블록(446)에 의해 문서 뷰잉 컨트롤(204)에 포함될 수 있다. 비록, 도 4에 구체적으로 도시되지는 않았지만, 이들 컨트롤(441 내지 446)의 일부 또는 전부는 단독으로 공개적으로 노출될 수 있다.
도 3에 나타난 구현예로 되돌아가 보면, 문서 뷰어의 툴바 영역(212)은 확대/축소(Zoom), 복사(Copy), 및 찾기(Find) 등의 문서 뷰잉 컨트롤을 노출시키는 사용자 인터페이스 아이템을 제공한다. 이들 중 일부는 문서 뷰잉 컨트롤이 원시적으로 처리하는 커맨드들과 연관되어 있지만, 확대/축소 등과 같은 일부는 문서 뷰잉 컨트롤(204)상에서의 속성에 데이터 바운딩된다. 툴바는 예컨대, "ToggleToolbar" 커맨드를 통해 최소화 및 최대화될 수 있다. 최대화될 때, 툴바(Toolbar)는 그 내부에 툴바 컨트롤(Toolbar Controls)을 갖는 패널을 포함하고; 최소화된 상태에서는 메뉴(Menu) 아이템 외에는 툴바가 보이지 않게 된다.
툴바에서의 컨트롤 버튼 각각에는, 접근성 및 검사를 용이하게 하기 위해, 식별자, 및 "탭(Tab)" 순서화가 지정된다. 좌측에서 우측으로 순서화되는 예에서, 툴바의 첫번째 사용자 인터페이스 구성요소는 메뉴 버튼이고, 이것이 최소화될 때, 최대화된 툴바에서 통상적으로 이용가능한 것과 동일한 세트의 커맨드들을 노출시킨다. 이들 메뉴 아이템(및 그 관련 커맨드들)은 복사(Copy) - ApplicationCommands.Copy, 찾기(Find) - ApplicationCommands.Find, 프린트(Print) - ApplicationCommands.Print, 확대(Zoom In) - NavigationCommands.IncreaseZoom, 축소(Zoom Out) - NavigationCommands.DecreaseZoom, 보여주기/숨기기 툴바(Show/Hide Toolbar) - document viewing control.ToggleToolbar를 포함할 수 있다. 메뉴 버튼은 메뉴 컨트롤의 속성(예컨대, IsMouseOver 및 IsMousePressed)에 대해 PropertyTriggers를 이용하여 마우스 움직임에 기초하여 외관을 변경시킬 수 있다. 이들 커맨드 중 일부 또는 전부는 표준 커맨드 라이브러리와 연관될 수 있다.
축소(ZoomOut) 버튼은 클릭 또는 메뉴를 통해 구동될 때, 문서 뷰잉 컨트롤로 하여금 현재 문서를 축소하게 한다. 마찬가지로, 확대(ZoomIn) 버튼은, 구동될 때, 문서 뷰잉 컨트롤로 하여금 현재 문서를 확대하게 한다. 확대/축소 콤보박스(Zoom ComboBox)는 다양한 미리 규정된 "확대/축소 정지(Zoom Stops)" 및 다른 확대/축소 관련 설정(예컨대, "100%", "50%", "1 페이지" 등)을 포함한다. 문서 뷰잉 컨트롤의 확대/축소 콤보박스(Zoom ComboBox)는 DocumentViewer의 DocumentLayout 속성을 콤보박스의 SelectItemValue 속성에 데이터 바인딩시키는 DocumentViewer의 스타일로 구현될 수 있다. 이와 다르게는, 개발자는 직접 그리드 컬럼의 수를 설정할 수 있고/있거나 커맨드 또는 속성을 이용하여 확대/축소 백분율을 설정할 수 있다. 콤보박스 내의 각 엔트리는 DocumentLayout 유형의 스타일 지정된(Styled) 데이터 아이템일 수 있으며, 이에 의해 콤보박스 내의 아이템이 선택될 때, 문서 뷰잉 컨트롤의 페이지 레이아웃이 갱신될 수 있다.
찾기(Find) 버튼을 구동하여 문서 뷰잉 컨트롤의 찾기 대화상자를 호출한다. 복사(Copy)는 TextEditor(예컨대, 문서 뷰잉 컨트롤(204)에 첨부됨)로 하여금 사용자가 현재 마킹한 선택사항을 클립보드로 복사하게끔 하며, 프린트(Print)는 프린트 대화상자를 호출한다.
뷰포트(210)로 지칭되는 문서 뷰잉 컨트롤의 콘텐트 영역은 문서의 콘텐트를 레이아웃 컨트롤에 의해 그리드로 배치된, 하나 이상의 컬럼들의 로우(row)들에 페이지들을 디스플레이한다. 이 영역에 있는 사용자 인터페이스 구성요소는 수평 및/또는 수직 스크롤바를 포함할 수 있다. 예컨대, 툴바에 있는 메뉴 버튼과 동일한 아이템을 포함하고 동일한 커맨드에 첨부되는 컨텍스트 메뉴 역시 제공될 수 있다.
문서 뷰잉 컨트롤은 일 구현예에서, ScrollViewer로 지칭되는 스크롤 컨트롤(441)을 통해, 문서 뷰잉 컨트롤의 콘텐트에 대한 스크롤 기능을 제공한다. 레이아웃 컨트롤(444)(예컨대, DocumentGrid라 명명됨)은 문서 뷰잉 컨트롤의 ScrollViewer에 의해 사용된 IScrollInfo 오브젝트이며, 실현 가능한 방식으로 문서 콘텐트를 디스플레이하는 기능을 한다. DocumentGrid는 내부 컨트롤이며, 문서 뷰잉 컨트롤의 스타일로 직접 규정될 수 없음에 유의해야 한다. 도 5에 전반적으로 도시한 바와 같이, DocumentGrid는 IDocumentScrollInfo(이는 IScrollInfo를 구현함)를 구현하고, ScrollViewer의 자식(child)으로서 설정된다. ScrollViewer는 스크롤 기반의 정보를 IScrollInfo 인터페이스를 통해 DocumentGrid에 전달하며; 마찬가지로, 문서 뷰잉 컨트롤은 페이지-탐색/레이아웃(Page-Navigation/Layout) 기반의 정보를 IDocumentScrollInfo(또는 IDocumentPresentationInfo) 인터페이스를 통해 DocumentGrid에 전달할 것이다. 문서 뷰잉 컨트롤은 DocumentGrid의 확대/축소, 오프셋 등을 갱신하기 위해, IDocumentPresentationInfo 속성을 설정할 것이고, DocumentGrid는 문서 뷰잉 컨트롤을 DocumentGrid상에서 변경된 속성에 동기화시키기 위해, 문서 뷰잉 컨트롤의 InvalidatePresentationInfo() 메소드를 호출할 것이다.
본 발명의 다양한 양상에 따라, 문서 뷰잉 컨트롤은 수개의 속성 및 커맨드를 노출시켰다. 아래 표는 문서 뷰잉 컨트롤(204)의 일 구현예에 의해 노출될 수 있는 일부 예시적인 속성 및 커맨드를 포함한다.
Figure 112007059233317-pct00001
문서 뷰잉 컨트롤(204)의 속성 및 커맨드는 애플리케이션(200)에 의해 액세스될 수 있다. "get"을 지시하는 속성이 판독가능하다. "get" 및 "set"을 지시하는 속성은 판독가능 및 기입가능 양쪽 모두이다. 다른 속성 및 커맨드가 포함될 수 있고/있거나 상기 속성 및 커맨드 중 일부는 본 발명의 정신 또는 범위 내에서 삭제 또는 변형될 수 있음은 쉽사리 인식할 수 있다. 또한, 상술된 속성 및 커맨드는 예시적이며, 다른 데이터 구조, 정의, 기술, 및 메소드가 본 발명의 정신 또는 범위 내에서 문서 뷰잉 컨트롤(204)의 다양한 양상을 구현하는 데 이용될 수 있음은 쉽사리 인식할 수 있다.
이하에서는, 속성 및 커맨드에 대한 추가 상세를 제공한다:
public int PageCount { get ; }
PageCount는 문서 뷰잉 컨트롤(DocumentViewer) 내로 로드된 페이지의 현재 수를 리턴한다. 이 수는 페이지 매김(pagination)이 완료될 때까지 증가할 것이며, 완료되는 시점에서 문서 내의 총 페이지 수를 지시할 것이다.
public int FirstVisiblePage { get ; set ; }
질의를 받을 때, FirstVisiblePage는 첫번째 페이지 가시 온스크린을 리턴한다. 이는 좌측에서 우측으로의(Left-To-Right) 콘텐트를 위한 최좌측 상단(Top-Leftmost) 가시 페이지, 또는 우측에서 좌측으로의(Right-to-Left) 콘텐트를 위한 최우측 상단(Top-Rightmost) 가시 페이지 중 어느 하나이다. 설정 시, 문서 뷰잉 컨트롤은 IDocumentPresentationInfo.MakePageVisible()을 호출하며, 이는 가능한 경우 지정된 페이지 최좌측 상단(또는 최우측) 페이지가 보일 수 있도록 해준다. 이는 (예를 들어, 문서의 상단 또는 하단에서는, 또는 둘 이상의 컬럼의 레이아웃의 경우에는) 항상 가능한 것이 아니며, 따라서 FirstVisiblePage에 지정된 값은 다시 판독된(read back) 값과 동일하지 않을 수 있는 상황이 일어날 수 있다.
FirstVisiblePage는 사용자 인터페이스에 데이터 바인딩시키는 것을 보다 유용하게 하기 위하여 1-인덱스된다(1-indexed). 1보다 작은 값 또는 PageCount보다 큰 값은 잘려져서 범위 내에 있게 될 것이다. FirstVisiblePage는 LastVisiblePage가 갱신되게 할 것이다.
public int LastVisiblePage { get ; }
질의를 받을 때, LastVisiblePage는 마지막 페이지 가시 온스크린을 리턴한다. 이는 좌측에서 우측으로의 콘텐트를 위한 최우측 하단(Bottom-Rightmost) 가시 페이지, 또는 우측에서 좌측으로의 콘텐트를 위한 최좌측 하단(Bottom-Leftmost) 가시 페이지 중 어느 하나이다. LastVisiblePage는 사용자 인터페이스에 데이터 바인딩시키는 것을 보다 유용하게 하기 위하여 1-인덱스되어 있다. 1보다 작은 값 또는 PageCount보다 큰 값은 잘려져서 범위 내에 있게 될 것이다.
public double HorizontalOffset { get ; set ; }
HorizontalOffset은 현재 페이지 레이아웃이 주어진다면, 문서 내의 현재 수평 위치를 픽셀 단위로 지시한다. HorizontalOffset은 0-인덱스되고(0-indexed); 0보다 작은 값 또는 ExtentWidth보다 큰 값은 잘려져서 범위내에 있을 수 있다.
public double VerticalOffset { get ; set ; }
VerticalOffset은 현재 페이지 레이아웃이 주어진다면, 문서 내의 현재 수직 위치를 픽셀 단위로 지시한다. VerticalOffset은 0-인덱스되고; 0보다 작은 값 또는 ExtentHeight보다 큰 값은 잘려져서 범위내에 있을 수 있다.
public double ExtentWidth { get ; }
ExtentWidth는 문서 레이아웃의 현재 너비를 지시한다.
public double ExtentHeight { get ; }
ExtentHeight는 문서 레이아웃의 현재 높이를 지시한다.
public double ViewportWidth { get ; }
ViewportWidth는 DocumentViewer의 콘텐트 영역(뷰포트)의 현재 너비를 지시한다.
public double ViewportHeight { get ; }
ViewportHeight는 DocumentViewer의 콘텐트 영역(뷰포트)의 현재 높이를 지시한다.
public bool ShowPageBorders { get ; set ; }
ShowPageBorders은 개발자로 하여금 문서 뷰잉 컨트롤에 디스플레이되고 있는 페이지 주위에 "드롭 새도우(Drop Shadow)"를 인에이블 또는 디스에이블하게 해준다.
public double ZoomPercentage { get ; set ; }
이는 UI에 데이터바인딩시키는 것을 단순 작업(예컨대, 사용자가 확대/축소를 설정하게 해주는 단순한 텍스트박스(TextBox)를 생성하는 것)이 되게 하도록 노출되어 있는 "편의(convenience)" 속성이다. 마지막 ZoomPercentage 설정 또는 페이지 피트 호출(page fit invocation)에 기초하여 효과적인 확대/축소 백분율을 리턴한다. 5 %보다 작은 값 또는 1000%보다 큰 값은 잘려져서 범위내에 있을 수 있다.
또한, ZoomPercentage 속성은 "%" 부호를 갖는 문자열을 구문분석(parse)할 수 있는 TypeConverter와 관련될 것이다. 이런 방식, 데이터바운드(databound) UI(예컨대, TextBox)는 ZoomPercentage의 값을 "100"이 아니라 "100%"로서 디스플레이할 수 있다. 또한, 이는 "%" 부호가 마크업, 즉 <DocumentViewer ZoomPercentage="100%"/>에 사용되게끔 해준다.
public int GridColumnCount { get ; set ; }
이는 UI에 데이터바운딩시키는 것을 단순한 작업(예컨대, 사용자가 디스플레이된 페이지의 디스플레이된 컬럼의 수를 설정하도록 해주는 단순한 텍스트박스를 생성하는 것)이 되도록 해주는 노출되어 있는 "편의" 속성이다. 디스플레이된 페이지의 컬럼 수를 리턴한다. 설정될 때, 이는 지정된 수의 컬럼이 레이아웃되도록 해줄 것이다(하지만 뷰(view) 내로 피트되지는 않음). 1보다 작은 값 또는 문서 내 페이지 수보다 큰 값은 잘려져서 범위내에 있을 수 있다.
public IDocumentPaginator Content { get ; set ; }
콘텐트(Content)는 IAddChild 인터페이스를 통해 문서 뷰잉 컨트롤 내로 로드된 현재의 IDocumentPaginator 콘텐트 트리를 노출시키고, 콘텐트에 대한 조작을 허용한다. 콘텐트가 추가 또는 삭제될 때, 이는 문서 뷰잉 컨트롤의 LogicalTree로부터 추가 또는 삭제된다. 하지만, 이는 문서 뷰잉 컨트롤이 스타일링을 통해 호출되는 경우에는 아니다. 그 경우에는, 어떤 동작도 행해지지 않으며; 문서 뷰잉 컨트롤이 스타일링을 통해 호출되었는지를 판정하기 위한 현재의 검사는 "if (this.StyledParent == null)"이다.
public bool IsAtStart { get ; }
문서 뷰잉 컨트롤(DocumentViewer)이 현재 문서의 상단에 있는지 여부를 나타낸다. PropertyTriggers을 사용하여 탐색 버튼을 인에이블/디스에이블시키기 위해 DocumentViewer Styles에서 유용하다.
public bool IsAtEnd { get ; }
문서 뷰잉 컨트롤이 현재 문서의 하단에 있는지 여부를 나타낸다.
PropertyTriggers을 사용하여 탐색 버튼을 인에이블/디스에이블시키기 위해 DocumentViewer Styles에서 유용하다.
bool CanZoomIn { get ; }
문서 뷰잉 컨트롤이 더 이상 확대될 수 있는지(즉, 현재 최고의 "확대/축소 정지"에 있는지) 여부를 나타낸다. PropertyTriggers을 사용하여 확대/축소 버튼을 인에이블/디스에이블시키기 위해 DocumentViewer Styles에서 사용된다.
public bool CanZoomOut { get ; }
문서 뷰잉 컨트롤이 더 이상 축소될 수 있는지(즉, 현재 최저의 "확대/축소 정지"에 있는지) 여부를 나타낸다. PropertyTriggers을 사용하여 확대/축소 버튼을 인에이블/디스에이블시키기 위해 DocumentViewer Styles에서 사용된다.
public bool IsToolbarMaximized { get ; set ; }
Toolbar의 현재 상태 -- 툴바가 최소화, 최대화, 또는 디스에이블되어 있는지 여부 -- 를 나타내고/설정한다. 보고된 툴바의 상태에 기초하여 툴바를 보여주기/숨기기를 하기 위해 DocumentViewer Styles에서 사용된다.
커맨드( Commands )
public Command ToggleToolbar
이 커맨드를 호출함으로써, 문서 뷰잉 컨트롤(DocumentViewer)은 "IsToolbarMaximized" 속성을 참과 거짓 간에 토클시키게 된다. 스타일 작성자가 IsToolbarMaximized 속성을 이용할 것을 선택한다면, 이 커맨드는 DocumentViewer의 스타일 내의 PropertyTriggers에 기초하여 UI 변경을 유발할 것이다.
public Command FitToGridColumnCount
이 커맨드는 (GridColumnCount에 의해 지정된) 현재 컬럼의 레이아웃이 현재 뷰포트 내로 정확하게 피트되게 할 것이다.
public Command ReflowDocument
이 커맨드는 현재 지정된 컬럼 카운트를 디스플레이하면서, 문서 내의 재처리될 수 있는 콘텐트가 현재 뷰포트 내에 피트되도록 다시 페이지 매김되게(repaginated) 한다. 그 예들로는 이하가 포함된다.
public Command ViewThumbnails
DocumentViewer.DocumentLayout을 DocumentLayout(DocumentLayoutType.Thumbnail)로 설정한다.
public Command ViewFitToWidth
DocumentViewer.DocumentLayout을 DocumentLayout(DocumentLayoutType.FitToWidth)로 설정한다.
public Command ViewFitToHeight
DocumentViewer.DocumentLayout을 DocumentLayout(DocumentLayoutType.FitToHeight)로 설정한다.
외부 커맨드( External Commands )
문서 뷰잉 컨트롤(DocumentViewer)이 처리할 것이지만 그 자체가 구현하지는 않는 매우 다양한 커맨드들이 존재한다.
ApplicationCommands . Find
DocumentViewer의 찾기 대화상자를 호출한다.
ApplicationCommands . Print
DocumentViewer의 프린트 대화상자를 호출한다.
ComponentCommands . ScrollPageUp / Down
DocumentViewer가 뷰포트의 상/하(up/down)로 스크롤하게 한다.
ComponentCommands . MoveUp / Down
DocumentViewer가 16 픽셀만큼 상/하로 스크롤하게 한다.
ComponentCommands . MoveLeft / Right
DocumentViewer가 16 픽셀만큼 좌/우로 스크롤하게 한다.
ComponentCommands . MoveToHome / End
DocumentViewer가 문서의 시작/끝으로 이동하게 한다.
ComponentCommands . ScrollByLine
DocumentViewer가 지정된 수의 라인 만큼, 상 또는 하로 스크롤하게 한다.
NavigationCommands . Zoom
DocumentViewer의 확대/축소를 지정된 레벨로 설정한다.
NavigationCommands . IncreaseZoom / DecreaseZoom
DocumentViewer로 하여금 콘텐트에 대해 확대/축소하게 한다.
NavigationCommands . GotoNextPage / GotoPrevioiusPage
DocumentViewer가 페이지들의 다음 로우/이전 로우로 스크롤하게 한다.
DocumentViewer 인터페이스 구현예
IServiceProvider
문서 뷰잉 컨트롤의 IServiceProvider 구현예는 DocumentGrid의 TextView 서비스를 노출시켜서, 문서 내의 기본적인 텍스트에의 액세스를 허용할 것이다.
IAutomationPatternProvider
문서 뷰잉 컨트롤의 IAutomationPatternProvider 인터페이스는, 자동화 시스템(Automation system)으로 하여금 디스플레이된 문서의 텍스트 콘텐트를 액세스하도록 해주는 UIAutomation TextPattern에 대한 요청들을 처리한다.
IEnsureVisible
IEnsureVisible은 개발자로 하여금 문서 내의 특정 구성요소들이 가시화되도록 설정하게끔 해준다. 이는 Hyperlinking 및 일부 Accessibility 기능을 지원하는데 이용될 수 있다.
IAddChild
IAddChild는 문서 뷰잉 컨트롤의 로직 트리에 문서 콘텐트를 추가하도록 해준다. 단 하나의 자식만이 추가될 수 있으며, 이는 널이 아닌(non-null) IDocumentPaginator가 될 것이다. 이러한 기준이 충족되지 않으면, 예외처리(exception)가 발생할 수 있다.
사용자 인터페이스 구성요소가 번역된 마크업(interpreted markup)을 통해 디스플레이되는 일 구현예에서, 콘텐트를 디스플레이하는 것이 필요할 때마다, 문서 뷰잉 컨트롤(204)이 문서 뷰어로서 디폴트로 자동으로 제공된다. 하지만, 프로그램이 디폴트 문서 뷰잉 컨트롤(204)을 그 자신의 커스터마이즈된 문서 뷰잉 컨트롤로 덮어쓰기할 수 있도록 상당한 유연성이 제공된다. 상기 API로부터 알 수 있는 바와 같이, 이 유연성은 여러 API 속성을 설정하는 능력으로부터 유래한다.
문서 뷰잉 컨트롤이 스타일 지정될 수 있어서, 따라서, 문서 뷰어를 소망에 따라 표시하기 위하여 문서 뷰어의 특성은 단 한번만 지정될 필요가 있다. 예로서, 이하의 마크업(여기서 DV는 DocumentViewer를 나타냄)을 고려해 보자.
<App>
<App.Resources>
... DV.Background=Yellow
</App.Resources>
<DV>
</DV>
</App>
일반적으로, 디폴트로부터의 어떤 변경을 원하면, 프로그램 개발자는 단지 문서 뷰어가 원하는 프로그램 리소스임을 지정하고, 원하는 변경 또는 변경들을 지시할 필요가 있다. 상기 마크업은 노란 색 배경을 갖는 (통상적으로) 디폴트 문서 뷰어를 생성하고; 버튼, 하이퍼링크 등도 마찬가지로 변경될 수 있다. 일 구현예에서, 콘텐트 및 레이아웃은 스타일 지정될 수 없으며, 유효한 문서 뷰잉 컨트롤 스타일은 control.ContentHost가 부착된 속성을 보여주는 문서로 마킹된 ScrollViewer 컨트롤을 포함할 필요가 있음에 유의해야 한다. 문서 뷰잉 컨트롤이 스타일이 적용되었음을 탐지할 때, 이는 비주얼 트리(visual tree)를 따라 이동하며, 이런 마크된 구성요소를 검색할 것이다. 문서 뷰잉 컨트롤이 마크된 구성요소를 찾는데 실패하거나, 마크된 구성요소가 ScrollViewer가 아니면, 이는 예외처리를 발생시킬 것이다. 적절한 ScrollViewer를 찾으면, 문서 뷰잉 컨트롤은 (레이아웃용으로) DocumentGrid 컨트롤을 인스턴스화할 것이며, 이를 ScrollViewer의 콘텐트가 되게 하며, DocumentGrid 컨트롤이 ScrollViewer과 대화하게끔 인에이블시킬 수 있다.
따라서, 문서 뷰어를 사용자의 소망에 따라 표시하는데 스타일 속성을 이용할 수 있다. 애플리케이션 프로그램은 스타일을 통해 이것이 원하는 피처가 무엇인지를 간단히 기술할 수 있으며, 그 스타일을 갖는 문서 뷰어가 지정한 대로 표시된다. 하지만, 콘텐트가 스타일 지정되지 않음에 유의해야 한다. 스타일은, 소정의 레벨에서 확대 및 축소를 지원할 것인지 여부, 보여줄 페이지의 컬럼 수 등의 피처를 규정할 수 있다. API가 이러한 기능을 제공할 할 수 있지만, 소정의 프로그램은 이용가능한 피처 전부를 사용하지 않을 수 있다. 따라서, 예를 들어, 사용자를 커스터마이즈된 문서 뷰어에 집중시키기 위해 제한된 피처를 제공하도록 스타일 지정된 문서 뷰잉 컨트롤이 프로그램에서 이용될 수 있으며, 예컨대, 확대/축소하기 옵션 없이 단일 페이지가 이전 및 다음 버튼을 갖고 표시될 수 있다.
또한 스타일이 명명될 수 있음에 유의해야 한다. 따라서, 예를 들어, 프로그램이 서로 다른 스타일의 문서 뷰어를 정의할 수 있고, 그런 다음 적절한 시기에, 어떤 스타일을 사용할 것인지를 다양화할 수 있는데, 예컨대 한 문서 뷰어 스타일이 "XYZ" 문서 뷰어에 일치하는 시점과, 사용할 문서 뷰어가 "ABCD" 문서 뷰어에 일치하는 다른 시점 등을 프로그램에 지정함으로써 가능하다. 예를 들어, 프로그램이, 디스플레이되고 있는 콘텐트 유형을 이용하여 문서 뷰어를 변경할 수 있는데, 예컨대, 고정된 콘텐트는 한 가지 문서 뷰어 스타일을 갖으며, 반면에 이용가능 공간에 기초하여 (예컨대, 텍스트 랩(wraps))을 조정하는 재처리될 수 있는 콘텐트는 다르게 스타일 지정된 뷰어를 통하여 표시될 수 있다.
전술한 상세한 설명으로부터 알 수 있는 바와 같이, 본원에는 프로그램들 간에 일관성 있고 견고한 방식으로 문서 뷰잉 기능 및 피처를 프로그램이 제공하게 해주는 방법 및 시스템이 제공되어 있다. 본 방법 및 시스템은 커스터마이즈가능하며 확장가능하다.
본 발명에 대한 다양한 변형 및 대체 구성이 행해질 수 있으며, 본 발명의 특정한 예시된 실시예는 도면에 도시되어, 상세히 전술되었다. 하지만, 본 발명을 개시된 특정한 형태로 한정하려는 의도는 아니며, 그 반대로, 본 발명의 정신 및 범위 내에 속하는 모든 변형, 대체 구성, 및 등가물을 포함하려는 의도임을 이해해야 한다.

Claims (20)

  1. 컴퓨팅 환경에서, 호스트 프로그램이 콘텐트 컨트롤 및 디스플레이 기능을 포함하는 개체를 통해 문서 콘텐트를 디스플레이할 수 있게 하는 방법으로서,
    상기 개체를 호스트하도록 인에이블된 호스트 프로그램이 상기 개체에 의해 제공된 애플리케이션 프로그램 인터페이스(API)를 통해 상기 개체를 호출하는 단계 - 상기 개체는 문서 콘텐트 컨트롤 및 디스플레이 기능을 제공하기 위한 복수의 공용 메소드(public methods)를 포함하고, 상기 공용 메소드는, PageCount, FirstVisiblePage, LastVisiblePage, HorizontalOffset, ExtentWidth, ExtentHeight, ViewportWidth, ViewportHeight, ShowPageBorders, ZoomPercentage, GridColumnCount, VerticalPageSpacing, HorizontalPageSpacing, ToggleToolbar, ReflowDocument, ViewThumbnails, ViewFitToWidth, 및 ViewFitToHeight를 포함하고,
    상기 개체는 스타일링 목적을 위한 플래그들을 포함하고, 상기 플래그들은, IsAtStart, IsAtEnd, CanZoomIn, CanZoomOut, 및 IsToolbarMaximized를 포함하고,
    상기 개체는 문서 콘텐츠 클래스를 제공하고,
    상기 문서 콘텐츠 클래스는 문서 콘텐츠를 수신 및 보관하도록 인에이블 되어 있고,
    상기 API는 상기 개체를 통해 문서 콘텐츠의 디스플레이를 제어하기 위해 호스트 프로그램용 인터페이스를 제공함 -;
    상기 호스트 프로그램이 상기 콘텐츠 클래스의 세트 메소드(set method)를 사용하여 상기 개체에 콘텐츠를 추가하는 단계;
    상기 개체가 툴바 및 뷰포인트를 포함하는 디폴트 사용자 인터페이스를 제공하는 단계; 및
    상기 개체가 상기 개체 뷰포인트 내에 문서 콘텐츠를 디스플레이하는 단계 - 상기 뷰포인트 및 상기 툴바는 상기 호스트 프로그램의 뷰잉 영역(viewing area) 내에 디스플레이되어 있음 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    문서 콘텐츠를 디스플레이하는 단계는, 디스플레이된 콘텐츠의 확대/축소 레벨(zoom level)을 변경하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    문서 콘텐츠를 디스플레이하는 단계는, 상기 콘텐츠가 디스플레이되는 방식을 변경하기 위해 상기 문서에서 스크롤링하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    문서 콘텐츠 컨트롤 및 디스플레이 기능을 제공하는 것은, 선택된 콘텐츠를 상기 문서에 복사하는 것을 포함하는 방법.
  5. 제1항에 있어서,
    기능 호출(fuction call)에 응답하여 문서 프린팅 기능을 제공하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 개체를 호출하는 단계는 속성 값을 요청하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 속성 값의 요청에 응답하여, 속성 세트 중 적어도 하나의 속성의 값을 수신하는 단계를 더 포함하고,
    상기 속성 세트는 콘텐트 관련 데이터, 페이지 카운트 데이터, 첫번째 가시 페이지 데이터, 마지막 가시 페이지 데이터, 수평 오프셋 데이터, 수직 오프셋 데이터, 범위 너비 데이터, 범위 높이 데이터, 뷰포트 너비 데이터, 뷰포트 높이 데이터, 페이지 경계를 표시할지 여부를 나타내는 데이터, 확대/축소 백분율 데이터, 눈금 열 수 데이터(grid column count data), 수직 페이지 이격 데이터, 수평 페이지 이격 데이터, 문서의 시작인지 여부를 나타내는 데이터, 문서의 끝인지 여부를 나타내는 데이터, 문서가 확대(zoom in)될 수 있는지 여부를 나타내는 데이터, 문서가 축소(zoom out)될 수 있는지 여부를 나타내는 데이터, 및 툴바 상태(toolbar state)를 나타내는 데이터를 포함하는 방법.
  8. 제1항에 있어서,
    상기 개체를 호출하는 단계는 속성 값의 변경을 요청하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 속성 값의 변경을 요청하는 단계는 속성 세트 중 적어도 하나의 속성의 값을 변경하라는 요청을 송신하는 단계를 포함하고, 상기 속성 세트는 콘텐트 관련 데이터, 첫번째 가시 페이지 데이터, 수평 오프셋 데이터, 수직 오프셋 데이터, 페이지 경계 표시 데이터, 확대/축소 백분율 데이터, 눈금 열 수 데이터, 수직 페이지 이격 데이터, 수평 페이지 이격 데이터 및 툴바 상태를 변경하기 위한 데이터를 포함하는 방법.
  10. 제1항에 있어서,
    상기 개체를 호출하는 단계는 커맨드(command)의 요청을 송신하는 단계를 포함하는 방법.
  11. 제10항에 있어서,
    상기 커맨드의 요청을 송신하는 단계는 커맨드 세트 중 적어도 하나의 커맨드의 요청을 송신하는 단계를 포함하고, 상기 커맨드 세트는 토글 툴바 커맨드, 눈금 열 수 맞춤 커맨드(fit to grid column count command), 문서 리플로우 커맨드(reflow document command), 뷰 섬네일 커맨드, 너비 맞춤 보기 커맨드(view fit to width command), 및 높이 맞춤 보기 커맨드(view fit to height command)를 포함하는 방법.
  12. 제1항에 있어서,
    상기 개체의 기능은 디폴트들을 재정의(overriding)함으로써 커스터마이즈가능(customizable)한 방법.
  13. 컴퓨터 명령어들을 갖는 컴퓨터 프로그램이 기록된 컴퓨터-판독가능 저장 매체로서,
    상기 컴퓨터 명령어들은 컴퓨팅 시스템 내에서 실행될 때, 제1항에 기재된 방법을 구현하는 컴퓨터-판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 호스트 프로그램은 적어도 하나의 디폴트 특징을 재정의함으로써 상기 개체를 커스터마이즈하는 컴퓨터-판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 호스트 프로그램은 스타일을 통해 상기 문서 뷰잉 컨트롤의 적어도 일부를 커스터마이즈하는 컴퓨터-판독가능 저장 매체.
  16. 제13항에 있어서,
    상기 개체는 문서의 컨텐츠를 디스플레이하는 것에 관련된 적어도 하나의 다른 컨트롤의 컨트롤 세트를 포함하는 컴퓨터-판독가능 저장 매체.
  17. 제16항에 있어서,
    상기 컨트롤 세트는 스크롤 관련 컨트롤, 확대/축소 관련 컨트롤, 찾기 관련 컨트롤, 레이아웃 관련 컨트롤, 메뉴 관련 컨트롤, 및 복사 관련 컨트롤을 포함하는 컴퓨터-판독가능 저장 매체.
  18. 제13항에 있어서,
    API가 속성들 및 커멘트 세트에의 액세스를 제공하고,
    상기 속성들은 속성 세트의 각 속성을 포함하는데, 상기 속성 세트는,
    콘텐츠 관련 데이터, 페이지 카운트 데이터, 첫번째 가시 페이지 데이터, 마지막 가시 페이지 데이터, 수평 오프셋 데이터, 수직 오프셋 데이터, 범위 너비 데이터, 범위 높이 데이터, 뷰포트 너비 데이터, 뷰포트 높이 데이터, 페이지 경계를 표시할지 여부를 나타내는 데이터, 확대/축소 백분율 데이터, 눈금 열 수 데이터, 수직 페이지 이격 데이터, 수평 페이지 이격 데이터, 문서의 시작인지 여부를 나타내는 데이터, 문서의 끝인지 여부를 나타내는 데이터, 문서가 확대될 수 있는지 여부를 나타내는 데이터, 문서가 축소될 수 있는지 여부를 나타내는 데이터, 및 툴바 상태를 나타내는 데이터를 포함하고,
    상기 커멘트 세트는,
    토글 툴바 커맨드, 눈금 열 수 맞춤 커맨드, 문서 리플로우 커맨드, 뷰 섬네일 커맨드, 너비 맞춤 보기 커맨드, 또는 높이 맞춤 보기 커맨드 각각을 포함하는 컴퓨터-판독가능 저장 매체.
  19. 컴퓨팅 환경에서, 하나 이상의 컴퓨터 프로세서 및 컴퓨터 실행가능 명령어들을 저장하는 시스템 메모리를 포함하는 시스템으로서,
    컴퓨터 실행가능 명령어들은 상기 하나 이상의 프로세서에 의해 실행될 때, 제1항에 기재된 방법을 수행하는 시스템.
  20. 제19항에 있어서,
    사용자 상호작용(user interaction)은 콘텐트가 디스플레이되는 방식을 변경시키는 시스템.
KR1020077018761A 2005-03-04 2005-08-25 페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기위한 방법 및 시스템 KR101159390B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/073,140 2005-03-04
US11/073,140 US7512892B2 (en) 2005-03-04 2005-03-04 Method and system for displaying and interacting with paginated content
PCT/US2005/030634 WO2006096209A1 (en) 2005-03-04 2005-08-25 Method and system for displaying and interacting with paginated content

Publications (2)

Publication Number Publication Date
KR20070108176A KR20070108176A (ko) 2007-11-08
KR101159390B1 true KR101159390B1 (ko) 2012-06-28

Family

ID=36945465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077018761A KR101159390B1 (ko) 2005-03-04 2005-08-25 페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US7512892B2 (ko)
EP (1) EP1854026A4 (ko)
JP (2) JP2008536200A (ko)
KR (1) KR101159390B1 (ko)
CN (1) CN101128816B (ko)
WO (1) WO2006096209A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165647B (zh) * 2006-10-17 2010-12-15 北京书生国际信息技术有限公司 一种文档库***和文档库***功能的扩展方法
EP1758031A1 (en) * 2005-08-25 2007-02-28 Microsoft Corporation Selection and display of user-created documents
KR100725411B1 (ko) * 2006-02-06 2007-06-07 삼성전자주식회사 컨텐츠 검색을 위한 사용자 인터페이스, 사용자 인터페이스제공 방법, 및 컨텐츠 검색 장치
KR100787977B1 (ko) * 2006-03-30 2007-12-24 삼성전자주식회사 이동 단말기에서 사용자 데이터 크기 조절 장치 및 방법
JP2008041003A (ja) * 2006-08-10 2008-02-21 Fuji Xerox Co Ltd 文書表示処理装置および文書表示処理プログラム
US8849909B2 (en) * 2007-07-06 2014-09-30 Yahoo! Inc. Real-time asynchronous event aggregation systems
US8171388B2 (en) * 2007-11-15 2012-05-01 Yahoo! Inc. Trust based moderation
US7941400B2 (en) * 2007-12-10 2011-05-10 International Business Machines Corporation Systems, methods and computer program products for maintaining a state of a document in a document-centric model to maintain a task across systems with the document
US8432298B2 (en) * 2009-10-30 2013-04-30 Honeywell International Inc. Aircraft visual display system with direct page navigation
US20110289401A1 (en) * 2010-05-20 2011-11-24 Salesforce.Com, Inc. Multiple graphical annotations of documents using overlays
US9589253B2 (en) 2010-06-15 2017-03-07 Microsoft Technology Licensing, Llc Workflow authoring environment and runtime
US20120297335A1 (en) * 2011-05-17 2012-11-22 Microsoft Corporation Document glancing and navigation
US10467273B2 (en) * 2011-10-24 2019-11-05 Image Scan, Inc. Apparatus and method for displaying search results using cognitive pattern recognition in locating documents and information within
US8755606B2 (en) 2011-12-16 2014-06-17 Harris Corporation Systems and methods for efficient feature extraction accuracy using imperfect extractors
US8832593B2 (en) * 2011-12-16 2014-09-09 Harris Corporation Systems and methods for efficient spatial feature analysis
US8855427B2 (en) 2011-12-16 2014-10-07 Harris Corporation Systems and methods for efficiently and accurately detecting changes in spatial feature data
CN102662654A (zh) * 2012-03-09 2012-09-12 北京神州数码思特奇信息技术股份有限公司 一种数据分页插件的生成方法
KR102008916B1 (ko) * 2012-09-07 2019-08-08 삼성전자주식회사 미확인 콘텐츠 표시 방법 및 그 전자 장치
JP6235046B2 (ja) 2013-01-17 2017-11-22 ナイキ イノベイト シーブイ ビジュアルショッピング
US20140215308A1 (en) * 2013-01-31 2014-07-31 Adobe Systems Incorporated Web Page Reflowed Text
US9570955B2 (en) 2013-03-14 2017-02-14 Nike, Inc. Overmold protection for vibration motor
US20140372935A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Input Processing based on Input Context
JP5882272B2 (ja) * 2013-08-30 2016-03-09 京セラドキュメントソリューションズ株式会社 資料評価プログラムおよび資料評価装置
US10671252B2 (en) 2014-09-04 2020-06-02 Home Box Office, Inc. Styling system
CN105528333B (zh) * 2015-12-15 2019-06-07 网易(杭州)网络有限公司 一种文档优化显示的方法和装置
CN107291670A (zh) * 2017-06-16 2017-10-24 江苏经贸职业技术学院 一种文档交互方法
CN107256209A (zh) * 2017-06-16 2017-10-17 江苏经贸职业技术学院 一种文档交互方法
CN107256211A (zh) * 2017-06-16 2017-10-17 江苏经贸职业技术学院 一种文档交互方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818447A (en) * 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US20030097640A1 (en) 2001-07-25 2003-05-22 International Business Machines Corporation System and method for creating and editing documents
US20040163042A1 (en) 2000-07-26 2004-08-19 Itm Associates Method and system for annotating documents using an independent annotation repository
US20040205663A1 (en) 2002-06-07 2004-10-14 Microsoft Corporation Undo/redo architecture across multiple files

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332212B1 (en) * 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US20050091576A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6995860B2 (en) * 2000-05-17 2006-02-07 Eastman Kodak Company System and method for visual representation of tabs in a production printing workflow
US8561069B2 (en) 2002-12-19 2013-10-15 Fujitsu Limited Task computing
KR20050094865A (ko) * 2003-01-21 2005-09-28 이-북 시스템즈 피티이 리미티드 프로그램 가능한 가상책 시스템
US9003295B2 (en) 2003-03-17 2015-04-07 Leo Martin Baschy User interface driven access control system and method
US7234114B2 (en) * 2003-03-24 2007-06-19 Microsoft Corporation Extensible object previewer in a shell browser
US7458081B2 (en) * 2003-03-27 2008-11-25 Microsoft Corporation Configurable event handling for an interactive design environment
US7331014B2 (en) * 2003-05-16 2008-02-12 Microsoft Corporation Declarative mechanism for defining a hierarchy of objects
CA2504118A1 (en) * 2004-04-09 2005-10-09 Opinionlab, Inc. Using software incorporated into a web page to collect page-specific user feedback concerning a document embedded in the web page

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818447A (en) * 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US20040163042A1 (en) 2000-07-26 2004-08-19 Itm Associates Method and system for annotating documents using an independent annotation repository
US20030097640A1 (en) 2001-07-25 2003-05-22 International Business Machines Corporation System and method for creating and editing documents
US20040205663A1 (en) 2002-06-07 2004-10-14 Microsoft Corporation Undo/redo architecture across multiple files

Also Published As

Publication number Publication date
CN101128816A (zh) 2008-02-20
US7512892B2 (en) 2009-03-31
EP1854026A4 (en) 2010-03-31
JP5284509B2 (ja) 2013-09-11
KR20070108176A (ko) 2007-11-08
JP2008536200A (ja) 2008-09-04
CN101128816B (zh) 2012-06-06
US20060200760A1 (en) 2006-09-07
JP2012168959A (ja) 2012-09-06
EP1854026A1 (en) 2007-11-14
WO2006096209A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
KR101159390B1 (ko) 페이지 매겨진 콘텐트를 디스플레이하고 이와 대화하기위한 방법 및 시스템
US11288042B2 (en) Systems and methods for programming mobile devices
KR102004553B1 (ko) 사용자 인터페이스에서의 작업 공간 관리
US8645849B2 (en) Method and apparatus for providing portioned web pages in a graphical user interface
KR101255432B1 (ko) 탭형 브라우저 내에서 탭을 선택하기 위한 시스템 및 방법
EP2742422B1 (en) Content preview
RU2464625C2 (ru) Расширяемый предварительный визуализатор объекта в браузере-оболочке
JP5697661B2 (ja) プラットフォームの拡張性フレームワーク
US20080104505A1 (en) Method, System and Program Product Supporting Customized Presentation of Toolbars Within a Document
JP2006164261A (ja) 改良型ユーザインターフェイスを有するデータ処理装置及びシステム
JP2006164260A (ja) データ処理装置及びシステムのためのユーザインターフェイス
JP2002297386A (ja) オブジェクト指向通知フレームワークシステム及びこれを実行するための方法並びにこれを管理するための方法
JP2007095090A (ja) メニュー項目表示方法および装置
JP5167850B2 (ja) Guiシステム、gui生成方法、プログラムおよび記録媒体
JP2012064207A (ja) ホスト装置及びホスト装置のコンテンツ表示方法
JP2003099424A (ja) 文書のデータ構造、記憶媒体及び情報処理装置
KR20190115401A (ko) 링크 뷰 방법, 링크 뷰 장치 및 링크 뷰 프로그램
EP4254153A1 (en) Information processing system, information processing method, and program
AU2011308901B2 (en) Content preview
JP2010026925A (ja) 情報処理装置、画面制御方法、およびプログラム
JP2019153345A (ja) ブラウザ、ブラウザの制御方法およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee