2010-06-30 34 views
9

我正在使用Notebook小部件來拉開標籤式文件視圖,並且添加了代碼以允許從現有筆記本中分離頁面,該筆記本使用單獨的Notebook記錄生成新窗口,只包含那個頁面。不過,我希望能夠在多個筆記本之間移動頁面。在GTK中將頁面重新附加到筆記本中#

Notebook.WindowCreationHook委託給我的筆記本頁面來自於頁面小部件和它放在的x和y座標,但我不知道如何告訴它將被放置在哪個Notebook上(如果有的話)。是否有一個內置的機制來實現這個重新連接,還是必須通過座標?如果我必須使用座標,那麼採取這些座標並取回Notebook部件的最佳方法是什麼?如果需要的話,我可以存儲筆記本的列表,但即使這樣,代碼也可以找出哪一個會比較困難(考慮z順序和所有有趣的東西)。

+0

筆記本電腦標籤作爲[2012年清理](http://meta.stackexchange.com/questions/128315/the-great-stack-overflow-tag-question-cleanup-of-2012)的一部分被刪除。 – 2012-04-29 19:41:57

回答

2

我決定繼續我自己的建議(你投票給-1,我刪除了,因爲它沒有真正回答問題),所以我在這裏再次冒着我的名聲。隨着代碼:

http://uplink.kicks-ass.net/~radu/GTK_Sharp_Notebook/

在上述地址,你會發現同一事物的兩個檔案(因爲我不知道你會喜歡哪一個)。在檔案中有我今天寫的代碼,這是這樣做的:

主窗口包含一個帶有三個選項卡的Notebook,每個選項卡都有一個隨機UI元素(按鈕,日曆和複選框)。您可以將標籤拖到主窗口之外。當您將它們放在主窗口外時,會創建一個新窗口,其中包含一個筆記本。剛刪除的標籤將出現在新窗口中。你自己到目前爲止。

現在,如果將另一個選項卡從主窗口拖動到新窗口,該選項卡將添加到新窗口的筆記本中,而不是創建新窗口。另外,如果將所有選項卡從新窗口拖回到主窗口,則新窗口將被銷燬(最後一個選項卡被拖走後)。

這個東西的關鍵?所有筆記本電腦的GroupId = 0。他們自己處理拖拽。

如果您想在新窗口中隱藏標籤(重新連接之前),您可能需要查看插接小部件而不是筆記本。

注意:我在Linux下使用MonoDevelop來創建鏈接的應用程序。

+0

啊哈!我知道它必須是這方面的一些東西。非常非常感謝你。 – 2010-07-07 09:21:43

相關問題