有關使用這些步驟以建立應用程式套裝軟體的詳細範例,請參閱 "建立註冊套裝軟體的範例"。
修改任何設定字型與色彩的應用程式來源。否則,桌上管理系統的動態字型與色彩將不會正確地運作。
請參閱 "第 1 步:修改字型與色彩來源"。
建立應用程式 root 位置。
建立在應用程式 root 之下的目錄結構。
建立應用程式的動作與資料類型。
將輔助說明檔案放在合適的目錄中。
建立應用程式的圖像
請參閱 "第 6 步:建立應用程式的圖像"。
建立應用程式的應用程式群組。
請參閱 "第 7 步:建立應用程式群組"。
使用 dtappintegrate 來註冊應用程式。
有關修改應用程式來源的範例,請參閱 "建立註冊套裝軟體的範例" 的第 1 步。
桌上管理系統提供設定與處理介面字型和視窗色彩的機制。為了使應用程式正確地使用這些機制,您可能需要修改應用程式的 app-defaults 檔案。
本節應用於使用 OSF/Motif 1.2 (TM)(或較新的版本)建立的應用程式。樣式管理者無法設定使用較早版本的 OSF/Motif 寫入的應用程式介面字型。
如果應用程式沒有指定特定的應用程式字型,桌上管理系統樣式管理者將會設定使用 OSF/Motif 1.2(或較新的版本)建立的應用程式介面字型。
樣式管理者提供兩種字型:
系統字型-由例如是標籤、功能表與按鈕之類的系統區域使用
使用者字型-用於例如是文字欄位之類的可編輯區域
每種字型都提供有七種大小,在字型對話框中從 1 標到 7。樣式管理者字型經由/usr/dt/app-defaults/language/Dtstyle 中所設定的樣式管理者來源連接至系統上的實際字型。
如果您希望應用程式使用樣式管理者字型,您應該刪除任何介面指定字型的應用程式來源。桌上管理系統將會自動適當地設定應用程式的來源:
FontList-設定至系統字型
XmText*FontList-設定至使用者字型
XmTextField*FontList-設定至使用者字型
樣式管理者提供動態變更應用程式色彩的能力。應用程式必須是 OSF/Motif 1.1 或 1.2 客戶機。以其它工具箱所寫入的客戶機無法動態變更色彩;客戶機重新啟動時,色彩變更會生效。
使用由桌上管理系統所提供的動態色彩的最簡單方法就是刪除任何應用程式背景與前景色彩的色彩來源。
有關建立應用程式的桌上管理系統應用程式 root 目錄的範例,請參閱 "建立註冊套裝軟體的範例" 的第 2 步。
應用程式的註冊套裝軟體檔案是聚集於稱為應用程式 root 或 app_root 的目錄之下。用於桌上管理系統配置檔案的 app_root 目錄可以與應用程式的安裝 app_root 或某其它位置是相同的目錄。
例如,假設應用程式安裝於目錄 /usr/BTE 之下。此相同的目錄可用作桌上管理系統配置檔案的 app_root。然而,如果您正在整合現存非桌上管理系統智慧型應用程式,請建立不同的桌上管理系統 app_root 目錄。此將會防止您所建立的配置檔案在您更新應用程式時被重寫。
例如,系統管理者可能會想要建立目錄 /etc/desktop_approots/BTE 為桌上管理系統 app_root 目錄。
有關建立應用程式的註冊套裝軟體目錄的範例,請參閱 "建立註冊套裝軟體的範例" 的第 3 步。
註冊套裝軟體是由桌上管理系統使用來提供應用程式的圖形介面的桌上管理系統配置檔案的群組。
桌上管理系統配置檔案包括:
動作與資料類型定義檔案
圖像影像檔案
應用程式群組目錄與其內容
選擇性的:輔助說明資料檔案與前方面板配置檔案
註冊套裝軟體是在稱為應用程式 root 或 app_root 的頂層目錄之下所收集的。
在 app_root/dt/appconfig 目錄之下的配置欄位之主要種類如 表 5-1 所示。
表 5-1 配置欄位主要種類
子目錄 |
內容 |
---|---|
類型 |
動作與資料類型定義檔案 |
輔助說明 |
桌上管理系統輔助說明檔案 |
圖像 |
由應用程式的動作與資料類型所使用的位元映射與圖素映射影像檔案 |
appmanager |
建立應用程式群組的目錄與內容 |
每一種主要種類中都有語言相依的檔案子目錄。內定語言檔案放在 C 目錄中。
建立這些目錄。如果您正提供語言相依的配置檔案,請為每種語言建立分開的目錄。如果您只供應一種語言,請將檔案放在 C 目錄中。
app_root/dt/appconfig/types/language
app_root/dt/appconfig/help/language
app_root/dt/appconfig/icons/language
app_root/dt/appconfig/appmanager/language/appgroup_name,其中 appgroup_name 是應用程式群組的名稱。
例如,圖 5-5 顯示包含其 appgroup_name 為 "Media_Tools." 的群組的應用程式管理者
dtappintegrate 工具只在 類型、輔助說明、圖像 與 appmanager 目錄中的桌上管理系統配置檔案上作業。應用程式的可執行二進位、app-defaults 與訊息目錄檔案是分開管理的。
有關建立應用程式的動作與資料類型的範例,請參閱 "建立註冊套裝軟體的範例" 的第 4 步。
動作與資料類型提供應用程式的使用者介面。
動作提供使用者介面給指令以啟動應用程式。
資料類型提供應用程式資料檔案的自訂外觀與行為。
典型的應用程式會需要下列的動作與資料類型定義:
開啟應用程式的動作。
您的應用程式的資料檔案的資料類型。如果您建立一種資料類型,您也將會想要建立:
您的應用程式的資料檔案開啟動作
您的應用程式的資料檔案列印動作
應用程式群組的資料類型(請參閱 "配置應用程式群組以使用唯一的圖像")。
有關如何在桌上管理系統中使用動作與資料類型的指令,請參閱 第 10章, 動作與資料類型簡介 。
動作與資料類型定義於配置檔案中。包含動作與資料類型定義的檔案的唯一命名需求就是它們必須是 .dt 字尾。按習慣用法,您可能會想要命名檔案為 action_name.dt 或 application_name.dt。
將包含動作與資料類型的檔案放在目錄 app_root/dt/appconfig/types/language 中的應用程式 root 之下。內定 語言 為 C。
您可以用下列兩種方法任一來建立應用程式的動作與資料類型定義:
使用建立動作工具。
建立動作會用您填入的文字欄位提供簡單易用的介面。然而,此工具有特定的限制。
人工建立定義。
此需要您學習建立定義的語法,但提供完整功能範圍的存取。
此程序使用建立動作公用程式以建立應用程式的動作與資料類型。
有關建立動作的更多資訊,請使用其線上輔助說明或參閱 第 11章, 使用建立動作來建立動作與資料類型。
開啟 Desktop_Apps 應用程式群組並連按兩下建立動作。
使用建立動作來建立應用程式與其資料類型的動作與資料類型定義。
由建立動作所建立的配置檔案將會寫入至 HomeDirectory/.dt/type/action_name.dt。 動作檔案(具有與動作相同名稱的可執行檔案)是放在您的主目錄中。
使用您的主目錄中所建立的動作檔案來測試動作。
將動作定義檔案 HomeDirectory/.dt/type/action_name.dt 複製到 app_root/dt/appconfig/types/language directory。
在建立應用程式群組目錄之後(請參閱 "第 7 步:建立應用程式群組"),將動作檔案 HomeDirectory/action_name 複製到 app_root/dt/appconfig/appmanager/language/appgroup_name 目錄。
建立包含應用程式的動作與資料類型定義的配置檔案。
動作與資料類型定義檔案必須遵循命名習慣用法 name.dt。
您可以將您所有的動作與資料類型定義放在一個檔案中,或是將它們分散在多重檔案之中。對於每個檔案,請使用系統管理者將會輕易地與您的應用程式連接的檔案名稱。
動作與資料類型名稱必須是一個字(無內含的空間)。您可以使用底線字元。按習慣用法,動作或資料類型名稱的第一個字母是大寫的。請勿使用現存動作名稱或檔案名稱。使用進階使用者與系統管理將會輕易地與您的應用程式連接的名稱。
如果您想要讓應用程式的圖像標上與動作名稱有效不同的名稱,請將 標籤 欄位包含在動作定義中。
有關建立動作與資料類型的更多資訊,請參閱:
有關增加輔助說明檔案至註冊套裝軟體的範例,請參閱 "建立註冊套裝軟體的範例" 的第 5 步。
如果應用程式包括桌上管理系統輔助說明內容(以桌上管理系統輔助說明設計者工具箱建立的輔助說明內容),輔助說明內容主控者檔案(*.sdl)應放在目錄 app_root/appconfig/help/language 中。
由輔助說明檔案所使用的圖形通常是放在 圖形 子目錄中。圖形必須是位於在建立輔助說明內容時與主控者輔助說明內容(*.sdl)檔案相對的相同目錄中。
如果應用程式不提供輔助說明內容,若是您有輔助說明設計者工具箱,您就可以建立一個。
當桌上管理系統部分整合時,它可以從輔助說明管理員的頂層提供使用。然而,您無法從應用程式的視窗存取輔助說明內容。您也可以提供動作以從應用程式群組存取輔助說明。以下範例動作顯示位於輔助說明主控者檔案 MyApp.sdl 中的輔助說明內容:
ACTION OpenMyAppHelp { LABEL MyAppHelp ARG_COUNT 0 TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dthelpview -helpVolume MyApp DESCRIPTION 顯示 MyApp 應用程式的輔助說明。 }
有關建立應用程式的圖像檔案範例,請參閱 "建立註冊套裝軟體的範例" 的第 6 步。
桌上管理系統提供動作、資料類型與應用程式群組的內定圖像。然而,您或許將會想要建立應用程式的唯一圖像。
將圖像放在目錄 app_root/dt/appconfig/icons/language 中。
應用程式在桌上管理系統上使用這些圖像影像:
資料類型圖像。 此圖像是用於代表檔案管理者中應用程式的資料檔案。參考其於資料類型定義的 圖像 欄位中。
如果您的應用程式支援多重資料類型,您應該提供不同的圖像給每種資料類型。
供應兩種大小:小型與中型。
應用程式群組圖像。 這是代表在應用程式管理者頂層的目錄圖像。參考其於應用程式群組的資料類型定義 圖像 欄位中。(請參閱 "第 7 步:建立應用程式群組"。)
供應兩種大小:小型與中型。
您可能需要供應每個圖像的圖素映射與位元映射兩種版本以支援彩色(八位元的與更大的)以及單色(少於八位元)顯示器。
大小 |
像素空間 |
位元映射名稱 |
圖素映射名稱 |
---|---|---|---|
小型 |
16 乘 16 |
基本名稱.t.bm |
基本名稱.t.pm |
中型 |
32 乘 32 |
基本名稱.m.bm |
基本名稱.m.pm |
大型 |
48 乘 48 |
基本名稱.l.bm |
基本名稱.l.pm |
如果您不提供位元映射檔案,桌上管理系統會對應圖素檔案的色彩規格至黑色與白色。然而,此對應可能無法製造您所想要的外觀。
有關圖像的更多資訊,請參閱 "圖像影像檔案"。
有關建立應用程式群組的範例,請參閱 "建立註冊套裝軟體的範例" 的第 7 步。
只要您一建立應用程式的動作與資料類型定義,您就必須建立負責建立使用者實際上看到-應用程式群組與其內容的配置檔案。
應用程式群組是在應用程式管理者頂層的目錄(請參閱 圖 5-1)。
建立應用程式群組有三個步驟:
在註冊套裝軟體中建立應用程式群組目錄。
選擇性的:配置應用程式群組以使用唯一的圖像。此包含建立應用程式群組目錄的資料類型定義。
建立應用程式群組的內容。
如果要建立應用程式群組,請在 appmanager 之下的註冊套裝軟體中建立目錄,如 圖 5-7 中所示。
圖 5-7 中的 <appgroup_name> 是應用程式群組的名稱。
此名稱可以是任何可允許的檔案(目錄)名稱。使用描述應用程式的名稱。
桌上管理系統提供內定應用程式群組的圖像。然而,您可能會想要提供自訂圖像。
如果您想要提供唯一的圖像給應用程式群組,您必須建立:
在應用程式管理者頂層出現的目錄的資料類型。
開啟並列印資料類型的動作。
例如,假設您想要建立稱為 Media_Tools 的應用程式群組。以下放在檔案 app_root/dt/appconfig/types/language/name.dt 中的資料類型定義指派一個唯一的圖像給應用程式群組圖像。
DATA_ATTRIBUTES Media_ToolsAppgroup { ACTION OpenInPlace,OpenNewView ICON MediaTools DESCRIPTION 連按兩下以開啟 Media_Tools \ 應用程式群組 }
DATA_CRITERIA Media_ToolsAppgroupCriteria1 { DATA_ATTRIBUTES_NAME Media_ToolsAppgroup MODE d PATH_PATTERN */appmanager/*/Media_Tools }
定義的屬性區段指定使用的圖像。定義的條件區段指定將資料類型定義為任何名為 Media_Tools 的目錄,而且此目錄是名為 appmanager 的目錄之子目錄。
圖 5-9 顯示應用程式群組名稱與資料類型定義之間的關係。資料類型定義中的 PATH_PATTERN 欄位將唯一的圖像連接至應用程式群組。
ACTION Open { ARG_TYPE Media_ToolsAppGroup TYPE MAP MAP_ACTION OpenAppGroup }
ACTION print { ARG_TYPE Media_ToolsAppGroup TYPE MAP MAP_ACTION PrintAppGroup }
OpenAppGroup 與 PrintAppGroup 動作是 /usr/dt/appconfig/types/language/dtappman.dt 中所定義的內建動作。
應用程式群組中最重要的項目就是啟動應用程式(動作圖像)的圖像。如果應用程式群組包含一組應用程式,通常每組應用程式都會有一個圖像。
除了一個或多個動作圖像以外,應用程式群組還可包含:
一個或多個讀我檔案
一個或多個範例資料檔案
樣板
使用者可以連按兩下以查看輔助說明資訊的圖像
線上援助頁
專用的前方面板控制
應用程式群組可以包含子目錄。
應用程式群組應包含啟動應用程式的圖像。如果群組供應一組應用程式,每個應用程式應該都有一個圖像。既然它們代表隱藏的動作,這些圖像就稱為 應用程式圖像 或 動作圖像。
動作圖像是藉由建立具有與其將會執行的動作相同名稱的可執行檔案所建立的:
app_root/dt/appconfig/appmanager/appgroup_name/action_name
此檔案稱為 動作檔案,因為它的目的是建立隱藏動作的視覺表示方式。
例如,如果您已建立執行 BestTextEditor 應用程式的名為 BestTextEditor 的動作,您就會執行名為 BestTextEditor 的可執行的檔案。在檔案管理者與應用程式管理者中,動作檔案將會使用動作定義中所指定的圖像影像。
圖 5-10 舉例說明動作定義、動作檔案與應用程式管理者視窗實際登錄之間的關係。
桌上管理系統提供讀我資料類型,您可以將其用於您的應用程式的讀我檔案。使用這些命名習慣用法之一:
讀我
讀我
README.*
Read.*.Me
read.*.me
READ.*.ME
在大部分的情況中,您不需要提供前方面板的控制定義;使用者可以藉由將動作圖像定位於子面板中的安裝圖像控制來將應用程式增加至前方面板。
如果您想要使用者能夠安裝行為不同於動作圖像的控制,您可能需要為您的應用程式建立一個包含控制定義的前方面板配置檔案-例如,假設控制在被監視的檔案變更的同時監視一個檔案並變更外型。
前方面板配置檔案是放在 app_root/dt/appconfig/types/language 目錄中。命名習慣用法為 name.fp。
如果您供應包含控制的配置檔案,使用者就可以藉由將 *.fp 檔案定位於子面板中的安裝圖像控制來將控制增加至子面板。
例如,以下定義可以放在應用程式群組中的前方面板配置檔案中。如果使用者將此檔案定位於子面板中的安裝圖像控制上,即在執行 BestTextEditor 應用程式的單一實例的子面板中建立控制。如果 BestTextEditor 已經在執行,視窗會移動至目前工作區中的視窗堆疊頂端。
CONTROL BestTextEditorControl { TYPE icon ICON BTEFPanel PUSH_RECALL True CLIENT_NAME BTEd PUSH_ACTION BTEditor DROP_ACTION BTEditor HELP_STRING start BestTextEditor application。 }
有關建立前方面板配置檔案的其它資訊,請參閱:
dtfpfile(4) 線上援助頁
有關註冊應用程式的範例,請參閱 "建立註冊套裝軟體的範例" 的第 8 步。
只要您已在應用程式 root 之下建立註冊套裝軟體,您就已準備好可執行實際的應用程式註冊。
應用程式註冊建立註冊套裝軟體與位於沿著桌上管理系統搜尋路徑的目錄之間的連結(請參閱 "dtappintegrate 如何整合應用程式 ")。
如果應用程式是智慧型桌上管理系統,dtappintegrate通常會自動以起始處理中的最後步驟來執行。如果它不是自動執行,或是如果您已建立配置檔案以整合非桌上管理系統智慧型應用程式,那麼您就可以人工執行 dtappintegrate。
登入為 root。
執行指令:
/usr/dt/bin/dtappintegrate -s app_root
其中 app_root 為桌上管理系統應用程式的根目錄。有關更多的資訊,請參閱dtappintegrate(1) 線上援助頁。
開啟 Desktop_Tools 應用程式群組並連按兩下重新載入應用程式。
驗證已正確地註冊應用程式:
dtappintegrate -s app_root [-t target_path ] [-l language ] [-u]
-s app_root |
所需的參數,指定應用程式在其下安裝的應用程式 root。 |
-t target_path |
選擇性的參數,內定成系統位置 /etc/dt/appconfig。指定桌上管理系統配置檔案連接的位置。您必須使用在應用程式搜尋路徑上的位置。 |
-l 語言 |
選擇性的參數,內定成所有語言。指定語言相依的桌上管理系統配置檔案來整合。 |
-u |
選擇性的參數,取消整合應用程式,刪除所有在整合期間所設定的連結。 |
dtappintegrate 的功能是在安裝的檔案與桌上管理系統尋找配置檔案的位置之間設定連結。
dtappintegrate 從註冊套裝軟體中的動作與資料類型定義檔案起,建立象徵性連結至沿著動作資料庫輔助說明搜尋路徑的整個系統的目錄。其完成是藉由建立連結自
app_root/dt/appconfig/types/language/*.dt
至
/etc/dt/appconfig/types/language/*.dt
dtappintegrate 從註冊套裝軟體中的輔助說明檔案起,建立象徵性連結至沿著輔助說明搜尋路徑的整個系統的目錄。其完成是藉由建立連結自
app_root/dt/appconfig/help/language/help_file.sdl
至
/etc/dt/appconfig/help/language/help_file.sdl
dtappintegrate 從註冊套裝軟體中的圖像檔案起,建立象徵性連結至沿著圖像搜尋路徑的整個系統的目錄。其完成是藉由建立連結自
app_root/dt/appconfig/icons/language/icon_files
至
/etc/dt/appconfig/icons/language/icon_files
如果要將應用程式的應用程式群組放在應用程式管理者的頂層中,dtappintegrate 會建立在註冊套裝軟體中的應用程式群組與沿著應用程式搜尋路徑的整個系統的位置之間的連結。其完成是藉由建立連結自目錄
app_root/dt/appconfig/appmanager/language/appgroup_name
至
/etc/dt/appconfig/appmanager/language/appgroup_name