グリフ管理 (ソース管理 VSPackage)
ソース管理 VSPackage から使用できる緊密な統合の一部として、独自のグリフを表示してソース管理下にある項目の状態を示す機能があります。
グリフ管理のレベル
状態グリフは、ソリューション エクスプローラーやクラス ビューなどで、表示されたときの項目の現在の状態を示すアイコンです。 ソース管理 VSPackage では、2 つのレベルのグリフ管理を実行できます。 グリフの選択肢を Visual Studio IDE によって提供される、定義済みのグリフのセットに制限するか、または、グリフのカスタム セットを定義して表示されるようにすることができます。
グリフの既定のセット
ソリューション エクスプローラーで項目に関連付けられている状態グリフを確認するために、プロジェクトでは、GetSccGlyph を使用してソース管理に状態グリフを要求します。 ソース管理 VSPackage では、グリフの選択肢を、IDE によって提供される定義済みのグリフに制限されたままにすることを決定できます。 この場合、VSPackage では、vsshell.idl で定義されているグリフ列挙型を表す値の配列を戻します。 詳細については、VsStateIconを参照してください。 これは、チェックインされたグリフの南京錠や、チェックアウトされたグリフのチェック マークなどの、IDE によって設定されたグリフの定義済みのセットです。
グリフのカスタム セット
ソース管理 VSPackage では、インストールされているときの固有の外観のために独自のグリフを使用できます。 新しいソース管理 VSPackage がアクティブになると、以前のソース管理 VSPackage がまだ読み込まれた状態であっても、非アクティブであれば、独自のグリフを使い始めることができます。 このモードでは、ソース管理 VSPackage では引き続き、Visual Studio と一貫した外観を維持するために既存のアイコンを使用できます (そのように選択した場合)。
SVsSccManager サービスは、VSPackage が必要に応じて実装でき、IDE によって要求されるインターフェイス IVsSccGlyphs をサポートしています。 IDE が要求を行うと、Visual Studio は次に、現在登録されているソース管理 VSPackage からこのインターフェイスを取得しようとします。 このインターフェイスが登録済みの VSPackage 内に存在する場合、カスタム グリフに対する IDE の要求は成功します。そうでない場合は、Visual Studio IDE は、既定のグリフのセットを使います。
GetCustomGlyphList メソッドは、Visual Studio によって、さまざまなソース管理状態を示す画像の一覧を取得するために使われます。 ソース管理 VSPackage は、IDE に、そのカスタム グリフの画像の一覧へのハンドルを返します。 IDE では、この時点で画像の一覧のコピーを作成し、後で表示するグリフを選択するためにそれを使用します。 この新しいインターフェイスがサポートされていないか、または IVsSccGlyphs::GetCustomGlyphList
メソッドが E_NOTIMPL
を返した場合、IDE は、Visual Studio によって提供される既定のグリフの一覧から、グリフを取得します。