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

源代码管理的 VSPackages 可用的深度集成的一部分是能够显示其自己的图标,以指示源代码管理下项目的状态。

字形控制的层级

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

默认标志符号集

若要确定与解决方案资源管理器中的项关联的状态图标,项目使用GetSccGlyph从源代码管理请求状态图标。 源代码管理 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 Studio 使用 GetCustomGlyphList 方法来获取显示不同版本控制状态的图像列表。 源代码控制 VSPackage 返回自定义图标的映像列表句柄给 IDE。 IDE 此时会创建图像列表的副本,稍后使用它选择要显示的字形。 如果不支持新接口或 IVsSccGlyphs::GetCustomGlyphList 方法返回 E_NOTIMPL,IDE 将从 Visual Studio 提供的默认标志符号列表中获取其标志符号。