1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use sdl2::render::Canvas; use sdl2::video::Window; use {UiAttr, UiFixSize, UiParam, UiPos, UiSize}; pub trait UiElem { fn draw(&self, canvas: &mut Canvas<Window>, cv_pos: &UiPos); fn set_attribute(&mut self, attr: UiAttr); fn set_attributes(&mut self, attr_vec: Vec<UiAttr>) { for attr in attr_vec { self.set_attribute(attr); } } fn set_value(&mut self, value: UiParam); fn set_values(&mut self, values: Vec<UiParam>) { for value in values { self.set_value(value); } } fn set_size(&mut self, size: UiSize); fn get_size(&self) -> UiSize; fn set_fix_size(&mut self, size: UiFixSize); fn get_fix_size(&self) -> UiFixSize; }