Files
dbgui/src/frontend/frontend.h

56 lines
1.4 KiB
C++

#pragma once
#include <vector>
#include <string>
#include <optional>
#include <cstdint>
#include <memory>
#include <cstring>
#define IMGUI_INCLUDE_IMGUI_USER_H
#include "imgui.h"
#include "frontend/target.h"
#include "backend/debug_backend.h"
#include "frontend/window.h"
namespace dbgui::frontend
{
struct Frontend
{
Frontend();
void run_frame();
std::optional<Target> target = {};
ImGuiID dock_id = 0;
uint64_t window_id = 0;
private:
void draw_header();
void draw_open_popup();
void draw_status();
void handle_msgs();
void handle_state_change(const BackToFront::StateChange &);
void handle_proc_info(BackToFront::InitialProcessInfo &&);
void handle_reg_change(const BackToFront::RegsChanged &);
void handle_thread_remove(const BackToFront::ThreadRemoved &);
void handle_thread_change(BackToFront::ThreadChange &&);
void handle_frame_remove(const BackToFront::FrameRemoved &);
void handle_frame_change(BackToFront::FrameChanged &&);
bool _draw_second = false;
bool _draw_metric_window = false;
bool _draw_stack_tool = false;
bool _draw_demo_window = false;
bool _draw_open_popup = false;
ImGuiID _open_popup_id = 0;
std::vector<char> _open_popup_name_buf = {};
bool _open_popup_stop_at_entry = false;
std::vector<Window> _windows = {};
};
} // namespace dbgui::frontend