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:
2026-02-26 02:31:52 -06:00
commit 3aee55b49c
306 changed files with 177789 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3
#pragma once
#include <string>
#include <vector>
namespace dragonx {
class App;
namespace ui {
// A single balance layout entry read from ui.toml
struct BalanceLayoutEntry {
std::string id; // e.g. "classic", "donut", "minimal"
std::string name; // Display name, e.g. "Classic", "Donut Chart"
bool enabled = true; // Whether this layout appears in the settings dropdown
};
// Get the list of available balance layouts (parsed from ui.toml).
// On first call (or after RefreshBalanceLayoutConfig()), parses the
// "tabs.balance.layouts.options" array from the schema.
const std::vector<BalanceLayoutEntry>& GetBalanceLayouts();
// Get the default layout ID from ui.toml ("tabs.balance.layouts.default").
const std::string& GetDefaultBalanceLayout();
// Re-read layout config from schema (call after theme/skin hot-reload).
void RefreshBalanceLayoutConfig();
// Legacy int-to-string migration for old settings.json files.
// Maps BalanceLayout enum ordinals (0-8) to their string IDs.
std::string MigrateBalanceLayoutIndex(int index);
/**
* @brief Render the Balance tab
* Shows balance summary and address list.
* Dispatches to the selected layout from Settings.
*/
void RenderBalanceTab(App* app);
} // namespace ui
} // namespace dragonx