par_term_render/renderer/
layout.rs1use winit::dpi::PhysicalSize;
2
3use super::Renderer;
4
5impl Renderer {
9 pub fn size(&self) -> PhysicalSize<u32> {
11 self.size
12 }
13
14 pub fn grid_size(&self) -> (usize, usize) {
16 self.cell_renderer.grid_size()
17 }
18
19 pub fn cell_width(&self) -> f32 {
21 self.cell_renderer.cell_width()
22 }
23
24 pub fn cell_height(&self) -> f32 {
26 self.cell_renderer.cell_height()
27 }
28
29 pub fn window_padding(&self) -> f32 {
31 self.cell_renderer.window_padding()
32 }
33
34 pub fn scrollbar_width(&self) -> f32 {
36 self.cell_renderer.scrollbar.width()
37 }
38
39 pub fn chrome_overhead(&self) -> (f32, f32) {
42 self.cell_renderer.chrome_overhead()
43 }
44
45 pub fn content_offset_y(&self) -> f32 {
47 self.cell_renderer.content_offset_y()
48 }
49
50 pub fn scale_factor(&self) -> f32 {
52 self.cell_renderer.scale_factor
53 }
54
55 pub fn set_content_offset_y(&mut self, logical_offset: f32) -> Option<(usize, usize)> {
61 let physical_offset = logical_offset * self.cell_renderer.scale_factor;
63 let result = self.cell_renderer.set_content_offset_y(physical_offset);
64 self.graphics_renderer.set_content_offset_y(physical_offset);
66 if let Some(ref mut custom_shader) = self.custom_shader_renderer {
68 custom_shader.set_content_offset_y(physical_offset);
69 }
70 if let Some(ref mut cursor_shader) = self.cursor_shader_renderer {
72 cursor_shader.set_content_offset_y(physical_offset);
73 }
74 if result.is_some() {
75 self.dirty = true;
76 }
77 result
78 }
79
80 pub fn content_offset_x(&self) -> f32 {
82 self.cell_renderer.content_offset_x()
83 }
84
85 pub fn set_content_offset_x(&mut self, logical_offset: f32) -> Option<(usize, usize)> {
88 let physical_offset = logical_offset * self.cell_renderer.scale_factor;
89 let result = self.cell_renderer.set_content_offset_x(physical_offset);
90 self.graphics_renderer.set_content_offset_x(physical_offset);
91 if let Some(ref mut custom_shader) = self.custom_shader_renderer {
92 custom_shader.set_content_offset_x(physical_offset);
93 }
94 if let Some(ref mut cursor_shader) = self.cursor_shader_renderer {
95 cursor_shader.set_content_offset_x(physical_offset);
96 }
97 if result.is_some() {
98 self.dirty = true;
99 }
100 result
101 }
102
103 pub fn content_inset_bottom(&self) -> f32 {
105 self.cell_renderer.content_inset_bottom()
106 }
107
108 pub fn content_inset_right(&self) -> f32 {
110 self.cell_renderer.content_inset_right()
111 }
112
113 pub fn set_content_inset_bottom(&mut self, logical_inset: f32) -> Option<(usize, usize)> {
116 let physical_inset = logical_inset * self.cell_renderer.scale_factor;
117 let result = self.cell_renderer.set_content_inset_bottom(physical_inset);
118 if result.is_some() {
119 self.dirty = true;
120 self.last_scrollbar_state = (usize::MAX, 0, 0, 0, 0, 0, 0, 0, 0, 0);
123 }
124 result
125 }
126
127 pub fn set_content_inset_right(&mut self, logical_inset: f32) -> Option<(usize, usize)> {
130 let physical_inset = logical_inset * self.cell_renderer.scale_factor;
131 let result = self.cell_renderer.set_content_inset_right(physical_inset);
132
133 if let Some(ref mut custom_shader) = self.custom_shader_renderer {
135 custom_shader.set_content_inset_right(physical_inset);
136 }
137 if let Some(ref mut cursor_shader) = self.cursor_shader_renderer {
139 cursor_shader.set_content_inset_right(physical_inset);
140 }
141
142 if result.is_some() {
143 self.dirty = true;
144 self.last_scrollbar_state = (usize::MAX, 0, 0, 0, 0, 0, 0, 0, 0, 0);
150 }
151 result
152 }
153
154 pub fn set_egui_bottom_inset(&mut self, logical_inset: f32) -> Option<(usize, usize)> {
160 let physical_inset = logical_inset * self.cell_renderer.scale_factor;
161 if (self.cell_renderer.grid.egui_bottom_inset - physical_inset).abs() > f32::EPSILON {
162 self.cell_renderer.grid.egui_bottom_inset = physical_inset;
163 let (w, h) = (
164 self.cell_renderer.config.width,
165 self.cell_renderer.config.height,
166 );
167 return Some(self.cell_renderer.resize(w, h));
168 }
169 None
170 }
171
172 pub fn set_egui_right_inset(&mut self, logical_inset: f32) {
178 let physical_inset = logical_inset * self.cell_renderer.scale_factor;
179 if (self.cell_renderer.grid.egui_right_inset - physical_inset).abs() <= f32::EPSILON {
180 return;
181 }
182 self.cell_renderer.grid.egui_right_inset = physical_inset;
183 self.last_scrollbar_state = (usize::MAX, 0, 0, 0, 0, 0, 0, 0, 0, 0);
188 self.dirty = true;
189 }
190}