From 7a17707517886df784082e03943671c1cfa3f576 Mon Sep 17 00:00:00 2001 From: vE5li Date: Tue, 13 Feb 2024 12:32:11 +0100 Subject: [PATCH] Add wrapper for render and resolve logic --- src/input/mod.rs | 20 +- .../elements/containers/character.rs | 2 +- src/interface/elements/containers/dialog.rs | 2 +- .../elements/containers/equipment.rs | 2 +- src/interface/elements/containers/friends.rs | 10 +- src/interface/elements/containers/hotbar.rs | 2 +- .../elements/containers/inventory.rs | 2 +- src/interface/elements/containers/packet.rs | 16 +- src/interface/elements/containers/scroll.rs | 2 +- .../elements/containers/skill_tree.rs | 2 +- src/interface/elements/miscellanious/chat.rs | 2 +- src/interface/elements/miscellanious/input.rs | 4 +- .../elements/miscellanious/slider.rs | 2 +- src/interface/elements/profiler/frame.rs | 2 +- src/interface/elements/profiler/inspector.rs | 2 +- .../elements/values/mutable/color.rs | 2 +- .../elements/values/mutable/number.rs | 2 +- .../elements/values/mutable/vector.rs | 2 +- src/interface/event/change.rs | 20 +- src/interface/mod.rs | 236 +++++++++++------- src/interface/settings.rs | 2 +- src/interface/theme.rs | 176 ++++++------- src/main.rs | 8 +- 23 files changed, 291 insertions(+), 229 deletions(-) diff --git a/src/input/mod.rs b/src/input/mod.rs index d12b4fd6d..397ff9316 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -287,16 +287,16 @@ impl InputSystem { ClickAction::MoveItem(item_source, item) => { self.mouse_input_mode = MouseInputMode::MoveItem(item_source, item); - // Needs to rerender because some elements will render differently + // Needs to re-render because some elements will render differently // based on the mouse input mode. - interface.schedule_rerender(); + interface.schedule_render(); } ClickAction::MoveSkill(skill_source, skill) => { self.mouse_input_mode = MouseInputMode::MoveSkill(skill_source, skill); - // Needs to rerender because some elements will render differently + // Needs to re-render because some elements will render differently // based on the mouse input mode. - interface.schedule_rerender(); + interface.schedule_render(); } ClickAction::OpenWindow(prototype_window) => interface.open_window(focus_state, prototype_window.as_ref()), @@ -315,9 +315,9 @@ impl InputSystem { } } else { let mouse_input_mode = std::mem::take(&mut self.mouse_input_mode); - // Needs to rerender because some elements will render differently + // Needs to re-render because some elements will render differently // based on the mouse input mode. - interface.schedule_rerender(); + interface.schedule_render(); match mouse_input_mode { MouseInputMode::MoveItem(item_source, item) => { @@ -641,21 +641,21 @@ impl InputSystem { if focus_state.did_hovered_element_change(&hovered_element) { if let Some(window_index) = focus_state.previous_hovered_window() { - interface.schedule_rerender_window(window_index); + interface.schedule_render_window(window_index); } if let Some(window_index) = window_index { - interface.schedule_rerender_window(window_index); + interface.schedule_render_window(window_index); } } if focus_state.did_focused_element_change() { if let Some(window_index) = focus_state.previous_focused_window() { - interface.schedule_rerender_window(window_index); + interface.schedule_render_window(window_index); } if let Some(window_index) = focus_state.focused_window() { - interface.schedule_rerender_window(window_index); + interface.schedule_render_window(window_index); } } diff --git a/src/interface/elements/containers/character.rs b/src/interface/elements/containers/character.rs index 5cc0f85f9..428046716 100644 --- a/src/interface/elements/containers/character.rs +++ b/src/interface/elements/containers/character.rs @@ -133,7 +133,7 @@ impl Element for CharacterPreview { // scrolling would break self.state.link_back(weak_self, weak_parent); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/containers/dialog.rs b/src/interface/elements/containers/dialog.rs index 2e257c2f8..75c4df1e6 100644 --- a/src/interface/elements/containers/dialog.rs +++ b/src/interface/elements/containers/dialog.rs @@ -87,7 +87,7 @@ impl Element for DialogContainer { // TODO: link back like in character container - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/containers/equipment.rs b/src/interface/elements/containers/equipment.rs index a88ab14a3..4576dbbdd 100644 --- a/src/interface/elements/containers/equipment.rs +++ b/src/interface/elements/containers/equipment.rs @@ -107,7 +107,7 @@ impl Element for EquipmentContainer { // scrolling would break self.link_back(weak_self, weak_parent); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/containers/friends.rs b/src/interface/elements/containers/friends.rs index d4fc91f36..b4010ddd8 100644 --- a/src/interface/elements/containers/friends.rs +++ b/src/interface/elements/containers/friends.rs @@ -90,7 +90,7 @@ impl Element for FriendView { } fn update(&mut self) -> Option { - let mut reresolve = false; + let mut resolve = false; if self.friends.consume_changed() { // Remove elements of old friends from the start of the list and add new friends @@ -110,7 +110,7 @@ impl Element for FriendView { element.borrow_mut().link_back(Rc::downgrade(&element), self.weak_self.clone()); self.state.elements.insert(index, element); - reresolve = true; + resolve = true; } }); @@ -118,12 +118,12 @@ impl Element for FriendView { let friend_count = self.friends.borrow().len(); if friend_count < self.state.elements.len() { self.state.elements.truncate(friend_count); - reresolve = true; + resolve = true; } } - match reresolve { - true => Some(ChangeEvent::RERESOLVE_WINDOW), + match resolve { + true => Some(ChangeEvent::RESOLVE_WINDOW), false => None, } } diff --git a/src/interface/elements/containers/hotbar.rs b/src/interface/elements/containers/hotbar.rs index 7a3f1cf20..b6d0d99a8 100644 --- a/src/interface/elements/containers/hotbar.rs +++ b/src/interface/elements/containers/hotbar.rs @@ -88,7 +88,7 @@ impl Element for HotbarContainer { // scrolling would break self.link_back(weak_self, weak_parent); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/containers/inventory.rs b/src/interface/elements/containers/inventory.rs index f0eb28eeb..613103127 100644 --- a/src/interface/elements/containers/inventory.rs +++ b/src/interface/elements/containers/inventory.rs @@ -78,7 +78,7 @@ impl Element for InventoryContainer { // scrolling would break self.link_back(weak_self, weak_parent); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/containers/packet.rs b/src/interface/elements/containers/packet.rs index 558f02e09..eeceebf71 100644 --- a/src/interface/elements/containers/packet.rs +++ b/src/interface/elements/containers/packet.rs @@ -174,7 +174,7 @@ impl Element for PacketView { } fn update(&mut self) -> Option { - let mut reresolve = false; + let mut resolve = false; if self.show_pings.consume_changed() | self.packets.consume_changed() { fn compare(linked_element: &UnsafeCell>, element: &ElementCell) -> bool { @@ -196,7 +196,7 @@ impl Element for PacketView { for _index in 0..self.state.elements.len() { if !std::ptr::addr_eq(first_visible_element, Rc::downgrade(&self.state.elements[0]).as_ptr()) { self.state.elements.remove(0); - reresolve = true; + resolve = true; } else { break; } @@ -204,7 +204,7 @@ impl Element for PacketView { } else { // This means that there are no visible packets at all, so remove every element. self.state.elements.clear(); - reresolve = true; + resolve = true; } let show_pings = *self.show_pings.borrow(); @@ -226,7 +226,7 @@ impl Element for PacketView { element.borrow_mut().link_back(Rc::downgrade(&element), self.weak_self.clone()); self.state.elements.insert(index, element); - reresolve = true; + resolve = true; } // Packet was previously visible but now should be hidden. @@ -234,7 +234,7 @@ impl Element for PacketView { *linked_element = Rc::downgrade(&self.hidden_element); self.state.elements.remove(index); - reresolve = true; + resolve = true; } } else { // Getting here means thatt the packet was newly added. @@ -245,7 +245,7 @@ impl Element for PacketView { element.borrow_mut().link_back(Rc::downgrade(&element), self.weak_self.clone()); self.state.elements.push(element); - reresolve = true; + resolve = true; } false => { unsafe { *linked_element.get() = Some(Rc::downgrade(&self.hidden_element)) }; @@ -259,8 +259,8 @@ impl Element for PacketView { }); } - match reresolve { - true => Some(ChangeEvent::RERESOLVE_WINDOW), + match resolve { + true => Some(ChangeEvent::RESOLVE_WINDOW), false => None, } } diff --git a/src/interface/elements/containers/scroll.rs b/src/interface/elements/containers/scroll.rs index 7716ad6ad..354ee46cc 100644 --- a/src/interface/elements/containers/scroll.rs +++ b/src/interface/elements/containers/scroll.rs @@ -77,7 +77,7 @@ impl Element for ScrollView { fn scroll(&mut self, delta: f32) -> Option { self.scroll -= delta * SCROLL_SPEED; self.scroll = self.scroll.max(0.0); - Some(ChangeEvent::RERENDER_WINDOW) + Some(ChangeEvent::RENDER_WINDOW) } fn render( diff --git a/src/interface/elements/containers/skill_tree.rs b/src/interface/elements/containers/skill_tree.rs index cf5c66920..4a670d8ca 100644 --- a/src/interface/elements/containers/skill_tree.rs +++ b/src/interface/elements/containers/skill_tree.rs @@ -78,7 +78,7 @@ impl Element for SkillTreeContainer { // scrolling would break self.link_back(weak_self, weak_parent); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/miscellanious/chat.rs b/src/interface/elements/miscellanious/chat.rs index 37a463575..2fae6e2ce 100644 --- a/src/interface/elements/miscellanious/chat.rs +++ b/src/interface/elements/miscellanious/chat.rs @@ -71,7 +71,7 @@ impl Element for Chat { if messages.len() != self.cached_message_count { self.cached_message_count = messages.len(); - return Some(ChangeEvent::RERESOLVE_WINDOW); + return Some(ChangeEvent::RESOLVE_WINDOW); } None diff --git a/src/interface/elements/miscellanious/input.rs b/src/interface/elements/miscellanious/input.rs index 2d3983449..97739d56c 100644 --- a/src/interface/elements/miscellanious/input.rs +++ b/src/interface/elements/miscellanious/input.rs @@ -27,7 +27,7 @@ impl InputField