用于提供撤消/重做機(jī)制的方法和設(shè)備的制造方法
【專利說明】用于提供撤消/重做機(jī)制的方法和設(shè)備
[0001]本申請是2008年I月8日提交的申請?zhí)枮?00880001909.1、名稱為“用于提供撤消/重做機(jī)制的方法和設(shè)備”的分案申請。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及用于提供撤消/重做機(jī)制的方法、軟件和設(shè)備。
【背景技術(shù)】
[0003]在許多計算機(jī)應(yīng)用程序的用戶接口中提供了撤消/重做機(jī)制。它們早前通過重復(fù)地按下撤消按鈕而引起所述應(yīng)用程序以相反的順序逐一地撤消命令來提供撤消執(zhí)行過的任務(wù)的能力。至此,計算機(jī)應(yīng)用程序存儲了用戶動作的歷史。大多數(shù)包括了撤消命令的用戶接口還包括重做命令,其允許用戶重做最后的剛被撤消的命令。以這種方式,用戶可以重復(fù)地按下撤消按鈕直到他后退到一個適合的點,并且之后如果他后退得太遠(yuǎn),或者如果他決定重做剛撤消的任務(wù),則可以使用重做按鈕。除了將鼠標(biāo)點擊用于在歷史中導(dǎo)航,翻閱歷史列表并從中選擇一項也是已知的(網(wǎng)頁瀏覽器歷史)。撤消/重做對于有限數(shù)量的撤消/重做動作可以良好地工作。如果動作的數(shù)目過大,例如在諸如發(fā)生在測繪、探測、測量或者繪圖中的連續(xù)變化的情況下,通過在離散動作中導(dǎo)航進(jìn)行撤消變得不可行。
[0004]本發(fā)明的目的在于提供一種改善了的方法和設(shè)備,其具體而言適于連續(xù)變化的應(yīng)用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的這個和其它目的是通過根據(jù)本發(fā)明的方法、計算機(jī)程序以及設(shè)備而實現(xiàn)的。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種用于提供連續(xù)撤消/重做機(jī)制的方法。其包括的步驟為:基于連續(xù)的可逆用戶動作來記錄歷史;通過諸如滑塊或旋鈕的連續(xù)用戶輸入器件在所述歷史中導(dǎo)航;以及基于所述連續(xù)用戶輸入器件的位置來識別和顯示所述歷史的中間狀態(tài)。可以將連續(xù)性逼近到任何預(yù)期的程度,因此根據(jù)本發(fā)明,用戶可以以任何所預(yù)期的精度來撤消/重做動作。內(nèi)部計算機(jī)表示的有限準(zhǔn)確度可能限制連續(xù)性的準(zhǔn)確度。但是,在本描述中使用的“連續(xù)”撤消/重做機(jī)制一詞意味著由用戶所感知的所述撤消/重做機(jī)制是連續(xù)的。
[0007]本發(fā)明特別用于沒有天然粒度的所有應(yīng)用。所有當(dāng)前已知的撤消/重做技術(shù)通過僅得到活動的快照而非連續(xù)地記錄活動,而丟掉了大量的歷史,就這一方面而言其是不完整的。一個在其中可以有利地使用本發(fā)明的應(yīng)用的例子為繪圖/素描。當(dāng)繪圖或素描時,用戶可能希望撤消一個錯誤例如一個筆畫的末端,因此有效地連續(xù)縮短筆畫直到用戶滿意為止。另一個例子為探測。探測用于(例如)通過在周圍移動導(dǎo)管而找到心臟心房壁中具有異常定時行為的位置,來對心臟中的心律不齊的來源進(jìn)行定位。探測者可能決定其處在錯誤在軌跡上,并且希望回溯至的某一時間點,或者嘗試備選探測路徑。
[0008]US 6,459,442 BI在圖12中公開了使用時間滑塊工具來指定事件的歷史中的時間點。但是,在此專利中所描述的撤消/重做機(jī)制是離散的。它僅允許刪除完整的筆畫以及筆畫集合。
[0009]而且,W02006/051962在圖32中公開了用于在歷史狀態(tài)中滾動瀏覽的滑塊。然而,再者,所公開的撤銷/重做機(jī)制是離散的,這是因為它僅僅允許刪除離散的操作,諸如在字處理器中的字符。
[0010]在本發(fā)明中優(yōu)選地,所記錄的歷史包括與上升/下降時間函數(shù)的值連同地記錄的多個事件。將諸如來自滑塊或旋鈕的模擬輸入的連續(xù)用戶輸入器件的位置轉(zhuǎn)換成上升/下降時間函數(shù)的值?;谒鲋底R別和顯示中間狀態(tài)。將足夠平滑的單調(diào)上升/下降時間函數(shù)的值與歷史事件連同地記錄是一種非常有效的、根據(jù)本發(fā)明實現(xiàn)連續(xù)撤消/重做機(jī)制的方式,在所述歷史事件中保存了事件的順序。
[0011]上升/下降時間函數(shù)可以是時間本身,并且所記錄的函數(shù)的值可以是時間值。這種實施例是易于實現(xiàn)的。時間值可以是事件的時間戳或者事件之間的時間步長。
[0012]基本上,存在兩種針對撤消/重做機(jī)制來記錄歷史的方式。第一種方式為記錄可逆的用戶動作,以及可能地記錄外部事件。這些為可能添增了具體地僅用于允許撤消所需的信息的用戶動作。一個例子為游戲的情況:為了從賽車游戲中的碰撞恢復(fù),不僅需要記錄用戶的動作,還需要記錄諸如出現(xiàn)在游戲中的對象的位置及速度的游戲的狀態(tài)。外部值也可以為測量值。這里的例子為上述用于定位心臟中的心律不齊的來源的探測過程。
[0013]第二種方式為記錄所有中間狀態(tài)。該第二種方式在探測應(yīng)用的情況中是有用的,但在繪圖/素描中用處不大。在這一應(yīng)用中,每一個中間狀態(tài)包括大量的數(shù)據(jù),這將可能導(dǎo)致響應(yīng)遲緩。
[0014]所記錄的歷史可以是連續(xù)的。就本發(fā)明而言,連續(xù)的歷史意味著所記錄的時間戳事件對應(yīng)于最小的可感知到的用戶動作。在移動對象的情況下,這可能取決于顯示器的分辨率,或者諸如鼠標(biāo)的用戶輸入器件的精度。
[0015]根據(jù)另一個實施例,識別以及顯示與上升/下降時間函數(shù)的所確定的值最接近的所記錄的事件和相應(yīng)的中間狀態(tài)。在所記錄的歷史為連續(xù)的情況下,以這種方式提供被用戶感知為連續(xù)的撤消/重做機(jī)制。
[0016]根據(jù)備選實施例,確定與上升/下降時間函數(shù)的值最接近的更早和更晚的事件。使用插值算法來識別對應(yīng)于所述值的中間狀態(tài)。根據(jù)這個備選實施例,所記錄的歷史不一定是連續(xù)的,因此允許記錄更少的事件。以這種方式,需要更少的存儲器,并且可能獲得更快的響應(yīng)。這個實施例在諸如繪制直線或沿直線移動對象的“可預(yù)測”的用戶動作的情況下是特別的有用的。當(dāng)然,所記錄的事件的密度不應(yīng)選擇為過低,這是因為其將會影響所需精度。
[0017]在另一個優(yōu)選實施例中,當(dāng)在歷史中導(dǎo)航時,連續(xù)地顯出與連續(xù)用戶輸入器件的位置最接近的狀態(tài)。因此,用戶不需要通過按下按鍵或點擊鼠標(biāo)按鈕或等等來選擇所預(yù)期的歷史狀態(tài)。以這種方式,總是向用戶直接地提供用于準(zhǔn)確導(dǎo)航至所預(yù)期位置的所需信息。
[0018]優(yōu)選地,通過計算機(jī)程序來實現(xiàn)根據(jù)本發(fā)明的方法。
[0019]根據(jù)本發(fā)明的另一個方面,提供一種用于提供撤消/重做機(jī)制的設(shè)備,其包括:記錄裝置,其基于可逆的用戶動作來記錄歷史;連續(xù)用戶輸入器件,其用于在所述歷史中導(dǎo)航;以及識別和顯示裝置,其基于連續(xù)用戶輸入器件的位置來識別和顯示歷史的中間狀態(tài)。
[0020]優(yōu)選地,所述設(shè)備為用于執(zhí)行電生理過程的醫(yī)學(xué)設(shè)備。在電生理過程中,對于允許如根據(jù)本發(fā)明的設(shè)備所提供的連續(xù)撤消/重做機(jī)制的用戶接口存在一種的強(qiáng)烈需求。
[0021]參考以下描述的實施例,本發(fā)明的這些和其它方向?qū)@而易見并且得以闡明。
【附圖說明】
[0022]通過參考以下附圖連同隨附的具體說明,本領(lǐng)域技術(shù)人員將會更好地理解本發(fā)明,其眾多的目的和優(yōu)勢對于本領(lǐng)域技術(shù)人員將會變得更顯而易見,其中:
[0023]圖1示出了用于實現(xiàn)根據(jù)本發(fā)明的方法的存儲器結(jié)構(gòu);
[0024]圖2示出了在根據(jù)本發(fā)明的方法中所使用的滑塊;
[0025]圖3示出了第一應(yīng)用,在其中有利地實現(xiàn)根據(jù)本發(fā)明的方法;
[0026]圖4示出了第二應(yīng)用,在其中有利地實現(xiàn)根據(jù)本發(fā)明的方法。
[0027]在附圖中,相似的參考數(shù)字表示相似元件。
【具體實施方式】
[0028]根據(jù)本發(fā)明,提供了一種用于連續(xù)撤消/重做的方法??梢酝ㄟ^載入到計算機(jī)上的計算機(jī)程序來實現(xiàn)所述方法。
[0029]根據(jù)所述方法,記錄基于可逆的用戶動作的歷史。所述歷史包括多個事件?;旧希嬖趦煞N記錄歷史的方式:
[0030]第一種方式為記錄可逆的用戶動作,以及可能地記錄外部事件。這些為可能添增了具體地僅用于允許撤消所需的信息的用戶動作。一個例子為游戲的情況:為了從賽車游戲中的碰撞恢復(fù),不僅需要記錄用戶的動作,還需要記錄諸如出現(xiàn)在游戲中的對象的位置及速度的游戲狀態(tài)。外部值也可以為測量值。這里的例子是上述用于定位心臟中心律不齊的來源的探測過程。
[0031]第二種方式為完整地記錄所有中間狀態(tài)。
[0032]圖1示意性示出了用于實現(xiàn)記錄歷史的步驟的存儲器結(jié)構(gòu)10。所述存儲器結(jié)構(gòu)10包括用于存儲所述歷史事件的第一部分20。根據(jù)實現(xiàn)方式,所述歷史事件可以為用戶動作或者中間狀態(tài)。在存儲器的第二部分30中,存儲了上升時間函數(shù)的值,其與第一部分20中的歷史事件相關(guān)聯(lián)?;蛘撸梢允褂孟陆禃r間函數(shù)的值。所存儲的值可以是對應(yīng)于歷史事件的函數(shù)的值或者所述事件之間的步長值。由于易于實現(xiàn),上升時間函數(shù)可以簡單地為時間本身。在這種情況下,可以存儲對應(yīng)于事件的時間戳或者事件之間的時間步長。但是,可使用任何其它足夠平滑的單調(diào)上升時間函數(shù),在該時間函數(shù)中保存了用戶事件的順序。這里的一個例子是一種時間函數(shù),其在存在許多用戶事件的時期中相對快速地增加而在存在少量用戶事件的時期中緩慢地增加。當(dāng)在歷史中導(dǎo)航時,這允許用戶快速地通過歷史中的“安靜”時期。
[0033]現(xiàn)在將針對上升時間函數(shù)為時間本身,并將歷史事件與相應(yīng)的時間戳連同記錄的情況進(jìn)一步解釋所述方法。
[0034]根據(jù)第一個例子,所記錄的歷史為連續(xù)的。這意味著所記錄的時間戳事件對應(yīng)于最小的可感知用戶動作。在移動對象的情況下,這可能取決于顯示器的分辨率,或者,諸如鼠標(biāo)的用戶輸入器件的精度。
[0035]向用戶提供如圖2所示的連續(xù)用戶輸入器件40用于在歷史中導(dǎo)航。所示的用戶輸入器件40為滑塊,但也