Files
ObsidianDragon/src/ui/theme.h
DanS 3aee55b49c ObsidianDragon - DragonX ImGui Wallet
Full-node GUI wallet for DragonX cryptocurrency.
Built with Dear ImGui, SDL3, and OpenGL3/DX11.

Features:
- Send/receive shielded and transparent transactions
- Autoshield with merged transaction display
- Built-in CPU mining (xmrig)
- Peer management and network monitoring
- Wallet encryption with PIN lock
- QR code generation for receive addresses
- Transaction history with pagination
- Console for direct RPC commands
- Cross-platform (Linux, Windows)
2026-02-27 00:26:01 -06:00

94 lines
2.3 KiB
C++

// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3
#pragma once
#include "effects/acrylic.h"
#include "material/color_theme.h"
#include <string>
namespace dragonx {
namespace ui {
// ============================================================================
// Acrylic Theme Presets
// ============================================================================
/**
* @brief Collection of acrylic parameters for different UI elements
*/
struct AcrylicTheme {
effects::AcrylicParams sidebar; // Navigation sidebar
effects::AcrylicParams popup; // Dialogs, modals
effects::AcrylicParams card; // Cards, panels
effects::AcrylicParams menu; // Context menus
effects::AcrylicParams tooltip; // Tooltips
};
/**
* @brief Get the DragonX branded acrylic theme
*/
AcrylicTheme GetDragonXAcrylicTheme();
/**
* @brief Get the dark acrylic theme
*/
AcrylicTheme GetDarkAcrylicTheme();
/**
* @brief Get the light acrylic theme
*/
AcrylicTheme GetLightAcrylicTheme();
/**
* @brief Get acrylic theme matching current ImGui theme
*/
const AcrylicTheme& GetCurrentAcrylicTheme();
/**
* @brief Set the current acrylic theme
*/
void SetCurrentAcrylicTheme(const AcrylicTheme& theme);
// ============================================================================
// ImGui Theme Functions
// ============================================================================
/**
* @brief Apply the DragonX Material Design theme
*
* Uses Material Design 2 color system with DragonX red primary color.
* This is the recommended theme for DragonX wallet.
*/
void SetDragonXMaterialTheme();
/**
* @brief Apply the DragonX legacy theme (deprecated)
*
* Legacy green-based theme. Use SetDragonXMaterialTheme() instead.
*/
void SetDragonXTheme();
/**
* @brief Apply dark theme variant (Material Design)
*/
void SetDarkTheme();
/**
* @brief Apply light theme variant (Material Design)
*/
void SetLightTheme();
/**
* @brief Apply a theme by its ID (filename stem)
*
* Loads theme from res/themes/{id}.json. Falls back to dragonx theme if not found.
* @param themeId Theme identifier like "dragonx", "dark", "light", "ocean-blue"
* @return true if theme was loaded successfully
*/
bool SetThemeById(const std::string& themeId);
} // namespace ui
} // namespace dragonx