專利名稱:用于復(fù)合文檔的入機(jī)界面系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)與計(jì)算機(jī)使用人員之間的界面,并特別涉及在復(fù)合文檔的生成和處理中增加了靈活性的人機(jī)界面結(jié)構(gòu)當(dāng)前,個(gè)人計(jì)算機(jī)中所用的很多應(yīng)用程序是作為各個(gè)孤立的單片式程序?qū)懗龅?,每一個(gè)被設(shè)計(jì)為要執(zhí)行特定的基本功能。例如,字處理程序設(shè)計(jì)為生成和編輯文本文檔。很多其他類型的程序雖然沒有被設(shè)計(jì)用于文本處理,但也有時(shí)要供文本的使用。例如擴(kuò)展頁程序可使得文本插入到擴(kuò)展頁作為對(duì)信息的行和列的描述符。類似地,諸如著色和繪圖程序等圖形應(yīng)用程序可提供作為著色和繪圖中的標(biāo)號(hào)的文本使用。雖然所有這些不同類型的程序提供了文本編輯功能,但是它們?cè)谖谋镜木庉嫷木唧w方式上是不同的。一些應(yīng)用程序?qū)τ谶@種功能提供了很大的能力,而另一些是很有限的。于是對(duì)于每一不同類型的應(yīng)用程序用戶就需要學(xué)習(xí)執(zhí)行相同功能(即編輯文本)的不同方法。
于是希望能提供一種結(jié)構(gòu),按這種結(jié)構(gòu)諸如文本這樣的文檔成分無論在什么地方都可以使用,而同時(shí)不論它處于什么特殊環(huán)境下都可以生成和編輯。以這樣的辦法,文本不論是出現(xiàn)在字處理文檔中、擴(kuò)展頁中、圖形文檔或任何其他文檔中都可以使用相同的一組命令對(duì)其進(jìn)行編輯。用戶只需要學(xué)會(huì)有關(guān)一種文本編輯程序,于是編輯處理就會(huì)變得更為方便。
按照這些途徑,進(jìn)而希望能夠編輯文檔自身內(nèi)的復(fù)合文檔成分。在本發(fā)明的文獻(xiàn)中,復(fù)合文檔是指這樣一種文檔,其中使用兩種或多種不同類型的程序產(chǎn)生單一的一致的信息片斷的現(xiàn)象。例如,它可能是包含由圖形程序生成的圖的文本文檔。這兩種類型的信息有相互包容的關(guān)系。更具體來說,文本文檔所起的作用是作為對(duì)于圖形對(duì)象的容器,使得圖形對(duì)象與文本(容器)文檔一同移動(dòng)并受到文本文檔的影響。
以前,這種類型的復(fù)合文檔要通過運(yùn)行兩種不同的應(yīng)用程序而生成。字處理程序用來產(chǎn)生文檔的文本部分。另外的圖形應(yīng)用程序用來產(chǎn)生圖。為了把這兩個(gè)程序的工作產(chǎn)物結(jié)合為單一的文檔,圖就要以特殊的數(shù)據(jù)類型或格式存儲(chǔ),并且這種數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,例如使用剪貼操作,將被存放在字處理文檔中。這兩個(gè)分離的信息片合并為單一的文檔常常是通過稱為表示管理器的第三個(gè)應(yīng)用程序完成的。
一旦該圖被嵌入到字處理文檔之中,其內(nèi)容就變成了固定的。如果圖需要進(jìn)行改變,用戶必須調(diào)用圖形程序,檢索原始的圖,并在該程序內(nèi)編輯該圖。這編輯發(fā)生在復(fù)合文檔之外,而用戶在上下文的變化進(jìn)行時(shí)不能看到這些變化。然后修改了的圖必須嵌入到字處理文檔中代替原來的圖。
為了克服必須在不同的應(yīng)用程序之間切換,希望能夠提供一種方法,該方法能使得復(fù)合文檔的各個(gè)組成在該文檔自身內(nèi)進(jìn)行編輯。這種方法不僅節(jié)省了時(shí)間而且簡化了過程,它能使得用戶當(dāng)上下文正在發(fā)生變化時(shí)能看到這些變化。
傳統(tǒng)的個(gè)人計(jì)算機(jī)的操作系統(tǒng)的另一方面,對(duì)各種類型的信息能夠管理的方式有限制。例如,文檔和其他各類文件是存儲(chǔ)在存放器中的,該存放器在蘋果電腦公司所提供的Macintosh操作系統(tǒng)中就是所謂“文件夾”,而在微軟公司所提供的MS DOS操作系統(tǒng)中就是“目錄”或“子目錄”。
類似地,應(yīng)用程序和文檔在應(yīng)用桌面比喻的圖形界面中可表示為圖標(biāo),諸如Macintosh Finder系統(tǒng)和微軟環(huán)境。當(dāng)前,在這種界面中圖標(biāo)可被操作的方式是有限制的。例如,一個(gè)圖標(biāo)只能在與一個(gè)文件夾(或子目錄)相關(guān)的桌面或窗口中。如果該窗口代表的不是文件夾或卷冊(cè)而是其他什么,例如一個(gè)文本文檔。則該圖標(biāo)就不能放在其中。此外一定種類的圖標(biāo)只能放在另一些特定類型的圖標(biāo)上。例如,如果一個(gè)圖標(biāo)表示文檔,則它只能放在表示與這類文檔相關(guān)的應(yīng)用程序的圖標(biāo)上。該文檔圖標(biāo)不能放在包括那些可能與其他類型應(yīng)用程序相關(guān)的其他類型的圖標(biāo)上。
因此,本發(fā)明的一個(gè)目的是提供一種系統(tǒng),其中對(duì)于一個(gè)任務(wù)可提供一致的用戶界面,而不論執(zhí)行該任務(wù)所在的環(huán)境怎樣。此外,本發(fā)明的目的是消除操作各類數(shù)據(jù)的限制,從而在生成和編輯所有類型的復(fù)合文檔時(shí)提供較大的靈活性。
本著這些目的,本發(fā)明提供了一種統(tǒng)一的界面,該界面使得各種信息傳送元件可在文檔中以從前不可能的方式被結(jié)合和操作。在本發(fā)明情形中,文檔被認(rèn)為是界面的一種組件,其目的是向用戶呈現(xiàn)信息并允許對(duì)該信息(例如文本文檔或圖形文檔)進(jìn)行編輯。
界面的一致性是通過文檔中心結(jié)構(gòu)提供的,該結(jié)構(gòu)應(yīng)用了以下稱之為“部件”的基本構(gòu)成模塊完成任務(wù)的。一個(gè)部件是一種自治的單元,它由兩個(gè)基本成分組成,其內(nèi)容和對(duì)于內(nèi)容的操作程序。這兩個(gè)成分對(duì)于用戶總是可得的而不論該部件可能在系統(tǒng)中什么地方,例如作為文檔的一個(gè)組件,在文件夾中,或在桌面上。對(duì)于該部件的操作程序可以是用于該部件的內(nèi)容的任何類型的編輯程序或查看程序,并且如果必要它可由用戶選擇。例如,如果部件的內(nèi)容是文本,則作為該部件的成分的編輯程序可以是用戶所熟悉的任何字處理程序。該字處理程序可用來編輯該部件的文本內(nèi)容,而不論這些文本內(nèi)容可能嵌入在何處。于是即使該部件嵌入在例如擴(kuò)展頁非文本文檔之中,該部件的文本內(nèi)容仍然可由用戶所選擇的字處理程序編輯。
呈現(xiàn)這一特性的界面具有重要的固有特征它比較簡單而且同時(shí)功能更強(qiáng)。其簡單是由于以下的事實(shí)用戶只需學(xué)會(huì)執(zhí)行特定任務(wù)的一種方法,例如編輯文本。同時(shí)其功能更強(qiáng)是由于該文本編輯程序可以是一全功能模塊,該模塊代替了當(dāng)前在很多類型的應(yīng)用程序中可找到的功能較少的模塊。
部件的這兩個(gè)基本成分可使得部件既起到對(duì)象的作用(由于其固有的內(nèi)容)又起到應(yīng)用程序的作用(由于其固有的操作程序或編輯程序)。由于這些特征,一個(gè)部件可以提供數(shù)個(gè)不同的功能。例如每個(gè)文檔是一個(gè)部件,而每個(gè)部件也可以作為一個(gè)文檔起作用。舉例來說,文本部件是包含字符的文檔,而圖形部件是包含直線和圓的文檔。本發(fā)明中,文件夾甚至桌面都構(gòu)成部件,因而可包含以往僅僅與文檔相關(guān)的內(nèi)容,諸如文本。部件的這一特性提供了當(dāng)前所用的應(yīng)用程序中所沒有的統(tǒng)一性,在當(dāng)前的應(yīng)用程序中諸如文件夾這樣的對(duì)象的功能是不能作為文檔的。
部件的另一特性是其作用可以作為一個(gè)存放器,即一個(gè)部件可以包含其他部件。而且一個(gè)部件是不限于它所包含的部件的類型的。并且,如果一個(gè)部件可包含任何類型的部件,則它就可以包含所有類型的部件。部件的這一特性反映了本發(fā)明對(duì)于生成復(fù)合文檔是一個(gè)理想的結(jié)構(gòu)。由于文檔能夠包含部件,因而文檔就能自動(dòng)地包含表示不同類型信息的所有類型的部件。而不必對(duì)文檔或操作程序進(jìn)行任何修改。
這些特性的結(jié)果是得到一種界面,可在其中通過以產(chǎn)生所需要的結(jié)果的方式來安排不同的部件而裝配一復(fù)合文檔。在這個(gè)意義上,本發(fā)明的界面是文檔中心式的,而不是面向應(yīng)用的。更具體而言,傳統(tǒng)的應(yīng)用程序在本發(fā)明的界面中不起任何作用,本發(fā)明的界面是與數(shù)據(jù)分開的,界面與數(shù)據(jù)結(jié)合而形成部件。
本發(fā)明的另一方面是部件向用戶表示的方式。一個(gè)部件可被表示為一個(gè)圖標(biāo),該圖標(biāo)是一個(gè)對(duì)于該部件提供處理的一個(gè)小的圖示,允許它被作為一個(gè)整體操作。例如,圖標(biāo)可在桌面上和窗口之間被拖動(dòng),并在拖動(dòng)操作中可以是按放其他圖標(biāo)的目標(biāo)。而且與傳統(tǒng)的應(yīng)用程序類似,部件的內(nèi)容可以被擴(kuò)展到由窗口在桌面上所定義的工作空間。
另外部件可被表示為幀。一個(gè)幀是顯示屏上表示一個(gè)部件的區(qū)域,與圖標(biāo)類似。幀提供對(duì)于部件的處理,允許它們作為一個(gè)整體被操作。它們可在桌面上和窗口之間拖動(dòng),在拖動(dòng)操作時(shí)它們可提供用于安放的目標(biāo),并且它們可被打開進(jìn)入窗口和被關(guān)閉而回到幀。然而與圖標(biāo)不同,幀允許一個(gè)部件的內(nèi)容能夠看得見并被就地編輯。
幀是一種數(shù)據(jù)結(jié)構(gòu),這種結(jié)構(gòu)的功能是作為包含部件(例如一文檔)和嵌入部件之間的界面。幀由數(shù)個(gè)屬性組成,一些屬性由包含部件控制,一些由嵌入部件控制。通過幀的中介,用于包含部件和嵌入部件的操作可以協(xié)調(diào)提供給在包含部件內(nèi)的嵌入部件的空間份額。
通過使用部件作為對(duì)于用戶界面的基本構(gòu)成模塊,本發(fā)明提供了以往的個(gè)人計(jì)算機(jī)應(yīng)用程序中所沒有的功能。在以下將通過本發(fā)明的較佳實(shí)施方式的具體例子說明這些功能。
圖1是一個(gè)計(jì)算機(jī)系統(tǒng)主要組件的框圖;圖2A和2B是顯示屏的兩個(gè)視圖,表示從一個(gè)文件夾到一個(gè)文檔拖動(dòng)一個(gè)部件;圖3A和3B是顯示屏的兩個(gè)視圖,表示幀的啟動(dòng);圖4表示在一個(gè)現(xiàn)用的幀中所選擇的一個(gè)幀;圖5A和5B是表示幀結(jié)構(gòu)的兩個(gè)例子示意圖,圖5C—5F是發(fā)生在一個(gè)嵌入部件和一個(gè)包含部件之間對(duì)于幀屬性的協(xié)調(diào)的兩個(gè)例子的流程框圖;圖6是啟動(dòng)一個(gè)編輯程序的過程的流程圖;圖7A—7E是表示在桌面和文檔之間的部分一個(gè)部件拖動(dòng)過程的屏幕顯示序列;圖8A和8B是拖動(dòng)和投放一個(gè)部件的過程的流程圖;圖9A—9C,10A—10C和11A—11C分別表示從一個(gè)部件向另一個(gè)部件復(fù)制材料的屏幕顯示的各個(gè)序列;圖12是從一個(gè)部件向另一個(gè)部件中放置材料的過程的流程圖;圖13是表示具有被限制的訪問的部件的屏幕顯示;以及圖14是表示一個(gè)部件箱的屏幕顯示。
為了能夠理解本發(fā)明及其所提供的優(yōu)點(diǎn),將參照本發(fā)明在由蘋果電腦公司所提供的Macintosh牌計(jì)算機(jī)中的應(yīng)用說明和表示本發(fā)明的特性。然而,熟知相關(guān)技術(shù)的人士理解,本發(fā)明的原理是不限于這種特定類型的操作環(huán)境的。而且,本發(fā)明所基于的概念是適用于希望在其中提供一致的界面用于編譯和編輯文檔特別是復(fù)合文檔的任何類型的計(jì)算機(jī)操作系統(tǒng)的。
本發(fā)明可被使用的計(jì)算機(jī)系統(tǒng)類型中的一種典型以框圖的形式示于圖1中。計(jì)算機(jī)本身的結(jié)構(gòu)并不構(gòu)成本發(fā)明的部分。這里只對(duì)于以下理解本發(fā)明的特性與計(jì)算機(jī)的結(jié)構(gòu)配合的方式作簡要說明。參見圖1,該系統(tǒng)包括具有與其連接的各種外圍設(shè)備12的計(jì)算機(jī)10。計(jì)算機(jī)10包含一中央處理器14,一般以隨機(jī)訪問存儲(chǔ)器16的形式實(shí)現(xiàn)的主存儲(chǔ)器,可包含一只讀存儲(chǔ)器18的靜態(tài)存儲(chǔ)器,以及永久性存儲(chǔ)器件,諸如磁盤或光盤20。CPU 14通過內(nèi)部總線22與這些形式的存儲(chǔ)器的每一個(gè)通信。外圍設(shè)備12包括諸如鍵盤24這種數(shù)據(jù)輸入設(shè)備,以及指點(diǎn)或光標(biāo)控制器26,諸如鼠標(biāo)、跟蹤球等。顯示器28(諸如CRT監(jiān)視器或LCD屏幕)提供了計(jì)算機(jī)內(nèi)正在處理的信息(例如文檔的內(nèi)容)的可視化的顯示。這一信息的硬拷貝可通過打印機(jī)30或類似的設(shè)備提供。這些外圍設(shè)備的每一個(gè)借助于計(jì)算機(jī)上的一個(gè)或多個(gè)輸入/輸出端口32與CPU 14進(jìn)行通信。
本發(fā)明特別涉及其中的CPU 14處理由鍵盤24和光標(biāo)控制器26操作,以及所操作的信息是通過顯示器30呈現(xiàn)給用戶這種控制方式的系統(tǒng)。使用本發(fā)明的原理的一個(gè)界面的例子示于圖2A及2B。這些圖示出定義了工作空間36的桌面34。菜單條38也包含在該桌面上。在工作空間36內(nèi)有兩個(gè)窗口40與42。左手的窗口40是一包含表示各種部件的圖標(biāo)的文件夾窗口。如圖2A所示,三個(gè)圖標(biāo)44屬于文本部件,第四個(gè)圖標(biāo)45表示圖形部件以及另一圖標(biāo)46表示一擴(kuò)展頁部件。第六個(gè)圖標(biāo)48是一表示可用于生成顯示滑片的文具圖標(biāo)。在圖2A中,右手的窗口42包含一文本文檔。更具體而言,該文檔包含一文本部件50。這一文本部件可通過在窗口42內(nèi)鍵入文本,或通過在該窗口內(nèi)打開由圖標(biāo)所表示的以前所生成的文本部件而生成。
圖2B表示已經(jīng)把圖標(biāo)45從左窗口40中的文件夾拖動(dòng)到右窗口42中的文本文檔上的操作的結(jié)果。諸如圖2A與2B所示,正如在提供了桌面比喻的界面中所知道的,拖動(dòng)這種操作通過光標(biāo)控制器26的動(dòng)作可使得對(duì)象在桌面上或窗口中被移動(dòng)或復(fù)制。一旦圖標(biāo)放置到文檔內(nèi),其內(nèi)容就被顯示在幀52中。由于現(xiàn)在該文檔包含一個(gè)圖形組件以及一個(gè)文本組件,它被稱為復(fù)合文檔。
文本50與幀52中的圖形組件屬于分開的共同構(gòu)成了該文檔的各部件。如前所述,一個(gè)部件是一個(gè)由內(nèi)容和對(duì)于該內(nèi)容的操作程序所組成的自治的實(shí)體。無論部件位于桌面何處,當(dāng)部件被訪問時(shí)這兩個(gè)成分總是可以得到的。于是如圖2A所示,當(dāng)圖標(biāo)45位于窗口40的文件夾內(nèi)時(shí),它表示一個(gè)包含圖標(biāo)組件和對(duì)于該組件的編輯程序的部件。當(dāng)該部件移動(dòng)到窗口42中的文檔時(shí),其內(nèi)容與它一同移動(dòng),于是用于這些內(nèi)容的編輯程序的功能性用戶是可用的。
這一特性的重要性在于這樣的事實(shí),不論在何處,部件的內(nèi)容總是可被編輯,或是被操作。于是在圖2B的復(fù)合文檔中,文本內(nèi)容50可在文檔之內(nèi)被編輯,例如使用當(dāng)初生成該文本時(shí)所使用的同一字處理程序。由于圖形編輯程序作為由幀52所表示的部件的一個(gè)成分而存在,這使得該部件的圖形內(nèi)容可就地直接編輯。于是,不再象先有的用于個(gè)人計(jì)算機(jī)的應(yīng)用程序那樣需要用戶(比方說)在桌面34上的另一窗口中打開圖形應(yīng)用程序,編輯所需要的圖形信息,并然后把編輯的圖形輸出到窗口42中的文檔。而是用戶可以在窗口42中的文檔的上下文內(nèi)直接編輯幀52的內(nèi)容,不需要實(shí)行任何插入的步驟。用戶可集中于文檔的內(nèi)容,而不是應(yīng)用程序,并利用由周圍的文檔所提供的上下文。
因而,部件是獨(dú)立于底層系統(tǒng)技術(shù)的自治的對(duì)象。它可用于任何類型的軟件引擎或環(huán)境,而用戶不需要學(xué)習(xí)針對(duì)部件的特定的編輯程序的操作。只要對(duì)于類型的部件的編輯程序被表示在底層系統(tǒng)中,用戶就可以充分利用部件的功能。而且,如果一個(gè)文本部件是由一個(gè)特定的文本編輯程序(字處理程序)生成的,并不強(qiáng)求用戶對(duì)于這個(gè)部件僅使用該文本編輯程序。如果用戶已經(jīng)熟悉了一個(gè)不同的字處理程序的命令,該處理程序可被指定為該計(jì)算機(jī)系統(tǒng)中對(duì)于所有文本部件首選的編輯程序。
部件不限于文檔及其內(nèi)容。而是系統(tǒng)中每一對(duì)象構(gòu)成一個(gè)部件。于是窗口40中的文件夾是一個(gè)部件,其內(nèi)容是圖標(biāo)44—48。類似地,桌面34本身是一個(gè)部件,以及對(duì)話框和其他用戶界面對(duì)象也是對(duì)象。
幀和圖標(biāo)是部件的另一種表示。用戶借助于適當(dāng)?shù)逆I盤或菜單命令可在部件的幀與圖標(biāo)表示之間切換。如果一個(gè)文檔很大,比如由幾頁組成,那么在幀中只能看到它的一部分。于是象圖標(biāo)一樣,幀可以被打開為窗口,因而例如通過滾屏使得很大部件的全部內(nèi)容可被看到,并利用諸如放大等窗口通用功能進(jìn)行編輯。類似地,它們可被從窗口關(guān)閉退回為幀。幀與圖標(biāo)的不同之處在于,幀允許其內(nèi)容被就地編輯。幀與窗口也不同,因?yàn)閹词故嵌鄠€(gè)可存在于一個(gè)窗口之內(nèi)。窗口是對(duì)象的暫時(shí)的視圖,窗口只有在部件被編輯或檢查時(shí)才是保持打開的。與此相反,幀是部件內(nèi)容的永久性的表示。
一個(gè)部件,不論它以圖標(biāo)或幀的形式,其作用都可作為對(duì)于其他部件的容器。在圖2B的例子中,文本50位于其邊界與窗口42的邊界相同的一個(gè)幀內(nèi)。這個(gè)較大的幀包含了用于圖形部件的較小的幀52。由于文本部件是該窗口中最外邊的部件,它被標(biāo)以“根部件”。一般來說,根部件為窗口建立了的基本編輯性能。
一個(gè)根部件可以通過一個(gè)文具圖標(biāo)產(chǎn)生,諸如圖2A中所描繪的圖標(biāo)48。一般,一個(gè)文具圖標(biāo)表示一個(gè)預(yù)先規(guī)定的部件,并且功能是作為物理世界中拍紙簿的比喻。當(dāng)需要產(chǎn)生一個(gè)新的文檔時(shí),一個(gè)人從拍紙簿撕下一張空白的紙并在其上放置文檔的內(nèi)容,例如文字,圖形等等。文具圖標(biāo)的工作方式類似。當(dāng)用戶想要生成一個(gè)新的文本文檔時(shí),文本文具圖標(biāo)被打開,例如通過在它上面雙擊將其打開。該文具圖標(biāo)對(duì)此響應(yīng)而生成(或“撕下”)自身的一個(gè)拷貝,該拷貝被打開為一個(gè)窗口或幀。這拷貝是一個(gè)普通的空白部件,即它原來沒有內(nèi)容,或可能有一定的預(yù)置的信息,諸如信箋頭或公司標(biāo)志。然后用戶輸入添加的內(nèi)容例如字符到文檔中。
文具本身并不作為窗口或幀打開;它僅作為一個(gè)圖標(biāo)而存在。只是撕下的復(fù)制品打開。于是當(dāng)拖動(dòng)一個(gè)文具圖標(biāo)進(jìn)入文檔時(shí),不是打開它本身為一個(gè)幀,而是“撕下”一個(gè)復(fù)制品,放到文檔中,并把該復(fù)制品打開為一個(gè)幀。文具圖標(biāo)本身返回在移動(dòng)前所在的位置。這防止了文具被意外地插入文檔中,并可能丟失。
由于幀的功能可作為一個(gè)容器,它顯示了窗口的某些已知的性質(zhì)。例如,當(dāng)用戶選擇了包含在幀中的諸如一個(gè)圖形對(duì)象這樣一個(gè)部件時(shí),包含這部件的幀變?yōu)楝F(xiàn)用的。當(dāng)一個(gè)部件啟動(dòng)時(shí),它接收命令和鍵盤事件,并顯示其菜單和其他用戶接口選項(xiàng)。幀啟動(dòng)的一個(gè)實(shí)例表示在圖3A與3B中。圖3A表示具有含有包括文本和一個(gè)圖形部件的復(fù)合文檔的窗口54的一個(gè)桌面。在這個(gè)復(fù)合文檔中,文本形成了該文檔的根部件。在圖3A的例子中,文本的部分56已被選擇,并以反相顯示來表示。這種情形下,包含所選擇的部件的幀與窗口本身的邊界相連。用于桌面的菜單條58包含那些適用于編輯該文本的命令。
圖3B示出已選擇了一個(gè)圖組件(即三角形60)的一個(gè)實(shí)例。包含該圖組件的幀現(xiàn)在是現(xiàn)用的,而其邊界由虛線62表示。由于該現(xiàn)用的幀現(xiàn)在是一個(gè)圖形部件,菜單條58中的命令已經(jīng)變?yōu)檫m用于編輯圖形內(nèi)容的命令。此外,調(diào)色板64顯示在桌面上,以便提供編輯現(xiàn)用的幀的圖形內(nèi)容所必須的那些工具。
除了啟動(dòng)幀以外,用戶也可以選擇它們。例如幀的選擇可這樣來完成,通過啟動(dòng)一個(gè)幀使得其邊界可看到,并然后當(dāng)光標(biāo)的指點(diǎn)位于幀的邊界上時(shí)按動(dòng)光標(biāo)控制器上的按鈕。圖4表示一個(gè)即包含圖形又包含文本內(nèi)容的幀66。該幀的邊界68由虛線表示,以指明它是現(xiàn)用的幀這樣一個(gè)事實(shí)。在這個(gè)現(xiàn)用的幀內(nèi)是一個(gè)包含文本內(nèi)容的幀70。這個(gè)幀在光標(biāo)72的指點(diǎn)位于幀的邊界73時(shí)已經(jīng)通過按動(dòng)光標(biāo)控制器的按鈕被選擇。為了表明幀72已經(jīng)被選擇這樣一個(gè)事實(shí),被選擇的幀72的邊界73與現(xiàn)用的幀66的邊界具有不同的呈現(xiàn)。例如,該邊界如圖4中所示可以是較寬的。此外,可以對(duì)邊界提供改變尺寸的標(biāo)識(shí)74,該標(biāo)識(shí)使得幀的尺寸和形狀可以按已知的方式改變。
一般,只要當(dāng)部件或部件的一些內(nèi)容被選擇,包含被選擇的成份的最小的幀就變?yōu)楝F(xiàn)用的幀。于是,如果例如通過當(dāng)光標(biāo)位于一個(gè)字上時(shí)按動(dòng)光標(biāo)控制按鈕而選擇幀70內(nèi)的一個(gè)字,則幀70由被選擇狀態(tài)變?yōu)楝F(xiàn)用狀態(tài)。同時(shí),幀66的邊界68從視圖中消失,因?yàn)檫@個(gè)幀即不是現(xiàn)用的也不是被選擇的。反之,如果幀66被其邊界68上點(diǎn)擊所選擇,則邊界73消失,而邊界68變?yōu)槌尸F(xiàn),并且包含幀66(圖4中未示出)的幀(或窗口)的邊界被加亮以表示它是現(xiàn)用的。
在圖3A,3B與4的例子中,幀被表示為具有矩形形狀。雖然這一形狀最適于顯示大多數(shù)類型的部件,但是幀的形狀不必限制為矩形。幀是可以具有任何適于顯示其內(nèi)容的形狀的。
幀不是部件本身的一個(gè)成份。幀是一個(gè)分離的數(shù)據(jù)結(jié)構(gòu),其作用是作為容器部件和嵌入部件之間的接口。每一個(gè)幀具有一定數(shù)目的特征屬性,它們被表示為各種“形狀”。這些形狀的每一個(gè)代表定義了容器部件與嵌入部件之間共享的一定的文檔的上下文的區(qū)域的幾何描述。一些形狀由容器部件控制,而另一些則由嵌入部件確定。一般,這些不同的形狀可以表示文檔上下文坐標(biāo)空間的任何區(qū)域。就此而言,幀的形狀可以表示不相交的區(qū)域以及相接觸的區(qū)域。
參見圖5A與5B對(duì)于幀的各種特征形狀進(jìn)行了描述。這些圖中,左邊的圖示描繪了包含文本(根部件)與由一個(gè)三角形表示的一個(gè)圖形部件的復(fù)合文檔。右邊的圖示表示對(duì)于圖形部件的幀的形狀屬性。
幀的特征屬性之一是幀形。這形狀由容器部件決定,并向嵌入的部件描繪了它應(yīng)當(dāng)用來展示其自身的幾何區(qū)域。參見圖5A與5B,幀形由最外側(cè)的實(shí)線邊界75畫出。由這一形狀所定義的區(qū)域會(huì)影響標(biāo)度、線的斷開、或其他必須由編輯程序?qū)τ谇度氲牟考M(jìn)行的類似的設(shè)定。只有容器部件可以直接改變幀形。當(dāng)這一形狀由容器部件所改變時(shí),向嵌入部件發(fā)出通知,使得能夠在嵌入部件的內(nèi)容中作出適當(dāng)?shù)母淖儭?br>
幀的第二個(gè)特征屬性是其由圖5A與5B中形成的邊界76所描述的剪切形。剪切形對(duì)嵌入部件描述了部件內(nèi)容可被畫入的幾何區(qū)域。在圖5A的例子中,剪切形是與幀形同時(shí)擴(kuò)展的。然而在圖5B的例中,矩形圖形部件的右下部分被一個(gè)表格重疊。因而用于圖形部件的剪切形76排除了由該表格所重疊的這一區(qū)域。剪切形是由容器即形成圖5A與5B中所示的例子中的根部件的文檔決定的。只有容器可改變剪切形。并且當(dāng)它進(jìn)行這種改變時(shí)它把這種改變通知嵌入部件。
幀的另一特征屬性是由圖5A與5B中實(shí)線77所表示的已用形(Used Shape)。這一形狀是由嵌入部件所決定的,并向容器描繪了可被嵌入部件實(shí)際使用的幾何區(qū)域。這一形狀必須是幀形的一個(gè)子集。不允許容器部件在已用形內(nèi)部繪圖,但是已用形的外部區(qū)域中即使是位于剪切形與幀形的區(qū)域之內(nèi)也可自由繪圖。嵌入部件可以改變已用形,并且當(dāng)進(jìn)行這種改變時(shí)它把改變通知容器部件。
幀的特征屬性的第四形是其現(xiàn)用形,該形由圖5A與5B中的陰影線78描繪。這一形狀是由嵌入部件所確定的,并向容器部件描繪了嵌入部件在其中應(yīng)該在幾何上接收諸如光標(biāo)控制輸入等相關(guān)事件的幾何區(qū)域。每當(dāng)一個(gè)事件出現(xiàn)在這一區(qū)域中時(shí),該容器部件必須把該事件傳送給嵌入部件,而不是對(duì)于事件本身作出反應(yīng)。然而,容器部件對(duì)于發(fā)生在嵌入部件的現(xiàn)用形以外的區(qū)域中的事件作出反應(yīng)是不受限制的。
幀的另一屬性是其組標(biāo)記。幀的組標(biāo)記是可唯一標(biāo)識(shí)給定的容器內(nèi)一組相關(guān)的幀的諸如一個(gè)數(shù)這樣一種標(biāo)識(shí)。容器部件使用幀組標(biāo)記來控制成組的各種幀的幾何關(guān)系。
幀允許容器部件和嵌入部件以彼此內(nèi)部約束最少的知識(shí)協(xié)調(diào)文檔的結(jié)構(gòu)。參見圖5C—5F示出了容器部件和嵌入部件之間可能發(fā)生的協(xié)調(diào)的實(shí)例。在圖5C例中,幀形由容器代替。例如這一過程可由來自用戶的一個(gè)改變幀的尺寸的命令啟動(dòng)。在步驟501,包含部件對(duì)于嵌入的幀確定新的幀形,并通知幀這一新的形狀。在步驟502,嵌入的幀對(duì)此響應(yīng)是把來自包含幀坐標(biāo)空間的形狀變換為嵌入幀的形狀。這一新的形狀作為幀形存儲(chǔ),并傳送給嵌入部件。在步驟503,嵌入部件對(duì)于新的幀形調(diào)整自身。例如,文本編輯程序可對(duì)于文本的編排重新設(shè)置頁邊。如果已用形和現(xiàn)用形不同于幀形的形狀,嵌入部件還要計(jì)算這些新的形狀。然后控制轉(zhuǎn)向包含部件,并在步驟504包含部件對(duì)應(yīng)于新的幀形改變幀的剪切形,并通知該幀有關(guān)新的剪切形。
圖5D示出當(dāng)嵌入部件請(qǐng)求新的幀形時(shí)發(fā)生的過程。這一請(qǐng)求可作為編輯嵌入部件的內(nèi)容,必須額外的空間用于適當(dāng)編排這些內(nèi)容的結(jié)果而出現(xiàn)。在步驟505,判定出嵌入的部件需要一個(gè)新的幀形,并向其顯示幀發(fā)送一對(duì)于新的形狀的請(qǐng)求。在后來需要的情形下老的形狀可由嵌入部件存儲(chǔ)。在步驟506,顯示幀把來自嵌入幀的坐標(biāo)空間的形狀變換為包含幀的形狀,并把請(qǐng)求傳送給包含部件。在步驟507,包含部件判定如何對(duì)該請(qǐng)求作出響應(yīng)。它可能準(zhǔn)許對(duì)于所需形狀的請(qǐng)求,或判定需要較小的形狀。一旦判定出幀形,對(duì)于幀的剪切形也被修改,并向幀提供有關(guān)允許幀的通知。在步驟508,顯示幀把來自包含幀的坐標(biāo)形狀的形狀變換為嵌入幀的形狀。新的形狀是作為傳送給嵌入部件的它的幀形而存儲(chǔ)的。在步驟509,嵌入部件改變其顯示幀的已用形和現(xiàn)用形,調(diào)節(jié)為其新的幀形。
圖5E描繪了容器部件改變剪切形狀的過程。例如參見圖5B,可能是來自用戶行為的結(jié)果而需要改變剪切形,其中由顯示幀所環(huán)繞的區(qū)域的一部分將與不同部件的內(nèi)容重疊。在步驟510,包含部件對(duì)于其顯示幀判定出有關(guān)新的剪切形,并通知該幀有關(guān)這一新的形狀。在步驟511,該顯示幀把這通知傳送給嵌入部件。在步驟512,對(duì)此的響應(yīng)是嵌入部件通過改變其內(nèi)容編排的方式適當(dāng)?shù)卣{(diào)節(jié)其自身為新的剪切形。
圖5F描繪了嵌入部件改變其已用形的過程??赡芤彩怯捎谟脩艟庉嫴考膬?nèi)容所引起的需要那種改變。在步驟513,嵌入部件對(duì)于其顯示幀選出新的已用形,并把這個(gè)新的形狀通知給幀。在步驟514,顯示幀把該通知傳送給包含部件。在步驟515,對(duì)此的響應(yīng)是包含部件調(diào)節(jié)自身為新的已用形。例如,它可能改變其內(nèi)容編排方式以不同方式繞過該新的形狀。
因而,幀是協(xié)調(diào)嵌入部件與包含部件之間所需空間配置的一種數(shù)據(jù)結(jié)構(gòu)。通過應(yīng)用不同的形狀屬性,幀可使得包含部件和嵌入部件能夠以有效的方式利用可用的空間,而不需要每一部件詳述涉及有關(guān)其他部件的內(nèi)容或行為的信息。于是可以更大的靈活度組合復(fù)合文檔。
對(duì)于一個(gè)部件的編輯程序或其他操作程序與通常的計(jì)算機(jī)系統(tǒng)的應(yīng)用程序類似。它是提供顯示部件內(nèi)容并在適當(dāng)?shù)牡胤匠尸F(xiàn)用于修改那些內(nèi)容的用戶界面這些必要的功能性質(zhì)的軟件組件。它可以包含菜單、控制功能、工具盤和其他交互技術(shù)。對(duì)于一個(gè)能夠包含其他部件的部件,其編輯程序在顯示其內(nèi)容時(shí)把這些被包含的部件考慮在內(nèi)。例如,一個(gè)文本編輯程序可以使得其部件的內(nèi)容繞過而不會(huì)出現(xiàn)在嵌入的圖形部件的已用形之中。
為了應(yīng)用由傳統(tǒng)的應(yīng)用程序所提供的功能,程序必須被啟動(dòng)或引導(dǎo)。換言之,它必須存儲(chǔ)在系統(tǒng)的有效存儲(chǔ)器中,例如RAM16。以類似的方式,一個(gè)部件的編輯程序必須在系統(tǒng)的存儲(chǔ)器中或其他CPU可訪問的方式運(yùn)行。為此,編輯程序必須裝在系統(tǒng)上。例如它可以存儲(chǔ)在硬盤20上的一個(gè)文件夾中,并在相關(guān)的部件被訪問時(shí)被調(diào)用。為了保存系統(tǒng)資源,所有安裝的編輯程序可以不必在任何時(shí)候都裝入系統(tǒng)存儲(chǔ)器中,而是在需要時(shí)它們可被啟動(dòng)。例如,用于一個(gè)部件的編輯程序在該部件被拖入一個(gè)文檔時(shí)可被啟動(dòng),因?yàn)檫@是極可能需要這種編輯能力的時(shí)候。
啟動(dòng)編輯程序或其他操作程序的過程示于圖6的流程圖中。參見該圖,在步驟601系統(tǒng)尋找待啟動(dòng)的部件。這一步驟的訪問可能是每當(dāng)對(duì)于按動(dòng)鼠標(biāo)按鈕的所產(chǎn)生的事件標(biāo)志的響應(yīng),或可能是文稿編排程序的一個(gè)步驟。一旦檢測(cè)到部件的啟動(dòng),系統(tǒng)識(shí)別與這部件相關(guān)的編輯程序(步驟602)。就此來說,每一部件具有與其相關(guān)的一定的性質(zhì)。這些性質(zhì)之一是指向用于該部件的編輯程序的指針。其他兩個(gè)性質(zhì)是部件的范疇(例如它是否為文本、圖形、或是擴(kuò)展頁等等)及其類型,它是部件內(nèi)容的格式指示符。例如,一個(gè)文本部件可能是“字處理程序A”型,另一型可能是“字處理程序B”,雖然兩者都屬于相同的范疇(文本)。部件類型常常由用于該部件內(nèi)容的最后的編輯程序所決定。一般來說,范疇是部件類型的集合,并決定了可用于給定部件的部件編輯程序或查看程序的集合。部件的性質(zhì)與其內(nèi)容一同存儲(chǔ)。例如,所有的的部件性質(zhì)可包含在與部件內(nèi)容存儲(chǔ)的“性質(zhì)頁”之中。
一旦在步驟602,辨識(shí)出編輯程序(或部件類型),系統(tǒng)判定該編輯程序是否已在存儲(chǔ)器中運(yùn)行(步驟603)。如果已經(jīng)運(yùn)行,系統(tǒng)返回主程序并等待用戶進(jìn)一步的動(dòng)作。如果編輯程序尚未運(yùn)行,系統(tǒng)核實(shí)在步驟602的識(shí)別的編輯程序是否安裝到系統(tǒng)上(步驟604)。如果在步驟602識(shí)別的編輯程序安裝到系統(tǒng)上,在步驟605啟動(dòng)該編輯程序,使得它可用于編輯部件的內(nèi)容。
然而可能有這種情形,即部件的編輯程序不是當(dāng)前安裝在系統(tǒng)上的。這種情形下,在步驟604的判定是否定的,系統(tǒng)對(duì)此的響應(yīng)是判定用戶是否為該部件的范疇選擇一個(gè)首選的編輯程序(步驟606)。更具體來說,用戶可對(duì)于部件的每一不同的范疇選擇一個(gè)首選的或者是缺省的編輯程序。于是如果用戶最熟悉一個(gè)特定的字處理程序的功能命令,該處理程序就可被選作為對(duì)于文本范疇中所有部件的首選文本編輯程序。如果已經(jīng)選定首選的編輯程序,該系統(tǒng)核實(shí)此首選編輯程序是否裝入(步驟607),并如果已裝入,則在步驟608啟動(dòng)該程序。
如果沒有規(guī)定首選編輯程序,或如果首選編輯程序在系統(tǒng)中不存在,在步驟609核實(shí)在系統(tǒng)中是否存在用于部件的這一范疇的任何編輯程序,如果不存在,則向用戶提供適當(dāng)?shù)木?步驟610),并且然后系統(tǒng)返回后臺(tái)程序。如果對(duì)于部件的該范疇可獲得一個(gè)或多個(gè)編輯程序,它們被列出并且提示用戶選擇一個(gè)(步驟611)。對(duì)于用戶的選擇的反應(yīng)是,所選擇的編輯程序被啟動(dòng)(步驟612)并作為用于該部件范疇的首選編輯程序存儲(chǔ)(步驟613)。然后系統(tǒng)退回后臺(tái)程序等待用戶進(jìn)一步的輸入。
例如通過一個(gè)適當(dāng)?shù)牟藛蚊?,可在任何時(shí)候向用戶提供改變所指定的用于部件的編輯程序的選擇。通過調(diào)用這一命令,用戶引起作為該部件性質(zhì)之一而存儲(chǔ)的指針改變?yōu)檠b在系統(tǒng)上的一個(gè)不同的編輯程序的位置。也可以提供菜單命令使得用戶在不同的水平選擇首選編輯程序,例如在文檔水平(文檔中的所有文本部件具有相同的編輯程序)和在全局(系統(tǒng)范圍)水平。每當(dāng)用戶訪問菜單選擇或改變用于部件的編輯程序,只有適合于部件范疇的已經(jīng)安裝的編輯程序的集合向用戶顯示供選擇。
如果需要,系統(tǒng)可以保持上次已經(jīng)使用的存儲(chǔ)器中運(yùn)行的每一編輯程序的記錄。如果一個(gè)編輯程序沒有被使用預(yù)定長的時(shí)間,系統(tǒng)能夠自動(dòng)地將該編輯程序從存儲(chǔ)器中刪除,以便保存系統(tǒng)資源。而且,當(dāng)一個(gè)文檔關(guān)閉時(shí),與該文檔部件相關(guān)的編輯程序也可被關(guān)閉,除非它們還與當(dāng)前打開的其它部件相關(guān),例如在另一個(gè)文檔中。
由于部件的自治性質(zhì),用于各個(gè)部件的容器不再限于特定的類型。例如,以往文本文檔只能包含圖形或者特定數(shù)據(jù)格式的其他內(nèi)容。使用本發(fā)明的結(jié)構(gòu)消除了這一類型上的限制。基本上,任何一部件是作為“黑盒子”出現(xiàn)在任何其他部件的。一個(gè)包含部件不需要具有關(guān)于包含在它之中的其他部件的內(nèi)部結(jié)構(gòu)或者語義的任何信息。包含部件對(duì)于包含在其中的其他部件僅僅起到一個(gè)外套的作用。這種類型的結(jié)構(gòu)大大地方便了復(fù)合文檔的編譯和編輯。
為了進(jìn)一步的解釋,一個(gè)文檔可以由一個(gè)位于桌面本身上的圖標(biāo)表示。參見圖7A,所示出的桌面包含一個(gè)含有文本文檔的窗口79。而且位于桌面上的是一個(gè)用于圖形文檔的圖標(biāo)80。每一窗口和圖標(biāo)表示各自的部件。在文本文檔位于窗口內(nèi)的情形,部件以幀的形式表示,其邊界由窗口本身的邊界鄰接。根據(jù)本發(fā)明,由圖標(biāo)所表示的部件可直接由用戶操作并放在文本文檔之內(nèi),而不需要插入對(duì)話框等等。對(duì)于這一操作以下參見圖7A—7E和圖8A與8B進(jìn)行描述。
為了把由圖標(biāo)80所表示的圖形文檔放入窗口79內(nèi)的文本文檔的本體上,用戶首選把鼠標(biāo)指點(diǎn)置于該圖標(biāo)之上(步驟801),并按動(dòng)鼠標(biāo)按鈕選擇該圖標(biāo)(步驟802)。對(duì)此響應(yīng),系統(tǒng)以高亮度顯示該圖標(biāo),以指示它被選擇這一事實(shí)(步驟803)。在圖7A的例子中,圖標(biāo)80的高亮是由圖標(biāo)圖形及其標(biāo)題的反相顯示表示來指明的。
在保持鼠標(biāo)按鈕按下時(shí),用戶移動(dòng)光標(biāo)至圖形部件所需的位置(步驟804)。如圖7B所示,所選的圖標(biāo)跟隨光標(biāo)移動(dòng)。圖標(biāo)跟隨光標(biāo)的移動(dòng)稱為“拖動(dòng)”操作。當(dāng)圖標(biāo)被拖動(dòng)到所需的位置時(shí),該圖標(biāo)的虛輪廓81保留在桌面上,指示其原來的位置。另一方式如步驟805中所示,虛輪廓能夠跟隨光標(biāo)移動(dòng),而完整的圖標(biāo)表示保留在原來的位置。
在拖動(dòng)圖標(biāo)過程中,系統(tǒng)判定光標(biāo)是否進(jìn)入了窗口(步驟806)。在圖標(biāo)80位于窗口79內(nèi)時(shí),該窗口本身變?yōu)楦吡恋?。如果系統(tǒng)檢測(cè)到被拖動(dòng)的圖標(biāo)進(jìn)入了窗口內(nèi)的幀(步驟807),則幀適當(dāng)?shù)刈優(yōu)楦吡?,以便表示它可接收被拖?dòng)的對(duì)象(步驟808)。如果圖標(biāo)繼續(xù)被拖動(dòng)使得它回到幀的外側(cè),則幀上的高亮被取消(步驟809)。反之,如果多個(gè)幀是一個(gè)套在另一個(gè)上,則相繼套裝的幀在圖標(biāo)被拖動(dòng)進(jìn)入它時(shí)變?yōu)榧せ畹膸?。這樣,系統(tǒng)提供了有關(guān)幀將變?yōu)榧せ钜约叭绻鈽?biāo)控制按鈕被釋放圖標(biāo)將被投放位置的反饋。
一旦被拖動(dòng)的圖標(biāo)在所需的位置,用戶就釋放鼠標(biāo)按鈕(步驟810)。在這一點(diǎn),系統(tǒng)要判定對(duì)于該部件的最佳表示,即它應(yīng)作為一個(gè)圖標(biāo)還是作為一個(gè)幀而出現(xiàn)(步驟811)。在圖7A—7E的例子中,由于該部件已經(jīng)放入一個(gè)文檔,故其最佳表示是作為一個(gè)幀。于是如圖7C所示,該圖形部件是作為一個(gè)幀86顯示,其左上角對(duì)應(yīng)于鼠標(biāo)按鈕釋放時(shí)光標(biāo)的位置(步驟812)。又如圖7C所示,幀是由較厚的邊界和可變定標(biāo)表示的,以便指出它是被選擇的部件這樣的事實(shí)。
為了從文檔后面把部件移動(dòng)回到桌面可進(jìn)行相反的操作。而且,可以復(fù)制該部件,使得其內(nèi)容保留在文檔之中,同時(shí)該部件的另一表示放置在桌面上。為了這樣作,用戶在拖動(dòng)幀的同時(shí)按動(dòng)功能鍵,諸如鍵盤上的控制或選擇鍵。在鼠標(biāo)按鈕驅(qū)動(dòng)的同時(shí)按動(dòng)功能鍵就向系統(tǒng)提供了執(zhí)行復(fù)制操作的指示。這時(shí)如圖7D所示,當(dāng)繼續(xù)保持鼠標(biāo)按鈕下壓時(shí),用戶拖動(dòng)幀到桌面。注意,圖形部件的內(nèi)容88保留在文本文檔之中,并且部件的第二個(gè)復(fù)制件出現(xiàn)在幀86之中。一旦該幀移動(dòng)到桌面上所需的位置,則鼠標(biāo)按鈕被釋放,系統(tǒng)再次判定對(duì)于部件的最佳表示。在這情形下,由于部件位于桌面上,其最佳表示是作為一個(gè)圖標(biāo)。于是如圖7E所示,部件的圖標(biāo)表示80顯示在桌面上。
由于本發(fā)明的系統(tǒng)中,部件是直接在桌面和文檔之間操作的,桌面的比喻最好保持。換言之,用戶從桌面拾取所需的部件并將其直接放到文檔中,而無需諸如填充對(duì)話框之類的插入操作。其結(jié)果是,減少了向一個(gè)文檔引進(jìn)新的內(nèi)容所需的時(shí)間量和步驟數(shù)。
有關(guān)系統(tǒng)可實(shí)現(xiàn)在桌面和文檔之間對(duì)象的拖動(dòng)和投放的方式的進(jìn)一步的細(xì)節(jié)在以下文獻(xiàn)中描述申請(qǐng)序號(hào)No.(尚未得到),1993年3月3日由小羅伯特G.約翰遜、馬克L.斯坦恩和大衛(wèi)L.埃文斯提交,標(biāo)題“用于計(jì)算機(jī)控制顯示系統(tǒng)上應(yīng)用程序與文件系統(tǒng)之間的改進(jìn)的數(shù)據(jù)操作的方法和裝置”,該文獻(xiàn)透露的內(nèi)容在此作為參照。
如上所述,每一部件都具有稱為其最佳表示的性質(zhì)。這一性質(zhì)決定了為了獲得傳統(tǒng)上與文件夾和文檔窗口都相關(guān)的行為,包含在給定的部件的之內(nèi)的部件通常是顯示為圖標(biāo)還是顯示為幀。一般而言,所有的部件被分為桌面部件或文檔部件。桌面部件是其目的在于包含或是在其他部件上操作諸如文件夾、打印機(jī)或郵箱等部件。對(duì)于包含在一個(gè)桌面部件中的部件的最好的表示是作為一個(gè)圖標(biāo)。文檔部件是其目的在于完全被打印在紙上或其他硬拷貝上的部件,諸如文本文檔或圖形文檔。對(duì)于包含在文檔部件中的部件的最佳表示作為一個(gè)幀。于是參見圖7A—7C中所描繪的操作,圖形部件當(dāng)其出現(xiàn)在桌面上時(shí)被表示作為圖標(biāo)(圖7A),但是當(dāng)其置于文檔內(nèi)時(shí)變?yōu)橐粋€(gè)幀的表示(圖7C)。類似地,當(dāng)部件從文檔移動(dòng)到桌面時(shí),其表示從一個(gè)幀變?yōu)橐粋€(gè)圖標(biāo)(圖7C—7E)。當(dāng)然,例如通過鍵盤或者菜單命令可向用戶提供改變?nèi)魏尾考谋硎镜倪x擇。
如前所述,文具部件在其僅僅表示作為一個(gè)圖標(biāo)的意義來說不同的。它可以從一個(gè)桌面部件移動(dòng)到另一個(gè)桌面部件。于是,它可以象文件夾中的一個(gè)普通部件那樣被處理。然而,當(dāng)企圖移動(dòng)文具圖標(biāo)進(jìn)入一個(gè)文檔部件時(shí),卻是該文具部件的復(fù)制品被置于文檔部件內(nèi),而該復(fù)制件作為一個(gè)幀出現(xiàn)。
除了作為一個(gè)整體移動(dòng)部件之外,用戶可選擇并移動(dòng)部件的一些或全部內(nèi)容。每一部件有其固有的內(nèi)容類型。例如,文本部件包含文本字符,圖形部件包含圖形元素,等等。用戶可選擇一個(gè)部件即施主部件的一些固有內(nèi)容,并移動(dòng)或復(fù)制它們到不同的部件即目標(biāo)部件中。這種類型操作能夠發(fā)生的可能的方案有三種(1)施主和目標(biāo)部件兩者都包含相同固有類型的數(shù)據(jù),(2)施主和目標(biāo)部件包含不同類型的數(shù)據(jù),但是目標(biāo)部件能夠容納從施主部件接收的數(shù)據(jù)范疇,以及(3)施主和目標(biāo)部件為不同的數(shù)據(jù)類型,并且目標(biāo)部件不適合容納從施主部件接收的材料范疇。參照所示的例子,以下對(duì)于這三種情形的每一種進(jìn)行討論。
在第一個(gè)方案中,施主與目標(biāo)部件是相同類型的部件。例如,它們的固有內(nèi)容可能是文本字符,并且它們是由相同的字處理程序生成的。圖9A表示兩個(gè)文本文檔90與92分別位于一個(gè)桌面上的兩個(gè)窗口中的例子。左邊文檔90中的文本的一部分94,如反相顯示所指明,已被選出。這一被選出的文本要被復(fù)制到右邊窗口中的文檔92中。于是用戶按動(dòng)鼠標(biāo)按鈕,必要時(shí)和功能鍵一起按,并且拖動(dòng)所選的文本94的復(fù)制件95到如圖9B所示的右邊的文檔92。一旦光標(biāo)進(jìn)入第二個(gè)文檔92,這個(gè)文檔就變?yōu)楦吡恋摹S捎谧筮叺奈臋n90現(xiàn)在是非現(xiàn)用的,因而它被放置文檔92的后面,并且其標(biāo)題條不再是高亮的。
一旦復(fù)制的文本在所需要的位置中,用戶釋放鼠標(biāo)按鈕將文本放到該文檔中,如圖9C所示。由于從第一個(gè)文檔復(fù)制到第二個(gè)文檔的文本是與第二個(gè)文檔的固有內(nèi)容是相同類型的,因而該文本被結(jié)合到第二個(gè)文檔的內(nèi)容中。換言之,一旦所選的文本放到了第二個(gè)文檔之中,它就不再具有其自己的單獨(dú)的標(biāo)識(shí)。而是它變?yōu)槟繕?biāo)文檔的固有內(nèi)容的一個(gè)部件。于是可以使用用于目標(biāo)文檔的原來內(nèi)容的相同的編輯程序?qū)ζ溥M(jìn)行編輯。
在上述的第二方案中,施主和目標(biāo)部件的固有內(nèi)容為不同類型,但是目標(biāo)部件能夠處理包含在施主部件中的信息范疇。參見圖10A,從文檔90選出的以全功能文本編輯程序所生成的文本96將被復(fù)制到對(duì)話框98。在這例子中,所選的文本96是具有一定的風(fēng)格的,它具有重體屬性并且是斜體字。然而,該對(duì)話框僅適于處理普通的文本。
按與以上例子類似的方式,所選的文本96的復(fù)制件從該文本文檔拖動(dòng)到該對(duì)話框。在光標(biāo)進(jìn)入對(duì)話框98時(shí),如圖10B所示,它移動(dòng)到顯示的最前面。一旦所選的文本的復(fù)制件位于對(duì)話框的適當(dāng)部分,用戶釋放鼠標(biāo)按鈕將其“投放”就位。在這一點(diǎn),系統(tǒng)判定所投放的文本不是對(duì)話框固有內(nèi)容的相同的類型,即是它的風(fēng)格不是單純的。然而,它屬于與其文本所在兼容的范疇。于是系統(tǒng)通過除去其風(fēng)格性質(zhì)把風(fēng)格化的文本轉(zhuǎn)換為單純文本,并然后,如圖10C所示,將其結(jié)合到該對(duì)話框作為其固有內(nèi)容的部件。還應(yīng)注意,在原來的文檔90中覆蓋了兩行的復(fù)制文本在對(duì)話框98中作為轉(zhuǎn)換過程部件已經(jīng)重新覆蓋到單一的一行上,例如通過除去所選的文本的復(fù)制件中的回車符。
在上述第三方案中,相對(duì)于目標(biāo)文檔的內(nèi)容,施主文檔的固有內(nèi)容是不同類型的并且是不兼容范疇的。參見圖11A,從文本文檔90所選的文本94要被復(fù)制到圖形文檔100中。仍然是用戶從文本文檔90拖動(dòng)所選的文本的復(fù)制件95到圖形文檔100,光標(biāo)一進(jìn)入目標(biāo)文檔該圖形文檔即為高亮的(圖11B)。一旦文本的復(fù)制件95在適當(dāng)?shù)奈恢?,用戶釋放鼠?biāo)按鈕以便把該文本投放到圖形文檔中。這時(shí),所選的材料即文本的范疇是不同目標(biāo)文檔的固有內(nèi)容即圖形元素兼容的。于是系統(tǒng)生成一個(gè)與施主文檔相同類型(文本)的新部件,把所選的材料的復(fù)制件插入到其中,并在目標(biāo)文檔中嵌入該新的部件。以這種方法,新部件在目標(biāo)文檔中保留其自身的標(biāo)識(shí)。它具有自身的固有內(nèi)容,即文本字符,以及與其相關(guān)的文本編輯程序。由于新的材料是一個(gè)獨(dú)立的部件,如圖11C所示它駐留在作為幀102的圖形文檔之內(nèi)。如圍繞該幀的邊界所示幀102保持作為被選擇的對(duì)象。
在所選的文本的復(fù)制件從文本文檔移動(dòng)到圖形文檔時(shí),如圖11A與11B所示,桌面的菜單條104保留了與文本文檔相關(guān)的命令??墒且坏?fù)制的文本投放到圖形文檔之中,如圖11C所示,菜單條104上的可用命令就從適合于文本編輯程序切的命令轉(zhuǎn)換到適合圖形編輯程序的命令。此外,與圖形編輯程序相關(guān)的工具條106出現(xiàn)在桌面上,因?yàn)楝F(xiàn)在圖形文檔是被選的部件所在的現(xiàn)用文檔。然而如果用戶把光標(biāo)置于幀102之內(nèi)并選擇了一個(gè)字符或文字,則工具條106被除去并且菜單條104中的命令回到適于編輯文本的命令。
總之,當(dāng)內(nèi)容從一個(gè)文檔移動(dòng)到另一文檔時(shí),相同判定該內(nèi)容是否可結(jié)合到目標(biāo)文檔作為其固有內(nèi)容的部件,或者必須嵌入到目標(biāo)文檔作為自治的部件。系統(tǒng)進(jìn)行這一過程的操作示于圖12的流程圖之中。在用戶已經(jīng)選擇了對(duì)象并拖動(dòng)其到了它的意向目標(biāo)之后,系統(tǒng)判定所選的對(duì)象來源的部件的類型(步驟1201)。例如,所選對(duì)象可能是純文本、風(fēng)格化文本、圖形元素等等。與每一部件一同存儲(chǔ)的性質(zhì)之一標(biāo)識(shí)了部件是什么類型的,并且每一從該部件移動(dòng)或復(fù)制的對(duì)象也被標(biāo)識(shí)為這一類型。標(biāo)識(shí)了部件的類型之后,判定這一類型是否與目標(biāo)文檔的類型相同(步驟1202)。如果相同,將所選的內(nèi)容結(jié)合或插入到目標(biāo)文檔之中,變?yōu)槠涔逃袃?nèi)容的部件(步驟1203)。如果所選的信息與目標(biāo)文檔的類型不同,系統(tǒng)判定它們是否屬于相同的范疇(步驟1204)。例如,如果所選的信息是風(fēng)格化的文本并且目標(biāo)是純文本,它們屬于相同的范疇,雖然它們是不同的類型。如果所選的信息屬于與目標(biāo)文檔相同的范疇,系統(tǒng)轉(zhuǎn)換所選的信息為與目標(biāo)文檔相同類型(步驟1205)。例如,由一個(gè)字處理程序產(chǎn)生的文本可被轉(zhuǎn)換為由不同的字處理程序所用的格式,或圖形文檔可由一種文件格式被轉(zhuǎn)換為另一種。轉(zhuǎn)換一旦完成,所選的信息就被結(jié)合到目標(biāo)文檔的內(nèi)容之中(步驟1203)。如果所選的信息與目標(biāo)文檔不是相同范疇的,以所選的信息生成一個(gè)新的部件作為其內(nèi)容(步驟1206),并且這個(gè)新的部件被嵌入到作為幀的目標(biāo)部件之中(步驟1207)。
由于其自治的性質(zhì),部件大大方便了系統(tǒng)各個(gè)用戶之間的信息交換。一個(gè)文檔,即一個(gè)根部件,可包含幾個(gè)其他部件。用戶可以檢索整個(gè)文檔以便查看它并按照需要編輯各個(gè)部件。另一方面,在保護(hù)作為整體訪問文檔的同時(shí),各個(gè)部件可以單獨(dú)放到由許多用戶共享的桌面上。
繼續(xù)沿著這些路線,每一部件可以有限的訪問權(quán)而得到保護(hù)。例如,包含幾個(gè)不同部件的一個(gè)文檔可以有意地分配到一定數(shù)目的不同范疇的人員,某些部件可能包含不應(yīng)向某些范疇的人員透露的機(jī)密信息。在本發(fā)明的情形中,這些個(gè)別的部件可通過有限訪問權(quán)而加以保護(hù),于是它們的內(nèi)容只能由擁有適當(dāng)口令或其他訪問形式的人員才能查看。換言之,訪問的可限制性是部件的另一特征性質(zhì)。
參見圖13,示出由數(shù)個(gè)部件組成的一個(gè)文檔108,每一部件包含在由虛線所表示的幀內(nèi)。部件之一110是訪問保護(hù)的。例如,這個(gè)部件可能包含機(jī)密擴(kuò)展頁數(shù)據(jù)。由于對(duì)此部件的訪問是受限的,故其內(nèi)容不在幀內(nèi)顯示。而且,該幀是暗的,并可能包含一適當(dāng)?shù)姆?hào),例如鑰匙112,表明要對(duì)其進(jìn)行訪問需要口令等這一事實(shí)。
文檔108可由系統(tǒng)的用戶打開,以便查看其總的編排和非機(jī)密部件的信息。然而,包含在機(jī)密部件110內(nèi)的數(shù)據(jù)只能由具有用于訪問該部件的適當(dāng)?shù)目诹畹娜丝吹?。?dāng)這樣的人員選擇了該部件時(shí),其暗的覆蓋被去掉并顯示出其內(nèi)容。
雖然其內(nèi)容不能被訪問,但是不具有口令的系統(tǒng)用戶仍然可以使用一個(gè)限制部件的其他性質(zhì)。例如,該部件在文檔中的位置可被改變,并且通過選擇它和移動(dòng)在其幀的邊界上的尺寸改變柄可改變其尺寸。類似地,限制訪問部件可被復(fù)制到其他部位。然而,不論它位于何處,其訪問保護(hù)與部件的復(fù)制件保持在一起。
帶有限制訪問權(quán)的部件可具有其他部件嵌入在其中。于是如果用戶不具有能夠訪問部件內(nèi)容的適當(dāng)口令,則包含在其中的其他部件也將被限制查看。一旦接受了口令,該口令會(huì)自動(dòng)地傳送給所有嵌入的部件,使得它們被解開而無需用戶進(jìn)一步的麻煩即可查看??墒牵?dāng)然,嵌入的部件可能具有與它們相關(guān)的不同口令,于是即使查看者可以獲得對(duì)于一個(gè)限制部件的訪問,對(duì)其中其他部件的訪問可能仍然受限。
于是,本發(fā)明能夠在文檔內(nèi)的水平限制對(duì)文檔內(nèi)容的訪問。訪問權(quán)是部件特有的,故不論部件中的數(shù)據(jù)在何處都是有效的。這一方法在沒有在文檔范圍加訪問限制時(shí)允許文檔的非特許部件能夠被用戶訪問。在具有多個(gè)作者的大文檔中,以逐一部件為基礎(chǔ)的限制訪問的可能性在文檔的查看和作者合作中提供了很大的靈活性。
為了方便部件的操作和復(fù)合文檔的編排,可提供一種稱為“部件箱”的特殊類型的部件。部件箱的一個(gè)例子示于圖14中。參見該圖,在窗口120中打開了一個(gè)文檔,用于該文檔的部件箱122出現(xiàn)在稱為附窗口的另一區(qū)域。該附窗口與窗口120相關(guān),使得如果該文檔窗口被帶到屏幕的前面,則該附窗口跟隨它而出現(xiàn)。
部件箱122基本上是用戶所定義的一個(gè)板,其功能是作為其他部件的資源。它只包含其他部件,而且不具有固有內(nèi)容。部件箱內(nèi)部的部件具有“凍結(jié)”的性質(zhì)。具體而言,在光標(biāo)位于幀內(nèi)而用戶通常按動(dòng)鼠標(biāo)按鈕時(shí),在光標(biāo)的位置處最小的元素被選擇。參見圖14,在通常情形下,如果光標(biāo)置于擴(kuò)展頁幀124的一個(gè)格子上,并且按動(dòng)了光標(biāo)控制按鈕,則該格子的內(nèi)容被選擇。用戶可能意向要選擇不同的對(duì)象,例如包含該實(shí)際被選擇的格子的整個(gè)擴(kuò)展頁。為此,用戶必須移動(dòng)光標(biāo)到幀中另一區(qū)域,但是要在嵌入該所需部件之內(nèi)的其他部件以外。但是,通過在部件箱中凍結(jié)部件而消除了這個(gè)要求。這種情形下,用戶可在光標(biāo)在部件的任何位置上點(diǎn)擊鼠標(biāo)從而選擇整個(gè)部件。于是位于部件箱內(nèi)的部件,即使它們表示為包含其他嵌入部件的幀,也可被整體地對(duì)待。
部件箱內(nèi)的部件也可被鎖定,使得它們的內(nèi)容不會(huì)被修改。在附窗口的標(biāo)頭通過掛鎖符號(hào)126可表示部件箱的鎖定性質(zhì)。如果用戶想要拖動(dòng)一個(gè)部件到鎖定的部件箱之外,則自動(dòng)地進(jìn)行該部件的復(fù)制,并且原來的部件保留在部件箱內(nèi),從而保證部件箱內(nèi)容的完整性。為了使得用戶能夠按需要整理其部件箱,可以打開部件箱上的鎖,例如通過點(diǎn)擊掛鎖符號(hào)126,以及被修改的部件。
在本發(fā)明這方面的進(jìn)一步的實(shí)施例中,每一文檔可具有一相關(guān)的部件箱。“文檔部件箱”可使得一組標(biāo)準(zhǔn)的部件與一個(gè)文檔結(jié)合在一起,使得該文檔的用戶易于使用這些部件。用戶通過啟動(dòng)一個(gè)命令可引起文檔部件箱顯示在附窗口中或一個(gè)抽屜中。帶有相關(guān)部件箱的文檔可具有置于其上的限制性性質(zhì),使得可放在該文檔中的部件只是部件箱中的部件。拒絕企圖將其它部件放入被限制的文檔。這一性質(zhì)保證了文檔的用戶只與一定的部件組進(jìn)行工作,從而減少了與文檔相關(guān)的訓(xùn)練,支持和維護(hù)。例如,用于數(shù)據(jù)項(xiàng)形式的部件箱將只有該形式下輸入數(shù)據(jù)所必須的部件。結(jié)果,未經(jīng)訓(xùn)練的用戶將不會(huì)面臨在其它情形下可能被不適當(dāng)使用的出乎意料的部件。部件上的限制還允許有一種對(duì)文檔內(nèi)容進(jìn)行控制的結(jié)構(gòu)。
除了上述用戶受益之外,本發(fā)明的結(jié)構(gòu)還提供了對(duì)于軟件開發(fā)者的好處。例如,擴(kuò)展頁程序原來是設(shè)計(jì)處理數(shù)的,而在這領(lǐng)域有經(jīng)驗(yàn)的開發(fā)者能夠最有效地在這一功能上花費(fèi)時(shí)間。然而,一個(gè)文本編輯程序是一個(gè)擴(kuò)展頁應(yīng)用程序必須的部件,由于用戶必須能夠編輯公式和數(shù)值中的文本。雖然書寫文本編輯程序?qū)τ谟脗鹘y(tǒng)的程序是必須的,但是對(duì)于擴(kuò)展頁程序開發(fā)者則是一件煩惱的事情。然而,在用戶選擇的文本編輯程序可作為擴(kuò)展頁中獨(dú)立的部件使用的結(jié)構(gòu)中,擴(kuò)展頁開發(fā)者書寫文本編輯程序就不再是必須的了。開發(fā)者的時(shí)間可專用于擴(kuò)展頁程序的實(shí)質(zhì)部分,使得能夠?qū)崿F(xiàn)其它另外的特性,否則這些特性由于時(shí)間原來用于開發(fā)擴(kuò)展頁數(shù)處理功能附帶其它特點(diǎn)而可能得不到。
此外,當(dāng)軟件開發(fā)者決定后繼增加新的特點(diǎn)或糾正現(xiàn)存的缺陷時(shí),進(jìn)行這樣的工作是比較容易的。特別地,開發(fā)者只需專注于程序的擴(kuò)展頁方面,而無需關(guān)注諸如文本編輯程序之類的附帶成份。
可以看到,本發(fā)明是不限于這里為了便于對(duì)其基本原理的理解所述的特定的實(shí)施例的。例如,在說明性例子中使用了文本和圖形以代表文檔的成份。然而部件的內(nèi)容是不限于這兩種特定的范疇的。而且,部件的內(nèi)容可以是任何類型的媒體,包括圖象、聲音、動(dòng)畫等等。因而本發(fā)明的范圍系由此處所附權(quán)利要求所定義,而非上述的說明,凡符合權(quán)利要求意義的等同物皆認(rèn)為在其涵蓋之中。
權(quán)利要求
1.一種在具有文檔生成和編輯時(shí)用于顯示其內(nèi)容的顯示器和在編輯過程中用于控制文檔元素的操作的指點(diǎn)器件的計(jì)算機(jī)系統(tǒng)中生成和操作復(fù)合文檔的人機(jī)界面系統(tǒng),包括作為部件存儲(chǔ)文檔所有組成對(duì)象的器件,其中每一部件包含固有內(nèi)容和用于這些內(nèi)容的相關(guān)操作程序;用于向用戶顯示部件的器件;響應(yīng)所述裝置的啟動(dòng)的器件,用于使得任何被顯示的部件可被用戶選擇并可在顯示器內(nèi)移動(dòng),以及可被置于另一部件之內(nèi),使之成為所述另一部件內(nèi)容的一部分并且其內(nèi)容保持可被其相關(guān)操作程序操作;以及用于在部件的選擇時(shí)在計(jì)算機(jī)內(nèi)自動(dòng)啟動(dòng)用于部件的操作程序的器件,使得其功能可被用戶使用。
2.如權(quán)利要求1所述的系統(tǒng),其中所述顯示器顯示一部件或是作為一個(gè)圖標(biāo)或是作為一個(gè)幀,在其中部件的固有內(nèi)容可被看到并可由相關(guān)的操作程序操作。
3.如權(quán)利要求2所述的系統(tǒng),其中所述界面包括一個(gè)桌面比喻,該比喻在所述顯示器上提供窗口,在其中可顯示文檔的內(nèi)容并可供編輯和查看之用而滾屏,進(jìn)而還包括響應(yīng)所述裝置用于從一個(gè)部件的圖標(biāo)和幀的表示打開該部件成為用于顯示和操作其內(nèi)容的窗口。
4.如權(quán)利要求2所述的系統(tǒng),其中所述幀定義了第一部件和包含在所述第一部件之中嵌入的第二部件之間的幾何關(guān)系,所述的關(guān)系包括存儲(chǔ)在該計(jì)算機(jī)之中定義了所述關(guān)系的以下屬性;(i)描述了第一部件之中可用于第二部件內(nèi)容的區(qū)域的幀的形狀;以及(ii)描述了實(shí)際包含第二部件內(nèi)容的幀的形狀之內(nèi)的一個(gè)區(qū)域的所使用的形狀。
5.如權(quán)利要求4所述的系統(tǒng),其中幀還包括以下被存儲(chǔ)的屬性(iii)描述了在其中可顯示第二部件內(nèi)容的幀形狀中一區(qū)域的剪切形狀;以及(iv)描述了在其中與上述裝置啟動(dòng)相關(guān)的事件被傳送到用于所述第二部件的操作程序的剪切形狀中一個(gè)區(qū)域的可用形狀。
6.如權(quán)利要求1所述的系統(tǒng),還包含使得用戶可以不同的適用于一個(gè)部件固有內(nèi)容的操作程序替代用于該部件的操作程序的器件。
7.如權(quán)利要求1所述的系統(tǒng),還包括定義一個(gè)部件作為包含其它部件的部件的箱的器件,其中使得被包含的部件可用被所述裝置作為一個(gè)整體選擇和操作,但是禁止所述裝置對(duì)所包含的部件內(nèi)個(gè)別元素的訪問。
8.如權(quán)利要求7所述的系統(tǒng),其中部件箱是可鎖定的。使得其內(nèi)容不能被用戶從部件箱中除去或修改。
9.如權(quán)利要求7所述的系統(tǒng),還包括將部件箱與存儲(chǔ)在計(jì)算機(jī)中的文檔相聯(lián)系并用于限定所述文檔內(nèi)容為包含在所述部件箱中的部件。
10.在用于生成和/或操作復(fù)合文檔的計(jì)算機(jī)系統(tǒng)中用于定義一個(gè)第一成份和一個(gè)第二成份之間的關(guān)系的一個(gè)界面結(jié)構(gòu),其中所述文檔的第一成份嵌入在文檔的第二成份中,并且每一成份包含相關(guān)的內(nèi)容和用于這些內(nèi)容的操作程序,所述界面結(jié)構(gòu)包括存儲(chǔ)第一形狀的器件,所述第一形狀由所述第一成份確定,并在所述第一成份內(nèi)定義了一個(gè)可用于放置所述第二成份內(nèi)容的區(qū)域;以及存儲(chǔ)第二形狀的器件,所述第二形狀由所述第二成份確定,并定義了所述第二部件的內(nèi)容實(shí)際位于所述區(qū)域的那個(gè)部分。
11.如權(quán)利要求10所述的界面結(jié)構(gòu),還包括存儲(chǔ)第三形狀的器件,所述第三形狀由所述第一成份確定,并定義了所述第一部件的內(nèi)容可被顯示所述區(qū)域的一個(gè)部分;以及存儲(chǔ)第四形狀的器件,所述第四形狀由所述第二成份確定,并定義了所述第三形狀的部份,在該部份中用戶向所述系統(tǒng)的輸入傳送給用于所述第二成份的操作程序。
12.用于在一個(gè)計(jì)算機(jī)系統(tǒng)中產(chǎn)生復(fù)合文檔的方法,該類型的計(jì)算機(jī)系統(tǒng)中文檔的成份作為具有內(nèi)容的對(duì)象存儲(chǔ),并且每一對(duì)象具有用于其內(nèi)容的相關(guān)的操作程序,其中復(fù)合文檔包括嵌入到第二對(duì)象中的第一對(duì)象,所述方法包括以下步驟通過用于第二對(duì)象的操作程序,確定分配給第一對(duì)象內(nèi)容的所述第二對(duì)象內(nèi)容中的一個(gè)區(qū)域;建立一個(gè)對(duì)應(yīng)于所述區(qū)域的幀形狀并向用于第一對(duì)象的操作程序通知所述幀形狀;通過用于第一對(duì)象的操作程序,確定所述第一對(duì)象的內(nèi)容在所述幀形狀內(nèi)的配置;通過用于第二對(duì)象的操作程序,確定第一對(duì)象的內(nèi)容在所述區(qū)域中可被顯示的部分;向用于第一部件的操作程序通知所述區(qū)域的所述部分;以及在所述區(qū)域的所述部分中顯示所述第一對(duì)象的至少一些內(nèi)容。
13.如權(quán)利要求12所述的方法,還包括步驟通過用于第一對(duì)象的操作程序器件確定對(duì)應(yīng)于由所述第一部件內(nèi)容占據(jù)的所述區(qū)域的一個(gè)子集的被使用的形狀,并向用于第二部件的操作程序通知所述被使用的形狀。
14.如權(quán)利要求13所述的方法,還包括步驟在所述被使用的形狀之外的所述區(qū)域中顯示所述第二部件的的至少一些內(nèi)容。
15.如權(quán)利要求12所述的方法,還包括步驟通過用于第一部件的操作程序,確定對(duì)應(yīng)于所述區(qū)域的所述部分的一個(gè)子集的可用形狀;檢測(cè)用戶關(guān)于文檔內(nèi)容的操作的輸入事件;判定在所述可用形狀內(nèi)用戶輸入事件是否發(fā)生;以及當(dāng)判定在所述可用形狀內(nèi)已發(fā)生用戶輸入事件時(shí),向用于所述第一對(duì)象的操作程序提供被檢測(cè)的用戶輸入事件。
全文摘要
本發(fā)明為用于計(jì)算機(jī)系統(tǒng)的文檔為中心的用戶界面結(jié)構(gòu),使用部件作為所有文檔的基本構(gòu)成模塊。所有數(shù)據(jù)在系統(tǒng)中作為由內(nèi)容和相關(guān)編輯程序組成的部件存儲(chǔ)。不論該部件位于何處,文檔中、桌面上或是文件夾中,用戶都可使用編輯程序的內(nèi)容和功能性質(zhì)。部件對(duì)于其它部件起到容器的作用,從而便于編譯和編輯多媒體和復(fù)合文檔。
文檔編號(hào)G06F17/22GK1125492SQ94192430
公開日1996年6月26日 申請(qǐng)日期1994年5月4日 優(yōu)先權(quán)日1993年5月10日
發(fā)明者戴維·坎菲爾德·史密斯, 馬克·路德維格·斯特恩, 詹尼弗·查菲, 杰弗里·克里格, 邁克爾·湯普森, 喬治·科里克, 丹尼爾·喬丹, 庫爾特·皮索爾 申請(qǐng)人:蘋果電腦有限公司