アプリケーションShell部品
ImKitは、ツールや制作環境の外枠(クローム)を構成するためのホスト主導型ビルディングブロックを提供します。
AppBar、WorkspaceHeader、InspectorSection、AdvancedSection、BottomActionBar、DiagnosticsDrawer、ThemePicker などのシェル部品が含まれます。
各シェルコンポーネントは、テキストやコマンドの配列を借用(参照)してホストの現在状態を描画し、ユーザー操作が発生したときに操作リクエスト(アクション)を返します。
本ライブラリは、ドキュメント管理、Docking配置、設定の保存、Undo/Redo履歴、バックグラウンドワーカー、レンダラー、ImGui Contextなどを所有しません。すべての状態管理とライフサイクルはホスト側に委ねられています。
シェルコンポーネント一覧
Section titled “シェルコンポーネント一覧”| コンポーネント | 主な用途 | 返却値 / 動作 |
|---|---|---|
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); }}テーマとフォント
Section titled “テーマとフォント”ThemePickerは単に選択されたThemePresetを返します。ホスト側は設定ファイル等にプリセットの安定IDを記録し、フレーム処理の外側でMakeTheme/ApplyThemeを呼び出して反映します。imkit_copy_font_assets(target, destination)を使用すると、バンドルされた Inter や Noto Sans JP フォントファイルをホスト環境へコピーできます。フォントアトラスのビルドとメモリ管理はホスト側が行います。