mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2024-12-22 14:49:21 +00:00
feat: decompose processes view into separate functions
This commit is contained in:
parent
80575e281c
commit
86d1daee02
1 changed files with 310 additions and 265 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
use egui::Ui;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
|
||||||
use crate::disk::state::Status;
|
use crate::disk::state::Status;
|
||||||
|
@ -31,273 +32,317 @@ impl Status {
|
||||||
let height = height / 25.0;
|
let height = height / 25.0;
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
// [Gupax]
|
// [Gupax]
|
||||||
ui.group(|ui| {
|
gupax(ui, min_height, width, height, sys);
|
||||||
ui.vertical(|ui| {
|
|
||||||
debug!("Status Tab | Rendering [Gupax]");
|
|
||||||
ui.set_min_height(min_height);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(
|
|
||||||
RichText::new("[Gupax]")
|
|
||||||
.color(LIGHT_GRAY)
|
|
||||||
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text("Gupax is online");
|
|
||||||
let sys = lock!(sys);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_UPTIME);
|
|
||||||
ui.add_sized([width, height], Label::new(sys.gupax_uptime.to_string()));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Gupax CPU").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_CPU_USAGE);
|
|
||||||
ui.add_sized([width, height], Label::new(sys.gupax_cpu_usage.to_string()));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Gupax Memory").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_MEMORY_USAGE);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(sys.gupax_memory_used_mb.to_string()),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("System CPU").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_SYSTEM_CPU_USAGE);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(sys.system_cpu_usage.to_string()),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("System Memory").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_SYSTEM_MEMORY);
|
|
||||||
ui.add_sized([width, height], Label::new(sys.system_memory.to_string()));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("System CPU Model").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_GUPAX_SYSTEM_CPU_MODEL);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(sys.system_cpu_model.to_string()),
|
|
||||||
);
|
|
||||||
drop(sys);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
// [P2Pool]
|
// [P2Pool]
|
||||||
ui.group(|ui| {
|
p2pool(
|
||||||
ui.vertical(|ui| {
|
ui,
|
||||||
debug!("Status Tab | Rendering [P2Pool]");
|
min_height,
|
||||||
ui.set_enabled(p2pool_alive);
|
width,
|
||||||
ui.set_min_height(min_height);
|
height,
|
||||||
ui.add_sized(
|
p2pool_alive,
|
||||||
[width, height],
|
p2pool_api,
|
||||||
Label::new(
|
p2pool_img,
|
||||||
RichText::new("[P2Pool]")
|
);
|
||||||
.color(LIGHT_GRAY)
|
|
||||||
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text("P2Pool is online")
|
|
||||||
.on_disabled_hover_text("P2Pool is offline");
|
|
||||||
ui.style_mut().override_text_style = Some(Name("MonospaceSmall".into()));
|
|
||||||
let height = height / 1.4;
|
|
||||||
let api = lock!(p2pool_api);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_UPTIME);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.uptime)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Shares Found").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_SHARES);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.shares_found)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Payouts").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_PAYOUTS);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!("Total: {}", api.payouts)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[{:.7}/hour]\n[{:.7}/day]\n[{:.7}/month]",
|
|
||||||
api.payouts_hour, api.payouts_day, api.payouts_month
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("XMR Mined").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_XMR);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!("Total: {:.13} XMR", api.xmr)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[{:.7}/hour]\n[{:.7}/day]\n[{:.7}/month]",
|
|
||||||
api.xmr_hour, api.xmr_day, api.xmr_month
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(
|
|
||||||
RichText::new("Hashrate (15m/1h/24h)")
|
|
||||||
.underline()
|
|
||||||
.color(BONE),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_HASHRATE);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[{} H/s] [{} H/s] [{} H/s]",
|
|
||||||
api.hashrate_15m, api.hashrate_1h, api.hashrate_24h
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Miners Connected").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_CONNECTIONS);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.connections)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Effort").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_EFFORT);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[Average: {}] [Current: {}]",
|
|
||||||
api.average_effort, api.current_effort
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
let img = lock!(p2pool_img);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Monero Node").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_MONERO_NODE);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[IP: {}]\n[RPC: {}] [ZMQ: {}]",
|
|
||||||
&img.host, &img.rpc, &img.zmq
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Sidechain").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_POOL);
|
|
||||||
ui.add_sized([width, height], Label::new(&img.mini));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Address").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_P2POOL_ADDRESS);
|
|
||||||
ui.add_sized([width, height], Label::new(&img.address));
|
|
||||||
drop(img);
|
|
||||||
drop(api);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
// [XMRig]
|
// [XMRig]
|
||||||
ui.group(|ui| {
|
xmrig(
|
||||||
ui.vertical(|ui| {
|
ui,
|
||||||
debug!("Status Tab | Rendering [XMRig]");
|
min_height,
|
||||||
ui.set_enabled(xmrig_alive);
|
width,
|
||||||
ui.set_min_height(min_height);
|
height,
|
||||||
ui.add_sized(
|
xmrig_alive,
|
||||||
[width, height],
|
xmrig_api,
|
||||||
Label::new(
|
xmrig_img,
|
||||||
RichText::new("[XMRig]")
|
max_threads,
|
||||||
.color(LIGHT_GRAY)
|
);
|
||||||
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text("XMRig is online")
|
|
||||||
.on_disabled_hover_text("XMRig is offline");
|
|
||||||
let api = lock!(xmrig_api);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_UPTIME);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.uptime)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(
|
|
||||||
RichText::new("CPU Load (10s/60s/15m)")
|
|
||||||
.underline()
|
|
||||||
.color(BONE),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_CPU);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.resources)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(
|
|
||||||
RichText::new("Hashrate (10s/60s/15m)")
|
|
||||||
.underline()
|
|
||||||
.color(BONE),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_HASHRATE);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.hashrate)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Difficulty").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_DIFFICULTY);
|
|
||||||
ui.add_sized([width, height], Label::new(format!("{}", api.diff)));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Shares").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_SHARES);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!(
|
|
||||||
"[Accepted: {}] [Rejected: {}]",
|
|
||||||
api.accepted, api.rejected
|
|
||||||
)),
|
|
||||||
);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Pool").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_POOL);
|
|
||||||
ui.add_sized([width, height], Label::new(&lock!(xmrig_img).url));
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(RichText::new("Threads").underline().color(BONE)),
|
|
||||||
)
|
|
||||||
.on_hover_text(STATUS_XMRIG_THREADS);
|
|
||||||
ui.add_sized(
|
|
||||||
[width, height],
|
|
||||||
Label::new(format!("{}/{}", &lock!(xmrig_img).threads, max_threads)),
|
|
||||||
);
|
|
||||||
drop(api);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fn gupax(ui: &mut Ui, min_height: f32, width: f32, height: f32, sys: &Arc<Mutex<Sys>>) {
|
||||||
|
ui.group(|ui| {
|
||||||
|
ui.vertical(|ui| {
|
||||||
|
debug!("Status Tab | Rendering [Gupax]");
|
||||||
|
ui.set_min_height(min_height);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("[Gupax]")
|
||||||
|
.color(LIGHT_GRAY)
|
||||||
|
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text("Gupax is online");
|
||||||
|
let sys = lock!(sys);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_UPTIME);
|
||||||
|
ui.add_sized([width, height], Label::new(sys.gupax_uptime.to_string()));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Gupax CPU").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_CPU_USAGE);
|
||||||
|
ui.add_sized([width, height], Label::new(sys.gupax_cpu_usage.to_string()));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Gupax Memory").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_MEMORY_USAGE);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(sys.gupax_memory_used_mb.to_string()),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("System CPU").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_SYSTEM_CPU_USAGE);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(sys.system_cpu_usage.to_string()),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("System Memory").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_SYSTEM_MEMORY);
|
||||||
|
ui.add_sized([width, height], Label::new(sys.system_memory.to_string()));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("System CPU Model").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_GUPAX_SYSTEM_CPU_MODEL);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(sys.system_cpu_model.to_string()),
|
||||||
|
);
|
||||||
|
drop(sys);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn p2pool(
|
||||||
|
ui: &mut Ui,
|
||||||
|
min_height: f32,
|
||||||
|
width: f32,
|
||||||
|
height: f32,
|
||||||
|
p2pool_alive: bool,
|
||||||
|
p2pool_api: &Arc<Mutex<PubP2poolApi>>,
|
||||||
|
p2pool_img: &Arc<Mutex<ImgP2pool>>,
|
||||||
|
) {
|
||||||
|
ui.group(|ui| {
|
||||||
|
ui.vertical(|ui| {
|
||||||
|
debug!("Status Tab | Rendering [P2Pool]");
|
||||||
|
ui.set_enabled(p2pool_alive);
|
||||||
|
ui.set_min_height(min_height);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("[P2Pool]")
|
||||||
|
.color(LIGHT_GRAY)
|
||||||
|
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text("P2Pool is online")
|
||||||
|
.on_disabled_hover_text("P2Pool is offline");
|
||||||
|
ui.style_mut().override_text_style = Some(Name("MonospaceSmall".into()));
|
||||||
|
let height = height / 1.4;
|
||||||
|
let api = lock!(p2pool_api);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_UPTIME);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.uptime)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Shares Found").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_SHARES);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.shares_found)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Payouts").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_PAYOUTS);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!("Total: {}", api.payouts)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[{:.7}/hour]\n[{:.7}/day]\n[{:.7}/month]",
|
||||||
|
api.payouts_hour, api.payouts_day, api.payouts_month
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("XMR Mined").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_XMR);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!("Total: {:.13} XMR", api.xmr)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[{:.7}/hour]\n[{:.7}/day]\n[{:.7}/month]",
|
||||||
|
api.xmr_hour, api.xmr_day, api.xmr_month
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("Hashrate (15m/1h/24h)")
|
||||||
|
.underline()
|
||||||
|
.color(BONE),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_HASHRATE);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[{} H/s] [{} H/s] [{} H/s]",
|
||||||
|
api.hashrate_15m, api.hashrate_1h, api.hashrate_24h
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Miners Connected").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_CONNECTIONS);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.connections)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Effort").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_EFFORT);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[Average: {}] [Current: {}]",
|
||||||
|
api.average_effort, api.current_effort
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
let img = lock!(p2pool_img);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Monero Node").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_MONERO_NODE);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[IP: {}]\n[RPC: {}] [ZMQ: {}]",
|
||||||
|
&img.host, &img.rpc, &img.zmq
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Sidechain").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_POOL);
|
||||||
|
ui.add_sized([width, height], Label::new(&img.mini));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Address").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_P2POOL_ADDRESS);
|
||||||
|
ui.add_sized([width, height], Label::new(&img.address));
|
||||||
|
drop(img);
|
||||||
|
drop(api);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
fn xmrig(
|
||||||
|
ui: &mut Ui,
|
||||||
|
min_height: f32,
|
||||||
|
width: f32,
|
||||||
|
height: f32,
|
||||||
|
xmrig_alive: bool,
|
||||||
|
xmrig_api: &Arc<Mutex<PubXmrigApi>>,
|
||||||
|
xmrig_img: &Arc<Mutex<ImgXmrig>>,
|
||||||
|
max_threads: usize,
|
||||||
|
) {
|
||||||
|
ui.group(|ui| {
|
||||||
|
ui.vertical(|ui| {
|
||||||
|
debug!("Status Tab | Rendering [XMRig]");
|
||||||
|
ui.set_enabled(xmrig_alive);
|
||||||
|
ui.set_min_height(min_height);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("[XMRig]")
|
||||||
|
.color(LIGHT_GRAY)
|
||||||
|
.text_style(TextStyle::Name("MonospaceLarge".into())),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text("XMRig is online")
|
||||||
|
.on_disabled_hover_text("XMRig is offline");
|
||||||
|
let api = lock!(xmrig_api);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Uptime").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_UPTIME);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.uptime)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("CPU Load (10s/60s/15m)")
|
||||||
|
.underline()
|
||||||
|
.color(BONE),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_CPU);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.resources)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(
|
||||||
|
RichText::new("Hashrate (10s/60s/15m)")
|
||||||
|
.underline()
|
||||||
|
.color(BONE),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_HASHRATE);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.hashrate)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Difficulty").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_DIFFICULTY);
|
||||||
|
ui.add_sized([width, height], Label::new(format!("{}", api.diff)));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Shares").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_SHARES);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!(
|
||||||
|
"[Accepted: {}] [Rejected: {}]",
|
||||||
|
api.accepted, api.rejected
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Pool").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_POOL);
|
||||||
|
ui.add_sized([width, height], Label::new(&lock!(xmrig_img).url));
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(RichText::new("Threads").underline().color(BONE)),
|
||||||
|
)
|
||||||
|
.on_hover_text(STATUS_XMRIG_THREADS);
|
||||||
|
ui.add_sized(
|
||||||
|
[width, height],
|
||||||
|
Label::new(format!("{}/{}", &lock!(xmrig_img).threads, max_threads)),
|
||||||
|
);
|
||||||
|
drop(api);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue