TWI413933B - 圖形使用者介面之應用程式介面 - Google Patents

圖形使用者介面之應用程式介面 Download PDF

Info

Publication number
TWI413933B
TWI413933B TW095132061A TW95132061A TWI413933B TW I413933 B TWI413933 B TW I413933B TW 095132061 A TW095132061 A TW 095132061A TW 95132061 A TW95132061 A TW 95132061A TW I413933 B TWI413933 B TW I413933B
Authority
TW
Taiwan
Prior art keywords
graphical user
application
user interface
view
interface
Prior art date
Application number
TW095132061A
Other languages
English (en)
Other versions
TW200731129A (en
Inventor
Christopher A Glein
David Ethan Zoller
David R Fulmer
Francis M Hogle
John E Elsbree
Mark J Finocchio
Michael E Creasy
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200731129A publication Critical patent/TW200731129A/zh
Application granted granted Critical
Publication of TWI413933B publication Critical patent/TWI413933B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Description

圖形使用者介面之應用程式介面
本發明係有關於一種透過應用程式介面集合來產生圖形使用者介面的方法與系統。
目前,圖形使用者介面係根據開發者與程式設計師之間的妥協來發展,開發者撰寫與資料互動和轉換相關聯的程式碼,並且程式設計師撰寫與圖形使用者介面上元件或資料的顯示和配置相關聯之程式碼。因為使用的資料對於圖形使用者介面上元件之配置有極大影響,所以程式設計師與開發者會經常溝通有關圖形使用者介面的視覺成效。程式設計師與開發者之間溝通延遲會增加產生應用程式的圖形使用者介面伴隨之成本。更進一步,使用傳統方法設計的應用程式圖形使用者介面並無法讓與該應用程式通訊的遠端應用程式重複使用。遠端應用程式必須利用獨立的程式碼集來產生圖形使用者介面,這可能造成應用程式的配置、色彩或感覺不一致。
在具體實施例內,提供一種透過應用程式介面集合來產生圖形使用者介面的方法。宣告式說明(declarative description)定義了圖形使用者介面所利用的元件集合,該宣告式說明經過剖析(parsing)來偵測與元件關聯的規則。 元件的外觀(visuals)由顯現器(renderer)根據與元件相關聯的規則與參數來產生。
在其他具體實施例內,顯現器與應用程式介面通訊,來產生與元件相關聯的外觀。應用程式介面包含以明確語言定義元件的檢視與模型。檢視與模型會通訊相連,讓圖形使用者介面正確呈現與運用應用程式介面的應用程式相關聯之配置與資料。
在其他具體實施例內,次要應用程式運用應用程式介面來擴充與主要應用程式相關聯的圖形使用者介面。次要應用程式可運用主要應用程式的檢視與模型當成基礎,來建立具有主要應用程式外型與感覺的複雜圖形使用者介面。此複雜的圖形使用者介面可藉由運用與主要應用程式相關聯的控制項來進行導覽。
本發明內容用於導入簡單形式中概念的選擇,在底下實施方式中有進一步說明。本發明內容並不在於說明所主張主題的關鍵特色或基本特色,也不在於用來幫助決定所主張主題的範圍。
本發明的具體實施例根據個別控制與圖形使用者介面相關聯的配置與資料之應用程式介面集合來產生圖形使用者介面。圖形使用者介面的配置可清楚定義用於產生與圖形使用者介面相關聯的外觀之元件。圖形使用者介面的資料可由命令語言來定義。宣告式說明經過剖析來偵測用於 操作圖形使用者介面元件的規則。再者,第三方應用程式運用應用程式介面來產生具有主要應用程式的「長相與感覺」(look and feel)之圖形使用者介面。
產生圖形使用者介面的電腦系統包含應用程式介面、顯現器、主要應用程式以及第三方應用程式的集合。電腦系統可利用應用程式介面來在顯現器與主要和第三方應用程式之間通訊。顯現器可接收控制圖形使用者介面元件配置的指令。顯現器可為執行指令來在顯示裝置上(像是液晶或電漿顯示器)顯示元件之處理器。在本發明的具體實施例內,電腦系統可透過通訊網路通訊連接至用戶端裝置,並且該用戶端裝置可包含可攜式裝置,像是膝上型電腦、個人數位助理、智慧型手機等等。
第1圖為說明根據本發明具體實施例範例計算環境100的網路圖。計算環境100並不企圖對領域或功能性建議任何限制。本發明的具體實施例可用許多其他特殊目的計算環境或組態來操作。請參閱第1圖,該計算環境100包含用戶端裝置130、伺服器裝置150以及通訊網路140。
用戶端裝置130包含透過通訊匯流排耦合至許多輸入裝置以及電腦可讀取媒體的處理單元。電腦可讀取媒體包含可移除或不可移除以及揮發或非揮發性電腦儲存與通訊媒體。藉由範例並且不設限,電腦儲存媒體包含電子儲存裝置、光學儲存裝置、磁性儲存裝置或可由用戶端裝置130存取並用於儲存資訊的任何媒體,並且通訊媒體可包含有線與無線媒體。輸入裝置可包含遙控器、滑鼠、鍵盤、搖 桿、控制器、麥克風、攝影機、攝錄放影機或可讓使用者輸入至用戶端裝置130的任何合適裝置。
在本發明的具體實施例內,用戶端裝置130包含顯現器110、應用程式介面(API)120、主要應用程式121以及第三方應用程式122。顯現器110提供圖形使用者介面元件的外觀呈現。顯現器110與API 120連接,讓與應用程式121-122相關聯的圖形使用者介面顯示在顯示裝置上。API 121為操縱與應用程式121-122相關聯的圖形使用者介面狀態之轉換集合。API 121允許應用程式顯現多媒體內容,像是文字、影像、視訊或音訊。應用程式121-122可包含再生多媒體內容的撥放器,以及建立多媒體內容的編輯器。在本發明的具體實施例內,應用程式可包含第三方應用程式122,像是增加主要應用程式121相關聯功能性之遠端或外掛應用程式。顯現器110運用API 120同時協調與應用程式121-122相關聯的圖形使用者介面之通訊與顯示。第三方應用程式122可本機儲存在用戶端裝置130內,或遠端儲存在伺服器裝置150內。API 120可支援遠端存取位於通訊網路140上的第三方應用程式。
此外,通訊網路140可為區域網路、廣域網路、衛星網路、無線網路或網際網路。用戶端裝置130可包含膝上型電腦、智慧型手機、個人數位助理或桌上型電腦。用戶端裝置130可運用通訊網路140與伺服器150通訊。第1圖內說明的計算環境100為範例,並且其他組態都在本發明的範疇內。
在本發明的具體實施例內,應用程式介面(API)在圖形使用者介面內物件說明與物件顯示分開處理之環境下操作。這由將物件說明成為模型,而使用不同檢視說明來處理物件顯示所達成。模型說明可當成檢視說明內的參數,因為模型與圖形使用者介面的顯示功能並無關聯,所以多個檢視可關聯於該模型來進行動態圖形使用者介面轉換。
第2圖為說明根據本發明具體實施例應用程式介面(API)220的組件圖。API 220包含模型221與檢視222。模型221和檢視222是不同的說明,定義出圖形使用者介面相關聯的配置與資料。應用程式可運用API 220與顯現器210通訊。顯現器210建立檢視222內說明與圖形使用者介面有關聯之每一可視元件之外觀211。較佳是,可建立多重外觀211用於已知的檢視222。在本發明的具體實施例內,圖形使用者介面可與第三方應用程式相關聯,該等第三方應用程式係運用與主要應用程式相關聯的檢視222當成建立複雜圖形使用者介面的基礎。
在特定具體實施例內,顯現器210可將外觀211映射至定義用於圖形使用者介面的每一檢視222。外觀211為檢視222的可視式、圖形式呈現。在具體實施例內,每一檢視22都可關聯於可視屬性,指出檢視222是否需要圖形外觀211。在某些具體實施例內,不包含在與顯現器210關聯的顯示區域內之檢視並不會呈現在顯示裝置上。顯現器210可透過API 220與應用程式通訊,來接收場景說明以及與外觀211相關聯的控制顯示時機。當決定哪個外觀 211要顯示在顯示裝置上時,顯現器210可執行焦點與階層(focus and layer)管理。透過與每一外觀211相關聯的焦點與階層等級,可達成焦點與階層管理。在具體實施例內,多媒體內容的時機需求,像是影片,以及即時廣播都可由Direct X驅動程式來實施。在具體實施例內,當圖形使用者介面描述動畫場景,外觀211可組織成具有以一對一之方式對應至檢視樹222a的樹,來建立一系列動畫外觀211。在本發明的特定具體實施例內,檢視222可包含動畫期間隱藏的特質,指出何時隱藏與檢視222相關聯之外觀211。隱藏的外觀儲存在孤立集合內,並且完成動畫順序時處置。再者,顯現器210可協調同時顯現與主要應用程式以及第三方應用程式相關聯之圖形使用者介面。
在具體實施例內,模型221提供在檢視222產生的圖形使用者介面後之邏輯。模型221的集合可讓開發者產生與應用程式相關聯的圖形使用者介面。模型221可提供讓檢視222與模型221之間通訊的服務。該服務可包含性質改變通知221a、繫結(bindings)221b、壽期(lifetime)管理221c以及動態資料221d。該性質改變通知服務221a允許像是檢視222的外部物件聆聽對模型221的改變。在具體實施例內,與模型221相關聯的說明可運用通知功能將與模型221相關聯的改變警告外部物件。繫結服務221b將與模型221相關聯的性質連接外部物件,像是模型221或檢視222,的性質。模型221可運用單向(one-way)或雙向(two-way)繫結來連接與模型221相關聯之性質。繫結服務 221b將與模型221相關聯之性質改變傳播至相關模型221或檢視222。單向繫結指定在單一方向傳播性質改變,而雙向繫結則允許雙向傳播改變。在具體實施例內,單向繫結可往前或往後傳播改變。例如:當第一性質透過單向繫結與第二性質連接,對第一性質的改變會傳播至第二性質。但是在第二性質內的改變則不會傳播至第一性質。不過,當第一性質透過雙向繫結與第二性質連接,則對性質的改變都會傳播至相連的性質。模型221的壽期管理服務221c將通知錯誤或通知抄截降至最低,並確定模型221的性質管理。壽期管理服務221c實施所有權政策,其係每一模型221都必須由一物件所擁有,像是模型221或檢視222。如此,當模型221的擁有者已銷毀,則與該擁有者相關聯的模型221也會銷毀。因此,壽期管理服務可提供有效的非必須模型221之記憶體回收(garbage collection)。動態資料服務221d允許模型221以依照需求方式分配用於數值的儲存體。例如:考量性質與大部分模型性質相同的模型221,並非分配變數給每一模型221,可分配預設值給性質,而具有與預設不同值的模型221則為例外。因為變數通常比常數(像是預設值)需要更多儲存空間,若模型221大部分使用預設值,則可降低整體儲存需求。有關範例,請考量籃球隊模型221。模型221的性質可為球員數量。在此範例中,吾人假設球員數量的預設值為5。不過,當球隊擁有不同球員數量時,仍舊可改變球員數量,像是4。因此,服務221a-221d允許模型221有效與外部物件通訊。
在具體實施例內,應用程式可運用預設模型221的集合來建立新模型221,其呈現出圖形使用者介面相關聯之資料。預設模型221可包含但不受限於命令、選擇、範圍、文字以及清單。命令模型可用於呈現出可喚起的事件。在圖形使用者介面上,命令模型可由按鈕外觀來呈現,例如「確定」按鈕。按鈕可用來當成喚起事件的觸發。選擇模型可用於呈現出選項清單,包含目前選擇的選項。較佳是,一次只能選擇一個選項。在圖形使用者介面上,選擇模型可由選擇鈕(radio)、旋鈕或核取方塊來呈現。選擇模型的性質可包含清單內的選項、目前的選擇以及目前選擇的索引。對應至目前選擇的值可公開以用於操作。在具體實施例內,該值可遞增或遞減。值模型可用於呈現具有最小值與最大值的數值。在圖形使用者介面上,值模型呈現為滑桿或旋鈕。類似於選擇模型,值模型可遞增或遞減。文字模型可用於呈現出可編輯的字串。在圖形使用者介面上,文字模型可呈現為編輯控制方塊外觀。文字模型可定義一布林旗標,來指出何時可修改現有值。另外,當正在進行文字編輯或已提交,則文字模型可產生事件。清單模型可用於呈現出任何一種物件的清單。在圖形使用者介面上,清單模型呈現為清單方塊或圖庫外觀。
在具體實施例內,檢視222提供配置、動畫、上色、多媒體整合、資料繫結以及與圖形使用者介面的使用者互動之控制項。在其他具體實施例內,檢視222揭露讓程式設計師產生具有與基本檢視222相關聯的「外觀和感覺」 之新檢視222。每一檢視222都可擁有由顯現器210所運用的檢視(或複數個外觀,像是外觀的合成集)211,來呈現圖形使用者介面的元件。
檢視222可包含樹222a、規則222b、參數222c、行為222d以及上色222e。樹222a或樹222a的集合可包含呈現每一檢視的節點,其中每一檢視定義用於與應用程式相關聯之圖形使用者介面。此外,檢視222可定義在標記語言內,像可延伸標記語言(XML)。定義檢視222的標記語言可經過剖析來產生樹222a。檢視222可關聯於繼承模型,該模型分享一般用自訂檢視222在該檢視222內定義的共用特性。因此,自訂檢視222除了特定功能以外可包含共用特性。剖析檢視222說明可包含控制在圖形使用者介面上顯現元件狀態的規則222b。規則222b可定義一組條件來匹配與對應要執行的動作。規則222b可排列在優先權組內,允許處理並產生多重替代狀態。條件就是已經改變的性質或已經發生的事件。在其他具體實施例內,條件可進一步包含有關性質的一或多準則,像是已改變的性質值是否等於測試值。動作代表性質設定、喚起方法、播放動畫、播放聲音等等。請注意,在無條件之下可形成規則222b。用於這種規則222b的條件總是為真,所以總是會執行在該規則222b內的動作。規則222b可根據其順序賦予一暗示優先權。在具體實施例內,第一規則222b可具有最低優先權,而最後規則有最高優先權。在其他具體實施例內,第一規則222b可具有最高優先權,而最後規則有最低 優先權。更特別的是,可使用任何便利的系統來賦予優先順序給規則222b清單。
在特定具體實施例內,規則222b的條件可決定性質內何時發生改變,或性質的值何時等於特定值。當符合與規則222b相關聯的條件,與規則222b相關聯的動作會指定與圖形使用者介面相關聯的元件或值上之轉換。繫結動作將一值從來源性質轉換成與一組檢視222相關聯之目標性質。喚起動作可執行與檢視222或模型221相關聯之方法。播放動畫動作在圖形使用者介面上播放動畫。播放聲音動作與檢視222相關聯之音頻片段。設定動作讓靜態值與檢視222的性質產生關聯。在其他具體實施例內,規則222b可包含特定便利規則222b。便利規則222b提供共用條件動作組合之集合。便利規則222b可包含預設值、繫結以及條件。預設值規則222b包含總是為真的條件,以及一組動作。繫結規則222b包含改變條件與繫結動作。條件規則222b包含相等條件與一組動作。在具體實施例內,運用轉換器來轉換具有不同類型的性質,例如:布林轉換器可將數字性質轉換成布林,並且格式轉換器可將數字性質轉換成字串。
在具體實施例內,參數222c指定檢視222內的自訂點。參數允許每一檢視222具有彈性並可重複使用。參數222c可包含檢視222所使用的識別項,來分辨與每一檢視222相關聯之參數222c。此外,參數222c可儲存與每一檢視222相關聯之值。該值可包含與每一檢視222的預設組 態相關聯之預設。在特定具體實施例內,參數222c可包含模型221。參數222c允許檢視222和模型221彼此通訊。檢視222可包含一組喚起圖形使用者介面上元件時所需的參數。
在其他具體實施例內,行為222d處理接收自輸入裝置的指令。一般而言,輸入裝置可包含鍵盤、滑鼠或任何合適的輸入裝置。行為222d可修改與檢視222相關聯之狀態。輸入裝置允許使用者透過行為222d與檢視222互動。行為222d,像是模型221,可觸發事件,該等事件可致使檢視222改變其外觀。
檢視222可包含上色行為222e、配置行為以及/或操作一或多外觀211的其他行為。配置行為可控制與檢視222相關聯的位置、大小、邊界或緩衝。在許多具體實施例內,配置行為可說明邊界、中央、圓圈、填充、流動、圖形、格線、捲動、階段、錨點或預設配置。例如:邊界配置可沿著可視顯示區域的邊緣排列檢視222。中央配置可在可視顯示區域的中央上排列檢視222。圓圈配置可在可視顯示區域的圓圈區域內排列檢視222。填充配置可將檢視222的大小調整成可視顯示區域的大小。流動配置可在可視顯示區域內水平或垂直排列檢視222。圖形配置可運用笛卡兒(x,y)座標將檢視222定位在可視顯示區域內。格線配置可運用可視顯示區域內的列與欄來排列檢視222。捲動配置允許與圖形使用者介面相關聯的每一檢視222捲入或捲出可視顯示區域。階段配置將檢視222排列至可依序顯示 在可視顯示區域的主要與次要階段內。錨點配置可根據檢視之間的子代/親代關係來排列檢視222。例如:錨點配置可將檢視錨定至親代檢視的邊緣,或錨定至親代檢視的特定位置(像是距離邊緣一段百分比或像素值)。尤其是,錨點配置可用於指定檢視相關於其他檢視之位置。若配置未指定,則使用預設配置來指定與每一檢視222相關聯的大小或位置之預設值。較佳是,預設配置可指定對應至與檢視相關聯的可視顯示區域大小之大小。在其他具體實施例內,配置行為可運用一組檢視222建立特殊動畫順序。動畫順序可根據由配置行為222d觸發的事件來顯示。這些事件可包含顯示、隱藏、移動、大小、比例、聚焦、改變內容或等待。顯示與隱藏事件控制動畫順序的可視性。當由配置顯示特定外觀元件時,顯示事件可播放動畫順序。當由配置隱藏外觀元件時,隱藏事件可播放動畫順序。當配置行為承諾已改變的位置、大小或比例給外觀元件,則移動大小與比例事件播放動畫順序。聚焦事件可在輸入行為接收輸入焦點之處播放動畫順序。若外觀的上色內容已經修改,像是由於文字字串改變,則內容改變事件播放動畫順序。當未播放其他動畫順序時,等待事件可播放動畫順序。行為222d可說明於標記語言內。在具體實施例內,配置行為222d可定義在標記語言內,指定顯現器應如何顯示檢視222的參數。圖形使用者介面所運用的共用檢視222可包含按鈕、選擇鈕、編輯、清單或圖庫。每一檢視222都定義圖形元件的外觀範圍,並且可鏈結至模型221。例 如:按鈕可定義按鈕的大小、位置或顏色,其可鏈結至命令模型221。
在具體實施例內,可使用一或多個檢視項目來建立檢視。在這種具體實施例內,檢視項目為可由一或多個顯現器外觀所構成的原始物件。例如:清單檢視222可利用重覆器檢視項目來建立。重複器可建立代表清單模型221內每一項目的檢視項目。在具體實施例內,重複器建立清單模型221內每一項目的主要項目。重複器與配置參數智慧運作,並且在一次嘗試中的清單模型221所要求的項目會盡可能減少,而盡可能使用較少的外觀資源。此外,重複器可處理具有混合資料類型的清單模型221。重複器可運用資料類型上的轉換來正確處理清單模型,以建立檢視222。當已經用插入、刪除或移動來修改模型221,則重複器支援來自模型221的通知以更新檢視222。在特定具體實施例內,重複器可運用映射目錄來處理清單模型221。目錄映射根據清單模型221相關聯之類型與值來指定檢視222。重複器也支援無限捲動,在此使用者可持續捲動清單模型221。當到達清單模型221的末端,重複器會從清單模型221的開頭開始捲動。重複器可運用垂直索引來建立此無限捲動。
在具體實施例內,在運用繼承建立來自共用檢視222所獲得的事件222中,可在標記語言內指定共用檢視222的說明。檢視222繼承允許作者自訂某些功能性,而利用到相關檢視222的共通性。這允許建立一組用於可插入式 檢視222的需求之案例。繼承會以每段落方式影響檢視。結果,獲得的檢視222可覆蓋預設內容或共用檢視222的命名內容。
圖形使用者介面的API可定義在不同的語言內。在具體實施例內,可用C#說明API的模型,而用XML說明檢視。API允許設計者與開發者將外觀與非外觀分離。開發者可產生圖形使用者介面非外觀範疇的說明,而程式設計師產生圖形使用者介面外觀範圍的說明。
第3圖為說明運用根據本發明具體實施例API的語言之程式碼圖式。接觸310的模型可包含概要名稱屬性(first name attribute)。接觸之模型(contact model)310分別說明一設定與取得方法311與312。在此,可運用接觸之模型310來呈現接觸之模型實例的概要名稱(first name)。設定方法312用於將一值關聯於概要名稱屬性,像是性質改變312a,並且當發生改變概要名稱屬性時通知API,像是第一性質改變312b。取得方法311允許API要求概要名稱屬性所儲存的值。接觸的外觀範疇由檢視的標記320來說明。檢視的標記320可包含一組定義規則322與文字內容321的標籤。文字內容321可運用接觸之模型310當成參數,來啟用檢視的標記320來操縱與接觸之模型實例相關聯之概要名稱。文字內容321從接觸之模型310接收接觸之模型實例的概要名稱。
用於圖形使用者介面的API允許主要應用程式根據圖形使用者介面外觀與資料範疇的個別說明來產生圖形元 件。像是外掛程式這類第三方應用程式可運用API來建立具備主要應用程式長相與感覺的圖形使用者介面。在具體實施例內,外掛應用程式可以依需求啟動圖形使用者介面的背景應用程式。例如:外掛應用程式可為撰寫來透過API與主要應用程式一起運作的應用程式。透過一或多個登記的入口點可啟動外掛程式。外掛應用程式可具有一或多個登記入口點,其可在主要應用程式開啟時啟動,或當主要應用程式內特定事件觸發時啟動。在具體實施例內,利用使用者從選單、清單或利用其他選擇方法選擇外掛程式,來啟動外掛程式。在此具體實施例內,外掛程式的UI可呈現給使用者,用於外掛應用程式啟動之後的使用者互動。在其他具體實施例內,根據觸發其他事件的使用者動作,像是啟動其他應用程式或從選單選擇所要的功能,可啟動外掛程式。仍舊在其他具體實施例內,外掛應用程式可在背景中操作,等待相關事件發生並啟動使用者介面,像是方塊,或甚至當事件發生時將使用者導覽至不同頁面。在具體實施例內,主要應用程式可在用戶端裝置上執行,而外掛應用程式可在遠端裝置上執行,像是伺服器。外掛應用程式可運用與API與主要應用程式相關聯的模型或檢視,產生與外掛應用程式相關聯的資料之圖形使用者介面。
第4圖為說明根據本發明具體實施例在應用程式與外掛程式之間互動之邏輯圖式。當應用程式啟動或使用者已經啟用會觸發外掛程式的事件時,開始邏輯步驟410。在 步驟410內,應用程式產生啟動外掛程式要求。在步驟420內,啟動對應的外掛應用程式。在步驟425內,外掛程式會傳送包含檢視說明的回應給應用程式,並在步驟430內追蹤所傳送的檢視。在步驟435內,應用程式剖析檢視的說明,並產生檢視的全螢幕顯示。在步驟440內,應用程式載入檢視,並且在步驟445內,載入可在應用程式相關聯檢視與外掛程式相關檢視之間導覽之控制項。在步驟450內,頁面初始化並且放入應用程式堆疊內。步驟460結束該方法。
運用API維持對外掛程式的控制,來導覽堆疊內含的檢視,該堆疊包含外掛程式檢視以及應用程式檢視。在具體實施例內,外掛程式可登記一或多個「前景」(foreground)入口點,這可透過不同類別存取(例如「更多程式」、「選擇鈕」、「工作」等等)。當啟動後,「前景」入口點可將載入外掛程式初始檢視需要至少部分顯示指示給應用程式。例如:外掛程式可要求包含應用程式的全螢幕或顯示區域,或應用程式的一或多部分螢幕或顯示區域之檢視。在其他具體實施例內,從應用程式的觀點來看,外掛程式基本上是歸類為黑盒子(blackbox)。外掛程式管理自己的歷史資料、內部頁面導覽、輸入處理以及顯現。當使用者正從一個檢視導覽至另一個(在外掛程式內),並不需要為了檢視導覽而與應用程式通訊。因為控制項集中在外掛程式內,這讓使用者有更快的導覽經驗,除非絕對必要,該外掛程式並不需要越過處理邊界將使用者帶至一新的檢視方式。
在其他具體實施例內,利用設定遠端主機並建立用於載入外掛程式的外掛程式載入器,來啟動外掛程式。遠端主機可為遠離應用程式以及顯現器的裝置。與應用程式相關聯的顯現器可配置成顯示從遠端外掛程式接收的檢視。
第5圖為說明根據本發明具體實施例在應用程式與外掛程式之間互動之邏輯圖式。在步驟510內,啟動在外掛程式之後的邏輯。在步驟520內,接收導覽命令。在步驟530內,命令經過處理來決定命令是否導覽遠離外掛程式。當命令導覽遠離,則在步驟540內退出外掛程式。接著在步驟550內,應用程式將外掛程式卸載。在步驟560內,已經銷毀與外掛程式相關聯之圖形使用者介面。步驟570結束該方法。當命令未從外掛程式導覽離開,則該邏輯等待其他導覽命令。
在具體實施例內,當已啟動外掛程式,則可在其壽期部份或全部期間都在主要應用程式內執行當成全螢幕應用程式。外掛程式可使用API控制頁面堆疊、導覽等等。在某些具體實施例內,外掛程式可終止於前景中,不過仍舊可存在當成背景外掛程式,等待某些通知讓其顯示圖形使用者介面或導覽使用者至全螢幕檢視。當初次啟動外掛程式,包裝程式(wrapper)會建立來處理外掛程式與應用程式之間的通訊。當顯示外掛程式檢視時,包裝程式會停止,如此圖形使用者介面具備控制權。在具體實施例內,當停用外掛程式但是外掛程式仍舊執行時,控制權會回給應用程式,如此可繼續傳送訊息並保持外掛程式執行。當應用 程式不再傳送訊息給外掛程式,則外掛程式會遭到銷毀。
當管理應用程式與外掛程式檢視的顯示時,API可支援與顯現器的次要連線。次要顯現作業可用於協調運用共享顯現器的個別應用程式之資源管理。次要處理,像是外掛程式可重複使用現有的顯現器資源,像是動畫、聲音與圖形或與主要應用程式相關聯之裝置物件。在其他牽涉到次要連線的具體實施例內,在主要應用程式內一區域可當成檢視外掛程式之代理主機,將所有繞送至代理主機的所有輸入轉送至外掛程式的輸入執行緒。
在特定具體實施例內,主要應用程式或外掛程式都可運用原始輸入資料以及處理過的輸入。原始輸入資料可用原始格式儲存並隨附於處理過的輸入資料,讓外掛程式可存取原始輸入以及處理過的輸入。一旦用原始資料標示輸入,我們可依照要求將其轉送給外掛程式。在具體實施例內,一區域可產生處理過的輸入並隨附原始輸入。該區域可為次要檢視代理主機。該次要檢視代理主機可例運該區域機制,支援單一處理內的多重檢視。
API可允許外掛應用程式以及主要應用程式建立圖形使用者介面。應用程式說明與圖形使用者介面有關聯的資料與圖形元件,讓顯現器有效率地產生圖形使用者介面。
第6圖為說明根據本發明具體實施例產生圖形使用者介面的方法之邏輯圖式。當啟動應用程式時,於步驟610內開始邏輯。在步驟620內,從檢視載入器接收到檢視的宣告說明。在步驟630內剖析該宣告說明。在步驟640內,偵 測到用於產生檢視的圖形元件之規則。在步驟650內,根據此規則產生用於每個檢視的外觀。步驟660結束該方法。
總結來說,用於產生圖形使用者介面的API具有檢視與模型,其分別說明與圖形使用者介面相關聯之資料與檢視。檢視運用模型來配置與圖形使用者介面相關聯之圖形元件。與檢視相關聯的規則代表控制圖形使用者介面狀態之邏輯,並可讓程式設計師控制使用者與應用程式之間的互動。
在本發明的替代具體實施例內,第三方應用程式,像是外掛程式,可運用主要應用程式的區域來控制輸入處理。該區域可處理接收自輸入裝置的輸入,並隨附原始輸入資料給處理過的輸入資料。處理過以及原始輸入資料都會傳輸至外掛程式,來決定何處或何時顯現與外掛程式相關聯之檢視。
在此已經說明本發明的前述說明,精通此技術的人士將可對組態與實施進行修改。例如:雖然用第1圖至第6圖來說明本發明,不過這些說明都為範例。雖然以特定結構特色語言或方法邏輯動作來說明所主張主題,吾人可瞭解,申請專利範圍內所定義的主張主題並不必然受限於上述特定特色或動作。而上述特定特色與動作僅當成用於實施申請專利範圍之範例型式。本發明領域只受限於下列申請專利範圍。
100‧‧‧計算環境
110‧‧‧顯現器
120‧‧‧應用程式介面
121‧‧‧主要應用程式
122‧‧‧第三方應用程式
130‧‧‧用戶端裝置
140‧‧‧通訊網路
150‧‧‧伺服器裝置
210‧‧‧顯現器
211‧‧‧外觀
220‧‧‧應用程式介面
221‧‧‧模型
221a‧‧‧性質改變通知
221b‧‧‧繫結
221c‧‧‧壽期管理
221d‧‧‧動態資料
222‧‧‧檢視
222a‧‧‧檢視樹
222b‧‧‧規則
222c‧‧‧參數
222d‧‧‧行為
222e‧‧‧上色
310‧‧‧接觸模型
311‧‧‧取得方法
312‧‧‧設定方法
312a‧‧‧性質改變
312b‧‧‧觸發性質改變
320‧‧‧檢視的標記
321‧‧‧文字內容
第1圖為說明根據本發明具體實施例範例計算環境的 網路圖;第2圖為說明根據本發明具體實施例應用程式介面的組件圖;第3圖為說明運用根據本發明具體實施例應用程式介面的語言之程式碼圖式;第4圖為說明根據本發明具體實施例在應用程式與外掛程式之間互動之邏輯圖式;第5圖為說明根據本發明具體實施例在應用程式與外掛程式之間互動之邏輯圖式;以及第6圖為說明根據本發明具體實施例產生圖形使用者介面的方法之邏輯圖式。
100‧‧‧計算環境
110‧‧‧顯現器
120‧‧‧應用程式介面
121‧‧‧主要應用程式
122‧‧‧第三方應用程式
130‧‧‧用戶端裝置
140‧‧‧通訊網路
150‧‧‧伺服器裝置

Claims (19)

  1. 一種產生一圖形使用者介面之電腦實施方法,該方法包含以下步驟:產生圖形使用者介面之步驟,該產生圖形使用者介面之步驟用以根據一個別複數個應用程式介面(API)來產生複數個圖形使用者介面(GUI),其中一些該等圖形使用者介面係與複數個主要應用程式相關,而其他該等圖形使用者介面係與複數個第三方(third party)應用程式相關;接收宣告式說明(declarative description)之步驟,該接收宣告式說明之步驟用以接收一宣告式說明,該宣告式說明係定義由該複數個圖形使用者介面之每一者所運用之一元件集合;剖析(parsing)宣告式說明之步驟,該剖析宣告式說明之步驟用以剖析該宣告式說明來偵測與該元件集合相關聯之規則,其中該等規則係經運用以操作該複數個圖形使用者介面之每一者的該等元件,且其中該等規則係代表邏輯,該邏輯係控制該複數個圖形使用者介面之每一者的一狀態;運用應用程式介面之步驟,該運用應用程式介面之步驟用以運用該等應用程式介面來同時協調該複數個圖形使用者介面之通訊及顯示,該複數個圖形使用者介面係與該個別複數個主要及第三方應用程式相關聯;及 顯現(rendering)多媒體內容之步驟,該顯現多媒體內容之步驟用以經由該等應用程式介面來顯現該複數個主要及第三方應用程式之多媒體內容,以在一顯示裝置上顯示,其中,該複數個應用程式介面控制與每一個別該複數個圖形使用者介面相關之一配置(layout)及資料。
  2. 如申請專利範圍第1項所述之電腦實施方法,其中該宣告式說明係以一標記語言表達。
  3. 如申請專利範圍第1項所述之電腦實施方法,其中該等規則係定義與該元件集合相關聯之狀態。
  4. 如申請專利範圍第1項所述之電腦實施方法,另包括以下步驟:接收與元件集合相關聯之值的說明之步驟,該接收與元件集合相關聯之值的說明之步驟用以接收與該元件集合相關聯之值的一說明。
  5. 如申請專利範圍第4項所述之電腦實施方法,其中與該元件集合相關聯之值的該說明把與至少兩分離圖形使用者介面元件相關聯之值繫結(bind)在一起。
  6. 一種產生一用於一次要應用程式之圖形使用者介面的電腦實施方法,該方法包含以下步驟:接收宣告式頁面(declarative page)之步驟,該接收宣告式頁面之步驟用以接收來自一次要應用程式的一宣告式頁面,其中該宣告式頁面包含一檢視之一說 明,該檢視之該說明係定義包含於該圖形使用者介面上之元件的該行為,且該檢視之該說明係提供該配置、動畫、上色(painting)、及多媒體整合之控制項,且其中該次要應用程式係經設計以經由一應用程式介面來與一主要應用程式接合(interface);剖析宣告式頁面之步驟,該剖析宣告式頁面之步驟用以剖析該宣告式頁面來決定何處應該產生圖形使用者介面元件;運用應用程式介面之步驟,該運用應用程式介面之步驟用以運用該應用程式介面來同時協調與該主要及該次要應用程式之每一者相關聯之該圖形使用者介面的通訊及顯示;及顯現多媒體內容之步驟,該顯現多媒體內容之步驟用以顯現該主要及該次要應用程式之多媒體內容,以用於在一顯示裝置上顯示,其中該應用程式介面控制該圖形使用者介面之一配置與資料。
  7. 如申請專利範圍第6項所述之電腦實施方法,其中該宣告式頁面係以可延伸的標記語言(Markup Language)來表達。
  8. 如申請專利範圍第6項所述之電腦實施方法,另包括以下步驟:接收與宣告式頁面相關聯之值的說明之步驟,該接收與宣告式頁面相關聯之值的說明之步驟用以接收 與該宣告式頁面相關聯的值之一說明。
  9. 如申請專利範圍第6項所述之電腦實施方法,另包括以下步驟:喚起檢視之步驟,該喚起檢視之步驟用以根據該宣告式頁面來喚起一檢視,該檢視係具有該元件集合,其中該檢視係由該主要應用程式所主控(hosted)。
  10. 如申請專利範圍第6項所述之電腦實施方法,其中該檢視會經過縮放(scaled),以符合該主要應用程式之一大小需求。
  11. 如申請專利範圍第6項所述之電腦實施方法,其中該圖形使用者介面的一位置係由一應用程式介面來操作,該應用程式介面係與該主要應用程式相關聯。
  12. 如申請專利範圍第6項所述之電腦實施方法,另包括以下步驟:整合步驟,該整合步驟用以將該次要應用程式與該主要應用程式整合在一起。
  13. 一種具有一應用程式介面來產生圖形使用者介面之電腦可讀取媒體,該應用程式介面包括:一模型,該模型係用以代表在一圖形使用者介面上之元件的值,其中該模型提供在該等圖形使用者介面及服務後面的該邏輯,該等服務係賦能介於該模型與一檢視間的通訊;該檢視係用於定義包含在該圖形使用者介面上之該等元件之該行為,其中該檢視運用規則以控制在該 圖形使用者介面上之該等元件,且其中該檢視提供該配置、動畫、上色、及多媒體整合之控制項;以及一顯現器(renderer),該顯現器係用於根據該模型與該檢視來顯示該等已組合之元件。
  14. 如申請專利範圍第13項所述之電腦可讀取媒體,其中該模型係定義在一語言內。
  15. 如申請專利範圍第13項所述之電腦可讀取媒體,其中當與一元件相關聯之該等值改變時,該模型產生一通知。
  16. 如申請專利範圍第13項所述之電腦可讀取媒體,其中該檢視提供用於在該圖形使用者介面上之該等元件之動畫與配置。
  17. 如申請專利範圍第13項所述之電腦可讀取媒體,其中該顯現器運用外觀來呈現在該圖形使用者介面上之該元件。
  18. 如申請專利範圍第13項所述之電腦可讀取媒體,其中該等元件控制在一主要應用程式與一第三方應用程式間之導覽(navigation)。
  19. 如申請專利範圍第13項所述之電腦可讀取媒體,其中該檢視與該模型係可個別改變。
TW095132061A 2005-09-02 2006-08-30 圖形使用者介面之應用程式介面 TWI413933B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71340105P 2005-09-02 2005-09-02
US11/320,668 US20070055932A1 (en) 2005-09-02 2005-12-30 Application programming interfaces for graphical user interfaces

Publications (2)

Publication Number Publication Date
TW200731129A TW200731129A (en) 2007-08-16
TWI413933B true TWI413933B (zh) 2013-11-01

Family

ID=37809466

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095132061A TWI413933B (zh) 2005-09-02 2006-08-30 圖形使用者介面之應用程式介面

Country Status (3)

Country Link
US (1) US20070055932A1 (zh)
TW (1) TWI413933B (zh)
WO (1) WO2007027783A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090006987A1 (en) * 2007-06-29 2009-01-01 Merav Simhi Visual design tools for portal content creation
US8805744B2 (en) * 2007-10-01 2014-08-12 Disney Enterprises, Inc. Podblasting-connecting a USB portable media device to a console
US9405513B2 (en) * 2008-04-18 2016-08-02 Software Ag Systems and methods for graphically developing rules for transforming models between description notations
US8311057B1 (en) 2008-08-05 2012-11-13 Xilinx, Inc. Managing formatting of packets of a communication protocol
US8160092B1 (en) * 2008-08-05 2012-04-17 Xilinx, Inc. Transforming a declarative description of a packet processor
US8418070B2 (en) * 2008-10-08 2013-04-09 Sap Ag Developing user interface element settings
US20100192074A1 (en) * 2009-01-28 2010-07-29 Microsoft Corporation Pluggable margin extension
US8943423B2 (en) * 2009-07-07 2015-01-27 International Business Machines Corporation User interface indicators for changed user interface elements
US9223589B2 (en) * 2010-02-26 2015-12-29 Microsoft Technology Licensing, Llc Smooth layout animation of visuals
US8881056B2 (en) * 2010-08-30 2014-11-04 Sap Se Dynamic view computation and display
WO2014145742A2 (en) * 2013-03-15 2014-09-18 United Parcel Service Of America, Inc. Group buying systems and related methods
CN103399750B (zh) * 2013-08-07 2017-05-24 北京奇虎科技有限公司 用户界面实现方法及装置
TWI509496B (zh) * 2014-08-12 2015-11-21 Noodoe Corp 電子裝置之頁面管理方法及系統,及相關電腦程式產品
US11747802B2 (en) * 2019-12-11 2023-09-05 Mason Electric Co. Ruggedized remote control display management system for harsh and safety-critical environments
TWI783764B (zh) * 2021-10-29 2022-11-11 國泰世華商業銀行股份有限公司 軟體開發系統及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200421185A (en) * 2003-04-09 2004-10-16 Inst Information Industry Processing method and system for graphic user interface display

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6051029A (en) * 1997-10-31 2000-04-18 Entelos, Inc. Method of generating a display for a dynamic simulation model utilizing node and link representations
US20020104067A1 (en) * 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
JP4719987B2 (ja) * 2001-02-09 2011-07-06 ソニー株式会社 画面表示制御方法、プログラムおよび画面表示制御装置
US7013297B2 (en) * 2001-02-27 2006-03-14 Microsoft Corporation Expert system for generating user interfaces
US20030160822A1 (en) * 2002-02-22 2003-08-28 Eastman Kodak Company System and method for creating graphical user interfaces
JP3755500B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
EP1460533A1 (en) * 2003-03-17 2004-09-22 Alcatel Extensible graphical user interface development framework
US20060206827A1 (en) * 2005-03-10 2006-09-14 Siemens Medical Solutions Usa, Inc. Live graphical user interface builder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200421185A (en) * 2003-04-09 2004-10-16 Inst Information Industry Processing method and system for graphic user interface display

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Michael Abernethy, "Advanced Synth, Custom UIs are a breeze with the newest Swing look and feel", 2005/02/11, http://webbeta. archive.org/web/20050211014326/http://www-106.ibm.com/ developerworks/java/library/j-synth/ *
Xoetrope, "Carousel User Guide Draft", 2005/02/05, http:// wayback.archive.org/web/20050205085153/http:// xui.sourceforge.net/docs/CarouselUserGuide.pdf javadesktop.org, "Introducing JDIC, Desktop Integration for Java Applications", 2005/06/23, http://web-beta.archive.org/ web/20050623095138/http://javadesktop.org/articles/jdic/ index.html *

Also Published As

Publication number Publication date
US20070055932A1 (en) 2007-03-08
TW200731129A (en) 2007-08-16
WO2007027783A3 (en) 2007-05-03
WO2007027783A2 (en) 2007-03-08

Similar Documents

Publication Publication Date Title
TWI413933B (zh) 圖形使用者介面之應用程式介面
US9910567B2 (en) Providing a user interface
CN102221993B (zh) 复杂用户界面状态变更的声明性定义
CN101861566B (zh) 用于生成应用片段的系统和方法
Heer et al. Prefuse: a toolkit for interactive information visualization
US8156467B2 (en) Reusing components in a running application
US8762936B2 (en) Dynamic design-time extensions support in an integrated development environment
JP5697661B2 (ja) プラットフォームの拡張性フレームワーク
JP5941541B2 (ja) モバイル・アプリケーション開発のためのシステムおよび方法
US9710950B2 (en) Extensible sprite sheet generation mechanism for declarative data formats and animation sequence formats
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US7665014B2 (en) Method and apparatus for generating forms using form types
US8739120B2 (en) System and method for stage rendering in a software authoring tool
US8136043B2 (en) GUI generation apparatus and method for generating GUI
US7603624B2 (en) System and method for styling content in a graphical user interface control
WO2011106727A2 (en) Smooth layout animation of visuals
JP2013518321A (ja) パターンベースのユーザインターフェース
US20110126171A1 (en) Dynamic native editor code view facade
Molina Massó et al. Towards virtualization of user interfaces based on UsiXML
Lewis et al. Native mobile development: a cross-reference for iOS and Android
US8566734B1 (en) System and method for providing visual component layout input in alternate forms
Kavaldjian et al. Generating content presentation according to purpose
Karlsson et al. Xamarin. Forms Projects: Build seven real-world cross-platform mobile apps with C# and Xamarin. Forms
Versluis et al. Xamarin. Forms Solutions
Sümer Chisio Web: A web-based framework for customizable visualization of relational information

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees