本文へスキップ

実例とレシピ

本ドキュメントは、Galleryで動いている画面から、対応する公開ヘッダー・CMakeターゲット・コード実装・詳細ガイドを逆引きするためのクイックリファレンスです。


機能モジュール include ヘッダー / CMake ターゲット 典型的な呼び出しパターン Gallery画面 / 実装コード / 詳細ガイド 責務と制約事項
基本コンポーネント <imkit/components.h>
imkit::imkit
imkit::ActionButton("Apply", imkit::ActionVariant::Primary);
状態とIDはホスト側で所有。
Basic controls
gallery.cpp
コンポーネント詳細
Dear ImGui 標準の入力契約を遵守。文字列やラベルは描画呼び出しの間だけ借用されます。
テーマ / アイコン <imkit/theme.h>
<imkit/icons.h>
imkit::imkit
imkit::MakeTheme(...) でテーマを生成し、毎フレーム ApplyTheme() を呼び出す。 Icons、上部 Appearance
gallery.cpp
テーマ / アイコン
テーマの保持・保存はホストの責務。アイコンアトラスのテクスチャ転送もホストが行います。
ワークフロー / シェル <imkit/workflow.h>
<imkit/components.h>
imkit::imkit
フレーム内で部品を描画し、返された操作要求(リクエスト)をホストでディスパッチ。 Workspace shell
workflow_pages.cpp
ワークフロー
UI部品のみを提供。バックグラウンドジョブやナビゲーションポリシーはホストが実装します。
ノードエディタ <imkit/node_editor.h>
imkit::node_editor
グラフスナップショットを渡し、BeginEditor / DrawNodes / EndEditor を呼び出す。 Node Editor Gallery
examples/node_editor/main.cpp
ノードエディタ
グラフデータ構造、Undo/Redo、ノード評価はホストが管理。付属のMaterial Graphはサンプル実装です。
エディタスイート <imkit/editor_suite.h>
imkit::editor_suite
ホストが所有する Provider とイベントバッファを渡して描画。 Editor Core、Video、CG
editor_workspaces.cpp
エディタスイート / エディタAPI
Video は動画のデコード・再生を行わず、CG も汎用3Dレンダラではありません(UIフレームのみ提供)。
タイムライン編集 <imkit/video.h>
imkit::video
TimelineEditingProvider を通じて描画し、クリップ移動やトリミング要求を受け取る。 Video
editor_workspaces.cpp
タイムライン編集
クリップ同士の衝突判定、履歴のUndo、保存はホスト側の責務です。
ウィンドウフレーム <imkit/window_frame.h>
imkit::imkit
(任意: OS別アダプタ)
タイトルバー領域を描画し、最大化/最小化/ドラッグ要求をネイティブOSへ通知。 Window frame
gallery.cpp
ウィンドウフレーム
コア描画はウィンドウを所有しません。Win32/Cocoa統合はオプションのターゲットです。

#include <imkit/imkit.h>
#include <imgui.h>
// ホスト側のフレームループ内:
ImGui::NewFrame();
if (imkit::ActionButton("変更を適用", imkit::ActionVariant::Primary)) {
// ユーザーがボタンを押したときの処理
hostApp.ApplyChanges();
}
ImGui::Render();

詳細なオーバーロード一覧は 公開API一覧、依存要件は 依存関係 を参照してください。 また、CMakeによる最小限の組み込みサンプルは 導入ガイド および examples/consumer で確認できます。

Galleryの Workspace では、WorkspaceTabs、HierarchyGroupHeader/HierarchyRow、BeginInspectorCard/EndInspectorCard、SettingToggleRow、DragVector3WithUnit、ChoiceGroup、CompactActionRowを組み合わせて操作できます。要求を受けてGallery側の値を更新する実装は、既存のImGuiフレームでも利用できます。3.2の宣言と寿命の規則を参照してください。321アイコンと13テーマを利用でき、Contextやアプリのフレーム管理は引き続きホストが担当します。