本節描述定義控制的一般步驟,以及描述如何建立各種類型的控制。
如果控制將會有 PUSH_ACTION 及/或 DROP_ACTION,請建立動作定義。這些是當使用者按一下控制或於其上定位檔案時所執行的動作。
建立控制的圖像影像檔案。
有關圖像大小、名稱與位置的資訊,請參閱 "圖像影像檔案"。
建立新的「前方面板」配置檔案於:
整個系統的:/etc/dt/appconfig/types/language/*.fp
個人的:HomeDirectory/.dt/types/*.fp
將控制定義增加至檔案。
儲存檔案。
從「工作區」功能表選擇「重新啟動工作區管理者」。
使用這些欄位來定義控制的行為:
TYPE(類型):設定至圖像
例如,將會放在「個人應用程式」子面板的以下控制會執行使用者已獲得的遊戲:
CONTROL Ball { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING "選擇此控制以玩球。" }
以下控制將會位於開關的左上角。它會啟動名為 CutDisp 的動作。
CONTROL StartCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING "選擇此控制以執行 cutdisp。" PUSH_ACTION CutDisp }
使用這些欄位來定義控制的行為:
TYPE(類型): 設定至檔案
PUSH_ACTION: 設定成「開啟」
必須要有一個為檔案的資料類型定義的「開啟」動作。
例如,以下控制將會位於「主面板」的最右邊。它會啟動具有資料檔案 /users/ellen/PhoneList.txt 的「文字編輯器」。*.txt 檔案的「開啟」動作是內定動作資料庫的一部分。
CONTROL EditPhoneList { TYPE file FILE_NAME /users/ellen/PhoneList.txt CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS last ICON phonebook HELP_STRING "此控制顯示 Ellen 的 電話列表。" PUSH_ACTION Open }
當使用者在控制上定位檔案時,使用 DROP_ACTION 欄位來指定執行的動作。動作必須要能夠接受檔案引數。
控制定義經常同時包括 PUSH_ACTION 與 DROP_ACTION 欄位。您可以使用相同的動作於放入與定位動作。
例如,位於「個人應用程式」子面板中的以下控制執行取得檔案引數的 X 客戶機 xwud。
CONTROL Run_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON XwudImage PUSH_ACTION RunXwud DROP_ACTION RunXwud }
使用這些欄位來定義控制的行為:
例如,以下的控制尋找您期望使用匿名 ftp 將其傳輸至您的系統的名為 meetings(會議)的檔案。控制是放在「個人應用程式」子面板的頂端。
CONTROL MonitorCalendar { TYPE file CONTAINER_NAME PersonalApps CONTAINER_TYPE SUBPANEL POSITION_HINTS first FILE_NAME /users/ftp/meetings MONITOR_TYPE file ICON meetingsno ALTERNATE_ICON meetingsyes }
一個實例的控制會檢查由 PUSH_ACTION 啟動的處理是否已經執行。如果處理未執行,則執行 PUSH_ACTION。如果處理已經執行,視窗會移動至目前工作區中視窗堆疊的頂端。
使用這些欄位來定義控制的行為:
PUSH_RECALL: 設定為 「正確」。
CLIENT_NAME 的值必須符合應用程式頂層視窗上 WM_CLASS 屬性中的第一個字串 (res_name)。有關更多的資訊,請參閱 xprop(1) 線上援助頁。
PUSH_ACTION:描述使用者按一下控制時動作的執行。
例如,以下控制執行其動作名為 MyEditor 的應用程式的一個實例。
CONTROL MyEditor { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME BestEditor PUSH_ACTION StartMyEditor ICON MyEd }
客戶機視窗控制是內含於「前方面板」中的應用程式視窗。例如,您可以藉由建立 xload 客戶機視窗控制將系統載入表放在「前方面板」中。
定義控制。
使用這些欄位來定義控制的行為:
TYPE(類型): 設定至 客戶機。
CLIENT_NAME 的值必須符合應用程式頂層視窗上 WM_CLASS 屬性中的第一個字串(res_name)。有關更多的資訊,請參閱 xprop(1) 線上援助頁。
從「工作區」功能表選擇「重新啟動工作區管理者」。
從終端機模擬器指令行啟動客戶機。
例如,以下控制顯示 30\u00d720的像素載入表。
CONTROL LoadMeter { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 }
如果在階段作業之間未儲存與回復客戶機,您可能會想要配置控制以在使用者按一下時啟動客戶機。例如,您可以藉由將下行增加至定義來配置 LoadMeter 控制以啟動 xload:
PUSH_ACTION StartXload
以及建立動作:
ACTION StartXload { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/contrib/bin/X11/xload }
當使用者選擇控制或於其上定位物件時,您可以附加要使用的動畫順序。
為了要有動畫順序,控制必須:
為類型 圖像
有 PUSH_ACTION 或 DROP_ACTION
ANIMATION animation_name { ANIMATION 圖像1 [milisecond_delay] ANIMATION 圖像2 [milisecond_delay] ... }
其中 圖像1、圖像 2 等等是圖像的名稱,而 milisecond_delay 是以毫秒計算的動畫圖像之間的時間延遲。內定時間延遲為 200 毫秒。
增加 PUSH_ANIMATION 及/或 DROP_ANIMATION 欄位至控制定義。此值為 ANIMATION(動畫) 順序的名稱。
例如,下列各行使啟動 BestEditor 應用程式的控制成為動畫。圖像之間的時間延遲是 300 毫秒。範例假定您已建立圖像檔案 frame1、frame2 等等。
CONTROL BestEditor { ... PUSH_ANIMATION BestEdAnimation ... }
ANIMATION BestEdAnimation { frame1 300 frame2 ... }
提供控制的輔助說明有兩種方法:
在控制定義中提供輔助說明字串。
當使用者調用控制的關於項目輔助說明時,輔助說明字串會顯示於輔助說明查看器中。輔助說明字串不得包括製作格式(例如標題)或連結。
如果要提供輔助說明字串,請在控制定義中指定它:
HELP_STRING help_string