字形控制(源代码管理 VSPackage)

源代码管理 VSPackages 可用的深度集成的一部分是能够显示自己的标志符号来指示源代码管理下项的状态。

字形控件级别

状态字形是一个图标,指示显示时项的当前状态,例如在解决方案资源管理器类视图中。 源代码管理 VSPackage 可以练习两个级别的字形控制。 它可以将字形的选择限制为 Visual Studio IDE 提供的预定义字形集,也可以定义要显示的自定义字形集。

默认标志符号集

若要确定与解决方案资源管理器项关联的状态标志符号,项目使用 <a0/a0> 从源代码管理请求状态标志符号。 源代码管理 VSPackage 可能会决定将字形的选择限制为 IDE 提供的预定义字形。 在这种情况下,VSPackage 会传回一个值数组,这些值表示在 vsshell.idl定义的字形枚举。 有关详细信息,请参阅 VsStateIcon。 这是 IDE 设置的预定义标志符号集,例如检查内字形的挂锁,以及检查外字形的检查标记。

自定义字形集

源代码管理 VSPackage 可以在安装时使用自己的标志符号来获得独特的外观。 当新的源代码管理 VSPackage 处于活动状态时,即使以前的源代码管理 VSPackage 仍在加载但处于非活动状态,它也应该能够开始使用自己的标志符号。 在此模式下,源代码管理 VSPackage 仍可以使用现有图标,以便在选择时保持与 Visual Studio 保持一致的外观。

该服务 SVsSccManager 支持一个接口, IVsSccGlyphsVSPackage 可以选择实现该接口,IDE 会要求该接口。 当 IDE 发出请求时,Visual Studio 将反过来尝试从当前注册的源代码管理 VSPackage 获取此接口。 如果接口存在于已注册的 VSPackage 中,则 IDE 对自定义标志符号的请求成功;否则,Visual Studio IDE 使用其默认标志符号集。

Visual GetCustomGlyphList Studio 使用该方法获取显示各种源代码管理状态的图像列表。 源代码管理 VSPackage 将返回 IDE,该图形的自定义标志符号的映像列表的句柄。 IDE 此时会创建图像列表的副本,稍后使用它选择要显示的字形。 如果不支持新接口或 IVsSccGlyphs::GetCustomGlyphList 方法返回 E_NOTIMPL,IDE 将从 Visual Studio 提供的默认标志符号列表中获取其标志符号。