system settings
git clone https://git.lucas.co/cce-system-interface.git
Implement Window Manager Effects section with Transparency and Blur toggles
Cargo.toml | 2 +-
src/app.rs | 10 +-
src/main.rs | 342 +++++++++++++++++++++++++----------------------
src/pages/accounts.rs | 18 +--
src/pages/audio.rs | 22 +--
src/pages/display.rs | 22 +--
src/pages/hardware.rs | 6 +-
src/pages/input.rs | 26 ++--
src/pages/interface.rs | 168 +++++++++++------------
src/pages/layout.rs | 70 +++++++++-
src/pages/network.rs | 18 +--
src/pages/packages.rs | 10 +-
src/pages/services.rs | 26 ++--
src/pages/storage.rs | 8 +-
src/pages/system_info.rs | 4 +-
src/widgets.rs | 2 +-
16 files changed, 414 insertions(+), 340 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 60599a2..7f78ce3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-clear-ui = { path = "../clear-ui" }
+cce-ui = { path = "../cce-ui" }
smithay-client-toolkit = "0.19.2"
calloop = "0.13.0"
calloop-wayland-source = "0.3.0"
diff --git a/src/app.rs b/src/app.rs
index 443742d..77dbf2e 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -1,4 +1,4 @@
-use clear_ui::layout::RenderTarget;
+use cce_ui::layout::RenderTarget;
use crate::pages::audio;
use crate::pages::display;
@@ -71,7 +71,7 @@ pub enum AppAction {
pub struct PageContent {
pub rects: Vec<([f32; 4], f32, f32, f32, f32, f32, (bool, bool, bool, bool))>,
pub texts: Vec<(String, f32, f32, f32, [f32; 4], Option<String>, Option<[f32; 4]>)>,
- pub buttons: Vec<(clear_ui::widget::Button, AppAction)>,
+ pub buttons: Vec<(cce_ui::widget::Button, AppAction)>,
}
impl PageContent {
@@ -94,7 +94,7 @@ impl PageContent {
pub fn button(&mut self, label: &str, x: f32, y: f32, w: f32, h: f32,
bg: [f32; 4], hover_bg: [f32; 4], label_color: [f32; 4],
action: AppAction) {
- let btn = clear_ui::widget::Button::new(x, y, w, h)
+ let btn = cce_ui::widget::Button::new(x, y, w, h)
.with_label(label)
.with_bg(bg)
.with_hover_bg(hover_bg)
@@ -105,7 +105,7 @@ impl PageContent {
pub fn button_left(&mut self, label: &str, x: f32, y: f32, w: f32, h: f32,
bg: [f32; 4], hover_bg: [f32; 4], label_color: [f32; 4],
action: AppAction) {
- let btn = clear_ui::widget::Button::new(x, y, w, h)
+ let btn = cce_ui::widget::Button::new(x, y, w, h)
.with_label(label)
.with_bg(bg)
.with_hover_bg(hover_bg)
@@ -150,7 +150,7 @@ pub trait SectionContextExt {
fn button_left(&mut self, label: &str, x: f32, y: f32, w: f32, h: f32, bg: [f32; 4], hover_bg: [f32; 4], label_color: [f32; 4], action: AppAction);
}
-impl<'a> SectionContextExt for clear_ui::layout::SectionContext<'a, PageContent> {
+impl<'a> SectionContextExt for cce_ui::layout::SectionContext<'a, PageContent> {
fn button(&mut self, label: &str, x: f32, y: f32, w: f32, h: f32, bg: [f32; 4], hover_bg: [f32; 4], label_color: [f32; 4], action: AppAction) {
self.pc.button(label, x, y, w, h, bg, hover_bg, label_color, action);
self.content_y = self.content_y.max(y + h);
diff --git a/src/main.rs b/src/main.rs
index d9a406e..946116e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,11 +1,11 @@
-use clear_ui::widget::{Finger, hover_animation, TextItem, Element, PageSelector};
+use cce_ui::widget::{Finger, hover_animation, TextItem, Element, PageSelector};
use glyphon::{Attrs, Buffer, FontSystem, Metrics};
use cce_system_interface::app::{AppAction, AppState, PageContent};
use cce_system_interface::pages::{self, Page};
fn make_text_buffer(fs: &mut FontSystem, text: &str, size: f32) -> Buffer {
- let scale = clear_ui::scale::scale_factor();
+ let scale = cce_ui::scale::scale_factor();
let physical_size = size * scale;
let metrics = Metrics::new(physical_size, physical_size * 1.4);
let mut buf = Buffer::new(fs, metrics);
@@ -35,12 +35,12 @@ fn make_text_buffer_with_font(
serif_fallback: &str,
mono_fallback: &str,
) -> Buffer {
- let scale = clear_ui::scale::scale_factor();
+ let scale = cce_ui::scale::scale_factor();
let mut font_size = size;
let mut family_name = None;
if let Some(font_str) = font {
- let (parsed_family, parsed_size) = clear_ui::layout::parse_font_string(font_str);
+ let (parsed_family, parsed_size) = cce_ui::layout::parse_font_string(font_str);
if let Some(ps) = parsed_size {
font_size = ps;
}
@@ -69,7 +69,7 @@ fn make_text_buffer_with_font(
glyphon::Family::Name(mono_fallback)
}
} else {
- glyphon::Family::Name(clear_ui::layout::get_system_monospace_font())
+ glyphon::Family::Name(cce_ui::layout::get_system_monospace_font())
}
}
"sans-serif" => {
@@ -119,8 +119,8 @@ struct SystemInterface {
app: AppState,
font_system: FontSystem,
widgets: Vec<AppWidget>,
- text_items: Vec<clear_ui::widget::TextItem>,
- page_buttons: Vec<(clear_ui::widget::Button, AppAction)>,
+ text_items: Vec<cce_ui::widget::TextItem>,
+ page_buttons: Vec<(cce_ui::widget::Button, AppAction)>,
sidebar_width: f32,
header_height: f32,
@@ -161,23 +161,23 @@ struct SystemInterface {
audio_sink_dragging: Option<usize>,
audio_source_dragging: Option<usize>,
display_brightness_dragging: bool,
- page_sec_containers: Vec<clear_ui::widget::Container>,
- menubar: clear_ui::widget::MenuBar,
- switcher: clear_ui::widget::Switcher,
- plates: Vec<clear_ui::widget::Plate>,
+ page_sec_containers: Vec<cce_ui::widget::Container>,
+ menubar: cce_ui::widget::MenuBar,
+ switcher: cce_ui::widget::Switcher,
+ plates: Vec<cce_ui::widget::Plate>,
sans_serif_family: String,
serif_family: String,
monospace_family: String,
current_page_shared: std::sync::Arc<std::sync::atomic::AtomicU8>,
sender: calloop::channel::Sender<AppAction>,
- ui_context: clear_ui::context::UiContext,
+ ui_context: cce_ui::context::UiContext,
}
-impl clear_ui::engine::Application for SystemInterface {
+impl cce_ui::engine::Application for SystemInterface {
type Message = AppAction;
- fn new(_qh: &wayland_client::QueueHandle<clear_ui::engine::EngineState<Self>>, sender: calloop::channel::Sender<Self::Message>) -> Self {
- clear_ui::scale::set_scale_factor(1.0);
+ fn new(_qh: &wayland_client::QueueHandle<cce_ui::engine::EngineState<Self>>, sender: calloop::channel::Sender<Self::Message>) -> Self {
+ cce_ui::scale::set_scale_factor(1.0);
let app = AppState {
layout: pages::layout::read_layout_config(),
input: pages::input::read_input_config(),
@@ -405,16 +405,16 @@ impl clear_ui::engine::Application for SystemInterface {
let (sans_family, serif_family, monospace_family, _, _, _, _, _) = pages::interface::read_preferred_fonts();
let pages_names = Page::ALL.iter().map(|p| p.label().to_string()).collect::<Vec<_>>();
- let mut menubar = clear_ui::widget::MenuBar::new(0.0, 0.0, 180.0, 680.0)
+ let mut menubar = cce_ui::widget::MenuBar::new(0.0, 0.0, 180.0, 680.0)
.with_vertical(true)
.with_title("SYSTEM");
menubar.set_pages(pages_names);
let sidebar_width = menubar.sidebar_w();
- let switcher = clear_ui::widget::Switcher::new(sidebar_width, 0.0, 820.0 - sidebar_width, 680.0);
+ let switcher = cce_ui::widget::Switcher::new(sidebar_width, 0.0, 820.0 - sidebar_width, 680.0);
let mut plates = Vec::new();
for page in Page::ALL.iter() {
- let plate = clear_ui::widget::Plate::new(sidebar_width, 0.0, 820.0 - sidebar_width, 680.0)
+ let plate = cce_ui::widget::Plate::new(sidebar_width, 0.0, 820.0 - sidebar_width, 680.0)
.with_label(page.label())
.with_draggable(false);
plates.push(plate);
@@ -477,7 +477,7 @@ impl clear_ui::engine::Application for SystemInterface {
monospace_family,
current_page_shared,
sender,
- ui_context: clear_ui::context::UiContext::new(),
+ ui_context: cce_ui::context::UiContext::new(),
};
for plate in &mut this.plates {
@@ -488,8 +488,8 @@ impl clear_ui::engine::Application for SystemInterface {
this
}
- fn settings(&self) -> clear_ui::engine::WindowSettings {
- clear_ui::engine::WindowSettings {
+ fn settings(&self) -> cce_ui::engine::WindowSettings {
+ cce_ui::engine::WindowSettings {
title: "CCE System Interface".to_string(),
app_id: "cce-system-interface".to_string(),
width: 820,
@@ -516,13 +516,13 @@ impl clear_ui::engine::Application for SystemInterface {
}
}
- fn view(&mut self, quads: &mut Vec<(f32, f32, f32, f32, [f32; 4])>, size: clear_ui::engine::LogicalSize, scale: f64) {
+ fn view(&mut self, quads: &mut Vec<(f32, f32, f32, f32, [f32; 4])>, size: cce_ui::engine::LogicalSize, scale: f64) {
let (width, height) = (size.width, size.height);
if self.needs_rebuild || self.width != width as u32 || self.height != height as u32 || self.scale_factor != scale {
self.width = width as u32;
self.height = height as u32;
self.scale_factor = scale;
- clear_ui::scale::set_scale_factor(scale as f32);
+ cce_ui::scale::set_scale_factor(scale as f32);
self.rebuild_layout(width, height);
}
for w in &self.widgets {
@@ -532,13 +532,13 @@ impl clear_ui::engine::Application for SystemInterface {
}
}
- fn view_rounded_quads(&mut self, quads: &mut Vec<(f32, f32, f32, f32, f32, [f32; 4], (bool, bool, bool, bool))>, size: clear_ui::engine::LogicalSize, scale: f64) {
+ fn view_rounded_quads(&mut self, quads: &mut Vec<(f32, f32, f32, f32, f32, [f32; 4], (bool, bool, bool, bool))>, size: cce_ui::engine::LogicalSize, scale: f64) {
let (width, height) = (size.width, size.height);
if self.needs_rebuild || self.width != width as u32 || self.height != height as u32 || self.scale_factor != scale {
self.width = width as u32;
self.height = height as u32;
self.scale_factor = scale;
- clear_ui::scale::set_scale_factor(scale as f32);
+ cce_ui::scale::set_scale_factor(scale as f32);
self.rebuild_layout(width, height);
}
for w in &self.widgets {
@@ -548,7 +548,7 @@ impl clear_ui::engine::Application for SystemInterface {
}
}
- fn text_items(&self) -> &[clear_ui::widget::TextItem] {
+ fn text_items(&self) -> &[cce_ui::widget::TextItem] {
&self.text_items
}
@@ -561,13 +561,13 @@ impl clear_ui::engine::Application for SystemInterface {
]
}
- fn handle_pointer_move(&mut self, pos: clear_ui::engine::LogicalPosition, needs_rebuild: &mut bool) {
+ fn handle_pointer_move(&mut self, pos: cce_ui::engine::LogicalPosition, needs_rebuild: &mut bool) {
if self.handle_cursor_moved(pos.x, pos.y) {
*needs_rebuild = true;
}
}
- fn handle_mouse_input(&mut self, button: clear_ui::widget::MouseButton, state: clear_ui::widget::ElementState, pos: clear_ui::engine::LogicalPosition, needs_rebuild: &mut bool) -> Option<Self::Message> {
+ fn handle_mouse_input(&mut self, button: cce_ui::widget::MouseButton, state: cce_ui::widget::ElementState, pos: cce_ui::engine::LogicalPosition, needs_rebuild: &mut bool) -> Option<Self::Message> {
self.cursor_x = pos.x;
self.cursor_y = pos.y;
if self.handle_mouse_input_internal(button, state) {
@@ -576,13 +576,13 @@ impl clear_ui::engine::Application for SystemInterface {
None
}
- fn handle_mouse_wheel(&mut self, delta: &clear_ui::widget::MouseScrollDelta, pos: clear_ui::engine::LogicalPosition, needs_rebuild: &mut bool) {
+ fn handle_mouse_wheel(&mut self, delta: &cce_ui::widget::MouseScrollDelta, pos: cce_ui::engine::LogicalPosition, needs_rebuild: &mut bool) {
if self.handle_mouse_wheel_internal(delta, pos.x, pos.y) {
*needs_rebuild = true;
}
}
- fn handle_key_input(&mut self, event: &clear_ui::widget::KeyEvent, needs_rebuild: &mut bool) -> Option<Self::Message> {
+ fn handle_key_input(&mut self, event: &cce_ui::widget::KeyEvent, needs_rebuild: &mut bool) -> Option<Self::Message> {
if self.handle_key_input_internal(event) {
*needs_rebuild = true;
}
@@ -592,7 +592,7 @@ impl clear_ui::engine::Application for SystemInterface {
impl SystemInterface {
-fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(f32, f32, f32, f32)>, ctx: &clear_ui::context::UiContext) {
+fn collect_popover_rects(w: &dyn cce_ui::widget::Element, popovers: &mut Vec<(f32, f32, f32, f32)>, ctx: &cce_ui::context::UiContext) {
if let Some(rect) = w.popover_rect() {
popovers.push(rect);
}
@@ -806,10 +806,10 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
self.app.layout.side_panel_border_opacity_spinbox.clear_children(&mut self.ui_context);
self.app.layout.side_panel_border_opacity_spinbox.set_parent(None, &mut self.ui_context);
- use clear_ui::widget::focus::link_parent_child;
+ use cce_ui::widget::focus::link_parent_child;
match self.app.current_page {
Page::Accounts => {
- self.page_sec_containers.resize_with(2, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(2, cce_ui::widget::Container::new);
for i in 0..2 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
}
@@ -825,7 +825,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
Page::Services => {
- self.page_sec_containers.resize_with(3, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(3, cce_ui::widget::Container::new);
for i in 0..3 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
}
@@ -841,7 +841,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
link_parent_child(&mut self.page_sec_containers[2], &mut self.app.services.status_padding_spinbox, &mut self.ui_context);
}
Page::Hardware => {
- self.page_sec_containers.resize_with(5, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(5, cce_ui::widget::Container::new);
for i in 0..5 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
}
@@ -850,14 +850,14 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
link_parent_child(&mut self.page_sec_containers[4], &mut self.app.hardware.gpu_gov_menu, &mut self.ui_context);
}
Page::Radios => {
- self.page_sec_containers.resize_with(2, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(2, cce_ui::widget::Container::new);
for i in 0..2 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
}
link_parent_child(&mut self.page_sec_containers[0], &mut self.app.network.wifi_list_box.scroll_box, &mut self.ui_context);
}
Page::Layout => {
- self.page_sec_containers.resize_with(7, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(7, cce_ui::widget::Container::new);
for i in 0..7 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
@@ -894,7 +894,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
link_parent_child(&mut self.page_sec_containers[6], &mut self.app.layout.side_panel_border_opacity_spinbox, &mut self.ui_context);
}
Page::Interface => {
- self.page_sec_containers.resize_with(6, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(6, cce_ui::widget::Container::new);
for i in 0..6 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
@@ -1009,7 +1009,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
Page::Input => {
- self.page_sec_containers.resize_with(6, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(6, cce_ui::widget::Container::new);
link_parent_child(page_root, &mut self.page_sec_containers[0], &mut self.ui_context);
link_parent_child(page_root, &mut self.page_sec_containers[1], &mut self.ui_context);
link_parent_child(page_root, &mut self.page_sec_containers[2], &mut self.ui_context);
@@ -1041,7 +1041,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
link_parent_child(&mut self.page_sec_containers[5], &mut self.app.input.zoom_out_box, &mut self.ui_context);
}
Page::Audio => {
- self.page_sec_containers.resize_with(2, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(2, cce_ui::widget::Container::new);
link_parent_child(page_root, &mut self.page_sec_containers[0], &mut self.ui_context);
link_parent_child(page_root, &mut self.page_sec_containers[1], &mut self.ui_context);
@@ -1059,7 +1059,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
Page::Display => {
- self.page_sec_containers.resize_with(4, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(4, cce_ui::widget::Container::new);
link_parent_child(page_root, &mut self.page_sec_containers[0], &mut self.ui_context);
link_parent_child(page_root, &mut self.page_sec_containers[1], &mut self.ui_context);
link_parent_child(page_root, &mut self.page_sec_containers[2], &mut self.ui_context);
@@ -1088,7 +1088,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
link_parent_child(&mut self.page_sec_containers[3], &mut self.app.display.screensaver_style_menu, &mut self.ui_context);
}
Page::Packages => {
- self.page_sec_containers.resize_with(2, clear_ui::widget::Container::new);
+ self.page_sec_containers.resize_with(2, cce_ui::widget::Container::new);
for i in 0..2 {
link_parent_child(page_root, &mut self.page_sec_containers[i], &mut self.ui_context);
}
@@ -1113,10 +1113,10 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let mut page_buttons = Vec::new();
- clear_ui::widget::hover_animation::reset_frame_registration();
- clear_ui::widget::popovers::clear();
- clear_ui::widget::hover_animation::set_scroll_offset(self.scroll_y);
- clear_ui::widget::hover_animation::set_cursor_pos(self.cursor_x / s, self.cursor_y / s);
+ cce_ui::widget::hover_animation::reset_frame_registration();
+ cce_ui::widget::popovers::clear();
+ cce_ui::widget::hover_animation::set_scroll_offset(self.scroll_y);
+ cce_ui::widget::hover_animation::set_cursor_pos(self.cursor_x / s, self.cursor_y / s);
let lcx = self.sidebar_width;
let lcy = self.header_height;
@@ -1128,10 +1128,10 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
self.switcher.set_active_index(Some(page_idx));
let mut menubar_pc = PageContent::new();
- clear_ui::layout::render_widget(&mut menubar_pc, &mut self.menubar, 0.0, 0.0, self.sidebar_width, sh / s, &mut self.ui_context);
+ cce_ui::layout::render_widget(&mut menubar_pc, &mut self.menubar, 0.0, 0.0, self.sidebar_width, sh / s, &mut self.ui_context);
let mut switcher_pc = PageContent::new();
- clear_ui::layout::render_widget(&mut switcher_pc, &mut self.switcher, self.sidebar_width, 0.0, sw / s - self.sidebar_width, sh / s, &mut self.ui_context);
+ cce_ui::layout::render_widget(&mut switcher_pc, &mut self.switcher, self.sidebar_width, 0.0, sw / s - self.sidebar_width, sh / s, &mut self.ui_context);
for pc_part in &[menubar_pc, switcher_pc] {
for (c, x, y, w, h, r, corners) in &pc_part.rects {
@@ -1244,13 +1244,13 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
x: base.x * s, y: (base.y - scroll_offset_y) * s, w: base.w * s, h: base.h * s,
color: bg, hover_color: hover_bg,
hovering: false,
- radius: clear_ui::layout::button_corner_radius() * s,
+ radius: cce_ui::layout::button_corner_radius() * s,
corners: (true, true, true, true),
});
let label = base.label.as_deref().unwrap_or("");
let label_size = 12.0;
let buf = make_text_buffer(&mut self.font_system, label, label_size * s);
- let scale = clear_ui::scale::scale_factor();
+ let scale = cce_ui::scale::scale_factor();
let tw = buf.layout_runs().next().map(|r| r.line_w).unwrap_or(0.0) / scale;
let lh = label_size * s * 1.4;
let mut left_align = btn.left_align;
@@ -1321,7 +1321,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
// Render popovers on top of everything (both backgrounds and texts)
let mut popover_pc = PageContent::new();
- clear_ui::layout::render_popovers(&mut popover_pc, &mut self.ui_context);
+ cce_ui::layout::render_popovers(&mut popover_pc, &mut self.ui_context);
for (c, x, y, w, h, r, corners) in &popover_pc.rects {
widgets.push(AppWidget {
@@ -1355,8 +1355,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
// Draw global hover highlight if active
- clear_ui::widget::hover_animation::post_render_check();
- if let Some((qx, qy, qw, qh, qc)) = clear_ui::widget::hover_animation::get_quad() {
+ cce_ui::widget::hover_animation::post_render_check();
+ if let Some((qx, qy, qw, qh, qc)) = cce_ui::widget::hover_animation::get_quad() {
widgets.push(AppWidget {
x: qx * s,
y: (qy - self.scroll_y) * s,
@@ -1371,11 +1371,11 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
// Render context menu overlay if visible
- if clear_ui::widget::context_menu::is_visible() {
- let cx = clear_ui::widget::context_menu::x();
- let cy = clear_ui::widget::context_menu::y();
- let cw = clear_ui::widget::context_menu::w();
- let ch = clear_ui::widget::context_menu::h();
+ if cce_ui::widget::context_menu::is_visible() {
+ let cx = cce_ui::widget::context_menu::x();
+ let cy = cce_ui::widget::context_menu::y();
+ let cw = cce_ui::widget::context_menu::w();
+ let ch = cce_ui::widget::context_menu::h();
// Border
@@ -1396,7 +1396,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
});
// Hover highlight
- if let Some(h_idx) = clear_ui::widget::context_menu::hovered_item() {
+ if let Some(h_idx) = cce_ui::widget::context_menu::hovered_item() {
let iy = cy + h_idx as f32 * 24.0;
widgets.push(AppWidget {
x: (cx + 2.0) * s, y: (iy + 2.0) * s, w: (cw - 4.0) * s, h: 20.0 * s,
@@ -1408,11 +1408,11 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
// Texts
- for (idx, opt) in clear_ui::widget::context_menu::options().iter().enumerate() {
+ for (idx, opt) in cce_ui::widget::context_menu::options().iter().enumerate() {
let iy = cy + idx as f32 * 24.0 + (24.0 - 12.0) / 2.0;
let text_color = if idx == 0 {
glyphon::Color::rgb(0x70, 0x70, 0x78)
- } else if clear_ui::widget::context_menu::hovered_item() == Some(idx) {
+ } else if cce_ui::widget::context_menu::hovered_item() == Some(idx) {
glyphon::Color::rgb(0xff, 0xff, 0xff)
} else {
glyphon::Color::rgb(0xcc, 0xcc, 0xd4)
@@ -1436,17 +1436,17 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
fn render_page_content(&mut self, cx: f32, cy: f32, cw: f32, ch: f32) -> PageContent {
use pages::*;
- use clear_ui::layout::GridLayout;
- let margin = clear_ui::layout::page_margin();
+ use cce_ui::layout::GridLayout;
+ let margin = cce_ui::layout::page_margin();
let cx = cx + margin;
let cy = cy + margin;
let cw = (cw - 2.0 * margin).max(1.0);
let ch = (ch - 2.0 * margin).max(1.0);
let mut layout = GridLayout::new(260.0, 20.0);
let page_idx = Page::ALL.iter().position(|&p| p == self.app.current_page).unwrap_or(0);
- let root_focused = clear_ui::widget::focus::is_focused(&self.plates[page_idx]);
+ let root_focused = cce_ui::widget::focus::is_focused(&self.plates[page_idx]);
let sec_focused: Vec<bool> = self.page_sec_containers.iter()
- .map(|c| clear_ui::widget::focus::is_focused(c))
+ .map(|c| cce_ui::widget::focus::is_focused(c))
.collect();
match self.app.current_page {
Page::Accounts => accounts::view(&mut self.app.accounts, cx, cy, cw, ch, &mut layout, &mut self.ui_context),
@@ -1783,8 +1783,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let lx_no_scroll = x / s;
let ly_no_scroll = y / s;
- if clear_ui::widget::context_menu::is_visible() {
- if clear_ui::widget::context_menu::cursor_moved(lx_no_scroll, ly_no_scroll) {
+ if cce_ui::widget::context_menu::is_visible() {
+ if cce_ui::widget::context_menu::cursor_moved(lx_no_scroll, ly_no_scroll) {
self.needs_rebuild = true;
return true;
}
@@ -1793,7 +1793,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let lx = self.cursor_x / s;
let ly = self.cursor_y / s + self.scroll_y;
- clear_ui::widget::hover_animation::set_cursor_pos(lx, ly_no_scroll);
+ cce_ui::widget::hover_animation::set_cursor_pos(lx, ly_no_scroll);
let mut changed = false;
if lx_no_scroll < self.sidebar_width {
if self.menubar.cursor_moved(lx_no_scroll, ly_no_scroll, &mut self.ui_context) {
@@ -1857,6 +1857,12 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if self.app.layout.side_panel_border_opacity_spinbox.cursor_moved(lx, ly, &mut self.ui_context) {
changed = true;
}
+ if self.app.layout.transparency_toggle.cursor_moved(lx, ly, &mut self.ui_context) {
+ changed = true;
+ }
+ if self.app.layout.blur_toggle.cursor_moved(lx, ly, &mut self.ui_context) {
+ changed = true;
+ }
}
if self.app.current_page == Page::Interface {
for cp in &mut self.app.interface.color_selectors {
@@ -2286,15 +2292,15 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
changed
}
- fn handle_mouse_input_internal(&mut self, button: clear_ui::widget::MouseButton, state: clear_ui::widget::ElementState) -> bool {
+ fn handle_mouse_input_internal(&mut self, button: cce_ui::widget::MouseButton, state: cce_ui::widget::ElementState) -> bool {
let s = 1.0f32;
let lx_no_scroll = self.cursor_x / s;
let ly_no_scroll = self.cursor_y / s;
- if clear_ui::widget::context_menu::is_visible() {
- if clear_ui::widget::context_menu::mouse_input(button, state, lx_no_scroll, ly_no_scroll) {
+ if cce_ui::widget::context_menu::is_visible() {
+ if cce_ui::widget::context_menu::mouse_input(button, state, lx_no_scroll, ly_no_scroll) {
let mut actions = Vec::new();
self.propagate_widget_changes(&mut actions);
for action in actions {
@@ -2307,10 +2313,10 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if lx_no_scroll < self.sidebar_width {
if self.menubar.mouse_input(button, state, lx_no_scroll, ly_no_scroll, &mut self.ui_context) {
- use clear_ui::widget::MenuController;
+ use cce_ui::widget::MenuController;
if let Some((idx, _)) = self.menubar.menu_click() {
if idx < Page::ALL.len() {
- clear_ui::widget::focus::clear_focus();
+ cce_ui::widget::focus::clear_focus();
let new_page = Page::ALL[idx];
self.app.current_page = new_page;
self.current_page_shared.store(idx as u8, std::sync::atomic::Ordering::SeqCst);
@@ -2328,8 +2334,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
- if button != clear_ui::widget::MouseButton::Left && button != clear_ui::widget::MouseButton::Right { return false; }
- if button == clear_ui::widget::MouseButton::Left && state == clear_ui::widget::ElementState::Released {
+ if button != cce_ui::widget::MouseButton::Left && button != cce_ui::widget::MouseButton::Right { return false; }
+ if button == cce_ui::widget::MouseButton::Left && state == cce_ui::widget::ElementState::Released {
if self.app.current_page == Page::Audio {
let mut ended = false;
if let Some(idx) = self.audio_sink_dragging {
@@ -2372,7 +2378,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let ly = self.cursor_y / s + self.scroll_y;
let mut actions = Vec::new();
- if state == clear_ui::widget::ElementState::Pressed {
+ if state == cce_ui::widget::ElementState::Pressed {
let mut clicked_any_focusable = false;
match self.app.current_page {
Page::Accounts => {
@@ -2405,6 +2411,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if self.app.layout.side_panel_width_spinbox.hit_test(lx, ly, &self.ui_context) { clicked_any_focusable = true; }
if self.app.layout.side_panel_border_gap_spinbox.hit_test(lx, ly, &self.ui_context) { clicked_any_focusable = true; }
if self.app.layout.side_panel_border_opacity_spinbox.hit_test(lx, ly, &self.ui_context) { clicked_any_focusable = true; }
+ if self.app.layout.transparency_toggle.hit_test(lx, ly, &self.ui_context) { clicked_any_focusable = true; }
+ if self.app.layout.blur_toggle.hit_test(lx, ly, &self.ui_context) { clicked_any_focusable = true; }
}
Page::Interface => {
for cp in &mut self.app.interface.color_selectors {
@@ -2531,11 +2539,11 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
if !clicked_any_focusable {
- clear_ui::widget::focus::clear_focus();
+ cce_ui::widget::focus::clear_focus();
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Layout {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Layout {
for (i, sb) in self.app.layout.spinboxes.iter_mut().enumerate() {
if !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old = sb.value;
@@ -2599,28 +2607,28 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
if self.app.current_page == Page::Layout {
for (idx, menu) in self.app.layout.tag_layout_menus.iter_mut().enumerate() {
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Layout(pages::layout::LayoutMessage::SetTagLayout(idx + 1, menu.selected)));
}
}
let menu = &mut self.app.layout.side_panel_behavior_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Layout(pages::layout::LayoutMessage::SetSidePanelBehavior(menu.selected)));
}
let menu = &mut self.app.layout.side_panel_position_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Layout(pages::layout::LayoutMessage::SetSidePanelPosition(menu.selected)));
}
let sb = &mut self.app.layout.side_panel_width_spinbox;
@@ -2647,8 +2655,18 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
pages::layout::LayoutMessage::SetSidePanelBorderOpacity(sb.value as u16)
));
}
+ let toggle = &mut self.app.layout.transparency_toggle;
+ toggle.mouse_input(button, state, lx, ly, &mut self.ui_context);
+ if toggle.take_click() {
+ actions.push(AppAction::Layout(pages::layout::LayoutMessage::ToggleTransparency));
+ }
+ let toggle2 = &mut self.app.layout.blur_toggle;
+ toggle2.mouse_input(button, state, lx, ly, &mut self.ui_context);
+ if toggle2.take_click() {
+ actions.push(AppAction::Layout(pages::layout::LayoutMessage::ToggleBlur));
+ }
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Interface {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Interface {
for (i, cp) in self.app.interface.color_selectors.iter_mut().enumerate() {
let old = cp.color;
if !cp.hit_test(lx, ly, &self.ui_context) { cp.unfocus(); }
@@ -2743,11 +2761,11 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetSectionPadding(sb.value as u16)));
}
let menu = &mut self.app.interface.label_alignment_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetNestedSectionLabelAlignment(menu.selected)));
}
let sb = &mut self.app.interface.label_offset_spinbox;
@@ -2880,7 +2898,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetButtonCornerRadius(sb.value as u16)));
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Input {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Input {
let sb = &mut self.app.input.rate_spinbox;
if !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old = sb.value;
@@ -2930,7 +2948,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
actions.push(AppAction::Input(pages::input::InputMessage::ApplyCursorSize));
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Services {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Services {
let sb = &mut self.app.services.notifications_duration_spinbox;
if !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old = sb.value;
@@ -2976,37 +2994,37 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
actions.push(AppAction::Input(pages::input::InputMessage::ToggleDwtp));
}
let menu = &mut self.app.input.trackpoint_accel_profile_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Input(pages::input::InputMessage::ApplyTrackpointAccelProfile(menu.selected)));
}
let menu = &mut self.app.input.cursor_theme_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Input(pages::input::InputMessage::ApplyCursorTheme(menu.selected)));
}
let tb = &mut self.app.input.zoom_in_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Input(pages::input::InputMessage::ApplyZoomIn));
}
let tb = &mut self.app.input.zoom_out_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Input(pages::input::InputMessage::ApplyZoomOut));
}
}
@@ -3021,7 +3039,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if toggle.take_click() {
actions.push(AppAction::Services(pages::services::ServicesMessage::ToggleNotificationsBell));
}
- if state == clear_ui::widget::ElementState::Pressed {
+ if state == cce_ui::widget::ElementState::Pressed {
let lbl1 = &mut self.app.services.status_label;
if !lbl1.hit_test(lx, ly, &self.ui_context) { lbl1.unfocus(); }
lbl1.mouse_input(button, state, lx, ly, &mut self.ui_context);
@@ -3051,21 +3069,21 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let menu = &mut self.app.display.screensaver_style_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Display(pages::display::DisplayMessage::SetScreensaverStyle(menu.selected)));
}
}
if self.app.current_page == Page::Hardware {
let menu = &mut self.app.hardware.cpu_gov_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
if menu.selected == 0 {
actions.push(AppAction::Hardware(pages::hardware::HardwareMessage::SetCpuPerformance));
} else {
@@ -3074,11 +3092,11 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let menu = &mut self.app.hardware.gpu_gov_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
if menu.selected == 0 {
actions.push(AppAction::Hardware(pages::hardware::HardwareMessage::SetGpuDefault));
} else {
@@ -3087,8 +3105,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Audio {
- if button == clear_ui::widget::MouseButton::Left {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Audio {
+ if button == cce_ui::widget::MouseButton::Left {
for (i, slider) in self.app.audio.sink_sliders.iter_mut().enumerate() {
if slider.hit_test(lx, ly, &self.ui_context) {
slider.drag_begin(lx, ly);
@@ -3121,8 +3139,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Display {
- if button == clear_ui::widget::MouseButton::Left {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Display {
+ if button == cce_ui::widget::MouseButton::Left {
let slider = &mut self.app.display.brightness_slider;
if slider.hit_test(lx, ly, &self.ui_context) {
slider.drag_begin(lx, ly);
@@ -3166,23 +3184,23 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if self.app.current_page == Page::Accounts {
if self.app.accounts.editing_oauth_creds {
let tb = &mut self.app.accounts.oauth_client_id_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
let tb = &mut self.app.accounts.oauth_client_secret_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
} else if self.app.accounts.adding_new {
let tb = &mut self.app.accounts.email_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
let email_val = tb.text.trim().to_lowercase();
if email_val.ends_with("@gmail.com") {
self.app.accounts.imap_box.text = "imap.gmail.com:993".to_string();
@@ -3203,19 +3221,19 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let tb = &mut self.app.accounts.password_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
let tb = &mut self.app.accounts.imap_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
let tb = &mut self.app.accounts.smtp_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3223,101 +3241,101 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
if self.app.current_page == Page::Interface {
let tb = &mut self.app.interface.sans_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetSans(tb.text.clone())));
}
let tb = &mut self.app.interface.serif_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetSerif(tb.text.clone())));
}
let tb = &mut self.app.interface.mono_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetMono(tb.text.clone())));
}
let menu = &mut self.app.interface.borders_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetBordersMenu(menu.selected)));
}
let tb = &mut self.app.interface.borders_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetBorders(tb.text.clone())));
}
let menu = &mut self.app.interface.status_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetStatusMenu(menu.selected)));
}
let tb = &mut self.app.interface.status_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetStatus(tb.text.clone())));
}
let menu = &mut self.app.interface.fuzzel_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetFuzzelMenu(menu.selected)));
}
let tb = &mut self.app.interface.fuzzel_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetFuzzel(tb.text.clone())));
}
let menu = &mut self.app.interface.terminal_menu;
- if state == clear_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !menu.hit_test(lx, ly, &self.ui_context) { menu.unfocus(); }
if menu.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && menu.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && menu.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetTerminalMenu(menu.selected)));
}
let tb = &mut self.app.interface.terminal_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
- if state == clear_ui::widget::ElementState::Pressed && tb.take_change() {
+ if state == cce_ui::widget::ElementState::Pressed && tb.take_change() {
actions.push(AppAction::Interface(pages::interface::InterfaceMessage::SetTerminal(tb.text.clone())));
}
@@ -3326,7 +3344,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let fs = &mut self.app.interface.color_selector_font_selector;
- if state == clear_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
if fs.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3335,7 +3353,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let fs = &mut self.app.interface.menubar_font_selector;
- if state == clear_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
if fs.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3344,7 +3362,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let fs = &mut self.app.interface.section_label_font_selector;
- if state == clear_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
if fs.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3353,7 +3371,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let fs = &mut self.app.interface.nested_section_label_font_selector;
- if state == clear_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !fs.hit_test(lx, ly, &self.ui_context) { fs.unfocus(); }
if fs.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3362,7 +3380,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let sb = &mut self.app.interface.borders_size_box;
- if state == clear_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old_val = sb.value;
if sb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
@@ -3372,7 +3390,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let sb = &mut self.app.interface.status_size_box;
- if state == clear_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old_val = sb.value;
if sb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
@@ -3382,7 +3400,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let sb = &mut self.app.interface.fuzzel_size_box;
- if state == clear_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old_val = sb.value;
if sb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
@@ -3392,7 +3410,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
let sb = &mut self.app.interface.terminal_size_box;
- if state == clear_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !sb.hit_test(lx, ly, &self.ui_context) { sb.unfocus(); }
let old_val = sb.value;
if sb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
@@ -3407,7 +3425,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
if self.app.current_page == Page::Services {
let tb = &mut self.app.services.search_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) { tb.unfocus(); }
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
@@ -3433,7 +3451,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if self.app.current_page == Page::Packages {
let pkgs = &mut self.app.packages;
let tb = &mut pkgs.search_box;
- if state == clear_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) {
+ if state == cce_ui::widget::ElementState::Pressed && !tb.hit_test(lx, ly, &self.ui_context) {
tb.unfocus();
}
if tb.mouse_input(button, state, lx, ly, &mut self.ui_context) {
@@ -3488,13 +3506,13 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Hardware {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Hardware {
let hw = &mut self.app.hardware;
if hw.cpu_list_box.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
}
}
- if state == clear_ui::widget::ElementState::Pressed && self.app.current_page == Page::Radios {
+ if state == cce_ui::widget::ElementState::Pressed && self.app.current_page == Page::Radios {
let net = &mut self.app.network;
if net.wifi_list_box.mouse_input(button, state, lx, ly, &mut self.ui_context) {
self.needs_rebuild = true;
@@ -3903,7 +3921,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
}
}
- fn handle_mouse_wheel_internal(&mut self, delta: &clear_ui::widget::MouseScrollDelta, px: f32, py: f32) -> bool {
+ fn handle_mouse_wheel_internal(&mut self, delta: &cce_ui::widget::MouseScrollDelta, px: f32, py: f32) -> bool {
if let Ok(mut file) = std::fs::OpenOptions::new().create(true).append(true).open("/tmp/clear-scroll-debug.txt") {
use std::io::Write;
let _ = writeln!(file, "handle_mouse_wheel_internal: px={}, py={}, delta={:?}, sidebar_w={}", px, py, delta, self.sidebar_width);
@@ -4076,8 +4094,8 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
let scroll_speed = 24.0;
let dy = match delta {
- clear_ui::widget::MouseScrollDelta::LineDelta(_, y) => -y * scroll_speed,
- clear_ui::widget::MouseScrollDelta::PixelDelta(pos) => -pos.y as f32,
+ cce_ui::widget::MouseScrollDelta::LineDelta(_, y) => -y * scroll_speed,
+ cce_ui::widget::MouseScrollDelta::PixelDelta(pos) => -pos.y as f32,
};
let old_scroll = self.scroll_y;
self.scroll_y = (self.scroll_y + dy).max(0.0).min(self.max_scroll_y);
@@ -4096,24 +4114,24 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
false
}
- fn get_page_root_widget(&mut self) -> Option<*mut (dyn clear_ui::widget::Element + 'static)> {
+ fn get_page_root_widget(&mut self) -> Option<*mut (dyn cce_ui::widget::Element + 'static)> {
let page_idx = Page::ALL.iter().position(|&p| p == self.app.current_page).unwrap_or(0);
- let ptr = &mut self.plates[page_idx] as &mut dyn clear_ui::widget::Element as *mut dyn clear_ui::widget::Element;
+ let ptr = &mut self.plates[page_idx] as &mut dyn cce_ui::widget::Element as *mut dyn cce_ui::widget::Element;
let static_ptr = unsafe {
- std::mem::transmute::<*mut dyn clear_ui::widget::Element, *mut (dyn clear_ui::widget::Element + 'static)>(ptr)
+ std::mem::transmute::<*mut dyn cce_ui::widget::Element, *mut (dyn cce_ui::widget::Element + 'static)>(ptr)
};
Some(static_ptr)
}
- fn handle_key_input_internal(&mut self, event: &clear_ui::widget::KeyEvent) -> bool {
- if event.state == clear_ui::widget::ElementState::Pressed && !event.repeat {
+ fn handle_key_input_internal(&mut self, event: &cce_ui::widget::KeyEvent) -> bool {
+ if event.state == cce_ui::widget::ElementState::Pressed && !event.repeat {
let is_nav_key = match (&event.logical_key, event.ctrl) {
- (clear_ui::widget::Key::Character(c), true) if c == "j" || c == "J" || c == "k" || c == "K" || c == "u" || c == "U" || c == "i" || c == "I" => true,
+ (cce_ui::widget::Key::Character(c), true) if c == "j" || c == "J" || c == "k" || c == "K" || c == "u" || c == "U" || c == "i" || c == "I" => true,
_ => false,
};
if is_nav_key {
- if clear_ui::widget::focus::has_focus() {
- if clear_ui::widget::focus::navigate_focus(&event.logical_key, event.ctrl) {
+ if cce_ui::widget::focus::has_focus() {
+ if cce_ui::widget::focus::navigate_focus(&event.logical_key, event.ctrl) {
self.needs_rebuild = true;
return true;
}
@@ -4121,7 +4139,7 @@ fn collect_popover_rects(w: &dyn clear_ui::widget::Element, popovers: &mut Vec<(
if let Some(root_ptr) = self.get_page_root_widget() {
unsafe {
let root_ref = &mut *root_ptr;
- clear_ui::widget::focus::set_focused(root_ref);
+ cce_ui::widget::focus::set_focused(root_ref);
root_ref.focus();
self.needs_rebuild = true;
return true;
@@ -5010,5 +5028,5 @@ fn main() {
let initial_page_idx = Page::ALL.iter().position(|&p| p == initial_page).unwrap_or(0);
INITIAL_PAGE_INDEX.store(initial_page_idx, std::sync::atomic::Ordering::SeqCst);
- clear_ui::engine::run::<SystemInterface>();
+ cce_ui::engine::run::<SystemInterface>();
}
diff --git a/src/pages/accounts.rs b/src/pages/accounts.rs
index 9bd7c60..4aff9a6 100644
--- a/src/pages/accounts.rs
+++ b/src/pages/accounts.rs
@@ -1,6 +1,6 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{TextBox, Element};
+use cce_ui::layout::{PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{TextBox, Element};
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct AccountInfo {
@@ -110,9 +110,9 @@ pub fn load_accounts() -> Vec<AccountInfo> {
}
vec![
AccountInfo {
- email: "[email protected]".to_string(),
- imap: "imap.clear-ui.org:993".to_string(),
- smtp: "smtp.clear-ui.org:465".to_string(),
+ email: "[email protected]".to_string(),
+ imap: "imap.cce-ui.org:993".to_string(),
+ smtp: "smtp.cce-ui.org:465".to_string(),
is_default: true,
password: "mock_password".to_string(),
is_oauth: false,
@@ -341,15 +341,15 @@ pub async fn exchange_code_for_tokens(code: String, sender: calloop::channel::Se
const TEXT_DIM: [f32; 4] = [0.53, 0.53, 0.60, 1.0];
-pub fn view(state: &mut AccountsState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut AccountsState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(2);
- let lm = clear_ui::layout::label_margin();
- let row_h = clear_ui::layout::spinbox_height();
+ let lm = cce_ui::layout::label_margin();
+ let row_h = cce_ui::layout::spinbox_height();
let row_gap = lm * 1.0;
- let widget_h = clear_ui::layout::spinbox_height();
+ let widget_h = cce_ui::layout::spinbox_height();
let field_gap = lm * 1.5;
let btn_gap = lm * 1.0;
diff --git a/src/pages/audio.rs b/src/pages/audio.rs
index 218505e..4cd3f47 100644
--- a/src/pages/audio.rs
+++ b/src/pages/audio.rs
@@ -1,6 +1,6 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Spinbox, Slider, Element};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Spinbox, Slider, Element};
#[derive(Debug, Clone)]
pub struct AudioSink {
@@ -217,7 +217,7 @@ const FILL_BAR: [f32; 4] = [0.30, 0.50, 0.32, 1.0];
const WHITE: [f32; 4] = [1.0, 1.0, 1.0, 1.0];
const RED: [f32; 4] = [1.0, 0.33, 0.33, 1.0];
-pub fn view(state: &mut AudioState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut AudioState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(2);
@@ -260,13 +260,13 @@ pub fn view(state: &mut AudioState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
state.sink_sliders[idx].set_value(sink.volume);
let slider_x = subsec.ax(bar_x);
- let label_h = clear_ui::widget::label_offset(&state.sink_sliders[idx]);
- let slider_h = clear_ui::layout::slider_height() + label_h;
+ let label_h = cce_ui::widget::label_offset(&state.sink_sliders[idx]);
+ let slider_h = cce_ui::layout::slider_height() + label_h;
render_widget(subsec.pc, &mut state.sink_sliders[idx], slider_x, yt, bar_w, slider_h, ctx);
let row_y = subsec.ay() + slider_h + 8.0;
let sb_w = 100.0;
- let sb_h = clear_ui::layout::spinbox_height();
+ let sb_h = cce_ui::layout::spinbox_height();
let mute_w = 60.0;
let gap = 8.0;
@@ -328,13 +328,13 @@ pub fn view(state: &mut AudioState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
state.source_sliders[idx].set_value(src.volume);
let slider_x = subsec.ax(bar_x);
- let label_h = clear_ui::widget::label_offset(&state.source_sliders[idx]);
- let slider_h = clear_ui::layout::slider_height() + label_h;
+ let label_h = cce_ui::widget::label_offset(&state.source_sliders[idx]);
+ let slider_h = cce_ui::layout::slider_height() + label_h;
render_widget(subsec.pc, &mut state.source_sliders[idx], slider_x, yt, bar_w, slider_h, ctx);
let row_y = subsec.ay() + slider_h + 8.0;
let sb_w = 100.0;
- let sb_h = clear_ui::layout::spinbox_height();
+ let sb_h = cce_ui::layout::spinbox_height();
let mute_w = 60.0;
let gap = 8.0;
@@ -401,13 +401,13 @@ pub fn update(state: &mut AudioState, msg: AudioMessage) {
#[cfg(test)]
mod tests {
use super::*;
- use clear_ui::layout::GridLayout;
+ use cce_ui::layout::GridLayout;
#[test]
fn test_view_layout_grid() {
let mut state = AudioState::default();
let mut layout = GridLayout::new(260.0, 20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false], &mut layout, &mut clear_ui::context::UiContext::new());
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false], &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty());
}
}
diff --git a/src/pages/display.rs b/src/pages/display.rs
index 1cd4054..c01689b 100644
--- a/src/pages/display.rs
+++ b/src/pages/display.rs
@@ -1,6 +1,6 @@
use crate::app::{PageContent, SectionContextExt};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Spinbox, Label, Element, Toggle, Dropdown, Slider};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Spinbox, Label, Element, Toggle, Dropdown, Slider};
const CONFIG_PATH: &str = "/home/lsgalante/.config/cce/config.toml";
@@ -381,7 +381,7 @@ const BTN_BG: [f32; 4] = [0.20, 0.40, 0.65, 1.0];
const BTN_HOVER: [f32; 4] = [0.28, 0.50, 0.78, 1.0];
const WHITE: [f32; 4] = [1.0, 1.0, 1.0, 1.0];
-pub fn view(state: &mut DisplayState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut DisplayState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(4);
@@ -401,12 +401,12 @@ pub fn view(state: &mut DisplayState, cx: f32, cy: f32, cw: f32, ch: f32, layout
let yt = sec.ay();
state.brightness_slider.set_value(bright_pct as f32 / 100.0);
let slider_x = sec.ax(12.0);
- render_widget(sec.pc, &mut state.brightness_slider, slider_x, yt, bar_w, clear_ui::layout::slider_height(), ctx);
+ render_widget(sec.pc, &mut state.brightness_slider, slider_x, yt, bar_w, cce_ui::layout::slider_height(), ctx);
sec.text(&format!("{}%", bright_pct), 12.0 + bar_w + 8.0, 7.0, 11.0, TEXT_DIM);
sec.spacing(34.0);
state.brightness_spinbox.value = bright_pct;
- sec.widget_full(&mut state.brightness_spinbox, clear_ui::layout::spinbox_height(), ctx);
+ sec.widget_full(&mut state.brightness_spinbox, cce_ui::layout::spinbox_height(), ctx);
sec.spacing(12.0);
}
});
@@ -444,18 +444,18 @@ pub fn view(state: &mut DisplayState, cx: f32, cy: f32, cw: f32, ch: f32, layout
// ── Screensaver Settings ──
builder.add_section(&mut final_pc, "Screensaver Settings", false, |sec| {
state.screensaver_enable_toggle.set_toggled(state.screensaver_enable);
- sec.widget_full(&mut state.screensaver_enable_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.screensaver_enable_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(8.0);
state.screensaver_lock_screen_toggle.set_toggled(state.screensaver_lock_screen);
- sec.widget_full(&mut state.screensaver_lock_screen_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.screensaver_lock_screen_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(16.0);
state.screensaver_timeout_spinbox.value = state.screensaver_timeout;
- sec.widget_full(&mut state.screensaver_timeout_spinbox, clear_ui::layout::spinbox_height(), ctx);
+ sec.widget_full(&mut state.screensaver_timeout_spinbox, cce_ui::layout::spinbox_height(), ctx);
sec.spacing(16.0);
- sec.widget_full(&mut state.screensaver_style_menu, clear_ui::layout::dropdown_height(), ctx);
+ sec.widget_full(&mut state.screensaver_style_menu, cce_ui::layout::dropdown_height(), ctx);
sec.spacing(24.0);
let btn_h = 32.0;
@@ -579,8 +579,8 @@ mod tests {
#[test]
fn test_view_layout_grid() {
let mut state = DisplayState::default();
- let mut layout = clear_ui::layout::GridLayout::new(260.0, 20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::GridLayout::new(260.0, 20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty());
}
}
diff --git a/src/pages/hardware.rs b/src/pages/hardware.rs
index c6be8a6..1413639 100644
--- a/src/pages/hardware.rs
+++ b/src/pages/hardware.rs
@@ -1,6 +1,6 @@
use crate::app::{AppAction, PageContent};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Label, ScrollingList, Dropdown, InfoBox};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Label, ScrollingList, Dropdown, InfoBox};
#[derive(Debug, Clone, Default)]
pub struct BatteryInfo {
@@ -378,7 +378,7 @@ const ACCENT: [f32; 4] = [0.36, 0.56, 0.38, 1.0];
const RED: [f32; 4] = [1.0, 0.33, 0.33, 1.0];
const ORANGE: [f32; 4] = [1.0, 0.73, 0.20, 1.0];
-pub fn view(state: &mut HardwareState, cx: f32, cy: f32, cw: f32, ch: f32, root_focused: bool, layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut HardwareState, cx: f32, cy: f32, cw: f32, ch: f32, root_focused: bool, layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(5);
diff --git a/src/pages/input.rs b/src/pages/input.rs
index 88b5f3a..abf41b5 100644
--- a/src/pages/input.rs
+++ b/src/pages/input.rs
@@ -2,8 +2,8 @@ use std::fs;
use std::io::Write;
use crate::app::PageContent;
-use clear_ui::layout::{PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Spinbox, Toggle, Trackpad, Dropdown, Finger, Element, TextBox};
+use cce_ui::layout::{PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Spinbox, Toggle, Trackpad, Dropdown, Finger, Element, TextBox};
const CONFIG_PATH: &str = "/home/lsgalante/.config/cce/config.toml";
@@ -162,7 +162,7 @@ impl Default for InputState {
}
impl InputState {
- pub fn is_over_trackpad(&self, lx: f32, ly: f32, ctx: &clear_ui::context::UiContext) -> bool {
+ pub fn is_over_trackpad(&self, lx: f32, ly: f32, ctx: &cce_ui::context::UiContext) -> bool {
self.trackpad.hit_test(lx, ly, ctx)
}
}
@@ -409,7 +409,7 @@ fn apply_repeat_config(rate: u16, delay: u16) {
const TEXT_FG: [f32; 4] = [0.83, 0.83, 0.83, 1.0];
const TEXT_DIM: [f32; 4] = [0.53, 0.53, 0.60, 1.0];
-pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(8);
@@ -417,7 +417,7 @@ pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
// ── Touchpad ──
builder.add_section(&mut final_pc, "Touchpad", false, |sec| {
state.tap_toggle.set_toggled(state.tap_to_click);
- sec.widget_full(&mut state.tap_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.tap_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(8.0);
// Built-in trackpad visualizer widget
@@ -431,7 +431,7 @@ pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
// ── Trackpoint ──
builder.add_section(&mut final_pc, "Trackpoint", sec_focused.first().copied().unwrap_or(false), |sec| {
state.dwtp_toggle.set_toggled(state.dwtp);
- sec.widget_full(&mut state.dwtp_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.dwtp_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(12.0);
sec.widget_full(&mut state.trackpoint_accel_speed_spinbox, 44.0, ctx);
@@ -462,14 +462,14 @@ pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
// ── Scrolling ──
builder.add_section(&mut final_pc, "Scrolling", sec_focused.get(3).copied().unwrap_or(false), |sec| {
state.scroll_toggle.set_toggled(state.inertial_scroll);
- sec.widget_full(&mut state.scroll_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.scroll_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(12.0);
sec.widget_full(&mut state.scroll_friction_spinbox, 44.0, ctx);
sec.spacing(12.0);
state.natural_toggle.set_toggled(state.natural_scroll);
- sec.widget_full(&mut state.natural_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.natural_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(12.0);
sec.widget_full(&mut state.scroll_speed_spinbox, 44.0, ctx);
@@ -479,14 +479,14 @@ pub fn view(state: &mut InputState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focu
// ── Inertial Input ──
builder.add_section(&mut final_pc, "Inertial Input", sec_focused.get(4).copied().unwrap_or(false), |sec| {
state.pointer_toggle.set_toggled(state.inertial_pointer);
- sec.widget_full(&mut state.pointer_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.pointer_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(12.0);
sec.widget_full(&mut state.pointer_friction_spinbox, 44.0, ctx);
sec.spacing(16.0);
state.trackpad_toggle.set_toggled(state.inertial_trackpad);
- sec.widget_full(&mut state.trackpad_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec.widget_full(&mut state.trackpad_toggle, cce_ui::layout::toggle_height(), ctx);
sec.spacing(12.0);
sec.widget_full(&mut state.trackpad_friction_spinbox, 44.0, ctx);
@@ -639,7 +639,7 @@ mod tests {
fn test_is_over_trackpad() {
let mut state = InputState::default();
state.trackpad.set_rect(100.0, 200.0, 300.0, 150.0);
- let ctx = clear_ui::context::UiContext::new();
+ let ctx = cce_ui::context::UiContext::new();
// Inside
assert!(state.is_over_trackpad(150.0, 250.0, &ctx));
@@ -669,8 +669,8 @@ mod tests {
#[test]
fn test_view_layout_grid() {
let mut state = InputState::default();
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false, false, false, false], &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false, false, false, false], &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty());
}
}
diff --git a/src/pages/interface.rs b/src/pages/interface.rs
index ef5dcf5..9b39ba7 100644
--- a/src/pages/interface.rs
+++ b/src/pages/interface.rs
@@ -1,8 +1,8 @@
use std::fs;
use std::io::Write;
use crate::app::PageContent;
-use clear_ui::layout::{PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{
+use cce_ui::layout::{PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{
ColorSelector, Spinbox, Element, Dropdown, TextBox, FontSelector, Toggle
};
@@ -716,7 +716,7 @@ fn apply_disabled_color(rgb: [u8; 3]) {
send_ipc_command(&format!("layout disabled_color #{:02x}{:02x}{:02x}", rgb[0], rgb[1], rgb[2]));
}
-fn status_interface_reload() {
+pub fn status_interface_reload() {
let _ = std::process::Command::new("pkill")
.args(["-f", "cce-status-interface"])
.status();
@@ -739,28 +739,28 @@ fn apply_visual_guides_color(rgb: [u8; 3]) {
fn apply_slider_track_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("slider_track_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_slider_track([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_slider_track([r, g, b, 1.0]);
}
fn apply_page_low_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("page_low_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_page_low_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_page_low_color([r, g, b, 1.0]);
}
fn apply_color_borders_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("color_borders_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_color_borders_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_color_borders_color([r, g, b, 1.0]);
}
fn apply_normal_color(rgb: [u8; 3]) {
@@ -772,73 +772,73 @@ fn apply_normal_color(rgb: [u8; 3]) {
fn apply_paginator_sidebar_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("paginator_sidebar_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_sidebar_bg_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_sidebar_bg_color([r, g, b, 1.0]);
}
fn apply_primary_highlight_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("primary_highlight_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_highlight_primary_color([r, g, b, 0.12]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_highlight_primary_color([r, g, b, 0.12]);
}
fn apply_menubar_tab_label_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("menubar_tab_label_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_menubar_tab_label_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_menubar_tab_label_color([r, g, b, 1.0]);
}
fn apply_toggle_enabled_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("toggle_enabled_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_toggle_on_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_toggle_on_color([r, g, b, 1.0]);
}
fn apply_toggle_disabled_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("toggle_disabled_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_toggle_off_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_toggle_off_color([r, g, b, 1.0]);
}
fn apply_scrollinglist_bg_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("scrollinglist_bg_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_scrollinglist_bg_color([r, g, b, 0.3]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_scrollinglist_bg_color([r, g, b, 0.3]);
}
fn apply_breadcrumb_bg_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("breadcrumb_bg_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_breadcrumb_bg_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_breadcrumb_bg_color([r, g, b, 1.0]);
}
fn apply_popover_bg_color(rgb: [u8; 3]) {
let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
write_config_value("popover_bg_color", &hex);
- let r = clear_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
- let g = clear_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
- let b = clear_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
- clear_ui::color::set_popover_bg_color([r, g, b, 1.0]);
+ let r = cce_ui::color::srgb_to_linear(rgb[0] as f32 / 255.0);
+ let g = cce_ui::color::srgb_to_linear(rgb[1] as f32 / 255.0);
+ let b = cce_ui::color::srgb_to_linear(rgb[2] as f32 / 255.0);
+ cce_ui::color::set_popover_bg_color([r, g, b, 1.0]);
}
fn apply_notifications_bg_color(rgb: [u8; 3]) {
@@ -855,136 +855,136 @@ fn apply_notifications_opacity(opacity: f32) {
fn apply_paginator_tab_margin_x(margin: u16) {
write_config_value("paginator_tab_margin_x", &margin.to_string());
send_ipc_command(&format!("layout paginator_tab_margin_x {}", margin));
- clear_ui::layout::set_paginator_tab_margin_x(margin as f32);
+ cce_ui::layout::set_paginator_tab_margin_x(margin as f32);
}
fn apply_paginator_tab_margin_y(margin: u16) {
write_config_value("paginator_tab_margin_y", &margin.to_string());
send_ipc_command(&format!("layout paginator_tab_margin_y {}", margin));
- clear_ui::layout::set_paginator_tab_margin_y(margin as f32);
+ cce_ui::layout::set_paginator_tab_margin_y(margin as f32);
}
fn apply_paginator_tab_padding_x(padding: u16) {
write_config_value("paginator_tab_padding_x", &padding.to_string());
send_ipc_command(&format!("layout paginator_tab_padding_x {}", padding));
- clear_ui::layout::set_paginator_tab_padding_x(padding as f32);
+ cce_ui::layout::set_paginator_tab_padding_x(padding as f32);
}
fn apply_paginator_tab_padding_y(padding: u16) {
write_config_value("paginator_tab_padding_y", &padding.to_string());
send_ipc_command(&format!("layout paginator_tab_padding_y {}", padding));
- clear_ui::layout::set_paginator_tab_padding_y(padding as f32);
+ cce_ui::layout::set_paginator_tab_padding_y(padding as f32);
}
fn apply_plate_padding(padding: u16) {
write_config_value("plate_padding", &padding.to_string());
- clear_ui::layout::set_plate_padding(padding as f32);
+ cce_ui::layout::set_plate_padding(padding as f32);
}
fn apply_page_margin(margin: u16) {
write_config_value("page_margin", &margin.to_string());
- clear_ui::layout::set_page_margin(margin as f32);
+ cce_ui::layout::set_page_margin(margin as f32);
}
fn apply_grid_min_col_width(width: u16) {
write_config_value("grid_min_col_width", &width.to_string());
- clear_ui::layout::set_grid_min_col_width(width as f32);
+ cce_ui::layout::set_grid_min_col_width(width as f32);
}
fn apply_section_padding(padding: u16) {
write_config_value("section_padding", &padding.to_string());
- clear_ui::layout::set_section_padding(padding as f32);
+ cce_ui::layout::set_section_padding(padding as f32);
}
fn apply_spinbox_height(height: u16) {
write_config_value("spinbox_height", &height.to_string());
- clear_ui::layout::set_spinbox_height(height as f32);
+ cce_ui::layout::set_spinbox_height(height as f32);
}
fn apply_spinbox_corner_radius(radius: u16) {
write_config_value("spinbox_corner_radius", &radius.to_string());
- clear_ui::layout::set_spinbox_corner_radius(radius as f32);
+ cce_ui::layout::set_spinbox_corner_radius(radius as f32);
}
fn apply_toggle_height(height: u16) {
write_config_value("toggle_height", &height.to_string());
- clear_ui::layout::set_toggle_height(height as f32);
+ cce_ui::layout::set_toggle_height(height as f32);
}
fn apply_color_selector_height(height: u16) {
write_config_value("color_selector_height", &height.to_string());
- clear_ui::layout::set_color_selector_height(height as f32);
+ cce_ui::layout::set_color_selector_height(height as f32);
}
fn apply_color_selector_preview_corner_radius(radius: u16) {
write_config_value("color_selector_preview_corner_radius", &radius.to_string());
- clear_ui::layout::set_color_selector_preview_corner_radius(radius as f32);
+ cce_ui::layout::set_color_selector_preview_corner_radius(radius as f32);
}
fn apply_color_selector_preview_margin(margin: u16) {
write_config_value("color_selector_preview_margin", &margin.to_string());
- clear_ui::layout::set_color_selector_preview_margin(margin as f32);
+ cce_ui::layout::set_color_selector_preview_margin(margin as f32);
}
fn apply_textbox_height(height: u16) {
write_config_value("textbox_height", &height.to_string());
- clear_ui::layout::set_textbox_height(height as f32);
+ cce_ui::layout::set_textbox_height(height as f32);
}
fn apply_slider_height(height: u16) {
write_config_value("slider_height", &height.to_string());
- clear_ui::layout::set_slider_height(height as f32);
+ cce_ui::layout::set_slider_height(height as f32);
}
fn apply_font_selector_height(height: u16) {
write_config_value("font_selector_height", &height.to_string());
- clear_ui::layout::set_font_selector_height(height as f32);
+ cce_ui::layout::set_font_selector_height(height as f32);
}
fn apply_dropdown_height(height: u16) {
write_config_value("dropdown_height", &height.to_string());
- clear_ui::layout::set_dropdown_height(height as f32);
+ cce_ui::layout::set_dropdown_height(height as f32);
}
fn apply_button_corner_radius(radius: u16) {
write_config_value("button_corner_radius", &radius.to_string());
- clear_ui::layout::set_button_corner_radius(radius as f32);
+ cce_ui::layout::set_button_corner_radius(radius as f32);
}
fn apply_color_selector_font(font: &str) {
write_config_value("color_selector_font", &format!("\"{}\"", font));
- clear_ui::layout::set_color_selector_font(font);
+ cce_ui::layout::set_color_selector_font(font);
}
fn apply_menubar_font(font: &str) {
write_config_value("menubar_font", &format!("\"{}\"", font));
- clear_ui::layout::set_menubar_font(font);
+ cce_ui::layout::set_menubar_font(font);
}
fn apply_section_label_font(font: &str) {
write_config_value("section_label_font", &format!("\"{}\"", font));
- clear_ui::layout::set_section_label_font(font);
+ cce_ui::layout::set_section_label_font(font);
}
fn apply_nested_section_label_font(font: &str) {
write_config_value("nested_section_label_font", &format!("\"{}\"", font));
- clear_ui::layout::set_nested_section_label_font(font);
+ cce_ui::layout::set_nested_section_label_font(font);
}
fn apply_nested_section_label_alignment(align: u8) {
write_config_value("nested_section_label_alignment", &align.to_string());
- clear_ui::layout::set_nested_section_label_alignment(align);
+ cce_ui::layout::set_nested_section_label_alignment(align);
}
fn apply_nested_section_label_offset(offset: i16) {
write_config_value("nested_section_label_offset", &offset.to_string());
- clear_ui::layout::set_nested_section_label_offset(offset as f32);
+ cce_ui::layout::set_nested_section_label_offset(offset as f32);
}
fn apply_label_margin(margin: u16) {
write_config_value("label_margin", &margin.to_string());
- clear_ui::layout::set_label_margin(margin as f32);
+ cce_ui::layout::set_label_margin(margin as f32);
}
const FONTS_CONF_PATH: &str = "/home/lsgalante/.config/fontconfig/fonts.conf";
@@ -1388,7 +1388,7 @@ pub async fn fetch_typeface_state() -> InterfaceState {
state
}
-pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 260.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(6);
@@ -1732,9 +1732,9 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
let cols = subsec.row_layout(2, 10.0);
if cols.len() == 2 {
state.borders_menu.set_row_rect(cols[0].0, cols[0].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.borders_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.borders_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
state.borders_size_box.set_row_rect(cols[1].0, cols[1].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.borders_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.borders_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
}
subsec.spacing(widget_h);
subsec.widget_full(&mut state.borders_box, 44.0, ctx);
@@ -1745,9 +1745,9 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
let cols = subsec.row_layout(2, 10.0);
if cols.len() == 2 {
state.status_menu.set_row_rect(cols[0].0, cols[0].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.status_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.status_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
state.status_size_box.set_row_rect(cols[1].0, cols[1].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.status_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.status_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
}
subsec.spacing(widget_h);
subsec.widget_full(&mut state.status_box, 44.0, ctx);
@@ -1758,9 +1758,9 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
let cols = subsec.row_layout(2, 10.0);
if cols.len() == 2 {
state.fuzzel_menu.set_row_rect(cols[0].0, cols[0].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.fuzzel_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.fuzzel_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
state.fuzzel_size_box.set_row_rect(cols[1].0, cols[1].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.fuzzel_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.fuzzel_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
}
subsec.spacing(widget_h);
subsec.widget_full(&mut state.fuzzel_box, 44.0, ctx);
@@ -1771,9 +1771,9 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
let cols = subsec.row_layout(2, 10.0);
if cols.len() == 2 {
state.terminal_menu.set_row_rect(cols[0].0, cols[0].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.terminal_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.terminal_menu, cols[0].0, start_y, cols[0].1, widget_h, ctx);
state.terminal_size_box.set_row_rect(cols[1].0, cols[1].1);
- clear_ui::layout::render_widget(subsec.pc, &mut state.terminal_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
+ cce_ui::layout::render_widget(subsec.pc, &mut state.terminal_size_box, cols[1].0, start_y, cols[1].1, widget_h, ctx);
}
subsec.spacing(widget_h);
subsec.widget_full(&mut state.terminal_box, 44.0, ctx);
@@ -2435,7 +2435,7 @@ pub fn update(state: &mut InterfaceState, msg: InterfaceMessage) {
}
}
-fn parse_transparency_opacity(content: &str) -> f32 {
+pub fn parse_transparency_opacity(content: &str) -> f32 {
let mut in_section = false;
for line in content.lines() {
let trimmed = line.trim();
@@ -2457,7 +2457,7 @@ fn parse_transparency_opacity(content: &str) -> f32 {
0.9 // default to 0.9
}
-fn write_transparency_config_value(key: &str, value: &str) {
+pub fn write_transparency_config_value(key: &str, value: &str) {
let content = fs::read_to_string(CONFIG_PATH).unwrap_or_default();
let new_line = format!("{} = {}", key, value);
diff --git a/src/pages/layout.rs b/src/pages/layout.rs
index 7c83bfe..8b4f145 100644
--- a/src/pages/layout.rs
+++ b/src/pages/layout.rs
@@ -2,8 +2,9 @@ use std::fs;
use std::io::Write;
use crate::app::PageContent;
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Spinbox, Dropdown, LayoutPreview, PreviewLayoutMode};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Spinbox, Dropdown, LayoutPreview, PreviewLayoutMode, Toggle, Element};
+use crate::pages::interface::{parse_bool_from, parse_transparency_opacity, write_transparency_config_value, status_interface_reload};
const CONFIG_PATH: &str = "/home/lsgalante/.config/cce/config.toml";
@@ -80,6 +81,10 @@ pub struct LayoutState {
pub side_panel_border_gap_spinbox: Spinbox,
pub side_panel_border_opacity: u16,
pub side_panel_border_opacity_spinbox: Spinbox,
+ pub transparency_enabled: bool,
+ pub transparency_toggle: Toggle,
+ pub blur_enabled: bool,
+ pub blur_toggle: Toggle,
}
impl Default for LayoutState {
@@ -128,6 +133,10 @@ impl Default for LayoutState {
side_panel_border_gap_spinbox: Spinbox::new(0, 0, 500, 1),
side_panel_border_opacity: 100,
side_panel_border_opacity_spinbox: Spinbox::new(100, 0, 100, 5),
+ transparency_enabled: true,
+ transparency_toggle: Toggle::new().with_label("Transparency"),
+ blur_enabled: true,
+ blur_toggle: Toggle::new().with_label("Blur"),
}
}
}
@@ -147,6 +156,8 @@ pub enum LayoutMessage {
SetSidePanelWidth(u16),
SetSidePanelBorderGap(u16),
SetSidePanelBorderOpacity(u16),
+ ToggleTransparency,
+ ToggleBlur,
Refreshed(LayoutState),
}
@@ -195,6 +206,13 @@ pub fn read_layout_config() -> LayoutState {
let spbg = parse_u16_from(&content, "side_panel_border_gap", 0);
let spbo = parse_u16_from(&content, "side_panel_border_opacity", 100);
+ let transparency_opacity = parse_transparency_opacity(&content);
+ let transparency_enabled = transparency_opacity < 1.0;
+
+ let window_blur = parse_bool_from(&content, "window_blur", false);
+ let border_blur = parse_bool_from(&content, "border_blur", false);
+ let blur_enabled = window_blur || border_blur;
+
LayoutState {
fullscreen_border_width: fs,
cascade_border_width: ca,
@@ -222,6 +240,10 @@ pub fn read_layout_config() -> LayoutState {
side_panel_border_gap_spinbox: Spinbox::new(spbg as i32, 0, 500, 1),
side_panel_border_opacity: spbo,
side_panel_border_opacity_spinbox: Spinbox::new(spbo as i32, 0, 100, 5),
+ transparency_enabled,
+ transparency_toggle: Toggle::new().with_label("Transparency"),
+ blur_enabled,
+ blur_toggle: Toggle::new().with_label("Blur"),
}
}
@@ -543,10 +565,10 @@ fn read_current_layout_status() -> LayoutStatusInfo {
}
}
-pub fn view(state: &mut LayoutState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut LayoutState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
- let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(8);
+ let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(9);
// Current Layout Section (Read-only visual preview)
builder.add_section(&mut final_pc, "Current Layout", false, |sec_cl| {
@@ -666,6 +688,17 @@ pub fn view(state: &mut LayoutState, cx: f32, cy: f32, cw: f32, ch: f32, sec_foc
side_panel_sec.spacing(8.0);
});
+ // 8. Effects Section
+ builder.add_section(&mut final_pc, "Effects", true, |effects_sec| {
+ effects_sec.spacing(8.0);
+ state.transparency_toggle.set_toggled(state.transparency_enabled);
+ effects_sec.widget_full(&mut state.transparency_toggle, cce_ui::layout::toggle_height(), ctx);
+ effects_sec.spacing(8.0);
+ state.blur_toggle.set_toggled(state.blur_enabled);
+ effects_sec.widget_full(&mut state.blur_toggle, cce_ui::layout::toggle_height(), ctx);
+ effects_sec.spacing(8.0);
+ });
+
final_pc
}
@@ -776,7 +809,30 @@ pub fn update(state: &mut LayoutState, msg: LayoutMessage) {
write_config_value("side_panel_border_opacity", &val.to_string());
send_ipc_command(&format!("layout side_panel_border_opacity {}", val));
}
- LayoutMessage::Refreshed(new) => { *state = new; }
+ LayoutMessage::ToggleTransparency => {
+ state.transparency_enabled = !state.transparency_enabled;
+ if state.transparency_enabled {
+ write_transparency_config_value("opacity", "0.85");
+ } else {
+ write_transparency_config_value("opacity", "1.00");
+ }
+ send_ipc_command("reload");
+ status_interface_reload();
+ }
+ LayoutMessage::ToggleBlur => {
+ state.blur_enabled = !state.blur_enabled;
+ let val = state.blur_enabled.to_string();
+ write_config_value("window_blur", &val);
+ write_config_value("border_blur", &val);
+ send_ipc_command("reload");
+ }
+ LayoutMessage::Refreshed(new) => {
+ let transparency_hover = state.transparency_toggle.hovered();
+ let blur_hover = state.blur_toggle.hovered();
+ *state = new;
+ state.transparency_toggle.set_hovered(transparency_hover);
+ state.blur_toggle.set_hovered(blur_hover);
+ }
}
}
@@ -866,8 +922,8 @@ mode = "popup"
#[test]
fn test_view_layout_grid() {
let mut state = LayoutState::default();
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false, false, false], &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false, false, false], &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty());
}
}
diff --git a/src/pages/network.rs b/src/pages/network.rs
index df78063..060c519 100644
--- a/src/pages/network.rs
+++ b/src/pages/network.rs
@@ -1,6 +1,6 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{ScrollingList, Toggle, Element};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{ScrollingList, Toggle, Element};
#[derive(Debug, Clone)]
pub struct WifiNetwork {
@@ -275,7 +275,7 @@ const NET_BTN: [f32; 4] = [0.13, 0.20, 0.27, 1.0];
const ACT_BTN: [f32; 4] = [0.16, 0.29, 0.18, 1.0];
const WHITE: [f32; 4] = [1.0, 1.0, 1.0, 1.0];
-pub fn view(state: &mut NetworkState, cx: f32, cy: f32, cw: f32, ch: f32, root_focused: bool, layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut NetworkState, cx: f32, cy: f32, cw: f32, ch: f32, root_focused: bool, layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(2);
@@ -285,7 +285,7 @@ pub fn view(state: &mut NetworkState, cx: f32, cy: f32, cw: f32, ch: f32, root_f
let sec_w = sec.cw;
let rx = sec.left;
let padding = sec.padding();
- let row_gap = clear_ui::layout::label_margin();
+ let row_gap = cce_ui::layout::label_margin();
let margin = padding.max(12.0);
if !state.loaded {
@@ -370,7 +370,7 @@ pub fn view(state: &mut NetworkState, cx: f32, cy: f32, cw: f32, ch: f32, root_f
builder.add_section(&mut final_pc, "Bluetooth", false, |sec| {
let bt_sec_w = sec.cw;
let padding = sec.padding();
- let row_gap = clear_ui::layout::label_margin();
+ let row_gap = cce_ui::layout::label_margin();
let margin = padding.max(12.0);
let font_size = 12.0;
let btn_h = 28.0;
@@ -522,8 +522,8 @@ mod tests {
let mut state = NetworkState::default();
state.loaded = true;
state.wifi_enabled = true;
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, false, &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, false, &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty() || !pc.buttons.is_empty());
}
@@ -535,8 +535,8 @@ mod tests {
state.connected_ssid = "MyHomeWiFi".to_string();
state.signal_strength = 80;
state.ip_address = "192.168.1.50".to_string();
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, false, &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, false, &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty() || !pc.buttons.is_empty());
}
}
diff --git a/src/pages/packages.rs b/src/pages/packages.rs
index f01c540..e6437ad 100644
--- a/src/pages/packages.rs
+++ b/src/pages/packages.rs
@@ -1,6 +1,6 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy, SectionContext};
-use clear_ui::widget::{Element, ScrollingList, TextBox, InteractiveListItem};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy, SectionContext};
+use cce_ui::widget::{Element, ScrollingList, TextBox, InteractiveListItem};
#[derive(Debug, Clone)]
pub struct PackageInfo {
@@ -324,7 +324,7 @@ pub fn view(
ch: f32,
sec_focused: &[bool],
layout: &mut dyn LayoutStrategy,
- ctx: &mut clear_ui::context::UiContext,
+ ctx: &mut cce_ui::context::UiContext,
) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
@@ -747,8 +747,8 @@ mod tests {
#[test]
fn test_view_layout_grid() {
let mut state = PackagesState::default();
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
- let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false], &mut layout, &mut clear_ui::context::UiContext::new());
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
+ let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &[false, false], &mut layout, &mut cce_ui::context::UiContext::new());
assert!(!pc.rects.is_empty() || !pc.texts.is_empty() || !pc.buttons.is_empty());
}
}
diff --git a/src/pages/services.rs b/src/pages/services.rs
index f255e9b..3192cdb 100644
--- a/src/pages/services.rs
+++ b/src/pages/services.rs
@@ -1,8 +1,8 @@
use std::fs;
use std::io::Write;
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{PageLayoutBuilder, LayoutStrategy};
-use clear_ui::widget::{Element, ScrollingList, TextBox, StatusDot, DotStatus, InteractiveListItem, Toggle, Spinbox, Slider, Label};
+use cce_ui::layout::{PageLayoutBuilder, LayoutStrategy};
+use cce_ui::widget::{Element, ScrollingList, TextBox, StatusDot, DotStatus, InteractiveListItem, Toggle, Spinbox, Slider, Label};
use crate::pages::interface::parse_u16_from;
// ── Notifications Data and Settings Configuration ──
@@ -212,7 +212,7 @@ fn service_action(name: &str, action: &str, is_system: bool) {
const TEXT_DIM: [f32; 4] = [0.53, 0.53, 0.60, 1.0];
-pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_focused: &[bool], layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(3);
@@ -268,7 +268,7 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
let search_h = 46.0;
state.search_box.set_row_rect(sec.left + 12.0, search_w);
- clear_ui::layout::render_widget(
+ cce_ui::layout::render_widget(
sec.pc,
&mut state.search_box,
sec.left + 12.0,
@@ -285,7 +285,7 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
let list_box_w = sec_w - 24.0;
let list_box_h = 360.0;
- clear_ui::layout::render_widget(sec.pc, &mut state.list_box, list_box_x, list_box_y, list_box_w, list_box_h, ctx);
+ cce_ui::layout::render_widget(sec.pc, &mut state.list_box, list_box_x, list_box_y, list_box_w, list_box_h, ctx);
// Filter services
let query = if state.search_box.editing {
@@ -342,7 +342,7 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
let item_btn = &mut state.service_items[idx];
item_btn.title = service.name.clone();
item_btn.subtitle = Some(desc_truncated);
- clear_ui::layout::render_widget(sec.pc, item_btn, list_box_x + 24.0, draw_y, list_box_w - 44.0, item_h, ctx);
+ cce_ui::layout::render_widget(sec.pc, item_btn, list_box_x + 24.0, draw_y, list_box_w - 44.0, item_h, ctx);
// Render StatusDot
let status_dot_state = if service.active_state == "failed" {
@@ -353,7 +353,7 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
DotStatus::Inactive
};
let mut dot = StatusDot::new(status_dot_state);
- clear_ui::layout::render_widget(sec.pc, &mut dot, list_box_x + 10.0, draw_y + (item_h - 10.0) / 2.0, 10.0, 10.0, ctx);
+ cce_ui::layout::render_widget(sec.pc, &mut dot, list_box_x + 10.0, draw_y + (item_h - 10.0) / 2.0, 10.0, 10.0, ctx);
let active_txt = [0.90, 0.90, 0.95, 1.0];
let disabled_txt = [0.40, 0.40, 0.45, 1.0];
@@ -415,11 +415,11 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
builder.add_section(&mut final_pc, "System Notifications", sec_focused.get(1).copied().unwrap_or(false), |sec2| {
let sec_w = sec2.cw;
state.notifications_enable_toggle.set_toggled(state.notifications_enable);
- sec2.widget_full(&mut state.notifications_enable_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec2.widget_full(&mut state.notifications_enable_toggle, cce_ui::layout::toggle_height(), ctx);
sec2.spacing(8.0);
state.notifications_bell_toggle.set_toggled(state.notifications_bell);
- sec2.widget_full(&mut state.notifications_bell_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec2.widget_full(&mut state.notifications_bell_toggle, cce_ui::layout::toggle_height(), ctx);
sec2.spacing(16.0);
state.notifications_duration_spinbox.value = state.notifications_duration;
@@ -469,12 +469,12 @@ pub fn view(state: &mut ServicesState, cx: f32, cy: f32, cw: f32, ch: f32, sec_f
// Separators toggle
state.status_separators_toggle.set_toggled(state.status_separators);
- sec3.widget_full(&mut state.status_separators_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec3.widget_full(&mut state.status_separators_toggle, cce_ui::layout::toggle_height(), ctx);
sec3.spacing(16.0);
// Underline toggle
state.status_underline_toggle.set_toggled(state.status_underline);
- sec3.widget_full(&mut state.status_underline_toggle, clear_ui::layout::toggle_height(), ctx);
+ sec3.widget_full(&mut state.status_underline_toggle, cce_ui::layout::toggle_height(), ctx);
sec3.spacing(16.0);
// Padding spinbox
@@ -869,9 +869,9 @@ mod tests {
#[test]
fn test_view_layout_grid() {
let mut state = ServicesState::default();
- let mut layout = clear_ui::layout::ColumnLayout::new(20.0);
+ let mut layout = cce_ui::layout::ColumnLayout::new(20.0);
let sec_focused = vec![false, false];
- let mut ctx = clear_ui::context::UiContext::new();
+ let mut ctx = cce_ui::context::UiContext::new();
let pc = view(&mut state, 10.0, 20.0, 800.0, 600.0, &sec_focused, &mut layout, &mut ctx);
assert!(!pc.rects.is_empty() || !pc.texts.is_empty());
}
diff --git a/src/pages/storage.rs b/src/pages/storage.rs
index 6d142fb..9ec2f77 100644
--- a/src/pages/storage.rs
+++ b/src/pages/storage.rs
@@ -1,5 +1,5 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
+use cce_ui::layout::{render_widget, PageLayoutBuilder, LayoutStrategy};
use std::fs;
#[derive(Debug, Clone)]
@@ -166,7 +166,7 @@ const BTN_HOVER: [f32; 4] = [0.28, 0.50, 0.78, 1.0];
const BTN_DISABLED: [f32; 4] = [0.15, 0.18, 0.22, 1.0];
const WHITE: [f32; 4] = [1.0, 1.0, 1.0, 1.0];
-pub fn view(state: &StorageState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &StorageState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(3);
@@ -194,7 +194,7 @@ pub fn view(state: &StorageState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &m
let bar_w = sec_w - 24.0;
let yt = sec.ay();
let disk_bar_x = sec.ax(12.0);
- let mut disk_bar = clear_ui::widget::UsageBar::new((disk_pct as f32 / 100.0).min(1.0))
+ let mut disk_bar = cce_ui::widget::UsageBar::new((disk_pct as f32 / 100.0).min(1.0))
.with_colors([0.36, 0.60, 0.36, 1.0], [0.15, 0.15, 0.25, 1.0]);
render_widget(sec.pc, &mut disk_bar, disk_bar_x, yt, bar_w, 8.0, ctx);
}
@@ -223,7 +223,7 @@ pub fn view(state: &StorageState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &m
let bar_w = sec_w - 24.0;
let yt = sec.ay();
let ram_bar_x = sec.ax(12.0);
- let mut ram_bar = clear_ui::widget::UsageBar::new((ram_pct as f32 / 100.0).min(1.0))
+ let mut ram_bar = cce_ui::widget::UsageBar::new((ram_pct as f32 / 100.0).min(1.0))
.with_colors([0.50, 0.50, 0.65, 1.0], [0.15, 0.15, 0.25, 1.0]);
render_widget(sec.pc, &mut ram_bar, ram_bar_x, yt, bar_w, 8.0, ctx);
}
diff --git a/src/pages/system_info.rs b/src/pages/system_info.rs
index 4cc30cf..17196c4 100644
--- a/src/pages/system_info.rs
+++ b/src/pages/system_info.rs
@@ -1,5 +1,5 @@
use crate::app::{AppAction, PageContent, SectionContextExt};
-use clear_ui::layout::{PageLayoutBuilder, LayoutStrategy};
+use cce_ui::layout::{PageLayoutBuilder, LayoutStrategy};
#[derive(Debug, Clone, Default)]
pub struct SystemState {
@@ -48,7 +48,7 @@ fn spawn_systemctl(action: &str) {
let _ = tokio::process::Command::new("systemctl").arg(action).spawn();
}
-pub fn view(state: &SystemState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, _ctx: &mut clear_ui::context::UiContext) -> PageContent {
+pub fn view(state: &SystemState, cx: f32, cy: f32, cw: f32, ch: f32, layout: &mut dyn LayoutStrategy, _ctx: &mut cce_ui::context::UiContext) -> PageContent {
let mut final_pc = PageContent::new();
let sec_w = 320.0f32;
let mut builder = PageLayoutBuilder::new(layout, cx, cy, cw, ch, sec_w).with_section_count(2);
diff --git a/src/widgets.rs b/src/widgets.rs
index c88ee89..fd15e85 100644
--- a/src/widgets.rs
+++ b/src/widgets.rs
@@ -1,4 +1,4 @@
-use clear_ui::color;
+use cce_ui::color;
pub struct SectionStyle {
pub label: String,