ncurses的觸摸屏,超越滑鼠?
ncurses 是否支持觸摸屏電腦?觸摸屏會在 ncurses 中觸發與滑鼠相同的事件嗎?例如,點擊觸摸屏是否會在 ncurses 中產生“滑鼠點擊”事件?
我知道 ncurses 確實支持滑鼠輸入,所以我希望觸摸屏可以像滑鼠一樣工作,它可以與 ncurses 互動。所以點擊就像滑鼠點擊一樣,拖動在兩者中都是一樣的。
但是觸摸屏沒有滾輪,也沒有右鍵。此外,觸摸屏可能具有滑鼠沒有的手勢。
ncurses 程式 HOWTO的滑鼠章節可能是有用的閱讀。
第一小節介紹了所有滑鼠事件遮罩:有滑鼠位置報告,其中包括 x、y 和 z 座標,因此其中一個可用於覆蓋一個滾輪。最多有四個按鈕的事件,以及每個按鈕的點兩下和三次點擊。有一些事件可以使用 Shift、Control 和 Alt 鍵作為點擊事件的修飾符。這就是您可以通過 ncurses 滑鼠 API 獲得的所有資訊。
但是該文件已有 10 多年的歷史了——也許它不是最新的?
沒有。在 in 中搜尋單詞“touch”
/usr/include/ncurses.h
會產生幾個命中,但交叉引用相應的手冊頁表明所有這些都指的是決定螢幕上的內容是否需要刷新。沒有任何特定於觸摸屏的內容可用。即使是最新的 6.1 版本也沒有帶來更高級的觸摸屏支持。
如果您在檢查我上面提到的來源後沒有找到您正在尋找的東西,您可以非常確定地確定您正在尋找的東西不存在。
這只是我的觀點,但在我看來,多點觸控和手勢通常需要一些圖形功能,允許相當自由地縮放和旋轉螢幕上的某些元素,以使手勢顯然在做某事。基於字元的顯示器可能不適合這樣的界面,所以這可能就是為什麼沒有人努力添加特定的觸摸屏支持的原因。
但聽起來您可能對基於文本的顯示器上的觸摸使用者界面有一些新穎的想法。您也許可以通過讓您的展示應用程序界面更直接地使用實際的觸摸屏驅動程序來製作您的想法的原型。
一旦你對什麼樣的觸摸屏 UI 元素真正與基於文本的顯示器一起工作有了一些想法(也許招募一些大學生為你做一個基本的可用性研究項目?),下一個問題將是:什麼樣的觸摸屏事件抽象對實施這些最有用嗎?
事實證明,通過 ncurses 本身傳遞觸摸屏事件並沒有附加價值:相反,您可能會發現創建一個單獨的觸摸 UI 元素庫來連接到 ncurses 用於顯示和触摸屏驅動程序用於輸入是合適的。誰說一次只能使用一個程式 API?