KR20120123318A - 애플리케이션의 뷰 기능 확장 - Google Patents

애플리케이션의 뷰 기능 확장 Download PDF

Info

Publication number
KR20120123318A
KR20120123318A KR1020127018117A KR20127018117A KR20120123318A KR 20120123318 A KR20120123318 A KR 20120123318A KR 1020127018117 A KR1020127018117 A KR 1020127018117A KR 20127018117 A KR20127018117 A KR 20127018117A KR 20120123318 A KR20120123318 A KR 20120123318A
Authority
KR
South Korea
Prior art keywords
view
application
content
user
adapter
Prior art date
Application number
KR1020127018117A
Other languages
English (en)
Inventor
라두 씨 마르가린트
앤드류 디 칵스
개리 더블유 플레이크
카림 티 파라우키
알랜 케이 우
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20120123318A publication Critical patent/KR20120123318A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/0485Scrolling or panning
    • G06F3/04855Interaction with scrollbars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04805Virtual magnifying lens, i.e. window or frame movable on top of displayed information to enlarge it for better reading or selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Abstract

애플리케이션의 뷰잉 기능은 어댑터의 사용에 의해 확장될 수 있다. 애플리케이션은 인스턴스화되고, 이 애프리케이션은 인터페이스의 일부로서 스클롤링 기능을 포함하는 뷰 박스를 제공할 수 있다. 어댑터는 사용자에게 보이지 않는 방식으로 정보를 수집하도록 "화면 뒤에서(behind the scenes)" 애플리케이션을 사용한다. 마우스 제스처는 줌잉과 같은 다양한 뷰잉 기능을 수행하도록 규정될 수 있다. 어댑터는 사용자가 애플리케이션과 상호작용하기 위해 사용하는 윈도우내의 이들 제스처를 인터셉트하고, 그 제스터를 (줌과 같은)특정 뷰 커맨드로서 해석한다. 커맨드에 기초하여(또는 가능하게는 아직 발행되지 않은 커맨드를 예측하여), 어댑터는 애플리케이션을 사용하여 컨텐츠를 수집한다. 그 후 애플리케이션은 컨텐츠를 적절히 스케일링하고, 스케일링된 컨텐츠를 문서 내에 삽입하며, 뷰 박스의 최상부에 그 문서를 오버레이한다.

Description

애플리케이션의 뷰 기능 확장{EXTENDING VIEW FUNCTIONALITY OF APPLICATION}
기술의 발전으로, 컴퓨터 및 다른 장치의 사용자는 그들이 문서를 보는 방법에 있어서 융통성(flexibility)의 증가를 기대한다. 초기 컴퓨터 디스플레이에서는 정보가 화면 상에 텍스트 라인으로서 제공되었다. 화면이 텍스트로 채워지면, 그 텍스트는 화면 위쪽으로 스크롤되어 새로운 텍스트에게 자리를 내주었다. 결국 맨 위쪽 라인이 화면의 최상위로 스크롤되어 사라지고 되돌릴 수 없게 된다. 그 후의 기술개발에 의해 사용자가 수직 스크롤링을 제어할 수 있게 되었는데, 이는 사용자가 텍스트를 상하로 스크롤하여 뷰를 가져오거나 사라지게 할 수 있게 한다.
현재, 많은 사용자 인터페이스들이 수평 스크롤링 및 줌잉(zooming)과 같은 부가적인 융통성을 허용하고 있다. 그러나, 기존의 많은 애플리케이션들은 이러한 부가적인 형태의 뷰잉 융통성을 지원하지 않는다. 또한, 일부 새로운 애플리케이션(예컨대, 일부 자바 기반의 웹 애플리케이션)은 간단한 수직 스크롤링 기능만을 갖는 뷰잉 영역을 제공한다. 사용자들은 줌잉, 수직 및 수평 스크롤링과 같은 향상된 뷰잉 기능(viewing capability)에 익숙해져 왔으며, 심지어 원래는 이들 기능을 제공하지 않는 애플리케이션을 가지고 이들 기능을 사용하기를 원할 수도 있다.
어댑터의 사용을 통해 줌잉(zooming)과 같은 다양한 능력들이 애플리케이션에 제공될 수 있다. 브라우저를 통해 액세스할 수 있는 웹 애플리케이션과 같은 애플리케이션이 스크롤링 기능을 갖는 뷰 박스를 디스플레이할 수도 있다. 뷰 박스는 사용자에게 일부 하부 컨텐츠(예컨데, 텍스트, 이미지 등)를 보여주는데 사용될 수 있다. 줌잉과 같은 부가적인 기능을 사용자 경험에 부가하기 위해, 뷰 어댑터는 뷰 박스를 통해 디스플레이되는 픽셀들을 수집하도록 애플리케이션을 제어한다. 어댑터가 이들 픽셀을 가지면, 이들 픽셀을 임의의 크기로 스케일링할 수 있고, 이들 픽셀을 문서 내에 배치할 수 있으며, 이는 사용자에게 뷰 박스 위에 오버레이로서 보여질 수 있다.
사용자에게 줌잉과 같은 부가적인 기능이 사용자 경험에 부가되었다는 인상을 주기 위해, 어댑터는 사용자의 제스처(예컨대, 줌잉을 나타내는 마우스의 좌우 움직임)를 인터셉트하고, 이들 제스처를 사용하여 사용자에게 보여줄 컨텐츠를 결정한다. 그 다음에, 어댑터는 애플리케이션의 제 2 인스턴스를 사용하여 그 컨텐츠로부터 적절한 픽셀들을 수집하고(또는 사용자 커맨드를 예상하여 사전에 픽셀들을 수집하고), 이들 픽셀을 문서 내에 배치한다. 어댑터는 애플리케이션이 디스플레이할 하부 컨텐츠 대신에 자신이 생성한 문서로 대체한다. 따라서, 예컨대, 애플리케이션이 일반적으로 사용자에게 텍스트 문서를 보여줄 경우, 어댑터는 어댑터가 생성한 문서의 이미지를 원래의 뷰 박스 위에 오버레이시키며, 따라서 사용자는 원래의 텍스트 문서 대신에 그 문서를 보게 된다. 이 문서는 원래의 컨텐츠의 다양한 영역의 확장 또는 축소된 뷰를 담고 있을 수 있다.
어댑터는 마치 자신이 실제 사용자인 것처럼 애플리케이션을 구동시킴으로써 픽셀들을 수집하기 때문에, 어댑터는 픽셀 수집을 위한 적절한 스크롤링 커맨드를 발행할 수 있도록 애플리케이션 내 스크롤 바의 위치를 찾는 시도를 한다. 일례에서는, 어댑터가 애플리케이션에 의해 노출된 메타데이터를 통해 스크롤 바의 위치를 찾는다. 다른 예에서는, 애플리케이션이 관찰에 의해, 예컨대 어떠한 동작이 뷰 박스를 스크롤하게 하는지를 알기 위해 애플리케이션과의 사용자 상호작용을 관찰함으로써, 스크롤 바의 위치를 찾아낸다.
또한, 어댑터는 사용자의 속도 감지를 향상시키고 메모리 사용을 감소시키는 방식으로 애플리케이션을 이용하여 픽셀을 수집하고 저장할 수 있다. 예컨대, 사용자가 문서 내의 소정 방향으로 패닝(panning)하는 것처럼 보이면, 어댑터는 하부 컨텐츠에서 그 방향을 따라서 뒤쪽의 적절한 픽셀을 미리 수집함으로써 사용자가 아직 발행하지 않은 커맨드를 예측할 수 있다. 적절한 픽셀을 미리 취함으로써, 사용자의 대기 시간이 감소되며, 이에 따라 애플리케이션의 응답 시간에 대한 사용자의 감지가 향상된다. 또한, 픽셀들이 문서 내에 배치될 경우, 이들 픽셀이 사용자에 의해 요구될 가능성이 낮은 문서의 영역을 표현할 것 같으면 애플리케이션은 저장된 픽셀들을 지워서 공간을 절약한다.
본 요약은 상세한 설명에서 보다 상세히 설명되는 개념의 일부를 간략한 형태로 소개하기 위한 것이다. 본 요약은 청구범위의 중요한 특징 또는 필수적인 특징들을 나타내고자 하는 것이 아니며, 청구범위를 한정하는데 사용하고자 하는 것이 아니다.
도 1은 스크롤링이 가능한 예시적인 애플리케이션 인터페이스의 블록도.
도 2는 뷰 기능의 확장을 지원하는 예시적인 시나리오의 블록도.
도 3은 원래의 컨텐츠가 대체 문서로 교체되는 예시적인 시나리오의 블록도.
도 4는 애플리케이션에 소정 뷰잉 기능을 제공하는 예시적인 프로세스의 순서도.
도 5는 예시적인 관측 검출 프로세스의 순서도.
도 6은 본 발명의 구현과 관련하여 사용될 수 있는 예시적인 구성요소의 블록도.
사용자들은 흔히 자신들이 문서를 보는데 있어서 융통성을 갖기를 원한다. 기술이 발전함에 따라 사용자 인터페이스는 보다 많은 융통성을 수용한다. 컴퓨터의 초창기 시절에는, 텍스트가 화면 상에서 라인 순서로 사용자에게 제공되었다. 화면이 채워지면, 보다 오래된 라인들이 페이지의 맨 위쪽으로 진행하여 나가 되돌릴 수 없게 된다. 이후의 기술혁신으로, 수직 스크롤링이 도입되어 사용자는 문서의 상하로 이동이 가능해졌다. 또한 수평 스크롤링이 워드 래핑(word wrapping)에 대한 대안으로서 도입되어, 너무 넓어서 한 화면에 맞지 않는 라인을 보는 방법이 제공되었다.
통상적으로, 스크롤 가능한 영역은 사용자가 문서의 상하(또는 수평 스크롤링의 경우에는 좌우)로 이동하기를 원하는 지의 여부를 사용자가 지정할 수 있는 영역을 제공한다. 이 영역은 통상적으로 사용자가 어디로 이동하고자 하는지를 나타내기 위해 사용자가 상하(또는 좌우)로 이동할 수 있는 스크롤 바 또는 이동막대(thumb)를 포함한다.
스크롤링에 더하여, 사용자는 컨텐츠를 볼 때 흔히 확대(zoom in) 및 축소(zoom out)할 수 있기를 원한다. 그러나, 스크롤링 기능을 갖는 일부 애플리케이션은 줌 기능을 갖지 않는다. 본 발명은 스크롤링 기능을 보여주는 애플리케이션에서 줌 기능을 구현하는데 사용될 수 있다. 기존의 애플리케이션의 뷰잉 기능을 향상시키기 위해, 뷰 어댑터는 사용자가 시도하고자 하는 것을 판단하기 위해 사용자의 제스처 및 다른 커맨드를 인터셉트한다. 예를 들면, 사용자는 마우스로 뷰 박스를 좌우로 움직임으로써, 사용자가 줌인 또는 줌아웃하고자 함을 나타낼 수 있다. 줌 기능은 애플리케이션 자체에서 구현되지는 않기 때문에, 어댑터가 이들 제스처를 인터셉트하고, 적절히 스케일링된 컨텐츠를 획득하고, 애플리케이션의 뷰 박스에 대해 스케일링된 컨텐츠를 디스플레이함으로써 커맨드에 응답한다.
적절히 스케일링된 컨텐츠를 획득하고, 그 컨텐츠를 애플리케이션에 제공하기 위해, 어댑터는 다음의 동작을 수행할 수 있다. 하부 문서의 뷰를 제공하는 소정의 애플리케이션에 대해, 어댑터는 애플리케이션의 스크롤 기능과 상호작용하여 애플리케이션을 구동할 수 있다. 애플리케이션과의 어댑터의 상호작용은 사용자에게 직접 보여지지는 않을 수 있지만, 애플리케이션은 이들 상호작용을 이용하여 사용자에게 보여줄 컨텐츠를 획득할 수 있다. 예컨대, 어댑터는 애플리케이션의 스크롤 기능을 이용하여 문서 내에서 상하로(또는 가능하다면 좌우로) 스크롤할 수 있다. 뷰 어댑터가 이런 방법으로 문서를 네비게이트하는 이유는 문서의 다양한 부분을 수집하기 위한 것이다. 예를 들어, 한번에 문서의 1/10만이 뷰 박스에서 보여질 수 있다고 가정해 보자. 사용자가 5개의 뷰박스분의 문서를 포함하는 문서의 축소된 뷰를 보기를 원한다고 사용자가 (적절한 줌 제스처를 통해) 나타내면, 어댑터는 애플리케이션의 컨트롤을 사용하여 문서를 통해 스크롤하여 5개의 뷰박스분의 그 문서를 수집할 수 있다. 어댑터는 그 후 수집한 정보를 하나의 뷰 박스에 맞도록 축소할 수 있다. 축소된 버전이 사용자에게 보이게 하기 위해, 어댑터는 축소된 버전을 어댑터가 관리하는 가상 문서에 삽입한다. 따라서, 어댑터는 하부 문서의 축소된 뷰를 가상 문서에 삽입한 후, 사용자에게 이 가상 문서를 노출시킨다. 예컨대, 어댑터는 사용자가 뷰 박스에서 가상 문서를 볼 수 있도록 애플리케이션의 뷰 박스 위에 가상 문서의 뷰를 오버레이할 수 있다.
어댑터는 문서에 대한 정보를 수집하고 저장하기 위한 소정의 기법들을 사용할 수 있다. 예를 들면, 어댑터는 문서를 보여주는 많은 상이한 줌 레벨을 제공할 수 있지만, 모든 줌 레벨로 전체 문서를 저장하는 것은 원치 않을 수 있다. 따라서, 어댑터는 특정 줌 레벨에 대한 사용자의 요구에 응답하여 문서의 부분들을 수집할 수 있으며, 또는 사용자가 문서의 어떤 영역을 보기 위해 사용자가 실제로 커맨드를 발행하기 전에, 사용자가 다음에 문서의 어떤 영역을 볼 지를 예측하고자 할 수 있다. 예를 들어, 사용자가 특정 줌 레벨로 문서를 보고 있고 위쪽으로 스크롤링 또는 패닝할 것 같은 경우, 어댑터는 사용자가 계속해서 위쪽으로 스크롤 할 것이라고 예측할 수 있으며 사용자가 실제로 요청하기 전에 문서 내 보다 위쪽에 있는 정보를 수집할 것이다. 또한, 어댑터는 사용자가 이미 봐서 뷰잉 영역으로부터 이동된 문서의 부분들을 폐기함으로써 공간을 확보할 수 있다.
애플리케이션을 어떻게 구동할지를 결정하기 위해, 어댑터는 애플리케이션의 컨트롤이 어디에 있는 지를 알고자 할 수도 있다. 애플리케이션의 컨트롤이 어디에 있는 지를 알기 위한 한 방법은 애플리케이션에 의해 노출된 메타데이터를 분석하는 것이다. 예컨대, 애플리케이션은 스크롤 가능한 뷰잉 영역 및 그 스크롤 바가 어디에 위치해 있는지를 나타내는 메타데이터를 제공할 수 있다. 또는 다른 예로서, 어댑터는 사용자의 행동 및 그 행동에 응답하여 애플리케이션에 의해 취해진 동작을 관찰함으로써 스크롤 가능한 뷰잉 영역 및 스크롤 바의 위치를 추론할 수 있다. 예를 들면, 스크롤 바의 위치를 나타내는 통상적인 행동은, 먼저 스크롤 이동막대를 사용자가 클릭하고, 그 다음에 아무일도 일어나지 않고, 그 다음에 사용자가 이동막대를 상하로 움직이기 시작하고, 그 다음에 뷰잉 영역 내의 컨텐츠가 이동막대의 방향으로 상하로 이동한다. 이 패턴을 관찰함으로써, 어댑터는 스크롤 가능한 뷰잉 영역의 존재 및 스크롤 바의 위치를 검출할 수 있다. 다른 예에서, 사용자가 마우스를 클릭한 다음 스크롤링이 관찰되면, 이 패턴은 사용자가 이동막대 이외의 다른 장소에 있는 스크롤 바를 클릭했다는 것을 나타내는 경향이 있다. (이상은 수직 스크롤 바를 검출하는 몇몇 기법들을 설명하지만, 이와 마찬가지의 기법들이 수평 스크롤 바를 검출하는데 이용될 수 있다.)
이제 도면을 살펴보면, 도 1은 스크롤링이 이용가능한 예시적인 애플리케이션 인터페이스를 도시하고 있다. 윈도우(102)는 프로그램(104)의 사용자 인터페이스를 제공한다. 예컨대, 윈도우(102)를 통해 인터페이스가 제공되는 프로그램(104)은 소정의 컨텐츠를 디스플레이하기 위해 HTML(Hypertext Markup Language) 및 자바 코드와 같은 정보를 처리하는 브라우저일 수 있다. 윈도우(102)는 윈도우가 갖는 일반적인 컨트롤들, 예컨대, 사용자가 윈도우(102)를 크기 재조정하고 닫을 수 있게 하는 컨트롤(106)을 가질 수 있다.
윈도우(102) 내에서, 다양한 유형의 컨텐츠가 프로그램(104)에 의해 디스플레이될 수 있다. 그러한 컨텐츠의 일례로 일부 하부 컨텐츠(110)가 디스플레이될 수 있게 하는 뷰 박스(108)를 들 수 있다. 이 예에서는 디스플레이되는 컨텐츠(110)가 유명한 "Lorem ipsum" 텍스트 컨텐츠이지만, 어떠한 유형의 컨텐츠(예컨대, 텍스트, 이미지 등)도 뷰 박스(108)를 통해 디스플레이될 수 있다. 예컨대, 브라우저가 몇몇 유형의 컨텐츠에 액세스하는데 사용될 경우, 액세스되는 컨텐츠는, 브라우저로 하여금 뷰 박스를 디스플레이하게 하고 컨텐츠(110)가 뷰 박스(108)를 통해 디스플레이되게 하는 HTML 또는 자바 코드를 제공하는 서버측 애플리케이션일 수 있다. 컨텐츠(110)는 소스 텍스트 파일(112), 폰트(114) 및 이미지(116)와 같은 하나 이상의 구성요소로 이루어질 수 있다. 예컨대, 뷰 박스(108)에 보여지는 컨텐츠(110)는 텍스트 및 이미지를 포함하는 신문 기사일 수 있다. 컨텐츠는 뷰 박스(108)를 통해 디스플레이된 픽셀을 통해 보여진다. 보여지는 특정 픽셀은 텍스트 및 그래픽을 포함한다. 그래픽을 나타내는 픽셀은 이미지(116)로부터 도출된다. 텍스트를 나타내는 픽셀은 소스 텍스트 파일(112) 및 폰트(114)로부터 도출되는데, 즉, 소스 텍스트 파일(112)은 어떤 문자들이 얻어지는지를 나타내고, 폰트(114)는 이들 문자가 어떻게 나타날 것인지를 나타낸다.
뷰 박스(108)는 사용자가 컨텐츠(110)를 통해 수직으로 및/또는 수평으로 스크롤할 수 있게 하는 컨트롤을 제공한다. 예컨대, 뷰 박스(108)의 우측 가장자리와 아래측 가장 자리를 따라 뷰 박스(108) 내에서 컨텐츠(110)의 스크롤링을 지시하는데 사용되는 2개의 직사각형(118, 120)이 있다. 직사각형(118, 120)은 스크롤 바 또는 이동막대(122, 124)를 포함하며, 이들은 사용자가 상하(이동막대(122)) 및/또는 좌우(이동막대(124))로 스크롤할 수 있게 한다. 스크롤링 기능은 뷰 박스(108)를 제공하는 서버측 애플리케이션에 의해 제공될 수 있다. (일부 예에서, 뷰 박스(108)는 수직 스크롤링만 제공하거나 또는 수평 스크롤링만 제공할 수 있다. 본 명세서에서 설명된 기법들은 뷰 박스(108)가 원래 제공하지 않는 차원으로 스크롤링을 제공하기 위해 뷰잉 기능을 확장하는데 사용될 수도 있다.)
사용자가 수행하고자 하는 하나의 뷰잉 기능은 줌잉 또는 스케일링이다. 스크롤링 기능은 사용자가 컨텐츠(110)를 뷰 박스(108) 내에서 상하로 이동시키게 할 수 있지만, 스크롤링은 사용자가 (컨텐츠의 보다 작은 양의 컨텐츠를 보다 상세하게 보기 위해)컨텐츠를 보다 크게 만들거나 또는 (보다 큰 양의 컨텐츠를 보다 덜 상세하게 보기 위해)작게 만들도록 허용하지는 않는다. 사용자가 마우스를 이용하여 "줌 인" 또는 "줌 아웃"과 같은 기능을 나타낼 수 있는 다양한 방법이 있다. 예를 들면, 사용자는 마우스 포인터를 오른쪽으로 드래그하여 줌잉 인을 나타낼 수도 있고, 왼쪽으로 드래그하여 줌잉 아웃을 나타낼 수도 있다. 이러한 제스처는 사용자에 의해 이루어지지만, 뷰 박스(108)는 원래는 이들 제스처를 지원하지 않을 수 있다. 본 명세서에서 제공되는 기법들은 이러한 지원을 제공하는데 사용될 수 있으며, 따라서 이들 지원이 컨텐츠가 보여지게 하는 애플리케이션에 의해 원래는 제공되지 않는 경우에도 사용자는 컨텐츠에 대해 줌 인 및 줌 아웃을 할 수 있다(또는 임의의 다른 적절한 뷰잉 조작을 수행할 수 있다).
도 2는 뷰 기능을 확장하기 위한 지원을 제공하는 예시적인 방법을 도시하고 있다. 서버측 애플리케이션은 일부 하부 컨텐츠(예컨대, 텍스트, 폰트, 이미지 등)에 대한 액세스를 제공하는 뷰 박스(108)를 제공하고, 이 뷰 박스를 사용자에게 제공하는 윈도우(102)에 프로그램(예컨대 브라우저)이 오픈된다. 또한, 뷰 박스(108)는 수직 및/또는 수평 스크롤링을 할 수 있게 하는(또는 전술한 바와 같이, 뷰 박스(108)는 한 차원으로만 스크롤링을 제공할 수도 있다) 이동막대(122, 124)를 제공할 수 있다. 이들 구성요소들은 도 1에 도시된 것과 유사하다. 애플리케이션 인스턴스(202)는 사용자가 상호작용하는 애플리케이션의 인스턴스이다. 예컨대, 시스템은 사용자가 애플리케이션 인스턴스(202)와 상호작용할 수 있게 하는 브라우저 윈도우를 열 수 있다. 그러나, 뷰 어댑터(206)는, 애플리케이션 인스턴스(202)의 인터페이스의 점선 부분으로 표시되어 있는 바와 같이, 사용자가 볼 수 없는 방식으로 애플리케이션 인스턴스(202)와 상호작용할 수도 있다.
구체적으로, 사용자가 윈도우(102)를 통해 애플리케이션 인스턴스(202)와 상호작용하는 동안, 뷰 어댑터(206)는 사용자에 의해 발행된 커맨드(208)를 인터셉트한다. 예를 들어, 사용자가 (줌 인 및 줌 아웃 동작을 나타내는)전술한 좌우 제스처와 같은 제스처를 취하면, 이들 제스처는 커맨드(208)로서 해석될 수 있고, 뷰 어댑터(206)는 이들 커맨드(208)를 인터셉트할 수 있다. 뷰 어댑터(206)가 이들 커맨드를 인터셉트할 수 있는 한 방법은 윈도우(102)가 포커스를 가질 때마다 윈도우(102) 내에서의 키보드 및 마우스의 상호작용을 관찰하는 것이다. ("포커스를 갖는다(having focus)"는 것은 일반적으로 윈도우가 활성임을 의미하는 것으로 이해된다. 즉 그 키보드 및 마우스 입력이 그 시점에 다른 윈도우가 아니라 포커스를 갖는 윈도우를 가리키는 것으로 이해된다.)
뷰 어댑터(206)가 커맨드를 인터셉트하는 방식에 관계없이, 뷰 어댑터(206)는 커맨드(208)를 가지면 그 커맨드를 해석하여 사용자가 무엇을 보고자 하는지를 판정할 수 있다. 예를 들어, 좌측으로의 움직임은 사용자가 줌 아웃하기를 원하며 따라서 그 컨텐츠의 보다 많은 이미지를 덜 상세하게 보고자 하는 것으로 해석될 수 있다. 그러면, 뷰 어댑터(206)는 사용자가 보기를 원하는 컨텐츠를 획득하고자 할 것이다. 뷰 어댑터(206)는 애플리케이션 내 뷰 박스(210)를 조작함으로써 이 컨텐츠를 획득한다. 뷰 박스(210)는 뷰 박스(210) 내의 컨텐츠의 뷰를 제어할 수 있는 이동막대(212, 214)를 제공할 수 있다. 뷰 박스(210)에 디스플레이되는 컨텐츠는 도 1의 뷰 박스(108)에 디스플레이되는 것과 동일한 컨텐츠(110)이다. 뷰 어댑터(206)는 이동막대(212, 214)를 제어함으로써 컨텐츠(110)의 뷰를 제어한다. 뷰 어댑터(206)의 뷰 박스(210) 내부의 뷰의 조작은, 이 조작이 사용자에게 직접 실제로 디스플레이되지 않는다는 점에서 "화면 뒤에서(behind the scenes)" 일어날 수 있다. 예를 들어, 뷰 박스(210) 내의 컨텐츠의 스크롤링 및 화살표의 이동은 애플리케이션의 어떠한 데스크탑에서도 나타나지 않을 수 있다. 그 보다는, 뷰 어댑터(206)는 사용자가 키보드 또는 마우스를 통해 제공했을 수 있는 동일한 종류의 커맨드를 애플리케이션이 수신하고 있다고 믿는 방법으로 애플리케이션의 입력 버퍼를 작동시킨다.
애플리케이션의 컨트롤을 작동시킴으로써, 뷰 어댑터(206)는 하부 컨텐츠(110)의 상이한 부분들을 볼 수 있다. 뷰 어댑터는 컨텐츠(110)를 나타내는 픽셀(216)을 수집한다. 예를 들어, 컨텐츠(110)가 텍스트를 포함하고 있으면, 픽셀(216)은 일부 폰트에서 얻어진 그 텍스트의 문자들을 나타내는 픽셀이다. 컨텐츠(110)가 이미지를 포함하면, 픽셀(216)은 이들 이미지를 나타내는 픽셀이다.
뷰 어댑터(206)가 픽셀(216)을 수집하면, 뷰 어댑터(206)는 이 픽셀을 사용하여 대체 문서(218)를 생성한다. 대체 문서(218)는 사용자가 애플리케이션 인스턴스(202)로 보고자 하는 원래의 컨텐츠(110)를 대신한다는 점에서 "대체물(substitute)"이다. 사용자는 하부 컨텐츠(110)를 보기 위해 애플리케이션 인스턴스(202)를 인스턴스화했음을 상기하라. 전술한 바와 같이, 뷰 어댑터(206)는 컨텐츠(110)를 나타내는 픽셀을 수집하기 위해 애플리케이션 인스턴스(202)와 상호작용한다. 그 다음에 뷰 어댑터는 사용자의 커맨드를 따르는 방법으로 이들 픽셀을 정렬한다. 예컨대, 사용자가 텍스트의 일부분을 줌 인하기를 원함을 나타내면(여기서 줌 특징은 뷰 박스(108)에 의해 원래는 지원되지 않음), 뷰 어댑터(206)는 그 텍스트의 확대된 뷰를 생성한다. 이 확대된 뷰를 생성하기 위해, 뷰 어댑터(206)는 애플리케이션 인스턴스(202)를 사용하여 사용자가 줌하기를 원하는 텍스트의 부분을 나타내는 픽셀들을 수집하고, 이어서 뷰를 적절한 비율로 확대한다. 이 확대된 뷰는 그 후 문서 내에 배치된다. 그 다음에 뷰 어댑터(206)는 오버레이 전에 사용자에게 보여질 수 있는 뷰 박스의 맨 위(즉, 뷰 박스(108)의 최상부)에서 문서의 이미지를 오버레이할 수 있다. 일반적으로, 애플리케이션 인스턴스(202)는 뷰 박스(108)를 통해 컨텐츠(110)를 제공한다. 그러나, 뷰 어댑터(206)가 대체 문서(218)의 이미지로 뷰 박스(108)를 오버레이하기 때문에, 사용자는 컨텐츠(110)를 볼 것으로 예상하고 있는 장소에서 대체 문서(218)를 보게 되며, 이것에 의해 마치 뷰 박스(108)에 그렇게 하는 메커니즘이 존재했던 것처럼 사용자가 컨텐츠(110) 상에서 줌잉했다는 착각을 일으킨다. 컨텐츠(110)의 텍스트는 뷰 박스(210)에서보다 뷰 박스(108)에서(보다 구체적으로는, 뷰 박스(108)의 상부에 오버레이로) 보다 크게 나타나며, 이는 사용자에게 보여지는 대체 문서(218)가 그 텍스트의 줌잉된 뷰를 표현함을 나타낸다.
도 3은 원래의 컨텐츠(110)가 어떻게 대체 문서(218)로 대체되는 지를 보여준다. 전술한 바와 같이, 애플리케이션 인스턴스(202)는 일반적으로 뷰 컨텐츠(110)로 인스턴스화되고, 애플리케이션이 이것을 뷰 박스(108)를 통해 사용자에게 디스플레이한다. 그러나, 뷰 어댑터(206)가 사용될 경우, 뷰 어댑터가 뷰 박스(108)의 최상부에 대체 문서(218)의 이미지를 오버레이하며, 이로 인해 대체 문서가 컨텐츠(110) 대신에(컨텐츠(110)와 뷰 박스(108) 사이의 라인 위에 "XX"로 표시된 바와 같이) 보여지게 된다. 대체 문서(218)의 컨텐츠는 뷰 어댑터(206)에 의해 제어된다. 뷰 어댑터(206)는, 컨텐츠(110)로부터 이들 픽셀들을 수집하기 위해 애플리케이션 인스턴스(202)를 제어함으로써 뷰 어댑터(206)가 수집한 픽셀들(216)로 대체 문서(218)를 채운다. 따라서, 사용자가 뷰 박스(108)에서 컨텐츠를 볼 때, 사용자는 원래의 컨텐츠(110)가 아니라 뷰 어댑터가 대체 문서(218)에 배치한 컨텐츠를 보는 것이다. 이런 방법으로, 뷰 어댑터(206)가 소정의 방법으로 이 컨텐츠를 수집할 수 있는 경우라면, 뷰 어댑터(206)는 사용자의 커맨드에 따라서 컨텐츠(110)의 외양을 확대, 축소 또는 다른 방식으로 변환하여 사용자에게 보여줄 수 있다. 뷰 어댑터는 대체 문서(218)에 배치하기를 원하는 픽셀을 수집하는 것과 같은 방식으로 애플리케이션을 구동함으로써 전술한 바와 같이 컨텐츠를 수집한다.
도 4는 소정의 뷰잉 기능(예컨대, 줌잉)이 애플리케이션에 제공될 수 있는 예시적인 프로세스를 순서도 형식으로 도시한 것이다. 도 4를 설명하기 전에, 이들 프로세스는 어떠한 시스템에서도 수행될 수 있고 도 1 내지 3에 도시된 시나리오에 제한되지는 않지만, 여기에 포함된 순서도(도 4 및 도 5 모두에서)는 도 1 내지 3에 도시된 구성요소를 참조하여 예로서 설명된다는 점에 주의하라. 또한, 도 4 및 5의 순서도는 각각, 프로세스의 각 단계들이 블록을 연결하는 라인들로 표시된 특정한 순서로 수행되는 일례를 도시하고 있지만, 이들 도면에 도시된 다양한 단계들은 임의의 순서로 또는 임의의 조합 또는 하위 조합으로 수행될 수도 있다.
402에서, 애플리케이션이 시작된다. 예를 들어, 사용자가 전술한 브라우저 프로그램을 호출할 수 있으며, 브라우저를 이용하여 브라우저 윈도우 내에 뷰 박스를 제공하는 애플리케이션에 액세스할 수 있다. 404에서, 뷰 박스 내 스크롤 바가 검출된다. 예를 들어, 뷰 박스는 수직 스크롤링만 제공할 수 있으며, 이 경우 수직 스크롤 바가 검출된다. 또는 전술한 바와 같이 뷰 박스는 수직 및 수평 스크롤 바 모두를 제공할 수 있고, 이들 모두가 검출될 수도 있다.
스크롤 바의 검출은 다양한 방법으로 수행될 수 있다. 일례에서는, 뷰 박스를 제공하는 애플리케이션이 뷰 박스 및 그 스크롤 바의 위치를 나타내는 메타데이터(406)를 제공할 수도 있다. 다른 예에서는, 뷰 박스 및/또는 그 스크롤 바를 검출하기 위해 뷰 박스가 나타나는 사용자 인터페이스 상에서 관측 검출(408)이 수행될 수도 있다. 이 관측 검출이 수행될 수 있는 한 방법은 도 5에 도시되어 있으며 다음과 같다. 먼저, 사용자가 마우스 버튼(또는 터치패드와 같은 다른 유형의 포인팅 장치 상의 버튼)을 클릭했음이 검출된다(502). 그 다음에, 마우스 버튼의 클릭 후에 그 클릭의 결과로서 화면 상에서 아무 일도 일어나지 않았음이 검출된다(504). 그 다음에, 사용자가 마우스를 이동하기 시작했음이 검출된다(506). 그 다음에, 마우스의 이동에 응답하여 스크롤링이 발생했음, 즉, 사용자가 마우스를 움직일 때 화면상의 무언가가 스크롤하기 시작했음이 검출된다. 관측된 동작들이 사용자가 이동막대를 동작시키는 것과 일치하기 때문에, 이 동작들의 순서는 사용자가 마우스를 사용하여 스크롤 바의 이동막대를 작동시켰음을 나타내는 경향이 있다. 이들 관측을 이용하여, 뷰 박스 및 이동막대의 위치가 추론된다.
이제 도 4를 참조하면, 412에서 애플리케이션은 사용자가 그 애플리케이션을 사용하여 보고 있던 원래의 컨텐츠를 소비한다. 예를 들어, 사용자가 애플리케이션을 사용하여 컨텐츠(110)(도 1 참고)를 보고자 하면, 애플리케이션은 컨텐츠(110)를 소비한다. 애플리케이션은 뷰 어댑터(206)(도 2 참고)의 명령 하에서 컨텐츠(110)를 소비할 수도 있다. 뷰 어댑터가 컨텐츠(110)의 뷰를 명령하고 있는 동안, 뷰 어댑터는 문서로부터 픽셀들을 수집한다(414). 416에서, 뷰 어댑터는 픽셀들을 대체 문서에 삽입한다. 418에서, 애플리케이션이 대체 문서로부터 사용자 컨텐츠를 보여주고 있는 것처럼 하기 위해, 대체 문서로부터의 컨텐츠가 애플리케이션의 뷰 박스의 최상부에 오버레이된다. 예컨대, 뷰 어댑터는 애플리케이션 내 뷰 박스의 위치의 맨 위에 오버레이를 생성할 수 있으며, 이 오버레이에 대체 문서로부터의 컨텐츠를 디스플레이할 수 있다.
뷰 어댑터가 애플리케이션을 사용하여 픽셀들을 수집할 때, 다양한 방법으로 다양한 단서에 응답하여 그렇게 할 수 있음에 주의하라. 예를 들면, 뷰 어댑터는 사용자에 의한 특정한 동작에 응답하여 하부 컨텐츠로부터 픽셀들을 수집할 수 있다. 즉, 사용자가 줌 아웃을 요구할 경우, 뷰 어댑터는 애플리케이션을 사용하여 하부 컨텐츠를 조작하고 여러 뷰 박스분의 픽셀들을 수집할 수 있으며, 따라서 여러 박스분의 컨텐츠의 줌 아웃된 뷰가 사용자에게 보여질 수 있다. 그러나, 다른 예에서는, 뷰 어댑터가 사용자가 무엇을 요구할 것인가에 대해 예측을 시도한다. 예컨대, 사용자가 컨텐츠를 통해 소정 방향(예를 들어 오른쪽)으로 패닝하고 있으면, 뷰 어댑터는 사용자가 그 방향으로 컨텐츠를 통해 패닝을 계속할 것으로 추정할 수 있으며, 그에 따라 사용자가 가까운 미래에 그 방향으로 더욱 패닝할 것이라는 예측에 기반하여 사용자가 실제로 패닝하기 전에 그 방향으로의 컨텐츠의 부분들을 더 수집하려고 할 것이다. 또한, 뷰 어댑터는 컨텐츠의 동일 위치에서 사용자의 줌잉 또는 줌잉 아웃을 예측하여 가변적인 상세 레벨로 하부 컨텐츠로부터의 픽셀들을 저장할 수도 있다. 예컨대, 사용자가 문서내 특정 위치로 패닝한 다음 패닝을 중지하면, 사용자는 그 위치에서 줌 인 하거나 줌 아웃 할 수 있을 것이며, 따라서 뷰 어댑터는 사용자가 그 위치에서 실제로 줌 인 또는 줌 아웃할 것이라고 예측하여 몇몇 상이한 줌 레벨로 문서의 이미지를 구성할 수도 있다. 시스템은 소정 시간 동안 상이한 줌 레벨로 컨텐츠의 여러 상이한 뷰를 저장할 수 있고, 또한 저장된 뷰가 가까운 미래에 사용되지 않을 것으로 예측되는 경우에 저장된 뷰들을 삭제할 수도 있다. 아직 발행되지 않은 사용자 커맨드를 예측하여 컨텐츠의 뷰를 사전 계산함으로써, 이들이 요구된 후에 신속하게 뷰를 제공할 수 있으므로 동작 감지를 향상시킬 수 있다. 또한, 뷰 어댑터가 가까운 미래에 사용하지 않을 것으로 판단하는 뷰를 삭제함으로써, 뷰를 저장하는데 사용되는 공간이 감소한다.
도 6은 본 발명이 이용될 수 있는 예시적인 환경을 도시하고 있다.
컴퓨터(600)는 하나 이상의 프로세서(602)와 하나 이상의 데이터 기억 장치(604)를 포함한다. 프로세서(602)는 통상적으로 개인용 데스크탑 또는 랩탑 컴퓨터, 서버, 핸드헬드 컴퓨터 또는 다른 유형의 컴퓨팅 장치에서 볼 수 있는 것과 같은 마이크로프로세서이다. 데이터 기억 장치(604)는 단기간 또는 장기간 데이터를 저장할 수 있는 소자이다. 데이터 기억 장치의 예로는 하드 디스크, 착탈식 디스크(광 및 자기 디스크 포함), 휘발성 및 비휘발성 RAM, ROM, 플래시 메모리, 자기 테이프 등을 들 수 있다. 데이터 기억 장치는 컴퓨터 판독가능한 저장 매체의 예이다. 컴퓨터(600)는 CRT 모니터, LCD 모니터 또는 임의의 다른 유형의 모니터일 수 있는 디스플레이(612)를 포함하거나 이들과 연관될 수 있다.
소프트웨어가 데이터 기억 장치(604)에 저장될 수도 있고 하나 이상의 프로세서(602) 상에서 실행될 수도 있다. 그러한 소프트웨어의 일례로는 도 1 내지 5와 관련하여 위에서 설명한 기능의 일부 또는 전부를 구현할 수 있는 뷰 적응 소프트웨어(606)가 있지만, 어떠한 유형의 소프트웨어도 사용될 수 있다. 소프트웨어(606)는 예를 들어 분산 시스템, 별도의 파일, 별도의 기능, 별도의 객체, 별도의 코드 라인 등에서의 컴포넌트일 수 있는 하나 이상의 컴포넌트를 통해 구현될 수도 있다. 프로그램이 하드 디스크 상에 저장되고 RAM에 로딩되어 컴퓨터의 프로세서 상에서 실행되는 개인용 컴퓨터는 도 6에 도시된 시나리오의 전형이지만, 본 발명은 이 예에 한정되지 않는다.
본 발명은, 하나 이상의 데이터 기억 장치(604)에 저장되고 하나 이상의 프로세서(602) 상에서 실행되는 소프트웨어로서 구현될 수 있다. 다른 예로서, 본 발명은 하나 이상의 컴퓨터 판독가능한 저장 매체에 저장되는 명령어로서 구현될 수 있다. (광 디스크 또는 자기 디스크와 같은 유형의 매체가 저장 매체의 예들이다.) 이러한 명령어는 컴퓨터 또는 다른 기계에 의해 실행될 때, 컴퓨터 또는 다른 기계로 하여금 방법의 하나 이상의 동작을 수행하게 할 수 있다. 동작을 수행하는 명령어는 하나의 매체에 저장되거나 복수의 매체에 퍼져 있을 수 있으며, 따라서 모든 명령어들이 동일 매체 상에 있는지의 여부에 관계없이 하나 이상의 컴퓨터 판독가능한 저장 매체에 집합적으로 나타날 수 있다.
또한, 여기에 기술된 임의의 동작은 방법의 일부로서 프로세서(예컨대, 하나 이상의 프로세서(602))에 의해 수행될 수도 있다. 따라서, 동작 A, B, C가 기술되는 경우, 방법은 A, B, C의 동작을 수행하는 것을 포함한다. 또한, 동작 A, B, C가 기술되는 경우, 방법은 프로세서를 사용하여 A, B, C의 동작을 수행하는 것을 포함한다.
일실시예에서, 컴퓨터(600)는 네트워크(608)를 통해 하나 이상의 다른 장치와 통신하도록 접속될 수 있다. 컴퓨터(610)는 컴퓨터(600)와 구성면에서 유사할 수 있으며, 컴퓨터(600)에 접속될 수 있는 장치의 일례이며, 물론 다른 유형의 장치가 접속될 수도 있다.
이상 구조적 특징 및/또는 방법론적 동작에 특유한 언어로 본 발명을 설명하였지만, 첨부한 청구범위에 정의된 본 발명의 요지는 전술한 특정 특징 또는 동작에 한정될 필요는 없음에 유의하라. 오히려, 전술한 특정 특징 및 동작은 청구범위를 구현하는 예로서 개시된 것이다.

