feat: scaffolding dag_engine_ui (issue 0095 step 2)
ImGui app shell: - main.cpp con fn::run_app(cfg, render), panel Main placeholder. - CMakeLists.txt + fn_framework + fn_table_viz opt-in. - app.md frontmatter base. Capas HTTP/WS/tabs en commits siguientes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
add_imgui_app(dag_engine_ui
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
target_include_directories(dag_engine_ui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
# fn_table_viz: provides data_table::render(), viz_render, TQL engine, Lua, LLM.
|
||||||
|
# Guard keeps the app compilable in builds where vendor/lua is absent.
|
||||||
|
if(TARGET fn_table_viz)
|
||||||
|
target_link_libraries(dag_engine_ui PRIVATE fn_table_viz)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set_target_properties(dag_engine_ui PROPERTIES WIN32_EXECUTABLE TRUE)
|
||||||
|
endif()
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
name: dag_engine_ui
|
||||||
|
lang: cpp
|
||||||
|
domain: tools
|
||||||
|
description: "Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS."
|
||||||
|
tags: [imgui]
|
||||||
|
uses_functions:
|
||||||
|
# Uncomment when using data_table::render() — provided via fn_table_viz:
|
||||||
|
# - data_table_cpp_viz
|
||||||
|
# - viz_render_cpp_viz
|
||||||
|
# - compute_stage_cpp_core
|
||||||
|
# - compute_pipeline_cpp_core
|
||||||
|
# - compute_column_stats_cpp_core
|
||||||
|
# - auto_detect_type_cpp_core
|
||||||
|
# - tql_emit_cpp_core
|
||||||
|
# - tql_apply_cpp_core
|
||||||
|
# - lua_engine_cpp_core
|
||||||
|
# - join_tables_cpp_core
|
||||||
|
# - tql_to_sql_cpp_core
|
||||||
|
# - llm_anthropic_cpp_core
|
||||||
|
uses_types: []
|
||||||
|
framework: "imgui"
|
||||||
|
entry_point: "main.cpp"
|
||||||
|
dir_path: "cpp/apps/dag_engine_ui"
|
||||||
|
repo_url: "https://gitea.organic-machine.com/dataforge/dag_engine_ui"
|
||||||
|
---
|
||||||
|
|
||||||
|
# dag_engine_ui
|
||||||
|
|
||||||
|
Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd cpp && cmake --build build --target dag_engine_ui -j
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./cpp/build/dag_engine_ui
|
||||||
|
```
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#include <imgui.h>
|
||||||
|
#include "app_base.h"
|
||||||
|
#include "core/panel_menu.h"
|
||||||
|
#include "core/icons_tabler.h"
|
||||||
|
#include "core/logger.h"
|
||||||
|
// #include "viz/data_table.h" // uncomment to enable data_table::render() panel
|
||||||
|
|
||||||
|
// Toggles de paneles (visibles desde el menu View del menubar canonico)
|
||||||
|
static bool g_show_main = true;
|
||||||
|
|
||||||
|
static void draw_main() {
|
||||||
|
if (!ImGui::Begin(TI_HOME " Main", &g_show_main)) {
|
||||||
|
ImGui::End();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ImGui::TextUnformatted("Hello from dag_engine_ui");
|
||||||
|
ImGui::End();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render() {
|
||||||
|
// El framework dibuja menubar (View/Layouts/Settings/About) y un
|
||||||
|
// DockSpaceOverViewport central (auto_dockspace=true por defecto).
|
||||||
|
// Aqui solo se dibujan los paneles propios de la app.
|
||||||
|
if (g_show_main) draw_main();
|
||||||
|
|
||||||
|
// === Data panel (uncomment to enable) ===
|
||||||
|
// static data_table::State data_state;
|
||||||
|
// static std::vector<data_table::TableInput> data_tables; // populate from your source
|
||||||
|
// data_table::render("main_data", data_tables, data_state);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int /*argc*/, char** /*argv*/) {
|
||||||
|
static fn_ui::PanelToggle panels[] = {
|
||||||
|
{ "Main", nullptr, &g_show_main },
|
||||||
|
};
|
||||||
|
|
||||||
|
fn::AppConfig cfg;
|
||||||
|
cfg.title = "dag_engine_ui — Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS.";
|
||||||
|
cfg.about = { "dag_engine_ui", "0.1.0", "Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS." };
|
||||||
|
cfg.log = { "dag_engine_ui.log", 1 };
|
||||||
|
cfg.panels = panels;
|
||||||
|
cfg.panel_count = sizeof(panels) / sizeof(panels[0]);
|
||||||
|
|
||||||
|
return fn::run_app(cfg, render);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user