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)
94 lines
2.3 KiB
C++
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
|