專利名稱:圖形用戶界面管理的制作方法
圖形用戶界面管理
背景
諸如個(gè)人數(shù)字助理(PDA)、袖珍PC、蜂窩電話、手持式游戲系統(tǒng)、手持式 電子測(cè)試設(shè)備等手持式計(jì)算設(shè)備通常包括顯示器。這些手持式計(jì)算設(shè)備中的許多在 其顯示器上提供圖形用戶界面(GUI)。遺憾的是,由于這些手持式計(jì)算設(shè)備中的 顯示器尺寸較小,使得在諸如臺(tái)式計(jì)算機(jī)用顯示器等較大顯示器上使用的圖形用戶 界面對(duì)于這些手持式設(shè)備往往并不是最優(yōu)的。在GUI包括多個(gè)窗口時(shí)該問題尤為 尖銳。
附圖簡(jiǎn)述
圖1示出了包括其上繪制有圖形用戶界面(GUI)的顯示器的計(jì)算設(shè)備的一個(gè)示例。
圖2示出了圖1的顯示器和GUI以及用于控制該GUI的GUI管理模塊的一個(gè) 示例。
圖3示出了圖2的GUI管理模塊的子窗口模塊的一個(gè)示例。 圖4示出了圖2的GUI管理模塊的窗口管理模塊的一個(gè)示例。 圖5示出了用于控制圖1和2的GUI的操作流程的一個(gè)示例。 圖6示出了用于控制圖1和2的GUI的操作流程的另一示例。 圖7示出了用于控制圖1和2的GUI的操作流程的另一示例。
說明
以下說明對(duì)可在于計(jì)算設(shè)備的顯示器上呈現(xiàn)并管理圖形用戶界面(GUI)時(shí)使 用或可與其結(jié)合使用的各種工藝及技術(shù)的實(shí)現(xiàn)及其它進(jìn)行了闡述。
根據(jù)在此說明的一些實(shí)現(xiàn),GUI以具有界定的子窗口呈現(xiàn)區(qū)域的父窗口的形 式被繪制在計(jì)算設(shè)備的顯示器上。繪制在子窗口呈現(xiàn)區(qū)域內(nèi)的是若干子窗口。子窗 口呈現(xiàn)區(qū)域內(nèi)的每個(gè)子窗口與一特定過程相關(guān)聯(lián)。如在此使用的,過程可以是通過 子窗口接收和/或傳遞信息和/或通過子窗口與用戶交互和/或?yàn)橛脩羲刂频娜魏纬绦?、進(jìn)程、服務(wù)等。即,每個(gè)子窗口為其相關(guān)聯(lián)的過程呈現(xiàn)一GUI。例如, 一個(gè) 子窗口可呈現(xiàn)用于數(shù)據(jù)庫(kù)程序的GUI,另 一子窗口可呈現(xiàn)用于自動(dòng)股票行情服務(wù)的
GUI,另一子窗口可呈現(xiàn)用于電子郵件程序的收件箱的GUI,而又一子窗口 GUI 可呈現(xiàn)用于電子郵件程序中的搜索功能的GUI等。
每個(gè)子窗口可以用若干視覺/功能模式中的一種來顯示。g卩,在任意給定時(shí)間, 子窗口將根據(jù)從其可用的若干視覺/功能模式中選出的一種視覺/功能模式來顯示。 每種模式可指定以下內(nèi)容,諸如該子窗口中窗口控件(例如,工具欄、按鈕等)的 數(shù)目和放置、該子窗口將顯示的信息的格式和類型、該子窗口的大小或大小的范圍、 該子窗口的大小是否可變、以及通過該子窗口將對(duì)用戶可用的功能等。例如,用于 電子郵件程序的子窗口可具有顯示接收到的電子郵件消息的列表的第一模式、顯示 用于改變?cè)撾娮余]件程序的運(yùn)行參數(shù)的各種窗口控件的第二模式、以及顯示電子郵 件消息的可選列表和用于查看所選的單個(gè)電子郵件消息的內(nèi)容的可滾動(dòng)窗口的第 三模式等。
在一個(gè)實(shí)現(xiàn)中,各子窗口根據(jù)預(yù)定的顯示方案排列在子窗口呈現(xiàn)區(qū)域內(nèi)。一 般而言,顯示方案指定所要求的該子窗口呈現(xiàn)區(qū)域內(nèi)各子窗口之間的空間關(guān)系。例 如,但不構(gòu)成限定地,根據(jù)在此被稱為"全顯示區(qū)域方案"的一個(gè)顯示方案,各子 窗口以使該子窗口呈現(xiàn)區(qū)域內(nèi)所有可用領(lǐng)地(real estate)被其中所呈現(xiàn)的各子窗口 完全占據(jù)、并且各子窗口之間互不重疊的方式排列在子窗口呈現(xiàn)區(qū)域內(nèi)。
當(dāng)這些子窗口中的一個(gè)的大小被改變時(shí),諸如當(dāng)子窗口的模式被改變時(shí),將 需要調(diào)整其它子窗口中一個(gè)或多個(gè)的大小,以使當(dāng)前顯示方案得以維持。例如,根 據(jù)該全顯示區(qū)域方案,當(dāng)一個(gè)子窗口的大小被改變時(shí),其它子窗口中一個(gè)或多個(gè)的 大小隨之被改變,從而使所有子窗口繼續(xù)以完全占據(jù)子窗口呈現(xiàn)區(qū)域的非重疊方式 被顯示。
在一個(gè)實(shí)現(xiàn)中,以使得給定顯示方案得以維持的方式改變子窗口模式是由窗 口管理模塊來執(zhí)行的。在這些實(shí)現(xiàn)中,窗口管理模塊確定每個(gè)子窗口將處于哪種模 式以維持特定的顯示方案。
在一些實(shí)現(xiàn)中,窗口管理模塊使用"子窗口分級(jí)次序"來維持顯示方案。如 在此使用的,"子窗口分級(jí)次序"是基于某些預(yù)定準(zhǔn)則的子窗口順序分級(jí)。子窗口 分級(jí)次序指定各子窗口的重要性的相對(duì)次序。該重要性次序隨后被用于確定哪些子 窗口 (若有)將改變其模式以維持顯示方案。例如,在一個(gè)實(shí)現(xiàn)中,當(dāng)確定有一子 窗口需要轉(zhuǎn)換到需要較少顯示領(lǐng)地的模式時(shí),優(yōu)選地,具有較低重要性次序的子窗口而不是具有較高重要性次序的子窗口將被轉(zhuǎn)換到需要較少顯示領(lǐng)地的模式。
在一些實(shí)現(xiàn)中,窗口管理模塊對(duì)每個(gè)子窗口使用"子窗口模式升級(jí)/降級(jí)序列" 來維持顯示方案。如在此使用的,"子窗口模式升級(jí)/降級(jí)序列"是一給定子窗口 的各模式的順序排序。通常,但并不一定,各模式根據(jù)每種模式將需要多大顯示領(lǐng) 地來排序成一子窗口模式序列。在將子窗口從一種模式改為另一種模式時(shí),該子窗 口隨即根據(jù)需要較多還是較少的顯示領(lǐng)地從其當(dāng)前模式轉(zhuǎn)換到其模式序列中下一 較高或較低模式。
在一些實(shí)現(xiàn)中,窗口管理模塊使用子窗口分級(jí)次序和子窗口模式升級(jí)/降級(jí)序 列兩者來維持顯示方案。
現(xiàn)在轉(zhuǎn)到圖1,其中示出了可在其中實(shí)現(xiàn)在此所描述的GUI呈現(xiàn)和管理的一 種可能的計(jì)算設(shè)備100。具體而言,圖1示出了手持式計(jì)算設(shè)備100。應(yīng)該理解的
是,雖然以下說明是針對(duì)圖1所示的手持式計(jì)算設(shè)備ioo進(jìn)行的,然而在此所描述 的GUI呈現(xiàn)和管理可在包括或可訪問用于呈現(xiàn)GUI的適當(dāng)軟件和硬件的任何計(jì)算 設(shè)備、計(jì)算系統(tǒng)等中實(shí)現(xiàn)。
可在其中實(shí)現(xiàn)在此所描述的GUI呈現(xiàn)和管理的其它類型的計(jì)算設(shè)備的示例包 括,但并不限于,個(gè)人計(jì)算機(jī)、基于微處理器或可編程的消費(fèi)者或汽車用電子產(chǎn)品、 網(wǎng)絡(luò)PC、機(jī)頂盒、微型計(jì)算機(jī)、游戲機(jī)、大型計(jì)算機(jī)、電子測(cè)試設(shè)備等。在此所 描述的GUI呈現(xiàn)和管理還可在其中操作的執(zhí)行以及數(shù)據(jù)的存儲(chǔ)可分布在通過通信 網(wǎng)絡(luò)鏈接的各處理設(shè)備上的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。
如圖1所示,計(jì)算設(shè)備100包括處理器102,其上繪制有GUI 106的顯示器 104、控制面板107、以及計(jì)算機(jī)可讀介質(zhì)108。顯示器104或可物理地集成到計(jì)算 設(shè)備100中或可物理地與計(jì)算設(shè)備100分開。在任一情形中,顯示器104都將具有 用于顯示GUI 106的適當(dāng)機(jī)構(gòu)和功能。顯示器104還可包括諸如觸摸屏、軟鍵、指 示筆傳感器等用戶可籍其與GUI 106交互的機(jī)構(gòu)。例如,如圖所示,顯示器104 包括觸摸屏110和指示筆112,用戶可用其與呈現(xiàn)在GUI 106中的各種視覺和功能 元素(例如,窗口、窗口控件等)交互。
控制面板107包括方便用戶與GUI 106交互的鍵盤和各種其它用戶輸入機(jī)構(gòu)。 除了顯示器104和控制面板107以外,計(jì)算設(shè)備100還可包括、或被可操作地連接 至其它輸入設(shè)備(例如,鼠標(biāo)、話筒等)以及其它輸出設(shè)備(例如,揚(yáng)聲器、打印 機(jī)、以及其它外圍設(shè)備等)。計(jì)算設(shè)備100還可包括方便與其它計(jì)算機(jī)、計(jì)算機(jī)網(wǎng) 絡(luò)、外圍設(shè)備、輸入設(shè)備等進(jìn)行基于無線或有線的通信的通信連接。
如在此使用的,計(jì)算機(jī)可讀介質(zhì)108可以是能夠存儲(chǔ)或包含以能被計(jì)算機(jī)訪 問和理解的形式編碼的信息的任何介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的典型形式包括,但并不 限于,易失性和非易失性存儲(chǔ)器兩者、包括可移動(dòng)和/或不可移動(dòng)介質(zhì)的數(shù)據(jù)存儲(chǔ) 設(shè)備、以及通信介質(zhì)。
通信介質(zhì)將計(jì)算機(jī)可讀信息包含在諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信 號(hào)中,并且包括任何信息傳送介質(zhì)。術(shù)語(yǔ)"已調(diào)制數(shù)據(jù)信號(hào)"是指這樣的信號(hào),其 一個(gè)或多個(gè)特性被以將信息編碼在該信號(hào)中的方式設(shè)置或改變。作為示例,但并無 限定性意義,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直線連接等有線介質(zhì)、以及諸如聲波、RF、紅外等無線介質(zhì)以及其它無線介質(zhì)。
在圖1所示的實(shí)現(xiàn)中,計(jì)算機(jī)可讀介質(zhì)108包括一個(gè)或多個(gè)過程116、 GUI 管理模塊118、以及窗口化子系統(tǒng)122。在于此所述的各種實(shí)現(xiàn)中,過程116、 GUI 管理模塊118、以及窗口化子系統(tǒng)122由包含在計(jì)算機(jī)可讀介質(zhì)108中的軟件模塊 組成或構(gòu)成。軟件模塊可包括或包含各種形式和/或格式的計(jì)算機(jī)可執(zhí)行指令、和/ 或數(shù)據(jù)。軟件模塊可包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的各種子模塊、例 程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。
雖然在此被描述為包含在計(jì)算機(jī)可讀介質(zhì)108中并在處理器102上執(zhí)行的軟 件模塊,然而將可認(rèn)識(shí)到的是,過程116、 GUI管理模塊118和窗口化子系統(tǒng)122 可替換地被全部或部分地實(shí)現(xiàn)為硬件、固件、或者軟件、硬件、和/或固件的各種 組合。另外,雖然在此被描述為在計(jì)算設(shè)備100中實(shí)現(xiàn),但是在一些實(shí)現(xiàn)中,過程 116、 GUI管理模塊118、以及窗口化子系統(tǒng)122中的任意一個(gè)或所有都可全部或 部分地在其中操作的執(zhí)行和數(shù)據(jù)的存儲(chǔ)可分布在通過通信網(wǎng)絡(luò)鏈接的各處理設(shè)備 上的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。
一般而言,窗口化子系統(tǒng)122處理與在顯示器104上管理和呈現(xiàn)窗口和窗口 控件有關(guān)的各種操作。窗口化子系統(tǒng)122可處理以下操作,諸如但并不限于,將用 戶與計(jì)算設(shè)備100和GUI 106的交互(例如,擊鍵、指示筆移動(dòng)、以及控件選擇等) 翻譯成用于過程116和/或計(jì)算設(shè)備100的操作系統(tǒng)(未示出)的消息、消息排隊(duì)、 創(chuàng)建和管理GUI 106的各個(gè)方面。例如,窗口化子系統(tǒng)122可定義和管理GUI 106 的典型視覺元素和功能特征,諸如窗口、窗口控件、圖形、文本、API和/或其它 資源等。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,有許多不同類型的用于提供或方便GUI在顯示 器上的呈現(xiàn)的窗口化子系統(tǒng)。通常,這類窗口化子系統(tǒng)是操作系統(tǒng)的一部分或者與操作系統(tǒng)相關(guān)聯(lián)。提供這類窗口化子系統(tǒng)的操作系統(tǒng)的一些示例包括,但并不限于,MICROSOFT WINDOWS 操作系統(tǒng)的各種版本(例如,WINDOWS⑧XP、 WINDOWS⑧CE等),UNIX⑧操作系統(tǒng)的各種版本、以及其它操作系統(tǒng)。在一些 實(shí)現(xiàn)中,窗口化子系統(tǒng)122可以是這些窗口化操作系統(tǒng)之一的一部分,或者與其相 關(guān)聯(lián)。在其它實(shí)現(xiàn)中,窗口化子系統(tǒng)122可包括作為操作系統(tǒng)一部分或與操作系統(tǒng) 分開的其它專有、非專有、當(dāng)前可用或以后開發(fā)的窗口化系統(tǒng)。
本領(lǐng)域的技術(shù)人員還將認(rèn)識(shí)到,窗口化子系統(tǒng)通常不直接在顯示器上繪制 GUI的視覺元素。確切而言,計(jì)算設(shè)備通常包括基于從窗口化子系統(tǒng)或操作系統(tǒng)接 收到的數(shù)據(jù)在顯示器上繪制GUI的各種硬件和/或軟件組件(例如,圖形卡、加速 器等)。
如圖1所示,根據(jù)一個(gè)實(shí)現(xiàn),GUI 106包括具有界定的子窗口呈現(xiàn)區(qū)域132 的父窗口 130。繪制在子窗口呈現(xiàn)區(qū)域132內(nèi)的是若干子窗口 134- 144。需要注意 的是,雖然在子窗口呈現(xiàn)區(qū)域132中示出了 6個(gè)子窗口 134 - 144,然而可在子窗 口呈現(xiàn)區(qū)域132中呈現(xiàn)更少或更多的子窗口。
在一些實(shí)現(xiàn)中,每個(gè)子窗口 134- 144與一特定過程相關(guān)聯(lián)并呈現(xiàn)用于該過程 的GUI。如前所述地,如在此使用的,過程可以是通過子窗口接收和/或傳遞信息、 和/或通過子窗口與用戶交互和/或?yàn)橛脩羲刂频娜魏纬绦?、進(jìn)程、服務(wù)等。
父窗口 130可以用各種視覺樣式(例如,窗口形狀、邊界類型、以及顏色等) 來顯示,并且可包括任意數(shù)目的窗口控件。窗口控件的示例包括,但并不限于,工 具欄、按鈕、文本框、對(duì)話框、列表框、組合框、編輯框、復(fù)選框、向?qū)?、屬性?單、單選按鈕、日歷、進(jìn)度條、滾動(dòng)條、調(diào)色板、菜單、選項(xiàng)卡、插入符(carrots)、 子窗口等。例如,在圖1中所示的實(shí)現(xiàn)里,父窗口 130是矩形的,包括工具條124, 并包括各種窗口控件126。在其它實(shí)現(xiàn)中,父窗口 130可以是矩形之外的其它形狀、 沒有工具欄或具有另外一個(gè)或多個(gè)類型的工具欄,并且具有其它的窗口控件。如下所述,在一些實(shí)現(xiàn)中,父窗口 130的視覺和功能屬性由父窗口模塊250 (圖2)來 定義。
子窗口呈現(xiàn)區(qū)域132包括父窗口 130內(nèi)其中繪制有子窗口 134-144的視覺區(qū) 域。子窗口呈現(xiàn)區(qū)域132可具有各種視覺屬性或特征,諸如分隔各子窗口 134 - 144 的外邊界或內(nèi)邊界等。反之,子窗口呈現(xiàn)區(qū)域132也可沒有視覺屬性或特征。如下 所述,在一些實(shí)現(xiàn)中,子窗口呈現(xiàn)區(qū)132的視覺和功能屬性(若有)由父窗口模塊 250 (圖2)定義。
在于此所描述的各種實(shí)現(xiàn)中,每個(gè)子窗口 134-144根據(jù)與該子窗口相關(guān)聯(lián)的
多種視覺/功能模式中的一種來顯示。 一般而言,每種模式為其關(guān)聯(lián)子窗口指定窗 口的視覺布局。例如, 一種模式可指定其關(guān)聯(lián)子窗口的大小、形狀、和/或顏色、 以及其關(guān)聯(lián)子窗口內(nèi)的窗口控件的類型、數(shù)目、和/或排列。
另外,每種模式可指定通過呈現(xiàn)在其關(guān)聯(lián)子窗口中的窗口控件將對(duì)用戶可用 的功能或功能組合。 一種模式可指定文本或圖形信息將如何在其關(guān)聯(lián)子窗口中顯 示。 一種模式可指定其關(guān)聯(lián)子窗口是否大小可調(diào),以及在該子窗口可調(diào)的情況下指 定調(diào)整該子窗口的方式和該可調(diào)子窗口的大小范圍。 一種模式可指定其關(guān)聯(lián)子窗口 是否是用戶和/或系統(tǒng)可選的。 一種模式還可指定子窗口是否將被隱藏,即不被顯
示。如下所述,在一些實(shí)現(xiàn)中,子窗口的模式由作為GUI管理系統(tǒng)118的一部分 或被其引用的子窗口模塊(圖2)定義。
在一些實(shí)現(xiàn)中,子窗口 133- 144根據(jù)預(yù)定的顯示方案排列在子窗口呈現(xiàn)區(qū)域 132內(nèi)。 一般而言,顯示方案指定所要求的子窗口呈現(xiàn)區(qū)域132內(nèi)各子窗口之間的 空間關(guān)系。例如,但不限于,顯示方案可指定子窗口是否可彼此重疊、子窗口是否 需要占據(jù)整個(gè)子窗口呈現(xiàn)區(qū)域、子窗口將相互垂直還是水平地排列在子窗口呈現(xiàn)區(qū) 域中等。
例如,根據(jù)在此被稱為"全顯示區(qū)域方案"的一種顯示方案,所有子窗口以 完全占據(jù)子窗口呈現(xiàn)區(qū)域132內(nèi)所有可用顯示領(lǐng)地并且沒有子窗口相互重疊的方 式排列在子窗口呈現(xiàn)區(qū)域內(nèi)。
根據(jù)在此被稱為"平鋪方案"的另一顯示方案,所有子窗口都是多邊形形狀 并且以沒有子窗口相互重疊的方式排列在子窗口呈現(xiàn)區(qū)域內(nèi)。
根據(jù)在此被稱為"垂直矩形平鋪方案"的又一顯示方案,所有子窗口都是矩 形形狀并且以沒有子窗口重疊的方式垂直排列在子窗口呈現(xiàn)區(qū)域132內(nèi)。圖1示出 了垂直矩形平鋪方案。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,有許多可能的各種形狀和大小窗口的組合和排 列,它們可由顯示方案來指定。
通常,當(dāng)一個(gè)或多個(gè)子窗口 134 - 144的大小被改變時(shí),諸如當(dāng)子窗口134-144中一個(gè)的模式改變時(shí),將需要調(diào)整其它子窗口中一個(gè)或多個(gè)的大小,從而使所 有子窗口將繼續(xù)根據(jù)當(dāng)前顯示方案來顯示。例如,根據(jù)圖1所示的垂直矩形平鋪方 案,當(dāng)一個(gè)子窗口 134- 144的大小被改變時(shí),將需要改變其它子窗口中一個(gè)或多 個(gè)的大小,從而使所有子窗口 134- 144繼續(xù)以完全占據(jù)子窗口呈現(xiàn)區(qū)域132的非
重疊方式來顯示。
根據(jù)在此所述的一些實(shí)現(xiàn),維持顯示方案是GUI管理模塊118的功能。如將 認(rèn)識(shí)到的,GUI管理模塊118維持顯示方案的確切方式可能根據(jù)諸如被維持的顯示 方案的類型、正在使用的窗口化系統(tǒng)的類型等內(nèi)容、以及其它因素而變化。然而, 根據(jù)在此所述的各種實(shí)現(xiàn),GUI管理模塊118通過以使得子窗口 134- 144在子窗 口呈現(xiàn)區(qū)域132內(nèi)的排列遵照該顯示方案的方式改變一個(gè)或多個(gè)子窗口 134 -144 的大小和/或模式,或者策動(dòng)它們的改變,來維持顯示方案。
根據(jù)一些實(shí)現(xiàn),GUI管理模塊118使用子窗口分級(jí)次序來確定哪個(gè)或哪些子 窗口 134- 144應(yīng)該改變其大小和/或模式。 一般而言,子窗口分級(jí)次序指定選擇子 窗口以進(jìn)行模式改變的優(yōu)選次序。
現(xiàn)在轉(zhuǎn)到圖2,其中顯示了示出GUI管理模塊118的一個(gè)具體實(shí)現(xiàn)的各種細(xì) 節(jié)的框圖。如圖所示,GUI管理模塊118包括或引用顯示方案管理模塊248、多個(gè) (N個(gè))子窗口模塊252-262,以及父窗口模塊250。
如圖2所示,每個(gè)子窗口模塊252 - 262與單個(gè)子窗口 134 - 144相關(guān)聯(lián),并 且包括定義與該子窗口模塊相關(guān)聯(lián)的子窗口的視覺和/或功能特性的信息。例如, 在一個(gè)實(shí)現(xiàn)中,每個(gè)子窗口模塊包括指定與該子窗口模塊相關(guān)聯(lián)的子窗口的所有可 能的視覺模式。此外,每個(gè)子窗口模塊可包括在定義每種可能的模式的視覺呈現(xiàn)時(shí) 使用的各種數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、和/或邏輯。如前所述的,在一些實(shí)現(xiàn)中,這些數(shù)據(jù) 和邏輯由窗口化子系統(tǒng)122在于子窗口呈現(xiàn)區(qū)域132中顯示子窗口時(shí)全部或部分地 使用。
在一些實(shí)現(xiàn)中,每個(gè)子窗口模塊252-262包括或引用包含用于指定其關(guān)聯(lián)子 窗口的繪制的過程、功能、例程、數(shù)據(jù)等的計(jì)算機(jī)可執(zhí)行指令(即,"代碼")。 然而,在現(xiàn)在將描述的實(shí)現(xiàn)中,每個(gè)子窗口模塊252-262包括或引用在繪制子窗 口時(shí)由GUI管理模塊118和/或窗口化子系統(tǒng)122訪問或使用的各種數(shù)據(jù)和/或邏 輯。
一般而言,父窗口模塊250包括定義父窗口 130的視覺和/或功能特性的信息。 例如,在一個(gè)實(shí)現(xiàn)中,父窗口模塊250包括指定通過呈現(xiàn)在父窗口 130中的窗口控 件將對(duì)用戶可用的功能或功能組合的信息。父窗口模塊250可指定文本或圖形信息 在父窗口 250中將如何呈現(xiàn)。父窗口模塊250可指定父窗口 250是否大小可調(diào),以 及在父窗口 250可調(diào)時(shí)指定調(diào)整父窗口 250的方式。父窗口模塊250還可指定輸入 方法,例如是否及如何實(shí)行自諸如鍵盤、指示筆和/或鼠標(biāo)等設(shè)備的輸入。父窗口模塊250當(dāng)然還可指定父窗口 130的其它視覺和/或功能特性。
圖3示出了子窗口模塊252的一個(gè)示例性實(shí)現(xiàn)。將會(huì)認(rèn)識(shí)到的是,子窗口模塊252在此被描述為代表性子窗口模塊。關(guān)于子窗口模塊242描述的相同特征和功能可能出現(xiàn)在子窗口模塊252 - 262的任意一個(gè)中,或出現(xiàn)在作為GUI管理模塊118之外的系統(tǒng)的一部分或與其結(jié)合使用的子窗口模塊中。
圖3所示的子窗口模塊252的實(shí)現(xiàn)包括,但并不限于,子窗口模式升級(jí)/降級(jí)序列308、當(dāng)前模式指針310、子窗口呈現(xiàn)數(shù)據(jù)312、子窗口屬性數(shù)據(jù)314、以及模式數(shù)據(jù)316。
子窗口模式升級(jí)/降級(jí)序列308指定與子窗口模塊252相關(guān)聯(lián)的子窗口的所有 可用模式。例如,但不限于,圖3所示的該示例性子窗口模式升級(jí)/降級(jí)序列310 指示與子窗口模塊252相關(guān)聯(lián)的子窗口具有5種可能模式模式1U、模式2b、模 式3S、模式5M以及模式6。
子窗口模式升級(jí)/降級(jí)序列310還指定了該子窗口的各模式的升級(jí)和降級(jí)次 序,這在圖3中由在各模式之間延伸的箭頭線指示。例如,子窗口模式升級(jí)/降級(jí) 序列310指示如果與子窗口模塊300相關(guān)聯(lián)的子窗口當(dāng)前處于模式2b,則在降一 級(jí)時(shí)可降級(jí)到模式1U,或者在升一級(jí)時(shí)可升級(jí)到模式3S。類似地,如果與子窗口 模塊252相關(guān)聯(lián)的子窗口當(dāng)前處于模式5M,則子窗口模式升級(jí)/降級(jí)序列310指示 該子窗口在降一級(jí)時(shí)可降級(jí)到模式3S,或在升一級(jí)時(shí)可升級(jí)到模式6。
當(dāng)前模式指針310指定與子窗口模塊252相關(guān)聯(lián)的子窗口的當(dāng)前模式。例如, 圖3所示的當(dāng)前模式指針310指示與子窗口模塊252相關(guān)聯(lián)的子窗口當(dāng)前是根據(jù)模 式2b來顯示的。當(dāng)與子窗口模塊252相關(guān)聯(lián)的子窗口的模式升級(jí)或降級(jí)時(shí),當(dāng)前 模式指針310隨后被適當(dāng)?shù)匦薷囊灾甘驹撟兓?br>
通常但并不一定,各模式根據(jù)每種模式可能或?qū)?huì)需要多大的顯示領(lǐng)地排序 成子窗口模式序列252。在這些實(shí)現(xiàn)中,需要較大量顯示領(lǐng)地的模式將被認(rèn)為是比 需要較少顯示領(lǐng)地的模式"排序更高"的模式。在一些情形中, 一種或多種模式可 以大小不一。在這些情形中,各模式的最大大小可被用于確定或指定升級(jí)/降級(jí)序 列中各模式的相對(duì)排序。例如,在一些實(shí)現(xiàn)中,最大可變大小大于第二模式的固定 或最大可變大小的第一模式可被認(rèn)為比第二模式的排序更高。
通常但并不一定,在將子窗口從一種模式變?yōu)榱硪环N模式時(shí),該子窗口隨后 根據(jù)需要更多還是更少顯示領(lǐng)地來從其當(dāng)前模式轉(zhuǎn)換到其模式序列中下一更高或 更低的模式。
子窗口呈現(xiàn)區(qū)域312包括定義子窗口呈現(xiàn)區(qū)域132中子窗口的當(dāng)前大小和位 置的各種數(shù)據(jù)。子窗口屬性數(shù)據(jù)314包括在如下所述的確定子窗口分級(jí)時(shí)使用的各 種數(shù)據(jù)。這些數(shù)據(jù)可包括但并不限于,該子窗口何時(shí)為焦點(diǎn)窗口時(shí),該子窗口作為 焦點(diǎn)窗口有多長(zhǎng)時(shí)間,該子窗口作為焦點(diǎn)窗口有多頻繁等、或各種其它數(shù)據(jù)。
模式數(shù)據(jù)316包括定義該子窗口每種模式的特征和功能的數(shù)據(jù)。該數(shù)據(jù)可包 括為每種模式定義諸如將要繪制的窗口控件的數(shù)目和排列、該子窗口是否大小可 調(diào)、大小可調(diào)窗口的最大和/或最小大小等的參數(shù)。
模式數(shù)據(jù)316還可指定一給定模式是否為用戶可選和/或系統(tǒng)可選。用戶可選 模式(例如,模式1U)是可基于用戶與計(jì)算設(shè)備100的交互所作的動(dòng)可使子窗口 升級(jí)或降級(jí)到的模式。反之,系統(tǒng)可選模式(例如,模式3S)是單純基于用戶與 計(jì)算設(shè)備100的交互所作的動(dòng)作不能使子窗口升級(jí)或降級(jí)到的模式。確切而言,系 統(tǒng)可選模式是子窗口基于由調(diào)整大小邏輯460 (以下關(guān)于圖4所述)定義或?qū)崿F(xiàn)的 指令被升級(jí)或降級(jí)到的模式。
根據(jù)一些實(shí)現(xiàn),每個(gè)子窗口模塊的子窗口模式升級(jí)/降級(jí)序列由在主模式升級(jí)/ 降級(jí)序列中指定的模式序列的子集構(gòu)成。例如,子窗口模式升級(jí)/降級(jí)序列310由 圖3所示的主模式升級(jí)/降級(jí)序列320的模式的子集構(gòu)成。
子窗口模塊可以用多種方式來實(shí)現(xiàn)。例如,子窗口模塊可實(shí)現(xiàn)為面向?qū)ο蟓h(huán) 境中的對(duì)象,并被包含在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中。然而,應(yīng)該理解的是,在 此關(guān)于子窗口模塊所描述的功能還可以用非面向?qū)ο蟮姆绞絹韺?shí)現(xiàn),并且可在面向 對(duì)象及非面向?qū)ο蟮仍S多類型的系統(tǒng)上實(shí)現(xiàn)。
現(xiàn)在轉(zhuǎn)到圖4,其中示出了窗口管理模塊248的一個(gè)示例性實(shí)現(xiàn)。窗口管理模 塊248包括,但并不限于,子窗口分級(jí)次序420、子窗口分級(jí)430、像素池440、 分級(jí)邏輯450、以及調(diào)整大小邏輯460,現(xiàn)在將對(duì)其分別進(jìn)行描述。
子窗口分級(jí)次序420指定顯示和隱藏的子窗口的次序。例如,子窗口 134-144 (CW(l)-CW(6))在子窗口分級(jí)次序420中被示出。 一般而言,子窗口分級(jí)次序 420在諸如需要一個(gè)或多個(gè)窗口的模式改變以維持顯示方案時(shí)指定各子窗口被選 擇進(jìn)行模式改變的次序。
子窗口分級(jí)次序420中各子窗口的次序可以各種方法來確定。例如,但不限 于,子窗口分級(jí)次序420中各子窗口的次序可根據(jù)對(duì)子窗口使用的歷史分析、對(duì)子 窗口模式改變的歷史分析、或各種其它分析、算法、和/或探試來確定。確定子窗 口分級(jí)次序420中各子窗口的次序的確切方式可根據(jù)諸如,但并不限于,要遵守的特定顯示方案、其中采用GUI 106的計(jì)算設(shè)備、計(jì)算設(shè)備100的預(yù)期用途等、以及
各種其它功能要求而變化。
在一些實(shí)現(xiàn)中,子窗口分級(jí)次序420是使用子窗口分級(jí)430來確定的。 一般 而言,子窗口分級(jí)430包括子窗口的一個(gè)或多個(gè)分級(jí)432 - 436。和子窗口分級(jí)次 序420 —樣,每個(gè)子窗口分級(jí)432-436可使用各種分析、算法、和/或探試以各種 方法來確定。
作為一個(gè)示例,子窗口分級(jí)432被示為是根據(jù)每個(gè)子窗口最近被使用是多久 以前來確定。更具體地,在該實(shí)現(xiàn)中,子窗口分級(jí)432從最近使用時(shí)間最遠(yuǎn)的子窗 口 (CW(l))到最近使用時(shí)間最近的子窗口 (CW(5))來排序。與之相對(duì),子窗口 分級(jí)434被示為根據(jù)各子窗口的使用頻率來確定。更具體地,在該實(shí)現(xiàn)中,子窗口 分級(jí)434是從最不常使用的子窗口 (CW(2))到最常使用的子窗口 (CW(l))來排 序。在該實(shí)現(xiàn)中,子窗口分級(jí)436是基于其子窗口排序次序308中每個(gè)子窗口的當(dāng) 前模式的位置來確定的。如將可認(rèn)識(shí)到的,子窗口排序可基于各種其它準(zhǔn)則。
在一些實(shí)現(xiàn)中,子窗口分級(jí)中的每個(gè)子窗口基于該分級(jí)中各子窗口的位置被 分配一分級(jí)值。如下所述,這些分級(jí)值可被用于確定子窗口分級(jí)次序420。在一個(gè) 實(shí)現(xiàn)中,分級(jí)值是從子窗口分級(jí)中的第一等級(jí)窗口到子窗口分級(jí)中最末等級(jí)窗口以 降序向各子窗口分級(jí)中的各窗口分配的。作為一個(gè)示例,子窗口分級(jí)430的每個(gè)子 窗口分級(jí)中的第一子窗口被示為具有分級(jí)值6 (即,RV=6),每個(gè)子窗口分級(jí)中 的第二子窗口被示為具有分級(jí)值5,以降序依此類推到每個(gè)子窗口分級(jí)中被示為具 有分級(jí)值1的第6個(gè)子窗口。將會(huì)認(rèn)識(shí)到的是,關(guān)于圖4示出和描述的分級(jí)值僅是 示例性的。
在一些實(shí)現(xiàn)中,每個(gè)子窗口分級(jí)具有相關(guān)聯(lián)的分級(jí)權(quán)重。例如,子窗口分級(jí) 432被示為具有權(quán)重5 (W產(chǎn)5),子窗口分級(jí)434被示為具有權(quán)重3 (W2=3),并 且子窗口分級(jí)434被示為具有權(quán)重1 (WN=1)。將會(huì)認(rèn)識(shí)到的是,關(guān)于圖4示出 和描述的分級(jí)權(quán)重僅是示例性的。
如下所述,分級(jí)權(quán)重可用于確定子窗口分級(jí)次序420。與每個(gè)子窗口分級(jí)相關(guān) 聯(lián)的分級(jí)權(quán)重可以用各種方法確定。例如,但不限于,分級(jí)權(quán)重可使用各種分析、 算法、和/或探試來確定。在一些實(shí)現(xiàn)中,與每個(gè)子窗口分級(jí)相關(guān)聯(lián)的分級(jí)權(quán)重與 在確定子窗口分級(jí)次序420時(shí)每個(gè)子窗口分級(jí)的相對(duì)重要性成比例。
一經(jīng)確定,分級(jí)權(quán)重可以是靜態(tài)或動(dòng)態(tài)的。例如,在一個(gè)實(shí)現(xiàn)中,分級(jí)權(quán)重 可以被"硬編碼"。在另一實(shí)現(xiàn)中,分級(jí)權(quán)重可以主導(dǎo)是確定的,但可由諸如用戶或管理員、或由遠(yuǎn)程權(quán)重更新機(jī)制調(diào)節(jié)。在又一實(shí)現(xiàn)中,分級(jí)權(quán)重可以由監(jiān)視GUI
106、計(jì)算設(shè)備100的各種屬性及與它們的交互、和/或計(jì)算設(shè)備100內(nèi)部或外部的 其它屬性或交互的算法動(dòng)態(tài)地調(diào)整。
如上所述,在一些實(shí)現(xiàn)中,子窗口分級(jí)次序420是使用分級(jí)權(quán)重和/或分級(jí)值 來確定的。例如,但不限于,在一個(gè)實(shí)現(xiàn)中,子窗口分級(jí)次序420是通過基于分級(jí) 權(quán)重和分級(jí)值為每個(gè)窗口建立分級(jí)分?jǐn)?shù)來確定的。子窗口分級(jí)次序420然后通過根 據(jù)該分級(jí)分?jǐn)?shù)將各窗口排序來確定。
有許多使用分級(jí)權(quán)重和分級(jí)值來建立分級(jí)分?jǐn)?shù)的方法。例如,但不限于,在 一個(gè)實(shí)現(xiàn)中,是通過將子窗口的分級(jí)值乘以與包括該子窗口的子窗口分級(jí)相關(guān)聯(lián)的 分級(jí)權(quán)重來確定每個(gè)子窗口分級(jí)中每個(gè)子窗口的加權(quán)分級(jí)值。然后每個(gè)子窗口的分 級(jí)分?jǐn)?shù)將可通過累加該子窗口在每個(gè)子窗口分級(jí)中的加權(quán)分級(jí)來確定。
例如,使用圖4中所給出的示例性數(shù)字,子窗口分級(jí)432中的CW1具有加權(quán) 分級(jí)值三十(30),這是通過將CW(1)在子窗口分級(jí)432中的分級(jí)值六(6)乘以 子窗口分級(jí)432的權(quán)重五(5)來確定的。子窗口分級(jí)434中的CW1具有加權(quán)分 級(jí)值三(3),這是通過將CW(1)在子窗口分級(jí)434中的分級(jí)值一 (1)乘以子窗口 分級(jí)434的權(quán)重三(3)來確定的。最后,子窗口分級(jí)436中的CW1具有加權(quán)分 級(jí)值六(6),這是通過將CW(1)在子窗口分級(jí)436中的分級(jí)值六(6)乘以子窗口 分級(jí)436的權(quán)重三(1)來確定的。最后,累加CW1對(duì)應(yīng)于每個(gè)子窗口分級(jí)的加 權(quán)分級(jí)值得到CW1的分級(jí)分?jǐn)?shù)三十九(39)(即,30 + 6 + 6 = 39)。
可對(duì)每個(gè)子窗口進(jìn)行類似計(jì)算,從而得到CW2的分級(jí)分?jǐn)?shù)三十(30) 、 CW3 的分級(jí)分?jǐn)?shù)三十四(34) 、 CW4的分級(jí)分?jǐn)?shù)三十(31) 、 CW5的分級(jí)分?jǐn)?shù)十五(15)、 以及CW6的分級(jí)分?jǐn)?shù)四十四(44)。使用這些算出的分級(jí)分?jǐn)?shù),然后根據(jù)這些子 窗口的分級(jí)分?jǐn)?shù)按降序?qū)⑺鼈兣帕性谧哟翱诜旨?jí)次序420中。
根據(jù)一些實(shí)現(xiàn),子窗口分級(jí)次序420、子窗口分級(jí)430、分級(jí)權(quán)重、分級(jí)值、 和/或加權(quán)分級(jí)值的確定可全部或部分地由分級(jí)邏輯450來執(zhí)行。
根據(jù)在以下具體描述的一些實(shí)現(xiàn),窗口管理模塊248使用像素池440來維持 顯示方案。 一般而言,像素池440提供用于跟蹤子窗口呈現(xiàn)區(qū)域122內(nèi)顯示領(lǐng)地的 機(jī)制。更具體地,在一些實(shí)現(xiàn)中,像素池440提供用于跟蹤子窗口呈現(xiàn)區(qū)域122 內(nèi)被分配給各子窗口的顯示領(lǐng)地的量。
有許多可使用像素池440來跟蹤顯示領(lǐng)地的分配的方法。例如,但不限于, 在一個(gè)實(shí)現(xiàn)中,像素池440指定子窗口呈現(xiàn)區(qū)域122內(nèi)的顯示領(lǐng)地是"欠分配"、"過分配"、還是"平衡"。如在此所使用的,"欠分配"是指分配給各子窗口的 顯示領(lǐng)地小于子窗口呈現(xiàn)區(qū)域122內(nèi)顯示領(lǐng)地的總量。如在此所使用的,"過分配"
是指分配給各子窗口的顯示領(lǐng)地大于子窗口呈現(xiàn)區(qū)域122內(nèi)顯示領(lǐng)地的總量。在一 些實(shí)現(xiàn)中,像素池440可指定欠分配顯示領(lǐng)地的量或過分配顯示領(lǐng)地的量。如在此 所使用的,"平衡"是指分配給各子窗口的顯示領(lǐng)地等于子窗口呈現(xiàn)區(qū)域122內(nèi)顯 示領(lǐng)地的總量。
關(guān)于像素池440使用以表達(dá)顯示領(lǐng)地單位可以改變。例如,在一些實(shí)現(xiàn)中, 顯示領(lǐng)地可以用像素的形式來表達(dá)。在其它實(shí)現(xiàn)中,顯示領(lǐng)地可以用像素行的形式 來表達(dá)。以像素行表達(dá)顯示領(lǐng)地對(duì)于其中子窗口呈現(xiàn)區(qū)域122的寬度和/或高度保 持恒定的顯示方案尤其有用。在其它實(shí)現(xiàn)中,顯示領(lǐng)地可以用與像素?zé)o關(guān)的單位來 表達(dá)。由此,雖然以像素或像素行的形式描述了各種實(shí)現(xiàn),然而應(yīng)該認(rèn)識(shí)到的是, 這些實(shí)現(xiàn)同樣地也可使用像素或像素行之外的單位。
根據(jù)一些實(shí)現(xiàn),窗口管理模塊248使用調(diào)整大小邏輯460來維持顯示方案。 一般而言,調(diào)整大小邏輯460指定用于維持顯示方案的各種操作、算法、例程等。 例如,根據(jù)一些實(shí)現(xiàn),調(diào)整大小邏輯460實(shí)現(xiàn)圖5-7中所示的全部或部分操作流 程及操作,現(xiàn)在將對(duì)其各自進(jìn)行描述。
圖5 - 7示出了包括可在管理和呈現(xiàn)GUI時(shí)執(zhí)行的各種操作的操作流程。以下 參照?qǐng)D1的計(jì)算設(shè)備IOO對(duì)圖5-7進(jìn)行描述。具體地,參照GUI管理模塊118對(duì) 圖5-7進(jìn)行描述。然而,應(yīng)該理解的是,在圖5-7中闡述的操作流程并不旨在限 定于由GUI管理模塊118執(zhí)行或在計(jì)算設(shè)備100中執(zhí)行。在圖5 -7中闡述的任何 操作流程、或在這些操作流程中描述的任何個(gè)別操作可在包括分布式系統(tǒng)在內(nèi)的各 種其它系統(tǒng)中實(shí)現(xiàn)。另外,應(yīng)該理解的是,雖然在圖5-7中示出的每個(gè)操作流程 指示特定次序的操作執(zhí)行,然而,在其它實(shí)現(xiàn)中,這些操作可以被不同地排序。
圖5示出了包括可由窗口管理模塊248響應(yīng)于檢測(cè)到或發(fā)生窗口調(diào)整大小事 件506所執(zhí)行的各種操作的操作流程500。根據(jù)一些實(shí)現(xiàn),操作流程500由調(diào)整大 小邏輯460 (圖4)定義和/或?qū)崿F(xiàn)。
一般而言,窗口調(diào)整大小事件可以是導(dǎo)致向窗口化子系統(tǒng)122或GUI管理模 塊118請(qǐng)求改變窗口大小的各種事件中的任何一種。例如,但不限于,在父窗口 130或子窗口 134 - 144之一包括某種窗口調(diào)整大小控件的情形中,用戶對(duì)該控件 的調(diào)用或與該控件的交互可導(dǎo)致窗口調(diào)整大小事件。在另一示例中,由用戶交互或 由GUI管理模塊118導(dǎo)致的子窗口模式改變可導(dǎo)致或請(qǐng)求子窗口大小的改變,由此導(dǎo)致窗口調(diào)整大小事件。
根據(jù)一些實(shí)現(xiàn),當(dāng)調(diào)整大小事件發(fā)生時(shí),像素池440將被更新以反映將由該
調(diào)整大小事件導(dǎo)致的顯示領(lǐng)地的變化。在調(diào)整大小事件與調(diào)整父窗口 130大小有關(guān) 的情形中,父窗口模塊250中定義父窗口 130大小的一個(gè)或多個(gè)參數(shù)將被更新以反 映該調(diào)整大小,并且像素池440將被相應(yīng)地更新。在調(diào)整大小事件與調(diào)整子窗口大 小有關(guān)的情形中,與該子窗口相關(guān)聯(lián)的子窗口模塊中定義該子窗口大小的一個(gè)或多 個(gè)參數(shù)將被更新以反映該調(diào)整大小,并且像素池440將被相應(yīng)地更新。如下所述, 操作流程500中此時(shí)通常將不發(fā)生顯示器104上子窗口或父窗口的實(shí)際調(diào)整大小。 確切而言,顯示器104上子窗口或父窗口的實(shí)際調(diào)整大小通常發(fā)生在以下重畫操作 526。
如圖所示,當(dāng)調(diào)整大小事件發(fā)生時(shí),在操作508作出關(guān)于該窗口調(diào)整大小事 件與父窗口 130還是與子窗口 134- 144之一有關(guān)的判定。如果判定該窗口調(diào)整大 小事件與父窗口 130有關(guān),則操作流程500進(jìn)入如下所述的操作518。然而,如果 在操作508判定該窗口調(diào)整大小事件與子窗口 134- 144有關(guān),則操作流程500進(jìn) 入分級(jí)更新操作510。
在分級(jí)更新操作510,子窗口分級(jí)430 (圖4)根據(jù)任何確定或定義分級(jí)432-436的分析、算法、和/或探試被更新。接下來,在加權(quán)分級(jí)值操作512,為每個(gè)子 窗口確定加權(quán)分級(jí)值。然后在分級(jí)分?jǐn)?shù)操作514為每個(gè)子窗口確定分級(jí)分?jǐn)?shù)。然后 子分級(jí)次序420 (圖4)根據(jù)在分級(jí)分?jǐn)?shù)操作516確定的分級(jí)分?jǐn)?shù)在分級(jí)次序操作 516被更新。在次序操作516之后,操作流程500進(jìn)入操作518。
根據(jù)其它實(shí)現(xiàn),操作510-516可在操作流程500之外發(fā)生。例如,在一些實(shí) 現(xiàn)中,操作510-516可在子窗口的大小已改變時(shí),諸如在該子窗口被調(diào)整大小或 其模式已被改變時(shí)發(fā)生。在其它實(shí)現(xiàn)中,操作510-516可以不管在操作508對(duì)是 關(guān)于父窗口 130還是子窗口 134- 144發(fā)生了調(diào)整大小事件的判定,或在該判定之 外,在定期間隔發(fā)生。在其它實(shí)現(xiàn)中,操作510-516的執(zhí)行可由某些其它事件或 調(diào)度來觸發(fā)。
在操作518,作出關(guān)于像素池440中像素是過分配還是欠分配的判定。如果判 定像素池400中像素為欠分配,則操作流程500進(jìn)入如下所述的分布像素操作520。 如果判定像素池400中像素為過分配,則操作流程500進(jìn)入如下所述的獲取像素操 作522。
在分布像素操作520,執(zhí)行各種操作以選擇要接收過分配的像素的一個(gè)或多個(gè)子窗口,并將這些像素分配給所選窗口。換言之,在操作520, 一個(gè)或多個(gè)子窗口
被選擇以增大其大小,并從像素池440取出像素以適應(yīng)該增大。
如上所述,根據(jù)一些實(shí)現(xiàn),增大所選子窗口的大小包括增大所選子窗口模塊
的子窗口呈現(xiàn)數(shù)據(jù)312 (圖3)中定義所選子窗口大小的一個(gè)或多個(gè)參數(shù)。
分布像素操作520可以用多種方法來執(zhí)行。執(zhí)行分布像素操作520的確切方
式可取決于,但并不限于,諸如正被使用的特定顯示方案和特定程序/硬件環(huán)境以
及GUI管理模塊118的實(shí)現(xiàn)等。然而,在一個(gè)實(shí)現(xiàn)中,分布像素操作520根據(jù)以
下關(guān)于圖6所述的操作流程600來實(shí)現(xiàn)。
在分布像素操作520之后,在操作524作出關(guān)于像素池440是否過分配的判
定。如果在操作524判定像素池440過分配,則操作流程500進(jìn)入獲取像素操作
522。如果在操作524判定像素池440沒有過分配,則操作流程500進(jìn)入如下所述
的調(diào)整操作524。
在獲取像素操作522,執(zhí)行各種操作以選擇要從其獲取欠分配像素的一個(gè)或多 個(gè)子窗口,并為像素池440獲取這些像素。換言之,在操作522, 一個(gè)或多個(gè)子窗 口被選擇以減小其大小,并且從所選子窗口取出像素并將這些像素給像素池。
如上所述,根據(jù)一些實(shí)現(xiàn),減小所選子窗口大小包括減小所選子窗口模塊的 子窗口呈現(xiàn)數(shù)據(jù)312中定義所選子窗口大小的一個(gè)或多個(gè)參數(shù)。
獲取像素操作522可以用多種方法來執(zhí)行。執(zhí)行獲取像素操作522的確切方 式可取決于,但并不限于,諸如正被使用的特定顯示方案和特定編程/硬件環(huán)境以 及GUI管理模塊118的實(shí)現(xiàn)。然而,在一個(gè)實(shí)現(xiàn)中,獲取像素操作522根據(jù)以下 關(guān)于圖7所述的操作流程700來實(shí)現(xiàn)。
在獲取像素操作522之后,在操作526作出關(guān)于像素池440是否欠分配的判 定。如果在操作526判定像素池440欠分配,則操作流程500進(jìn)入如上所述的分布 像素操作520。如果在操作526判定像素池440沒有欠分配,則操作流程500進(jìn)入 如下所述的調(diào)整操作524。
在調(diào)整操作524,調(diào)整所有子窗口 134- 144的位置。在一些實(shí)現(xiàn)中,調(diào)整子 窗口的位置包括改變與該子窗口相關(guān)聯(lián)的子窗口模塊252 (圖2)的子窗口呈現(xiàn)數(shù) 據(jù)312 (圖3)中定義該子窗口位置的一個(gè)或多個(gè)參數(shù)。
在調(diào)整操作524之后,在子窗口呈現(xiàn)區(qū)域132中重畫所有子窗口,操作流程 500結(jié)束。
現(xiàn)在轉(zhuǎn)到圖6,如上所述,其中示出了包括可在實(shí)現(xiàn)操作流程500的分布像素
操作520時(shí)執(zhí)行的各種操作的操作流程600。根據(jù)一些實(shí)現(xiàn),操作流程500由調(diào)整 大小邏輯460 (圖4)定義和/或?qū)崿F(xiàn)。
如圖所示,在操作流程600的開始,子窗口選擇操作610選擇子窗口分級(jí)次 序420 (圖4)中最高分級(jí)的子窗口。接著,在操作612,作出所選子窗口是否為 焦點(diǎn)子窗口的判定。如在此所使用的,焦點(diǎn)子窗口是活動(dòng)的接收用戶輸入的子窗口。 根據(jù)圖6所示的分布像素操作520的實(shí)現(xiàn),在一時(shí)刻僅有一個(gè)子窗口將為活動(dòng)的以 接收用戶輸入。因此,在一時(shí)刻將僅有一個(gè)用戶窗口為焦點(diǎn)子窗口。
在一些實(shí)現(xiàn)中,關(guān)于所選子窗口是否為焦點(diǎn)子窗口的判定是通過查詢窗口化 子系統(tǒng)122來作出的。在一些實(shí)現(xiàn)中,該判定是通過檢查所選窗口的子窗口屬性數(shù) 據(jù)314中的焦點(diǎn)屬性來作出的。在其它實(shí)現(xiàn)中,可以用其它方法作出關(guān)于所選子窗 口是否為焦點(diǎn)子窗口的判定。
如果在操作612判定所選子窗口是焦點(diǎn)子窗口,則操作流程600進(jìn)入子窗口 選擇操作630,在此子窗口分級(jí)次序420中次最高分級(jí)的子窗口被選擇。換言之, 在操作630檢查子窗口分級(jí)次序420,并且選擇在操作流程600中先前選擇的子窗 口上分級(jí)次最高的子窗口。應(yīng)該理解的是,在一時(shí)刻僅有一個(gè)子窗口被選中。由此, 當(dāng)新的子窗口被選中時(shí),先前選中的子窗口不再被認(rèn)為是選中的子窗口。
然而,如果在操作612判定所選子窗口不是焦點(diǎn)子窗口,則操作流程600進(jìn) 入操作614。在操作614,作出關(guān)于所選子窗口的當(dāng)前模式是否指定該所選子窗口 的大小可變的判定。換言之,作出關(guān)于所選子窗口的大小在其當(dāng)前模式中是否可變 的判定。在一個(gè)實(shí)現(xiàn)中,該判定是通過檢查與所選窗口相關(guān)聯(lián)的子窗口模塊的模式 數(shù)據(jù)316中的大小屬性來作出的。
如果判定所選子窗口的大小在其當(dāng)前模式中可變,則操作流程600進(jìn)入如下 所述的操作616。然而,如果在操作614判定所選子窗口的大小在其當(dāng)前模式中不 可變,則操作流程600進(jìn)入如下所述的操作620。
在操作616,作出關(guān)于所選子窗口是否處于其可變大小的最大限度的判定。在 一個(gè)實(shí)現(xiàn)中,該判定是通過檢查與所選窗口相關(guān)聯(lián)的子窗口模塊的模式數(shù)據(jù)316 中的大小屬性來作出的。如果在操作616判定所選子窗口不是處于其可變大小的最 大限度,則操作流程600進(jìn)入如下所述的調(diào)整大小操作618。如果在操作616判定 所選子窗口處于其可變大小的最大限度,則操作流程600進(jìn)入如下所述的操作620。
在調(diào)整大小操作618,檢查像素池440以確定其中欠分配像素的量。如果欠分 配像素的量等于或大于將所選子窗口的大小增大為其可變大小的最大限度所需的像素?cái)?shù),則所選子窗口的大小被增大到其可變大小的最大限度。然而,如果欠分配 像素的量小于將所選子窗口的大小增大到其可變大小的最大限度所需的像素?cái)?shù),則 所選子窗口的大小被增大到可用的欠分配像素所允許的最大量。在一些實(shí)現(xiàn)中,以
上關(guān)于圖5所述的操作510-516中的任何或所有操作可在子窗口的調(diào)整大小之后 或與其相結(jié)合地來執(zhí)行。在調(diào)整大小操作618之后,操作流程600進(jìn)入如下所述的 操作622。
在操作620,作出所選子窗口是否能被升級(jí)到另一模式的判定。即,作出關(guān)于 所選子窗口是否能被升級(jí)到比所選子窗口的當(dāng)前模式需要更多顯示領(lǐng)地的更高次 序模式的判定。如果在操作620判定所選子窗口不能被升級(jí)到更高次序模式,則操 作流程進(jìn)入操作622。如果在操作620判定所選子窗口不能被升級(jí)到更高次序模式, 則操作流程進(jìn)入升級(jí)操作624。
在升級(jí)操作624,所選子窗口被升級(jí)到所選子窗口的升級(jí)/降級(jí)序列308中其 排序次最高的模式。在一些實(shí)現(xiàn)中,將所選子窗口升級(jí)到其次最高模式包括改變 與所選窗口相關(guān)聯(lián)的子窗口模塊中的當(dāng)前模式指針310;改變子窗口呈現(xiàn)數(shù)據(jù)312 中的適當(dāng)?shù)拇笮傩?;以及更新像素?40以反映分配給所選子窗口的像素量。在 一些實(shí)現(xiàn)中,以上關(guān)于圖5所述的操作510-516中的任何或所有操作可在所選子 窗口的升級(jí)之后或與其結(jié)合地來執(zhí)行。應(yīng)該認(rèn)識(shí)到的是,在升級(jí)操作624之后,像 素池440可能仍然保持欠分配,或者可能會(huì)過分配。在升級(jí)操作624之后,操作流 程600進(jìn)入操作622。
在操作622,作出關(guān)于像素池是否欠分配的判定。如果判定像素池440欠分配, 則操作流程600進(jìn)入如上所述的子窗口選擇操作630。如果判定像素池440沒有欠 分配,則操作流程600結(jié)束。
現(xiàn)在轉(zhuǎn)到圖7,如上所述,其中示出了包括可在實(shí)現(xiàn)操作流程500的獲取像素 操作522時(shí)執(zhí)行的各種操作的操作流程700。根據(jù)一些實(shí)現(xiàn),操作流程500由調(diào)整 大小邏輯460 (圖4)定義和/或?qū)崿F(xiàn)。
如圖所示,在操作流程700的開始,子窗口選擇操作710選擇子窗口分級(jí)次 序420 (圖4)中最低分級(jí)的子窗口。接著,在操作712,作出關(guān)于所選子窗口是 否為焦點(diǎn)子窗口的判定。
如果在操作712判定所選子窗口是焦點(diǎn)窗口,則操作流程700進(jìn)入子窗口選 擇操作730,在此子窗口分級(jí)次序420中次最低分級(jí)的子窗口被選擇。然而,如果 判定所選子窗口不是焦點(diǎn)窗口,則操作流程進(jìn)入操作714。
在操作714,作出關(guān)于所選子窗口的當(dāng)前模式是否指定該子窗口的大小可'變的 判定。在一個(gè)實(shí)現(xiàn)中,該判定是通過檢查與所選窗口相關(guān)聯(lián)的子窗口模塊的模式數(shù)據(jù)316中的大小屬性來作出的。
如果在操作714判定所選子窗口的大小在其當(dāng)前模式中可變,則操作流程700 進(jìn)入操作716。然而,如果在操作714判定所選子窗口的大小在其當(dāng)前模式中不可 變,則操作流程700進(jìn)入操作720。
在操作716,作出關(guān)于所選子窗口是否處于其可變大小的最大限度的判定。在 一個(gè)實(shí)現(xiàn)中,該判定是通過檢查與所選窗口相關(guān)聯(lián)的子窗口模塊的模式數(shù)據(jù)316 中的大小屬性來作出的。如果在操作716判定所選子窗口不是處于其可變大小的最 大限度,則操作流程700進(jìn)入調(diào)整大小操作718。如果在操作716判定所選子窗口 處于其可變大小的最大限度,則操作流程700進(jìn)入操作720。
在調(diào)整大小操作718,所選子窗口的大小被減小為其最小可變大小。在一些實(shí) 現(xiàn)中,以上關(guān)于圖5所述的操作510-516中的任何或所有操作可在所選子窗口的 調(diào)整大小之后或與其相結(jié)合地來執(zhí)行。在調(diào)整大小操作718之后,操作流程700 進(jìn)入如下所述的操作722。
在操作720,作出關(guān)于所選子窗口是否能被降級(jí)到另一模式的判定。即,作出 關(guān)于所選子窗口是否能被進(jìn)級(jí)到比其當(dāng)前模式需要更少顯示領(lǐng)地的較低次序模式 的判定。如果在操作720判定所選子窗口不能被進(jìn)級(jí)到較低次序模式,則操作流程 700進(jìn)入操作722。如果在操作720判定所選子窗口能被降級(jí)到較低次序模式,則 操作流程進(jìn)入降級(jí)操作724,在此所選子窗口被降級(jí)到升級(jí)/降級(jí)序列308中其排序 次最低的模式。
在一些實(shí)現(xiàn)中,將所選子窗口降級(jí)到其次最低次序模式包括改變與所選窗 口相關(guān)聯(lián)的子窗口模塊中的當(dāng)前模式指針310;改變子窗口呈現(xiàn)數(shù)據(jù)312中適當(dāng)?shù)?大小屬性;以及更新像素池440以反映從所選子窗口獲取的像素量。在一些實(shí)現(xiàn)中, 以上關(guān)于圖5所述的操作510 - 516中的任何或所有操作可在所選子窗口的降級(jí)之 后或與其相結(jié)合地來執(zhí)行。應(yīng)該認(rèn)識(shí)到的是,進(jìn)級(jí)操作724之后,像素池440可能 仍然保持過分配,或者可能會(huì)欠分配。
在操作722,作出關(guān)于像素池是否過分配的判定。如果判定像素池440過分配, 則操作流程700進(jìn)入如上所述的子窗口選擇操作730。如果判定像素池440沒有過 分配,操作流程700結(jié)束。
雖然在附圖和以上具體說明中對(duì)一些具體示例性實(shí)現(xiàn)進(jìn)行了示出和描述,但將會(huì)理解的是,在此所描述的主題并不限于所述的具體實(shí)現(xiàn)。確切而言,在此所描述的主題能夠進(jìn)行大量的重新布置、修改和替換而不會(huì)背離由所附權(quán)利要求闡述和定義的精神實(shí)質(zhì)。相應(yīng)地,本發(fā)明的范圍不應(yīng)由以上討論的具體示例性實(shí)現(xiàn)來限定, 而應(yīng)該僅由以下闡述的權(quán)利要求及其等效方案來定義。
權(quán)利要求
1.一種方法,包括根據(jù)一顯示方案在父窗口中顯示多個(gè)子窗口,每個(gè)子窗口可以用與該子窗口相關(guān)聯(lián)的一組經(jīng)排序模式中的一種模式來顯示,每種模式指定該模式所相關(guān)聯(lián)的子窗口的顯示大?。灰约绊憫?yīng)于所述多個(gè)子窗口中第一子窗口的顯示大小的變化,改變所述多個(gè)子窗口中第二子窗口的模式以維持所述預(yù)定顯示方案。
2. 如權(quán)利要求1所述的方法,其特征在于,所述改變第二子窗口的模式包括: 存取一像素池,所述像素池指示所述父窗口內(nèi)被分配給所述多個(gè)子窗口的顯示領(lǐng)地 的總量。
3. 如權(quán)利要求l所述的方法,其特征在于,每組模式中的各模式被排序成一 子窗口升級(jí)/降級(jí)序列。
4. 如權(quán)利要求l所述的方法,其特征在于,所述第二子窗口的各模式被排序 成一子窗口升級(jí)/降級(jí)序列,并且改變所述多個(gè)子窗口中的至少第二子窗口的模式 是基于該子窗口升級(jí)/降級(jí)序列來執(zhí)行的。
5. 如權(quán)利要求l所述的方法,其特征在于,每組模式包括主模式升級(jí)/降級(jí)序 列中的模式的子集。
6. 如權(quán)利要求1所述的方法,其特征在于,每種模式還指定該模式所相關(guān)聯(lián)的子窗口的窗口控件。
7. 如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)一顯示方案在父窗口中 顯示多個(gè)子窗口包括以使所述多個(gè)子窗口共同占據(jù)所述父窗口的預(yù)定部分、并且 沒有子窗口與另一子窗口重疊的方式來顯示所有子窗口。
8. 包含處理器可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),所述指令在由一個(gè)或多個(gè)處理器執(zhí)行時(shí)實(shí)現(xiàn)一方法,所述方法包括在顯示器上呈現(xiàn)圖形用戶界面GUI,所述GUI包括含父窗口以及在所述父窗口內(nèi)的多個(gè)子窗口的多個(gè)視覺元素,每個(gè)子窗口以與該子窗口相關(guān)聯(lián)的多種視覺模 式中的一種視覺模式來顯示,每個(gè)子窗口相對(duì)于其它子窗口以子窗口分級(jí)次序分級(jí);以及響應(yīng)于所述多個(gè)視覺元素中一個(gè)視覺元素的顯示大小的變化,基于所述子窗口分級(jí)次序以及指示被分配給各子窗口的顯示領(lǐng)地的量的像素池,改變所述多個(gè)子 窗口中的一個(gè)子窗口的顯示大小。
9. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述子窗 口分級(jí)次序是基于子窗口的使用頻率來確定的。
10. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述子窗口分級(jí)次序是基于子窗口的使用次數(shù)來確定的。
11. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述子 窗口分級(jí)次序是基于多個(gè)子窗口分級(jí)來確定的。
12. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,所述子 窗口分級(jí)次序是基于多個(gè)加權(quán)的子窗口分級(jí)來確定的。
13. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,改變所 述多個(gè)子窗口中的一個(gè)子窗口的顯示大小包括改變所述多個(gè)子窗口中的所述一個(gè) 子窗口的模式。
14. 如權(quán)利要求8所述的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其特征在于,與每個(gè) 子窗口相關(guān)聯(lián)的多種視覺模式被排序成一升級(jí)/降級(jí)序列。
15. —種系統(tǒng),包括 包括顯示器的計(jì)算設(shè)備;用于在所述顯示器上呈現(xiàn)圖形用戶界面GUI的裝置,所述GUI包括含父窗口 以及在所述父窗口內(nèi)的多個(gè)子窗口的多個(gè)視覺元素,每個(gè)子窗口以與該子窗口相關(guān) 聯(lián)的多種視覺模式中的一種視覺模式來顯示;以及用于響應(yīng)于所述多個(gè)視覺元素中的一個(gè)視覺元素的顯示大小的變化,基于所 述多個(gè)子窗口的分級(jí)次序改變子窗口的大小。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述用于呈現(xiàn)GUI的裝置包括 多個(gè)子窗口模塊,每個(gè)子窗口模塊指定與該子窗口模塊相關(guān)聯(lián)的模式的升級(jí)/降級(jí) 序列。
17. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述用于呈現(xiàn)GUI的裝置包括 多個(gè)子窗口模塊,每個(gè)子窗口模塊指定與該子窗口模塊相關(guān)聯(lián)的子窗口是否大小可 變。
18. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述用于改變的裝置包括含指 定子窗口的排序的子窗口分級(jí)次序的窗口管理模塊。
19. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述用于改變的裝置包括含子窗口分級(jí)次序和多個(gè)子窗口分級(jí)的窗口管理模塊,每個(gè)子窗口分級(jí)指定子窗口的基 于某一準(zhǔn)則的唯一排序,所述子窗口分級(jí)次序指定基于所述多個(gè)子窗口分級(jí)的所述 多個(gè)子窗口的排序。
20.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述用于改變的裝置包括含子 窗口分級(jí)次序、多個(gè)子窗口分級(jí)、以及像素池的窗口管理模塊,每個(gè)子窗口分級(jí)指 定子窗口基于某一準(zhǔn)則的唯一排序,所述子窗口分級(jí)次序指定基于所述多個(gè)子窗口 分級(jí)的所述多個(gè)子窗口的排序,所述像素池指定被分配給所述多個(gè)子窗口的顯示領(lǐng) 地的量。
全文摘要
圖形用戶界面(GUI)被呈現(xiàn)在包括父窗口以及根據(jù)顯示方案繪制在該父窗口內(nèi)的多個(gè)子窗口的顯示器上。當(dāng)這些子窗口中一個(gè)的大小被改變時(shí),其它子窗口中的一個(gè)或多個(gè)的大小被改變以維持該顯示方案。
文檔編號(hào)G06F3/048GK101208651SQ200680007339
公開日2008年6月25日 申請(qǐng)日期2006年3月29日 優(yōu)先權(quán)日2005年4月1日
發(fā)明者R·羅西, T·斯沃恩森 申請(qǐng)人:微軟公司