Virtuoso 多窗口管理:自定义标题栏和显示样式

快速区分项目:修改CIW窗口和设计窗口标题栏的文本显示;设置 Palette(LSW) 面板显示样式

兔二思
兔二思
技术博主

系列文章目录:

  1. 修改 CIW & Library Manger 默认窗口大小

  2. 修改 Layout & Schematic Editor 默认窗口大小

  3. 调整字体大小

  4. 修正大字体导致表单文本重叠的问题

  5. CIW 窗口集成 oaScan 菜单

  6. 设置日志文件的保存位置

  7. 调整窗口标题栏的显示样式(本篇)

  8. 设置 Palette(LSW) 面板显示样式(本篇)

  9. 设置打开电路和版图的默认工具

  10. Option Form 始终显示在最顶层

  11. PDK 初始化设置( libInitCustomExit.il )

  12. 项目的初始化设置

  13. 特定工具 - Library Manager( cdsLibMgr.il )

  14. 特定工具 - Layout L / XL

  15. 特定工具 - Layout EAD


修改 CIW 窗口标题栏的文本显示

默认情况下,CIW 标题栏的文本格式通常是这样的:

( 默认格式:包含 Virtuoso 版本号和日志文件路径 )

这种统一的标题在启动多个 Virtuoso 时,难以快速定位到特定项目的 CIW 窗口**。**要解决这个问题,我们可以通过修改标题栏的名称来进行区分。比如在标题中加入项目编号 “Project_01”,名称缩写 “01”,或是与项目相关的关键词等。

以下是三个修改 CIW 窗口标题的演示示例(从简单到复杂)

设置一个固定的项目名称作为 CIW 窗口的标题

在 CIW 窗口中输入以下命令:

hiSetWindowName( hiGetCIWindow() "Project_01" )

把以上引号中的内容替换成你的项目名称即可。如果你有多个 CIW 窗口,需依次给每个窗口都执行一遍命令。

效果展示:

( CIW的标题文本已被更改为项目名 )

使用 Shell 文件中的变量作为 CIW 窗口的标题

假设在你的 Shell 配置文件(.cshrc或.cshrc)中,定义了一个名为 “Project01_NAME” 的变量来表示项目名称。你可以使用以下命令将其设为 CIW 窗口标题:

hiSetWindowName( hiGetCIWindow() getShellEnvVar("Project01_NAME") )

把以上引号中的内容替换成实际的变量名。

自动获取当前项目路径中的项目名称作为 CIW 窗口的标题

上述两种方法都需要手动设置标题,如果你想让 CIW 窗口自动显示当前项目的名称,SKILL 脚本可以帮到你。下面是一段代码示例截图(Emmm…这是AI帮我写的🤓),可以实现自动更新标题的功能:

( setProjectNameAsCIWTitle.il )

💡这段代码实现的思路是:假设我们的项目目录结构是统一的,它们都位于 “/project” 这个主目录下,其中包含各个项目的子文件夹。在这些项目目录下启动 Virtuoso 时,提取当前子文件夹的名称作为项目名,并将其设置为 CIW 窗口的标题。

下面是执行 SKILL 脚本的效果演示👇

( CIW标题栏自动更新成项目名 )

调整电路&版图设计窗口标题栏的显示样式

和 CIW 窗口一样,电路和版图的标题栏也存在同样的问题,它们的默认显示是下面这样的,最小化窗口后所有打开的设计窗口看起来都是一样的,很难区分:

( 默认格式:包含应用名称&编辑状态&库名称等 )

Virtuoso 提供了两个环境变量可以自定义它们的显示样式,包括图标名称和标题栏名称。

环境变量 “iconNameFormat” 可以用来控制图标名称,但它仅在 GNOME 桌面环境下的 RHEL 5 和 6 版本上有效,并不兼容 RHEL 7 或 KDE 桌面环境。大多数窗口管理器只支持使用 “windowNameFormat” 环境变量来控制标题栏名称,所以在这里仅介绍后者环境变量的使用方法。

命令格式

envSetVal( "designEditor.window" "windowNameFormat" 'string *"*winTitle*"* )

其中,“winTitle” 可以由以下占位符组合而成:

%a —— 表示应用名称(如”Virtuoso Layout Suite XL”)

%m —— 表示编辑状态(reading: / editing:)

%l —— 表示库名称(libname)

%c —— 表示单元名称(cellname)

%v —— 表示视图名称(view)

%x —— 表示配置信息(configuration)

系统默认的占位符组合

envSetVal( "designEditor.window" "windowNameFormat" 'string "%a %m: %l %c %v %x" )

默认格式,应用名称 %a 被排在显示顺序的首位。

自定义格式的配置示例

envSetVal("designEditor.window" "windowNameFormat" 'string "%v, Cell:%c Lib:%l - %a %m" )

调整了占位符的顺序,把视图名称 %v 置于首位。以下是这种格式生成的标题样式:

( 设计窗口标题名的新格式展示 )

📌可以把上述命令放入 .cdsinit 文件中。这样,每次启动 Virtuoso 时,设计窗口的标题将自动按照你定义的顺序显示。

设置 Palette(LSW) 窗口面板样式

Virtuoso Layout 中的 Palette 面板也支持调整样式,它提供了以下三种显示模式:

  1. Single Assistant Container(默认设置)
  • 将三个子面板整合在一个 Palette 面板中显示;

  • 适合喜欢简洁界面的用户,占用屏幕空间少;

  1. Multiple Assistant Container
  • 将三个子面板作为独立的面板,支持单独显示和隐藏;

  • 这种设置允许用户同时查看所有子面板,适合需要频繁切换不同面板的用户;

  1. Single Window Container
  • 独立窗口模式,早期 IC5141 版本的显示方式;

  • 这种模式适合使用多显示器的用户,因为可以自由移动 Palette 窗口到其他屏幕;

具体的显示效果,看图:

( Palette 面板的三种显示模式 )

要设置 Palette 的默认显示模式,需要在你的 Shell 配置文件中添加相应的环境变量。以下是三种显示模式的设置命令(选其一):

setenv CDS_PALETTE_TYPE SingleAssistant
setenv CDS_PALETTE_TYPE MultiAssistant
setenv CDS_PALETTE_TYPE SingleWindow

Layer Set Manager 显示方式设置

如果你选择了 MultiAssistant 模式,还可以进一步设置 ——  Layer Set Manager**(图层集管理器)也设成一个独立的面板。**在 .cdsinit 文件中添加以下命令实现:

envSetVal( "layout" "pteLSManagerAsAssistant" 'boolean t )

效果展示:

( Layer Set Manager 可以从 Assistants 下拉菜单中打开)

另外,图层管理器在 Palette 面板中默认是不启用的。需要我们在 Palette 面板右键选择 Show Tools - Layer Set Manager 手动开启。从 IC6.1.8 ISR24 版本开始,可以通过以下变量在 LSW 中默认启用图层集管理器:

envSetVal( "layout" "pteShowLSManager" 'boolean t )

效果展示:

( 启动时默认开启 Layer Set Manager,不用右键再去选了 )

本篇完。系列文章陆续更新中……

⋅ END ⋅