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)
123 lines
4.7 KiB
C
123 lines
4.7 KiB
C
// DragonX Wallet - ImGui Edition
|
|
// Copyright 2024-2026 The Hush Developers
|
|
// Released under the GPLv3
|
|
|
|
#pragma once
|
|
|
|
// ============================================================================
|
|
// Material Design Components - Unified Header
|
|
// ============================================================================
|
|
// Include this single header to get all Material Design components.
|
|
//
|
|
// Based on Material Design 2 (m2.material.io)
|
|
//
|
|
// All components are in the namespace: dragonx::ui::material
|
|
|
|
// Core dependencies
|
|
#include "../colors.h"
|
|
#include "../typography.h"
|
|
#include "../layout.h"
|
|
|
|
// Components
|
|
#include "buttons.h" // Button, IconButton, FAB
|
|
#include "cards.h" // Card, CardHeader, CardContent, CardActions
|
|
#include "text_fields.h" // TextField
|
|
#include "lists.h" // ListItem, ListDivider, ListSubheader
|
|
#include "dialogs.h" // Dialog, ConfirmDialog, AlertDialog
|
|
#include "inputs.h" // Switch, Checkbox, RadioButton
|
|
#include "progress.h" // LinearProgress, CircularProgress
|
|
#include "snackbar.h" // Snackbar, ShowSnackbar
|
|
#include "slider.h" // Slider, SliderDiscrete, SliderRange
|
|
#include "tabs.h" // TabBar, Tab
|
|
#include "chips.h" // Chip, FilterChip, ChoiceChip, InputChip
|
|
#include "nav_drawer.h" // NavDrawer, NavItem
|
|
#include "app_bar.h" // AppBar, AppBarTitle, AppBarAction
|
|
|
|
// ============================================================================
|
|
// Quick Reference
|
|
// ============================================================================
|
|
//
|
|
// BUTTONS:
|
|
// Button(label, spec) - Generic button with style config
|
|
// TextButton(label) - Text-only button
|
|
// OutlinedButton(label) - Button with outline
|
|
// ContainedButton(label) - Filled button (primary)
|
|
// IconButton(icon, tooltip) - Circular icon button
|
|
// FAB(icon) - Floating action button
|
|
//
|
|
// CARDS:
|
|
// BeginCard(spec)/EndCard() - Card container
|
|
// CardHeader(title, subtitle) - Card header section
|
|
// CardContent(text) - Card body text
|
|
// CardActions()/EndCardActions()- Card button area
|
|
//
|
|
// TEXT FIELDS:
|
|
// TextField(label, buf, size) - Text input field
|
|
// TextField(id, buf, size, spec)- Configurable text field
|
|
//
|
|
// LISTS:
|
|
// BeginList(id)/EndList() - List container
|
|
// ListItem(text) - Simple list item
|
|
// ListItem(primary, secondary) - Two-line item
|
|
// ListItem(spec) - Full config item
|
|
// ListDivider(inset) - Divider line
|
|
// ListSubheader(text) - Section header
|
|
//
|
|
// DIALOGS:
|
|
// BeginDialog(id, &open, spec) - Modal dialog
|
|
// EndDialog()
|
|
// ConfirmDialog(...) - Confirm/cancel dialog
|
|
// AlertDialog(...) - Single-action alert
|
|
//
|
|
// SELECTION CONTROLS:
|
|
// Switch(label, &value) - Toggle switch
|
|
// Checkbox(label, &value) - Checkbox
|
|
// RadioButton(label, active) - Radio button
|
|
// RadioButton(label, &sel, val) - Radio with int selection
|
|
//
|
|
// PROGRESS:
|
|
// LinearProgress(fraction) - Determinate progress bar
|
|
// LinearProgressIndeterminate() - Indeterminate progress bar
|
|
// CircularProgress(fraction) - Circular progress
|
|
// CircularProgressIndeterminate()- Spinner
|
|
//
|
|
// SNACKBAR:
|
|
// ShowSnackbar(msg, action) - Show notification
|
|
// DismissSnackbar() - Dismiss current snackbar
|
|
// RenderSnackbar() - Call each frame to render
|
|
//
|
|
// SLIDER:
|
|
// Slider(label, &val, min, max) - Continuous slider
|
|
// SliderInt(label, &val, ...) - Integer slider
|
|
// SliderDiscrete(...) - Stepped slider
|
|
// SliderRange(...) - Two-thumb range slider
|
|
//
|
|
// TABS:
|
|
// BeginTabBar(id, &idx) - Tab bar container
|
|
// Tab(label) - Tab item
|
|
// EndTabBar()
|
|
// TabBar(id, labels, count, &idx) - Simple tab bar
|
|
//
|
|
// CHIPS:
|
|
// Chip(label) - Action chip
|
|
// FilterChip(label, &selected) - Toggleable filter chip
|
|
// ChoiceChip(label, selected) - Choice chip
|
|
// InputChip(label, avatar) - Deletable input chip
|
|
// BeginChipGroup()/EndChipGroup()- Chip layout helper
|
|
//
|
|
// NAVIGATION DRAWER:
|
|
// BeginNavDrawer(id, &open, spec) - Navigation drawer
|
|
// EndNavDrawer()
|
|
// NavItem(icon, label, selected) - Navigation item
|
|
// NavDivider() - Drawer divider
|
|
// NavSubheader(text) - Section header
|
|
//
|
|
// APP BAR:
|
|
// BeginAppBar(id, spec) - Top app bar
|
|
// EndAppBar()
|
|
// AppBarNavIcon(icon) - Navigation icon (left)
|
|
// AppBarTitle(title) - App bar title
|
|
// AppBarAction(icon) - Action button (right)
|
|
// BeginAppBarMenu(icon) - Overflow menu
|
|
// AppBarMenuItem(label) - Menu item
|