信息化 频道

<连载>Protel二次开发从入门到精通

·语法定义

============

<MenuItem> = <Kind> | <Name> | <Action> | <ReferencePosition> | <ReferenceItem>

<Description> | <SubMenu>

<Kind> = Kind <KindMenu>

<KindMenu> = Menu | Toolbar | HotkeyTable

<Name> = Name <String>

<Action> = Action <ActionMenu>

<ActionMenu> = Add | Delete

<ReferencePosition> = ReferencePosition <ReferencePositionMenu>

<ReferencePositionMenu> = End | Begin | Before | After

<ReferenceItem> = ReferenceItem <ReferenceItemMenu>

<ReferenceItemMenu> = <MenuTitle>

<MenuTitle> = <String>

<Description> = <String>

<SubMenu> =

Begin

<SubMenuItem>

...

End

<SubMenuItem> = <Separator> | <MenuTitle> <Process Description>| <Separator>

<Process Description> = <ServerName> : <ProcessId>

<Separator> = Separator

<Servername> = <String>

<ProcessId> = <String>

<String> = <Char>

<Char> = a | b | ... | z | A | B | ... | Z | 0 | 1 | ... | 9

<Number> = <Digit>

<Digit> = 0 | 1 | 2 ... | 9

·资源文件的在进程启动赋值语义

标识符

 

描述

 

Kind

 

种类

 

此标识符是进程启动器,其映射到一个菜单项,一个工具条或热键。可用的种类参数有:Menu, Toolbar HotKeyTable

 

Name

 

名称

 

此标识符是进程启动器准备连接到的编辑器名称。可用的名称参数有:“ALL”、“Current”、或指定文档编辑器例如PCBMenu

 

Action

 

动作

 

此标识是删除或增加新的菜单项动作。一个菜单项能包含一个进程或者一个分隔符,此分隔符插入一根横线到菜单中。可用的动作参数有:“Add”或“Delete”。

 

ReferencePosition

 

参考位置

 

此标识符是新菜单项的位置,并不影响被参考的菜单项。

 

ReferenceItem

 

参考项

 

此标识符是参考菜单项,是一个在文档编辑器中已存在的菜单项。

 

MenuTitle

 

菜单标题

 

此标识符实际上是将出现或已出现在服务器菜单条的菜单项。

 

&

 

此标识符插入一个字母在菜单项前,制作成为Windows菜单或子菜单的热键。

 

ServerName

 

服务器名称

 

此标识符必须为一个已安装的EDA服务器名称。一般地它将要么是您的服务器名称,或者设计资源管理器客户端组件名称。偶尔情况下,一些服务器想要能够来调用由其它服务器提供的进程,但这种情况很少见。

 

ProcessID

 

进程ID

 

此标识符必须为在相应的INS文件中注册的一个进程ID号之一。如果不是,客户端将不启动进程,并且没有任何事件或动作发生。

 

这里有一个较适合的例子来说明,例子来自“FileFind”服务器资源文件“FileFind.rcs”。

UpdateResource

Begin

KindHotKeyTable

NameNoDocument

ActionAdd

ReferencePositionBefore

ReferenceItem'Client:RunDesignExplorerSysCommand(Command=NextTab)' *

Description

Begin

Key FileFind:FindFileF3EndKey

End

End

UpdateResource

Begin

KindMenu

NameFolderMenu

ActionAdd

ReferencePositionAfter

ReferenceItem'&Delete'

Description

Begin

MenuItem SEPARATOR

MenuItem '&FindFile''FileFind:FindFile'

MenuItem SEPARATOR

End

End

  3.6.2在RCS文件中菜单的语法

菜单条目资源文件的语法如下所示:

·菜单结构

============================

MENU '<MenuName>'

BEGIN

POPUP <MenuItemOrSubMenu>

...

END

MenuItemOrSubMenu表示菜单名称。

·菜单的语法定义

============

<MenuName> = <String>

<MenuItemOrSubMenu> = <MenuItem> | <Separator> | <SubMenu>

<MenuItem> = MenuItem '<ItemName>' <ProcessDescription>

<Separator> = MenuItem SEPARATOR

<SubMenu> =

POPUP '<SubMenuName>'

BEGIN

<MenuItemOrSubMenu>

...

END

<SubMenuName> = <MenuTitle> | <MenuTitle> {<HotKey>}

<MenuTitle> = <String>

<ItemName> = <String>

<HotKey> = <Char>

<ProcessDescription> = <ServerName>:<ProcessID> | '<ServerName>:<ProcessID><ParameterList>'

<ParameterList> =(<Parameter>) |(<Parameter> | <Parameter> ...)

<Parameter> = <ParameterName> = <ParameterValue>

<ParameterName> = <String>

<ParameterValue> = <String>

<ServerName> = <String>

<ProcessID> = <String>

<String> = <Char> ...

<Char> = a | b | ... | z | A | B | ... | Z | 0 | 1 | ... | 9 | & | \ | sp

·RCS文件菜单条目的语义描述如下:

标识符

 

描述

 

MenuName

 

菜单名称

 

此标识符是在INS文件中规定的菜单名称(从服务器设计文件产生)

 

MenuTitle

 

菜单标题

 

此标识符是菜单标题,将出现在菜单条,或在某些情况下作为一种子菜单的父菜单项。

 

&

 

此标识符插入一个字母到菜单条目前,将使此字母成为菜单项或子菜单的Windows的热键。

 

Key

 

 

此标识符是一个单个的字符,将使设计资源管理器弹出菜单项,无论在何时,只要此键被键入,如当前无进程在活动,就会弹出菜单项。

 

HotKey

 

热键

 

此标识符是一个单个的字符,设计资源管理器将关联子菜单,所以无论什么时候,如无进程在活动,键入此键将弹出子菜单。

 

ItemName

 

项目名称

 

此标识符是一个字符串,将出现在菜单或子菜单上作为描述。

 

\t

 

此标识符被使用来增加热键描述到菜单条目。

 

ServerName

 

服务器名称

 

此标识符必须为一个已安装的EDA服务器名称。一般地它将是您的服务器名称,或者是设计资源管理器客户端组件的名称。偶尔情况下,一些服务器想要能够来调用被其它服务器提供的进程,但这种情况少见。

 

ProcessID

 

进程ID

 

此标识符必须为在相应的INS文件中注册的一个进程ID号之一。如果不是,客户端将不启动进程,并且没有任何事件或动作发生。

 

例如

MenuItem '&Copy\tCtrl+Ins'Sch:Copy

此例子将增加一个菜单项来调用原理图编辑器的Copy命令,在菜单上相同行会有“Ctrl+Ins”文本串,如果“C”在此菜单中是唯一快捷键键值,在激活菜单后键入“C”将直接选择到此菜单项并激活Copy命令,“Ctrl+Ins”热键必须被定义到在RCS文件的热键表中。在理论上的没有限制子菜单的深度,也就是说,子菜单可以有一个下级子菜单,下级子菜单还可以有下级子菜单,等等。

0
相关文章