基于轮廓的流布局的制作方法

文档序号:6360442阅读:156来源:国知局
专利名称:基于轮廓的流布局的制作方法
基于轮廓的流布局
背景技术
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.韦塞洛夫 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1