專利名稱:頁簽控制器的制作方法
技術領域:
本發(fā)明涉及頁簽控制,尤其是涉及在不同的開發(fā)語言和開發(fā)環(huán)境中,CS或BS應用 軟件中多文檔窗口的切換以及一個窗口內(nèi)各個頁簽容器的切換。
背景技術:
在應用軟件中,頁簽控件是一個常用控件,無論是Windows的任務條,Excel工作 表的頁簽,還是最新版的IE窗口 ,頁簽控件都有著很普遍的應用,給用戶的實際操作帶來 了很大的直觀性、便捷性。 但由于頁簽占用的空間比較大,常見的頁簽控件都有一個共同的沒有解決的問 題,當窗口增多后,后續(xù)的頁簽即無法很好的展現(xiàn),也無法方便的切換。常見的處理方式有 三個. —是支持水平拖動,把后續(xù)的頁簽隱藏起來,點擊左側(cè)或右側(cè)的按鈕的時候,頁簽 整體左右移動;在這種方式下如果打開的頁簽比較多,想找到后續(xù)的頁簽就非常困難,尤其 是當需要前后頁簽反復切換的時候,要不斷的前后拖動才能實現(xiàn),操作非常不方便。
二是用彈出菜單的形式展現(xiàn)隱藏的菜單,這種方式比拖動的方式要方便一些,但 是把頁簽和彈出菜單兩個控件結合起來,需要點擊右鍵或下拉按鈕來選擇頁簽,視覺上看 起來也很不直觀,很多用戶不能清楚的知道這種用法。 三是用折行的形式顯示后續(xù)頁簽,這種方式雖然操作很方便,但是窗口多了以后,
屏幕上就會顯示太多的頁簽,占用太多不必要的面積。 通過上述分析發(fā)現(xiàn),目前缺乏一種簡單易用的頁簽控制裝置。
發(fā)明內(nèi)容
為解決上述技術問題,本發(fā)明提供了一種頁簽控制器,包括頁簽定位單元,用于 根據(jù)用戶的操作確定一個或多個頁簽的顯示位置;頁簽控制單元,用于根據(jù)所述用戶的操 作以及所述頁簽定位單元確定的與所述用戶的操作相關的頁簽的顯示位置來確定所述頁 簽的狀態(tài)。 在上述技術方案中,進一步包括,所述頁簽定位單元包括動態(tài)數(shù)組,用于將對應于 所述一個或多個頁簽的指針按照在屏幕上顯示的上下層次順序作為數(shù)組元素存放在其中, 以及當所述一個或多個頁簽中的任一頁簽改變顯示位置時,所述動態(tài)數(shù)組內(nèi)的元素按所述 任一頁簽移動后的層次順序交換位置。
在上述技術方案中,所述頁簽的狀態(tài)包括收縮、展開或位于第一顯示位置。
在上述技術方案中,所述用戶的操作包括選中頁簽或滑過頁簽。 在上述技術方案中,所述頁簽控制單元進一步包括自動布置模塊,用于根據(jù)所述 動態(tài)數(shù)組中的所述數(shù)組元素、顯示區(qū)域的大小以及頁簽的寬度來確定所述顯示區(qū)域內(nèi)布置 的每個頁簽的狀態(tài)和順序。
在上述技術方案中,所述頁簽控制單元還進一步包括頁簽狀態(tài)判斷模塊,用于在
3所述用戶的操作為所述滑過頁簽時,確定所滑過的頁簽的狀態(tài)是否為所述收縮的狀態(tài),并 在判斷結果是所述收縮的狀態(tài)時,將所述判斷結果發(fā)送至頁簽展開模塊;以及所述頁簽展 開模塊,用于在接收到來自所述頁簽狀態(tài)判斷模塊的所述判斷結果時,將所述所滑過的頁
簽展開。 在上述技術方案中,所述頁簽控制單元還進一步包括頁簽順序調(diào)節(jié)模塊,用于在 所述用戶的操作是所述選中頁簽時,并且在所述頁簽定位單元確定所選中的頁簽不是在第 一顯示位置時,將所述選中的頁簽調(diào)節(jié)至所述第一顯示位置。 在上述技術方案中,進一步包括,當所述第一顯示位置是顯示區(qū)域的最左側(cè)時,所 述頁簽狀態(tài)判斷模塊根據(jù)所述所滑過的頁簽的左側(cè)鄰近頁簽的位置是否覆蓋了所述滑過 的頁簽的位置,如果覆蓋則確定所述滑過的頁簽的狀態(tài)為所述收縮。 在上述技術方案中,進一步包括,所述頁簽展開模塊通過將所滑過的頁簽的左側(cè) 的一個或多個頁簽收縮來實現(xiàn)所滑過的頁簽的展開。 在上述技術方案中,進一步包括,頁簽的收縮是通過將其左側(cè)的頁簽的位置加上 寬度然后減去所述頁簽的寬度加頁簽收縮后的寬度。 在上述技術方案中,進一步包括,當所述第一顯示位置是顯示區(qū)域的最左側(cè)時,所 述自動布置模塊從所述顯示區(qū)域的左側(cè)至右側(cè)依次展開所有頁簽,直到確定已經(jīng)展開的頁 簽的總寬度大于所述顯示區(qū)域的寬度減去可允許頁簽收縮后的寬度乘以剩余頁簽的數(shù)量, 則將所述剩余頁簽全部收縮顯示。 通過上述技術方案,很好的解決了頁簽控制和顯示問題,首先,在頁簽的切換過程 中,頁簽控制器總是按照窗口的前后順序動態(tài)的調(diào)整頁簽的順序,最上層的窗口的頁簽在 最左側(cè)顯示,隨著層次的深入,依次向右排開。其次,當頁簽太多,不能在同一行顯示的時 候,后續(xù)的頁簽自動縮進。最后,當鼠標滑過縮進的頁簽的時候,縮進的頁簽會迅速展開。
圖1為根據(jù)本發(fā)明的頁簽控制器的示意框圖; 圖2為根據(jù)本發(fā)明的一個實施例的頁簽控制器的示意框圖; 圖3A至3E為根據(jù)本發(fā)明的一個實施例的效果圖。
具體實施例方式
下面將詳細參考本發(fā)明的優(yōu)選實施例,根據(jù)附圖來描述優(yōu)選實施例的示例。
圖1為根據(jù)本發(fā)明的頁簽控制器的示意框圖,圖2為根據(jù)本發(fā)明的一個實施例的 頁簽控制器的示意框圖。 如圖所示,本發(fā)明提供了一種頁簽控制器IOO,包括頁簽定位單元102,用于根據(jù) 用戶的操作確定一個或多個頁簽的顯示位置;頁簽控制單元104,用于根據(jù)所述用戶的操 作以及所述頁簽定位單元102確定的與所述用戶的操作相關的頁簽的顯示位置來確定所 述頁簽的狀態(tài)。 在上述技術方案中,所述頁簽定位單元102包括動態(tài)數(shù)組,用于將對應于所述一 個或多個頁簽的指針按照在屏幕上顯示的上下層次順序作為數(shù)組元素存放在其中,以及當 所述一個或多個頁簽中的任一頁簽改變顯示位置時,所述動態(tài)數(shù)組內(nèi)的元素按所述任一頁
4簽移動后的層次順序交換位置。
在上述技術方案中,所述頁簽的狀態(tài)包括收縮、展開或位于第一顯示位置。 在上述技術方案中,所述用戶的操作包括選中頁簽或滑過頁簽。 如圖2所示,所述頁簽控制單元104還可以進一步包括自動布置模塊202,用于
根據(jù)所述動態(tài)數(shù)組中的所述數(shù)組元素、顯示區(qū)域的大小以及頁簽的寬度來確定所述顯示區(qū)
域內(nèi)布置的每個頁簽的狀態(tài)和順序。 所述頁簽控制單元104還可以進一步包括頁簽狀態(tài)判斷模塊204,用于在所述用 戶的操作為所述滑過頁簽時,確定所滑過的頁簽的狀態(tài)是否為所述收縮的狀態(tài),并在判斷 結果是所述收縮的狀態(tài)時,將所述判斷結果發(fā)送至頁簽展開模塊206 ;以及所述頁簽展開 模塊206,用于在接收到來自所述頁簽狀態(tài)判斷模塊204的所述判斷結果時,將所述所滑過 的頁簽展開。 所述頁簽控制單元104還可以進一步包括頁簽順序調(diào)節(jié)模塊208,用于在所述用 戶的操作是所述選中頁簽時,并且在所述頁簽定位單元102確定所選中的頁簽不是在第一 顯示位置時,將所述選中的頁簽調(diào)節(jié)至所述第一顯示位置。 在上述技術方案中,進一步包括,當所述第一顯示位置是顯示區(qū)域的最左側(cè)時,所
述頁簽狀態(tài)判斷模塊204根據(jù)所述所滑過的頁簽的左側(cè)鄰近頁簽的位置是否覆蓋了所述
滑過的頁簽的位置,如果覆蓋則確定所述滑過的頁簽的狀態(tài)為所述收縮。 在上述技術方案中,進一步包括,所述頁簽展開模塊206通過將所滑過的頁簽的
左側(cè)的一個或多個頁簽收縮來實現(xiàn)所滑過的頁簽的展開。 在上述技術方案中,進一步包括,頁簽的收縮是通過將其左側(cè)的頁簽的位置加上 寬度然后減去所述頁簽的寬度加頁簽收縮后的寬度。 在上述技術方案中,進一步包括,當所述第一顯示位置是顯示區(qū)域的最左側(cè)時,所
述自動布置模塊202從所述顯示區(qū)域的左側(cè)至右側(cè)依次展開所有頁簽,直到確定已經(jīng)展開
的頁簽的總寬度大于所述顯示區(qū)域的寬度減去可允許顯示的最大寬度乘以剩余頁簽的數(shù)
量,則將所述剩余頁簽全部收縮顯示。 下面結合本發(fā)明的一個實施例進行具體說明。 —、實現(xiàn)效果 根據(jù)該實施例的頁簽控制器用于動態(tài)控制頁簽的位置和先后順序,它由一個獨立 的頁簽和一個統(tǒng)一的控制器組合而成。在頁簽控制器內(nèi)可以動態(tài)創(chuàng)建多個頁簽,下面以本 控件在多文檔窗口的使用為例來說明其控制效果。 1 、當在一個主窗口內(nèi),增加一個子窗口時,頁簽控制器上會自動增加一個頁簽,如 同在IE 8窗口的新頁簽中中新打開一個頁面一樣,所不同的是,頁簽控制器會動態(tài)調(diào)整所 有頁簽的位置,最后打開的一個窗口所對應的頁簽總是顯示在最左側(cè)的。在此,本領域的技 術人員應該理解,如果設計需要,也可以設計為將最后打開的一個窗口所對應的頁簽總是 顯不在最右側(cè)。 2、當點擊一個頁簽的時候,對應的子窗口會顯示到前端,這個頁簽會從后面的位 置中凸顯出來,并以動畫效果的形式浮動到最左側(cè),隨后,原來這個頁簽左側(cè)的頁簽一同右 移,頁簽位置動態(tài)排布后,同樣是最前端的窗口對應的頁簽在最左側(cè),而原來的活動窗口的 對應頁簽被排在這個頁簽的右側(cè),越往右側(cè),表示打開的窗口層次越靠后,越不常用。
3、當頁簽數(shù)目不是很多的時候,所有的頁簽都展開顯示,當頁簽數(shù)量隨著窗口數(shù) 量增多到一行顯示不下的時候,后續(xù)頁簽縮進顯示,當鼠標滑過這些縮進的頁簽的時候,頁 簽會迅速展開。展開的原則是,如果右側(cè)有空余空間向右側(cè)展開,如果沒有則收縮左側(cè)的一 個最近的頁簽,同時展開本頁簽。點擊縮進的頁簽,頁簽同樣會前移到最左側(cè),同時對應窗 口前置,頁簽會重新排布。 4、點擊頁簽右側(cè)的X符號,頁簽連同窗口 一同關閉,后續(xù)頁簽重新排布。
二、實現(xiàn)原理 1、獨立的頁簽控件由標題控件、背景圖片和關閉按鈕控件組成; 2、頁簽控制器由多個頁簽控件和一個底邊框圖片組成,當前控件在最左側(cè)顯示,
層次最高,底邊框圖片在第二層顯示,其他頁簽控件按照從左到右的順序?qū)哟芜f增,這樣就
形成了層級收縮效果; 3、當鼠標在頁簽上滑動的時候,如果滑過的頁簽被收縮,則要自動計算現(xiàn)在頁簽 的布局,看看滑過的頁簽右側(cè)有沒有位置,如果有位置,則頁簽向右移動,頁簽上的文字就 會展開,如果頁簽右側(cè)沒有位置,則需要把已經(jīng)展開的最右側(cè)的一個控件收縮起來,以便當 前控件可以有足夠的位置展開; 4、當鼠標點擊頁簽控件的時候,拋出事件,讓相對應的窗口前置顯示,同時把被點 擊的頁簽前置顯示,把原來前置的頁簽后置,隨后做動畫效果,當前頁簽左移到最左側(cè)的位 置,原來的頁簽連同一些中間的頁簽右移; 5、當點擊頁簽控件的關閉按鈕的時候,拋出關閉事件,如果當前窗口允許關閉,則 關閉窗口 ,同時隱藏頁簽,被隱藏的頁簽會在下次打開新窗口的時候重新被命名重新啟用。
三、技術方案和算法描述 根據(jù)該實施例的頁簽控制器的主體部分是一個組合控件,它組合了多個獨立的 頁簽控件,并處理多個頁簽之間的順序和控制關系。頁簽控件主要有TabName, C即tion, Picture屬性來展示自己,有0nClick, OnClose事件來通知外部應用,控制器有Tabs集合 來操作這些頁簽,具體操作包括增加、刪除和移動頁簽位置。 頁簽順序結構頁簽按照上下層次存放在一個動態(tài)數(shù)組中,顯示的時候按照從左 到右的順序顯示,當頁簽移動位置的時候,數(shù)組內(nèi)的元素按層次順序交換位置,這樣可以保 證在運算過程中隨時可以知道當前控件的上一個或下一個頁簽的位置和大小。
根據(jù)本實施例的頁簽控制器主要實現(xiàn)以下功能 1、判斷頁簽狀態(tài)是收縮還是展開判斷當前頁簽的序號的前一個頁簽的位置是否 覆蓋了當前頁簽,具體判斷方法為pre. left+pre. width > cur. left+6,其中6為頁簽收縮 后可允許顯示的固定寬度,單位為像素。在該實施例中設置頁簽收縮后的可允許顯示的固 定寬度為6像素,但是本領域的技術人員應該理解,該寬度可以根據(jù)實際的需要進行改變。
2、自動布局計算方法如果頁簽收縮起來顯示,則每個頁簽占用6個像素,自動布 局的計算方法為,從左到右依次展開頁簽控件,如果發(fā)現(xiàn)展開的頁簽的總寬度大于容器寬 度減去6乘以剩余頁簽數(shù)目之后的差,則后續(xù)頁簽全部收縮顯示。 3、收縮頁簽的算法本頁簽的位置等于上一個頁簽的位置加上一個頁簽的寬度后 減去本頁簽的寬度,最后加6個像素。 通過上面結合附圖對本發(fā)明的實施例的描述,可以清楚地理解,根據(jù)本發(fā)明的頁
6簽控制器很好的解決了頁簽控制和顯示問題,首先,在頁簽的切換過程中,頁簽控制器總是 按照窗口的前后順序動態(tài)的調(diào)整頁簽的順序,最上層的窗口的頁簽在最左側(cè)顯示,隨著層 次的深入,依次向右排開。其次,當頁簽太多,不能在同一行顯示的時候,后續(xù)的頁簽自動縮 進。最后,當鼠標滑過縮進的頁簽的時候,縮進的頁簽會迅速展開。這樣可以保障最常用的 頁簽在左側(cè)顯示,并根據(jù)使用過的順序的倒序從左到右的展開顯示,而不太常用的頁簽自 動被擠到右側(cè)以收縮的狀態(tài)顯示。圖3A至3E為根據(jù)本發(fā)明的一個實施例的效果圖。以下 使用圖3A至3E對上述描述展現(xiàn)如下 如圖3A所示,打開的子窗口不多,頁簽依次顯示,最后打開的窗口頁簽顯示在最 如圖3B所示,打開了多個子窗口 ,后續(xù)頁簽顯示不下,就收縮起來。 如圖3C所示,鼠標滑過,頁簽自動展開。 如圖3D所示,頁簽3被點擊后,正在動態(tài)移動到左側(cè)。 如圖3E所示,頁簽3移動到最左側(cè),原來的頁簽重新布局后。 在上述實例中,頁簽控制器的應用過程為 在主窗口上拖放頁簽控制器Stabl。 當執(zhí)行打開新的子窗口的命令時,執(zhí)行Stabl. Tabs, add( "frml","第1個子窗
口")的命令實現(xiàn)新頁簽的加載。 當關閉窗口時,執(zhí)行Stabl. Tabs, remove (tab)的方法來刪除對應的頁簽。 處理Stabl的OnTabClick事件,當頁簽點擊時,根據(jù)頁簽名稱找到對應窗口,把窗
口前置顯示。 處理Stabl的OnTabClose事件,根據(jù)頁簽名稱找到對應窗口 ,執(zhí)行窗口卸載關閉 命令。 當子窗口被切換時,執(zhí)行Stabl. SetCurrentTab (tab)方法,把當前窗口對應的頁 簽提前。 通過上述過程,使用頁簽控制器很好的控制了多文檔窗口的窗口切換。 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技
術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修
改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
一種頁簽控制器,其特征在于,包括頁簽定位單元,用于根據(jù)用戶的操作確定一個或多個頁簽的顯示位置;頁簽控制單元,用于根據(jù)所述用戶的操作以及所述頁簽定位單元確定的與所述用戶的操作相關的頁簽的顯示位置來確定所述頁簽的狀態(tài)。
2. 根據(jù)權利要求1所述的頁簽控制器,其特征在于,所述頁簽定位單元包括動態(tài)數(shù)組, 用于將對應于所述一個或多個頁簽的指針按照在屏幕上顯示的上下層次順序作為數(shù)組元 素存放在其中,以及當所述一個或多個頁簽中的任一頁簽改變顯示位置時,所述動態(tài)數(shù)組 內(nèi)的元素按所述任一頁簽移動后的層次順序交換位置。
3. 根據(jù)權利要求1或2所述的頁簽控制器,其特征在于,所述頁簽的狀態(tài)包括收縮、 展開或位于第一顯示位置。
4. 根據(jù)權利要求1或2所述的頁簽控制器,其特征在于,所述用戶的操作包括選中頁簽 或滑過頁簽。
5. 根據(jù)權利要求3或4所述的頁簽控制器,其特征在于,所述頁簽控制單元包括 自動布置模塊,用于根據(jù)所述動態(tài)數(shù)組中的所述數(shù)組元素、顯示區(qū)域的大小以及頁簽的寬度來確定所述顯示區(qū)域內(nèi)布置的每個頁簽的狀態(tài)和順序。
6. 根據(jù)權利要求5所述的頁簽控制器,其特征在于,所述頁簽控制單元還包括 頁簽狀態(tài)判斷模塊,用于在所述用戶的操作為所述滑過頁簽時,確定所滑過的頁簽的狀態(tài)是否為所述收縮的狀態(tài),并在判斷結果是所述收縮的狀態(tài)時,將所述判斷結果發(fā)送至 頁簽展開模塊;以及所述頁簽展開模塊,用于在接收到來自所述頁簽狀態(tài)判斷模塊的所述判斷結果時,將 所述所滑過的頁簽展開。
7. 根據(jù)權利要求5所述的頁簽控制器,其特征在于,所述頁簽控制單元還包括 頁簽順序調(diào)節(jié)模塊,用于在所述用戶的操作是所述選中頁簽時,并且在所述頁簽定位單元確定所選中的頁簽不是在第一顯示位置時,將所述選中的頁簽調(diào)節(jié)至所述第一顯示位 置。
8. 根據(jù)權利要求6所述的頁簽控制器,其特征在于,當所述第一顯示位置是顯示區(qū)域 的最左側(cè)時,所述頁簽狀態(tài)判斷模塊根據(jù)所述所滑過的頁簽的左側(cè)鄰近頁簽的位置是否覆 蓋了所述滑過的頁簽的位置,如果覆蓋則確定所述滑過的頁簽的狀態(tài)為所述收縮。
9. 根據(jù)權利要求8所述的頁簽控制器,其特征在于,所述頁簽展開模塊通過將所滑過 的頁簽的左側(cè)的一個或多個頁簽收縮來實現(xiàn)所滑過的頁簽的展開。
10. 根據(jù)權利要求9所述的頁簽控制器,其特征在于,頁簽的收縮是通過將其左側(cè)頁簽 的位置加上所述左側(cè)頁簽的寬度后減去所述頁簽的寬度,最后再加頁簽收縮后的寬度。
11. 根據(jù)權利要求6所述的頁簽控制器,其特征在于,當所述第一顯示位置是顯示區(qū)域 的最左側(cè)時,所述自動布置模塊從所述顯示區(qū)域的左側(cè)至右側(cè)依次展開所有頁簽,直到確 定已經(jīng)展開的頁簽的總寬度大于所述顯示區(qū)域的寬度減去頁簽收縮后的寬度乘以剩余頁 簽的數(shù)量,則將所述剩余頁簽全部收縮顯示。
全文摘要
本發(fā)明提供了一種頁簽控制器,包括頁簽定位單元,用于根據(jù)用戶的操作確定一個或多個頁簽的顯示位置;頁簽控制單元,用于根據(jù)所述用戶的操作以及所述頁簽定位單元確定的與所述用戶的操作相關的頁簽的顯示位置來確定所述頁簽的狀態(tài)。所以,通過使用頁簽控制器很好的控制了多個軟件界面的切換。該控制器可以方便的應用在多文檔窗口切換、多個網(wǎng)頁頁面切換、多選項切換等類似場景。
文檔編號G06F3/048GK101719064SQ20091024307
公開日2010年6月2日 申請日期2009年12月25日 優(yōu)先權日2009年12月25日
發(fā)明者孫亮朝 申請人:用友軟件股份有限公司