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)
This commit is contained in:
93
src/ui/theme.h
Normal file
93
src/ui/theme.h
Normal file
@@ -0,0 +1,93 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user