從使用者介面的面貌來概觀XWindow(轉)
從使用者介面的面貌來概觀XWindow(轉)[@more@] 我們將觀察重點擺到系統控制的使用者介面,例如,系統如何顯示有人使用它,以及包含那些結構等。
X設計的目標之一就是能支援許多不同型式的使用者介面,一般其它的視窗系統提供特殊的交談方法,而X則提供一般性的架構,讓系統建立者(system builder)據以建造所需的交談的風格。例如,在一個X系統中你可藉從選單中選一個動作來構建視窗,但其他對視窗的操作則全靠滑鼠來做,這種彈性允許系統開發者(developers)完全在X的基礎上產生全新的介面,也因為介面並未內建於視窗系統,因此使用者在任何時刻根據他們特別的需求可選用適當的介面。例如,對於完成一些相同的工作 -- 建立、移動、重定大小螢幕上的視窗,初學者較老手喜歡簡單的系統,而X可分別提供最適他們的使用者介面。
使用者介面分為兩個部份:
管理介面:命令最高層的視窗如何在螢幕上建構或重建構(re-configured),也就是說,如何管理你的案頭。
應用介面:決定你和應用程式間交談的”風格”(style): 你如何利用視窗系統的裝置程式來控制應用程式及輸入資料給它。
管理介面:視窗管理器
管理介面(management interface)是系統的一部份,用以控制你螢幕上最上層的視窗(換句話說:如何重新建構你的案頭),這個部份在系統中稱之為視窗管理器(window manager),它的功能有改變視窗的大小或位置、將視窗在堆疊 (stack)中重新安排位置、或將視窗改變成表徵圖 (icon) 等等。
在X中,視窗管理器只是另一個client程式而已,它以及系統介面的發展,和server是完全分開的,因此你可以更換它們,這類似於Unix系統中的shell命令列直譯器(interpreter) :shell 只是一個使用者處理程式(process) ,如果你改變它,你也改變了系統的使用者介面。
手動的和自動的視窗管理器
有兩類的視窗管理器:手動的和自動的。手動的視窗管理器,視窗在螢幕上的位置和大小完全由使用者控制,手動的視窗管理器只是使用者用來完成工作的工具,大部份的手動視窗管理器允許應用視窗重疊。
相對的,自動的視窗管理器儘可能的由它自己來控制案頭,對於螢幕的佈置儘可能讓使用者少插手。它在新建立一個視窗時自動決定視窗的大小和位置,和當視窗移動時如何重新安排其餘的視窗,通常自動的視窗管理器將螢幕分成一塊塊像磁磚一樣(tile)的區域,也就是說安排應用視窗彼此不會重疊,而且儘量佔用最多的螢幕空間。
手動的視窗管理器如何工作 -- 攫取(Grabbing)
通常當你告訴手動的視窗管理器你要完成什麼動作時,是藉著使用選單或者結合了按滑鼠的按鈕和移動指標,例如,重新擺放一個視窗的位置,你可以移動指標進入視窗,按住左邊的按鈕,移動指標然後在新位置鬆開按鈕,視窗管理器是如何知道這些滑鼠 "事件" 的意圖的?或是換個角度,server是如何知道 "事件" 是來自應用視窗或視窗管理器?
答案是由視窗管理器告知server有哪些特定的 "事件" (碰觸按鈕等等)需要被送達,這和哪一個視窗發生的無關,這種處理稱之為攫取(Grabbing),視窗管理器可以指定哪一個滑鼠按鈕希望被攫取,而這攫取發生在滑鼠的按鈕被按下且鍵盤上一些特定的鍵(一般稱為修飾鍵(modifer) )也被按住(例如當CONTROL 和SHIFT 兩個鍵被按住時且滑鼠中間的按鈕被按下),當按鈕被按下時,攫取開始動作,server送出所有滑鼠的事件(包括滑鼠的移動事件)到視窗管理器直到按鈕再度鬆開,視窗管理器把這些 "事件" 的資料解釋成來自使用者的指令來工作。以移動視窗為例,視窗管理器在按鈕按下時被告知指標的位置,而當按鈕鬆開時再度被告知,對指標的位移做一些簡單計算便可據以移動視窗。
有一件事需要使用者配合,那就是滑鼠和修飾鍵組合而成的攫取不應該為應用程式所知道,所以必需確定視窗管理器這種攫取鍵的組合不會和應用程式衝突,大多數的視窗管理器可以很容易的定義這些攫取的組合鍵,而保留給它自己使用。
X設計的目標之一就是能支援許多不同型式的使用者介面,一般其它的視窗系統提供特殊的交談方法,而X則提供一般性的架構,讓系統建立者(system builder)據以建造所需的交談的風格。例如,在一個X系統中你可藉從選單中選一個動作來構建視窗,但其他對視窗的操作則全靠滑鼠來做,這種彈性允許系統開發者(developers)完全在X的基礎上產生全新的介面,也因為介面並未內建於視窗系統,因此使用者在任何時刻根據他們特別的需求可選用適當的介面。例如,對於完成一些相同的工作 -- 建立、移動、重定大小螢幕上的視窗,初學者較老手喜歡簡單的系統,而X可分別提供最適他們的使用者介面。
使用者介面分為兩個部份:
管理介面:命令最高層的視窗如何在螢幕上建構或重建構(re-configured),也就是說,如何管理你的案頭。
應用介面:決定你和應用程式間交談的”風格”(style): 你如何利用視窗系統的裝置程式來控制應用程式及輸入資料給它。
管理介面:視窗管理器
管理介面(management interface)是系統的一部份,用以控制你螢幕上最上層的視窗(換句話說:如何重新建構你的案頭),這個部份在系統中稱之為視窗管理器(window manager),它的功能有改變視窗的大小或位置、將視窗在堆疊 (stack)中重新安排位置、或將視窗改變成表徵圖 (icon) 等等。
在X中,視窗管理器只是另一個client程式而已,它以及系統介面的發展,和server是完全分開的,因此你可以更換它們,這類似於Unix系統中的shell命令列直譯器(interpreter) :shell 只是一個使用者處理程式(process) ,如果你改變它,你也改變了系統的使用者介面。
手動的和自動的視窗管理器
有兩類的視窗管理器:手動的和自動的。手動的視窗管理器,視窗在螢幕上的位置和大小完全由使用者控制,手動的視窗管理器只是使用者用來完成工作的工具,大部份的手動視窗管理器允許應用視窗重疊。
相對的,自動的視窗管理器儘可能的由它自己來控制案頭,對於螢幕的佈置儘可能讓使用者少插手。它在新建立一個視窗時自動決定視窗的大小和位置,和當視窗移動時如何重新安排其餘的視窗,通常自動的視窗管理器將螢幕分成一塊塊像磁磚一樣(tile)的區域,也就是說安排應用視窗彼此不會重疊,而且儘量佔用最多的螢幕空間。
手動的視窗管理器如何工作 -- 攫取(Grabbing)
通常當你告訴手動的視窗管理器你要完成什麼動作時,是藉著使用選單或者結合了按滑鼠的按鈕和移動指標,例如,重新擺放一個視窗的位置,你可以移動指標進入視窗,按住左邊的按鈕,移動指標然後在新位置鬆開按鈕,視窗管理器是如何知道這些滑鼠 "事件" 的意圖的?或是換個角度,server是如何知道 "事件" 是來自應用視窗或視窗管理器?
答案是由視窗管理器告知server有哪些特定的 "事件" (碰觸按鈕等等)需要被送達,這和哪一個視窗發生的無關,這種處理稱之為攫取(Grabbing),視窗管理器可以指定哪一個滑鼠按鈕希望被攫取,而這攫取發生在滑鼠的按鈕被按下且鍵盤上一些特定的鍵(一般稱為修飾鍵(modifer) )也被按住(例如當CONTROL 和SHIFT 兩個鍵被按住時且滑鼠中間的按鈕被按下),當按鈕被按下時,攫取開始動作,server送出所有滑鼠的事件(包括滑鼠的移動事件)到視窗管理器直到按鈕再度鬆開,視窗管理器把這些 "事件" 的資料解釋成來自使用者的指令來工作。以移動視窗為例,視窗管理器在按鈕按下時被告知指標的位置,而當按鈕鬆開時再度被告知,對指標的位移做一些簡單計算便可據以移動視窗。
有一件事需要使用者配合,那就是滑鼠和修飾鍵組合而成的攫取不應該為應用程式所知道,所以必需確定視窗管理器這種攫取鍵的組合不會和應用程式衝突,大多數的視窗管理器可以很容易的定義這些攫取的組合鍵,而保留給它自己使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960068/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Bjarne Stroustrup:概觀C++程式設計語言 (轉)JARC++程式設計
- 使用者介面的今天和明天 (轉)
- 組態XWindow系統使用 X 桌面管理程式(轉)
- XWindow顯示卡配置通用解決方法 Xconfigurator (轉)
- Linux下XWindow系統啟動指令碼分析(轉)Linux指令碼
- 組態 XWindow系統使用 X-Configurator(轉)
- 透過智慧化技術來打造SMT貼片加工行業新面貌行業
- XF86Config檔案導讀 xwindow xserver (轉)Server
- Linux作業系統下Xwindow的語言選擇(轉)Linux作業系統
- 從訪問控制的觀點談windows的多使用者Windows
- Backup And Recovery User's Guide-使用者管理的介質恢復概覽GUIIDE
- 世界觀積木:從0搭建世界觀
- 轉摘_raid概論AI
- 虛幻5要來了,但好遊戲的追求從來不是畫面的“真實化”遊戲
- MySQL樂觀鎖和悲觀鎖介紹MySql
- 蘋果企業開發者賬號裡面的蘋果開發者證書概覽蘋果
- 從問題分析的入口談國產資料庫與Oracle在可觀測性方面的差距資料庫Oracle
- Netscape 6.1特性概覽 (轉)
- 中文Linux版本概覽(轉)Linux
- Linux網管---組態XWindow系統-使用X-Configurator(轉)Linux
- windows API簡介--使用者介面(系列2) (轉)WindowsAPI
- 使用者介面設計準則從何而來
- JWT簡介:從Session到Token的轉變JWTSession
- 全面升級 —— Apache RocketMQ 5.0 SDK 的新面貌ApacheMQ
- 無人車與巨集觀交通:從微觀模型到巨集觀模型模型
- 無人車與宏觀交通:從微觀模型到宏觀模型模型
- 從頭來之【iOS及歷史版本特性介紹】iOS
- java介面的妙用 (轉)Java
- Google:LinkedIn全球使用者資料概覽Go
- 轉享: 樂觀 vs 悲觀協議協議
- 用介面的思想來理解GraphQL
- 摸魚小技巧來啦,速來圍觀
- Linux面面觀 (轉)Linux
- 學Java,觀GP (轉)Java
- 我的程式觀 (轉)
- 014 | 從微觀到巨集觀理解區塊鏈區塊鏈
- Angular 從入坑到挖坑 - HTTP 請求概覽AngularHTTP
- 從持續整合到持續交付——DockerCloud概覽DockerCloud