Solaris 公用桌面环境:高级用户和系统管理员指南

定义前面板控制

用户可通过在"安装图标"控制上拉放图标来创建个人控制。

虽然这样可提供简捷的可定制性,但所提供的功能却是"前面板"控制的功能的子集。例如,使用"安装图标"控制所创建的控制无法:

前面板控制的定义

"前面板"控制定义的结构是:

CONTROL control_name
 {
   TYPE            control_type
   CONTAINER_NAME  value
   CONTAINER_TYPE  value
   other fields defining appearance and behavior}

控制类型

在控制定义中的 TYPE 字段指定了控制的基本性能。

控制 TYPE

控制性能

图标 (缺省的)

用户单击控制或在其上拉放文件时,它将运行指定的操作。

空格

用于调整控制间距的占位符。

忙灯。调用操作时,该控制闪烁 (切换图像)

客户机

"前面板"中的客户机窗口。

时钟

时钟。

日期

显示当前日期。

文件

代表文件。选择控制将运行该文件的缺省操作。

创建新控制

本节描述定义控制的一般步骤,以及如何创建各种类型的控制。

  1. 如果控制有一个 PUSH_ACTION 和/或 DROP_ACTION,则创建操作定义。这些是在用户单击控制或在其上拉放文件时运行的操作。

  2. 创建控制的图标图像文件。

    有关图标大小、名称和位置的信息,请参见"图标图像文件"

  3. 在下面的位置创建新的"前面板"配置文件:

    • 系统范围:/etc/dt/appconfig/types/language /*.fp

    • 个人:HomeDirectory /.dt/types/*.fp

  4. 在文件中添加控制定义。

  5. 保存文件。

  6. 从"工作区"菜单中选择"重启工作区管理器"。

创建被单击时运行操作的控制

使用下面的字段定义控制的性能:

创建打开文件的控制

使用下面的字段定义控制的性能:

创建作为拉放区的控制

当用户将一个文件拉放在控制上时,使用 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
 }

创建监视文件的控制

使用下面的字段定义控制的性能:

创建单一实例 (切换) 控制

单一实例控制检查由 PUSH_ACTION 启动的进程是否已在运行。如果该进程没有运行,则运行 PUSH_ACTION。如果该进程已在运行, 则将窗口移动到当前工作区窗口 stack (栈) 的顶部。

使用下面的字段定义控制的性能:

创建客户机窗口控制

客户机窗口控制是嵌入"前面板"中的应用程序窗口。例如,通过创建 xload 客户机窗口控制,可将系统负荷监测器放置在"前面板"中。

  1. 定义控制。

    使用下面的字段定义控制的性能:

    • TYPE:设置为客户机

    • CLIENT_NAME:指定要启动的客户机。

      CLIENT_NAME 的值必须与应用程序顶层窗口上的 WM_CLASS 特性中的第一个字符串 (res_name) 相匹配。有关详细信息,请参见 xprop(1) 手册页。

    • CLIENT_GEOMETRY:以像素为单位指定客户机"前面板"窗口所需的大小。

      xwininfo(1) 手册页描述如何找出以像素为单位的窗口的大小。

  2. 从"工作区"菜单中选择"重启工作区管理器"。

  3. 从终端仿真器的命令行启动客户机。

    例如,下面的控制显示了 30 乘 20 像素的负荷监测器。

    CONTROL LoadMeter  
      {  	
       TYPE		client  	
       CONTAINER_NAME				Top  
       CONTAINER_TYPE				BOX  	
       CLIENT_NAME					xload  	
       CLIENT_GEOMETRY			30x20
      }  

    如果未在会话之间保存和恢复客户机,您可能想配置控制,以便当用户单击它时启动客户机。例如,可以通过向定义添加下面的行,来配置"负荷监测器"控制,以便启动 xload

     PUSH_ACTION				StartXload

    并创建操作:

    ACTION StartXload  
      {  	
       WINDOW_TYPE				NO_STDIO  	
       EXEC_STRING				/usr/contrib/bin/X11/xload
      }

启动动画控制

可附加动画序列,它将在用户选中控制或在其上拉放对象时使用。

为了具有动画序列,控制必须:

  1. 使用 ANIMATION 组件指定动画序列:

    ANIMATION animation_name
     	  {  
    		ANIMATION	icon1				[milisecond_delay]  
    		ANIMATION	icon1				[milisecond_delay]
     		...
     	}

    其中 icon1、icon 2 等等为图标的名称,而 milisecond_delay 是动画图标之间的以毫秒为单位的时间延迟。缺省的时间延迟为二百毫秒。

  2. PUSH_ANIMATION 和/或 DROP_ANIMATION 字段添加到控制定义中。该值是 ANIMATION 序列的名称。

    例如,下面的行激励了启动 BestEditor 应用程序的控制。图标间的时间延迟为三百毫秒。该实例假定已创建了图标文件框架 1框架 2 等等。

    CONTROL BestEditor
     {
     	...
     	PUSH_ANIMATION BestEdAnimation
     	...
     }
     ANIMATION BestEdAnimation
     {
     	frame1			300
     	frame2
     	...
     }

提供前面板控制的针对项帮助

有两种提供控制帮助的方法: