1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-01 22:30:03 -04:00

Rename Region to Ui (shorter, sweeter)

This commit is contained in:
Emil Ernerfeldt
2020-05-08 22:42:31 +02:00
parent cbd51c3f43
commit fa82e8d806
22 changed files with 508 additions and 524 deletions

View File

@@ -4,7 +4,7 @@ use crate::*;
pub struct TextEdit<'t> {
text: &'t mut String,
id: Option<Id>,
text_style: TextStyle, // TODO: Option<TextStyle>, where None means "use the default for the region"
text_style: TextStyle, // TODO: Option<TextStyle>, where None means "use the default for the current Ui"
text_color: Option<Color>,
}
@@ -35,29 +35,29 @@ impl<'t> TextEdit<'t> {
}
impl<'t> Widget for TextEdit<'t> {
fn ui(self, region: &mut Region) -> GuiResponse {
let id = region.make_child_id(self.id);
fn ui(self, ui: &mut Ui) -> GuiResponse {
let id = ui.make_child_id(self.id);
let font = &region.fonts()[self.text_style];
let font = &ui.fonts()[self.text_style];
let line_spacing = font.line_spacing();
let (text, text_size) = font.layout_multiline(self.text.as_str(), region.available_width());
let desired_size = text_size.max(vec2(region.available_width(), line_spacing));
let interact = region.reserve_space(desired_size, Some(id));
let (text, text_size) = font.layout_multiline(self.text.as_str(), ui.available_width());
let desired_size = text_size.max(vec2(ui.available_width(), line_spacing));
let interact = ui.reserve_space(desired_size, Some(id));
if interact.clicked {
region.request_kb_focus(id);
ui.request_kb_focus(id);
}
if interact.hovered {
region.output().cursor_icon = CursorIcon::Text;
ui.output().cursor_icon = CursorIcon::Text;
}
let has_kb_focus = region.has_kb_focus(id);
let has_kb_focus = ui.has_kb_focus(id);
if has_kb_focus {
for event in &region.input().events {
for event in &ui.input().events {
match event {
Event::Copy | Event::Cut => {
// TODO: cut
region.ctx().output().copied_text = self.text.clone();
ui.ctx().output().copied_text = self.text.clone();
}
Event::Text(text) => {
if text == "\u{7f}" {
@@ -76,35 +76,35 @@ impl<'t> Widget for TextEdit<'t> {
}
}
region.add_paint_cmd(PaintCmd::Rect {
ui.add_paint_cmd(PaintCmd::Rect {
rect: interact.rect,
corner_radius: 0.0,
// fill_color: Some(color::BLACK),
fill_color: region.style().interact_fill_color(&interact),
// fill_color: Some(region.style().background_fill_color()),
fill_color: ui.style().interact_fill_color(&interact),
// fill_color: Some(ui.style().background_fill_color()),
outline: None, //Some(Outline::new(1.0, color::WHITE)),
});
if has_kb_focus {
let cursor_blink_hz = region.style().cursor_blink_hz;
let cursor_blink_hz = ui.style().cursor_blink_hz;
let show_cursor =
(region.input().time * cursor_blink_hz as f64 * 3.0).floor() as i64 % 3 != 0;
(ui.input().time * cursor_blink_hz as f64 * 3.0).floor() as i64 % 3 != 0;
if show_cursor {
let cursor_pos = if let Some(last) = text.last() {
interact.rect.min + vec2(last.max_x(), last.y_offset)
} else {
interact.rect.min
};
region.add_paint_cmd(PaintCmd::line_segment(
ui.add_paint_cmd(PaintCmd::line_segment(
(cursor_pos, cursor_pos + vec2(0.0, line_spacing)),
color::WHITE,
region.style().text_cursor_width,
ui.style().text_cursor_width,
));
}
}
region.add_text(interact.rect.min, self.text_style, text, self.text_color);
ui.add_text(interact.rect.min, self.text_style, text, self.text_color);
region.response(interact)
ui.response(interact)
}
}