1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-31 05:40:03 -04:00

[ui] add convenience functions

This commit is contained in:
Emil Ernerfeldt
2020-05-30 09:51:57 +02:00
parent 3de20d033e
commit 9f46d8f0be
4 changed files with 41 additions and 26 deletions

View File

@@ -199,8 +199,8 @@ impl ExampleWindow {
));
ui.horizontal(|ui| {
ui.add_label("Project home page:");
ui.add_hyperlink("https://github.com/emilk/emigui/");
ui.label("Project home page:");
ui.hyperlink("https://github.com/emilk/emigui/");
});
});
@@ -236,7 +236,7 @@ impl ExampleWindow {
.default_open(false)
.show(ui, |ui| {
ScrollArea::default().show(ui, |ui| {
ui.add_label(LOREM_IPSUM);
ui.label(LOREM_IPSUM);
});
});
@@ -258,23 +258,23 @@ impl ExampleWindow {
});
ui.collapsing("Name clash example", |ui| {
ui.add_label("\
ui.label("\
Widgets that store state require unique identifiers so we can track their state between frames. \
Identifiers are normally derived from the titles of the widget.");
ui.add_label("\
ui.label("\
For instance, collapsable headers needs to store wether or not they are open. \
If you fail to give them unique names then clicking one will open both. \
To help you debug this, an error message is printed on screen:");
ui.collapsing("Collapsing header", |ui| {
ui.add_label("Contents of first folddable ui");
ui.label("Contents of first folddable ui");
});
ui.collapsing("Collapsing header", |ui| {
ui.add_label("Contents of second folddable ui");
ui.label("Contents of second folddable ui");
});
ui.add_label("\
ui.label("\
Most widgets don't need unique names, but are tracked \
based on their position on screen. For instance, buttons:");
ui.add(Button::new("Button"));
@@ -423,7 +423,7 @@ struct Painting {
impl Painting {
pub fn ui(&mut self, ui: &mut Ui) {
ui.add_label("Draw with your mouse to paint");
ui.label("Draw with your mouse to paint");
if ui.add(Button::new("Clear")).clicked {
self.lines.clear();
}
@@ -599,7 +599,7 @@ impl Tree {
})
.collect();
if ui.button("+") {
if ui.button("+").clicked {
self.0.push(Tree::default());
}

View File

@@ -52,5 +52,6 @@ pub use {
style::Style,
types::*,
ui::Ui,
widgets::Widget,
widgets::*,
containers::*,
};

View File

@@ -496,18 +496,32 @@ impl Ui {
// Convenience functions:
pub fn add_label(&mut self, text: impl Into<String>) -> GuiResponse {
self.add(Label::new(text))
pub fn label(&mut self, label: impl Into<Label>) -> GuiResponse {
self.add(label.into())
}
pub fn button(&mut self, text: impl Into<String>) -> bool {
self.add(Button::new(text)).clicked
}
pub fn add_hyperlink(&mut self, url: impl Into<String>) -> GuiResponse {
pub fn hyperlink(&mut self, url: impl Into<String>) -> GuiResponse {
self.add(Hyperlink::new(url))
}
pub fn button(&mut self, text: impl Into<String>) -> GuiResponse {
self.add(Button::new(text))
}
// TODO: argument order?
pub fn checkbox(&mut self, text: impl Into<String>, checked: &mut bool) -> GuiResponse {
self.add(Checkbox::new(checked, text))
}
// TODO: argument order?
pub fn radio(&mut self, text: impl Into<String>, checked: bool) -> GuiResponse {
self.add(RadioButton::new(checked, text))
}
pub fn separator(&mut self) -> GuiResponse {
self.add(Separator::new())
}
// ------------------------------------------------------------------------
// Addding Containers / Sub-uis: