KR101025949B1 - Xml 표현에서 z-order 엘리먼트들의 정밀립 제어 - Google Patents

Xml 표현에서 z-order 엘리먼트들의 정밀립 제어 Download PDF

Info

Publication number
KR101025949B1
KR101025949B1 KR1020077030836A KR20077030836A KR101025949B1 KR 101025949 B1 KR101025949 B1 KR 101025949B1 KR 1020077030836 A KR1020077030836 A KR 1020077030836A KR 20077030836 A KR20077030836 A KR 20077030836A KR 101025949 B1 KR101025949 B1 KR 101025949B1
Authority
KR
South Korea
Prior art keywords
user interface
raised
interface element
elements
rendering
Prior art date
Application number
KR1020077030836A
Other languages
English (en)
Other versions
KR20080021081A (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 KR20080021081A publication Critical patent/KR20080021081A/ko
Application granted granted Critical
Publication of KR101025949B1 publication Critical patent/KR101025949B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

표현(presentation)에 있어서 z-order 엘리먼트들의 정밀립(fine grained) 제어를 위한 다양한 방법들 및 장치들이 제시된다. 사용자 인터페이스 엘리먼트들을 포함하는 구조가 정의되며 그러한 사용자 인터페이스 엘리먼트들을 렌더링(rendering)하기 위한 순서가 정의된다. 그러한 엘리먼트들이 상기 정의된 순서를 벗어나 렌더링될 필요가 있을 수 있을 것이 요구되므로, 하나 이상의 사용자 인터페이스 엘리먼트들이 통상적으로 정의된 순서를 벗어나 렌더링되도록 정의되는 것을 허용하는 레이즈 사용자 인터페이스 엘리먼트(raise user interface element)가 정의된다. 사용자 인터페이스 엘리먼트들은 디스플레이 상에 표현되는 어떠한 것일 수 있으며 또한 작용(behavior)들을 정의하는 프로그램 코드를 포함할 수도 있다.

Description

XML 표현에서 Z-ORDER 엘리먼트들의 정밀립 제어{FINE-GRAINED CONTROL OF Z-ORDER ELEMENTS IN A XML PRESENTATION}
본 발명은 일반적으로 사용자 인터페이스들의 다양한 처리에 관한 것이다. 더 특정하게는, 본 발명은 사용자 인터페이스 엘리먼트들의 렌더링(rendering) 제어에 관한 것이다.
XML-기반 언어들을 포함하는, 계층적(hierarchical) 데이터 언어들 및 마크업(markup) 언어들을 포함하는, 데이터 언어에 있어서, 디스플레이 상에 표현되는 사용자 인터페이스(User Interface, UI) 엘리먼트들은 레이아웃(layout)을 위한 순서(order)를 부여받는다. (유의: UI 엘리먼트는 스크린 상에 표현될 수 있는 어떠한 것이다. 예를 들어, 코드 엘리먼트(code element)는 XML 기반 언어의 태그(tag) 또는 코드의 라인(line)일 수 있다. UI 엘리먼트는 하나 이상의 코드 엘리먼트들로써 특징지워질 수 있다. 추가로, 상기 코드 엘리먼트는 표현(presentation)을 묘사하지 못할 수 있다, 즉 이는 동작(behavior)을 기술할 수 있다.)
레이아웃 순서는 일반적으로 상기 UI 엘리먼트와 관련된 상기 코드 엘리먼트들이 상기 언어에서 어떻게 선언(declare)되는지에 의해 정의된다. 이러한 UI 엘 리먼트들을 디스플레이에 페인팅(painting)(또는 렌더링(rendering))할 때, 페인팅 순서는 레이아웃 순서를 따른다.
디스플레이 상에서, 수평 및 수직, 길이 및 폭 등은 일반적으로 x-y 평면에서 이들의 표현(representation)을 식별하는 "x-y" 좌표(coordinate)들에서 참조된다. 표현에서 UI 엘리먼트를 제공할 때, 이들의 "z-order"는 이들이 각각 서로에 대해 위치되는 순서를 지칭한다. 모든 UI 엘리먼트들이 일반적으로 상기 x-y 평면에서 조망(view)되는 동안, 표현의 z-order가 중요한데 이는 다른 것의 상부(top)에서 렌더링되는 UI 엘리먼트들이(이들이 어떠한 투명도를 갖지 않는다면) 그 아래에서 렌더링되는 UI 엘리먼트들을 덮기 때문이다.
XML을 예로 들면, XML에서 특정되는 사용자 인터페이스(UI)는 UI 엘리먼트들에 대해 이들이 코드에서 선언되는 순서와 동일한 암묵적인(implicit) 페인트 순서를 갖는다. 복잡한 UI는 다른 UI 엘리먼트들(XML 시퀀스에서 후에 선언되는)의 상부에 그려지는 비주얼 UI 엘리먼트들을 허용하는 능력을 요구한다. 그러므로, 렌더링의 z-order를 변경시킬 수 있기 위한 필요성이 존재한다.
현재의 UI 데이터 언어 방식들은 이러한 문제를 처리하지 않거나 그러한 문제에 대해 불충분한 해결책을 제공한다. 특히, 스칼라 벡터 그래픽스(Scalar Vector Graphics, SVG) 버전 2는 z-order 제어를 처리할 것을 제안하였다. 이러한 제어를 제공하기 위한 매커니즘은 아직 수립되거나, 정의되지 않았다. 어떠한 조치들에서는 이들이 인덱스를 이용할 수 있음을 보인다. z-control을 위한 인덱스의 이용은 UI에서 바람직하지 않은 클리핑(clipping)을 겪는다.
다른 해결책은 표현될 UI 엘리먼트들을 포함하는 페이지들의 수 개의 버전들을 생성하는 것을 포함하며, 각 페이지는 관련된 코드 엘리먼트들의 z-order를 변화시킨다. 그러나, 이 해결책은 추가적인 페이지들의 전개(development)들을 요구하고, 페이지들의 저장과 다수의 페이지들에 걸쳐 상기 코드들에 대한 변경들을 유지함으로써 추가적인 자원들을 수반하며 상기 z-order의 동적 제어를 다루는 강제적, 즉 비효율적인 방법이다.
본 발명에 따르는 시스템들 및 방법들은 사용자 인터페이스 엘리먼트들의 렌더링 및 표현(presentation)을 제어하는 시스템들, 방법들 및 장치들을 안출함으로써 기존 시스템들의 단점들을 극복한다.
본 발명의 일 실시예로, 어떠한 표현에서 렌더링되는 제 1 엘리먼트의 z-order를 제어하는 방법은 표현 내의 레이아웃의 순서를 나타내는 엘리먼트들의 정렬된 목록(ordered list)을 수신하는 단계, 상기 정렬된 목록 내의 상기 제 1 엘리먼트를 레이즈컨테이너(raisecontainer) 엘리먼트에 할당하는 단계로서, 여기서 상기 제 1 엘리먼트는 상기 정렬된 목록 내의 수개의 엘리먼트들 중 하나 일 수 있는, 제 1 엘리먼트 할당 단계, 상기 제 1 엘리먼트를 제외한 상기 정렬된 목록 엘리먼트들로 상기 표현을 페인팅(paint)하는 단계, 및 상기 표현에 대한 상기 제 1 엘리먼트를 포함하는, 상기 레이즈컨테이너를 페인팅하는 단계를 포함한다.
본 발명의 다른 실시예로, 복수의 사용자 인터페이스 엘리먼트들을 렌더링하고, 레이즈(raise) 사용자 인터페이스 엘리먼트를 정의하고, 디스플레이 상에 상기 복수의 사용자 인터페이스 엘리먼트들을 렌더링하고, 그리고 상기 디스플레이 상에 상기 레이즈 사용자 인터페이스 엘리먼트를 렌더링하는 방법이 제시되며, 여기서 상기 레이즈 사용자 인터페이스 엘리먼트는 상기 복수의 사용자 인터페이스 엘리먼트들의 렌더링 후에 렌더링된다. 본 방법에서, 상기 레이즈 사용자 인터페이스 엘리먼트는 상기 복수의 사용자 인터페이스 엘리먼트들 중 하나이며 상기 디스플레이 상에 상기 복수의 사용자 인터페이스 엘리먼트들을 렌더링하는 단계는 상기 레이즈 사용자 인터페이스 엘리먼트를 렌더링하지 않는다. 상기 복수의 사용자 인터페이스 엘리먼트들을 포함하는 구조는 트리(tree) 구조일 수 있다. 추가로, 상기 레이즈 사용자 인터페이스 엘리먼트는 상기 디스플레이 상에 렌더링될 때 클리핑되지 않을 수 있다. 또한, 상기 레이즈 사용자 인터페이스 엘리먼트는 디스플레이 상에 사용자 인터페이스 엘리먼트를 포커싱(focus)함으로써 정의될 수 있다.
또 다른 실시예로, 표현에서 렌더링되는 제 1 엘리먼트의 z-order를 제어하는 장치는, 프로그램 코드를 저장하는 메모리로서, 여기서 상기 프로그램 코드는 표현에서 레이아웃의 순서를 나타내는 엘리먼트들의 정렬된 목록에 대한 명령들을 포함하는, 메모리, 및
상기 정렬된 목록 내의 상기 제 1 엘리먼트를 레이즈컨테이너 엘리먼트에 할당하고, (여기서 상기 제 1 엘리먼트는 상기 정렬된 목록 내의 수개의 엘리먼트들 중 하나일 수 있음) 상기 제 1 엘리먼트를 제외한 상기 정렬된 목록 엘리먼트들로써 상기 표현을 페인팅하고, 그리고 상기 표현에 대한 상기 제 1 엘리먼트를 포함하는, 상기 레이즈컨테이너를 페인팅하도록 구성되는 처리기를 포함한다.
또 다른 실시예로, 디스플레이에 복수의 사용자 인터페이스 엘리먼트들을 렌더링하는 장치는 상기 복수의 사용자 인터페이스 엘리먼트들을 포함하는 구조를 정의하는 프로그램 코드를 포함하는 메모리, 및 레이즈 사용자 인터페이스 엘리먼트를 정의하고, 상기 디스플레이 상에 상기 복수의 사용자 인터페이스 엘리먼트들을 렌더링하고, 그리고 상기 디스플레이 상에 상기 레이즈 사용자 인터페이스 엘리먼트를 렌더링하도록 구성되는 처리기를 포함하며, 여기서 상기 레이즈 사용자 인터페이스 엘리먼트는 상기 복수의 사용자 인터페이스 엘리먼트들의 렌더링 후에 렌더링된다.
본 발명의 다른 목적들, 이점들 및 특징들은 이하에서 제시되는 도면의 간단한 설명, 실시예 및 청구의 범위들을 검토하면 더욱 명백해질 것이다.
전체에 걸쳐 동일한 숫자들은 동일한 구성요소들을 나타내는 도면들에 대해서:
도 1은 장치들이 본 발명의 실시예에서 동작할 수 있는 통신 환경의 기능도이다;
도 2는 본 발명의 실시예에서 샘플 모바일 장치의 컴포넌트들을 일반적으로 도시하는 기능 블록도이다;
도 3은 본 발명의 실시예에서 샘플 컴퓨팅 장치의 컴포넌트들을 일반적으로 도시하는 기능 블록도이다;
도 4는 본 발명의 실시예에서 컴퓨터 플랫폼의 애플리케이션 구조를 도시하는 블록도이다;
도 5는 본 발명의 실시예에서 사용자 인터페이스 컴포넌트들을 갱신하는 시스템 및 trigplayer, actor들 및 trig들을 나타내는 구조를 도시하는 블록도이다;
도 6은 본 발명의 실시예에서 사용자 인터페이스 엘리먼트를 레이징하지 않고 사용자 인터페이스 엘리먼트들을 렌더링하는 것을 도시하는 블록도이다;
도 7은 본 발명의 실시예에서 레이즈 사용자 인터페이스 엘리먼트를 이용하여 사용자 인터페이스 엘리먼트들을 렌더링하는 것을 도시하는 블록도이다; 그리고
도 8은 본 발명의 실시예에서 레이즈 엘리먼트들을 렌더링하는 프로세스를 도시하는 순서도이다.
본 발명은 클리핑(clipping)에 관한 효율성 그리고 그에 따른 렌더링(rendering) 속도를 유지하면서 z-order의 정밀립(fine-grain) 제어를 허용함으로서 당해 기술분야에서의 문제점을 다룬다. 기술이 트루(true) 3D 디스플레이(단지 2차원 평면 상의 3D 표현이 아닌)를 충분히 개발하도록 복잡화되었다면, 또한 본 발명이 그러한 시스템들에도 적용가능할 것이다.
추가적인 이점들은 다음을 포함한다: 레이즈 사용자 인터페이스 엘리먼트들이 스크린의 치수들에 대한 제약(constraint)들이 아닌 특정된 제약들을 받을 수 있고; 엘리먼트는 여전히 다른 엘리먼트들 아래에서 명확하게 레이즈(raise)될 수 있으며 그 전후에 xml-기반 파싱(parsing) 시퀀스에서 선언될 수 있고; 다수의 및/또는 포개진(nested) 레이즈 컨테이너(raise container)들의 사용자에 의해, 다수의 및/또는 포개진 레벨들의 UI가 달성되며 이들의 z-order가 동적으로 변경될 수 있다.
동일한 참조 부호들이 수 개의 도면들에 걸쳐 동일하거나 대응하는 부분들을 지시하는, 첨부된 도면들에 도시되는 바와 같이, 이제 본 발명의 예시적이고 바람직한 실시예들에 대해서 상세히 살펴볼 것이다. 본 발명의 본질, 목적들 및 이점들은 첨부된 도면들과 함께 이하의 실시예를 고려하면 당해 기술 분야에서 통상의 지식을 가진 자에게 더욱 명백해질 것이다.
본 실시예에서, 용어들의 이용에 대해, 용어 "무선 장치", "무선 전화", 및 "모바일 장치"는 상호교환적으로 이용된다. 여기서 이용되는 용어 "애플리케이션"은 실행 및 비실행 소프트웨어 파일들, 로(raw) 데이터, 집합 데이터(aggregated data), 패치(patch)들, 컨텐츠(content), 사용자 인터페이스들과 사용자 인터페이스 컴포넌트들, 및 다른 코드 세그먼트들을 포함하고자 하는 것이다. 또한, 동일한 숫자들은 수 개의 도면들에 걸쳐 동일한 구성요소들을 나타내며, "어느(a)" 및 "상기(the)"는, 명세서에서 달리 특정되지 않는한, 복수의 참조들을 포함한다.
TrigML은 사용자 인터페이스(User Interface)들을 개발하는데 유용한 데이터 구동(data driven) 언어이다. TrigML은 QUALCOMM Corporation이 소유한 제품이다. XML하에서 정의되는 유사한 데이터 언어들과 같이, TrigML 코드는 태그(tag)들의 이용을 포함한다. 실시예들이 무선 장치 상의 사용자 인터페이스에 대한 TrigML의 관점에서 기재될 것인 반면, 이는 설명 목적만을 위한 것이며 본 발명에 대한 한정이 아님에 유의하여야 할 것이다. 여기 기재되는 장치들 및 방법들은 비-사용자(non-user) 인터페이스 환경들에도 적용가능하며, 전술한 바와 같이, 다른 데이터 언어를 이용하는 환경들을 이용하는데에도 적용가능하다.
도 1은 장치들이 본 발명의 실시예에서 동작하는 통신 환경(100)의 기능도이다. 본 예시에서, 상기 통신 환경(10)은 무선망(122)을 포함한다. 상기 무선망(122)은 무선 서비스 제공자에 의해 데이터 또는 통신 접속성을 모바일 장치들에 제공하기 위해 운영되는 통신망일 수 있다. 추가로, 상기 무선망9122)은 유선망들, 인터넷, 광역 통신망(Wide Area Network), 공중전화 교환망(PSTN) 및 장치들이 이러한 망들에 대한 이러한 것들에 접속된 다른 장치들을 이용하여 직접적으로 또는 간접적으로 통신할 수 있는 다른 공용 및/또는 사설 망들도 포함할 수 있다.
일례로, 상기 무선망(122)은 셀룰러 전화망을 포함할 수 있다. 셀룰러 전화(112), 랩톱 컴퓨터(116), PDA(118), 및 모바일 메시징 장치(120)와 같은, 수 개의 모바일 장치들이 상기 무선망(122)과 통신한다. 이러한 장치들은 단지 상기 무선망(122)을 통해 통신할 수 있는 많은 종류의 장치들의 예시로서 도시된다.
애플리케이션 서버(124) 및 사용자 인터페이스 서버(126)가 도 1에 도시된다. 상기 사용자 인터페이스 서버(126)는 사용자 인터페이스 컴포넌트들(130)을 서빙하는 컴퓨팅 장치이다(이하에서 더 상세히 기재됨). 이러한 사용자 인터페이스 컴포넌트들(130)은 상기 무선망(122)에 접속되는 다른 장치들로 다운로드될 수 있다. 사용자 인터페이스 컴포넌트들은 사용자 인터페이스를 렌더링하기 위한 코 드 및/또는 데이터를 포함한다(함수 호출(function call)들, 메뉴들, 컨텐츠 호출용 코드, 스킨(skin) 등). 많은 다른 서버들이 상기 망에 접속하는데 이용되어 컴텐츠 서버들을 포함하는 정보를 전달할 수 있음에 유의하여야 한다. 이용가능하게 될 수 있는 정보의 종류는 무제한이며, 매우 많은 상이한 예들이 당해 기술분야에서 통상의 지식을 가진 자들에게 명백할 것이다. 상기 사용자 인터페이스 서버(126)는 상기 사용자 인터페이스 컴포넌트들(130)을 요청하는 장치들에 상기 무선망(122)을 통해 제공하도록 구성되는 서버 소프트웨어를 포함한다.
상기 애플리케이션 서버(124)는 소프트웨어 애플리케이션들(128)을 상기 모바일 장치들에 의한 다운로드에 이용가능하게 하는 상기 무선망(122)에 접속된 컴퓨팅 장치 또는 시스템이다. 일반적으로, 상기 애플리케이션들(128)은 그러한 장치들 상에서의 실행을 위해, 셀룰러 전화(112)와 같이, 상기 무선망(122)에 접속된 상기 장치들에 의해 다운로드가능하다. 본 특정 구현에서, 애플리케이션 다운로드 서버(124)에 의해 서빙되는 상기 애플리케이션들(128) 중 적어도 하나는 상기 모바일 장치들 중 적어도 하나에서의 실행을 위해 구성되는 컨텐츠-기반(content-based) 애플리케이션이다. 상기 컨텐츠-기반 애플리케이션(클라이언트)은 사용자 인터페이스를 통해 상기 모바일 장치에 의한 표현(presentation)을 위해 상기 컨텐츠 서버(미도시)로부터 컨텐츠를 리트리브(retrieve)하도록 구성된다.
도 2는 본 발명의 실시예에서, 샘플 모바일 장치(201)의 컴포넌트들을 일반적으로 도시하는 기능 블록도이다. 상기 모바일 장치(201)는, 셀룰러 전화, 개인 휴대 정보 단말, 휴대용 "팜톱(palmtop)" 장치, 랩톱 컴퓨터, 휴대용 음악 재생기, 위치 확인 위성(global positioning satellite, GPS) 장치 등과 같이, 컴퓨팅 기능성을 갖는 임의의 장치일 수 있다.
모바일 장치(201)는 소프트웨어 애플리케이션들 및 디스플레이 데이터를 수신하고 실행할 수 있는 컴퓨터 플랫폼(250)을 갖는다. 상기 컴퓨터 플랫폼(250)은, 주문형 반도체 "ASIC", 디지털 신호 처리기("DSP"), 마이크로처리기, 마이크로제어기(microcontroller), 논리 회로, 상태 머신(state machine), 또는 다른 데이터 처리 장치와 같은, 처리기(252)를 포함한다. 상기 처리기(252)는 상기 모바일 장치의 메모리(256) 내의 임의의 상주 프로그램들과 인터페이스하는 애플리케이션 프로그래밍 인터페이스(application programming interface, "API") 계층(254)을 실행한다. 메모리(256)는 임의-접근(random-access) 또는 읽기-전용(read-only) 메모리(RAM 또는 ROM), EPROM, EEPROM, 플래시 메모리, 또는 컴퓨터 플랫폼들에 공통적인 임의의 메모리를 포함할 수 있다. 또한 상기 컴퓨터 플랫폼(250)은 상기 사용자 인터페이스 서버(126)로부터 다운로드되는 사용자 인터페이스 컴포넌트들 또는 소프트웨어 애플리케이션들(도 1)과 같이, 메모리(256)에서 활성적으로 이용되지 않는 데이터, 파일들 또는 소프트웨어 애플리케이션들을 유지할 수 있는 로컬 스토리지(258)를 포함한다. 상기 로컬 스토리지(258)는 일반적으로 하나 이상의 플래시 메모리 셀들로 구성되지만, 자기 매체, EPROM, EEPROM, 광학 매체, 테이프, 또는 소프트 또는 하드 디스크와 같은, 당해 기술분야에서 공지된 임의의 제 2 또는 제 3의 스토리지 장치일 수 있다.
또한 상기 컴퓨터 플랫폼(250)은 상기 소프트웨어 애플리케이션들에 의해 상 기 사용자 인터페이스(미도시)를 이용하여 데이터를 디스플레이하는데 이용될 수 있는 디스플레이(260)도 포함한다.
도 2에 도시된 컴포넌트들은 많은 종류의 모바일 장치들의 전형적인 것이지만, 다른 컴포넌트들이 상기 모바일 장치(201)에 추가될 수 있으며 어떠한 경우들에 있어서는, 도 2에 도시된 일부 컴포넌트들이 상기 모바일 장치(201)로부터 생략될 수 있음을 알 것이다.
도 3은 본 발명의 실시예에서, 샘플 컴퓨팅 장치(301)의 코어 컴포넌트들을 일반적으로 도시하는 기능 블록도이다. 상기 컴퓨팅 장치(301)는, 데스크톱 컴퓨터 또는 서버와 같이, 임의의 고정 컴퓨팅 장치일 수 있다.
본 예시에서, 상기 컴퓨팅 장치(301)는 처리기 유닛(304), 메모리(306), 스토리지 매체(313), 및 오디오 유닛(331)을 포함한다. 상기 처리기 유닛(304)은 유리하게는 디지털 신호 처리기(DS0)와 같은 마이크로처리기 또는 특수-목적 처리기를 포함하지만, 대안으로서 임의의 종래의 형태의 처리기, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 처리기 유닛(304)은 메모리(306)에 접속되며, 이는 유리하게는 상기 처리기 유닛(304)에 의해 실행되는 소프트웨어 명령들을 유지(hold)하는 RAM 메모리로서 구현된다. 대체 실시예로, 상기 메모리(306)는 펌웨어 또는 플래시 메모리로 구성될 수 있다. 본 예시에서, 메모리(306)에 저장되는 소프트웨어 명령들은, 사용자 인터페이스(미도시)를 채택하는 애플리케이션과 같은, 운영 체제(operating system)(310) 및 하나 이상의 다른 애플리케이션들(312)을 포함한다.
또한 모바일 장치(301)는 상기 컴퓨팅 장치(301)와, 상기 모바일 장치와 같은 하나 이상의 다른 컴퓨팅 장치들 간의 양방향 통신을 가능하게 하는 통신 모듈(321)을 포함한다. 상기 통신 모듈(321)은, 셀룰러 전화망, 블루투스(Bluetooth) 접속, 무선 근거리 통신망, 또는 아마도 무선 광역 네트워크와 같이, RF 또는 다른 무선 통신을 가능하게 하는 컴포넌트들을 포함할 수 있다. 대안적으로, 통신 모듈(321)은 이더넷 접속, RJ-11 접속, 범용 직렬 버스 접속, IEEE 1394(Firewire) 접속 등과 같은, 유선 또는 배선-접속(hard-wired) 망 통신을 가능하게 하는 컴포넌트들을 포함할 수 있다. 이들이 모든 목록들로 간주되는 것은 아니며 많은 다른 대안들이 가능하다. 오디오 유닛(331)은 아날로그와 디지털 포맷 간에 신호들을 변환하도록 구성되는 상기 모바일 장치(301)의 컴포넌트이다. 상기 오디오 유닛(331)은 상기 모바일 장치(301)에 의해 스피커(332)를 이용하여 음향을 출력하고 마이크로폰(333)으로부터 입력 신호들을 수신하는데 이용된다.
도 3은 많은 종래의 컴퓨팅 장치들에서 일반적으로 발견되는 어떠한 컴포넌트들만을 도시한다. 매우 많은 다른 컴포넌트들도 특정한 구현들에서 통상적으로 발견되며, 일정한 경우에, 도 3에 도시된 일부 컴포넌트들이 생략될 수 있다. 그러나, 도 3에 도시되는 컴퓨팅 장치(301)는 오늘날 흔히 보이는 컴퓨팅 장치들의 전형이다.
도 4는 본 발명의 실시예에서 장치의 애플리케이션 구조(architecture)를 도시한다. 본 장치는 "컴퓨터 플랫폼"을 포함할 것이다. 컴퓨터 플랫폼은 하드웨어, 소프트웨어, 또는 양자 모두를 포함하는 장치의 컴포넌트들을 지칭할 수 있다. 예를 들어, 이는 운영 체제(operating system), 칩을 포함하는 기초 하드웨어 컴포넌트들, 사용자 인터페이스 하드웨어(예컨대, 디스플레이들, 입력 및 출력 장치들), 라이브러리(library)들, 지원 API들, 상기 운영체제에 대한 추가 확장들 등을 포함할 수 있다.
일 실시예로, 무선 장치의 애플리케이션 구조(400)는 Device API들(405), BREW API들(410), BREW Extension들(415), Trigplayer(420), Actor들(425), 및 Trig들(430)을 포함한다. 상기 Device API들(405)은 특정(specific) 처리기 또는 ASIC 기능(function)들, 특정 장치 하드웨어 기능성(functionality) 등과 같이, 상기 장치와 특정적으로 관련되는 기능들을 처리하기 위한 소프트웨어 플랫폼에 의해 이용되는 그러한 API들을 포함할 수 있다.
BREW API들(410)은 QUALCOMM Incorporated에 의해 개발된 소프트웨어 플랫폼이다. BREW API들(410)은 상기 장치에 특별히 기록될 필요없이 Device API들(405) 및 다른 함수들을 호출할 수 있는 능력을 애플리케이션들에 제공한다. 달리 말해, 이는 상기 애플리케이션으로부터 하드웨어의 특정한 양상(aspect)들을 추출하여 상기 애플리케이션이 실행하는 각각의 특정 장치에 대해, 맞추어야(tailor)할 필요가 없거나 또는 단지 약간의 맞춤(tailoring)을 요구하여 많은 장치들에 애플리케이션이 기록(write)되게 하여 준다.
BREW extension(415)은, MP3 플레이어들, Java Virtual Machine들 등을 제공하는 것처럼, 상기 BREW 플랫폼에 추가적인 기능을 부가할 수 있는 능력을 제공한다.
TrigPlayer(420), Trigs(430) 및 Actors(425)는 QUALCOMM Incorporated에 의해 개발된 uiOne™의 컴포넌트들이다. 이러한 컴포넌트들은 일반적으로 상기 장치(400)의 사용자 인터페이스 양상(aspect)들을 지칭한다. 일 실시예로, 상기 Trigs(430)는 TrigML® 코드, 그리고 애플리케이션에 의해 상기 장치(400) 상에서 사용자 인터페이스를 렌더링하는데 이용되는 다른 자원들(메타데이터(metadata), 텍스트 파일들 및 이미지들을 포함할 수 있음)로 컴파일된다. 다수의 Triglets(미도시)로 지칭되는, Trigs(430) 및 Trigs에 대한 업데이트들이 상기 사용자 인터페이스를 위해 이용될 수 있다.
QUALCOMM Incorporated가 소유한, TrigML 코드는 XML에 기반하는 데이터 언어이며, Trigs(430)를 기술(author)하기 위해 사용자 인터페이스 표현 언어에 이용될 수 있으며 다른 이점들 중에서 모바일-지향 기능성(mobile-targeted functionality), 양방향(interactive) 사용자 인터페이스 이벤트 모델, 및 픽셀 포지셔닝(pixel positioning)의 이점들을 포함한다.
Actors(425)는 기반(underlying) C 코드를 포함하여 Trigs를 기반 Device API들(405) 및/또는 BREW API들(410)에 연결한다. Actors(425)는 입력/출력을 위한 실행파일(executable)들로서 기능할 수도 있다. 그리고 actor들이 기반 Device 및 BREW API들에 연결되기 때문에, 이들은 상기 컴퓨터 플랫폼 기능들에 대한 액세스를 갖는다.
Trigplayer(420)는 도 4에서 분리되어 있을지라도 BREW extension(415)으로 서 구현될 수 있다. 상기 Trigplayer는 Trigs 및 actors를 이용하여 상기 사용자 인터페이스를 렌더링하는데 이용된다.
도 4의 논의가 QUALCOMM Incorporated의 uiOne 구조(컴파일된 TrigML, Trigplayer, BREW API들 등을 포함하는)에 관한 것일지라도 이는 설명 목적들을 위한 것이며 본 발명은 다른 데이터 언어들, 컴퓨터 및 소프트웨어 플랫폼들 그리고 장치 구조들을 포함한다는 점을 알 것이다.
도 5는 본 발명의 실시예에서 사용자 인터페이스 컴포넌트들을 업데이트하는 시스템과 trigplayer(420), actors(425) 및 trigs(430)를 나타내는 구조를 도시하는 블록도이다. 장치(500)는 trigplayer(420), actors(425), 및 Trigs(430)를 포함한다. 상기 Trigs는 TrigML 코드(505), 텍스트 스트링들(510), 이미지들(515) 및 업데이트 채널들(520)을 포함할 수 있다(업데이트 채널들은 URL들 그리고 Triglet들(530)을 인출(fetch)하기 위한 타이밍 방식들을 정의할 수 있다). Trigs는 무선으로 업데이트 되어 상기 장치가 이미 제조업자를 떠난 후에 상기 사용자 인터페이스가 업데이트될 수 있게 하여줄 수 있다. 서버(525)는 새로운 Trigs 또는 Trigs의 업데이트된 컴포넌트들(예컨대, Triglets(530))을 다운로드하는데 이용되어 상기 장치에 대한 상기 사용자 인터페이스가 커스터마이즈(customize)되게 하여줄 수 있다.
일 실시예로, 사용자 인터페이스 엘리먼트들의 정밀립 z-order 제어의 더 상세한 특징들을 보이기 위해, 렌더링 트리(rendering tree)가 통상적으로 상기 UI 엘리먼트 트리의 부모-1세대(parent-first descent)에 의해 수행된다. 상기 UI 엘리먼트 트리는 상기 UI 엘리먼트에 관련된 코드 엘리먼트들이 Trig 소스 파일에서 어떻게 선언되었는지에 기초하여 생성되었다. 부모(parent)는 자신을 페인팅하며, 그리고 나서 그 자식들(children) 각각에게 차례로 그 자신들을 페인팅할 것을 요청한다. Trig는 파일을 소싱(source)한다. 이는 또한 각각의 그 자식들에게 그 자체의 정도까지 클리핑(clip)한다. 레이즈(raise) 속성(attribute)을 도입하여, UI 엘리먼트들이 이들의 렌더링을 통상의 렌더링 통과(pass) 후까지 지연시킬 수 있다 - 즉, 모든 넌-레이즈된(non-raised) UI 엘리먼트들이 렌더링되고, 그리고 나서 모든 레이즈된 UI 엘리먼트들이 렌더링된다. UI 엘리먼트는, 예를 들어, 상기 UI 엘리먼트가 제어 포커스(control focus)를 가졌을 때 레이즈될 것이다. 일 실시예로, "포커스"는 선택의 하이라이팅(highlighting) 또는 확대와 같이, 주의가 집중되는 표현(presentation)의 부분을 지칭하며, 상기한 포커스에 의해 커서(cursor)는 옵션이 선택된 경우 어떤 옵션이 선택되었는지를 사용자에게 나타낸다. 넌-레이즈된(non-raised) 모든 UI 엘리먼트들의 정상 렌더링 사이클이 경과할 때까지, 동일한 z-ordering을 유지하면서, 레이즈된 UI 엘리먼트들의 랜더링 사이클이 지연되도록 레이즈된 UI 엘리먼트가 렌더링될 수 있기 때문에, 레이즈된 UI 엘리먼트들은 자신의 부모(parent)의 프레임에 의해 클리핑되지 않는다.
TrigML을 이용하여, 렌더링 속성을 이용하는 프로그램 코드의 예는:
Figure 112007094590110-pct00001
도 6에 도시된 바와 같이, 본 TrigML 프로그램 코드 단편(fragment)이 렌더링될 때, 적색(red) 그룹은 20x20 적색 정사각형(605)으로서(부모 그룹에 의해 클리핑되며, 클리핑은 미도시) 디스플레이(260) 상에 표현된다. 그리고 나서 청색(blue) 그룹은 그 상부에 렌더링되며, 그리하여 사용자가 보는 최종 렌더링된 페이지는 단지 청색 20x20 정사각형(610)으로 구성된다.
도 6에 도시된 바와 같이, 이후에 초점이 상기 적색 그룹으로 이동하면 <att> 코드 엘리먼트는 상기 적색 그룹의 레이즈 특성(property)을 변경하여, 상기 값을 트루(true)로 세팅한다. 상기 페이지가 렌더링될 때, 상기 적색 그룹은 건너뛰게 되며(왜냐하면 레이즈 되기 때문에) 그리고서 상기 청색 그룹이 20x20 청색 정사각형(705)으로서 그려진다. 마지막으로 상기 레이즈된 적색 그룹이 렌더링되고(레이즈되기 때문에, 클리핑되지 않음) 그리고 나서 상기 사용자가 보는 최종 렌더링된 페이지는 30x30 적색 정사각형(710)으로 구성된다.
일 실시예는 글로벌(global) 유예(deferred) 페인트 목록의 암묵적 존재에 따르며 렌더링을 유예하는 임의의 UI 엘리먼트가 이러한 글로벌 목록에 추가된다. 이는 종래 기술 해결책에 대한 개선이다.
다른 실시예는 UI 엘리먼트들을 글로벌 레벨로 레이즈하지 않아서, 이들이 모든 레이즈되지-않은 UI 엘리먼트들 이후에 페인팅된다. <raisecontainer> 엘리먼트를 추가하여 레이즈된 UI 엘리먼트를 "포착(catch)"한다. 이는, 예를 들어 UI 엘리먼트가 레이즈되게 하여줄 수 있지만, 다른(레이즈되지-않은) UI 엘리먼트들이 계속하여 그 후에 렌더링되게 하여, 영구한 최고-레벨(top-level) 활동도(activity)를 허용한다. 이러한 것의 예시로서, TrigML 프로그램 코드를 이용하여, 다음이 제시된다:
Figure 112007094590110-pct00002
트리가 전술한 바와 같이 UI 엘리먼트들이 선언되었던 UI 엘리먼트들의 순서를 이용하여 생성된다. 통상의 렌더링 순서는 여기서 적색, 청색, 녹색이며 사용자는 20x20 청색 정사각형 상에 놓이는 10x10 녹색 정사각형을 본다. 통상의 렌더 링에서, 레이즈컨테이너(raisecontainer)는 비어 있어서 평가될 때 아무 것도 렌더링되지 않는다.
그러나, 적색 그룹이 레이즈되면, z-order가 변경되어 상기 적색 그룹은 상기 도시된 바와 같은 raisecounter를 이용함으로써 페인팅된다. 그러므로 상기 렌더링은 청색, 적색, 녹색으로, 20x20 적색 정사각형 상에 놓이는 10x10 녹색 정사각형을 가져온다. 이는 UI 엘리먼트의 레이즈를 달성하였던 것과 더불어 오버레이(overlay)되는 청색 정사각형을 유지하게 되는 이점을 갖는다. UI 레벨을 레이즈하는 레벨에 대한 이러한 추가 제어는 오버레이를 보전하는 방법을 제공한다. 통상적인 용례(use-case)는 팝-업 메뉴이며, 이는 자신들을 레이즈하였던 임의의 현재의 인-포커스(in-focus) UI 엘리먼트들을 포함하여, 모든 것 위에 그려져야 한다.
레이즈컨테이너(Raisecontainer)들은 알맞게 포개(nest)질 수 있고, 상기 레이즈컨테이너(raisecontainer) 자체가 레이즈될 수 있으며, 부모의 프레임을 넘어서 진행하는 레이즈된 엘리먼트들을 가지면서 동일한 z-ordering을 유지함으로써, 이전에 가능하였던 것보다 상기 UI의 레이어(layer)들 및 서브레이어(sublayer)들에 대한 보다 개선된 제어를 제공할 수 있다. 사실상 레이즈컨테이너(raisecontainer)는 레이어(layer)이지만, 상기 레이어는 그 z-order를 변경할 수 있으며 풀 스크린(full screen)일 필요가 없다. 따라서, 레이어들의 최상부(top)로의 모든 방향으로 또는 레이어들의 바닥부(bottom)로의 모든 방향으로 단지 UI 엘리먼트를 푸시(push)하기 보다는, 레이어들 내의 z-order를 제어함으로써 z-order에 대한 정밀립 제어(fine grain control)가 달성될 수 있다.
추가로, 레이즈된 UI 엘리먼트는 상기 레이즈컨테이너(raisecontainer)에 의해 페인팅되어서, 상기 레이즈컨테이너(raisecontainer)의 프레임에 의해 클리핑되며, 이는 레이즈된 UI 엘리먼트를 수정하는 것은 더 이상 전체 스크린의 리프레시(refresh)를 트리거(trigger)할 필요가 없음을 의미한다. 이는 더 복잡한 UI들이 증가된 처리 능력을 요구하지 않고 구현되게 하여 준다.
도 8은 본 발명의 실시예에서 레이즈 엘리먼트를 렌더링하는 프로세스를 나타내는 순서도이다. 처음에, 사용자 인터페이스 엘리먼트들을 포함하는 구조가 정의된다(단계(805)). 본 구조는 앞서 정의된 바와 같은 트리 구조이거나 렌더링할 상기 사용자 인터페이스 엘리먼트들을 추적할 수 있는 다른 파일 또는 데이터 구조들일 수 있다. 다음에 레이즈 사용자 인터페이스 엘리먼트가 정의된다(단계(810)). 상기 레이즈 사용자 인터페이스 엘리먼트는 다른 엘리먼트들 이후에 렌더링되기를 원할 엘리먼트이다. 상기 레이즈 엘리먼트는 일반적으로 단계(805)에 대한 상기 구조에 의해 정의되는 순서대로 렌더링되는 것으로 정의될 수 있지만, 그러나, 이러한 레이즈 엘리먼트를 상기 정상 순서 외에서 렌더링하는 것이 요구된다.
그리고 나서 상기 사용자 인터페이스 엘리먼트들이 디스플레이 상에 렌더링된다(단계(815)). 이 렌더링은 단계(805)에서 정의되는 상기 구조를 따라 감으로써 이뤄진다. 상기 렌더링은 단지 표현(presentation)을 위한 것이 아니라, 동작(behavior)을 정의하는 프로그램 코드일 수 있음에 유의하라. 이 단계에서 레이즈 사용자 인터페이스 엘리먼트를 렌더링하지 않는 것이 바람직한데 이는 다시 렌더링될 것이기 때문에(이하 단계(820)에서 정의됨), 따라서 상기 레이즈 사용자 인터페이스 엘리먼트를 두 번 렌더링하는 것을 방지한다.
그리고 마지막으로 상기 레이즈 사용자 인터페이스 엘리먼트가 표현된다(단계(820)). 본 명세서가 단지 하나의 레이즈 사용자 인터페이스 엘리먼트를 정의할지라도, 다수의 사용자 인터페이스 엘리먼트들이 "레이즈될" 것으로 정의될 수 있으며 따라서 다수의 사용자 인터페이스 엘리먼트들이 통상적인 사용자 인터페이스 엘리먼트 구조 순서를 벗어나 렌더링될 수 있다.
상기 방법 및 소프트웨어 설계 기재는 장치로 구현되거나, RAM 내의 또는 다른 메모리 스토리지 장치들 내의 명령들로서 저장될 수도 있다.
상기 방법 및 소프트웨어 설계 기재는 장치로 구현되거나, RAM 내의 또는 다른 메모리 스토리지 장치들 내의 명령들로서 저장될 수도 있다. 본 명세서에 제시되는 프로세스들이 특정 순서로 순차적으로 도시되고 기재되었을지라도, 다른 실시예들에서, 상기 프로세스들의 단계들은 다른 순서들로, 다수의 시간들에서, 및/또는 병행하여 수행될 수 있다. 추가로, 일부 실시예들에서, 수 개의 프로세스들에 기재된 하나 이상의 단계들이 별도의 단계들로, 더 적은 단계들로 통합되어, 또는 아마도 완전히 생략되어 수행될 수 있다.
전술한 개시내용이 본 발명의 설명적인 실시예들을 개시하는 반면, 다양한 변경들 및 수정들이 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위를 벗어나지 않고 기재된 실시예들에 가해질 수 있음에 유의하여야 한다. 추가로, 본 발명의 구성요소들이 단일한 것으로서 기재되고 청구될 수 있을지라도, 단일한 것에 대한 한정이 명백히 기술되지 않는다면 복수의 것도 고려된다.

Claims (16)

  1. 표현(presentation)의 사용자 인터페이스 엘리먼트들을 렌더링(rendering)하는 방법으로서,
    미리 결정된 z-order를 갖는 다수의 사용자 인터페이스 엘리먼트들을 수신하는 단계 ― 상기 다수의 사용자 인터페이스 엘리먼트들은 제 1 레이즈된(raised) 사용자 인터페이스 엘리먼트 및 다수의 넌-레이즈된(non-raised) 사용자 인터페이스 엘리먼트들을 포함함 ―;
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 스킵(skipping)하면서 상기 미리 결정된 z-order에 따라 상기 다수의 넌-레이즈된 사용자 인터페이스 엘리먼트들 각각을 디스플레이에 렌더링하는 단계; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하는 단계
    를 포함하고, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트는 제 1 레이즈컨테이너(raisedcontainer) 엘리먼트에 할당되며, 제 2 레이즈된 사용자 인터페이스 엘리먼트는 제 2 레이즈컨테이너 엘리먼트에 할당되고, 상기 제 1 레이즈컨테이너 엘리먼트 또는 상기 제 2 레이즈컨테이너 엘리먼트는 레이즈된 레이즈컨테이너 엘리먼트(raised, raisedcontainer)인,
    표현의 사용자 인터페이스 엘리먼트들을 렌더링하는 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 미리 결정된 z-order에 따라 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트 및 상기 제 2 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하는 단계를 더 포함하는,
    표현의 사용자 인터페이스 엘리먼트들을 렌더링하는 방법.
  3. 제 2 항에 있어서,
    레이즈컨테이너 엘리먼트 내의 사용자 인터페이스 엘리먼트를 렌더링하는 단계; 및
    상기 레이즈컨테이너 엘리먼트 내의 상기 사용자 인터페이스 엘리먼트 이후에, 레이즈된 레이즈컨테이너 엘리먼트 내의 다른 사용자 인터페이스 엘리먼트를 렌더링하는 단계
    를 더 포함하는, 표현의 사용자 인터페이스 엘리먼트들을 렌더링하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트에 대한 변경(modification)을 수신하는 단계; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들을 리프레시(refresh)하지 않으면서 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 리프레시하는 단계
    를 더 포함하는, 표현의 사용자 인터페이스 엘리먼트들을 렌더링하는 방법.
  5. 모바일 디바이스로서,
    미리 결정된 z-order를 갖는 다수의 사용자 인터페이스 엘리먼트들을 수신하기 위한 수단 ― 상기 다수의 사용자 인터페이스 엘리먼트들은 제 1 레이즈된(raised) 사용자 인터페이스 엘리먼트 및 다수의 넌-레이즈된(non-raised) 사용자 인터페이스 엘리먼트들을 포함함 ―;
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 스킵하면서 상기 미리 결정된 z-order에 따라 상기 다수의 넌-레이즈된 사용자 인터페이스 엘리먼트들 각각을 디스플레이에 렌더링하기 위한 수단; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하기 위한 수단
    을 포함하고, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트는 제 1 레이즈컨테이너(raisedcontainer) 엘리먼트에 할당되며, 제 2 레이즈된 사용자 인터페이스 엘리먼트는 제 2 레이즈컨테이너 엘리먼트에 할당되고, 상기 제 1 레이즈컨테이너 엘리먼트 또는 상기 제 2 레이즈컨테이너 엘리먼트는 레이즈된 레이즈컨테이너 엘리먼트(raised, raisedcontainer)인,
    모바일 디바이스.
  6. 제 5 항에 있어서,
    상기 모바일 디바이스는,
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 미리 결정된 z-order에 따라 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트 및 상기 제 2 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하기 위한 수단
    을 더 포함하는, 모바일 디바이스.
  7. 제 6 항에 있어서,
    레이즈컨테이너 엘리먼트 내의 사용자 인터페이스 엘리먼트를 렌더링하기 위한 수단; 및
    상기 레이즈컨테이너 엘리먼트 내의 상기 사용자 인터페이스 엘리먼트 이후에, 레이즈된 레이즈컨테이너 엘리먼트 내의 다른 사용자 인터페이스 엘리먼트를 렌더링하기 위한 수단
    을 더 포함하는, 모바일 디바이스.
  8. 제 5 항에 있어서,
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트에 대한 변경을 수신하기 위한 수단; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들을 리프레시하지 않으면서 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 리프레시하기 위한 수단
    을 더 포함하는, 모바일 디바이스.
  9. 모바일 디바이스로서,
    메모리;
    디스플레이; 및
    프로세서
    를 포함하며, 상기 프로세서는,
    미리 결정된 z-order를 갖는 다수의 사용자 인터페이스 엘리먼트들을 수신하도록 동작가능하고 ― 상기 다수의 사용자 인터페이스 엘리먼트들은 제 1 레이즈된(raised) 사용자 인터페이스 엘리먼트 및 다수의 넌-레이즈된(non-raised) 사용자 인터페이스 엘리먼트들을 포함함 ―;
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 스킵하면서 상기 미리 결정된 z-order에 따라 상기 다수의 넌-레이즈된 사용자 인터페이스 엘리먼트들 각각을 디스플레이에 렌더링하도록 동작가능하며; 그리고
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 상기 디스플레이에 렌더링하도록 동작가능하고,
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트는 제 1 레이즈컨테이너(raisedcontainer) 엘리먼트에 할당되며, 제 2 레이즈된 사용자 인터페이스 엘리먼트는 제 2 레이즈컨테이너 엘리먼트에 할당되고, 상기 제 1 레이즈컨테이너 엘리먼트 또는 상기 제 2 레이즈컨테이너 엘리먼트는 레이즈된 레이즈컨테이너 엘리먼트(raised, raisedcontainer)인,
    모바일 디바이스.
  10. 제 9 항에 있어서,
    상기 프로세서는,
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 미리 결정된 z-order에 따라 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트 및 상기 제 2 레이즈된 사용자 인터페이스 엘리먼트를 상기 디스플레이에 렌더링하도록 추가적으로 동작가능한, 모바일 디바이스.
  11. 제 10 항에 있어서,
    상기 프로세서는,
    레이즈컨테이너 엘리먼트 내의 사용자 인터페이스 엘리먼트를 상기 디스플레이에 렌더링하도록 추가적으로 동작가능하며; 그리고
    상기 레이즈컨테이너 엘리먼트 내의 상기 사용자 인터페이스 엘리먼트 이후에, 레이즈된 레이즈컨테이너 엘리먼트 내의 다른 사용자 인터페이스 엘리먼트를 상기 디스플레이에 렌더링하도록 추가적으로 동작가능한, 모바일 디바이스.
  12. 제 9 항에 있어서,
    상기 프로세서는,
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트에 대한 변경을 상기 메모리로부터 수신하도록 추가적으로 동작가능하며; 그리고
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들을 상기 디스플레이에 리프레시하지 않으면서 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 상기 디스플레이에 리프레시하도록 추가적으로 동작가능한, 모바일 디바이스.
  13. 하나 이상의 명령(instruction)들이 저장된 컴퓨터-판독가능 저장 매체로서,
    상기 하나 이상의 명령들은,
    미리 결정된 z-order를 갖는 다수의 사용자 인터페이스 엘리먼트들을 수신하기 위한 적어도 하나의 명령 ― 상기 다수의 사용자 인터페이스 엘리먼트들은 제 1 레이즈된(raised) 사용자 인터페이스 엘리먼트 및 다수의 넌-레이즈된(non-raised) 사용자 인터페이스 엘리먼트들을 포함함 ―;
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 스킵(skipping)하면서 상기 미리 결정된 z-order에 따라 상기 다수의 넌-레이즈된 사용자 인터페이스 엘리먼트들 각각을 디스플레이에 렌더링하기 위한 적어도 하나의 명령; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하기 위한 적어도 하나의 명령
    을 포함하고, 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트는 제 1 레이즈컨테이너(raisedcontainer) 엘리먼트에 할당되며, 제 2 레이즈된 사용자 인터페이스 엘리먼트는 제 2 레이즈컨테이너 엘리먼트에 할당되고, 상기 제 1 레이즈컨테이너 엘리먼트 또는 상기 제 2 레이즈컨테이너 엘리먼트는 레이즈된 레이즈컨테이너 엘리먼트(raised, raisedcontainer)인,
    컴퓨터-판독가능 저장 매체.
  14. 제 13 항에 있어서,
    상기 하나 이상의 명령들은,
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들 이후에, 상기 미리 결정된 z-order에 따라 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트 및 상기 제 2 레이즈된 사용자 인터페이스 엘리먼트를 렌더링하기 위한 적어도 하나의 명령
    을 더 포함하는, 컴퓨터-판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 하나 이상의 명령들은,
    레이즈컨테이너 엘리먼트 내의 사용자 인터페이스 엘리먼트를 렌더링하기 위한 적어도 하나의 명령; 및
    상기 레이즈컨테이너 엘리먼트 내의 상기 사용자 인터페이스 엘리먼트 이후에, 레이즈된 레이즈컨테이너 엘리먼트 내의 다른 사용자 인터페이스 엘리먼트를 렌더링하기 위한 적어도 하나의 명령
    을 더 포함하는, 컴퓨터-판독가능 저장 매체.
  16. 제 13 항에 있어서,
    상기 하나 이상의 명령들은,
    상기 제 1 레이즈된 사용자 인터페이스 엘리먼트에 대한 변경을 수신하기 위한 적어도 하나의 명령; 및
    상기 넌-레이즈된 사용자 인터페이스 엘리먼트들을 리프레시하지 않으면서 상기 제 1 레이즈된 사용자 인터페이스 엘리먼트를 리프레시하기 위한 적어도 하나의 명령
    을 더 포함하는, 컴퓨터-판독가능 저장 매체.
KR1020077030836A 2005-05-31 2006-05-31 Xml 표현에서 z-order 엘리먼트들의 정밀립 제어 KR101025949B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68634905P 2005-05-31 2005-05-31
US60/686,349 2005-05-31

Publications (2)

Publication Number Publication Date
KR20080021081A KR20080021081A (ko) 2008-03-06
KR101025949B1 true KR101025949B1 (ko) 2011-03-30

Family

ID=36999854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030836A KR101025949B1 (ko) 2005-05-31 2006-05-31 Xml 표현에서 z-order 엘리먼트들의 정밀립 제어

Country Status (7)

Country Link
US (1) US7610561B2 (ko)
EP (1) EP1886220A2 (ko)
JP (1) JP4782828B2 (ko)
KR (1) KR101025949B1 (ko)
CN (1) CN101213515B (ko)
BR (1) BRPI0611325A2 (ko)
WO (1) WO2006130538A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078979B2 (en) * 2007-11-27 2011-12-13 Microsoft Corporation Web page editor with element selection mechanism
US9442960B2 (en) * 2008-05-16 2016-09-13 Lawrence Livermore National Security, Llc High performance data layout and processing
JP5067881B2 (ja) * 2008-07-11 2012-11-07 キヤノン株式会社 画像処理装置および画像処理方法
US7721209B2 (en) 2008-09-08 2010-05-18 Apple Inc. Object-aware transitions
US20100064222A1 (en) 2008-09-08 2010-03-11 Apple Inc. Object-aware transitions
CN101695119A (zh) * 2009-10-17 2010-04-14 中兴通讯股份有限公司 移动多媒体广播的网络侧及播放器、播放器皮肤更新方法
USD660864S1 (en) 2010-01-27 2012-05-29 Apple Inc. Graphical user interface for a display screen or portion thereof
US8836714B2 (en) 2010-10-29 2014-09-16 The University Of Utah Research Foundation Rapid, interactive editing of massive imagery data
US20120159363A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Z-order bands
USD683346S1 (en) 2011-02-04 2013-05-28 Apple Inc. Portable display device with graphical user interface
US9013510B2 (en) * 2011-07-29 2015-04-21 Google Inc. Systems and methods for rendering user interface elements in accordance with a device type
US10437911B2 (en) * 2013-06-14 2019-10-08 Business Objects Software Ltd. Fast bulk z-order for graphic elements
USD762223S1 (en) 2014-09-09 2016-07-26 Apple Inc. Display screen or portion thereof with animated graphical user interface
US20170285930A1 (en) * 2016-04-01 2017-10-05 Microsoft Technology Licensing, Llc. Document content replay
USD829223S1 (en) 2017-06-04 2018-09-25 Apple Inc. Display screen or portion thereof with graphical user interface
US10665008B2 (en) * 2018-05-31 2020-05-26 Microsoft Technology Licensing, Llc Hybrid traversal of object sets
USD937858S1 (en) 2019-05-31 2021-12-07 Apple Inc. Display screen or portion thereof with graphical user interface
USD937295S1 (en) 2020-02-03 2021-11-30 Apple Inc. Display screen or portion thereof with graphical user interface

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2929824B2 (ja) * 1992-02-18 1999-08-03 日本電気株式会社 ユーザ・インタフェース制御方式
US5519825A (en) * 1993-11-16 1996-05-21 Sun Microsystems, Inc. Method and apparatus for NTSC display of full range animation
AUPQ808700A0 (en) * 2000-06-09 2000-07-06 Honeywell Limited Human-machine interface
AU2001284970A1 (en) * 2000-08-14 2002-02-25 Transvirtual Technologies, Inc. Portable operating environment for information devices
JP3800524B2 (ja) * 2002-03-15 2006-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御方法、これを用いたプログラム及び情報処理装置
US6928619B2 (en) * 2002-05-10 2005-08-09 Microsoft Corporation Method and apparatus for managing input focus and z-order
WO2004019160A2 (en) * 2002-08-23 2004-03-04 Jway Group, Inc. Extensible user interface (xui) framework and development environment
GB2411331A (en) * 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Julius C. Mong and David F. Brailsford, Using SVG as the rendering model for structured and graphically complex web material
Scalable Vector Graphics (SVG) 1.2 W3C Working Draft 27 섹션 11

Also Published As

Publication number Publication date
JP4782828B2 (ja) 2011-09-28
WO2006130538B1 (en) 2007-04-05
US20060271871A1 (en) 2006-11-30
KR20080021081A (ko) 2008-03-06
CN101213515B (zh) 2011-12-21
BRPI0611325A2 (pt) 2010-08-31
JP2008542919A (ja) 2008-11-27
EP1886220A2 (en) 2008-02-13
WO2006130538A3 (en) 2007-02-08
CN101213515A (zh) 2008-07-02
US7610561B2 (en) 2009-10-27
WO2006130538A2 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
KR101025949B1 (ko) Xml 표현에서 z-order 엘리먼트들의 정밀립 제어
US11288042B2 (en) Systems and methods for programming mobile devices
JP2008542919A5 (ko)
CN102971688B (zh) 跨平台应用程序框架
Meier Professional Android 4 application development
US10088980B2 (en) Method and system for providing menu data for mobile applications
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
TWI413933B (zh) 圖形使用者介面之應用程式介面
US9465529B1 (en) Platform-independent environments for customizing user interfaces of native applications for portable electronic devices
US20140047409A1 (en) Enterprise application development tool
KR20120022831A (ko) 플랫폼 확장성 프레임워크
Weaver et al. Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology
Weaver et al. Pro javafx 8: a definitive guide to building desktop, mobile, and embedded java clients
WO2013109858A1 (en) Design canvas
US8438539B2 (en) Using a menu slideshow framework for generating a custom menu-driven slideshow containing definable content
JP5437322B2 (ja) データ言語中の複数の言語の管理
JP4927830B2 (ja) データ言語における変数の自動更新
Weaver et al. Pro JavaFX 2
CN116931895A (zh) 一种复合组件的处理方法、装置及设备
CN117440073A (zh) 显示方法、装置、电子设备和可读存储介质
CN116416347A (zh) 一种媒体数据生成方法、装置、计算机设备和存储介质
Albert et al. A REST Framework for Dynamic Client Environments

Legal Events

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

Payment date: 20140227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee