專利名稱:基于輪廓的流布局的制作方法
基于輪廓的流布局
背景技術:
HTML和CSS (層疊樣式表)布局對于處理web內容的呈現系統而言是重要的組件。現代web內容的性質在功能和性能方面為布局引擎設置了很高要求。諸如互聯網瀏覽器、Windows Presentation Foundation (WPF)之類的各種現有呈現系統,以及各種應用以完全遞歸和整體的方式處理諸如結合HTML和CSS所采用的流內容測量和漂浮幾何圖形布局。例如,這樣的系統可以在布局處理期間對整個內容子樹進行布局。流內容描述在其被布局吋“流動”的內容。例如,文本行能夠逐行卷動和/或在不同類型的幾何圖形之間流動,諸如漂浮元素等。例如,在報紙專欄布局中,圖像可以作為漂浮元素出現在左上方以使得文本能夠沿圖像的右側邊緣流并且隨后行進至圖像下方。
使用完全遞歸的處理來進行流布局在計算上會是昂貴且低效的。此外,這樣的處理在設計高級別布局算法時強制非可中斷的、全有全無(all-or-none)的方法。
發明內容
提供該發明內容而以簡化形式引入下文中在具體實施方式
中進ー步描述的概念的選擇。該發明內容并非意在識別所請求保護主題的關鍵特征或必要特征,也并非意在被用來對所請求保護主題的范圍進行限制。各個實施例引入了被用來進行布局處理的流輪廓的概念。流輪廓被用來在存在漂浮對象的情況下對布局空間進行組織。在至少ー些實施例中,對象能夠在布局空間中漂浮至左側或右側。流輪廓因此是表示左側漂浮和/或右側漂浮的對象的集合的抽象概念。流輪廓能夠輔助諸如內容測量算法和內容插入算法之類的各種算法。例如,諸如在縮減以適應(shrink-to-fit)情形中,一旦定義了流輪廓,就能夠采用各種內容測量算法來計算關于流輪廓內容尺寸。此外,內容插入算法能夠采用流輪廓來確定如何以及在哪里放置諸如靜態和漂浮對象的各種對象。
貫穿附圖使用相同附圖標記來指代同樣的特征。圖I圖示了依據ー個或多個實施例的能夠在其中采用這里所描述的各種原則的操作環境。圖2圖示了依據ー個或多個實施例的示例布局空間。圖3圖示了依據ー個或多個實施例的示例流輪廓。圖4-7以圖解形式圖示了依據ー個或多個實施例的內容插入。圖8是描述依據ー個或多個實施例的方法中的步驟的流程圖。圖9圖不了依據一個或多個實施例的不例布局空間。圖10圖示了依據ー個或多個實施例的示例流輪廓。圖11圖示了依據ー個或多個實施例的示例流輪廓。
圖12是描述依據ー個或多個實施例的方法中的步驟的流程圖。圖13圖示了能夠被用來實施ー個或多個實施例的示例系統。
具體實施例方式MM
各個實施例引入了被用來進行布局處理的流輪廓的概念。流輪廓被用來在存在漂浮對象的情況下對布局空間進行組織。在至少ー些實施例中,對象可以漂浮至布局空間中的左側或右側。流輪廓因此是表示左側漂浮或右側漂浮的對象的集合的抽象概念。在至少ー些實施例中,流輪廓連同與漂浮對象相關聯的被稱作“底部邊緣”的新屬性一起進行構建。在對漂浮對象進行布局時,對每個對象計算底部邊緣屬性。底部邊緣屬性通過使得能夠以有效方式對對象進行布局來促進布局。一旦對漂浮對象計算了底部邊緣屬性,流輪廓就得以構建。 流輪廓隨后能夠被用來輔助各種算法,諸如內容測量算法和內容插入算法。例如,諸如在縮減以適應的情形中,一旦定義了流輪廓,就能夠采用各種內容測量算法來計算關于流輪廓的對象尺寸。此外,內容插入算法能夠采用流輪廓來確定如何以及在哪里放置諸如靜態和漂浮對象的各種對象。在以下討論中,提供了標題為“操作環境”的部分并且其描述了能夠在其中采用ー個或多個實施例的ー種環境。此后,標題為“流輪廓-概述”的部分描述了流輪廓的概念以及能夠如何使用流輪廓。接下來,標題為“流輪廓-實施方式示例”的部分描述了能夠在其中計算和使用流輪廓的具體實施方式
。最后,標題為“示例系統”的部分描述了能夠被用來實施所描述的實施例的系統。現在考慮其中可以實現一個或多個實施例的示例操作環境。操作環境
圖I總體上以100圖示了依據ー個或多個實施例的操作環境。環境100包括計算設備102,其具有一個或多個處理器104、一個或多個計算機可讀存儲媒體106以及駐留于計算機可讀存儲媒體上并且可由(多個)處理器所執行的一個或多個應用108。計算機可讀媒體例如可以包括所有形式的易失性和非易失性存儲器和/或通常與計算設備相關聯的存儲媒體,但是并不局限于此。這樣的媒體可以包括ROM、RAM閃存、硬盤、可移動媒體等。以下在圖13中示出并描述了計算設備的ー個具體示例。此外,計算設備102包括web瀏覽器110形式的軟件應用。能夠使用任意適當的web瀏覽器,其示例可從本文的專利權人或其它人那里獲得。此外,計算機可讀存儲媒體106可以包括內容測量模塊112和內容插入模塊114。另外,計算機可讀存儲媒體106還可以包括流輪廓模塊116。流輪廓模塊116可以包括獨立組件。可替換地或除此之外,流輪廓模塊116可以與一個或多個應用108和/或web瀏覽器110相集成。在操作中,如以上和以下所描述的,流輪廓模塊116被用來在存在漂浮對象或幾何圖形的情況下對布局空間進行組織。流輪廓模塊116可以被分別實施ー個或多個內容測量算法以及ー個或多個內容插入算法的內容測量模塊112和/或內容插入模塊114所利用。例如,諸如在縮減以適應的情形中,一旦由流輪廓模塊116定義或計算了流輪廓,內容測量模塊112就能夠被用來計算關于流輪廓的內容尺寸。此外,內容插入模塊114能夠采用流輪廓來確定如何以及在哪里放置諸如靜態和漂浮對象的各種對象,其在下面將變得顯而易見。此外,環境100包括諸如互聯網的網絡118以及能夠從其接收web內容并對其發送web內容的一個或多個網站120。計算設備102可以被實現為任意適當的計算設備,作為示例,諸如臺式計算機、便攜式計算機、諸如個人數字助理(PDA)的手持計算機、蜂窩電話等,但是并不局限于此。已經對示例操作環境進行了描述,現在考慮流輪廓的討論。流輪廓-概述
在HTML和CSS流布局中使用了布局空間和漂浮對象幾何圖形的概念。布局空間是指被用來描述在流方向中在布局期間用于內容插入的可用的最大的水平和垂直空間的對象。作為示例,考慮圖2。 其中,以200標出示例布局空間對象。典型地,布局空間對象在每次插入和/或內容嵌套(nesting)等級變化時進行更新,即在HTML元素相互嵌套時被更新。作為布局空間一部分的次要結構被利用以便表示漂浮對象。例如,在HTML中,元素可以具有“漂浮”屬性。漂浮屬性可以被計算為“左”或“右”。其漂浮屬性被設置為“左”的元素或對象是駐留于布局空間左側的左側漂浮對象。同樣,其漂浮屬性被設置為“右”的元素或對象是駐留于布局空間右側的右側漂浮對象。次要結構被稱作“幾何圖形。不同于布局空間,幾何圖形在非漂浮內容”插入的期間并不更新,而是被用來將左側和右側漂浮對象描述為布局空間中的障礙物集合。作為示例,布局空間200包括左側漂浮對象202、204、206、208、210、212、214和216。此外,布局空間200包括右側漂浮對象218和220。一旦漂浮對象在布局空間200內進行了布局,就可以針對左側漂浮和右側漂浮對象計算流輪廓。流輪廓可以以任意適當方式進行計算,其示例在以下標題為“流輪廓-實施方式示例”的部分中進行描述。作為流輪廓的示例,考慮圖3。其中,已經針對左側漂浮對象的集合計算了流輪廓300,并且已經針對右側漂浮對象的集合計算了流輪廓302。如所計算的,流輪廓描述了左側和右側幾何圖形流的最外圍輪廓。一旦計算了流輪廓,該流輪廓就能夠被各種內容測量模塊和/或內容插入模塊用于布局處理。如本領域技術人員將會意識到的,流輪廓將単獨的漂浮對象抽象為最外圍的輪廓。這樣做使得內容測量和內容插入算法在內容布局處理期間不必遞歸地考慮單獨漂浮對象。作為使用圖3的流輪廓的內容插入處理的示例,考慮圖4。其中,形式為對象400的內容要被插入在利用流輪廓300和302的布局空間200內。對象400例如可以構成圖像。使用流輪廓,希望為對象400找出不與底層的漂浮對象相沖突的位置。在所圖示和描述的示例中,在如所示出的流輪廓的最頂端部分選擇第一插入點。其被標記為位置“I”。如所能夠看到的,基于使用右側流輪廓302的計算發生與漂浮對象218的沖突。由于存在沖突,所以,確定下一個插入點。在所圖示和描述的示例中,在流輪廓之一中有所變化的位置嘗試下一個插入點。因此,在概念上,對象400將使得流輪廓向下滑動,直至發生方向變化。在方向變化的位置,檢查插入點以確定是否存在與底層漂浮對象的沖突。作為示例,考慮圖5。
其中左側流輪廓300中已經發生了方向變化。相對應地,在該位置(所標記的位置“2”),檢查插入點以確定插入對象400是否會導致與底層漂浮對象的沖突。如所能夠看到的,基于使用右側流輪廓302的計算而發生了與漂浮對象218的沖突。因此,確定下ー個插入點。作為示例,考慮圖6。其中右側流輪廓302中已經發生了方向變化。相對應地,在該位置(所標記的位置“ 3”),檢查插入點以確定插入對象400是否會導致與底層漂浮對象的沖突。在這種情況下,發生了與漂浮對象220的沖突。由于存在沖突,確定下一個插入點。作為示例,考慮圖7。其中流輪廓300中已經發生了方向變化。相對應地,在該位置(所標記的位置“4”),檢查插入點以確定插入對象400是否會導致與底層漂浮對象的沖突。由于沒有與底層漂浮對象的沖突,對象400能夠被放置在第四插入點。以上示例僅構成了其中流輪廓能夠被內容插入算法所使用的ー種方式。所要意識到并理解的是,任意適當的內容插入算法都能夠使用所圖示和描述的流輪廓而并不背離所 請求保護主題的精神和范圍。圖8是描述依據ー個或多個實施例的方法中的步驟的流程圖。該方法可以結合任意適當的硬件、軟件或其組合來執行。在至少ー些實施例中,該方法的多個方面可以由諸如以上和以下所描述的流輪廓模塊來執行。該方法的其它方面可以由諸如以上和以下所描述的內容插入模塊來執行。步驟800對布局空間中的漂浮對象進行布局。任意適當技術都能夠被用于對布局空間中的漂浮對象進行布局。以下提供了一種能夠如何執行布局的ー個具體示例。步驟802為有效的左側和右側漂浮對象計算流輪廓以使得能夠在布局處理中使用該流輪廓。任意適當技術都能夠被用于計算流輪廓,其示例在以下提供。此外,任意適當類型的布局處理都能夠利用流輪廓。作為示例,步驟804針對相關聯的對象選擇相對于流輪廓的對象插入點。能夠利用任意適當的初始對象插入點,以上提供了其示例。步驟806確定相關聯的對象是否將與底層漂浮對象相沖突。該步驟可以任意適當方式來執行。例如,基于流輪廓相對于相關聯對象的位置來確定沖突。例如,在流輪廓X方向或y方向中與相關聯對象的重置將指不沖突。如果沒有沖突,則步驟808在插入點插入相關聯的對象。另ー方面,如果存在與漂浮對象的沖突,則步驟810確定是否有更多插入點要進行測試。如果沒有更多插入點要測試,則步驟812終止對相關聯對象的處理。另ー方面,如果存在更多插入點要進行測試,則該方法返回步驟804并且選擇相對于流輪廓的新的對象插入點。該過程可以繼續直至對象被插入在布局空間中而不與底層的漂浮對象相沖突或者沒有更多插入點有待被測試。已經考慮了流輪廓的一般概念及其在內容測試和內容插入算法中的使用,考慮在其中計算井隨后使用流輪廓的具體實施方式
示例。流輪廓-實施方式示例
在該特定示例中,引入了底部邊緣屬性的概念。底部邊緣屬性在漂浮對象的布局期間被利用并且結合流輪廓而被利用。在所圖示和描述的實施例中,每個漂浮對象都具有能夠被指定為“真”或“假”的底部邊緣屬性。底部邊緣屬性被用來表示其底部邊緣低于或等于作為相同流(即,左側流或右側流)的一部分的所有其它在前漂浮對象的特定漂浮對象。如果針對漂浮對象被計算為“真”,底部邊緣屬性確保了在其它內容或另ー個漂浮對象要被插入在其底部邊緣屬性被計算為“真”的漂浮對象之下的情況下不會存在與作為相同流的一部分的任意其它漂浮對象的沖突。作為底部邊緣屬性如何計算的示例,考慮利用圖2所示的布局空間200的圖9。在漂浮對象被適時置于布局空間200中時,針對漂浮對象計算底部邊緣屬性。從而,例如對于左側漂浮對象而言,對象被從左向右地逐一添加。在添加這些對象時,計算它們的底部邊緣屬性。對于第一個被添加的漂浮對象202而言,沒有在前的漂浮對象從而其底部邊緣屬性被計算為“真”。下一次,添加漂浮對象204。由于在前的漂浮對象202具有低于漂浮對象204的底部邊緣的底部邊緣,所以漂浮對象204的底部邊緣屬性被計算為“假”。接下來,添加漂浮對象206,并且類似地,其底部邊緣屬性被計算為“假”。接下來,添加漂浮對象218,并且由于沒有在前的右側漂浮對象,所以其底部邊緣屬性被設置為“真”。接下來,添加漂浮對象208,并且由于它是無法被添加至漂浮對象206右側而不與漂浮對象218相沖突的左側漂浮對象,所以漂浮對象208被移動至下ー級別 并且移動至左側直至其進入漂浮對象202。當其被這樣定位時,其底部邊緣屬性被計算為“真”,原因在于沒有具有低于其底部邊緣的底部邊緣的在前漂浮對象。遵循類似的邏輯,漂浮對象210、212、214、216和220被添加至布局空間。這些漂浮對象的底部邊緣屬性如下漂浮對象210 (真),漂浮對象212 (真),漂浮對象214 (假),漂浮對象216 (假),以及漂浮對象220 (真)。一旦所有漂浮對象都已經被布局,則在該實施例中,能夠通過考慮漂浮對象行進期間的漂浮對象的底部邊緣屬性來計算流輪廓。作為示例,考慮圖10。在該示例中,流輪廓是包括所排序點的列表的數據結構,其在圖10中由黑點在圖形上進行圖示。該排序點的列表的計算通過遍歷(walking)被稱作上升和下降輪廓的兩個次級有序列表之一來實現。能夠使用底部邊緣屬性以便節省漂浮物(floater)對象列表上可能的長距離“遍歷”。次級列表在漂浮對象插入期間進行計算。該列表中的每個點與包括之前的上升漂浮對象和之前的下降漂浮對象的屬性相關聯。該點自身表示流輪廓發生變化(即進行轉向)的位置。一旦已經構建或構造了流輪廓,它們就能夠被各種內容測量和/或內容插入算法所利用。作為示例,考慮下文。內容測量是在CSS中采用的概念。內容測量是被用來測量web文檔中的靜態和漂浮元素的最小和最大寬度的流布局算法。特定元素的內容測量被用于諸如計算元素的縮減以適應的大小,所述元素諸如表、漂浮物、行內塊或絕對定位元素。例如,取得一行文本。假設沒有明確斷行,該行文本的最大大小將是整個句子。最小大小將是行的最長單詞大小以保障所有單詞都將在所定義空間內充分適應。縮減以適應的計算簡單地將這些最小和最大大小用作內容布局處理的一部分。然而,如本領域技術人員將要意識到的,由于假設布局處理期間的無限量的空間,所以計算這些內容測量本身并不是輕松的任務。也就是說,在計算內容測量時,假設在沒有明確斷行出現的情況下可能存在長段落的文本。在所有這些無限空間中,排列漂浮對象并且將相關聯的流輪廓用來計算諸如文本行之類的靜態內容的測量。流輪廓被用作在概念上定義該無限空間的任一側的厚度的方式。一旦所有的漂浮對象都已經被布局,則計算與要駐留在左側漂浮對象和右側漂浮對象之間的內容相關聯的內容測量。
作為示例,考慮總體上以1100圖示了系統的圖11,其中要在漂浮對象之間插入一行文本。在該示例中,存在可假設為無限寬且無限高的空間。在該實例中,漂浮對象1102、1104和1106已經被添加在布局空間1112內。該行文本要被插入在分別由左側和右側漂浮對象所定義的兩個流輪廓之間。該行文本具有其將開始和結束的特定垂直位置,以及由虛線矩形1110所表示的特定大小。這時,如果這是僅有的所要添加的內容,則計算最大大小。在該處理中利用流輪廓的方式如下。新的文本行將以其最大大小加上左側和右側的幾何圖形或漂浮對象之和而對容器元素的內容寬度有所貢獻。基于從布局空間1112的邊界的流輪廓偏移量來計算兩個幾何圖形的寬度。流輪廓的范圍由新插入內容的最頂端和最底部的點所確定,在這里由線1114和1116所表示。使用該信息,能夠計算適應于其容器的該行文本的內容大小并且該文本能夠被插入在布局空間中而并不與漂浮對象相沖突。關于內容插入,用于靜態的塊格式上下文和漂浮對象的內容插入算法也能夠使用如以上圖4-7和相關討論中所提到的流輪廓。這些算法能夠利用多種格式化嘗試以便為對象找出首先可用的位置,例如當前流的方向中的最高位置。流輪廓使得這些算法能夠被實 施為連續過程,其毎次嘗試ー個輪廓點直至新對象在左側和右側流輪廓之間適應而沒有沖關。此外,將漂浮對象插入布局空間的內容插入算法也能夠利用流輪廓。在流輪廓的計算之后,該算法能夠在沿左側或右側輪廓的每個可用位置上進行重復直至新的漂浮對象的期望寬度得以滿足。一旦找到了位置并且將漂浮對象插入了上升和下降輪廓,就計算對漂浮對象的鏈進行連接以形成幾何圖形的鏈接或指針。圖12是描述依據ー個或多個實施例的方法中的步驟的流程圖。該方法可以結合任意適當的硬件、軟件、固件或其組合來執行。在至少ー些實施例中,該方法的多個方面能夠由諸如以上和以下所描述的流輪廓模塊來執行。該方法的其它方面能夠由諸如以上和以下所描述的內容插入模塊來執行。另外其它的方面能夠由諸如以上所描述的內容測量模塊來執行。步驟1200在布局空間中對漂浮對象進行布局。任意適當技術都可以被用于在布局空間中對漂浮對象進行布局。例如,在至少ー些實施例中,對漂浮對象進行布局可以包括如以上所描述的對単獨漂浮對象計算底部邊緣屬性。步驟1202對左側和右側漂浮對象計算流輪廓。可以使用任意適當的技術來計算流輪廓,以上提供了其示例。步驟1204使用流輪廓來執行內容測量操作。以上提供了如何做這個的示例。步驟1206使用流輪廓來執行內容插入操作。以上提供了如何做這個的示例。示例系統
圖13圖示了能夠被用來實施以上所描述的各個實施例的示例計算設備1300。計算設備1300例如可以是圖I的計算設備102或者任意其它適當的計算設備。計算設備1300包括一個或多個處理器或處理單元1302、一個或多個存儲器和/或存儲組件1304、一個或多個輸入/輸出(I/O)設備1306,以及允許各個組件和設備相互通信的總線1308。總線1308表示任意的若干種總線結構中的ー種或多種,包括存儲器總線或存儲器控制器、外部總線、加速圖形端ロ,以及使用任意各種總線架構的處理器或局部總線。總線1308可以包括有線和/或無線總線。存儲器和/或存儲組件1304表示一個或多個計算機存儲媒體。組件1304可以包括易失性媒體(諸如隨機訪問存儲器(RAM)和/或非易失性媒體(諸如只讀存儲器(ROM)、閃存、光盤、磁盤等)。組件1304可以包括固定媒體(例如,RAM、ROM、固定硬盤驅動器等)以及可移動媒體(例如,閃存驅動器、可移動硬盤驅動器、光盤等)。—個或多個輸入/輸出設備1306允許用戶向計算設備1300輸入命令和信息,并且還允許向用戶和/或其它組件或設備呈現信息。輸入設備的示例包括鍵盤、光標控制設備(例如,鼠標)、麥克風、掃描儀等。輸出設備的示例包括顯示設備(例如,監視器或投影儀)、揚聲器、打印機、網卡等。各種技術在這里可以以軟件或程序模塊的一般環境進行描述。通常,軟件包括執行特定任務或者實現特定抽象數據類型的例程、程序、對象、組件、數據結構等。這些模塊和技術的實施方式可以被存儲在ー些形式的計算機可讀媒體上或者跨其進行傳送。計算機可讀媒體可以是可由計算設備所訪問的任意可用介質或媒體。通過示例,計算機可讀媒體可以包括“計算機可讀存儲媒體”,但并不局限于此。
“計算機可讀存儲媒體”包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據之類的信息的任意方法或技術所實現的易失性和非易失性、可移動和非可移動媒體。計算機可讀存儲媒體包括RAM、R0M、EEPR0M、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設備,或者能夠被用來存儲所期望信息并且能夠由計算機訪問的任意其它介質,但是并不局限于此。結論
各個實施例引入了被用來進行布局處理的流輪廓的概念。流輪廓被用來在存在漂浮對象或幾何圖形的情況下組織布局空間。在至少ー些實施例中,對象能夠漂浮至布局空間中的左側或右側。流輪廓因此是表示左側漂浮和/或右側漂浮對象的集合的抽象概念。流輪廓能夠輔助諸如內容測量算法和內容插入算法之類的各種算法。例如,諸如在縮減以適應的情形中,一旦定義了流輪廓,就能夠采用各種內容測量算法來相對于流輪廓計算內容尺寸。此外,內容插入算法能夠采用流輪廓來確定如何以及在哪里放置諸如靜態和漂浮對象的各種對象。雖然已經以特定于結構特征和/或方法操作的語言對主題進行了描述,但是所要理解的是,所附權利要求中所限定的主題并不必局限于以上所描述的具體特征或操作。相反,以上所描述的具體特征和操作是作為實施權利要求的示例形式而被公開。
權利要求
1.一種計算機實現的方法,包括 在布局空間中對一個或多個漂浮對象進行布局; 計算與一個或多個漂浮對象相關聯的一個或多個流輪廓;并且 使得能夠在對布局空間中的內容的布局處理中使用一個或多個流輪廓。
2.根據權利要求I的方法,其中所述布局包括對左側漂浮和右側漂浮對象進行布局。
3.根據權利要求I的方法,其中所述使得能夠包括使得能夠在與要在布局空間中插入的內容相關聯的內容測量中使用一個或多個流輪廓。
4.根據權利要求I的方法,其中所述使得能夠包括使得能夠在與要在布局空間中插入的內容相關聯的內容插入中使用一個或多個流輪廓。
5.根據權利要求I的方法,其中所述使得能夠包括 使得能夠在與要在布局空間中插入的內容相關聯的內容測量中使用一個或多個流輪廓;以及 使得能夠在與要在布局空間中插入的內容相關聯的內容插入中使用一個或多個流輪廓。
6.根據權利要求I的方法,其中所述使得能夠包括使得能夠使用一個或多個流輪廓來定位靜態和漂浮對象。
7.一種計算機實現的方法,包括 在布局空間中對多個漂浮對象進行布局,其包括對單獨的漂浮對象計算底部邊緣屬性; 對布局空間中的左側漂浮和右側漂浮對象計算流輪廓;并且 使用流輪廓而使得能夠執行ー個或多個內容測量操作或內容插入操作。
8.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表。
9.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中単獨的點與包括先前的上升漂浮對象和先前的下降漂浮對象的屬性相關聯。
10.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中至少ー個內容插入操作包括在布局空間中插入靜態對象。
11.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中至少ー個內容插入操作包括在布局空間中插入漂浮對象。
12.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中至少ー個內容插入操作包括在布局空間中插入一個或多個文本行。
13.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中至少ー個內容插入操作包括在布局空間中插入一個或多個文本行,并且其中至少ー個內容測量操作包括縮減以適應的操作。
14.根據權利要求7的方法,其中計算流輪廓包括針對每個流輪廓使用上升輪廓有序列表或下降輪廓有序列表之一計算排序點的列表,其中至少ー個內容插入操作包括使用流輪廓來確定在ー個位置插入對象是否會導致與關聯于流輪廓的漂浮對象相沖突。
15.—種或多種包含計算機可讀指令的計算機可讀存儲媒體,當被執行時,所述計算機可讀指令實施ー種方法,包括 使用流輪廓對于要插入在駐留于布局空間中的左側漂浮和右側漂浮對象之間的內容執行內容測量操作,其中該流輪廓分別定義了左側漂浮對象的最右側外輪廓以及右側漂浮對象的最左側外輪廓;并且 使用流輪廓對于要插入在左側漂浮和右側漂浮對象之間的內容執行內容插入操作。
全文摘要
各個實施例引入了被用來進行布局處理的流輪廓的概念。流輪廓被用來在存在漂浮對象或幾何圖形的情況下組織布局空間。在至少一些實施例中,對象能夠漂浮至布局空間的左側和/或右側。流輪廓是隨后表示左側漂浮和/或右側漂浮對象的集合的抽象概念。
文檔編號G06F17/00GK102870107SQ201180023621
公開日2013年1月9日 申請日期2011年4月27日 優先權日2010年5月12日
發明者R.P.阿塔納索夫, E.N.韋塞洛夫 申請人:微軟公司