From 6b2aa9fe141aad8dae8f680192cb04645a4bee5f Mon Sep 17 00:00:00 2001 From: Snorre Ettrup Altschul Date: Fri, 14 Feb 2025 00:10:39 +0100 Subject: [PATCH] the ui is finally here --- adamina.ttf | Bin 0 -> 34952 bytes adamina.woff | Bin 0 -> 19724 bytes MononokiNerdFont-Regular.ttf => mononoki.ttf | Bin src/app/bin.rs | 372 ++++++++++--------- src/app/gui/document.rs | 224 +++++++++++ src/app/gui/mod.rs | 39 +- src/lib/node/assign.rs | 2 +- xits-italic.otf | Bin 116096 -> 0 bytes 8 files changed, 448 insertions(+), 189 deletions(-) create mode 100644 adamina.ttf create mode 100644 adamina.woff rename MononokiNerdFont-Regular.ttf => mononoki.ttf (100%) create mode 100644 src/app/gui/document.rs delete mode 100644 xits-italic.otf diff --git a/adamina.ttf b/adamina.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2c76861e82e768899e332db3671800ee38cbed0b GIT binary patch literal 34952 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 Ue=`t+o+;zoU;wQRe*Kt$Zax}Tp#T5? literal 0 HcmV?d00001 diff --git a/MononokiNerdFont-Regular.ttf b/mononoki.ttf similarity index 100% rename from MononokiNerdFont-Regular.ttf rename to mononoki.ttf diff --git a/src/app/bin.rs b/src/app/bin.rs index 71df79c..d061c50 100644 --- a/src/app/bin.rs +++ b/src/app/bin.rs @@ -4,22 +4,17 @@ use std::{ rc::Rc, }; -use clay_layout::{ - Declaration, - bindings::Clay_ResetMeasureTextCache, - fit, grow, - id::Id, - layout::{LayoutDirection, Padding}, - math::Dimensions, - render_commands::RenderCommandConfig, - text::{TextConfig, TextElementConfig}, -}; +mod gui; + +use clay_layout::render_commands::RenderCommandConfig; +use gui::GUI; use raylib::{ RaylibHandle, RaylibThread, color::Color, - ffi::Vector2, - prelude::{Font, RaylibDraw, RaylibDrawHandle, RaylibScissorModeExt}, + ffi::{MouseButton, TextLength, Vector2}, + prelude::{Font, RaylibDraw, RaylibDrawHandle}, text::RaylibFont, + texture::Texture2D, }; struct FontStore { @@ -29,9 +24,9 @@ struct FontStore { } impl FontStore { - const SIZE_PARAGRAPH: f32 = 20.; - const SIZE_HEADER: f32 = 30.; - const MOD_SUBTEXT: f32 = 0.5; + // const SIZE_PARAGRAPH: f32 = 20.; + // const SIZE_HEADER: f32 = 30.; + // const MOD_SUBTEXT: f32 = 0.5; pub fn new(name: impl Into) -> Self { Self { @@ -51,27 +46,30 @@ impl FontStore { } } - pub fn get_no_load(&self, size: i32) -> Option> { - if let Some(font) = self.fonts.get(&size) { - Some(font.clone()) - } else { - None - } - } + // pub fn get_no_load(&self, size: i32) -> Option> { + // if let Some(font) = self.fonts.get(&size) { + // Some(font.clone()) + // } else { + // None + // } + // } pub fn load_fonts( &mut self, handle: &mut RaylibHandle, thread: &RaylibThread, - ) -> Result<(), String> { - for size in self.fonts_to_be_loaded.clone() { - assert!(size != 0, "HOW IS THIS ZERO?"); - println!("Loading {} in {size}px", self.font); - let font = Rc::new(handle.load_font_ex(&thread, &self.font, size, None)?); - self.fonts.insert(size, font.clone()); + ) -> Result { + let invalidate = self.fonts_to_be_loaded.len() > 0; + if invalidate { + for size in self.fonts_to_be_loaded.clone() { + assert!(size != 0, "HOW IS THIS ZERO?"); + println!("Loading {} in {size}px", self.font); + let font = Rc::new(handle.load_font_ex(&thread, &self.font, size, None)?); + self.fonts.insert(size, font.clone()); + } + self.fonts_to_be_loaded.clear(); } - self.fonts_to_be_loaded.clear(); - Ok(()) + Ok(invalidate) } pub fn text( @@ -102,10 +100,10 @@ impl FontStore { #[inline] fn clay2ray(c: clay_layout::color::Color) -> Color { Color { - r: (c.r as f32 * 256.0) as u8, - g: (c.g as f32 * 256.0) as u8, - b: (c.b as f32 * 256.0) as u8, - a: (c.a as f32 * 256.0) as u8, + r: c.r as u8, + g: c.g as u8, + b: c.b as u8, + a: c.a as u8, } } @@ -119,24 +117,24 @@ fn main() -> Result<(), String> { .resizable() .build(); let mut clay = clay_layout::Clay::new((640., 480.).into()); - // let font = match rl.load_font_ex(&thread, "MononokiNerdFont-Regular.ttf", 20, None) { - // Ok(font) => font, - // Err(err) => panic!("Failed to load font {}", err), - // }; - let font_store = Rc::new(RefCell::new(FontStore::new("MononokiNerdFont-Regular.ttf"))); + let font_store = Rc::new(RefCell::new(FontStore::new("adamina.ttf"))); let font_store_math = Rc::new(RefCell::new(FontStore::new("xits-italic.ttf"))); - { - font_store.borrow_mut().get(16); - } + let mut gui = GUI::new(); + + let mut previous_left_button = false; + let mut previous_right_button = false; // stupid fucking 'static closures let font_store_clone = font_store.clone(); - let font_store_math_clone = font_store.clone(); + let font_store_math_clone = font_store_math.clone(); clay.set_measure_text_function(move |text, config| { let mut text_size = clay_layout::math::Dimensions::new(0., 0.); + let mut max_text_width: f32 = 0.; + let mut line_text_width: f32 = 0.; + let font_store = match config.font_id { 0 => font_store_clone.clone(), 1 => font_store_math_clone.clone(), @@ -146,154 +144,110 @@ fn main() -> Result<(), String> { let font = if let Some(font) = font_store.borrow_mut().get(config.font_size.into()) { font } else { - println!("Font not cached. Returning: {:?}", text_size); + // println!("Font not cached. Returning: {:?}", text_size); return text_size; }; - let size = font.measure_text(text, config.font_size.into(), config.letter_spacing.into()); + let scale_factor = config.font_size as f32 / font.baseSize as f32; - text_size.width = size.x; - text_size.height = size.y; + let text_height = config.font_size as f32; - println!("Measurements: {:?}", text_size); + for char in text.chars() { + if char == '\n' { + max_text_width = max_text_width.max(line_text_width); + line_text_width = 0.; + continue; + } + + let idx = char as u32 - 32; + line_text_width += if let Some(glyph) = font.chars().get(idx as usize) { + if glyph.advanceX > 0 { + glyph.advanceX as f32 + } else { + font.get_glyph_atlas_rec(char).width + glyph.offsetX as f32 + } + } else { + 0 as f32 + } + config.letter_spacing as f32; + } + + max_text_width = max_text_width.max(line_text_width); + + text_size.width = max_text_width * scale_factor; + text_size.height = text_height; text_size + + // unsafe { + // std::mem::transmute(font.measure_text(text, config.font_size as f32, config.letter_spacing as f32 + 1.)) + // } }); - rl.set_target_fps(30); + rl.set_target_fps(60); + rl.set_exit_key(None); let mut debug = false; while !rl.window_should_close() { if rl.is_window_resized() { - let size = (rl.get_screen_width() as f32 - 200., rl.get_screen_height() as f32); + let size = (rl.get_screen_width() as f32, rl.get_screen_height() as f32); clay.layout_dimensions(size.into()); println!("Resized window to {:?}", size); } + let left_button = rl.is_mouse_button_down(MouseButton::MOUSE_BUTTON_LEFT); + let right_button = rl.is_mouse_button_down(MouseButton::MOUSE_BUTTON_LEFT); + { - font_store.borrow_mut().load_fonts(&mut rl, &thread)?; - font_store_math.borrow_mut().load_fonts(&mut rl, &thread)?; + if font_store.borrow_mut().load_fonts(&mut rl, &thread)? + || font_store_math.borrow_mut().load_fonts(&mut rl, &thread)? + { + clay.reset_measure_text_cache(); + } } - if rl.is_key_pressed(raylib::ffi::KeyboardKey::KEY_D) { - debug = !debug; + if rl.is_key_down(raylib::ffi::KeyboardKey::KEY_RIGHT_ALT) + && rl.is_key_pressed(raylib::ffi::KeyboardKey::KEY_D) + { + debug = !clay.debug_mode_enabled(); clay.reset_measure_text_cache(); clay.enable_debug_mode(debug); println!("Toggled debug mode to {debug}"); } - clay.set_debug_highlight((0xff, 0x0, 0x0).into()); + clay.set_debug_highlight((180, 142, 173, 150).into()); - clay.begin(); - - clay.with( - Declaration::new() - .id(clay.id("body")) - .layout() - .width(grow!(0.)) - .height(grow!(0.)) - .direction(LayoutDirection::TopToBottom) - .padding(Padding::all(8)) - .child_gap(0) - .end() - .scroll(false, true), - |clay| { - for i in 0..0 { - clay.with( - Declaration::new() - .id(clay.id(i.to_string().as_str())) - .layout() - .width(grow!(0.)) - .height(fit!(0.)) - .padding(Padding::all(4)) - .end(), - |clay| { - clay.text( - "test", - TextConfig::new() - .color((0x0, 0x0, 0x0).into()) - .font_size(16) - .end(), - ) - }, - ); - } - }, + clay.update_scroll_containers( + false, + unsafe { std::mem::transmute(rl.get_mouse_wheel_move_v()) }, + rl.get_frame_time(), ); - let render_commands = clay.end(); + clay.pointer_state( + unsafe { std::mem::transmute(rl.get_mouse_position()) }, + left_button, + ); + + let render_commands = gui.render( + &clay, + (left_button, left_button && !previous_left_button), + (right_button, right_button && !previous_right_button), + (rl.get_char_pressed(), rl.get_key_pressed_number()), + rl.get_time() + ); let mut d = rl.begin_drawing(&thread); d.clear_background(Color::WHITE); - /* - for (int j = 0; j < renderCommands.length; j++) - { - Clay_RenderCommand *renderCommand = Clay_RenderCommandArray_Get(&renderCommands, j); - Clay_BoundingBox boundingBox = renderCommand->boundingBox; - switch (renderCommand->commandType) - { - case CLAY_RENDER_COMMAND_TYPE_TEXT: { - // Raylib uses standard C strings so isn't compatible with cheap slices, we need to clone the string to append null terminator - Clay_TextRenderData *textData = &renderCommand->renderData.text; - char *cloned = (char *)malloc(textData->stringContents.length + 1); - memcpy(cloned, textData->stringContents.chars, textData->stringContents.length); - cloned[textData->stringContents.length] = '\0'; - Font fontToUse = fonts[textData->fontId]; - DrawTextEx(fontToUse, cloned, (Vector2){boundingBox.x, boundingBox.y}, (float)textData->fontSize, (float)textData->letterSpacing, CLAY_COLOR_TO_RAYLIB_COLOR(textData->textColor)); - free(cloned); - break; - } - case CLAY_RENDER_COMMAND_TYPE_IMAGE: { - Texture2D imageTexture = *(Texture2D *)renderCommand->renderData.image.imageData; - Clay_Color tintColor = renderCommand->renderData.image.backgroundColor; - if (tintColor.r == 0 && tintColor.g == 0 && tintColor.b == 0 && tintColor.a == 0) { - tintColor = (Clay_Color) { 255, 255, 255, 255 }; - } - DrawTextureEx( - imageTexture, - (Vector2){boundingBox.x, boundingBox.y}, - 0, - boundingBox.width / (float)imageTexture.width, - CLAY_COLOR_TO_RAYLIB_COLOR(tintColor)); - break; - } - case CLAY_RENDER_COMMAND_TYPE_RECTANGLE: { - break; - } - case CLAY_RENDER_COMMAND_TYPE_CUSTOM: { - Clay_CustomRenderData *config = &renderCommand->renderData.custom; - CustomLayoutElement *customElement = (CustomLayoutElement *)config->customData; - if (!customElement) continue; - switch (customElement->type) { - case CUSTOM_LAYOUT_ELEMENT_TYPE_3D_MODEL: { - Clay_BoundingBox rootBox = renderCommands.internalArray[0].boundingBox; - float scaleValue = CLAY__MIN(CLAY__MIN(1, 768 / rootBox.height) * CLAY__MAX(1, rootBox.width / 1024), 1.5f); - Ray positionRay = GetScreenToWorldPointWithZDistance((Vector2) { renderCommand->boundingBox.x + renderCommand->boundingBox.width / 2, renderCommand->boundingBox.y + (renderCommand->boundingBox.height / 2) + 20 }, Raylib_camera, (int)roundf(rootBox.width), (int)roundf(rootBox.height), 140); - BeginMode3D(Raylib_camera); - DrawModel(customElement->customData.model.model, positionRay.position, customElement->customData.model.scale * scaleValue, WHITE); // Draw 3d model with texture - EndMode3D(); - break; - } - default: break; - } - break; - } - default: { - printf("Error: unhandled render command."); - exit(1); - } - } - } - */ - for command in render_commands { match command.config { RenderCommandConfig::Rectangle(rectangle) => { - println!("RECT!!! {}: {:?}\n{:?}\n\n", command.id, command.bounding_box, rectangle); - + // println!( + // "RECT!!! {}: {:?}\n{:?}\n\n", + // command.id, command.bounding_box, rectangle + // ); + // d.draw_rectangle_rounded( raylib::ffi::Rectangle { x: command.bounding_box.x, @@ -307,8 +261,13 @@ fn main() -> Result<(), String> { ); } RenderCommandConfig::Text(text) => { - // println!("{:?}", text); - font_store.borrow_mut().text( + let font = match text.font_id { + 0 => font_store.clone(), + 1 => font_store_math.clone(), + _ => panic!("Unknown font {}", text.font_id), + }; + + font.borrow_mut().text( &mut d, text.text, command.bounding_box.x, @@ -318,7 +277,6 @@ fn main() -> Result<(), String> { Some(clay2ray(text.color)), ); } - RenderCommandConfig::ScissorStart() => unsafe { raylib::ffi::BeginScissorMode( command.bounding_box.x as i32, @@ -330,22 +288,7 @@ fn main() -> Result<(), String> { RenderCommandConfig::ScissorEnd() => unsafe { raylib::ffi::EndScissorMode(); }, - RenderCommandConfig::Border(border) => { - // if (config->cornerRadius.topLeft > 0) { - // DrawRing((Vector2) { roundf(boundingBox.x + config->cornerRadius.topLeft), roundf(boundingBox.y + config->cornerRadius.topLeft) }, roundf(config->cornerRadius.topLeft - config->width.top), config->cornerRadius.topLeft, 180, 270, 10, CLAY_COLOR_TO_RAYLIB_COLOR(config->color)); - // } - // if (config->cornerRadius.topRight > 0) { - // DrawRing((Vector2) { roundf(boundingBox.x + boundingBox.width - config->cornerRadius.topRight), roundf(boundingBox.y + config->cornerRadius.topRight) }, roundf(config->cornerRadius.topRight - config->width.top), config->cornerRadius.topRight, 270, 360, 10, CLAY_COLOR_TO_RAYLIB_COLOR(config->color)); - // } - // if (config->cornerRadius.bottomLeft > 0) { - // DrawRing((Vector2) { roundf(boundingBox.x + config->cornerRadius.bottomLeft), roundf(boundingBox.y + boundingBox.height - config->cornerRadius.bottomLeft) }, roundf(config->cornerRadius.bottomLeft - config->width.top), config->cornerRadius.bottomLeft, 90, 180, 10, CLAY_COLOR_TO_RAYLIB_COLOR(config->color)); - // } - // if (config->cornerRadius.bottomRight > 0) { - // DrawRing((Vector2) { roundf(boundingBox.x + boundingBox.width - config->cornerRadius.bottomRight), roundf(boundingBox.y + boundingBox.height - config->cornerRadius.bottomRight) }, roundf(config->cornerRadius.bottomRight - config->width.bottom), config->cornerRadius.bottomRight, 0.1, 90, 10, CLAY_COLOR_TO_RAYLIB_COLOR(config->color)); - // } - // break; - // } // Left border if border.width.left > 0 { d.draw_rectangle( @@ -399,12 +342,95 @@ fn main() -> Result<(), String> { clay2ray(border.color), ); } + // Top left corner + if border.corner_radii.top_left > 0. { + d.draw_ring( + Vector2 { + x: command.bounding_box.x + border.corner_radii.top_left, + y: command.bounding_box.y + border.corner_radii.top_left, + }, + border.corner_radii.top_left - border.width.top as f32, + border.corner_radii.top_left, + 180., + 270., + 10, + clay2ray(border.color), + ); + } + // Top right corner + if border.corner_radii.top_right > 0. { + d.draw_ring( + Vector2 { + x: command.bounding_box.x + command.bounding_box.width + - border.corner_radii.top_right, + y: command.bounding_box.y + border.corner_radii.top_right, + }, + border.corner_radii.top_right - border.width.top as f32, + border.corner_radii.top_right, + 270., + 360., + 10, + clay2ray(border.color), + ); + } + // Bottom left + if border.corner_radii.bottom_left > 0. { + d.draw_ring( + Vector2 { + x: command.bounding_box.x + border.corner_radii.bottom_left, + y: command.bounding_box.y + command.bounding_box.height + - border.corner_radii.bottom_left, + }, + border.corner_radii.bottom_left - border.width.top as f32, + border.corner_radii.bottom_left, + 90., + 180., + 10, + clay2ray(border.color), + ); + } + // Bottom right + if border.corner_radii.bottom_right > 0. { + d.draw_ring( + Vector2 { + x: command.bounding_box.x + command.bounding_box.width + - border.corner_radii.bottom_right, + y: command.bounding_box.y + command.bounding_box.height + - border.corner_radii.bottom_right, + }, + border.corner_radii.bottom_right - border.width.bottom as f32, + border.corner_radii.bottom_right, + 0., + 90., + 10, + clay2ray(border.color), + ); + } } - RenderCommandConfig::None() => {} + RenderCommandConfig::Image(image) => { + let texture: &Texture2D = unsafe { + std::mem::transmute::<*const std::ffi::c_void, *const Texture2D>(image.data) + .as_ref() + .unwrap() + }; + d.draw_texture_ex( + texture, + Vector2 { + x: command.bounding_box.x, + y: command.bounding_box.y, + }, + 0., + command.bounding_box.width / image.dimensions.width, + clay2ray(image.background_color), + ); + } _ => panic!("Unimplemented {:#?}", command), } } + + previous_left_button = left_button; + previous_right_button = right_button; } Ok(()) diff --git a/src/app/gui/document.rs b/src/app/gui/document.rs new file mode 100644 index 0000000..2468ea6 --- /dev/null +++ b/src/app/gui/document.rs @@ -0,0 +1,224 @@ +use std::mem::ManuallyDrop; + +use clay_layout::{ + Clay, Declaration, fit, fixed, grow, + layout::{LayoutDirection, Padding}, + text::TextConfig, +}; +use raylib::ffi::KeyboardKey; + +pub type LineType = String; + +pub struct Document { + lines: Vec<(String, LineType)>, + total_lines: usize, + current_line: Option, + current_char: usize, + lines_to_delete: Vec, + lines_to_add: Vec<(usize, LineType)>, + last_type_time: f64, +} + +impl Document { + pub fn new() -> Self { + Self { + lines: vec![("0".to_owned(), "".to_string())], + total_lines: 1, + current_line: Some(0), + current_char: 0, + lines_to_delete: vec![], + lines_to_add: vec![], + last_type_time: -100., + } + } + + pub fn add_line(&mut self, content: impl Into) { + self.add_line_at(self.lines.len(), content); + } + + pub fn add_line_at(&mut self, idx: usize, content: impl Into) { + self.lines + .insert(idx, (self.total_lines.to_string(), content.into())); + self.total_lines += 1; + } + + pub fn render<'a>( + &'a mut self, + clay: &'a Clay, + (left_held, left_pressed): (bool, bool), + (righ_held, right_pressed): (bool, bool), + (latest_char, latest_key): (Option, Option), + time: f64, + ) { + if !self.lines_to_delete.is_empty() { + self.lines_to_delete.sort(); + + for line in self.lines_to_delete.iter().rev() { + self.lines.remove(*line); + } + + self.lines_to_delete.clear(); + + self.current_line = if let Some(i) = self.current_line { + if self.lines.len() == 0 { + self.add_line("".to_string()); + } + Some( + (TryInto::::try_into(i).unwrap() - 1) + .max(0) + .min(TryInto::::try_into(self.lines.len()).unwrap() - 1) + .try_into() + .unwrap(), + ) + } else { + None + }; + } + + if !self.lines_to_add.is_empty() { + // i am NOT cloning this shit + let lines_to_add: ManuallyDrop> = unsafe { + let len = self.lines_to_add.len(); + let cap = self.lines_to_add.capacity(); + let fuck = self.lines_to_add.as_mut_ptr(); + std::mem::ManuallyDrop::new(Vec::from_raw_parts(fuck, len, cap)) + }; + + for (idx, line) in lines_to_add.iter() { + self.add_line_at(*idx, line); + } + + self.lines_to_add.clear(); + self.current_line = if let Some(i) = self.current_line { + Some(i + 1) + } else { + None + }; + } + + if left_pressed && clay.pointer_over(clay.id("document")) { + self.current_line = None; + } + + let len = self.lines.len(); + let mut can_go_down = true; + + clay.with( + &Declaration::new() + .id(clay.id("document")) + .layout() + .width(grow!(0.)) + .height(grow!(0.)) + .direction(LayoutDirection::TopToBottom) + .padding(Padding::all(8)) + .child_gap(0) + .end() + .background_color((46, 52, 64).into()) + .scroll(false, true), + |clay| { + for (i, line) in self.lines.iter_mut().enumerate() { + let current_selected = + if left_pressed && clay.pointer_over(clay.id(line.0.as_str())) { + self.current_line = Some(i); + true + } else { + Some(i) == self.current_line + }; + + if current_selected { + if let Some(char) = latest_char { + line.1 += char.to_string().as_str(); + self.last_type_time = time; + } + + match latest_key { + Some(val) if val == KeyboardKey::KEY_BACKSPACE as u32 => { + if line.1.len() == 0 { + self.lines_to_delete.push(i); + } else { + let _ = line.1.pop(); + } + } + Some(val) if val == KeyboardKey::KEY_ENTER as u32 => { + self.lines_to_add.push((i + 1, "".to_string())); + } + Some(val) if val == KeyboardKey::KEY_UP as u32 => { + self.current_line = Some( + (TryInto::::try_into(self.current_line.unwrap()).unwrap() + - 1) + .max(0) + .try_into() + .unwrap(), + ); + } + Some(val) if val == KeyboardKey::KEY_DOWN as u32 && can_go_down => { + self.current_line = Some( + (TryInto::::try_into(self.current_line.unwrap()).unwrap() + + 1) + .min(TryInto::::try_into(len).unwrap() - 1) + .try_into() + .unwrap(), + ); + can_go_down = false; + } + _ => {} + } + } + + clay.with( + &Declaration::new() + .id(clay.id(line.0.as_str())) + .layout() + .width(grow!(0.)) + .height(fit!(21.)) + .direction(LayoutDirection::LeftToRight) + .padding(Padding::new(4, 4, 0, 1)) + .child_alignment(clay_layout::layout::Alignment { + x: clay_layout::layout::LayoutAlignmentX::Left, + y: clay_layout::layout::LayoutAlignmentY::Center, + }) + // .child_gap(2) + // .end() + // .border() + // .color((67, 76, 94).into()) + // .bottom(2) + // .end() + // .corner_radius() + // .all(4.) + .end(), + |clay| { + clay.text( + line.1.as_str(), + TextConfig::new() + .color((229, 233, 240).into()) + .font_size(20) + .font_id(0) + .letter_spacing(2) + .end(), + ); + if current_selected + && can_go_down + && ((time - self.last_type_time) < 0.5 || time % 1.2 < 0.6) + { + clay.with( + &Declaration::new() + .id(clay.id("text_cursor")) + .layout() + .height(grow!(0.)) + .width(fixed!(8.)) + .end() + .background_color((229, 233, 240, 100).into()) + // .corner_radius() + // .all(2.) + // .end(), + , + |_| {}, + ); + } + }, + ); + } + }, + ); + } +} diff --git a/src/app/gui/mod.rs b/src/app/gui/mod.rs index 026d0fe..380fd97 100644 --- a/src/app/gui/mod.rs +++ b/src/app/gui/mod.rs @@ -1,27 +1,36 @@ -use std::rc::Rc; - -use libopenbirch::node::{ - NodeEnum, add::Add, constant::Constant, divide::Divide, multiply::Multiply, symbol::Symbol, +use clay_layout::{ + Clay, Declaration, grow, + layout::{LayoutDirection, Padding}, + render_commands::RenderCommand, }; -use math_segments::MathSegment; +use document::Document; -mod math_segments; +mod document; pub struct GUI { - meth: Vec>, + pub document: Document, } impl GUI { pub fn new() -> Self { - let a = Constant::new(69.0).into(); - let b = Constant::new(420.0).into(); - let c: NodeEnum = Add::new(a, b).into(); - let d = Symbol::new_from_str("x").into(); - let e = Divide::new(c.clone(), d).into(); - let f = Multiply::new(e, c); - Self { - meth: vec![Rc::new(NodeEnum::Multiply(f))], + document: Document::new(), } } + + pub fn render<'a>( + &'a mut self, + clay: &'a Clay, + left_mouse: (bool, bool), + right_mouse: (bool, bool), + latest_char: (Option, Option), + time: f64, + ) -> impl Iterator { + clay.begin(); + + self.document + .render(clay, left_mouse, right_mouse, latest_char, time); + + clay.end() + } } diff --git a/src/lib/node/assign.rs b/src/lib/node/assign.rs index defabbd..c04d58f 100644 --- a/src/lib/node/assign.rs +++ b/src/lib/node/assign.rs @@ -1,6 +1,6 @@ use std::rc::Rc; -use super::{Environment, Node, NodeEnum, Precedence, empty::Empty, symbol::Symbol}; +use super::{Environment, Node, NodeEnum, Precedence, empty::Empty}; #[derive(Debug, Clone, PartialEq, PartialOrd)] pub struct Assign { diff --git a/xits-italic.otf b/xits-italic.otf deleted file mode 100644 index 0c9802a66848fe23f7c4f0266414727133583ca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116096 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⁡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