本節解釋如何建立動作定義的配置檔案。
包含動作定義的配置檔案必須符合這些需求:
檔案必須使用命名習慣用法 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。
有關更多的資訊,請參閱 "指定由動作所使用的圖像影像"。
連按兩下 Desktop_Tools 應用程式群組中的重新載入動作。
建立動作的動作檔案。動作檔案在「檔案管理者」或代表動作的「應用程式管理者」中建立圖像。(如果動作的寫入目的是為了啟動應用程式,圖像就稱為 應用程式圖像。)
如果要建立動作檔案,請建立與 action_name 有相同名稱的可執行檔案。您可以將檔案放在任何您有寫入許可權的目錄中。您可以任意地建立動作檔案的數目。
下列步驟建立啟動在遠程系統 AppServerA 上的傳真應用程式的個人動作。啟動傳真應用程式的指令為:
/usr/fax/bin/faxcompose [filename]
建立檔案 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% 接受定位檔案。如果連按兩下動作圖像,動作會開啟空白的傳真撰寫視窗。
請參閱 "建立指令動作的執行字串"。
儲存檔案。
使用「圖像編輯器」在 HomeDirectory/.dt/icons 目錄中建立下列的圖像影像檔案:
fax.m.pm,大小 32 乘 32 像素
fax.t.pm,大小 16 乘 16 像素
連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
建立您有寫入許可權的目錄(例如,您的主目錄)中名為 FaxComposer 的可執行的檔案。
假定您傳真的大部分檔案都是以「文字編輯器」所建立的而且是資料類型 TEXTFILE(名為 *.txt 的檔案)。
這些步驟將 ``傳真'' 功能表項目增加至資料類型的「所選項目」功能表。
開啟之前範例中所建立的檔案 HomeDirectory/.dt/types/Fax.dt。
增加此對應動作定義至檔案:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
儲存檔案。
從 /usr/dt/appconfig/types/language/dtpad.dt 複製 TEXTFILE 的資料屬性定義至新檔案HomeDirectory/.dt/types/textfile.dt。將傳真動作增加至 動作 欄位。
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd ... }
儲存檔案。
開啟「應用程式管理者」並連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
為了使新的或編輯的動作定義生效,桌上管理系統必須重新讀取資料庫。
開啟 Desktop_Tools 應用程式群組並連按兩下「重新載入動作」。
或,執行指令:
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)中。例如,如果動作定義包括:
ACTION MyFavoriteApp { LABEL Favorite Application ... }
那麼動作圖像將會標示為 ``最喜愛的應用程式''。
使用 圖像 欄位來指定為動作所建立的動作圖像的「檔案管理者」與「應用程式管理者」所使用的圖像。
如果您未指定圖像,系統則使用內定動作圖像影像檔案 /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 中,圖像 欄位的值會是 /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 目錄中編輯檔案,您就必須複製內建動作。
編輯動作定義。
當您完成編輯時,請儲存檔案。
連按兩下 Desktop_Tools 應用程式群組中的「重新載入動作」。
當使用者調用動作時,系統會搜尋符合動作名稱的資料庫。當一個以上的動作以該名稱存在時,系統會使用優先順序規則來決定要使用何者。
如果未應用其它的優先順序規則,優先順序是以定義的位置為基礎。下表的優先順序是由高到低的順序:
個人動作(HomeDirectory/.dt/types)
整個系統的區域動作(/etc/dt/appconfig/types/language)
整個系統的遠程動作(hostname:/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。