我正在爲我的gamedev項目製作一個非常小的遊戲內部GUI庫,但我無法找到處理焦點的乾淨方式。圖書館圖書館:如何正確處理重點?
我的庫支持嵌套列表框和小部件層次結構,但我似乎無法找到一種方法來防止在處理小部件焦點時出現奇怪的行爲。例如形式:
|------------|
| Form [X] |
|------------|
| |
| [Button01] |
| |
| [List1][v] |
| |
| [Button02] |
| |
|------------|
我的設計採用了Context
對象存儲Widget
對象的列表。 A Widget
可以有任意數量的孩子。我有設施遞歸迭代Widget
的所有孩子/父母。
我關注的邏輯是目前:
如果上下文忙(拖動,縮放,編輯......),不改變焦點
如果按下鼠標的上下文之外或上下文是重點不突出,無焦點的一切
找到最上面的壓制孩子,如果任何
找到「最深」層次結構中的壓制孩子
無焦點的一切,但小部件一樣深,像最深的孩子,並注重上下文
然而,這在很多場合失敗,尤其是與嵌套的列表和文本框。我試圖在網上找到一個很好的解決方案,但找不到任何文章/教程。我不確定我是否應該專注於特殊的小部件,或者是否存在可以在任何情況下正常工作的「良好」算法。
GUI庫通常如何處理窗口小部件焦點?
是否有特別的說明,讓小工具(如ListBoxes或ComboBoxes)獨家專注?
這是我的GUI庫的source code和video here。
嗯..這與回答你的問題無關。這只是對您的代碼/存儲庫的評論。不知道是否合適的C++ ..包括實現在內的每一行代碼都在頭文件或類聲明中。一切聲明爲內聯。你等待它編譯多少個小時?接下來幾乎沒有任何行有任何評論或沒有文檔/自述任何地方..一切都被命名爲SSV/SSU/SSVU ..噸的模板沒有..更改源代碼鏈接指向正確的文件(S)你想要檢查。該鏈接指向包含許多文件的文件夾.. – Brandon
* GUI庫通常如何處理小部件焦點?*您可以隨時查看開源GUI庫,例如[MyGUI](http://mygui.info /)。 –
「但是,這在許多場合都失敗了」 - 它有什麼作用?你期望它做什麼?雖然我們處在這個位置,但是「重點」是什麼意思?這個名字有不同的概念。 –