·语法定义
============
<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文件的热键表中。在理论上的没有限制子菜单的深度,也就是说,子菜单可以有一个下级子菜单,下级子菜单还可以有下级子菜单,等等。