本文へスキップ

アプリケーションShell部品

ImKitは、ツールや制作環境の外枠(クローム)を構成するためのホスト主導型ビルディングブロックを提供します。 AppBar、WorkspaceHeader、InspectorSection、AdvancedSection、BottomActionBar、DiagnosticsDrawer、ThemePicker などのシェル部品が含まれます。

各シェルコンポーネントは、テキストやコマンドの配列を借用(参照)してホストの現在状態を描画し、ユーザー操作が発生したときに操作リクエスト(アクション)を返します。

本ライブラリは、ドキュメント管理、Docking配置、設定の保存、Undo/Redo履歴、バックグラウンドワーカー、レンダラー、ImGui Contextなどを所有しません。すべての状態管理とライフサイクルはホスト側に委ねられています。

コンポーネント 主な用途 返却値 / 動作
AppBar 最上部のヘッダーバー(アプリ名、プロジェクト名、状態、コマンド一覧) クリックされたコマンドのリクエスト
WorkspaceHeader ワークスペース切り替えやビュー操作タブ 選択されたタブのリクエスト
InspectorSection プロパティインスペクター内の折りたたみ可能なグループ枠 開閉状態の維持・コンテンツ描画
AdvancedSection 詳細設定用のトグルセクション(通常は折りたたみ) 開閉トグル要求
BottomActionBar 最下部のステータス行・実行ボタン群(OK/キャンセル/進行状況など) 押下されたアクション
DiagnosticsDrawer ログや警告、エラー情報を表示する下部ドロワー 開閉要求・ログ描画
ThemePicker テーマプリセットを選択するUI 選択されたテーマプリセット
#include <imkit/imkit.h>
// AppBar の描画とアクションディスパッチ
void RenderAppHeader(MyAppState& state) {
std::vector<imkit::CommandItem> commands = {
{"file_save", "保存", true, "Ctrl+S"},
{"file_export", "エクスポート", state.hasSelection, ""}
};
imkit::AppBarView view{
"MyStudio", // アプリ名
"scene_01.proj", // プロジェクト名
"READY", // モード・バッジ
"変更なし", // ステータス
false, // 変更フラグ (dirty)
imkit::FeedbackKind::Success,
commands
};
if (auto action = imkit::AppBar("main_app_bar", view, myToolbar, myOptions)) {
DispatchAction(action);
}
}
  • ThemePicker は単に選択された ThemePreset を返します。ホスト側は設定ファイル等にプリセットの安定IDを記録し、フレーム処理の外側で MakeTheme / ApplyTheme を呼び出して反映します。
  • imkit_copy_font_assets(target, destination) を使用すると、バンドルされた Inter や Noto Sans JP フォントファイルをホスト環境へコピーできます。フォントアトラスのビルドとメモリ管理はホスト側が行います。