在應用程式視窗中,屬性_net_wm_window_type的值標識出了該視窗的型別。我們可以用xprop –id wid _net_wm_window_type檢視wid對應的視窗的型別。視窗管理器可以根據這個屬性值(還有其它屬性值)來決定是否要對視窗進行裝飾,視窗的z-order和其它的視窗行為。
下面將詳細介紹http://standards.freedesktop.org/wm-spec/1.4/index.html中定義的各種視窗型別。
_net_wm_window_type_desktop:這種型別的視窗就是我們通常看到的桌面了。桌面視窗是由檔案管理器(如nautilus ['nɔ:tiləs;'nɔ:tələs])建立的。
_net_wm_window_type_dock:這種型別的視窗就是我們通常看到的自動靠邊視窗。它通常位於其它視窗的上面。
_net_wm_window_type_******* 和 _net_wm_window_type_menu:工具欄和選單視窗。對於我們一般看到的選單視窗(如右鍵選單等),它們的型別都不是type_menu。在freedesktop.org的標準中,type_menu型別是用來標識pinnable menu視窗的。對於pinnable menu window我現在還找不到乙個合適的翻譯,但是「分離式選單」(tear-off menu)的型別正是type_menu,所以,這裡猜想pinnable menu應該有著tear-off menu類似的表現形式。何謂「分離式選單」?具體描述起來是指這樣一類選單視窗:我們可以把這個選單拉到主視窗外面,當焦點不在這個選單視窗時,它也不會隱藏。可以看下面的截圖,其中標題為「foo」的視窗就是tear-off menu,它的型別是type_menu
_net_wm_window_type_utility:這裡一種永久性的功能視窗,就像調色盤或都工具視窗就是這種型別。但是它並不同於*******型別視窗,因為它並不能多主視窗中分離。這種視窗也不同於dialog視窗,因為它不是瞬時視窗。在程式的執行過程中,使用者通常是一直開啟這種視窗的。
_net_wm_window_type_splash:通常這種視窗出現在程式的啟動畫面。
_net_wm_window_type_dialog:對話方塊視窗。
_net_wm_window_type_dropdown_menu:下拉列表視窗。
_net_wm_window_type_popup_menu:彈出式選單視窗。
_net_wm_window_type_tooltip:工具提示視窗。例如,當我們的游標移動到某個選單項時所出來的提示視窗就是這種型別。
_net_wm_window_type_notification:通知視窗。乙個典型的例子就是當我們使用筆記本**過程中可能會看到的「你的電池電量不足」的提示視窗。
_net_wm_window_type_combo:組合框視窗。如下圖的下拉視窗。
_net_wm_window_type_dnd:標識視窗正在被拖動。如下圖:
_net_wm_window_type_normal:這種視窗的定義規則如下:如果視窗是被管理的,而且沒有_net_wm_window_type 和wm_transient_for就會被設定成normal;如果視窗是忽略重定向的(也就是不被視窗管理器所管理的),而且沒有net_wm_window_type屬性,就會被設定成normal型別。
主視窗型別
主視窗型別 有三種視窗 qmainwindow qwidget qdialog qmainwindow 可以包含選單欄 工具欄 狀態列和標題欄,是最常見的視窗形式。qdialog 是對話視窗的基類。沒有選單欄 工具欄 狀態列。qwidget 不確定視窗的用途就使用qwidget。import sys...
0x4 視窗和視窗風格
什麼是頂級視窗?連線桌面春 的子視窗 風格描述 ws ex dlgmodalframe 雙層邊框 ws ex topmost 停留在所有非最高層視窗上面 ws ex acceptfiles 接受檔案拖放 通過呼叫系統一系列的api函式遍歷所有子視窗 void getallwindows tchar ...
X視窗系統原理粗解
圖形介面一直是linux使用者頭疼的問題,出了問題往往一片茫然,大多重灌了事。本文試圖從巨集觀的角度剖析一下x系統的簡要原理,只有理解了原理才能在解決問題時有的放矢。好,廢話少說,現在就開始。首先,我們要搞清楚x系統的構成。我們平時稱呼的x圖形介面,實際上是由幾個重要部分構成的。它們分別是 x se...