backend-infra-engineer: Release v0.3.2 snapshot
This commit is contained in:
103
src/app/editor/agent/agent_ui_theme.h
Normal file
103
src/app/editor/agent/agent_ui_theme.h
Normal file
@@ -0,0 +1,103 @@
|
||||
#ifndef YAZE_APP_EDITOR_AGENT_AGENT_UI_THEME_H
|
||||
#define YAZE_APP_EDITOR_AGENT_AGENT_UI_THEME_H
|
||||
|
||||
#include "imgui/imgui.h"
|
||||
#include "app/gui/core/theme_manager.h"
|
||||
#include "app/gui/core/color.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace editor {
|
||||
|
||||
/**
|
||||
* @struct AgentUITheme
|
||||
* @brief Centralized theme colors for Agent UI components
|
||||
*
|
||||
* All hardcoded colors from AgentChatWidget, AgentEditor, and AgentChatHistoryPopup
|
||||
* are consolidated here and derived from the current theme.
|
||||
*/
|
||||
struct AgentUITheme {
|
||||
// Message colors
|
||||
ImVec4 user_message_color;
|
||||
ImVec4 agent_message_color;
|
||||
ImVec4 system_message_color;
|
||||
|
||||
ImVec4 text_secondary_color;
|
||||
|
||||
// Content colors
|
||||
ImVec4 json_text_color;
|
||||
ImVec4 command_text_color;
|
||||
ImVec4 code_bg_color;
|
||||
|
||||
// UI element colors
|
||||
ImVec4 panel_bg_color;
|
||||
ImVec4 panel_bg_darker;
|
||||
ImVec4 panel_border_color;
|
||||
ImVec4 accent_color;
|
||||
|
||||
// Status colors
|
||||
ImVec4 status_active;
|
||||
ImVec4 status_inactive;
|
||||
ImVec4 status_success;
|
||||
ImVec4 status_warning;
|
||||
ImVec4 status_error;
|
||||
|
||||
// Provider colors
|
||||
ImVec4 provider_ollama;
|
||||
ImVec4 provider_gemini;
|
||||
ImVec4 provider_mock;
|
||||
|
||||
// Collaboration colors
|
||||
ImVec4 collaboration_active;
|
||||
ImVec4 collaboration_inactive;
|
||||
|
||||
// Proposal colors
|
||||
ImVec4 proposal_panel_bg;
|
||||
ImVec4 proposal_accent;
|
||||
|
||||
// Button colors
|
||||
ImVec4 button_copy;
|
||||
ImVec4 button_copy_hover;
|
||||
|
||||
// Gradient colors
|
||||
ImVec4 gradient_top;
|
||||
ImVec4 gradient_bottom;
|
||||
|
||||
// Initialize from current theme
|
||||
static AgentUITheme FromCurrentTheme();
|
||||
};
|
||||
|
||||
// Helper functions for common UI patterns
|
||||
namespace AgentUI {
|
||||
|
||||
// Get current theme colors
|
||||
const AgentUITheme& GetTheme();
|
||||
|
||||
// Refresh theme from ThemeManager
|
||||
void RefreshTheme();
|
||||
|
||||
// Common UI components
|
||||
void PushPanelStyle();
|
||||
void PopPanelStyle();
|
||||
|
||||
void RenderSectionHeader(const char* icon, const char* label, const ImVec4& color);
|
||||
void RenderStatusIndicator(const char* label, bool active);
|
||||
void RenderProviderBadge(const char* provider);
|
||||
|
||||
// Status badge for tests/processes
|
||||
enum class ButtonColor { Success, Warning, Error, Info, Default };
|
||||
void StatusBadge(const char* text, ButtonColor color);
|
||||
|
||||
// Spacing helpers
|
||||
void VerticalSpacing(float amount = 8.0f);
|
||||
void HorizontalSpacing(float amount = 8.0f);
|
||||
|
||||
// Common button styles
|
||||
bool StyledButton(const char* label, const ImVec4& color, const ImVec2& size = ImVec2(0, 0));
|
||||
bool IconButton(const char* icon, const char* tooltip = nullptr);
|
||||
|
||||
} // namespace AgentUI
|
||||
|
||||
} // namespace editor
|
||||
} // namespace yaze
|
||||
|
||||
#endif // YAZE_APP_EDITOR_AGENT_AGENT_UI_THEME_H
|
||||
Reference in New Issue
Block a user