Virtuoso 多窗口管理:自定义标题栏和显示样式
快速区分项目:修改CIW窗口和设计窗口标题栏的文本显示;设置 Palette(LSW) 面板显示样式
系列文章目录:
-
修改 CIW & Library Manger 默认窗口大小
-
修改 Layout & Schematic Editor 默认窗口大小
-
调整字体大小
-
修正大字体导致表单文本重叠的问题
-
CIW 窗口集成 oaScan 菜单
-
设置日志文件的保存位置
-
调整窗口标题栏的显示样式(本篇)
-
设置 Palette(LSW) 面板显示样式(本篇)
-
设置打开电路和版图的默认工具
-
Option Form 始终显示在最顶层
-
PDK 初始化设置( libInitCustomExit.il )
-
项目的初始化设置
-
特定工具 - Library Manager( cdsLibMgr.il )
-
特定工具 - Layout L / XL
-
特定工具 - Layout EAD
修改 CIW 窗口标题栏的文本显示
默认情况下,CIW 标题栏的文本格式通常是这样的:
这种统一的标题在启动多个 Virtuoso 时,难以快速定位到特定项目的 CIW 窗口**。**要解决这个问题,我们可以通过修改标题栏的名称来进行区分。比如在标题中加入项目编号 “Project_01”,名称缩写 “01”,或是与项目相关的关键词等。
以下是三个修改 CIW 窗口标题的演示示例(从简单到复杂)
设置一个固定的项目名称作为 CIW 窗口的标题
在 CIW 窗口中输入以下命令:
hiSetWindowName( hiGetCIWindow() "Project_01" )
把以上引号中的内容替换成你的项目名称即可。如果你有多个 CIW 窗口,需依次给每个窗口都执行一遍命令。
效果展示:
使用 Shell 文件中的变量作为 CIW 窗口的标题
假设在你的 Shell 配置文件(.cshrc或.cshrc)中,定义了一个名为 “Project01_NAME” 的变量来表示项目名称。你可以使用以下命令将其设为 CIW 窗口标题:
hiSetWindowName( hiGetCIWindow() getShellEnvVar("Project01_NAME") )
把以上引号中的内容替换成实际的变量名。
自动获取当前项目路径中的项目名称作为 CIW 窗口的标题
上述两种方法都需要手动设置标题,如果你想让 CIW 窗口自动显示当前项目的名称,SKILL 脚本可以帮到你。下面是一段代码示例截图(Emmm…这是AI帮我写的🤓),可以实现自动更新标题的功能:
💡这段代码实现的思路是:假设我们的项目目录结构是统一的,它们都位于 “/project” 这个主目录下,其中包含各个项目的子文件夹。在这些项目目录下启动 Virtuoso 时,提取当前子文件夹的名称作为项目名,并将其设置为 CIW 窗口的标题。
下面是执行 SKILL 脚本的效果演示👇
调整电路&版图设计窗口标题栏的显示样式
和 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 面板也支持调整样式,它提供了以下三种显示模式:
- Single Assistant Container(默认设置)
-
将三个子面板整合在一个 Palette 面板中显示;
-
适合喜欢简洁界面的用户,占用屏幕空间少;
- Multiple Assistant Container
-
将三个子面板作为独立的面板,支持单独显示和隐藏;
-
这种设置允许用户同时查看所有子面板,适合需要频繁切换不同面板的用户;
- Single Window Container
-
独立窗口模式,早期 IC5141 版本的显示方式;
-
这种模式适合使用多显示器的用户,因为可以自由移动 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 )
效果展示:
另外,图层管理器在 Palette 面板中默认是不启用的。需要我们在 Palette 面板右键选择 Show Tools - Layer Set Manager 手动开启。从 IC6.1.8 ISR24 版本开始,可以通过以下变量在 LSW 中默认启用图层集管理器:
envSetVal( "layout" "pteShowLSManager" 'boolean t )
效果展示:
本篇完。系列文章陆续更新中……
⋅ END ⋅