55 lines
2.0 KiB
C++
55 lines
2.0 KiB
C++
#include "UI_Layout.hpp"
|
|
|
|
// UI布局
|
|
void UI_Layout()
|
|
{
|
|
// 配置窗口绘制位置为Dear ImGUI生成的主窗口
|
|
const ImGuiViewport *viewport = ImGui::GetMainViewport();
|
|
// 下一个窗体绘制到主窗体位置
|
|
ImGui::SetNextWindowPos(viewport->WorkPos);
|
|
// 下一个窗体绘制为主窗体大小
|
|
ImGui::SetNextWindowSize(viewport->WorkSize);
|
|
// 设置下一个焦点窗体为主窗体
|
|
ImGui::SetNextWindowViewport(viewport->ID);
|
|
|
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); // 绘制风格栈压入窗口圆角为0
|
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); // 绘制风格栈压入窗体边框宽度为0
|
|
|
|
// 窗体选项配置
|
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_None;
|
|
// 设置窗体相关属性,无标题栏,无折叠标志,不可重塑大小,不可移动
|
|
window_flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove;
|
|
// 设置窗体相关属性,收到焦点时不移动到前台,禁用焦点事件
|
|
window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
|
|
// 设置窗体相关属性,不允许停靠
|
|
window_flags |= ImGuiWindowFlags_NoDocking;
|
|
|
|
ImGui::Begin("Main Panel", NULL, window_flags); // 创建Label
|
|
ImGui::PopStyleVar(2); // 退出绘制风格栈中的设置项
|
|
{
|
|
|
|
ImNodes::BeginNodeEditor();
|
|
{
|
|
|
|
ImNodes::BeginNode(1);
|
|
|
|
ImNodes::BeginNodeTitleBar();
|
|
ImGui::TextUnformatted("output node");
|
|
ImNodes::EndNodeTitleBar();
|
|
|
|
ImGui::Text("Test Format %%d :%d", 123);
|
|
|
|
ImGui::Button("Click");
|
|
|
|
ImGui::SameLine();
|
|
static bool check = false;
|
|
ImGui::Checkbox("", &check);
|
|
|
|
ImNodes::EndNode();
|
|
}
|
|
ImNodes::EndNodeEditor();
|
|
}
|
|
ImGui::End();
|
|
|
|
ImGui::ShowDemoWindow(nullptr);
|
|
} |