说明性实施例的详细描述
通用计算环境
图1是可用于实现本发明各个方面的常规通用数字计算环境的例子的功能性框图。在图1中,计算机100包括处理单元110、系统存储器120以及把包括系统存储器在内的各种系统组件耦合至处理单元110的系统总线130。系统总线130可以是若干总线结构类型中的任一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线体系结构中的任一种的局部总线。系统存储器120包括只读存储器(ROM)140和随机存取存储器(RAM)150。
基本输入/输出系统160(BIOS)存储在ROM 140内,它包括如启动时帮助在计算机100内的元件间传输信息的基本例程。计算机100也包括用于从硬盘(未示出)读取或向其中写入的硬盘驱动器170、用于从可移动磁盘190读取或向其中写入的磁盘驱动器180、以及用于向诸如CD ROM或其它光学介质这样的可移动光盘192读写的光盘驱动器191。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别通过硬盘驱动器接口192、磁盘驱动器接口193和光盘驱动器接口194连接到系统总线130。这些驱动器及其相关联的计算机可读介质为个人计算机100提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域的技术人员可以理解,可存储计算机可访问数据的其它类型的计算机可读介质也可在示例性操作环境中使用,这些其它计算机可读介质诸如磁带盒、闪存卡、数字视频盘、Bernoulli盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可以存储在硬盘驱动器170、磁盘190、光盘192、ROM 140或RAM 150上,包括操作系统195、一个或多个应用程序196、其它程序模块197和程序数据198。用户可以通过诸如键盘101和定位设备102等输入设备输入命令和信息到计算机100中。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备一般通过耦合到系统总线的串行端口接口106连接到处理单元110,但也可由其它接口连接,诸如并行端口、游戏端口或通用串行总线(USB)。此外,这些设备可以通过适当的接口(未示出)直接耦合到系统总线130。监视器107或其它类型的显示设备也可以通过诸如视频适配器108这样的接口连接到系统总线130。除监视器外,个人计算机一般包括诸如扬声器和打印机等其它外围输出设备(未示出)。在一个优选实施例中,为了数字地捕捉手画线输入,提供了笔数字化仪165和附随的笔或触针166。虽然示出了笔数字化仪165和串行端口间的直接连接,然而实际上,笔数字化仪165可通过并行端口或本领域已知的其它接口和系统总线130而直接耦合到处理单元110。而且,虽然数字化仪165被示出为与监视器107相分离,但数字化仪165的可用输入区最好与监视器107的显示区域有共同的范围。此外,数字化仪165可被集成到监视器107内,或可作为叠加或附着于监视器107上的独立设备而存在。
计算机100可使用到诸如远程计算机109这样的一个或多个远程计算机的逻辑连接在网络化环境内工作。远程计算机109可以是服务器、路由器、网络PC、对等设备或其它公共网络节点,并且一般包括上文相对于计算机100所描述的许多或所有元件,然而图1中仅示出了存储器存储设备111。图1所描绘的逻辑连接包括局域网(LAN)112以及广域网(WAN)113。这种网络环境常见于办公室、企业范围的计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机100通过网络接口或适配器114连接到局域网112。当在WAN网络环境中使用时,个人计算机100通常包括调制解调器115或用于通过诸如因特网等广域网113建立通信的其它装置。调制解调器115可以是内置或外置的,它可以通过串行端口接口106连接到系统总线130。在网络化环境中,相对于个人计算机100所描绘的程序模块或其部分可以储存在远程存储器存储设备中。
可以理解,所示网络连接是说明性的,并且可以使用用于在计算机间建立通信链路的其它技术。假设存在诸如TCP/IP、以太网、FTP、HTTP、等各种公知协议中的任一种,系统可以工作在客户机-服务器配置中,以允许用户从基于web的服务器中检索网页。可以使用各种常规web浏览器的任一种来显示和操纵网页上的数据。
图2示出了可以依照本发明的各个方面使用的基于触针的计算机处理系统(也被称为图形输入板PC)201的例子。图1的系统中任何或所有特征、子系统和功能可以包括在图2的计算机中。图形输入板PC 201包括大显示表面202,例如数字化平面控制板显示屏,较佳的是液晶显示屏(LCD)或OLED屏幕、等离子显示屏等等,在其上显示多个窗口203。使用触针204的尖端(该尖端在这里也被称为“指针”),用户可以选中、加亮和写入数字化显示区域。合适的数字化显示屏面的例子包括电磁笔数字化仪,诸如Mutoh或Wacom笔数字化仪。也可以使用其它类型的笔数字化仪,例如光学数字化仪。图形输入板PC 201解释使用触针204所做的记号,以便操纵数据、输入文本和执行诸如电子表、文字处理程序等常规计算机应用程序任务。
触针204可以配备按钮或其它特征,以便扩充其选择能力。在一个实施例中,触针可以被实现为“铅笔”或“钢笔”,其中一端构成写入部分而另一端构成“擦除器”端,当在显示屏上移动“擦除器”端时,它指示了显示屏上要擦除的部分。可以使用其它类型的输入设备,诸如鼠标、跟踪球等等。此外,可以使用用户自己的手指来选择或指示触敏和/或邻近敏感显示屏上所显示图像的各部分。因此,这里所使用的术语“用户输入设备”旨在具有宽广的定义并包含公知输入设备的许多变体。
输入屏面扩展行为
参见图3,在步骤301中,计算机(例如计算机100或201)会检查用户输入设备(例如触针166或204)相对于输入表面(例如数字化仪165或显示表面202)的位置。在以下的实施例中用户输入设备会被说明性地认为是触针204。然而,可以使用任何用户输入设备,诸如鼠标102。在步骤302中,计算机可基于触针204的位置确定触针204是否悬浮(hover)在输入表面上,以及触针204是否悬浮)在有效的“输入区”上。术语“悬浮”意味着触针204(例如,尤其是触针204的尖端)接近于但不是在物理上接触输入表面。可以作出基于阀值的确定。例如,计算机可以确定触针的尖端是否位于离开输入表面预定的垂直距离内。如果是的话,那么触针在悬浮。如果不是(例如,触针204离开输入表面太远或接触输入表面),那么触针204不在悬浮。
术语“输入区”意指显示屏或用户输入表面上接受有效用户输入的区域。在任何给定的时刻,可以有一个或多个输入区,这些输入区可以随着时间的推移而变化、移动、出现或消失。哪些区域是输入区可取决于正在运行哪些应用程序、正在运行哪个操作系统、哪个(些)操作系统具有焦点(即用户当前活动地与之交互的应用程序)和/或其它因素。输入区一般接受来自键盘的键入文本和/或来自触针的手写墨迹。在某些实施例中,唯一的输入区会是“系统脱字符”当前所定位的任何地方,或至少系统脱字符周围和附近预定义的区域。系统脱字符是用户当前用其工作的插入点。插入点可经由诸如闪烁文本光标等光标向用户指示。也可以存在另一个“光标”,它指示显示屏上触针204(或其它输入设备,诸如鼠标102)与之交互的位置(例如,触针204在显示屏上悬浮的位置,或触针204在显示屏上接触的位置)。指示插入点的光标不必与指示触针204交互点的光标一样。
在步骤303中,如果触针204不在悬浮,那么就会移除任何可以被显示的调用目标(如下所述)使其不被显示,计算机接着再在步骤301中检查触针204是否在悬浮。重复这个循环直至确定触针204在悬浮。一旦这个情况发生,接着在步骤304中确定触针204是否悬浮了一预定超时时段,或是否选择了任何显示的调用目标。调用目标可以通过以下方式选择:例如,使用诸如鼠标102的按键点击调用目标、通过用触针204轻击调用目标、通过悬浮在调用目标上、或通过按下计算机上的按键或触针204。如果没有发生这些确认中的任何一个,那么在步骤305中,显示调用目标(或如果调用目标已经被显示,则继续显示该调用目标),且计算机继续在步骤301和302中检查触针是否悬浮。调用目标可在触针开始在输入表面适当的区域上方悬浮后或在一时延后立即开始显示。步骤304可以同时包括超时确定和调用目标选择确定,或者它可以仅包括这两个确定之一。虽然本说明性实施例被描述为响应于触针204悬浮来显示调用目标,也可以响应于其他用户输入而显示调用目标,诸如响应于触针204实际上接触到输入表面或响应于触针204所做的某个其他姿势。应该理解,这里所讨论的悬浮只是作为说明性用户输入而提出。
“调用目标”是对用户的输入屏面可用且可以被调用的指示。调用目标可以是对用户而言可见和/或可听的指示,诸如在显示屏上显示的图标、诸如蜂鸣声或嘀嗒声等可听声音、或经修改的光标等。图4中示出了调用目标403的例子。调用目标403可以在显示屏401上的预定位置(可以是输入表面的一部分)显示,或在取决于在显示屏401上触针204悬浮或用其它方式与显示屏401交互(“交互点”402)的位置402的位置上显示。例如,调用目标403可以显示在离开交互点402预定量的位置。或者,调用目标403可以显示在取决于活动输入区中插入点位置的位置。例如,调用目标403可以显示在离开插入点预定量的位置。在所示的实施例中,调用目标403显示在一位置,其中调用目标403最接近交互点402的边缘在显示屏401上水平方向移动X的距离,垂直方向移动Y的距离,其中X和Y可以是相同的或不同的,且可以是负数或正数。应该注意,在这个例子中,所示的“X”、“Y”和虚线不是实际显示的,包含在此只是为了说明的目的。X和Y的距离可以是任何的量,诸如大约1/4英寸或更少、大约1/3英寸或大约1/2英寸或更多。
虽然所示的调用目标403是内部有“X”的框,这只是一个例子。调用目标403可以用任何形式显露给用户,诸如图标、动画、图像、文本和/或其他类型的可视元素。同样地,虽然调用目标403被显示为矩形,但它可以是任何的形状,诸如圆形、正方形、三角形和/或任何其他的几何或非几何形状。
如上所述,用户的触针204可以悬浮一超时时段,或者用户可以选择调用目标403。用户可以用多种方式中的任意一种选择调用目标403,诸如通过使用触针204轻击所显示的调用目标403。响应于步骤304中陈述的任一动作的发生,输入屏面在步骤306中被呈现给用户。输入屏面能够接收用户输入,诸如来自触针204的电子墨迹输入、来自键盘的打字输入和/或其他输入。
图5中示出了显示的输入屏面501的例子。输入屏面501可以代替调用目标403,或者它可以在调用目标403之外显示。该输入屏面可以包括定位点502,所述定位点502可以被显示或不被显示。输入屏面501可以在显示屏401上的任一位置显示,诸如其定位点502在预定的位置之处或取决于交互点402的位置和/或调用目标403的位置。在所示例子中,输入屏面501显示在与先前在被输入屏面501替代之前所显示的调用目标403的位置相同或几乎相同的位置。
再参见图3,在步骤307中,输入屏面501会接收到所期望的任何类型的内容作为用户输入,诸如文本、墨迹、图像、音频(例如,语音)等等。然而,所揭示的实施例中的说明性输入屏面501会被认为主要用于接收文本、墨迹和/或语音内容。这样认为的原因是在某些实施例中,输入屏面501会被认为是用于接收有意义的输入的文本输入屏面,以输入到诸如文字处理应用程序等当前运行的应用程序中。如图5中所示,字母“abc”可以用手写墨迹书写,作为输入屏面501中的内容。这可以通过以下方式完成:例如使用触针204将“abc”写在输入表面上,或更具体地写在输入表面上对应于输入屏面501的部分。
在图3中,在步骤308中,计算机可检查用户输入是否接近或接触到输入屏面501的边界。输入屏面501的边界可以与输入屏面501的可视边缘具有相同的边界、可以位于输入屏面501的可视表示内、和/或可以扩展到输入屏面501的可视表示之外。例如,右边界可以与输入屏面501的可视右边界相同,或者右边界可以离可视右边界左侧一预定距离。图6示出了在输入屏面501的右边缘602的左侧的右边界606的例子。然而,边界606也可以处于与右边缘602相同的位置。同样示出的是输入屏面501的上边缘601、左边缘605和下边缘603。
图7示出了响应于用户输入接近或接触输入屏面501的边界会发生的情况。图7也示出了方向“上”、“下”、“左”和“右”。在整个说明书中会一致地使用这些说明性的方向以解释本发明的各方面,并且从用户观看显示屏401时时的用户观点来测量。所示的方向箭头和方向文本不必显示在显示屏401上,而只是为说明的目的示出。这里所使用的方向也是相对于显示屏401的,它们不必相对于地球重力或是对地球重力的描述。例如,显示屏401可以水平地放置在桌面上,而所示的“上”方向仍保持在相对于显示屏401的“上”方向。
如所示的,用户输入(一开始为“abc”)现在被改成读作“abc def ghi jklmno pqr”。因为这个用户输入不适合图5所示的输入屏面501,因此输入屏面501自动扩展以容纳用户输入。在这个实施例中,响应于用户输入接近或接触到输入屏面501的右边界,输入屏面501在必要时动态地扩展到其可视右侧602和/或右边界606以适合用户输入。例如,如果用户输入只有“abc def ghi”,那么输入屏面501会比图7所示的较少地向右扩展。实时地,随着用户输入向右移动,输入屏面501会继续向右扩展。然而,输入屏面501对于它可以向右扩展多少有限制。物理限制是显示屏401的边界。输入屏面501会进一步地在其向右扩展中受人工限制。例如,输入屏面501可能只能够向右扩展到离开显示屏401的右边界预定水平右页边空白Mhr处。页边空白Mhr可以是固定的或可变的,可以由用户和/或应用程序设置。页边空白Mhr可以被计量为绝对距离或显示屏401的尺寸的百分比。例如,Mhr可以是大约1/4英寸、大约1/2英寸、在大约1/4英寸和大约1/2英寸之间、显示屏401的边界宽度的大约3%、显示屏401的边界宽度的大约5%、或显示屏401的边界宽度的大约3%和大约5%之间。然而,Mhr可以是其他的值。在整个扩展过程中,定位点502会保持固定。这意味着输入屏面501的上边缘601和左边缘605在整个扩展过程中也会保持固定。
因此,再参见图3,如果在步骤309中,输入屏面501还没有完全向右扩展到其极限处,那么在步骤310中,输入屏面501向右扩展,并在步骤307中继续接受进一步的用户输入。输入屏面501会增量地向右扩展。该增量大小可以是固定的,或可以取决于用户输入而变化。当增量大小为固定时,增量可以是大约1.5英寸、或大约是1.75英寸或大约是2英寸,或者大于或小于这些量。
另一方面,如果在步骤309中确定输入屏面501已经达到其向右的极限,那么在步骤312中输入屏面501会在另一方向上扩展。在所示实施例中,另一方向是向下。在步骤307中,输入屏面501会继续接受进一步的用户输入。图8示出了当输入屏面501达到其向右的极限且用户继续向输入屏面501提供用户输入时会发生什么情况。在这种情况下,用户输入现在增加为“abc def ghi jkl mno pqr stu vwxyzl 234”。这整个用户输入不能适合图7所示的输入屏面501,因此输入屏面501自动向下扩展以容纳额外的用户输入。换言之,输入屏面501的下边缘603响应于墨迹笔划的向右扩展而向下移动。输入屏面501的这种向右和向下扩展会在墨迹书写时实时地发生。注意到仍然考虑右页边空白Mhr。只有在向右的扩展造成输入屏面501完全扩展到最右的页边空白Mhr处才开始向下的扩展。或者,在输入屏面501扩展到页边空白Mhr之前,在输入屏面501完全扩展到右侧前会发生某些向下扩展。此外,在向右扩展的同时,至少会发生某些向下扩展(这在用户看来实际上是对角扩展)。
然而,在本实施例中,只有输入屏面501还没有在向下方向上完全扩展时,它才会向下扩展。因此,在步骤311中,如果输入屏面501还没有完全地向下扩展,那么它会以增量方式扩展。例如,输入屏面501可以预定增量或以取决于用户输入的量来扩展。在一个实施例中,向下增量扩展量可以是大约为1.5英寸或大约1.75或大约2英寸或大于或小于这些量的固定量。在另一个实施例中,向下增量扩展量会取决于手写或起先写入用户输入屏面的垂直字符的垂直尺寸。先前手写的文本越大,向下增量就越大,同时期望进一步的用户输入字符会是较小的尺寸。
另一方面,如果输入屏面501已经扩展到步骤311中所确定的最大向下限制,那么输入屏面501不会再扩展。然而,输入屏面501会继续接受用户输入。向下方向上的扩展限制会受到显示屏401下边界的限制。向下扩展限制会进一步受到人工垂直按钮页边空白Mvb的限制。页边空白Mvb会以与页边空白Mhr相同的方式确定。
在这点上,应该注意,在图5、7和8中,该实施例中的定位点502继续保持在显示屏401上同一固定位置。即使输入屏面501已经在向右和/或向下方向上完全扩展,这也是成立的。在某些实施例中,用户会能够手动移动定位点(诸如通过拖/放它),以进一步为输入屏面扩展留出位置。定位点502可以表示输入屏面501的上和左边界的相交点。然而,定位点502可以表示输入屏面501的其它边界组合的相交点,诸如输入屏面501的上和右边界的相交点。回到定位点502表示上和左边界的相交点的例子,输入屏面501的上和左边界会由此对定位点502保持固定。因此,一旦输入屏面501在向右和向下方向上都完全扩展,输入屏面501不能进一步扩展。如下所详述,定位点502表示哪些边界的相交点会取决于期望写入或键入输入屏面501的哪种语言。
虽然输入屏面501会达到它在任何方向上都不能再扩展(即,其中步骤311的结果是“是”)的一点,然而用户可以在输入屏面501定义的现有区域中继续添加用户输入和/或编辑现有用户输入。在输入屏面501不能再扩展之处,输入屏面501会作为响应,在水平和/或垂直方向上发展一个或多个滚动条,以允许输入更多的用户输入。然而,在某些实施例中,可能期望使与输入屏面501的界面保持尽可能简单,因此滚动条在这种情况下将不存在。
图8中也示出了水平左页边空白Mhl和垂直上页边空白Mvt。这些页边空白是人工页边空白,会使用这些页边空白使得输入屏面501不能穿过那些页边空白。在某些实施例中,定位点502永远不会位于页边空白Mhl的左侧,定位点502也不会位于页边空白Mvt之上。不管交互点402在哪里,这都会成立。任何定义输入屏面502应该在何处显示的规则应该确保在起始时和输入屏面502扩展时,输入屏面不位于页边空白Mhl、Mhr、Mvt和Mvb之外。如有必要,输入屏面502的初始默认位置(否则会如先前所述那样使用)会按足以保证输入屏面502不会违反这些页边空白的量来修改。只要默认的放置规则不导致将调用目标和/或输入屏面放置在页边空白之内,那么调用目标和/或输入屏面会被尽可能少地移动,使得它尽可能靠近默认位置而不违反页边空白。
输入屏面与输入区的交互
图9到11示出了如何使用输入屏面501的例子。在图9中,显示屏401示出了打开的软件应用程序的图形用户界面表示901,该应用程序诸如但不限于文字处理应用程序、电子表应用程序、因特网web浏览器或电子邮件程序。软件应用程序可以显示内容902,在该例中所述内容是文本,但可以是其它内容。可以通过诸如编辑、删除或添加它来与内容902交互。因此,在这个特定实施例中,显示屏401上包含内容902的区域903(由虚线示出,所述虚线不一定要示出)可以被认为是先前定义的输入区。触针204可以在显示屏401上由交互点402指示的区域(或对应于显示屏401上交互点402的输入表面的部分,其中输入表面与显示屏401不同)上悬浮。因为交互点402在输入区903之内,因此调用目标,以及最终的输入屏面501会如先前描述地显示。如果交互点402位于输入区903之外(且在任何输入区之外),那么调用目标和输入屏面501会不被显示。因此,调用目标和/或输入屏面是否被显示取决于交互点402相对于输入区的位置。输入区可以由操作系统和/或当前运行的应用程序软件定义。
在这个例子中,输入屏面501可以与输入区903相关联,且最初可以是没有用户输入和内容的。输入屏面501会特别地与输入区903中的插入点相关联。通常,应用程序或主宿应用程序的系统(诸如操作系统)会提供一插入点,其中由输入设备创建的输入会被插入到诸如输入区等控件中。例如,应用程序会显示插入点以指示由输入设备创建的数据将被插入到哪里。文本的插入点一般会被显示为闪烁垂直线形式的光标。插入点的位置通常由一个或多个设备控制。插入位置会进一步是可替换文本的选择。当用户希望用新输入数据替换文本的选择时,用户可以选择要替换的整个文本。例如,用户可以激活与定位设备相关联的命令按钮,接着移动定位设备使得所显示的指针经过或通过要被替换的文本。这个过程有时被称为文本选择的“块化(block)”。当用户接着将输入输入到控件中时,整个选中的文本被新输入的数据代替。
在这个例子中,用户在内容902中将单词“three”块化,意在编辑那个单词。所选部分会因此被认为是输入区903中的插入点904。用户使用输入屏面501对内容902所作的任何改变会在插入点904处发生。如所示的,用户将手写用户输入“at”添加到输入屏面501。与输入屏面501相关联的插入点904还会被加亮显示,或者被修改成指示它与输入屏面相关联。
参见图10,用户继续书写,添加到先前书写的“at”,这样使得输入屏面501中的手写内容现在是“at least four,but no more than five”。如上所述,输入屏面501可以向右扩展,且如果需要可向下扩展以容纳用户输入。同样地,输入屏面501可以用不违反Mhr和Mvb页边空白、且将插入点502保持在一固定位置的方式向右和向下扩展。在这个例子中,定位点502在输入屏面501的右上角。同样地,输入屏面501最初可以出现在不违反Mhl、Mhr、Mvt和Mvb页边空白的位置处。
如图11所示,当用户完成将用户输入添加到输入屏面501时,用户输入会被传输到与输入屏面501相关联的输入区,在本例子中是输入区903。具体地,用户输入可以被传输到与交互点402相关联的输入区903范围内的位置,该交互点在这个情况下是由动态软件应用程序所生成的插入点904。用户输入在被添加到输入区903之前,可被进一步转换成另一种形式。例如,当用户输入为手写墨迹时,墨迹会被识别为文本,所识别的文本会被添加到输入区903。如所示的,用户的手写被识别,且对应于手写的所得文本会替换插入点904处加亮显示的单词“three”,使得内容902的相关部分现在读处为“...within at least four,but no more thanfive,Years...”。在插入来自输入屏面501的所识别用户输入后,插入点902现在位于插入的内容之后,并以标准文本光标的形式示出。
可以如所期望的在各个时刻自动或手动地执行手写体识别。例如,只有在用户完成添加用户输入后才调用手写体识别,或在用户添加用户输入时自动调用手写体识别。当在用户添加输入时执行识别时,手写体识别会在书写每个字符或写完每个单词后自动地执行。手写体识别所得的文本可在用户仍然添加输入时添加到输入区903,而不是等待用户完成或在用户完成后。识别会响应于触针204被提起离开输入表面至少某段时间才发生。或者,识别响应于来自用户的手动命令、响应于切换输入模式或和/或响应于切换应用程序而发生。
对于定位点502是固定的规则会有例外。例如,当插入点904在输入屏面501下移动时,输入屏面501会移动足够的量以防止插入点904相对用户被隐藏。插入点可以在输入屏面501下移动,其中,例如输入屏面501中的用户输入手写体被识别并且在用户书写时将其发送至输入区903。
图12示出了结合因特网web浏览器软件应用程序使用输入屏面的另一个例子。浏览器应用程序可以使用用于显示当前浏览的网页的窗口中的内容框1203来显示浏览器窗口。浏览器应用程序可进一步显示因特网地址输入框1201,它会接收诸如以统一资源定位符(URL)的形式的用户输入因特网地址。在这个实施例中,因特网地址输入框1201是用于与输入屏面交互的输入区。内容框1203中示出了另一个输入区1205。内容框1203中的任何输入区的存在和/或位置可由在任何给定时刻浏览的特定因特网网页定义或取决于它。所显示的因特网网页可以被认为是文档,一般地,任何类型的文档可以定义其中任何输入区的存在和/或位置。
如果插入点(未示出)保持在因特网地址输入框1201中或靠近它,那么作为响应,可出现调用目标(未示出)和/或输入屏面1204。在这个例子中,悬浮位置可以在因特网地址输入框1201中,这在Mvt页边空白之外。因此,位置规则应该确保调用目标和/或输入屏面1204不会在Mvt页边空白以上显示。取决于特定的环境,调用目标和/或最初显示的输入屏面1204可能需要向下移动一较小的量来确保这一条件。此外,显示调用目标和/或输入屏面1204的位置会受到所期望示出的任何自动完成的下拉的影响。例如,当因特网地址输入框1201具有下拉所建议的完整因特网地址列表的自动完成特征时,调用目标和/或输入屏面1204最初的显示位置可以被调整为在将显示期望的下拉自动完成列表的底部以下显示。
同样地,根据交互点离显示屏的右侧多远,调用目标和/或最初显示的输入屏面1204可能需要向左移动以确保输入屏面1204的默认初始大小不会违反Mhr页边空白。用户可以使用触针204写入一URL,诸如“www.microsoft.com”。这个手写的URL可以被识别,所得的文本会被添加到因特网地址输入框1201中。作为响应,可以浏览与该URL相关联的网页。如果交互点与输入区1205相关联(例如,在输入区1205中),那么发送到输入区1205的所得的用户输入可与所显示的网页交互和/或被发送到提供所显示网页的远程服务器。
召唤(summon)和解散(dismiss)
输入屏面被描述成通过将触针204悬浮在输入区之上来召唤。然而,输入屏面(诸如输入屏面501或输入屏面1204)可以用多种方式中的任意一种来召唤。例如,可以响应于用户命令明确地召唤输入屏面,所述用户命令诸如键盘命令、菜单命令或触针204的姿势。触针姿势可以包括任何类型的姿势,诸如相对于显示屏401悬浮、轻击和/或拖曳触针204。可以用或不用前述的调用目标来召唤输入屏面。
此外,输入屏面被描述为在首先出现调用目标后被召唤。然而,调用目标不是必须的,可以无需先前的调用目标而召唤输入屏面。这在输入区当前为空白(没有任何用户输入)或是某一特定类型时特别有用。因此,在某些实施例中,一般首先出现调用目标,接着出现输入屏面(如果被召唤),而在某些情况下,在同一实施例中,输入屏面会被召唤而无需调用目标。例如,响应于触针204悬浮在空白输入区上,会立即召唤输入屏面。或者,响应于触针204悬浮在或接近于电子邮件中空白的“To”、“From”或“Subject”输入区,会立即召唤输入屏面。立即召唤的输入屏面会与显示调用目标后召唤的输入屏面不同。例如,立即召唤的输入屏面会较小或缺少某些元素(诸如键盘按键、模式切换用户界面等等)。在这种情况下这种较小、较简单的状态会是优选的,因为这种较小、较简单的输入屏面会是用户实际期望经由输入屏面开始输入的有根据的推测,反之在这种情况下显示全输入屏面会有些贸然。
同样地,输入屏面(诸如输入屏面501或输入屏面1204)可以用多种方式中的任意一种解散。例如,输入屏面可以由用户调用的键盘命令、菜单命令或触针204的姿势来明确地解散。同样地,这种姿势可以是任何类型的姿势。一旦被明确地关闭,调用目标和/或输入屏面不会关于同一输入区或软件应用程序再次自动显示。然而,如果焦点改变或者如果触针204从当前聚焦的输入区或应用程序移开,那么调用目标和/或输入屏面的自动调用会再一次关于同一输入区执行。
在基于姿势的解散的一个例子中,如果触针204悬浮在所显示的输入屏面之外(或在输入屏面的边界之外至少预定距离,诸如1/2英寸),则会解散输入屏面作为响应。对话窗口会提供给用户验证解散是所期望的机会。这个“悬浮离开”解散可以总是解散输入屏面,或者可以仅当触针204已经进入输入屏面的区域时解散输入屏面。这可以降低非预期的解散发生。基于姿势的解散的另一个例子可以是响应于触针204走出输入表面的范围之外而解散输入屏面。这种“范围之外”解散可以总是有效,或只有在用户输入已经被提供给输入屏面时才有效。同样地,后者可以有助于减少非预期的解散。“悬浮离开”解散和“范围之外”解散的每一个也可要求触针204离开输入屏面或位于范围之外至少一最小超时。超时可以是任意时间量,诸如大约一秒或更长。
解散输入屏面的还有一种方式是解散与输入屏面相关联的软件应用程序和/或输入区。如果这种情况发生,那么输入屏面中任何还没有发送给软件应用程序和/或输入区的用户输入会被清洗并且不被发送。然而,只是将焦点改变到另一软件应用程序或外壳不会影响输入屏面,所述输入屏面会保持打开但位于焦点之外,直至再次被选中。
输入屏面内容形式
输入屏面的例子至此是结合使用触针的手写体用户输入来描述的。然而,输入屏面可接受多种用户输入格式,包括键盘输入和语音。根据所期望的用户输入的类型,可以用不同的形式显示输入屏面。例如,在期望自由式手写体时,输入屏面可以是空白的或可以包含用于在其上书写单词的单线。在期望逐字符识别时,输入屏面可显示一系列块或其类似物,对每个字符一个,如图13所示。随着输入屏面的扩展,会显示额外的字符块。在期望键盘输入时,输入屏面会显示键盘的图标,或者甚至是可以用于输入字符的图形交互式键盘。输入屏面可包括一个或多个按键或允许用户手动选择显示哪种类型的输入屏面的其它控件1301。例如,按键1301会允许用户在键盘、自由式手写体和逐字符(块样式)内容输入屏面之间选择。或者,用户可从调用目标中选择输入屏面内容的类型。
多语言容纳
至今,所描述的输入屏面是基于假设:用户输入是在行的方向上自左到右书写,接着那些行是以从上到下的方向书写的语言,诸如英语。在这种情况下,所期望的是用户面板向右扩展,接着向下扩展以匹配英语书写的方式。然而,不是所有的语言都是以这种方式来书写的。例如,希伯来语在行的方向上自右到左书写,接着那些行是以从上到下的方向书写的语言,繁体中文在列的方向上自上到下书写,接着那些列以从右到左的方向书写。因此,可能期望输入屏面可以在与先前所描述的不同的方向上扩展。例如,在用户以希伯来语书写时,输入屏面会先向左扩展直至其达到Mhl页边空白,接着如每行所需要的向下扩展直至达到Mvb页边空白。输入屏面的右和上边缘会保持固定,且定位点可以是右边缘和上边缘的相交点。同样地,在希伯来语的情况下,边界606可以是左边界。或者,在用户以中文书写时,输入屏面会先向下扩展直至其达到Mvb页边空白,接着随着每列的需要向左扩展直至达到Mhl页边空白。输入屏面的右和上边缘会保持固定。概括地说,输入屏面可以在四个可能的方向中的两个上扩展并且在另外两个方向上保持固定。
所使用的特定语言可以取决于创建输入屏面的环境、取决于用户命令、取决于操作系统、取决于与输入屏面相关联的输入区域和/或取决于当前聚焦的软件应用程序。按键1301可进一步允许用户手动选择语言。可以通过与调用目标的交互来选择语言。输入屏面扩展的方式和用户手写被识别的方式都会取决于语言的选择。
结论
因此,描述了在基于触针和其它计算机系统中添加用户输入的有用且方便的方法。描述了可以用按需方式动态地扩展的输入屏面,这对于接收写入或键入的用户输入尤其有效。在用户需要之时或用户需要之处,输入屏面会提供对写入或键入用户输入简单的访问,而同时降低或最小化所使用的贵重的屏幕“不动产”的量,且减少或消除遮盖操作系统或软件应用程序所显示的其它元素的可能性。
虽然这里所描述的实施本发明各个方面的装置和方法以示例的方式示出,应该理解,本发明不限于这些特定实施例。本领域的技术人员可以作出修改,尤其是根据上述教导。例如,上述实施例的一个或多个元素可以单独使用或结合其它实施例的一个或多个元素使用。同样地,虽然结合Microsoft WINDOWS品牌操作系统描述了本发明的各部分,应该理解,可以使用其它操作系统,诸如其它基于图形用户界面的操作系统。此外,虽然使用所附权利要求书定义了本发明,但是这些权利要求也是说明性的,其中本发明被构想为包括这里所描述的元素或步骤的组合或子组合。也应该理解,可以作出修改而不背离本发明的实质精神和范围。