Claims (15)

  1. 애플리케이션에 뷰 기능(view functionality)을 제공하는 방법으로서,
    애플리케이션의 뷰 박스 내의 제 1 스크롤 바의 제 1 위치를 검출하는 단계 -상기 뷰 박스를 통해 컨텐츠가 디스플레이됨- 와;
    상기 제 1 스크롤 바의 상기 제 1 위치를 이용하여 상기 컨텐츠를 네비게이트하고 -상기 네비게이트는 상기 애플리케이션의 사용자가 볼 수 있음- , 상기 컨텐츠를 나타내는 픽셀을 수집하는 단계와;
    상기 뷰 박스의 최상부에 상기 픽셀에 기초한 정보를 오버레이(overlaying)하는 단계를 포함하는
    뷰 기능 제공 방법.
  2. 제 1 항에 있어서,
    상기 제 1 위치를 검출하는 단계는, 상기 애플리케이션에 의해 제공되며 상기 제 1 스크롤 바의 상기 제 1 위치를 지정하는 메타데이터를 사용하는 단계를 포함하는
    뷰 기능 제공 방법.

  3. 제 1 항에 있어서,
    상기 제 1 위치를 검출하는 단계는
    상기 애플리케이션의 사용자가 포인팅 장치를 사용하여 상기 애플리케이션의 인터페이스 내의 제 2 위치를 클릭했음을 관측하는 단계와,
    상기 사용자가 상기 포인팅 장치로 상기 제 2 위치로부터 제 3 위치로의 이동을 지시했음을 관측하는 단계 -상기 제 2 위치 및 제 3 위치는 상기 제 1 외치 내에 있음- 와;
    상기 이동 후에 상기 뷰 박스 내의 컨텐츠의 스크롤링이 발생했음을 관측하는 단계를 포함하는
    뷰 기능 제공 방법.
  4. 제 1 항에 있어서,
    상기 뷰 박스가 위치하는 제 4 위치를 검출하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  5. 제 1 항에 있어서,
    상기 뷰 박스는 제 2 스크롤 바를 포함하고, 상기 제 1 스크롤 바는 수직 스크롤 바이며, 상기 제 2 스크롤 바는 수평 스크롤 바이고,
    상기 방법은 상기 애플리케이션 내의 상기 수평 스크롤 바를 사용하여 상기 컨텐츠를 네비게이트하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  6. 제 1 항에 있어서,
    상기 애플리케이션은 사용자에게 적어도 일부 애플리케이션 인스턴스의 윈도우를 디스플레이하는 컴퓨터 시스템 내에서 실행되고,
    상기 제 1 스크롤 바의 상기 제 1 위치를 이용하여 상기 컨텐츠를 네비게이트하는 단계는 윈도우 내에 디스플레이되지 않는
    뷰 기능 제공 방법.
  7. 제 1 항에 있어서,
    상기 뷰 박스의 최상부에 상기 픽셀에 기초한 상기 정보를 오버레이하는 단계는
    상기 픽셀을 문서에 삽입하는 단계와,
    상기 문서를 상기 뷰 박스의 최상부에 오버레이로서 디스플레이하는 단계를 포함하는
    뷰 기능 제공 방법.
  8. 제 7 항에 있어서,
    상기 픽셀이 사용자에 의해 요구되지 않을 것이라는 예측에 기반하여 상기 문서로부터 상기 픽셀을 제거하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  9. 제 1 항에 있어서,
    상기 애플리케이션의 윈도우를 통해 사용자가 발행하는 커맨드를 인터셉트하는 단계와,
    상기 커맨드에 기초하여, 상기 컨텐츠의 어느 부분을 네비게이트하여 픽셀을 수집할 지를 결정하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  10. 제 9 항에 있어서,
    상기 커맨드 중 하나는 줌 레벨을 나타내고,
    상기 방법은 상기 줌 레벨에 기초하여 상기 컨텐츠를 스케일링하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  11. 제 1 항에 있어서,
    사용자에 의해 요구된 상기 컨텐츠의 부분에 기초하여, 상기 사용자가 상기 부분을 획득하기 위한 커맨드를 발행하기 전에 미리 상기 사용자에 의해 요구될 상기 컨텐츠의 부분을 예측하는 단계와,
    상기 애플리케이션을 이용하여 상기 컨텐츠의 상기 부분을 획득하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  12. 제 1 항에 있어서,
    상기 사용자에 의해 요구된 상기 컨텐츠의 줌 레벨에 기초하여, 상기 사용자가 상기 줌 레벨에서 상기 컨텐츠를 보기 위한 커맨드를 발행하기 전에 미리 상기 컨텐츠를 보여줄 줌 레벨을 예측하는 단계와,
    상기 컨텐츠를 상기 줌 레벨로 스케일링하는 단계를 더 포함하는
    뷰 기능 제공 방법.
  13. 제 1 항 내지 12 항 중 어느 한 항의 방법을 수행하기 위한 컴퓨터 실행가능한 명령어를 포함하는 컴퓨터 판독가능한 저장 매체.
  14. 애플리케이션을 동작시키는 사용자로부터의 커맨드에 응답하는 시스템으로서,
    상기 애플리케이션을 실행하는 프로세서와;
    상기 애플리케이션을 저장하는 데이터 기억 컴포넌트와,
    상기 데이터 기억 컴포넌트에 저장되어 있으며 상기 프로세서 상에서 실행되는 뷰 어댑터 -상기 뷰 어댑터는 상기 애플리케이션이 실행되는 윈도우를 통해 상기 사용자에 의해 발행된 커맨드를 인터셉트하고, 상기 뷰 어댑터는 상기 애플리케이션을 통해 컨텐츠를 획득하기 위한 커맨드를 발행하며, 상기 애플리케이션은 디스플레이 상에서 상기 사용자에게 보여지지만, 상기 뷰 어댑터와 상기 애플리케이션 사이의 상호작용은 상기 디스플레이 상에서 상기 사용자에게 보여지지 않음- 와;
    사이 뷰 어댑터가 상기 애플리케이션을 통해 획득하는 컨텐츠를 나타내는 픽셀이 상기 뷰 어댑터에 의해 저장되는 문서 -상기 뷰 어댑터는 상기 문서가 상기 컨텐츠 대신 보이도록 상기 애플리케이션의 뷰 박스의 최상부에 오버레이되게 함- 를 포함하는
    시스템.
  15. 제 14 항에 있어서,
    상기 뷰 어댑터는, 상기 뷰 박스 및 상기 뷰 박스 내의 스크롤 바의 위치를
    상기 애플리케이션으로부터의 메타데이터를 수신하는 것 또는
    상기 윈도우 내에서의 포인팅 장치의 이동 및 상기 이동 후의 상기 애플리케이션의 동작을 관측하고, 상기 이동 및 상기 동작이 상기 위치 내에 있는 상기 뷰 박스 및 상기 뷰 박스의 스크롤 바와 부합함을 판정하는 것
    중 어느 하나에 의해 검출하고,
    상기 뷰 어댑터는 상기 위치를 이용하여 상기 애플리케이션 내에서 상기 컨텐츠를 네비게이트하는
    시스템.
KR1020127018117A 2010-01-13 2010-12-07 애플리케이션의 뷰 기능 확장 KR20120123318A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/687,123 2010-01-13
US12/687,123 US20110173564A1 (en) 2010-01-13 2010-01-13 Extending view functionality of application
PCT/US2010/059282 WO2011087624A2 (en) 2010-01-13 2010-12-07 Extending view functionality of application

Publications (1)

Publication Number Publication Date
KR20120123318A true KR20120123318A (ko) 2012-11-08

Family

ID=44259488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127018117A KR20120123318A (ko) 2010-01-13 2010-12-07 애플리케이션의 뷰 기능 확장

Country Status (8)

Country Link
US (1) US20110173564A1 (ko)
EP (1) EP2524296A4 (ko)
JP (1) JP5738895B2 (ko)
KR (1) KR20120123318A (ko)
CN (1) CN102687110B (ko)
AU (1) AU2010341690B2 (ko)
RU (1) RU2580430C2 (ko)
WO (1) WO2011087624A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8701001B2 (en) * 2011-01-28 2014-04-15 International Business Machines Corporation Screen capture
US20140160148A1 (en) * 2012-12-10 2014-06-12 Andrew J. Barkett Context-Based Image Customization
US9207849B2 (en) * 2013-03-29 2015-12-08 Microsoft Technology Licensing, Llc Start and application navigation
KR101531404B1 (ko) * 2014-01-07 2015-06-24 주식회사 다음카카오 검색 정보 수집 장치, 검색 정보 수집 방법 및 이를 이용한 검색 서비스 제공 방법
CN109814788B (zh) * 2019-01-30 2021-07-20 广州华多网络科技有限公司 一种确定展示目标的方法、系统、设备及计算机可读介质
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
TWI825412B (zh) 2021-05-04 2023-12-11 瑞昱半導體股份有限公司 顯示系統

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0854999A (ja) * 1994-08-11 1996-02-27 Mitsubishi Electric Corp 画像表示システム
US7437670B2 (en) * 2001-03-29 2008-10-14 International Business Machines Corporation Magnifying the text of a link while still retaining browser function in the magnified display
US6907345B2 (en) * 2002-03-22 2005-06-14 Maptech, Inc. Multi-scale view navigation system, method and medium embodying the same
JP2005056286A (ja) * 2003-08-07 2005-03-03 Nec Engineering Ltd ウェブブラウザにおける拡大表示方法および拡大表示プログラム
US7159188B2 (en) * 2003-10-23 2007-01-02 Microsoft Corporation System and method for navigating content in an item
US7551187B2 (en) * 2004-02-10 2009-06-23 Microsoft Corporation Systems and methods that utilize a dynamic digital zooming interface in connection with digital inking
US20050223340A1 (en) * 2004-03-30 2005-10-06 Mikko Repka Method of navigating in application views, electronic device, graphical user interface and computer program product
GB0427811D0 (en) * 2004-12-18 2005-01-19 Ibm User interface with scroll bar control
US7428709B2 (en) * 2005-04-13 2008-09-23 Apple Inc. Multiple-panel scrolling
US7694234B2 (en) * 2005-08-04 2010-04-06 Microsoft Corporation Virtual magnifying glass with on-the fly control functionalities
US7900158B2 (en) * 2005-08-04 2011-03-01 Microsoft Corporation Virtual magnifying glass with intuitive use enhancements
US8578292B2 (en) * 2006-12-14 2013-11-05 Microsoft Corporation Simultaneous document zoom and centering adjustment
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US7925100B2 (en) * 2007-07-31 2011-04-12 Microsoft Corporation Tiled packaging of vector image data
CN101159947A (zh) * 2007-11-21 2008-04-09 陈拙夫 一种具有虚屏显示功能的手机、其显示及操作方法
US20090172570A1 (en) * 2007-12-28 2009-07-02 Microsoft Corporation Multiscaled trade cards
JP2009258848A (ja) * 2008-04-14 2009-11-05 Ricoh Co Ltd 上書画像処理方法及び情報処理装置
US8421840B2 (en) * 2008-06-09 2013-04-16 Vidyo, Inc. System and method for improved view layout management in scalable video and audio communication systems
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application

Also Published As

Publication number Publication date
EP2524296A2 (en) 2012-11-21
JP2013517557A (ja) 2013-05-16
EP2524296A4 (en) 2016-03-16
AU2010341690B2 (en) 2014-05-15
RU2012129538A (ru) 2014-01-20
RU2580430C2 (ru) 2016-04-10
WO2011087624A2 (en) 2011-07-21
AU2010341690A1 (en) 2012-08-02
US20110173564A1 (en) 2011-07-14
JP5738895B2 (ja) 2015-06-24
WO2011087624A3 (en) 2011-09-22
CN102687110A (zh) 2012-09-19
CN102687110B (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
JP5738895B2 (ja) アプリケーションの表示機能の拡張
KR101608183B1 (ko) 향상된 창 상태를 이용한 디스플레이 영역의 배열
KR101913480B1 (ko) 계층적 콘텐츠에 대한 보기 가능 영역의 순항 가능한 계층화
US20180024719A1 (en) User interface systems and methods for manipulating and viewing digital documents
US8683377B2 (en) Method for dynamically modifying zoom level to facilitate navigation on a graphical user interface
KR100707651B1 (ko) 디지털 문서를 조작하고 보기 위한 사용자 인터페이스 및 방법
US8635549B2 (en) Directly assigning desktop backgrounds
RU2413276C2 (ru) Система и способ для выбора вкладки в браузере с вкладками
RU2407992C2 (ru) Усовершенствованный терминал мобильной связи и способ
US9196227B2 (en) Selecting techniques for enhancing visual accessibility based on health of display
KR20100048433A (ko) 웹 컨텐츠를 효율적으로 디스플레이하기 위한 장치 및 방법
KR20140028000A (ko) 문서 훑어보기 및 탐색 기법
EP2876536A2 (en) Method of managing icons on a screen
CN106873844B (zh) 图片查看方法及装置
JP5599959B1 (ja) 情報処理装置
WO2014113676A1 (en) Supporting user interactions with rendered graphical objects
JP5167850B2 (ja) Guiシステム、gui生成方法、プログラムおよび記録媒体
JP2014160415A (ja) 閲覧装置、閲覧システム、情報処理装置及びプログラム
US20140075376A1 (en) Display control apparatus, storage medium, display control system, and display method
JP2010061337A (ja) 情報処理装置、情報処理システム、情報処理方法、プログラム、および記録媒体
CA2851826A1 (en) Method and apparatus for interactive review of multiple datasets

Legal Events

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