Rename Dialog::new -> Dialog::around

And `Dialog::empty` -> `Dialog::new`
This commit is contained in:
Alexandre Bury 2016-10-02 15:15:30 -07:00
parent 53aea8e91c
commit 8fa704bcfa
19 changed files with 41 additions and 41 deletions

View File

@ -37,7 +37,7 @@ fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
// Creates a dialog with a single "Quit" button // Creates a dialog with a single "Quit" button
siv.add_layer(Dialog::new(TextView::new("Hello Dialog!")) siv.add_layer(Dialog::around(TextView::new("Hello Dialog!"))
.title("Cursive") .title("Cursive")
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));

View File

@ -63,7 +63,7 @@ Instead of directly using a [`TextView`], we'll use a [`Dialog`] this time.
A dialog is wrapper with a frame around another view, and optionally a title A dialog is wrapper with a frame around another view, and optionally a title
and/or buttons. and/or buttons.
[`Dialog::new`] directly takes a view, so we'll directly give it the [`Dialog::around`] directly takes a view, so we'll directly give it the
`TextView`: `TextView`:
```rust,no_run ```rust,no_run
@ -76,7 +76,7 @@ use cursive::views::TextView;
fn main() { fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
siv.add_layer(Dialog::new(TextView::new("..."))); siv.add_layer(Dialog::around(TextView::new("...")));
siv.run(); siv.run();
} }
@ -105,7 +105,7 @@ and configuring it in one spot.
[`TextView`]: http://gyscos.github.io/Cursive/cursive/views/struct.TextView [`TextView`]: http://gyscos.github.io/Cursive/cursive/views/struct.TextView
[`Dialog`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html [`Dialog`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html
[`Dialog::new`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.new [`Dialog::around`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.around
[`Dialog::text`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.text [`Dialog::text`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.text
[`Dialog::title`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.title [`Dialog::title`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.title

View File

@ -29,7 +29,7 @@ fn main() {
.child(DummyView) .child(DummyView)
.child(Button::new("Quit", Cursive::quit)); .child(Button::new("Quit", Cursive::quit));
siv.add_layer(Dialog::new(LinearLayout::horizontal() siv.add_layer(Dialog::around(LinearLayout::horizontal()
.child(select) .child(select)
.child(DummyView) .child(DummyView)
.child(buttons)) .child(buttons))
@ -44,7 +44,7 @@ fn add_name(s: &mut Cursive) {
s.pop_layer(); s.pop_layer();
} }
s.add_layer(Dialog::new(EditView::new() s.add_layer(Dialog::around(EditView::new()
.on_submit(ok) .on_submit(ok)
.with_id("name") .with_id("name")
.fixed_width(10)) .fixed_width(10))
@ -145,7 +145,7 @@ replace the layer with a simple dialog.
Our main screen is more complex than our previous examples: it is made of Our main screen is more complex than our previous examples: it is made of
several views. There is a `SelectView` on the left, and three [`Button`]s to several views. There is a `SelectView` on the left, and three [`Button`]s to
the right. But our [`Dialog::new`] method only takes one view! How will we do? the right. But our [`Dialog::around`] method only takes one view! How will we do?
The solution is to use a layout view to display multiple children side-by-side. The solution is to use a layout view to display multiple children side-by-side.
[`LinearLayout`] for instance can display views in a line. [`LinearLayout`] for instance can display views in a line.
@ -174,7 +174,7 @@ as a cheap spacer.
We can now create the second linear layout inside a Dialog: We can now create the second linear layout inside a Dialog:
```rust,ignore ```rust,ignore
siv.add_layer(Dialog::new(LinearLayout::horizontal() siv.add_layer(Dialog::around(LinearLayout::horizontal()
.child(select) .child(select)
.child(DummyView) .child(DummyView)
.child(buttons)) .child(buttons))
@ -186,7 +186,7 @@ buttons. Though with an empty list, it doesn't look like much yet. Let's fill
this list with names! this list with names!
[`Button`]: http://gyscos.github.io/Cursive/cursive/views/struct.Button.html [`Button`]: http://gyscos.github.io/Cursive/cursive/views/struct.Button.html
[`Dialog::new`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.new [`Dialog::around`]: http://gyscos.github.io/Cursive/cursive/views/struct.Dialog.html#method.new
[`LinearLayout`]: http://gyscos.github.io/Cursive/cursive/views/struct.LinearLayout.html [`LinearLayout`]: http://gyscos.github.io/Cursive/cursive/views/struct.LinearLayout.html
[`DummyView`]: http://gyscos.github.io/Cursive/cursive/views/struct.DummyView.html [`DummyView`]: http://gyscos.github.io/Cursive/cursive/views/struct.DummyView.html
@ -197,7 +197,7 @@ can enter a new name:
```rust,ignore ```rust,ignore
fn add_name(s: &mut Cursive) { fn add_name(s: &mut Cursive) {
s.add_layer(Dialog::new(EditView::new() s.add_layer(Dialog::around(EditView::new()
.fixed_width(10)) .fixed_width(10))
.title("Enter a new name") .title("Enter a new name")
.button("Ok", |s| { .button("Ok", |s| {
@ -231,7 +231,7 @@ Here's what it looks like in action:
```rust,ignore ```rust,ignore
fn add_name(s: &mut Cursive) { fn add_name(s: &mut Cursive) {
s.add_layer(Dialog::new(EditView::new() s.add_layer(Dialog::around(EditView::new()
.with_id("name") .with_id("name")
.fixed_width(10)) .fixed_width(10))
.title("Enter a new name") .title("Enter a new name")
@ -267,7 +267,7 @@ fn add_name(s: &mut Cursive) {
s.pop_layer(); s.pop_layer();
} }
s.add_layer(Dialog::new(EditView::new() s.add_layer(Dialog::around(EditView::new()
.on_submit(ok) .on_submit(ok)
.with_id("name") .with_id("name")
.fixed_width(10)) .fixed_width(10))
@ -304,7 +304,7 @@ when we try to add a new layer - one of the quirks of the borrow checker.
[`EditView`]: http://gyscos.github.io/Cursive/cursive/views/struct.EditView.html [`EditView`]: http://gyscos.github.io/Cursive/cursive/views/struct.EditView.html
[`IdView`]: http://gyscos.github.io/Cursive/cursive/views/struct.IdView.html [`IdView`]: http://gyscos.github.io/Cursive/cursive/views/struct.IdView.html
[`IdView::new`]: http://gyscos.github.io/Cursive/cursive/prelude/struct.IdView.html#method.new [`IdView::new`]: http://gyscos.github.io/Cursive/cursive/prelude/struct.IdView.html#method.around
[`Identifiable`]: http://gyscos.github.io/Cursive/cursive/view/trait.Identifiable.html [`Identifiable`]: http://gyscos.github.io/Cursive/cursive/view/trait.Identifiable.html
[`Cursive::find_id`]: http://gyscos.github.io/Cursive/cursive/struct.Cursive.html#method.find_id [`Cursive::find_id`]: http://gyscos.github.io/Cursive/cursive/struct.Cursive.html#method.find_id
[`SelectView::selected_id`]: http://gyscos.github.io/Cursive/cursive/views/struct.SelectView.html#method.selected_id [`SelectView::selected_id`]: http://gyscos.github.io/Cursive/cursive/views/struct.SelectView.html#method.selected_id

View File

@ -8,7 +8,7 @@ fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
// Creates a dialog with a single "Quit" button // Creates a dialog with a single "Quit" button
siv.add_layer(Dialog::new(TextView::new("Hello Dialog!")) siv.add_layer(Dialog::around(TextView::new("Hello Dialog!"))
.title("Cursive") .title("Cursive")
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));

View File

@ -10,7 +10,7 @@ fn main() {
// Create a dialog with an edit text and a button. // Create a dialog with an edit text and a button.
// The user can either hit the <Ok> button, // The user can either hit the <Ok> button,
// or press Enter on the edit text. // or press Enter on the edit text.
siv.add_layer(Dialog::empty() siv.add_layer(Dialog::new()
.title("Enter your name") .title("Enter your name")
.padding((1, 1, 1, 0)) .padding((1, 1, 1, 0))
.content(EditView::new() .content(EditView::new()
@ -33,7 +33,7 @@ fn show_popup(s: &mut Cursive, name: &str) {
} else { } else {
let content = format!("Hello {}!", name); let content = format!("Hello {}!", name);
s.pop_layer(); s.pop_layer();
s.add_layer(Dialog::new(TextView::new(content)) s.add_layer(Dialog::around(TextView::new(content))
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));
} }
} }

View File

@ -14,7 +14,7 @@ fn main() {
has a fixed width, and the title is centered horizontally."; has a fixed width, and the title is centered horizontally.";
// We'll create a dialog with a TextView serving as a title // We'll create a dialog with a TextView serving as a title
siv.add_layer(Dialog::new(LinearLayout::vertical() siv.add_layer(Dialog::around(LinearLayout::vertical()
.child(TextView::new("Title").h_align(HAlign::Center)) .child(TextView::new("Title").h_align(HAlign::Center))
// Box the textview, so it doesn't get too wide. // Box the textview, so it doesn't get too wide.
// A 0 height value means it will be unconstrained. // A 0 height value means it will be unconstrained.

View File

@ -8,7 +8,7 @@ use cursive::traits::*;
fn main() { fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
siv.add_layer(Dialog::empty() siv.add_layer(Dialog::new()
.title("Please fill out this form") .title("Please fill out this form")
.button("Ok", |s| s.quit()) .button("Ok", |s| s.quit())
.content(ListView::new() .content(ListView::new()

View File

@ -15,7 +15,7 @@ fn main() {
// The text is too long to fit on a line, so the view will wrap lines, // The text is too long to fit on a line, so the view will wrap lines,
// and will adapt to the terminal size. // and will adapt to the terminal size.
siv.add_layer(Dialog::new(TextView::new(content)) siv.add_layer(Dialog::around(TextView::new(content))
.h_align(HAlign::Center) .h_align(HAlign::Center)
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));
// Show a popup on top of the view. // Show a popup on top of the view.

View File

@ -47,7 +47,7 @@ fn main() {
siv.add_global_callback(Key::Esc, |s| s.select_menubar()); siv.add_global_callback(Key::Esc, |s| s.select_menubar());
siv.add_layer(Dialog::new(TextView::new("Hit <Esc> to show the menu!"))); siv.add_layer(Dialog::around(TextView::new("Hit <Esc> to show the menu!")));
siv.run(); siv.run();
} }

View File

@ -10,7 +10,7 @@ fn show_popup(siv: &mut Cursive) {
// Let's center the popup horizontally, but offset it down a few rows // Let's center the popup horizontally, but offset it down a few rows
siv.screen_mut() siv.screen_mut()
.add_layer_at(Position::new(Offset::Center, Offset::Parent(3)), .add_layer_at(Position::new(Offset::Center, Offset::Parent(3)),
Dialog::new(TextView::new("Tak!")) Dialog::around(TextView::new("Tak!"))
.button("Change", |s| { .button("Change", |s| {
// Look for a view tagged "text". We _know_ it's there, so unwrap it. // Look for a view tagged "text". We _know_ it's there, so unwrap it.
let view = s.find_id::<TextView>("text").unwrap(); let view = s.find_id::<TextView>("text").unwrap();

View File

@ -16,7 +16,7 @@ fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
// We'll start slowly with a simple start button... // We'll start slowly with a simple start button...
siv.add_layer(Dialog::empty() siv.add_layer(Dialog::new()
.title("Progress bar example") .title("Progress bar example")
.padding((0, 0, 1, 1)) .padding((0, 0, 1, 1))
.content(Button::new("Start", phase_1))); .content(Button::new("Start", phase_1)));
@ -46,7 +46,7 @@ fn phase_1(s: &mut Cursive) {
let cb = s.cb_sink().clone(); let cb = s.cb_sink().clone();
s.pop_layer(); s.pop_layer();
s.add_layer(Dialog::new(ProgressBar::new() s.add_layer(Dialog::around(ProgressBar::new()
.range(0, n_max) .range(0, n_max)
.with_task(move |counter| { .with_task(move |counter| {
// This closure will be called in a separate thread. // This closure will be called in a separate thread.
@ -61,7 +61,7 @@ fn phase_1(s: &mut Cursive) {
fn coffee_break(s: &mut Cursive) { fn coffee_break(s: &mut Cursive) {
// A little break before things get serious. // A little break before things get serious.
s.pop_layer(); s.pop_layer();
s.add_layer(Dialog::empty() s.add_layer(Dialog::new()
.title("Preparation complete") .title("Preparation complete")
.content(TextView::new("Now, the real deal!").center()) .content(TextView::new("Now, the real deal!").center())
.button("Again??", phase_2)); .button("Again??", phase_2));
@ -90,7 +90,7 @@ fn phase_2(s: &mut Cursive) {
} }
s.pop_layer(); s.pop_layer();
s.add_layer(Dialog::new(linear.full_width()).title("Just a moment...")); s.add_layer(Dialog::around(linear.full_width()).title("Just a moment..."));
// And we start the worker thread. // And we start the worker thread.
thread::spawn(move || { thread::spawn(move || {
@ -116,7 +116,7 @@ fn phase_2(s: &mut Cursive) {
fn final_step(s: &mut Cursive) { fn final_step(s: &mut Cursive) {
// A little break before things get serious. // A little break before things get serious.
s.pop_layer(); s.pop_layer();
s.add_layer(Dialog::empty() s.add_layer(Dialog::new()
.title("Report") .title("Report")
.content(TextView::new("Time travel was a success!\n\ .content(TextView::new("Time travel was a success!\n\
We went forward a few seconds!!") We went forward a few seconds!!")

View File

@ -10,7 +10,7 @@ fn main() {
let mut color_group: RadioGroup<String> = RadioGroup::new(); let mut color_group: RadioGroup<String> = RadioGroup::new();
let mut size_group: RadioGroup<u32> = RadioGroup::new(); let mut size_group: RadioGroup<u32> = RadioGroup::new();
siv.add_layer(Dialog::empty() siv.add_layer(Dialog::new()
.title("Make your selection") .title("Make your selection")
// We'll have two columns side-by-side // We'll have two columns side-by-side
.content(LinearLayout::horizontal() .content(LinearLayout::horizontal()

View File

@ -19,7 +19,7 @@ fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
// Let's add a BoxView to keep the list at a reasonable size - it can scroll anyway. // Let's add a BoxView to keep the list at a reasonable size - it can scroll anyway.
siv.add_layer(Dialog::new(select.fixed_size((20, 10))) siv.add_layer(Dialog::around(select.fixed_size((20, 10)))
.title("Where are you from?")); .title("Where are you from?"));
siv.run(); siv.run();
@ -29,6 +29,6 @@ fn main() {
fn show_next_window(siv: &mut Cursive, city: &str) { fn show_next_window(siv: &mut Cursive, city: &str) {
siv.pop_layer(); siv.pop_layer();
let text = format!("{} is a great city!", city); let text = format!("{} is a great city!", city);
siv.add_layer(Dialog::new(TextView::new(text)) siv.add_layer(Dialog::around(TextView::new(text))
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));
} }

View File

@ -10,7 +10,7 @@ fn main() {
// Let's add a simple slider in a dialog. // Let's add a simple slider in a dialog.
// Moving the slider will update the dialog's title. // Moving the slider will update the dialog's title.
// And pressing "Enter" will show a new dialog. // And pressing "Enter" will show a new dialog.
siv.add_layer(Dialog::new(SliderView::horizontal(15) siv.add_layer(Dialog::around(SliderView::horizontal(15)
.value(7) .value(7)
.on_change(|s, v| { .on_change(|s, v| {
let title = format!("[ {} ]", v); let title = format!("[ {} ]", v);

View File

@ -7,7 +7,7 @@ use cursive::traits::*;
fn main() { fn main() {
let mut siv = Cursive::new(); let mut siv = Cursive::new();
siv.add_layer(Dialog::empty() siv.add_layer(Dialog::new()
.title("Describe your issue") .title("Describe your issue")
.padding((1, 1, 1, 0)) .padding((1, 1, 1, 0))
.content(TextArea::new() .content(TextArea::new()

View File

@ -11,7 +11,7 @@ fn main() {
// Or you can directly load it from a string for easy deployment. // Or you can directly load it from a string for easy deployment.
// siv.load_theme(include_str!("../assets/style.toml")).unwrap(); // siv.load_theme(include_str!("../assets/style.toml")).unwrap();
siv.add_layer(Dialog::new(TextView::new("This application uses a \ siv.add_layer(Dialog::around(TextView::new("This application uses a \
custom theme!")) custom theme!"))
.title("Themed dialog") .title("Themed dialog")
.button("Quit", |s| s.quit())); .button("Quit", |s| s.quit()));

View File

@ -26,7 +26,7 @@ enum Focus {
/// ///
/// ``` /// ```
/// # use cursive::views::{Dialog,TextView}; /// # use cursive::views::{Dialog,TextView};
/// let dialog = Dialog::new(TextView::new("Hello!")) /// let dialog = Dialog::around(TextView::new("Hello!"))
/// .button("Ok", |s| s.quit()); /// .button("Ok", |s| s.quit());
/// ``` /// ```
pub struct Dialog { pub struct Dialog {
@ -47,12 +47,12 @@ impl Dialog {
/// Creates a new `Dialog` with empty content. /// Creates a new `Dialog` with empty content.
/// ///
/// You should probably call `content()` next. /// You should probably call `content()` next.
pub fn empty() -> Self { pub fn new() -> Self {
Self::new(DummyView) Self::around(DummyView)
} }
/// Creates a new `Dialog` with the given content. /// Creates a new `Dialog` with the given content.
pub fn new<V: View + 'static>(view: V) -> Self { pub fn around<V: View + 'static>(view: V) -> Self {
Dialog { Dialog {
content: Box::new(view), content: Box::new(view),
buttons: Vec::new(), buttons: Vec::new(),
@ -80,7 +80,7 @@ impl Dialog {
/// Convenient method to create a dialog with a simple text content. /// Convenient method to create a dialog with a simple text content.
pub fn text<S: Into<String>>(text: S) -> Self { pub fn text<S: Into<String>>(text: S) -> Self {
Self::new(TextView::new(text)) Self::around(TextView::new(text))
} }
/// Convenient method to create an infobox. /// Convenient method to create an infobox.

View File

@ -31,7 +31,7 @@ use utils::simple_suffix_length;
/// // Create a dialog with an edit text and a button. /// // Create a dialog with an edit text and a button.
/// // The user can either hit the <Ok> button, /// // The user can either hit the <Ok> button,
/// // or press Enter on the edit text. /// // or press Enter on the edit text.
/// siv.add_layer(Dialog::empty() /// siv.add_layer(Dialog::new()
/// .title("Enter your name") /// .title("Enter your name")
/// .padding((1, 1, 1, 0)) /// .padding((1, 1, 1, 0))
/// .content(EditView::new() /// .content(EditView::new()
@ -51,7 +51,7 @@ use utils::simple_suffix_length;
/// } else { /// } else {
/// let content = format!("Hello {}!", name); /// let content = format!("Hello {}!", name);
/// s.pop_layer(); /// s.pop_layer();
/// s.add_layer(Dialog::new(TextView::new(content)) /// s.add_layer(Dialog::around(TextView::new(content))
/// .button("Quit", |s| s.quit())); /// .button("Quit", |s| s.quit()));
/// } /// }
/// } /// }

View File

@ -37,12 +37,12 @@ use unicode_width::UnicodeWidthStr;
/// time_select.set_on_submit(|s, time| { /// time_select.set_on_submit(|s, time| {
/// s.pop_layer(); /// s.pop_layer();
/// let text = format!("You will wait for {} minutes...", time); /// let text = format!("You will wait for {} minutes...", time);
/// s.add_layer(Dialog::new(TextView::new(text)) /// s.add_layer(Dialog::around(TextView::new(text))
/// .button("Quit", |s| s.quit())); /// .button("Quit", |s| s.quit()));
/// }); /// });
/// ///
/// let mut siv = Cursive::new(); /// let mut siv = Cursive::new();
/// siv.add_layer(Dialog::new(time_select) /// siv.add_layer(Dialog::around(time_select)
/// .title("How long is your wait?")); /// .title("How long is your wait?"));
/// # } /// # }
/// ///