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

创建新控制

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

  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  
    	  {  		
       icon_image	[delay]  
    		icon_image	[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  
       ...
      }  

提供前面板控制的项目帮助

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