信息化 频道

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

  3.4.2菜单文件

在\SAMPLES\NO7\Servers\DemoText目录下,我们可以找到一个文件DEMOTEXT.RCS,如果您仔细一些,您可以在Protel的安装目录如D:\Program Files\Design Explorer 99 SE\System(我的机器)下,发现有很多扩展名称为INS和RCS的文件,如ADVPCB.INS和advpcb.rcs,Advsch.ins和Advsch.rcs等等,每一个服务器都有INS文件和其对应的RCS文件。这些RCS文件就是服务器的菜单,即当某种服务器在当前被激活时,如当前设计原理图,则Protel系统显示设计原理图所用的菜单,如果当前设计印制板,则Protel系统显示设计印制板所用的菜单,因此,只要是一个独立功能的服务器,一般都会提供INS文件和RCS文件,在Protel中设计中,当这种服务器被激活时,就把此RCS文件中的内容作为菜单显示出来。我们把此服务器作为一个文本编辑器服务器,因此,Demo Text Editor也不例外,也有RCS文件,那就是DEMOTEXT.RCS。

下面,让我们来看一看DEMOTEXT.RCS的内容。

Menu DemoTextMenu //EditorLongMenu所定义的菜单名称

Begin

Popup '&File'

Begin

MenuItem '&New'Client:CreateNewDocument

MenuItem '&Open...'Client:OpenDocument

MenuItem '&Close'Client:CloseDocument

MenuItem SEPARATOR

MenuItem '&Save'Client:SaveDocument

MenuItem 'Save &As...'Client:SaveDocumentAs

MenuItem 'Save A&ll'Client:SaveAllDocuments

MenuItem SEPARATOR

MenuItem 'Setup P&rinter...'DemoText:SetupPrinter

MenuItem '&Print'DemoText:PrintDocument

MenuItem SEPARATOR

MenuItem 'Send...'Client:SendDocumentByMail

MenuItem 'Send All...'Client:SendAllDocumentsByMail

MenuItem SEPARATOR

MenuItem 'E&xit'Client:QuitFromEDAClient

End

Popup '&Edit'

Begin

MenuItem '&Undo\tAlt+BkSp'DemoText:Undo

MenuItem '&Redo\tCtrl+BkSp'DemoText:Redo

MenuItem SEPARATOR

MenuItem 'Cu&t\tShift+Del'DemoText:Cut

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

MenuItem '&Paste\tShift+Ins'DemoText:Paste

MenuItem 'C&lear\tCtrl+Del'DemoText:Clear

End

Popup '&View'

Begin

MenuItem 'Pro&ject Manager'Client:ToggleDocumentManager

MenuItem 'Pane&l'Client:TogglePanel

MenuItem '&Status Bar'Client:ToggleClientStatusBar

MenuItem 'Co&mmand Status'Client:ToggleProcessStatusBar

MenuItem '&EDA Editor Tabs''Client:ConfigureEDAEditorTabs(Show=Toggle)'

MenuItem '&Main Toolbar''Client:CustomizeResources(ToggleToolbar=TextTools)'

End

Popup '&Options'

Begin

MenuItem '&Preferences...'DemoText:SetupPreferences

End

Popup '&Window'

Begin

MenuItem '&Tile\tShift+F5'Client:TileAllOpenDocuments

MenuItem '&Cascade\tShift+F4'Client:CascadeAllOpenDocuments

MenuItem 'Arrange &Icons'Client:WindowArrangeIcons

MenuItem 'Close &All'Client:CloseAllOpenDocuments

End

Popup '&Help'

Begin

MenuItem '&Contents''Client:RunHelpTopic(FileName=Protel.hlp|Topic=contents)'

MenuItem 'Using &Help''Client:RunApplication(Application=Winhelp.exe | Parameters=Winhelp.hlp)'

MenuItem SEPARATOR

MenuItem '&Search for Help on...'Client:RunHelpTopic

MenuItem '&Reference''Client:RunHelpTopic(FileName=Protel.hlp|Topic=reference_pop)'

MenuItem '&Macros''Client:RunHelpTopic(FileName=macroref.hlp|Topic=contents)'

MenuItem SEPARATOR

MenuItem '&About...'Client:HelpAbout

End

End

HotKeyTableDemoTextHotKeyTable //EditorHotKeyTable所定义的快捷键菜单项名称

Begin

Key DemoText:RedoBackspaceCtrlEndKey

Key DemoText:UndoBackspaceAltEndKey

Key DemoText:PasteInsertShiftEndKey

Key DemoText:CopyInsertCtrlEndKey

Key DemoText:CutDeleteShiftEndKey

Key DemoText:ClearDeleteCtrlEndKey

Key Client:RunHelpTopicF1EndKey

Key Client:TileAllOpenDocumentsF4ShiftEndKey

Key Client:CascadeAllOpenDocumentsF5ShiftEndKey

End

Toolbar DemoTextToolBar 'Fixed Top' 1 1 //EditorToolbar所定义的工具条名称

Begin

Button 'PROJMAN.BMP'Client:ToggleDocumentManager

Button 'SCHPANEL.BMP' Client:TogglePanel

Separator

Button 'FILEOPEN.BMP' Client:OpenDocument

Button 'FILESAVE.BMP' Client:SaveDocument

Button 'PRINT.BMP'DemoText:SetupPrinter

Separator

Button 'CUT.BMP'DemoText:Cut

Button 'PASTE.BMP'DemoText:Paste

Separator

Button 'UNDO.BMP'DemoText:Undo

Button 'REDO.BMP'DemoText:Redo

Button 'HELP.BMP'Client:RunHelpTopic

Separator

Button 'SIMPROBE.BMP' Client:CrossProbe

End

在此RCS中,我们可以找到INS中所定义的三项内容,及EditorLongMenu所定义的菜单名称、EditorHotKeyTable所定义的快捷键菜单项名称和EditorToolbar所定义的工具条名称。

RCS中定义了“File”、“Edit”、“View”、“Options”、“Window”、“Help” 六个菜单项,每个菜单中分别再定义一些子菜单项,有一些菜单项功能是由Client服务器进程提供的,如“File”菜单项下“New”子菜单项就是由Client服务器CreateNewDocument进程提供的,有一些菜单项是由Demo Text服务器提供的,如“File”菜单项下“'Setup P&rinter...”子菜单项就是由服务器DemoText提供的SetupPrinter进程提供的。

此至,我们把Demo Text服务器分析完成,希望您能举一反三,设计出更多更好的服务器。(e-works)

0
相关文章