CN1091536A - 面向目标的结构系统 - Google Patents
面向目标的结构系统 Download PDFInfo
- Publication number
- CN1091536A CN1091536A CN93112880.3A CN93112880A CN1091536A CN 1091536 A CN1091536 A CN 1091536A CN 93112880 A CN93112880 A CN 93112880A CN 1091536 A CN1091536 A CN 1091536A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- order
- scrollbar
- window
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
- G06F3/04855—Interaction with scrollbars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Abstract
本发明公开了一种新颖的面向目标的结构系统
的装置及方法。该系统用新颖的结构体系提供了第
一个面向目标的操作系统。
Description
本发明涉及显示系统的改进,尤其本发明提供了一种面向目标的操作系统。
在工作站软件的开发过程中,越来越重要的是提供灵活的软件环境但需与用户界面保持一致性,由赫兰芝等人(Hernandej et al.)的美国专利4,686,522公开了一种致力于这类操作环境的早期努力,该专利讨论了一种合成的图形和文本处理系统,其中,用户可以在光标所在之处调用一个动态选择单并从其中的多项功能中调用任一功能。这种与用户进行自然交互对话的模式改进了用户界面并使其应用更为直观。
面向目标的应用也应该反映与用户界面一致的交互行为而与哪种应用在当前有效无关。先有技术对比文件的申请人没有意识到要提供新颖的软件和硬件系统特性。该类特性通过将面向目标的特性构造到操作系统中而使所有面向目标的应用以一致的方式运行。
本发明简述
本发明的一个主要目的是提供一种新颖的面向目标应用的界面。面向目标的操作系统的图形用户界面的用户经常移动鼠标器,选中目标(object,在面向目标的编程中,目标是根据包含的数据及在该数据上可进行的操作的实体的表示),然后将目标托着移动或复制,然后在鼠标器上连按两下打开该目标。这类操作称为直接操纵,或交互作用。相应于用户按鼠标,移动鼠标及松开鼠标按键的事件的顺序叫做输入语法。某些用来指示特定动作的事件的顺序叫做语义操作。本发明公开了用于将输入语法翻译成支持,选择,观察,位移,AutoScroll(自动卷动),以及托曳/投入(复制)(Drag/Drop(copy))的目标的语义操作。
本发明对鼠标器按键是否按下进行检测并采用以下逻辑:
(a)若当用户按下鼠标器按键时选择(Option)键被按下,系统设置可变的f.lnteraction Type(f交互作用型)到恒定K Drag(K托曳)以进入托曳模式。该系统然后利用选定的目标作为操作对象开始托曳操作;或
(b)若选择键未按下,则该系统将可变f交互作用型设置为恒定k选择(k Select)从而进入选择模式。然后,选择操作开始。
若用户按下鼠标器按键并一直按着它,则下列逻辑将被涉及。若系统处于选择模式,则其确定是否用户已将鼠标器移动超越一阈值(叫做移动阈值)。这一确定是由比较起始鼠标器位置(它由获取起始位置方法(Get lnitial Location)返回)和当前当鼠标器位置(由获取当前位置方法(Get Cunent Location)返回)的方式而予完成。若该鼠标器移动超越移动阈值,系统则结束选择模式而进入移动模式。这一转换是通过将可变f交互作用型设置为恒定K移动(K Move)而实现的。然后系统通过调用其选择结束(Select End)的方法告知目标结束选择操作。然后系统通过调用其移动开始(Move Begin)方法启动移动操作。
如果鼠标器没有移动,系统将检测鼠标器已按下多长时间。这一检测可通知比较由获得起始时间(Get lnitial Time)方法返回的起始鼠标器按下时间和获得当前时间(Get Carrent Time)方法返回的当前时间的方法而实现。若鼠标器的按键按下的时间超过一阈值(称之为观察阈值),则系统结束选择模式而进入观察模式。这一转换可通过将可变f交互型设置为恒定k观察(k Peek)的方式而予实现。通过调用选择结束方法,可要求目标结束选择操作并通过调用观察开始(Peek Begin)方法开始观察操作。否则,若鼠标器未移动或按下按键的时间在观察阀值之内,该系统通过调用该目标的选择重复(Select Repeat)方法而继续选择操作。若该系统检测到用户处于移动模式,则该系统首先确定是否用户已在窗口之中,窗口的边缘,或在窗口之外移动鼠标器。通过比较由获得当前位置方法返回的当前鼠标器位置和由获得目标存储装置边界(Get Container Bounds)方法返回的目标存储装置(object container)的边界可进行以上确定。
若鼠标器仍在窗口边界之内,系统通过调用目标的移动重复方法继续移动操作。若鼠标器位于窗口边界上,这指示了自动卷动操作。系统要求目标的存储装置沿鼠标器位置指出的方向卷动。这一行为可通过调用目标存储装置的自动卷动方法并将当前鼠标器的位置作为一个参数传送的方式而予完成,一旦完成,系统将通过调用目标的移动重复方法继续位移操作。
若鼠标器已移动超过窗口,系统将结束位移模式而进入拖曳模式。这可由设定可变f交互型成恒定k托曳而实现。通过调用位移结束方法可要求目标开始拖曳操作。若系统在拖曳模式,则其通过调用目标的拖曳重复(Drag Repeat)方法,继续该拖曳操作。若系统处于观察模式,系统首先确定是否用户已将鼠标器移动超过一确定阈值(称之为位移阈值),这可通过比较获得起始位置方法返回的起始鼠标器位置和获得当前位置方法返回的当前鼠标器位置的方式而予完成。
若鼠标器移动通过该位移阈值,则可通过将可变f变互型设置为恒定k位移的方式而结束观察模式并进入位移模式。通过调用观察结束方式来要求目标结束观察操作。通过调用位移开始方法要求目标开始位移操作。否则,若鼠标器未曾移动,则调用目标的观察重复方法而使系统继续其观察操作。
若系统检测到用户已释放鼠标器按键且其处于选择模式,则该系统结束选择模式,这一行为可由把可变f交互型设置为恒定K无(K None)的方法而予完成。通过调用其选择结束方法,系统询问目标结束其选择操作。若系统处于位移模式,系统可将可变f交互型设置为恒定k无以结束位移模式。然后,系统通过调用其位移结束方法而询问目标结束其位移操作,系统还将把可变f交互型设置为恒定k无而结束拖曳模式。通过调用其拖曳结束方法可要求目标结束其拖曳操作。若系统处于观察模式,系统可把可变f交互型设置为恒定k无的方式而结束观察模式。通过调用观察结束方法可使目标结束观察操作。
附图的简要描述
图1A是根据本发明的一个人计算机的框图;
图1B是根据本发明的显示;
图2展示了根据本发明用于生成一个应用的工具;
图3是根据本发明的命令处理的流程图;
图4是根据本发明的检测窗控制;
图5是根据本发明的检测窗控制激励;
图6是根据本发明的检测窗更新;
图7是根据本发明的检测窗控制处理的摘要;
图8是根据本发明的控制板示意图;
图9是根据本发明的对话窗示意图;
图10是根据本发明的对话窗颜色控制器的示意图;
图11是根据本发明的射频按键的示意图;
图12是根据本发明的选择单状态处理的详细流程图;
图13是根据本发明的显示的图片;
图14是根据本发明的原子执行(atomic execution其意为单个机器指令执行的计算)的详细逻辑;
图15展示了根据本发明与智能标号处理(Smart label Processing)有关的详细逻辑;
图16展示了根据本发明的智能窗口标号处理的详细逻辑;
图17展示了根据本发明如何生成目标以及如何在与一个可移动和选择的目标的典型交互作用期间进行目标之间的通信;
图18是一个根据本发明用于通知源目标的目标生成通知流程图;
图19展示了一个根据本发明的流程图,它表示了与选择适当用户界面元件有关的详细逻辑;
图20是根据本发明的流程图,用于展示与卷动有关的详细逻辑;以及
图21A、21B和21C展示根据本发明的窗口卷动。
本发明的详细叙述
本发明最好用在与个人计算机的操作系统有关联的计算机中。这些个人计算机包括象IBMRPS/2或AppleRMacintoshR这类计算机。图1展示了具有代表性的硬件环境,它是一个根据本发明典型的工作站的硬件配置。它包括一个中央处理器10(例如常规的微处理器)以及多个通过系统总线12连接的其他单元。图1A所示的工作站包括RAM(随机存储器)14;ROM(只读存储器)16;用于连接诸如磁盘单元20之类的外设到总线的I/O转接器18;用于连接键盘24,鼠标器26,喇以28,麦克风32,以及/或其他用户接口(例如触模式屏幕设备)到总线的用户接口转接器22,一个用于将工作站连到数据处理网络的通信转接器34;以及用于将总线连至显示装置38的显示转接器36。该工作站中装有IBM OS/2或Apple System/7这一类的操作系统。
本发明是一种新的面向目标系统软件,它包括系统软件和设计用于改变终端用户的开发程序,以及系统销售商的个人计算机的开发系统,该系统是一完整,独立和新颖的操作系统及开发环境。该开发环境来自于高性能个人计算的基础结构。本发明为一完全面向目标的系统,它包括丰富的结构(framework,是指一组提供一个解决一组相关问题的事先制成的结构的内部相关的分类),分类库(class library,其意为实现区域功能性的至少一个分类的集合,程序员通过建立其目标和涉及其方法使用一个分类库)以及一个新生成的目标程序环境,用于从根本上改进第三者应用软件(third party application soflware)开发的经济情况,本发明是一个完全可移植的操作系统。
通常的操作系统提供了一组软件开发程序可用来生成其软件的服务。他们的程序很松散的综合到整个操作系统环境中。例如,DOS应用占用了整个机器。这意味着就用户而言,该应用即为操作系统。在Atach MacintoshR以及窗口(window)操作系统中,应用觉得看起来很类似,而且他们通常支持在应用之间的截取和连接(cutting and pasting),这通常使用户可在一个单纯的环境中易于使用多个应用。但是,由于其为一总体未分解成一组服务及软件结构,因此仍然难于进行软件开发。
在本发明中,写一个“应用”意味着生成一组综合到操作系统环境中的目标。软件开发者可依赖用于一组完善的服务及一个软件结构的操作系统开发软件。本发明的软件结构提供了极有效的抽象(abstractions)以使软件开发者致力于解决他们的问题而非在建立基础结构上。进而,软件开发器的主要抽象与用户必须明白以运行其软件的主要概念非常接近。该结构导致了易于开发完善的应用。
本部分叙述了利用本发明软件的四个步骤,进行应用开发的用户通常关心以下问题:
O 我正在模拟什么?
对于字处理软件而言,我正在输入文本,对于展开图表(spreadsheet)而言,是在单元中的数值和公式。
O 如何表示数据?
对于字处理软件而言,是在屏幕上适当的行和页停顿处以可见(wysiwyg)的方式显示字符;而在展开图表中,是以表格或图形进行显示;而且在结构式图形程序(即Mac Draw)中,它被显示为一组图形目标。
O 可选择什么?
在字处理应用中,通常是字符的选择范围,在结构式图形程序中,是一组图形目标。
O 可在该选择上运行的命令是什么?
字处理软件中的命令可能是要加粗(bdd)一组字符。而在结构式图形程序中的命令则可能是旋转一个图形目标。图1B示出了根据本发明的显示。在41处展示的命令用于将一个图片排到显示的前端。图形信息的表示展示在40处。最后,一个特定图形园将选择(一个圆)示于42处。
开发器必须回答用户的同样这四个问题,本发明提供了解答这四个问题的软件结构以及服务。第一个必须回答的问题是:我正在模拟什么?在字处理程序中,数据包括完成一个文件的字符,在展开图表中的数据包括在多个单元中的数据及公式。在日历程序中,数据包括与一给定日期相关的约会和时间。本发明提供了帮助模拟数据的方法。有些分类(class,是指在面向目标的编程中,作为生成目标的模式,一个分类可认为是一个程序是定义的类别,其中,程序可说明数据成员及属于该分的目标成分的功能)用于模拟特定的数据类型。这些数据类型包括文本,结构式图形,声音及视频。除这些特定类别外,本发明还提供了大量其他抽象。这些抽象用于支持问题模型,包括收集分类,并行控制,恢复软件结构,以及C++语言。对于一特定数据类型的数据模型进行封装(encapsulate,在面向目标的编程中,其意为保护目标的属性和性能不能由其他目标直接存取)的分类为存取及修改该数据存装器(data encapsulator)中的数据提供了专用协议,该分类还提供了一种方法用于超越类属协议并嵌入其他数据封装器,从而在该数据改变为所有登记的目标生成通知,该分类进而提供一个类属协议用于生成数据表示(Presentation)。
下一个必须回答的问题是:如何表示数据?在一个结构式图形程序中,通常将一组图形目标表示在屏幕的显示区域。在展开图表中,通常是一个有许多单元的表格或图形;而在一个显示程序中,则为一组幻灯片(Slides)或一个略图(outline)。本发明为数据封装器的数据提供了一个“视图”。该视图由一个“视图系统(view system)”和图形系统调用所生成。但是,数据显示还包括播放声音或视频剪取。
其次:是选择什么?在文字处理程序中,是选择字符的范围;在结构式图形程序中,是一组图形目标;而在展开图表中则是单元的范围。本发明为系统支持的所有主要数据类型提供了选择分类,表示由用户所做的选择的抽象基本分类(abstract basedass)提供了选择数据的地址空间独立说明。对于文本,则是字符的数字范围而非字符的一对指示字。这一区别很重要,因为当与其他用户合作(实时)时选择可在其他机器中互换。该基本分类超越(override,在面向目标的编程中,其意为在一个导出分类中用有同样名字的一个成员功能取代由一个基本分类衍生的成员功能,从而改变或添加特性)一个类属协议,而该类属协议用于生成一个相应于该选择的持续选择持续选择是一个稳定目标(anchor object)的子分类(sub Class)而且可比它们的对应的短暂选择更重的加权,因为持续选择必须存在于编辑改变中,例如,当文本在持续文本选择之前或之后加入时,该持续文本选择必须调整其本身,锚目标也用于实现较佳联接(hypermedia linking),数据流联接以及注释。
基本分类还提供一个超越类属协议以供吸收、嵌入及输出在数据封装器中的数据。基本分类与用于生成他们的用户接口技术无关。选择通常由用户通过直接操纵而生成(即导出文本或单元的范围)。但其亦可由命令序列(script)或命令的结果生成。这个与用户界面的正交性非常重要。基本分类还提供专用协议以存取数据封装器。在封装器分类的一个特定子分类和一个模式选择分类的子分类之间有非常牢固的关系。
最后:什么命令可在该选择上运行?在字处理程序中,一个命令可以改变选定范围的字符的字体。在一个结构式图形程序中,一个命令可以旋转一个图形目标。本发明提供了大量用于所有内部数据类型的内部命令目标以及类属命令和许多用户界面命令,类属命令用载截取、复制、粘贴、开始较佳联接,完成联接,导航联接,在联接上存入数据,在联接上取出数据。表示用户为命令的抽象基本分类用于捕捉用户行为的语义,确定是否该命令可被执行,取消或再执行。命令目标负责命令执行后封装所有用于取消命令的信息。在命令执行前,命令目标是用户行为的简洁表达。该基本分类与用于生成它们的用户界面技术无关。通常,是由用户通过直接操纵(即移动一个图形目标)或从选择单中生成命令,但也可由命令序列生成命令。这一与用户界面的正交性非常重要。
结构的好处
本发明中插入抽象的好处远大于提供一个概念模块,插入结构提供了许多完善的特性。这些特性构制在基本操作系统中,这意味着结构可以调用相当小的方法实现主要的用户特性。其结果便是对于结构编码投资用于若干特性。
多数据类型
一旦一种新数据被完成,该新数据类型成为系统的一部分。可以处理数据封装器的现有软件可以无需修改而处理该新数据类型。这与Macintosh计算机系统一类的现有计算机系统不同。例如,一个暂时缓冲器图符(Scrapbook desk accessory)可以存储任何种数据,但它只可显示具有文本或快速绘图(quickdran)图像分量的数据。与之对比,本发明的暂时缓冲器可显示任何种类的数据。因为它以目标的格式处理数据。任何生成的新数据类型与系统提供的数据类型看起来完全一样,此外,在该暂时缓冲器中的数据是可编辑的,因为一个目标提供编辑数据标准协议。
该暂时缓冲器例子突出了数据封装器的优点。如果软件被开发从而可以处理数据封装器,则应用可设计为只是处理新数据类型。一个新应用可显示和编辑这种新数据而无需进行修改。
多级取消
本发明设计用于支持多级取消。但是,实现这一特性并不需要在开发软件上作更多的努力。该系统只是记住生成的所有命令目标即可。一旦相应的命令目标存在,用户可以取消对数据的特定改变。由于本系统可以保存命令并决定取消或再执行命令,用户因此不用实施一个取消过程。
文件保存的可靠性以及改编
数据封装器协议的一部分涉及将数据提交到数据流中并在另一地方和/或时间再生成数据。本系统采用协议实现文件保存。根据原配值,用户的数据目标在保存时被汇流成文件。当文件被打开时,数据目标便被再生成。本系统采用数据管理结构(data management framework)以确保写到磁盘中的数据是一致的。通常用户都倾向于保存一个文件以便一旦系统出现故障时,其数据将在磁盘上保留起来。本发明无需这种保存,因为系统保留了所有的命令目标,可以从文件的最后一个磁盘版本开始并重现最后该点的命令目标以重新构制文件的状态。就可靠性而言,系统可以自动记录命令目标到磁盘,所以如果系统损坏,用户不会丢失比最后一个命令更多的信息。
本发明还支持文件改编。用户可以从一个文件的当前状态生成一个草稿、草稿是在最后那一特定点处的文件的不可变“快照”(生成一个草稿的一个原因在于要将其传至其他用户征求意见)系统自动处理涉及生成一个新草稿的细节。
合作
如上所述,通过在过去某一时刻开始其状态并应用自该时刻完成的命令目标的顺序便可重新构成一个文件。这一特征可使用户在出现故障时恢复其工作,并可用于支持实时合作。命令目标是根据选择运行,而这些是地址空间独立的。因此,一个选择目标可通过网络送到合作者之处并被用于远地机器。命令目标也是如此。由合作者执行的命令可送给他人并在其机器上运行。若合作者从数据的相同复制开始,则他们的复制将在他们进行改变时保持“同步(in syuc)”。用一个命令目标即可生成一个选择,从而所有合作都有相同的当前选择。
系统还采用“根据模型的跟踪(model based tracking)”的特性对每个合作者的机器进行鼠标器跟踪。生成的跟踪程序(tracker,是指可以跟随用户鼠标器移动的目标)目标用于处理鼠标器接口按键的情况。该跟踪程序目标在用户移动鼠标器时生成并执行一系列增量命令。这些命令被送到合作者并由每个合作者执行。其结果便是每个合作者在跟踪反馈发生时可看到该跟踪反馈。系统还建立了一个合作策略。该合作策略决定改变数据时是否用户被限制进行变换或可随意进行改变。本发明处理使应用开发器无需有关合作的机制。
生成命令序列(Scripting)
设计一个管理命令目标序列的系统也实现了系统范围的命令序列组成方法,命令目标序列等同于一个局部作用的命令序列。这一命令序列生成特性只是保持跟踪用于任何文件的命令目标。该生成命令序列的方法也采用了命令序列中的选择目标。这一特性通过改变命令序列应用的选择而提供一个定制的命令序列。由于命令目标包括一个用于指出是否这些命令目标可以用于一特定选择的协议,所以系统确定用户命令序列的改变是有效的。
较佳联接
持续选择(也称为锚)可由联接目标所连接。一个联接目标包括形成两个锚的端点的参照基准。对这一系统,联接是双向的;两个端有同样的能力,联接的一些高级应用是把方向放在该联接上、一个单独的联接目标支持两个标准特性:导航和数据流。用户可以从联结的一端导航至另一端。通常,这将涉及打开包括目的地锚的文件并加重该持续选择。准确的行为则是由目的地终端处的锚目标所确定的。例如,一个对直观显示的联接可以演示该直观显示。一个对数据库询问的联接可执行该询问。
联接也使数据流更为容易。在联接一端的选择数据可以传送到另一端以替代那里的选择。在大部分情况下,即使用户在一端复制一个选择,使用联接导航到另一端并粘贴该数据,其结果是一样的,系统处理涉及到将一个联接的一端导航到另一端的细节问题(即:对目的文件定位,打开该文件,卷动目的锚以供观看等)。与之类似,系统还处理越过该联接的数据传送。这是由存取和修改传送的数据的选择协议完成的。
注释
本发明支持系统范围的注释方法。该方法可使作者分发其文件草稿以供审阅,审阅者可加批注,然后将文件退回作者,作者可检查这些批注并对其文件进行修改(作者本人亦可在文件中生成批注)。审阅者无需与作者采用同样的软件。审阅者可以使用一个标准的注释应用程序。该程序从作者的草稿中读出数据,并生成数据的注释表示(生成这一表示是标准数据封装器协议的一部分)。
审阅者可在文件中生成选择,并联接批注到该选择。在批注和选择之间的联接使系统将批注设置于“靠近(near)”与之关联的选择之处。该联接也使注释结构更为明确,从而系统可以执行标准命令以操纵注释。批注的内容可以不仅是文本或图形,它可以是系统完成的任意数据类型。批注的内容也可用数据封装器完成,且打开一个批注将导致在数据上生成可编辑的表示。
数据结构
数据结构与回答“我正在模拟什么数据?”的问题有关。本发明提供了有助于模拟数据的方法。有很多模拟特殊数据类型的分类,包括:文本,结构式图形,声音和视频。除了这些特殊分类,本发明提供了许多其他有助于模拟问题的抽象:收集分离,并行控制和恢复结构,以及C++语言本身。在本发明中,为某一特定数据类型封装数据模型的分类是该封装器分类的子分类。
封装器分类
开发器通过生成一个封装器分类的衍生分类的方式而为数据结构的一个特定类型生成一个存储装置。对系统中的每种数据类型而言(即图形目标,文本,展开图表单元),不同的衍生分类必须作为一种类型数据的存储装置而存在。封装器的每一分类提供了一种用于存取和修改存于其中的数据的类型专用协议。该协议通常由显示该数据的表示以及修改该数据的命令所用。除了类型专用协议之外,封装器分类还提供类属协议,它支持把数据封装器作为“里盒子”嵌入其他外来类型、协议必须在衍生分类中实现以支持生成表示、编辑程序以及用于封装数据的选择。存储装置只须明白该类属协议以支持任意外来数据类型的嵌入。
选择数据的结构
数据类型设计者有C++目标模型以及丰富的标准分类以供其在设计一特定类型数据的结构进行选择,本发明提供的分类应该总是在设计唯一的分类以表示数据之前就加以考虑。这样会将可能由生成新分类所产生的重复减至最少限度,因为新分类为已存在于系统中的分类提供了类似或相同的功能。这些最基本的是C++目标模型。一个设计人员可以生成一个分类或多个分类,该分类与用户的智力模型极为匹配,所设计的分类是用于表示与用户有关的分类。
本发明的基本分类提供了许多标准方式以表达数据。收集分类提供了多种方式将存储器的相关目标收集到一起,这些目标的范围包括简单集到字典。基于磁盘的收集(提供持续不间断的目标收集)也可用。一种要求二维(2D)和三维(3D)图形模型的数据类型(例如图形编辑程序)也受到支持。许多二维和三维模型目标是和变换、矩阵分类以及三维摄象一起提供的。与之类似,本发明提供了可以支持全部国际文本、美术印刷以及可扩展文体的机制的完善的文本数据类型。本发明还提供了对基于时间的介质(例如声音和视频)的支持。完善的时间控制机制可用于在各种基于时间的介质之间提供同步。
封装器分类为位于其中的数据提供了一个协议,以生成多种表示分类。这些表示包括草图或短文(thumbnail,在此是指一帧中心实际内容的小而精确的表示),只供浏览(browse-only)表示、可选择表示以及可编辑表示。还有一个协议用于处理表示的尺寸并将数据与选中的尺寸相适应。该封装器分类的子分类负责超越和实现该协议以支持数据嵌入其他封装器中。一般受到支持的表示包括:
·草图或短文-这种表示是要给用户“窥视”一下看看在封装器中包括了什么。这类表示的尺寸通常很小而且可以按比例缩小和/或剪取数据以使其与表示的尺寸相适应。
·只供浏览-这类表示使用户可在正常尺寸下观看数据,但用户不能选择和修改任何数据。
·可选择-这类表示加入选择数据的能力到只供浏览表示提供的权能之中,它用于注释以使注释与数据中的选择相连系而不允许修改数据本身。可选择表示通常作为只供浏览表示的一个子分类而予以实现。
·可编辑-这一表示将修改数据的能力赋予选择表示提供的权能。这一表示允许用户生成新数据并编辑现有数据。通常,该表示提供其自有的窗口以供编辑之用。有可能在将来在该表示中加入支持以允许在适当地位处的编辑。该表示通常作为可选择表示的子分类而予实现。
改变通知
当一个封装器分类中的数据改变时,必须为用户(即,数据的视图)提供改变的通知,封装器根据一个用于标准通知支持的内部分类使该封装器通知客户对于数据结构的改变。一个客户可以可连接到通知特定改变的封装器或通知任何改变的封装器。当改变发生时,封装器要求模型将有关改变的通知传播到所有有关的客户。
数据表示
这一部分涉及系统如何把数据表示给用户。一旦数据已经显示给系统,用户接口的作用就是以一适当及有意义的方式把数据向用户表示,用户接口在用户及模型数据之间建立对话。该对话允许用观察或理解数据并给用户机会修改或操纵数据。本部分注重在数据表示。
用户界面
开发器生成一个分类以使表示数据可与数据封装器易于进行交互。通过从表示中分离数据模型,本发明简化了同样数据的多种表示。一些应用,例如AppleRMacintosh Finder,总是支持同样数据的多种表示的限定格式。有时,可在同时显示同样数据的不同视图是非常有用的。这些不同的视图可以是同一分类的实例(instance,是指一个属于一特定分类的目标)一就象在一个3维CDA程序(它显示同样数据的四个不同视图)一样。对于每种表示,用户都需要先写一个视图,该视图可以显示模型及一组跟踪程序。该跟踪程序跟踪可以选择和修改该模型的命令。
静态表示
最简单的表示类型是数据的名字,该名字是指出数据内容或类型的一个文本串。其例包括“第四章”,“1990联邦收入税收”,“计划”。另一简单表示类型,图符,则是数据的小图形表示。它通常指示数据类型,其例为一本书,一个报告,一个财务模型,一个声音或视频记录,一个绘图。但是,它们也可以显示状态(例如正在打印的打印机)或指示内容(例如一个绘图的缩小的视图)。最终,草图或短文是模型数据的一个小视图。该视图可以只显示部分数据以适应可用空间。这类例子包括缩小的绘图,一本书的目录表,缩小的信,或一个长文的缩小的第一页,只供浏览表示使用户可以正常尺寸观看数据但不能修改或选择任意数据。
可选择表示
可选择表示允许用户观看,考察以及从数据中抽取信息。这些表示提供前后关系:数据是什么,数据在哪儿,数据是何时的数据。它有助于以一个结构式的方式表示数据(例如表,栅格,略图或空间的形式)。它也有助于显示在数据元素之间关系,数据与其存储装置或同类之间的关系,以及任何其他从属关系。
可选择表示也显示元数据(metadata),其例之一为当前选择,该选择指示了用户当前正在操纵的数据元素。另一类型的元数据是在数据元素之间的较佳联接。该视图可以指示正在数据上合作的其他用户。
可选择表示通常对于数据类型是非常具体的。它们由窗口,视图以及其他可以制定以最好反映数据类型的接口目标所组成,一些例子如下:
·声音记录-控制面板可使音响表示简便易行,视图可将声音显示为乐谱或一系列的波形,视图可包括一个简单的数量或时间指示。
·财务模型-该模型可展示为一组公式和其他参数,可以时间的特例从模型中显示数值,或由具体的输入数值作为展开图表的数值进行显示,或以各种图形形式显示数值。
·书-该模型可视为目录表,索引,插图表,它亦可视为一系列的页、章节或一个连续的文本流程。
·视频记录-该模型可被视为一系列单独的帧或一个连续的表示,视图可包括跟踪标记、帧号以及时间指示。
·包括其他目标的存储装置(container)可以其名字的字母顺序显示目标,或以其类型或其他特性,例如一组图符或一组草图显示目标,所谓存储器装置(container)是指存有某一分类的目标,该目标具有其他分类的目标或对于其他分类的目标的指针的数据成员。存储装置的内容由其他应用进行编辑。
可编辑表示
可编辑表示与交互表示类似,其不同之处在于可编辑表示可简化数据修改。这一行为是由鼠标器或其他指示字对数据进行直接操纵而予完成的。可编辑表示也可通过选择单和其他控制对数据进行操纵。
数据存取
表示与数据封装器进行交互以确定要表示的数据和其他信息。表示询问需要的数据的模型。该表示可以表示全部或部分任何数据封装器中的数据或可从数据封装器的数据中导出的数据。
改变通知
由于可能有许多单个模型的表示是一次有效的,数据可从包括合作者的许多源中而予改变。每个表示用于保持其本身相对于模型数据而言为最新的,通过记录通知一个模型的全部或部分改变是何时发生的即可做到以上保持。当有表示进入其中的数据发生变化时,表示接收通知并因此而更新其视图。可由以下所列的任意方式生成改变通知。首先,可从实际改变模型数据的数据封装器的方法中生成改变通知。第二,可从导致改变的命令中生成改变通知。如前所述,这两个方式各有益处。从数据封装器中生成通知可确保只要有数据改变,客户即可收到通知。而从命令中生成通知则允许“更高级别”的通知,并可减少复杂改变导致的通知忙乱。
通知结构综述
通知结构(Notification framework)提供了在目标间传播变化信息的手段。该结构允许目标表达与其关联的通知,并接收与目标相关的目标变化的通知。为提供通知给用户的分类提供了一个标准接口。通知程序分类(Notifier Classes)为该装置提供了通知源目标以管理客户名单并分发通知给这些客户。通知程序目标(Notifier objects)无需有关接收通知的目标的分类的专门知识。连接目标将通知从通知程序分发给具体的通知接受程序目标(receiver objiect),这些连接目标使如何将通知传送到不同分类的接收程序成为专业化,最后,通知目标传送关于改变的描述性信息以及描述来自一个通知源目标的特定通知的进入。
通知传播流程图
图18是用于通知源目标的目标生成通知流程图。其始于1800处并立即去往功能框1810,在该处,通知接收程序目标生成一个与其自身的连接。然后,在功能框1820处,通知接收程序目标将适当的进入加入来自一个或多个通知源目标的一个或多个通知。这些进入是由通知源目标定义的。
客户目标要求连接目标连接到连接中的进入所指定的通知的通知源1830。然后,在功能框1840处,对于每个连接中的进入,由该进入中的通知程序将连接登记为通知已进入。其次。在功能框1845处,系统进入等待状态直至检测到改变。当系统改变发生时,控制立即进入1850,在该处,通知源目标通过一个描述该改变的通知在其通知程序上改变并调用通知。
对于由通知程序登记为通知已进入的每个连接,在功能框1860处,要求该连接分发通知。依次地,在功能框1870处,连接将通知分发给通知接收程序的适当方法。最后,在功能框1880处,通知接收程序采取适当的通知行功,并在判别框1885处进行测试以确定是否另一连接由通知程序登记为通知进入。若有,则控制进入1850。否则,控制进入功能框1845等待下一变化。
数据说明
数据说明涉及数据处理的选择。若一个用户必须操纵在一结构中包含的数据,则数据必须可以说明那一数据的子集。用户通常将这一说明称为“选择”,而且,系统提供一个基本分类。所有的选择分类均来自该基本分类。本发明还提供系统支持的所有基本数据类型的选择分类。
模型选择
包含一个结构中的数据子集说明的目标是一个模型选择分类,在文本结构中,一个可能的选择说明是一对字符偏移,在一个结构式图形模型中,每一形状必须被赋予一唯一的标识,且选择说明是一组唯一的标识。说明不在选择的数据中直接指出而是可以横贯数据的多个复印件应用。
存取说明的数据
一个选择理解存取和修改数据的表示协议并且知道如何在局部地址空间中发现数据。命令目标通过数据选择存取一个表示的数据,并因此无需要求将说明转换成局部模型中的实际数据的知识。选择目标的工作正是要提供从地址空间独立说明中存取实际数据的能力。在文本封装器中,这一处理可以要求询问用于存在一定范围内的实际字符的封装器。在例如图形编辑器之类的基本模型中,该选择通常将保持该实际目标的连接。封装器必须提供寻找方法以将连接转换成实际目标。
标准编辑协议
模型选择分类提供了在选择之间交换数据的协议。通过实施类型交涉、吸收、嵌入(指将数据模型插入另一数据模型而非合并其数据)及输出数据的协议,导出的分类对大部分标准编辑命令提供支持,这意味着由系统提供的编辑命令(截取,复制,粘贴,推出数据等)将具备表示数据类型的功能且将无需对每一应用而重复实施,模型选择分类还为联接及锚交换提供了直接支持。但该模型选择分类根据若干键方法导出的分类实现支持结构的数据的交换:
复制数据(Copy Data)必须由导出的分类实现以输出说明数据的考贝,该实现生成并返回一个包含有该说明数据考贝的要求类型的新数据封装器。
采用数据(Adopt Data)必须由导出二分类实现以支持吸收或嵌入数据列与说明有关的表示。若该数据要被吸收,它必须是可以直接接合到接收程序的结构之中的类型。吸收的数据被加入由说明定义的表示之中。通常,许多数据类型是用新吸收的数据取代当前说明的数据。任何被取代的数据在数据封装器中返回以支持取消(Undo)。若该数据要嵌入,则封装器作为黑盒子接合并作为结构的子结构而加入。
清除数据(Clear Data)必须由导出的分类实现以便从有关的结构中,去除说明的数据,包含去除数据的结构的原始类型的封装器必须返回。
用户界面
生成说明的用户界面通常是数据表示的响应性,取决于数据类型和表示格式可有许多技术可用。用于生成选择的最好用户界面是直接操纵。在一个简单的图形模型中,可以在目标上用鼠标器转接一下选择目标,或用鼠标跟踪器将一个选择框施曳穿过若干目标的方式选择目标,在文本中,可由一个发现命令而生成选择,另一通用方式则是通过选择单命令(例如“find”)来生成选择。在命令发出之后,文件卷动至适当位置且搜索的文本被选中。
最后,选择可来自命令序列(或程序生成)且其结果与用户直接生成的选择一样:“命名(Naming)”命令序列的选择涉及生成描述该选择的语言。例如,在文本中,选择可能是“第二页第四段的第二个字”。本发明的结构提供了对生成命令序列的支持。
数据修改
数据修改涉及这一问题:“什么是可以在选择上操作的命令?”,若一用户要对一个结构中的数据进行修改,系统必须要能对要实行的修改的类型进行准确说明。例如,在字处理程序中,用户可能想要改变选定的部分字符的字体。或在一个结构式图形程序中,用户可能希望旋转一个图形目标。所有修改数据封装器中的数据的行为都由“命令目标”而予表示。
模型命令目标
表示用户的命令的描象基本分类是模型命令目标。模型命令目标的子分类捕捉用户行为的语义,例如:执行、取消、再执行,这些子分类与用于生成他们的用户界面技术无关。与Mac App不同,只要用户行为的语义已知,系统便将设备事件译为命令目标。
处理执行(handle Do),
处理取消(handle Undo),
以及处理再执行(Handle Redo)
生成一个新的命令分类涉及超越一些方法。要超越的三个最重要的方法是:处理执行、处理取消以及处理再执行。处理执行方法是根据命令类型及应用命令的选择对数据封装器进行改变。例如,若命令涉及字处理程序中的一部分字符的字体改变(Style change),处理执行方法就会在数据封装器中调用一个方法(或一组方法)来说明该部分字符的范围以及要改变的字体。处理执行方法更困难的响应性是保存所有必要的信息以便在稍后“取消”该命令。在字体改变例子中,保存取消命令涉及记录该部分文字的先前字体。大部分命令的取消信息很易于保存。但是,象发现和改变这类命令可能涉及记录大量信息以便在稍后时间取消该命令。最后,执行处理方法还用于公布描述数据封装器改变的改变通知。
处理取消方法用于将一个文件恢复到命令被执行之前的状态。这一必须应用的步骤与上述处理执行方法的步骤相似。处理再执行用于在执行命令和取消命令完成之后重复执行命令。用户通常在一个文件的两个状态间用取消/再执行组合来回变换以比较一个命令的结果。通常,处理再执行方法与处理执行类似,不同之处在于再执行方法中,最后一次引出的信息在命令完成时可以再用(该信息不用再计算,因为它肯定是一样的)。
用户界面
命令目标捕捉用户行为的语义。事实上,一个命令表达一个通常由用户(由多种用户界面技术)生成但亦可由其他方式生成(及应用)的“工作请求”。重要的概念在于命令目标表达了用于修改数据封装器中包含数据的唯一手段,所有对数据封装器的改变必须由命令目标处理,如果要实现无限取消(infinite undo)和少量保存(Save-less)模型的好处以及本发明的其他特性的话。
用于发布命令的最佳用户界面涉及某种直接操纵。用于将设备事件译成命令并“驱使”用户反馈处理的目标称之为跟踪程序。本发明提供丰富的“跟踪命令”集以操纵内部数据类型。例如,在最佳实施例中,旋转、按比例放大缩小以及移动二维目标(如线条,曲线,多边形等)的跟踪命令。
一个常用的发布命令的用户界面是通过控制或选择单系统。选择单被生成且一组相关命令被加入该选择单。当用户在选择单中选择了一个项目3时,适当的命令被“移植(Cloned)且命令的执行方法被调用。程序员根本不涉及设备事件。进而,由于命令知道可以应用哪种类型的选择,当其不合适用时选择单的项目被自动变暗淡。
最后,可由命令序列发布命令(或程序生成)且其结果与用户直接发布的命令一样。这一最佳实施例结构为生成命令行列提供了支持。但是,现在还没有适用于生成这些命令序列的用户界面。
内部命令
这一文件的前面部分着重于本发明的基本特性,有许多本发明的附加方法可实现更好的特性。具体而言,这些方法包括:基于模型的跟踪、文件、锚、以及合作。
基于模型的跟踪
跟踪是直接操纵用户接口的心脏,跟踪允许用户选择文本的范围,重新为目标定尺寸以及示意目标。本发明通过实际修改模型而将跟踪扩展到可以穿越多个视图及机器。跟踪程序对模型发布命令,从而将改变通知送给所有进入的视图。
基于模型的跟踪是文件跟踪的最佳方案,但其有以下缺点:(1)模型的视图必须是最佳的以对改变事件提供快速应答,以及(2)模型必须能表达中间跟踪状态。
锚
持续选择或“锚”与选择非常类似,它们都是一个结构中的数据的说明,其不同之处则在于锚必须保留编辑改变,因为根据定义,锚续继通过改变到数据。本文前述的图形选择实现是持续的。但是文本选择的实现则非如此。若用户在选择之前插入或消除文本,则字符偏移必须被调整。有一些方法实现文本锚。首先,文本结构维护标记的选择。这些标记以与维护字体的相似方式连到文本。锚包括一个与一个标记有关的唯一标识。当文本改变时,将更新适当的标记但保持锚不变。另一方式是维护文本的编辑历史。锚可以包括一对字符位置及一计时印记。每次编辑文本时,历史将被更新的记录变化(即,从位置X在时刻T时去除5个字符)。当用锚时,系统将根据编辑改变改正其字符位置。编辑改变是最后一次使用时发生的。在方便时,历史可被压缩且锚可永久更新。
系统通过连接方法还提供大量“自由”特性。所有超介质命令(主联接(Greatlink),推入数据、取出数据、以及跟踪)都在其实施中用了锚。系统范围注释方法是用锚实现的。数据库封装器提供了保持锚和联接跟踪的服务。但是,用户要用表示制作用户可见的锚。本发明也必须在用户选择了一个锚时发布适当的命令,在锚和联接的用户界面确定之后,文件结构提供附加支持以简化处理。
文件生成
文件生成是将数据保存在永久存储器中和从永久存储器中恢复这些数据的处理。用户要进行文件生成所必须做的所有事是要实现用于数据封装器的方法。本发明的原配文件生成是基于“图像”的。当用户打开文件时,其全部内容被读入存储器中,当用户关闭一个文件时,其全部内容被写回磁盘。选择这一方式是因为其简单,灵活,且习于理解,为了以不同格式存储数据,也许为了与以前所有的标准文件格式相兼容,有两种可能的途径。首先,一个封装器分类可以将一个参考流到实际数据,然后用该参考找到实际数据,或可以定义一个新子分类以生成并返回一个文件子分类。
第一个途径的优点在于数据封装器可在其他文件中封装。第二个途径的优点是在于提供的完全自由度正好与完整文件的现存文件格式相匹配。
合作
同时网络合作(Same-time network collaboration)是指两个以上的用户在同时编辑同一文件。系统也建立了合作策略,即当改变数据时是否强制用户轮换或可随意进行改变。开发器不必担心合作机制或合作策略。
支持合作者选择风格
为有助于减少含混并加强模型选择,文件结构提供了包含有关合作者的姓名开头字母以及最佳信息的合作者分类。
支持多级选择
为支持多级选择,用户必须修改表示视图,因为每个合作者有一选择。当主动合作者的选择改变标准时,改变通知将发出。当被动合作者的选择改变时,一个不同通知事件发出。一个视图可以登记这两个事件,由于响应两者所采取的行动通常是一样的,所以通过为两个事件登记同样方法可以经济地实现。
根据本发明的用户界面
本发明的这一部分主要着重于建立在前述操作系统结构基础上的用户界面的新颖方面。本用户界面的第一方面是一个允许用户用的为控制的目标或数据来管理交互作用的机制。
控制
用户用来交互以操纵其他目标或数据的目标称为控制。控制用一个命令来确定目标或数据的现状。在与用户的适当交互之后,控制更新命令的参数并执行该命令。控制的例子包括选择单,按键,检测窗以及射频按键。
控制用命令确定目标或数据的现状,在与用户的适当交互之后,控制更新命令的参数并执行该命令。例如,一个检测逻辑设定一个命令参数为有效或无效并使其被执行以改变一个数据值。
许多控制显示其操纵的数据的当前值。例如,一个检测窗只是在布尔数据值为真时才显示一个检测。随着数据改变。控制的外部特征由所所述的通知系统不断更新。这一处理类似于用于允许/禁止选择单项目的处理。
当控制生成时,必须对命令加以说明。控制复制该命令并将该复制件存在f命令(f Command)区段。若命令提供任何数据值,则必须也说明该命令的Get和Set方法的指示字,控制将这些方法指示字存在f得到方法(f Get Method)区段以及f设定方法(f Set Method)区段。然后,用于指示其数据值的通知的控制连接可以是过时的。每个命令为此而提供一个叫做连接数据(Connect Data)的方法。
每个控制包括一个连接目标。该目标称为f数据连接(f Data Connection),用于指出接收通知的目标及方法。该连接目标作为一个变元送给命令。命令目标调用该连接目标的连接方法加入每个通知程序以及进入,这些通知程序及进入可能影响到数据值。当完成时,控制调用连接目标的连接方法以建立连接,如图3所示,控制从其命令中更新其数据值,这一更新可由调用命令的Get方法(f Command→c'f(Get Method)(1)而予实现。如图5所示,控制将这一数据存于一适当区段(即,检测框存在称为f Checked的Boolean区段)。然后,控制更新其外部特性。这一外部特性更新可通过调用视图系统的无效方法(指出屏幕的哪一部位需要更新)而实现。
最后,送出数据改变及通知。在某点处,命令被执行从而改变由控制反映的数据的值。这一命令可由直接操纵的方式被控制或选择单项目执行。控制接收图4所示的通知并进入等待下一用户选择的状态。
控制面板
一个控制集被称为控制面板,控制面板中的控制通常是在实际数据上操作(这是原配而非要求)。它们是立即行为且相互无关。控制面板管理着重于其必要的控制之间的输入进度。控制面板可能在系统中与所有用户界面共享。
对话窗
另一控制是对话窗(dialog box),对话窗中的控制通常是在原型数据上操作(这是原配而非要求)。它们的行为通常被收集成组然后当用户按一下应用(Apply)键时一起被执行。对话窗管理着重于必要的控制之间的输入进度。
工作中的控制
在此将以三个行动表示一个行为以展示动作中的控制。图2示出了这几个控制。一个行动的例子将以与展示控制(在此为检测窗)、命令、选择以及数据封装类似的方式而被使用。
检测窗200其作用是显示存在数据封装器中的布尔值并简化其改变。该值由存在的或缺少的检测所展示。
命令210其作用是从数据封装器获得数据并根据检测窗的方向改变该数据。
选择220 其作用是在命令和数据间进行交互。
数据230 用作为动作的目标。
相互了解
图3中,每一元素之间应该有较好的了解。命令310通知检测窗300数据可以送至哪个通知。依次,检测窗300连到数据320以供通知。
只有导向器告知检测窗300与命令310进行交互的最佳方式。具体而言,导向器告知了命令获得数值的方法以及设定数值的方法。该检测窗将在稍后利用该点。
反映数据
有些事与数据有关-如图4所示的通知传送。检测窗400知道表示的进入。图4中,来自数据的通知表示要使信息更突出,该信息是通过把X放在检测窗中反映出来的。
图5中展示了检测窗从数据中接收通知并加以处理正确地显示检则窗510。这一过程采用了命令520获取数值方法。在靠知检测窗510的正确数值之前,命令520通过选择到数据以确认其确实知道该正确值。检测窗510在必要时更新其本身。
改变数据
用户现在进入现场并给检测窗600一个提示,如图6所示。检测窗600采用命令610设置数值方法通过选择而为620的数据设值。其整个过程可在图7中展示。
工作的控制面板
控制面板其实就是一个包括一组控制的窗口,如图8所示。这些控制包括一个在当前选择上操作的命令。若命令有效,则该控制启动工作。在与用户的适当交互之后,控制执行命令,导致数据改变。
声音控制面板
作为声音控制面板的一个例子,可考虑图8所示的声音控制器,该控制面板包括四个用于控制声音播放的按键800、802、804和806,每个按键的操作与上述的“工作中的控制”部分一样。
播放(Play)800这一控制包括一个T播放(TPlay)命令。该命令只在某些条件下才有效,因此使控制只在这些条件下才启动工作。首先,必须在适当的数据封装器中选择声音。其次,该声音必须来播放过。最后,当前的声音位置必须在结束之前的某一位置处。当按下该键时,播放键执行该T播放命令,使选择的声音由扩音器播出。
步进(step)802该控制也包括一个T播放命令。读者会问这是什么,由于这一控制是组成的,我们可以假设该T播放命令采用了一个指示播放持续时间的参数,为步进按键之目的,它只是设为一个单纯的示例。步进键只有在上述播放键的同样条件下才启动工作。当按下该键时,步进键执行T播放命令,使选择的声音由扩音器播出。停止(stop)804该控制包括一个T停止(T Stop)命令。停止键只是在选择的声音正在播放时才启动工作。当按下该键时,停止键执行T停止命令,使选择的声音停止播放并将当前的声音位置设定在起始处。
暂停(Pause)806该控制包括一个T停止命令。然而,与T停止键不同,这一T停止命令被设定不将声音返回起始。接插放或停止键将继续来播放部分声音的播放。
工作的对话窗
对话窗与控制面板相似,它仅仅是一个包含一组控制的窗口。但是,控制不再在选择数据上操作,而是在另一命令的参数上操作。只有到应用键按下时,实际数据才被修改。
色彩编辑器
作为一个对话窗的简例,可参见图9所示的色彩编辑器。它包括三个游标,一个为红色900,一个为兰色910,而另一个为绿色920。调整游标至理想值之后,用户可以按应用键930以改变选择的颜色。红色900,绿色920,兰色910对用户而言,这些游标并无不同。其区别也只是在于它们的标号。就象所有控制一样,每个游标包括一个在用户交互后执行的命令。与许多命令不同,尤其与那些立即影响选择数据的控制面板中的命令不同,由游标包含的命令显示并修改另一命令的参数值。在本例中,则为应用按键中包含的命令的红、兰、绿参数之一。应用930该键包括T选择色彩(T Select Color)命令,该命令在执行时会改变选择的颜色。这三个参数分别用于颜色的红、兰、绿分量。这些参数响应于用户的交互作用而由游标设置并显示。当应用键按下时,执行该命令并设置新颜色。完成色彩编辑内部工作的例子示于图10。红1000,绿1010,以及兰1020游标包括一个T浮动控制命令(T Float Control Command)。这些命令包括一个控制显示的浮点值。当用户改变该游标时,它会更新浮点值并执行命令。
对于T浮动控制命令的选择在应用键1040中规定了T设置色彩(T Set Color)命令。该命令的参数之一是在执行每个T浮动控制命令时设置好的。最好,当用户按应用1040键时,T设置色彩命令被执行并改变选定的颜色1050。
分类
以下部分描述控制及对话区的分类以及其主要方法
控制
控制是用户对一个或多个命令的界面。控制显示关于命令的信息,例如其名字以及是否在当前的前后关系中有效。在适当的用户交互之后,控制执行命令。合适时,控制获取该命令修改数据之值并对用户显示该值。可以设置一个命令参数以指示执行该命令之前该数据的新值。
在控制上生成选择的方法。查找命令是一个纯粹虚拟功能(pure virtual function)以便给予子分类有关它们可以包含和存储多少命令的灵活性。
在表示打开和关闭时调用的方法。当表示打开时,控制连接可能影响其状态的通知。当表示关闭时,这些连接断开。
在表示激活或释放时调用的方法。当表示激活时,一些控制连接只是在表示运行时有效的通知。停止运行表示将切断这些连接。
控制用于连接和切断通知程序(它影响是否控制启动工作)的方法。连接启动通知程序(Connect Enabled Notifiers)在控制打开时连接到由命令说明的通知程序。切断启动通知程序(Disconnect Enabled Notifiers)在控制关闭时断开连接。
接收指定事件发生以影响数据值的控制表示的通知的方法。该方法由原配值规定不作任何事情。
通知的方法。主要进入生成由控制实例专用的进入。通知超负荷的发送一个通知并吸收该进入。
控制进入
在控制的许多子分类中共享一个通知程序。为了表达在一特定控制情况下的进入,该进入必须专门加以说明,一个控制进入即为一个包含对一特定控制有指示字的进入。这个分类是一个通常作为没有子分类而使用的内部分类。
控制通知
控制的许多子分类都共享一个通知程序,为了区别发送通知的控制,必须对通知加以说明。一个控制通知是一个包含有指向送出该通知的控制的指示字的通知。这一分类通常在没有子分类的情况下使用。
控制表示程序
一个控制表示程序(Presenter)封装一个控制以使其可以包含在一个表示数据封装器中。它实现所有表示程序目标所实现的标准功能,该分类通常用于没有子分类的情况。
在表示打开和关闭时调用的方法。这些方法由原配值规定因此无需任何行为。一个子分类必须为其封装的目标实现这些方法。对控制而言,这些方法被直接送往控制。当表示打开时,控制连接可能影响其状态的通知。当关闭时,连接被断开。
T控制选择(T Control Selection)
一个控制选择说明一个控制以及在其中的任意一个命令,该控制封装在表示程序中并存在一个表示之内。
在控制中存取命令的方法,如果没有命令指出,这些方法可返回一个无效的数数。
T单一控制(T Oni Control)
一个单一控制是控制的抽象基本分类。该控制在适当的用户交互之后表示一个命令并执行该命令。这类控制的例子是按键以及检测窗。
说明控制表示及执行命令的方法。当命令改变时将通知送到登记的连接。
控制用来连接和切断与通知程序连接的方法,其中,通知程序影响到控制是否启动工作。连接启动通知程序在控制打开时连到命令指定的通知程序。切断启动通知程序在控制关闭时断开这些连接。
接收指示某些事件发生从而影响控制是否应启动工作的通知的方法。更新启动(Update Eabled)检测是否命令有效并调用适当的启动和禁止。
控制用来连接和切断影响控制的数据值的表示的方法。连接数据通知程序(Connect Data Notifiers)在控制打开时连到命令指出的连接程序。切断连接数据通知程序(Disconnect Data Notifiers)在控制关闭时断开这些连接。不显示数据值的控制)(即按键)可以超越数据通知程序而不做任何事情。
T按键(TButton)
一个按键是一个单一控制。它在按下时执行命令。这一分类通常用于没有子分类的情况。
当表示激活和释放时调用的方法。当表示激活时,一些控制连接只有激活时有效的通知。当释放时,这些连接断开。当表示激活时,按键登记为键等效通知。在表示释放时该连接断开。
控制用户连接和切断影响控制的数据值表示的通知程序连接的方法。连接数据通知程序在控制打开时连接到命令指定的通知程序。切断数据通知程序在控制关闭时断开这些连接。不显示数据值的控制(即按键)可以超越连接数据通知程序而不做任何事情。
检测窗
检测窗是对设置布材值的命令的用户界面。在适当的用户交互之后,控制窗调用一个命令方法改变数值并执行该命令。这一分类通常用于没有子分类的情况;只是设置命令。
游标
游标是一单一控制,它在适当的用户交互之后显示一个浮点值并使其改变。游标的实例展现在图9和图10之中。
T多级控制(T Multi Control)
多级控制是控制的抽象基本分类,其中的控制在适当的用户交互之后表示若干命令并使其被执行。这类控制的实例是射频按键及选择单。
T射频按键(T Rado Button)
射频按键是多级控制,该控制在适当的用户交互之后显示至少两个布林值并使其被执行。射频按键迫使只有一个按键被选中,如图11所示。若低被选中,则1100处的圆变黑。若塑料选中,则1110处的圆被选中,不可能两者同时选中。
T命令
一个命令将一个请求封装到一个目标或一组目标中以执行一个特定的行动,命令通常响应一个终端用户的行为(例如按下键,选择一个选择单项目)或由直接操纵而被执行。命令可以提供关于其本身的各种信息(如名字,图形,键等效,是否他们有效)。这些信息可为控制用于确定其外部特性。子分类必须实行一个方法以确定当前的选择,有效的用户界面元素或其他参数以决定是否命令有效,子分类必须超越获得有效进入表以返回通知进入。这些通知进入可影响是否命令有效。
图12是一流程图,用于展示根据本发明的详细逻辑。逻辑起始于1200处,并进入功能框1210,在该处,一个命令目标被加入选择单。由该功能框完成的步骤包括:1)从一个命令生成选择单项目,其中的选择单项目是包含一个命令的另一目标数据结构,2)加一个选择单项目到选择单的项目表中,以及3)标记该选择单的外部特性在数据结构f有效(f Valid)中是无效的。然后,当选择单稍后被拉下时,其外部特性将根据系统状态重新计算。
每个选择单是一个视图。视图包括尺寸和位置信息。每个选择单包含一列选择单项目。每个选择单项目包括一个命令和多个反映其当前外部特性的变量。这包括是否选拔单被启动(布尔f启动(f Enabled),其名字(T文本标记f名字(T Text Label f Name)),它的图形(T图形标记f图形(T Graphic Label f Graphic),以及是否其外部特性当前有效(布尔f有效)。通过询问命令选择单项目是何时生成的可确定每一变量。
其次,询问被送到通知进入的命令目标,如功能框1220所示。每个命令有四个方法连接不同类型的通知这四种通知分别为:ⅰ)影响其名字的通知,ⅱ)影响其图形的通知,ⅲ)影响命令是否有效的通知,以及ⅳ)影响任何数据的通知。在本例中,只是为命令生成的选择单项目连接有效通知。这一连接是将连接目标送至连接有效(Connection Active)完成的。然后命令把连接目标连至通知程序。该通知程序影响命令是否有效。然后控制被送至功能框1230以询问启动状态的命令何时必须绘制选择单项目。为了绘制(draw,是指在三维图形中,从一个给定角度将一个模型转换成基于荧光屏的视图的处理)选择单项目,选择单项目为其命令调用方法“是有效(Is Achive)”。命令检查想要的系统状态并返回在当前的前后关系中是否有效,如功能框1240所示。(即,有些命令只是在某一特定类型的窗口前端才有效,或当一特定类型目标被选中时才有效)。然后,一个选择单项目更新其内部状态(在每一选择单项目中的一个布林值)以及外部特性(如功能框1250和1260所示)以便与命令返回的值相匹配。
如输入块1270所示,只要用户行为导致任何命令,用户可使该命令被执行。这可来自于一个选择单项目,控制,或通过一个目标的直接操纵。该行为使一个文件状态被修改,如功能框1280所示。而且功能框1290示出了一个文件传送通知的情况。当一个文件传送通知时,要执行下列步骤:1)与文件传送的通知相连的任何选择单项目(或其他控制)接收一个通知消息,该消息包括改变的名字以及指向发送该通知的目标的指示字,2)一个选择单项目然后更新其状态,且将控制传送至功能框1230以供进一步处理。
图13是根据本发明的显示的展示图。选择单项目是编辑(Edit)1300而且还有一些与之相关的子选择单项目。取消(Undo)1310是一个有效选择单项目因此可供选择以实现有关功能,再执行(Redo)1320处于无效,因此以灰暗颜色表示且不能为当时所选择。1360处显示的检测商是调试控制面板1350的一部分。
表示属性单元与持续
从属性单元(template)生成的数据表示以跨越会话期形式存储于一个用户接口目标中。存有系统中所有数据的存储装置就是一个模型。一个模型包括并简化数据处理。数据交换是通过截取、考贝、及粘贴操作而予简化的。数据参照则由选择、锚、及联接进行。数据模型可以嵌入其它任何数据模型。用户通过表示(例如图符、略图或文本、帧、窗口、对话、控制面板)与模型交互对话,这些表示由一个相关的用户界面提供。数据模型代表全部表示的生成及对另一目标的访问方法,即所谓用户界面。
用户界面是一个模型,该模型具有一组用于特定模型的表示(例如图符,略图,帧,窗口)。当需要时,这些表示即根据不同表示要求被选择出来,例如根据用户的姓名、地址、及其它范围。如有所要求的表示未找到,则可从档案库中拷贝出一个新的表示,并将其加入到用户界面中。当某种持久表示信息(例如窗口尺寸,位置,卷动位置)不再需要时,可将其消除。
一项表示包括一组可表示的目标,这些目标中含有用于观察并管理数据的用户界面元(例如选择单、窗口、工具等)。这些表示为那些目标所表达的数据提供参照。当某一表示被激活时,这些表示便建立并激活可表示目标程序。同样,当这个表示被释放时,那些目标即被移去或释放。这些表示是根据其用途未标识(例如图符,略图,帧,窗口等)并保留已定范围(如用户标识)以便随后的选择。
一项表示由一个可表示目标集(例如用户接口元素)组成,该集在屏幕上显示,或在该表示被打开指令或激活时可用。
从表示属性单元生成的表示存储于档案库。它们由用户界面元素目标组成,而这些目标又由更小的目标(如图形或文本串)组成。
档案库是一个具有属性单元目标组的模型,它包括用户界面元素(如窗口、选择单、控制、工具等)以及表示(如图符、略图、帧、窗口)。
对话窗及控制板
以不同方式使用命令目标,可控制一组控制的两个独立过程。第一种过程是使数据立即生效,或用户必须在设定值生效前按“OK”键。第二种过程是设定值相互独立,或多个设定值代表一个(其意为一单个机器指令执行的计算原子操作。
控制包括命令。当用户操纵控制时,控制将参数置入命令,并导致该命令执行。命令根据选择指定的模型数据进行操作。
立即生效
致使数据立即生效的控制包括一条命令,该命令具有指定实际模型数据的选择。当用户操纵控制时,该命令导致数据发生变化。一旦数据改变了,它即发出变化通知,使根据该数据状态进行的观察及控制能精确地反应出当前状态。
延迟
这种控制必须根据协议数据(protocal Data)操作,而不是去改变实际数据。除非用户执行一个操作,例如按“OK”键,否则实际模型数据不会改变。这一控制可以两种方式进行:
具有一条命令的控制,该命令所包括的选择指定该控制本身。当用户操纵控制时,该命令致使控制值改变,但没有其它模型数据。当用户按“OK”键,“OK”键里的命令将实际模型数据改变,以匹配用户操纵的每一控制中的数值。
具有一条命令的控制,该命令所包括一选择指定OK键里的命令参数。当用户操纵控制时,该命令致使OK键的命令改变。当用户按“OK”键时,OK键的命令改变其实际模型数据,以匹配其本身自有的值。
独立
操作相互独立的控制要求操作的再提出,这些操作是在控制板或对话会话期完成后可以被各个取消的。这是一个由控制执行的正常命令过程。
操作
其它控制组是可以合在一起操作,并可以原子操作形式取消和再执行。这是在对话窗或控制启动时在取消栈内设置一个标志来完成的。完成后,或将控制板取消,或由用户按OK键(如上面ⅡB所述),在取消栈上设置标志之后所执行的全部命令将被集到一个单独的命令组里。该组可作为一个单命令组被取消或再执行。
取消
具有CANCEL(取消)键的控制板(一般伴随ⅡB中所述的OK键)与上面ⅢB所述的技术相同。当对话窗或控制板被启动时,取消栈上的标志便被设置。一如果用户按CANCEL键,全部在设置标志之后进入取消栈的命令都被取消。无论控制是否致使数据立即生效,该技术都起作用。
对话窗里的原子命令执行
用户用来互相对话以处理其它目标及数据的目标即所谓控制。例如选择单,按键,检验窗,及射频按键。每一控制包括一条命令,用以实现终端用户操作。命令根据选择目标程序所指定的数据操作。当用户操作控制时,该控制将参数置于命令中并令其执行,以此来变换数据值。
操作相互独立的控制要求操作的再执行,这些操作是在控制板或对话会话期完成后可以被逐个取消的。这是一个由控制执行的正常命令过程。其它控制组合是可以一起操作,并可以用原子操作的形式取消和再执行。
图14中的流程图陈述了原子执行的详细逻辑。从终端1400开始的处理立即将控制转移到激活对话窗的功能框1410。对话窗被激活时,在取消栈上设置了一个标志。该取消栈是一个用户已执行的全部命令表。当按下取消时,该栈顶上的命令即被取消。如果不立即要求再执行,该命令则被去除。而后,在功能框1410,检测用户操纵控制。如功能框1430所示,控制的处理改变命令的数据值,并执行该控制。例如,检测框在0和1之间触发命令的“f”检测域。最后,该命令被记录在取消栈上,以便随后在功能框1440中可以被取消。
随后,用户处理对话框中的每一控制,如决策框1450所检测的,控制随后转移到功能框1430。可是,如果用户在决策框1460按“OK”键,该控制则转移到功能框1420。最后,当对话框中的每一控制都满足用户的要求后,用户按OK键。在功能框1440的取消栈被置标志后所执行的全部命令被集中到一个单命令组中,并如功能框1470所示被置回到取消栈上。命令组是一条将多条命令集合在一起的命令。当进行取消或再执行时,该命令组按顺序取消或再执行每一条命令。而后,该命令组被回置到取消栈,在这里,它可以被作为一个单原子操作来取消或再执行。
对话窗里的延迟命令执行
用户用来相互对话以处理其它目标及数据的目标即所谓控制。例如选择单,按键、检测窗和射频按键,都可称为控制。每一控制包括一条实现终端用户动作的命令。命令根据选择目标所指定的数据进行操作。当用户操纵控制时,它在命令中置入参数,并导致它执行该命令,以变换其数值。延迟数值变换直至用户进行另一动作是本发明的另一方面。例如,对话窗里的控制可能不想改变任何数值,直至用户按OK键。
当一个控制生成时,必须有一条命令被指定。该控制拷贝这条命令,并将其存储在“f”命令区域中。如果该命令提供了任何数值,指向该命令的相应取得(Get)和设置(Set)方法的指示字也必须被指定。该控制将这些方法指示字分别存入f取得方法域和f设置方法域。命令所修改的数据是由选择目标指定的。通常情况下,这个选择目标指定实际模型数据。取而代之,选择目标指定OK键里命令中的数值。
当用户操纵控制时,该控制的命令被执行,且OK键的命令中的数值被改变。当用户操纵对话窗中的每个控制时,该控制的命令被执行,且OK键的命令中的数值被改变。因此,当用户按OK键时,OK键中的命令更新实际模型数据,以匹配其自身中的由该控制的命令处理的数值。该处理被重复,直至控制处理完成。
标号
标号是具有图形式文本串的图形目标。它们被用来标识窗口,选择单,按键,及其它控制。标号可根据其内容的情形改变其外部表征。标号是在一个中灰色的背景上,并只有在不须指定特殊情形才出现。当它们在待用撤除或被选择时改变它们的外部特性。
释放
当窗口不是在最前面时,窗口标题被置为待用状态。同样,当控制不是在最前面窗口或其它最前面存储器中时,控制标号被置于待用状态。待用时,图形标号混合55%的白色,以使其暗淡。对于文本标号,待用着色是在处理HSV色彩(在彩色显示技术中,由颜色,章度以及颜色的深浅所定义的色彩模型的章度分量对从自然着色而来的。待用时,其章度(Saturation,在彩色显示技术中,未经白色淡化的颜色程度)被乘以0.45。
禁止
当控制未加至特定的前后关系中时,其控制标号便被暗淡化。待用时,图形标号混合46%的白色,以使其暗淡。对于文本标号,禁止的着色是在处理HSV色彩模型的章度分量时从自然着色而得的。禁止时,其章度被乘以0.54。
选择
当处理控制时,控制标号被加重。图形及文本被加重时是在白色背景上以自然状态绘制的。
智能控制标号
控制利用一条命令决定目标或数据的当前状态。在与用户对话之后,控制更新命令参数,并使之执行。例如,检测窗设定或消除一条命令的参数,然后执行该命令以改变数据值。控制显示一个标号以表示出其功能。该标号是一个具有图形或文本字串的图形目标。当控制状态改变时,该标号自动调整其外部特性,而并不要求编号外加代码。这些状态包括激活/释放,启动/禁止,和选择/未选。
图15展示了智能处理的详细逻辑,从终端1500开始,控制立即被转移到智能标号初始化框1510。当控制生成时,其标号被其相关的命令所提供的文本字串或图形初始化。为此,每条命令指供所谓取得图形(Get-Graphic)和取得名称(Get Name)的方法。控制调用“设置激活法”(Set-Active)来通知其标号它当前是在激活态还是释放状态。同样,控制调用设置(Set Enabled)来通知其标号是否启动,并调用“设置选择法”(Set Selected)以通知其标号它当前是否被用户选择。
智能标号处理的下一步是绘制标号的功能框1520。当控制激活时,它调用其标号的“绘制法”(Draw),致使标号出现在屏幕上。如果释放,该标号则比正常的暗淡。这是由处理HSV色彩模型的章度分量而完成的。待用时的章度被乘以0.45。如果是撤除,其标号比正常的暗淡。这是由处理HSV色彩模型的章度分量而完成的。标号禁止时的章度被乘以0.54。如果被选择,该标号将置于一加重的背景之上。一般情况下,标号被绘制于一中灰背景之上。被加重时,标号则绘制于一白色背景之上。否则标号按一般色度绘制。
下一步处理是功能框1530所示的标号的激活/释放。当控制被激活或释放时,它以调用设置激活的方式通知其标号。随后,该控制调用具有变元的“无效”,以表示出其标号的外部特性需更新,该变元则指出屏幕上的哪一部位需再绘制。然后,在功能框1540,控制被启动或禁止。当控制被启动或禁止时,它调用设置启动,以通知其标号。随后,该控制调用具有变元的无效来表示其外部特性需要更新,该变元指示出屏幕的再绘制部位。
在判别框1550执行的检测决定选择或未选控制。当控制被选或未被选时,它调用“设置选择法”未通知其标号。随后,该控制调用具有变元的无效来表示其外部特性需更新,该变元则指示出屏幕的再绘制部位,然后,控制被转移到功能框1520做进一步处理。
智能窗标号
窗口中显示的标题是为了说明其目的。例如,窗口中用于编辑文本的标题一般是该文本的名字。标号目标则用来追踪标题。该标号是一个具有图形或文本字串的图形目标。当窗口改变状态时,该标号自动调整其外部特性而不需编写外加编码。窗口可以是活动的或静止的。图16中的流程图是智能窗标号处理,并对其详细逻辑加以说明。
图16中的处理从终端1600开始,其控制立即被转移到功能框1600以将标题初始化。窗口生成时,由一开发器指定窗口的标题。该标题存储在被称为“f标题”的“T标号”目标中。控制调用设置激活来通知标题它当前是激活还是释放。随后,在功能框1620,当绘制窗口时,它调用其“f标题”(f Title)目标的“绘制法”,致使标题出现在屏幕上。如果是释放,所绘制的标题淡于正常亮度。这是由处理HSV色彩模型的章度分量而完成的。待用时的章度被乘以0.45。否则,标题以正常亮度绘制。
下一步处理是功能框1630所示的标题被激活或释放。当一个窗口被激活或被释时,它调用设置激活法来通知其f标题目标。随后,该窗口调用具有变元的无效来表示其外部特性需更新,而该变元则指示出屏幕需再绘制的部位。此后,控制便被转移到功能框1620将标题再绘制,以反映出其新状态。
装饰
用户界面元素的许多直观方式在许多元素中是通用的。例如阴影、边缘和标号。各个直观特性参照其装饰。装饰可与其它图形结合,以形成特定用户界面元素的直观外部特性,例如窗口和控制。本发明支持许多不同类型的装饰。
背景
在其它目标背后所绘制的装饰被称为背景。一种背景被绘制得与图表是齐平的。它可以有框也可没有。另一种背景在绘制时被加重并加上阴影,使其突出于周围表面。最后一种背景在绘制时加重并加阴影,而其隐现于其周围表面之后。
使用这些背景的一个例子是按键。表示按键的文本或图形通常绘制在突出的背景上。当用户按它时,该文本或图形便被再绘制于隐入的背景之上的。如果该按键是待用的,例如当另一个窗口激活的时候,该按键的文本或图形则被绘于暗淡的齐平背景上。
边缘
围绕另一个目标或区域的装饰即所谓边缘。例如框和阴影。框是一种边缘,该边缘围绕另一图形,正象实际生活中的镜框里装着一幅画一样。如背景一样,框可以被绘于隐入,齐平,或突出于其周围表面。阴影是一种特殊类型的边缘,该种边缘将阴影加在一目标的周围,使目标看起来象是在周表上浮动。
装饰色彩
用户界面元素的许多直观方式在很多元素中是通用的。例如,阴影,边缘,和标号。每一直观特性参照一个装饰。装饰可以与其它图形结合,以形成特定用户界面元素的直观外部特性,例如窗口和控制。有些装饰利用加重或阴影来显现或隐入于周围表面。装饰可从这些加重和阴影绘制中自动取得。
填充描绘
填充描绘表现出装饰的主要颜色。所有其它描绘都从填充描绘中取得。填充描绘由一个装饰存入被称为“f”填充描绘“(f Fill Paint)的“T颜色”(T Color)域中。当装饰生成时,通常由一个开发器指定填充描绘。可是,如果没有指定颜色,则中灰色便被选中。
框描绘
框描绘用于绘制装饰周围的线条,以提供可见衬度。框描绘由装饰存入被称为“f框描绘”(f Frame Paint)的“T颜色”(T Color)域中。当装饰生成时,开发器便指定该框描绘。可是,如果没有指定框描绘,它将从填充描绘中自动计算出来。这是靠处理HSV色彩模型的章度及值分量来完成的。该章度被乘以4,其最大值是1。而值分量除以4。
加重描绘
加重描绘用于在光可投射到的目标周围画线,该目标是实际的三维目标。加重描绘由装饰存入被称为“f加重描述”(f High Light)的“T颜色”域中。当装饰生成时,由开发器指定加重描绘。可是,如果没有指定加重描绘,它将从填充描绘中自动计算出。这是靠处理HSV色彩模型的章度及值分量来完成。章度被乘以0.8,值分量则乘以1.25,其最大值为1。
阴影描绘
阴影描绘可以用来在目标着色的部位画线,该目标则是实际的三维目标。阴影描绘是由装饰存入被称为“f阴影描绘”(f Shadow Paint)的“T颜色”域中的。当装饰生成时,由开发器指定阴影描绘。可是,如果没有指定阴影描绘,它将从填充描绘中自动计算出来。这是由处理HSV色彩模型的章度及值分量来完成的。章度分量被乘以2,其最大值为1。而值分量则除以2。
将输入语法与语义分开
图形化的用户界面处理是移动鼠标器,在目标上按一下以选择该目标,拖曳该目标,以移动或拷贝它们,并在该目标上连按两下,以打开它们。这些操作称为直接处理或交互处理。对应于用户按下、移动、和释放鼠标的一系列顺序事件被称为一条输入语法。某些用于指示出特定活动的事件顺序被称为语义操作。
将理解输入语法的代号与执行语义操作的代码区分开是本发明的要点。目标中所使用的这一处理被分别称为交互作和难控制的(Intractable)。图17展示了这些目标是如何生成的,以及这些目标如何在与一个可被移动并选择的目标交互作用期间互相通讯的。
处理从终端1700开始,控制立即被转移到功能框1710,以确定鼠标器上的键是否被按了一下。一个事件被送至目标,该目标对应于屏幕的某个部位,在这个位置上鼠标按键按了一下。该目标即所谓视图。随后,交互器在功能框1720生成,以分析输入语法。这是由调用视图的“生成交互器”法(Greate Interactor)来完成的。当交互器生成时,指向目标的指示字作为参数被转移,而这些目标是执行可能的用户活动的。
为讨论的目的,假设用户在一个可被选择并移动的目标上按下鼠标键。在这种情况下,执行选择的目标和执行移动的目标作为参数传给交互器。初始视图可执行所述选择和移动,或可由一或二个分别的目标来执行。这一个或多个目标总体来说被参照为“难控制的”(Intractable)。
交互器从功能框1730启动。该处理将交互器返回给视图,并开始交互器的处理。这是靠调用交互器的启动法并传送作为参数的初始鼠标事件来完成的。“启动法”将初始鼠标事件存入“f初始事件”(f Initial Event)域中。由于到目前为止只处理了一个鼠标事件,所以唯一可能的活动只有选择。交互器将可变“f交互类型”(f Interaction Type)设置到常数“k选择”(k Select),以进入选择模式。它调用其“选择开始”法(Select Begin)来请求“可交互的”开始选择操作。
随后,如功能框1740所示,交互器等待一会儿再转移。当时间到了时,一个新的鼠标事件被传送给指示出当前鼠标状态的交互器。此后,如果系统检测出判别框1750的鼠标仍然被按下,控制便被转到移功能框1740。否则,控制转移到终止1760。如果鼠标仍被按下,交互器则要确定它是否仍在改正状态,并请求“可交互的”执行改正操作。如果“f交互类型”是“k选择”,则表示交互器正在作选择。如果“f交互类型”是“k移动”(K Moving),则表示交互器正在移动。
如果是选择,交互器则比较鼠标的当前位置和初始位置。调用“取得当前位置”法可取得鼠标的当前位置。调用“取得初始位置”法可得到的鼠标的初始位置。如果两者相同或相差一个很小的量,则用户仍在选择该目标。然后,交互器调用其“选择重复”法来请求“可交互的”继续其选择操作。可是,如果两点之间的差超过了一个预定值,则表示用户已开始移动该目标。在这种情况下,交互器调用“选择结束”(Select End)法请求“可交互的”结束选择操作。随后,它调用“移动开始”法请求“可交互的”开始移动操作。在每种情况下,当前鼠标位置都作为变元转移。如果是移动,交互器使调用其“移动重复”法(Move Repeat)请求“可交互的”继续其移动操作。它将当前鼠标位置作为变元转移。
当用户释放鼠标键时,它发出当前操作结束的信号。如果是选择,交互器调用“选择结束”法请求“可交互的”终止选择操作。如果是移动,交互器调用其“移动结”法请求“可交互的”终止移动操作。
局部表示
局部化是更新一个应用以符合一个特定地点的要求的处理。它可能涉及语言翻译,图形替代,以及界面元素重新定向。例如,标号中使用的文本,标题,以及消息取决于选择的语言。其方向和定位可能影响一个选择单,选择单条(menubar),标题,卷动条,或工具条(toolbar)的定位及布局。与之类似,图符和其他图形符号的选择可以是文化相关的。不幸的是,存储器中的许多用户用界面元素的局部版布很昂贵。因此,用户界面元素的局部版本保存在磁盘中直到存储器需要。进而,跟踪所有用户界面元素以及确定哪个版本要使用是极易出错且价格昂贵的处理。取而代之,当需要一个用户界面元素时,系统将根据当前语言及其他文化参数(cultural parameters)自动选择一个适当的用户界面元素并将其读入存储器。
一旦局部化,用户界面元素便存在磁盘字典中。磁盘字典是一个目标,它在给定一个键时在从磁盘中读出后返回一个值。一个叫做档案库的目标管理该磁盘字典。档案库用于将组成一个特定表示的多个用户界面元素归到一起。选择适当的用户界面元素的操作示于图19中。
处理始于1900并当用户请求表示时立即转入功能框1910。一个打开表示命令(To Open Presentation Command)送到数据模型,指示用户想要观察或编辑该数据,表示是一组用户界面元素,它们允许用户观察或编辑一些数据。表示通过对话存在用户界面目标(User lnterface Object),从而为用户提供连续性。用户界面元素存于磁盘中直至存储器需要,它们可以作为用户要求的数据表示的一部分,或用于翻译或用于其他局部处理。每个用户界面元素包含一个标识,它唯一地关联该元素。但是,同样的用户界面元素的所有局部版本共享一个标识。
为了区别局部版本,特定的语言(书写方向)和其他文化参数和每个局部用户界面元素一起存起来。这些参数总称为地点(locale)。所有用户界面元素存在一个文件中。该文件被组织为一个有一个或多个键/值对的字典。键是一个合成标识和地点的目标。值则是用户界面元素本身。
一个新表示必须在功能框1920处生成。若不存在一个适当的表示,则必须从一个属性单元(template,其意为在C++中的定义为有未知类型的一个参数的一个分类)由用户界面档案库生成一个新的表示。通过调用生成表示方法可从属性单元中生成该新表示。一个表示类型作为一个参数传到这一方法。这一类型包括要被显示的数据的类型,是否要在其自己的窗口或另一表示的一部分等信息。最后,在功能框1931处。档案库建立该表示,根据地点选择用户界面元素。若档案库可建立指定类型的表示,则收集组成该表示的每个用户界面元素并返回该收集至用户界面目标。
对每个档案库可以生成的表示而言,都有一个用户界面标识表。用户界面元素存在磁盘字典目标维护的磁盘之中。给定一个键,该磁盘字典将返回相应的用户界面元素。用户界面元素标识组成该键的主要分量。该键的第二分量是需要的地点。一个地点是说明自然语言和用户的其他文化属性的目标。该地点由档案库从一个优先权服务器(Preference Server)中自动获得,该服务器包括与用户有关的所有单独的优先权。
由优先权服务器得到的地点与标识合并成为一个叫做T用户界面元素键(T Userlnterface Element Key)的目标。该键作为参数传到磁盘字典的获得值(Get Value)方法。若发现用户界面元素有一与之相配的标识和地点,则其被返回且作为表示的一部分,否则,从该键中去除该地点参数,或必须指定另一地点直到发现一个适当的用户界面元素。
交互结构系统
面向目标的操作系统的图形用户界面的用户通常移动鼠标器将光标移至目标处并按一下鼠标器按键以选择该目标,拖曳该目标以移动或复制,然后按两个鼠标器按键打开该目标。这些操作为直接操纵或交互作用,对应于用户按鼠标器按键,移动鼠标器以及释放鼠标器按键的事件序列叫做输入语法,某些事件序列用于指示特定的行为,则称之为语义操作。本发明公开了将输入语法译为目标的语义操作的方法及装置。其中,目标支持选择,观察,位移,自动卷动以及拖曳/投入(复制)。
本发明对鼠标器按键是否按下进行检测并采用以下逻辑:
(a)若当用户按下鼠标器按键时选择(Option)键被按下,系统设置可变的f lnteraction Type(f交互作用型)到恒定K Drag(K托曳)以进入托曳模式。该系统然后利用选定的目标作为操作对象开始托曳操作;或
(b)若选择键未按下,则该系统将可变f交互作用型设置为恒定k选择(k Select)从而进入选择模式。然后,选择操作开始。
若用户按下鼠标器按键并一直按着它,则下列逻辑将被涉及。若系统处于选择模式,则其确定是否用户已将鼠标器移动超越一阈值(叫做移动阈值)。这一确定是由比较起始鼠标器位置(它由获取起始位置方法(Get lnitial Location)返回)和当前当鼠标器位置(由获取当前位置方法(Get Cunent Location)返回)的方式而予完成。若该鼠标器移动超越移动阈值,系统则结束选择模式而进入移动模式。这一转换是通过将可变f交互作用型设置为恒定K移动(K Move)而实现的。然后系统通过调用其选择结束(Select End)的方法告知目标结束选择操作。然后系统通过调用其移动开始(Move Begin)方法启动移动操作。
如果鼠标器没有移动,系统将检测鼠标器已按下多长时间。这一检测可通知比较由获得起始时间(Get lnitial Time)方法返回的起始鼠标器按下时间和获得当前时间(Get Carrent Time)方法返回的当前时间的方法而实现。若鼠标器的按键按下的时间超过一阈值(称之为观察阈值),则系统结束选择模式而进入观察模式。这一转换可通过将可变f交互型设置为恒定k观察(k Peek)的方式而予实现。通过调用选择结束方法,可要求目标结束选择操作并通过调用观察开始(Peek Begin)方法开始观察操作。否则,若鼠标器未移动或按下按键的时间在观察阀值之内,该系统通过调用该目标的选择重复(Select Repeat)方法而继续选择操作。若该系统检测到用户处于移动模式,则该系统首先确定是否用户已在窗口之中,窗口的边缘,或在窗口之外移动鼠标器。通过比较由获得当前位置方法返回的当前鼠标器位置和由获得目标存储装置边界(Get Container Bounds)方法返回的目标存储装置(object container)的边界可进行以上确定。
若鼠标器仍在窗口边界之内,系统通过调用目标的移动重复方法继续移动操作。若鼠标器位于窗口边界上,这指示了自动卷动操作。系统要求目标的存储装置沿鼠标器位置指出的方向卷动。这一行为可通过调用目标存储装置的自动卷动方法并将当前鼠标器的位置作为一个参数传送的方式而予完成,一旦完成,系统将通过调用目标的移动重复方法继续位移操作。
若鼠标器已移动超过窗口,系统将结束位移模式而进入拖曳模式。这可由设定可变f交互型成恒定k托曳而实现。通过调用位移结束方法可要求目标开始拖曳操作。若系统在拖曳模式,则其通过调用目标的拖曳重复(Drag Repeat)方法,继续该拖曳操作。若系统处于观察模式,系统首先确定是否用户已将鼠标器移动超过一确定阈值(称之为位移阈值),这可通过比较获得起始位置方法返回的起始鼠标器位置和获得当前位置方法返回的当前鼠标器位置的方式而予完成。
若鼠标器移动通过该位移阈值,则可通过将可变f变互型设置为恒定k位移的方式而结束观察模式并进入位移模式。通过调用观察结束方式来要求目标结束观察操作。通过调用位移开始方法要求目标开始位移操作。否则,若鼠标器未曾移动,则调用目标的观察重复方法而使系统继续其观察操作。
若系统检测到用户已释放鼠标器按键且其处于选择模式,则该系统结束选择模式,这一行为可由把可变f交互型设置为恒定K无(K None)的方法而予完成。通过调用其选择结束方法,系统询问目标结束其选择操作。若系统处于位移模式,系统可将可变f交互型设置为恒定k无以结束位移模式。然后,系统通过调用其位移结束方法而询问目标结束其位移操作,系统还将把可变f交互型设置为恒定k无而结束拖曳模式。通过调用其拖曳结束方法可要求目标结束其拖曳操作。若系统处于观察模式,系统可把可变f交互型设置为恒定k无的方式而结束观察模式。通过调用观察结束方法可使目标结束观察操作。
因此,本发明的主要目的是提供一种新型的软硬件系统,该系统可以随用户移动卷动条而动态地更新窗口的内容。该系统检测是否用户在卷动条上按了一下。当用户在卷动条上按了一下时,系统开始初始卷动命令以改变展现在窗口中的部分数据,一个命令是一个实现终端用户动作(例如卷动)的目标,一个卷动命令有一个参数,即视图应该卷动的位置,系统将该位置设置为当前卷动位置。只要调用命令的设置卷动位置(Set Soroll Position)并将卷动设置为相对于一个值的位置,即可实现上述卷动位置的设置。而其中所述的值是由卷动条的方法(Get Scroll Position)所返回的。
当用户在卷动条内移动鼠标器时,系统继续执行卷动命令以动态地改变展示在该窗口中的数据部分。系统将命令的卷动位置设置为新卷动位置。通过调用命令的设置卷动位置(Set Scroll Position)以及将其值设定为卷动条的方法返回的值即可实现上述卷动位置设定。调用其反复执行(Do Repeat)方法重复执行该命令从而使窗口的视图卷动至该新位置处。只要用户一直按着鼠标器按键时,这一处理便一直继续下去。
当用户释放鼠标器按键时,系统结束执行卷动命令。通过调用命令的设置卷动位置以及将其值设置为卷动条的方法返回的值,系统将卷动条命令的卷动位置设置为最后卷动位置。
图20为一流程图,它展示了根据本发明与卷动有关的详细逻辑。处理开始于框2000处并立即去往框2010。在该处,当前卷动位置根据前当的光标位置而初始化。然后,在判别框2020处,进行测试以确定是否卷动条被选择。卷动条的例子可参见图21A的标号2110。若卷动条已选中,则控制去往判别框2030以确定是否卷动条已被移动。若是,则设定卷动位置为卷动条的新位置,重新将显示格式化以反映立即的卷动操作并为用户进行显示。若卷动条未移动,在框2050处进行另一测试以确定是否卷动条被释放。若没有被释放,则控制返回判别框2030,若卷动条已为释放,则控制去往功能框2060以进入卷动操作并将系统返回到非卷动操作状态,从而处理在2070处完成。
图21A、21B和21C展示了根据本发明的窗口卷动,图21A中,卷动条2110位于窗口2112的顶部,图21B示出卷动条移至窗口的中部且窗口的内容因此而更新。图21C示出卷动条2140移至窗口底部且窗口2142的最底部分的内容。
Claims (23)
1、一种面向目标的结构系统,其特征在于包括:
(a)操作系统装置,用于处理面向目标的应用;以及
(b)结构处理装置,用于使位于所述操作系统装置中面向目标的应用程序标准化。
2、如权利要求1所述的面向目标的结构系统,还包括面向目标的驱动器。
3、如权利要求1所述的面向目标的结构系统,还包括一个面向目标的结构系统的内核,该内核是面向目标的。
4、如权利要求3所述的面向目标的结构系统,还包括继承处理装置。
5、如权利要求3所述的面向目标的结构系统,还包括用单个可超越的名字标号多个分类的装置。
6、如权利要求3所述的面向目标的结构系统,还包括封装处理装置。
7、一种用于实现面向目标的结构系统的方法,其特征在于包括以下步骤:
处理面向目标的应用;以及
将位于操作系统装置中的面向目标的应用标准化。
8、如权利要求7所述的方法还包括面向目标的驱动程序。
9、如权利要求7所述的方法还包括一个用于面向目标的结构系统的内核,该内核是面向目标的。
10、如权利要求9所述的方法包括继承处理。
11、如权利要求9所述的方法还包括用单个可超越的名字标示多个分类的处理。
12、如权利要求9所述的方法还包括封装处理。
13、一种以一致方式反映多个选择单项目的当前状态的基于选择单的系统,其特征在于包括:
(a)存储器装置,用于封装具有状态信息的命令目标和确定至少一个选择单项目的状态的逻辑;
(b)第一目标处理装置,用于在所述命令目标中从一个数据结构生成至少一个选择单项目;
(c)第二目标处理装置,用于通过更新确定至少一个选择单项目的状态的状态信息初始化所述的至少一个选择单项目;以及
(d)第三目标处理装置,用于当从一个选择单中选出至少一个选择单项目时,确定系统的状态并更新所述命令目标中的至少一个选择单项目状态信息。
14、一种启动基于选择单的结构的方法,所述结构包括一个命令目标可以一致方式反映多个选择单项目当前状态,所述方法的特征在于包括以下步骤:
(a)封装状态信息以及在命令目标中用于确定至少一个选择单项目状态的逻辑;
(b)在所述命令目标中从一个数据结构生成至少一个选择单项目;
(c)更新所述命令目标中的状态信息以初始化所述至少一个选择单项目,所述状态信息确定至少一个选择单项目的状态;以及
(d)在从一个选择单中选择了所述至少一个选择单项目之时,在所述命令目标中确定系统的状态并更新至少一个选择单项目的状态信息。
15、一种面向目标的通知结构系统,其特征在于包括:
(a)用于将多个目标连接到一个通知源的装置;
(b)用于在一个面向目标的操作系统的连接目标中存储多个目标的连接信息的存储装置;
(c)用于在所述面向目标的操作系统的连接目标中记录连接信息的装置,所述连接信息包括指定一个通知状态的登记信息;
(d)用于根据存在所述面向目标的操作系统的连接目标中的记录信息而有选择地为通知发布到所述多个目标中的至少一个目标的装置;及
(e)用于使所述至少一个目标接收所述通知并根据该通知进行操作的装置。
16、一种实现面向目标的通知结构系统的方法包括以下步骤:
(a)将多个目标连接到一个通知源;
(b)在一个面向目标的操作系统的连接目标中存储所述多个目标的连接信息;
(c)在所述面向目标的操作系统的连接目标中记录连接信息,该连接信息包括表示通知状态的登记信息;
(d)根据存在所述面向目标的操作系统的连接目标中的连接登记信息将通知发送到至少一个所述的多个目标,以及
(e)由所述至少一个所述的多个目标接收所述通知并根据该通知操作。
17、一种管理具有存储的计算机中的面向目标的通知系统的方法,其特征在于包括以下步骤:
(a)在所述计算机的存储器中存储连接信息,该连接信息包括通知路经信息以及连接记录信息;
(b)在所述面向目标的通知系统的连接目标中记录所述连接信息,包括指示通知状态的记录信息;
(c)检测一个通知事件;以及
(d)根据存在所述计算机存储器中的连接目标中的所述连接记录信息,在所述面向目标的通知系统中有选择地通知目标。
18、一个卷动系统,其特征在于包括:
(a)显示装置,用于显示包括存储的信息的窗口;
(b)存储器装置,用于存储一个初始卷动位置,所述初始卷动位置表示了所述显示一个卷动条(Scrollbar thumb)位置;
(c)用于选择该卷动条的装置;
(d)用于检测该卷动条位移的装置;以及
(e)用于随着所述卷动条移动而沿其移动方向动态地卷动含有存储信息的窗口的装置。
19、一种卷动方法,其特征在于包括以下步骤:
(a)显示一个包括存储的信息的窗口;
(b)存储在显示上指示一个卷动条位置的初始卷动位置;
(e)选择所述卷动条;
(d)检测所述卷动条的位移;以及
(e)动态地随所述卷动条的移动而沿其移动方向卷动包括有所述存储信息的窗口。
20、一种卷动方法,其特征在于包括以下步骤:
(a)置于一个包括存储的信息的窗口;
(b)选择所述窗口中的一个卷动条;
(c)移动所述卷动条;以及
(d)动态地沿所述卷动条的移动方向卷动包括存储的信息的窗口。
21、一种卷动系统,其特征在于包括:
(a)用于显示存有信息的窗口的装置;
(b)用于选择所述窗口中的卷动条的装置;
(c)用于移动所述卷动条的装置;以及
(d)用于沿所述卷动条的移动方向动态地卷动所述包括存储的信息的窗口的装置。
22、一种卷动系统,其特征在于包括:
(a)用于存储一个图像的装置;
(b)用于在一个窗口中显示部分所述图像并为该窗口显示一个卷动条的装置;
(c)用于选择所述卷动条的装置;
(d)用于检测所述卷动条的选择和位移的装置;以及
(e)用于随着卷动条的移动卷动在所述窗口中显示的所述部分图像的装置。
23、一种用于在一个显示屏上卷动一个图像的方法,其特征在于包括以下步骤:
(a)在所述显示屏的一个窗口中显示部分所述图像,所述商口包括一个卷动条;
(b)检测所选择的卷动条的选择;
(c)检测所述卷动条的位移;
(d)动态地移动所述窗口显示的所述图像,以便随着所述卷动条的移动显示对应于所述卷动条的一个当前位移显示所述图像的不同部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US99617192A | 1992-12-23 | 1992-12-23 | |
US07/996,171 | 1992-12-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1091536A true CN1091536A (zh) | 1994-08-31 |
Family
ID=25542581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN93112880.3A Pending CN1091536A (zh) | 1992-12-23 | 1993-12-23 | 面向目标的结构系统 |
Country Status (8)
Country | Link |
---|---|
US (3) | US5717877A (zh) |
EP (1) | EP0664025B1 (zh) |
JP (7) | JPH08505721A (zh) |
CN (1) | CN1091536A (zh) |
AU (1) | AU5827894A (zh) |
CA (1) | CA2145679C (zh) |
DE (1) | DE69310187T2 (zh) |
WO (1) | WO1994015286A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750275A (zh) * | 2013-12-25 | 2015-07-01 | 华为技术有限公司 | 一种滑块的移动速度的确定方法及装置 |
Families Citing this family (192)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259446B1 (en) | 1992-12-23 | 2001-07-10 | Object Technology Licensing Corporation | Menu state system |
AU2551895A (en) * | 1994-05-16 | 1995-12-05 | Apple Computer, Inc. | Dialog item interface definition object |
US5877765A (en) * | 1995-09-11 | 1999-03-02 | Microsoft Corporation | Method and system for displaying internet shortcut icons on the desktop |
US5689698A (en) * | 1995-10-20 | 1997-11-18 | Ncr Corporation | Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object |
US6281893B1 (en) * | 1996-04-04 | 2001-08-28 | Sun Microsystems, Inc. | Method and apparatus for providing an object oriented approach to a device independent graphics control system |
US5883625A (en) * | 1996-04-22 | 1999-03-16 | Ast Research, Inc. | Arrangement system for object placement on windows |
US5923877A (en) * | 1996-05-01 | 1999-07-13 | Electronic Data Systems Corporation | Object-oriented programming memory management framework and method |
US5933841A (en) * | 1996-05-17 | 1999-08-03 | Ameritech Corporation | Structured document browser |
US5920868A (en) * | 1996-07-03 | 1999-07-06 | Sun Microsystems, Inc. | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system |
US5787425A (en) * | 1996-10-01 | 1998-07-28 | International Business Machines Corporation | Object-oriented data mining framework mechanism |
US6334157B1 (en) * | 1997-03-11 | 2001-12-25 | Microsoft Corporation | Programmatically providing direct access to user interface elements of an application program |
US5857197A (en) * | 1997-03-20 | 1999-01-05 | Thought Inc. | System and method for accessing data stores as objects |
US6046739A (en) * | 1997-03-28 | 2000-04-04 | International Business Machines Corporation | System and method for organizing objects managed within a desktop |
EP0979446A2 (en) * | 1997-04-30 | 2000-02-16 | Geodesic Systems L.L.C. | Automatically-maintained customizable user interfaces |
US6335972B1 (en) | 1997-05-23 | 2002-01-01 | International Business Machines Corporation | Framework-based cryptographic key recovery system |
US6268852B1 (en) * | 1997-06-02 | 2001-07-31 | Microsoft Corporation | System and method for facilitating generation and editing of event handlers |
US5999174A (en) * | 1997-07-02 | 1999-12-07 | At&T Corporation | Reusable sparing cell software component for a graphical user interface |
US6335742B1 (en) * | 1997-07-24 | 2002-01-01 | Ricoh Company, Ltd. | Apparatus for file management and manipulation using graphical displays and textual descriptions |
US6658623B1 (en) * | 1997-09-15 | 2003-12-02 | Fuji Xerox Co., Ltd. | Displaying in a first document a selectable link to a second document based on a passive query |
US6292803B1 (en) * | 1997-11-18 | 2001-09-18 | Honeywell International Inc. | Object state change and history management mechanism |
IL136465A0 (en) * | 1997-12-01 | 2001-06-14 | Cedara Software Corp | Architecture for an application framework |
US6184883B1 (en) * | 1998-03-18 | 2001-02-06 | International Business Machines Corporation | Computer system, program product and method utilizing in-focus switch delay for user interface components |
US6249284B1 (en) | 1998-04-01 | 2001-06-19 | Microsoft Corporation | Directional navigation system in layout managers |
US6169546B1 (en) * | 1998-04-01 | 2001-01-02 | Microsoft Corporation | Global viewer scrolling system |
US6191790B1 (en) | 1998-04-01 | 2001-02-20 | Microsoft Corporation | Inheritable property shading system for three-dimensional rendering of user interface controls |
US6785866B1 (en) * | 1998-05-01 | 2004-08-31 | Adobe Systems Incorporated | Dialogs for multiple operating systems and multiple languages |
US6727923B1 (en) * | 1998-05-08 | 2004-04-27 | Apple Computer, Inc. | Creation and manipulation of internet location objects in a graphical user interface environment |
US7346850B2 (en) | 1998-06-12 | 2008-03-18 | Cygnus Systems, Inc. | System and method for iconic software environment management |
US8527882B2 (en) * | 1998-06-12 | 2013-09-03 | Gregory J. Swartz | System and method for iconic software environment management |
US6618852B1 (en) | 1998-09-14 | 2003-09-09 | Intellichem, Inc. | Object-oriented framework for chemical-process-development decision-support applications |
US6362839B1 (en) * | 1998-09-29 | 2002-03-26 | Rockwell Software Inc. | Method and apparatus for displaying mechanical emulation with graphical objects in an object oriented computing environment |
US6559860B1 (en) * | 1998-09-29 | 2003-05-06 | Rockwell Software Inc. | Method and apparatus for joining and manipulating graphical objects in a graphical user interface |
US6366293B1 (en) | 1998-09-29 | 2002-04-02 | Rockwell Software Inc. | Method and apparatus for manipulating and displaying graphical objects in a computer display device |
US6628305B1 (en) | 1998-11-09 | 2003-09-30 | International Business Machines Corporation | Architecture and definition of an extensible, object-oriented graphical user interface framework for managing and administering heterogenous digital library datastores |
US6549878B1 (en) * | 1998-12-31 | 2003-04-15 | Microsoft Corporation | System and method for editing a spreadsheet via an improved editing and cell selection model |
US6563523B1 (en) * | 1999-10-28 | 2003-05-13 | Midway Amusement Games Llc | Graphical control of a time-based set-up feature for a video game |
WO2001048633A1 (en) | 1999-12-24 | 2001-07-05 | Telstra New Wave Pty Ltd | A virtual token |
US7020842B1 (en) * | 2000-03-03 | 2006-03-28 | International Business Machines Corporation | Method and apparatus for providing dynamic assistance for disabled user interface resources |
US7243130B2 (en) * | 2000-03-16 | 2007-07-10 | Microsoft Corporation | Notification platform architecture |
US7444383B2 (en) * | 2000-06-17 | 2008-10-28 | Microsoft Corporation | Bounded-deferral policies for guiding the timing of alerting, interaction and communications using local sensory information |
US7743340B2 (en) | 2000-03-16 | 2010-06-22 | Microsoft Corporation | Positioning and rendering notification heralds based on user's focus of attention and activity |
US8024415B2 (en) * | 2001-03-16 | 2011-09-20 | Microsoft Corporation | Priorities generation and management |
US8701027B2 (en) * | 2000-03-16 | 2014-04-15 | Microsoft Corporation | Scope user interface for displaying the priorities and properties of multiple informational items |
US7634528B2 (en) * | 2000-03-16 | 2009-12-15 | Microsoft Corporation | Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services |
US8645137B2 (en) | 2000-03-16 | 2014-02-04 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US7417650B1 (en) * | 2000-03-16 | 2008-08-26 | Microsoft Corporation | Display and human-computer interaction for a notification platform |
US20020087649A1 (en) * | 2000-03-16 | 2002-07-04 | Horvitz Eric J. | Bounded-deferral policies for reducing the disruptiveness of notifications |
US6954895B1 (en) * | 2000-03-22 | 2005-10-11 | Autodesk, Inc. | Method and apparatus for using and storing objects |
US8086672B2 (en) * | 2000-06-17 | 2011-12-27 | Microsoft Corporation | When-free messaging |
US20020056009A1 (en) * | 2000-08-22 | 2002-05-09 | Affif Filippo L. | Method for interacting with a device using an abstract space |
US6561342B2 (en) * | 2000-11-29 | 2003-05-13 | Charles Lepage | Granular material conveyor |
US20100223295A1 (en) * | 2000-12-06 | 2010-09-02 | Io Informatics, Inc. | Applied Semantic Knowledgebases and Applications Thereof |
US20020156792A1 (en) * | 2000-12-06 | 2002-10-24 | Biosentients, Inc. | Intelligent object handling device and method for intelligent object data in heterogeneous data environments with high data density and dynamic application needs |
US7844666B2 (en) * | 2000-12-12 | 2010-11-30 | Microsoft Corporation | Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system |
US7085773B2 (en) * | 2001-01-05 | 2006-08-01 | Symyx Technologies, Inc. | Laboratory database system and methods for combinatorial materials research |
CA2340472C (en) * | 2001-03-12 | 2004-11-09 | Ibm Canada Limited-Ibm Canada Limitee | Incremental actions relating to notify and target models |
US7392485B2 (en) * | 2001-03-30 | 2008-06-24 | Microsoft Corporation | System and method for providing a server control interface |
US20020178243A1 (en) * | 2001-05-15 | 2002-11-28 | Kevin Collins | Apparatus and method for centrally managing network devices |
US6968538B2 (en) * | 2001-06-01 | 2005-11-22 | Symyx Technologies, Inc. | System and methods for integration of custom classes into pre-existing objects models |
US7048962B2 (en) * | 2002-05-02 | 2006-05-23 | Labcoat, Ltd. | Stent coating device |
US6645547B1 (en) * | 2002-05-02 | 2003-11-11 | Labcoat Ltd. | Stent coating device |
US7709048B2 (en) * | 2002-05-02 | 2010-05-04 | Labcoat, Ltd. | Method and apparatus for coating a medical device |
US20040216130A1 (en) * | 2002-08-30 | 2004-10-28 | Keller S. Brandon | Method for saving and restoring data in software objects |
MXPA05002322A (es) * | 2002-09-30 | 2005-06-08 | Microsoft Corp | Sistema y metodo para producir elementos de interfaz del usuario conocidos para una aplicacion y para el usuario. |
US7386609B2 (en) * | 2003-02-20 | 2008-06-10 | International Business Machines Corporation | Method, system, and program for managing devices in a network |
EP1605793A1 (en) * | 2003-03-13 | 2005-12-21 | Radiancy Inc. | Electric shaver with removable head cutting by heat |
US8244712B2 (en) * | 2003-03-18 | 2012-08-14 | Apple Inc. | Localized viewing of file system names |
US7457879B2 (en) | 2003-04-01 | 2008-11-25 | Microsoft Corporation | Notification platform architecture |
GB2402507A (en) * | 2003-06-03 | 2004-12-08 | Canon Kk | A user input interpreter and a method of interpreting user input |
US7031885B2 (en) * | 2003-06-27 | 2006-04-18 | Intel Corporation | Method and apparatus for measuring accuracies of fixed-point computations |
US7587421B2 (en) * | 2004-01-30 | 2009-09-08 | International Business Machines Corporation | Method, system, and article of manufacture for generating device specific requests |
WO2006022171A1 (ja) * | 2004-08-25 | 2006-03-02 | Canon Kabushiki Kaisha | 印刷システム、画像供給デバイス及び印刷装置とその制御方法 |
US7657843B2 (en) * | 2005-08-15 | 2010-02-02 | At&T Intellectual Property I, L.P. | Menu promotions user interface |
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
CN101617293B (zh) | 2007-02-27 | 2013-05-15 | 富士通株式会社 | 模组生成装置、模组生成方法、模组生成程序以及记录有该程序的记录介质 |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US9229920B1 (en) * | 2007-04-30 | 2016-01-05 | Oracle America Inc. | Compound undo/redo manager for mixed model edits |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US8490019B2 (en) * | 2008-01-29 | 2013-07-16 | Microsoft Corporation | Displaying thumbnail copies of each running item from one or more applications |
US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
WO2010067118A1 (en) | 2008-12-11 | 2010-06-17 | Novauris Technologies Limited | Speech recognition involving a mobile device |
US7925924B2 (en) * | 2009-03-23 | 2011-04-12 | International Business Machines Corporation | Method for command line interface restore points with support for an atomic sets of commands |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US20120311585A1 (en) | 2011-06-03 | 2012-12-06 | Apple Inc. | Organizing task items that represent tasks to perform |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US9431006B2 (en) | 2009-07-02 | 2016-08-30 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
WO2011089450A2 (en) | 2010-01-25 | 2011-07-28 | Andrew Peter Nelson Jerram | Apparatuses, methods and systems for a digital conversation management platform |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US8694967B2 (en) * | 2010-06-11 | 2014-04-08 | Microsoft Corporation | User interface inventory |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9280610B2 (en) | 2012-05-14 | 2016-03-08 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US9472015B2 (en) * | 2012-05-15 | 2016-10-18 | Sap Se | Real-time visualization of transactional data objects |
US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9330379B2 (en) * | 2012-09-14 | 2016-05-03 | Intel Corporation | Providing notifications of messages for consumption |
US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
KR102516577B1 (ko) | 2013-02-07 | 2023-04-03 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US10295826B2 (en) | 2013-02-19 | 2019-05-21 | Mirama Service Inc. | Shape recognition device, shape recognition program, and shape recognition method |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
WO2014144579A1 (en) | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
WO2014144949A2 (en) | 2013-03-15 | 2014-09-18 | Apple Inc. | Training an at least partial voice command system |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
WO2014197334A2 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
WO2014197336A1 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
EP3008641A1 (en) | 2013-06-09 | 2016-04-20 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
CN105265005B (zh) | 2013-06-13 | 2019-09-17 | 苹果公司 | 用于由语音命令发起的紧急呼叫的系统和方法 |
WO2015020942A1 (en) | 2013-08-06 | 2015-02-12 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
EP3149728B1 (en) | 2014-05-30 | 2019-01-16 | Apple Inc. | Multi-command single utterance input method |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10481645B2 (en) | 2015-09-11 | 2019-11-19 | Lucan Patent Holdco, LLC | Secondary gesture input mechanism for touchscreen devices |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
DK179309B1 (en) | 2016-06-09 | 2018-04-23 | Apple Inc | Intelligent automated assistant in a home environment |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
DK179343B1 (en) | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK179049B1 (en) | 2016-06-11 | 2017-09-18 | Apple Inc | Data driven natural language event detection and classification |
WO2018089800A1 (en) | 2016-11-10 | 2018-05-17 | Ronald Scott Visscher | System with a unique and versatile evaluation method |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
CN107423070B (zh) * | 2017-08-03 | 2021-02-23 | 北京奇艺世纪科技有限公司 | 一种页面生成方法及装置 |
US11556234B2 (en) * | 2020-06-12 | 2023-01-17 | Dassault Systemes Solidworks Corporation | WYSIWYG editor for creating and editing a feature control frame for geometric dimensioning and tolerancing in computer-aided design system |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3658427A (en) * | 1969-11-28 | 1972-04-25 | Anthony B Decou | Attitude sensor, and system for controlling attitude of an object |
US3881605A (en) * | 1973-06-29 | 1975-05-06 | Ibm | Object orienting device to assist robot manipulator |
US4082188A (en) * | 1976-06-23 | 1978-04-04 | Hoffmann-La Roche Inc. | Apparatus for color recognition and defect detection of objects such as capsules |
US4677576A (en) * | 1983-06-27 | 1987-06-30 | Grumman Aerospace Corporation | Non-edge computer image generation system |
US4635208A (en) * | 1985-01-18 | 1987-01-06 | Hewlett-Packard Company | Computer-aided design of systems |
US4742356A (en) * | 1985-12-09 | 1988-05-03 | Mcdonnell Douglas Corporation | Method and apparatus for determining remote object orientation and position |
US4704694A (en) * | 1985-12-16 | 1987-11-03 | Automation Intelligence, Inc. | Learned part system |
US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US4885717A (en) * | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
US4939648A (en) * | 1987-12-02 | 1990-07-03 | Schlumberger Technology Corporation | Apparatus and method for monitoring well logging information |
US4891630A (en) * | 1988-04-22 | 1990-01-02 | Friedman Mark B | Computer vision system with improved object orientation technique |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
EP0347162A3 (en) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US4931783A (en) | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
US5041992A (en) * | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
JP3178531B2 (ja) | 1988-11-15 | 2001-06-18 | 株式会社日立製作所 | メニュー提示方法およびデータ処理装置 |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5230063A (en) * | 1989-03-15 | 1993-07-20 | Sun Microsystems, Inc. | Method and apparatus for selecting button function and retaining selected optics on a display |
US5050090A (en) * | 1989-03-30 | 1991-09-17 | R. J. Reynolds Tobacco Company | Object placement method and apparatus |
US5371851A (en) * | 1989-04-26 | 1994-12-06 | Credence Systems Corporation | Graphical data base editor |
US5060276A (en) * | 1989-05-31 | 1991-10-22 | At&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network |
US5125091A (en) * | 1989-06-08 | 1992-06-23 | Hazox Corporation | Object oriented control of real-time processing |
US5181162A (en) * | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
US5198802A (en) | 1989-12-15 | 1993-03-30 | International Business Machines Corp. | Combined keyboard and mouse entry |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
JPH0758487B2 (ja) | 1990-01-08 | 1995-06-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 表編集装置 |
GB9105278D0 (en) * | 1990-04-27 | 1991-04-24 | Sun Microsystems Inc | Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system |
US5168441A (en) * | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5177685A (en) * | 1990-08-09 | 1993-01-05 | Massachusetts Institute Of Technology | Automobile navigation system using real time spoken driving instructions |
US5280610A (en) * | 1990-08-14 | 1994-01-18 | Digital Equipment Corporation | Methods and apparatus for implementing data bases to provide object-oriented invocation of applications |
US5327529A (en) | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
US5151987A (en) * | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5276816A (en) * | 1990-12-31 | 1994-01-04 | International Business Machines Corporation | Icon object interface system and method |
US5119475A (en) * | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
US5287447A (en) * | 1991-06-28 | 1994-02-15 | International Business Machines Corporation | Method and system for providing container object attributes to a non-container object |
US5371846A (en) * | 1991-10-16 | 1994-12-06 | International Business Machines Corporation | Non-linear scroll bar |
US5416895A (en) * | 1992-04-08 | 1995-05-16 | Borland International, Inc. | System and methods for improved spreadsheet interface with user-familiar objects |
US5630168A (en) * | 1992-10-27 | 1997-05-13 | Pi Systems Corporation | System for utilizing object oriented approach in a portable pen-based data acquisition system by passing digitized data by data type to hierarchically arranged program objects |
US5339433A (en) * | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
US5463784A (en) | 1994-08-17 | 1995-11-07 | Alpern; Erwin A. | Hand rail attachment for beds |
-
1993
- 1993-12-14 WO PCT/US1993/012192 patent/WO1994015286A1/en active IP Right Grant
- 1993-12-14 EP EP94904086A patent/EP0664025B1/en not_active Expired - Lifetime
- 1993-12-14 DE DE69310187T patent/DE69310187T2/de not_active Expired - Lifetime
- 1993-12-14 JP JP6515273A patent/JPH08505721A/ja active Pending
- 1993-12-14 CA CA002145679A patent/CA2145679C/en not_active Expired - Lifetime
- 1993-12-14 AU AU58278/94A patent/AU5827894A/en not_active Abandoned
- 1993-12-23 CN CN93112880.3A patent/CN1091536A/zh active Pending
-
1995
- 1995-06-06 US US08/482,314 patent/US5717877A/en not_active Expired - Lifetime
-
1997
- 1997-07-23 US US08/898,768 patent/US6146027A/en not_active Expired - Lifetime
-
1999
- 1999-06-10 US US09/329,578 patent/US6327627B1/en not_active Expired - Fee Related
-
2002
- 2002-01-17 JP JP2002009271A patent/JP4117132B2/ja not_active Expired - Lifetime
- 2002-01-17 JP JP2002009270A patent/JP2002278667A/ja active Pending
- 2002-01-17 JP JP2002009272A patent/JP2002278668A/ja active Pending
-
2008
- 2008-02-25 JP JP2008043555A patent/JP4612069B2/ja not_active Expired - Lifetime
- 2008-02-25 JP JP2008043556A patent/JP4393558B2/ja not_active Expired - Lifetime
- 2008-02-25 JP JP2008043554A patent/JP4393557B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750275A (zh) * | 2013-12-25 | 2015-07-01 | 华为技术有限公司 | 一种滑块的移动速度的确定方法及装置 |
CN104750275B (zh) * | 2013-12-25 | 2018-07-03 | 华为技术有限公司 | 一种滑块的移动速度的确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0664025A1 (en) | 1995-07-26 |
JP4393558B2 (ja) | 2010-01-06 |
JP4117132B2 (ja) | 2008-07-16 |
US6146027A (en) | 2000-11-14 |
JP4612069B2 (ja) | 2011-01-12 |
AU5827894A (en) | 1994-07-19 |
JP2002297386A (ja) | 2002-10-11 |
CA2145679A1 (en) | 1994-07-07 |
JP2008181540A (ja) | 2008-08-07 |
JPH08505721A (ja) | 1996-06-18 |
JP4393557B2 (ja) | 2010-01-06 |
JP2002278668A (ja) | 2002-09-27 |
WO1994015286A1 (en) | 1994-07-07 |
CA2145679C (en) | 2002-10-22 |
EP0664025B1 (en) | 1997-04-23 |
US5717877A (en) | 1998-02-10 |
US6327627B1 (en) | 2001-12-04 |
DE69310187D1 (de) | 1997-05-28 |
DE69310187T2 (de) | 1997-11-27 |
JP2002278667A (ja) | 2002-09-27 |
JP2008176807A (ja) | 2008-07-31 |
JP2008181541A (ja) | 2008-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1091536A (zh) | 面向目标的结构系统 | |
CN1110745C (zh) | 具有面向目标的打印接口的操作系统 | |
CN1285997C (zh) | 链接内容浏览支持装置及其方法 | |
CN1082208C (zh) | 从语言中性源程序产生语言专用接口定义的系统和方法 | |
CN1096637C (zh) | 管理类方法名 | |
CN1148712C (zh) | 表现供阅读的文本和/或图形信息的系统和方法 | |
CN1205573C (zh) | 用于同步合成,显示及处理文本和图象文件的方法和设备 | |
CN1578949A (zh) | 数据对象导向的储存系统 | |
CN1321275A (zh) | 与源代码控制系统交互的方法和设备 | |
CN1609792A (zh) | 计算机程序的编程接口 | |
CN1609793A (zh) | 用于计算机平台的编程接口 | |
CN1828517A (zh) | 文档处理装置和文档处理方法 | |
CN101052948A (zh) | 对象过程图应用程序开发系统 | |
CN100337188C (zh) | 布局处理方法和信息处理装置 | |
CN1821956A (zh) | 用现有内容生成用于执行任务的活动内容向导可执行文件 | |
CN1302401A (zh) | 可视数据集成系统和方法 | |
CN1912825A (zh) | 信息处理装置及其控制方法 | |
CN1648846A (zh) | 文件处理装置和文件处理方法 | |
CN1165857C (zh) | 实现层次状态图的装置和对其有用的方法及设备 | |
CN1745364A (zh) | 用于扩展应用程序首选项类的系统和方法 | |
CN1731397A (zh) | 信息处理装置及其控制方法 | |
CN1294710A (zh) | 可扩充的分布企业应用集成系统 | |
CN1744036A (zh) | 报告软件中支持定制图形表示的系统和方法 | |
CN1809825A (zh) | 定义具有可选择和/或可定序部件的文档的方法和系统 | |
CN1892641A (zh) | 用于在电子表单中隐藏模型内的敏感数据的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |