本節解釋如何建立動作定義的配置檔案。
包含動作定義的配置檔案必須符合這些需求:
檔案必須使用命名慣例 name .dt
檔案必須位於資料庫(動作與資料類型)搜尋路徑上。預設搜尋路徑為:
個人的動作—HomeDirectory /.dt/types
整個系統的動作—/etc/dt/appconfig/types/language
內建的動作—/usr/dt/appconfig/types/language. 您不應使用此目錄。
有關修改動作/資料類型搜尋路徑的資訊,請參閱 設定搜尋路徑的值。
開啟現存資料庫檔案或建立新檔案。
請參閱前一節, 動作的配置檔案。
使用此語法建立動作定義:
ACTION action_name { TYPE action_type action_field … }
其中:
action_name—用於執行動作的名稱。
action_type—指令(預設)、對映或 TT_MSG。
action_field—此類型動作的所需或選擇性的欄位之一。所有欄位都是由一個關鍵字與一個值所組成的。
本章中涵蓋許多的動作欄位。有關更多的資訊,請參閱 dtactionfile(4) 線上援助頁。
儲存檔案。
如果您想要動作圖示有個唯一的影像,請為此動作建立圖示。圖示的預設位置為:
個人圖示: HomeDirectory /.dt/icons
整個系統的圖示:/etc/dt/appconfig/icons/language 。預設 語言 為 C。
有關更多的資訊,請參閱 指定由動作使用的圖示影像。
連按兩下桌面工具應用程式群組中的重新載入動作。
建立動作的動作檔案。動作檔案在「檔案管理者」或代表動作的「應用程式管理者」中建立圖示。(如果動作的寫入目的是為了啟動應用程式,圖示就稱為 應用程式圖示。)
如果要建立動作檔案,請建立與 action_name 有相同名稱的可執行檔案。您可以將檔案放在任何您有寫入許可權的目錄中。您可以任意地建立動作檔案的數目。
下列步驟建立啟動在遠端系統 AppServerA 上的傳真應用程式的個人動作。啟動傳真應用程式的指令為:
/usr/fax/bin/faxcompose [檔案名稱]
建立包含指令的檔案 HomeDirectory /.dt/types/Fax.dt。
將以下動作定義放在檔案中:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c %Arg_1% EXEC_HOST AppServerA DESCRIPTION Runs the fax composer
}
WINDOW_TYPE 與 EXEC_STRING 欄位描述動作的行為。
WINDOW_TYPE— NO_STDIO 關鍵字指定動作不需在終端機模擬器視窗中執行。
請參閱 指定動作的視窗支援。
EXEC_STRING—語法 %Arg _1% 接受定位檔案。 如果連按兩下動作圖示,動作會開啟空白的傳真撰寫程式視窗。
請參閱 建立 COMMAND 動作的執行字串。
儲存檔案。
使用「圖示編輯程式」在 HomeDirectory /.dt/icons 目錄中建立下列的圖示影像檔案:
fax.m.pm,大小 32 乘 32 像素
fax.t.pm,大小 16 乘 16 像素
連按兩下桌面工具應用程式群組中的重新載入動作。
建立您有寫入許可權的目錄(例如,您的主目錄)中名為 FaxComposer 的可執行的檔案。
假定您傳真的大部分檔案都是以「文字編輯程式」所建立的而且是資料類型 TEXTFILE(名為 *.txt 的檔案)。
這些步驟將 ``傳真'' 功能表項目增加至資料類型的「所選項目」功能表。
開啟之前範例中建立的檔案 HomeDirectory /.dt/types/Fax.dt。
增加此對映動作定義至檔案:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
儲存檔案。
從 /usr/dt/appconfig/types/ 取得優先順序的個人語言相依的配置檔案 /dtpad.dt 複製 TEXTFILE 的資料屬性定義至新檔案 HomeDirectory /.dt/types/textfile.dt。 將傳真動作增加至 ACTIONS 欄位。
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd … }
儲存檔案。
開啟「應用程式管理者」並連按兩下桌面工具應用程式群組中的「重新載入動作」。
為了使新的或編輯的動作定義生效,桌上管理系統必須重新讀取資料庫。
開啟桌面工具應用程式群組並連按兩下「重新載入動作」。
或,執行指令:
dtaction ReloadActions
ReloadActions 是其圖示標為 ``重新載入動作'' 的動作的名稱。
當使用者如下執行時,也會重新讀取動作資料庫:
登入
重新啟動工作區管理者
藉由從檔案功能表選擇儲存以在建立動作視窗中儲存動作
動作檔案 是建立以提供「檔案管理者」或「應用程式管理者」中的動作視覺表示方式的檔案。
既然動作檔案的圖示代表動作,有時它也稱為 動作圖示。如果隱藏的動作啟動應用程式,動作檔案圖示就稱為 應用程式圖示。
連按兩下動作圖示會執行動作。動作圖示也可以是定位區域。
例如,如果動作定義為:
ACTION MyFavoriteApp { EXEC_STRING Mfa -file %Arg_1% DESCRIPTION Runs MyFavoriteApp ICON Mfapp }
那麼動作檔案將會是名為 MyFavoriteApp 的可執行檔案。 在「檔案管理者」與「應用程式管理者」中,MyFavoriteApp 檔案會使用圖示影像 Mfapp. size.type。連按兩下 MyFavoriteApp 的圖示將會執行動作的執行字串,而圖示的「關於項目」輔助說明將會是 說明 欄位的內容(“runs MyFavoriteApp”)。
如果動作定義包括 標籤 欄位,將會將動作檔案標示在「檔案管理者」與具有此欄位內容的「應用程式管理者」而非檔案名稱 ( action_name) 中。例如,如果動作定義包括:
動作 MyFavoriteApp { LABEL Favorite Application … }
那麼動作圖示將會標示為 ``最喜愛的應用程式''。
使用 ICON 欄位來指定為動作所建立的動作圖示的「檔案管理者」與「應用程式管理者」所使用的圖示。
如果您未指定圖示,系統則使用預設動作圖示影像檔案 /usr/dt/appconfig/icons/language /Dtactn.*。
*actionIcon: icon_file_name
其中 icon_file_name 可以是基本名稱或絕對路徑。
基本檔案名稱
基本檔案名稱是包含圖示影像減去檔案名稱的大小 (m 與 t)與影像類型(bm and pm)字尾的檔案名稱。例如,如果檔案名稱為 GameIcon.m.pm 與 GameIcon.t.pm,請使用 GameIcon。
如果您使用基本檔案名稱,圖示檔案必須放在圖示搜尋路徑上的目錄中:
個人圖示: HomeDirectory /.dt/icons
整個系統的圖示:/etc/dt/appconfig/icons/language
圖示檔案的絕對路徑,包括完整的檔案名稱
唯有當圖示檔案不在圖示搜尋路徑上時才應使用絕對路徑。 例如,如果圖示檔案 GameIcon.m.pm 是放在不在圖示搜尋路徑上的目錄 /doc/projects 中,ICON 欄位的值會是 /doc/projects/GameIcon.m.pm。
表 12–1 列出您應該建立的圖示大小與相等的檔案名稱。
像素的大小 |
點陣圖名稱 |
像素對應名稱 |
---|---|---|
48 乘 48 |
name.l.bm |
name .l.pm |
32乘 32 |
name .m.bm |
name.m.pm |
16乘 16 |
name.t.bm |
name.t.pm |
您可以修改您系統上任何可供使用的動作,包括內建動作。
當修改內建動作資料庫時,請小心使用。內建動作是設計來與桌上管理系統應用程式共同良好運作的。
尋找您想要修改的動作定義。
動作定義的預設位置為:
如果有必要,請將動作定義的文字複製至這些目錄之一中的新的或現存檔案:
整個系統的動作:/etc/dt/appconfig/types/language
個人動作:HomeDirectory /.dt/types
既然您不應在 /usr/dt/appconfig/types/language 目錄中編輯檔案,那么您必須複製內建動作。
編輯動作定義。
當您完成編輯時,請儲存檔案。
連按兩下桌面工具應用程式群組中的重新載入動作。
當使用者呼叫動作時,系統會搜尋符合動作名稱的資料庫。當一個以上的動作以該名稱存在時,系統會使用優先順序規則來決定要使用何者。
如果未應用其它的優先順序規則,優先順序以定義的位置為基礎。下表的優先順序是由高到低的順序:
個人動作(HomeDirectory /.dt/types)
整個系統的本機動作(/etc/dt/appconfig/types/language)
整個系統的遠端動作(主機名稱 :/etc/dt/appconfig/types/language)。搜尋的遠端主機就是列在應用程式搜尋路徑中的那一些。
內建動作(/usr/dt/appconfig/types/language)
在已知的目錄中,*.dt 檔案是以字母順序讀取的。
由 ARG_CLASS、ARG_TYPE、ARG_MODE 或 ARG_COUNT所限制的動作對於未受限制的動作有優先順序。(此四個欄位的預設值為 *。)
其中應用一項以上的限制,由高到低的優先順序為:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
其中有一項以上的受限制 ARG_COUNT 存在,由高到低的優先順序為:
特定的整數值 n
<n
>n
*
例如,試想下列部分的動作定義:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD … }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 … }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * … }
連按兩下 EditGraphics 動作圖示會啟動 EditGraphics-2,因為未提供引數,而且 ARG_COUNT 0 有優先順序。當 XWD 類型的檔案引數被提供時,會使用 EditGraphics-1,因為其指定 XWD ARG_TYPE。所有其它檔案引數都使用 EditGraphics-3。