pub struct EditableCombobox { /* private fields */ }
Expand description
A control to select one item from a predefined list of items or enter ones own.
Implementations§
Source§impl EditableCombobox
impl EditableCombobox
pub fn show(&mut self)
pub fn hide(&mut self)
pub fn enable(&mut self)
pub fn disable(&mut self)
Sourcepub unsafe fn from_raw(
uiEditableCombobox: *mut uiEditableCombobox,
) -> EditableCombobox
pub unsafe fn from_raw( uiEditableCombobox: *mut uiEditableCombobox, ) -> EditableCombobox
Create an ui
struct for this control from the raw pointer for it.
§Unsafety
The given pointer must point to a valid control or memory unsafety may result.
Sourcepub fn ptr(&self) -> *mut uiEditableCombobox
pub fn ptr(&self) -> *mut uiEditableCombobox
Return the underlying pointer for this control.
Source§impl EditableCombobox
impl EditableCombobox
Sourcepub fn new() -> EditableCombobox
pub fn new() -> EditableCombobox
Creates a new editable combobox.
Examples found in repository?
examples/controlgallery/page2.rs (line 50)
4pub fn make_numbers_page(_ui: UI) -> Control {
5 // Left
6 let mut hbox = HorizontalBox::new();
7 let mut group_numbers = Group::new("Numbers");
8 let mut vbox_numbers = VerticalBox::new();
9 vbox_numbers.set_padded(true);
10
11 let mut spinner = Spinbox::new(0, 100);
12 let mut slider = Slider::new(0, 100);
13 let progressbar = ProgressBar::new();
14
15 spinner.on_changed({
16 let mut slider = slider.clone();
17 let mut progressbar = progressbar.clone();
18 move |val| -> () {
19 slider.set_value(val);
20 progressbar.set_value(val as u32);
21 }
22 });
23
24 slider.on_changed({
25 let mut spinner = spinner.clone();
26 let mut progressbar = progressbar.clone();
27 move |val| -> () {
28 spinner.set_value(val);
29 progressbar.set_value(val as u32);
30 }
31 });
32
33 vbox_numbers.append(spinner, LayoutStrategy::Compact);
34 vbox_numbers.append(slider, LayoutStrategy::Compact);
35 vbox_numbers.append(progressbar, LayoutStrategy::Compact);
36
37 group_numbers.set_child(vbox_numbers);
38 hbox.append(group_numbers.clone(), LayoutStrategy::Stretchy);
39
40 // Right
41 let mut group_lists = Group::new("Lists");
42 let mut vbox_lists = VerticalBox::new();
43 vbox_lists.set_padded(true);
44
45 let combobox = Combobox::new();
46 combobox.append("Combobox Item 1");
47 combobox.append("Combobox Item 2");
48 combobox.append("Combobox Item 3");
49
50 let mut combobox_editable = EditableCombobox::new();
51 combobox_editable.append("Editable Item 1");
52 combobox_editable.append("Editable Item 2");
53 combobox_editable.append("Editable Item 3");
54 combobox_editable.set_value("Custom Text");
55
56 let radiobuttons = RadioButtons::new();
57 radiobuttons.append("Radio Button 1");
58 radiobuttons.append("Radio Button 2");
59 radiobuttons.append("Radio Button 3");
60
61 let dummybox = VerticalBox::new();
62 vbox_lists.append(combobox, LayoutStrategy::Compact);
63 vbox_lists.append(combobox_editable, LayoutStrategy::Compact);
64 vbox_lists.append(radiobuttons, LayoutStrategy::Compact);
65
66 // On MacOS, the last item in a list tends to take all the remaining space,
67 // regardless of our `LayoutStrategy`. Because we don't want the radio buttons
68 // to be all over the place, a dummy box is inserted to take the space instead
69 // without visually affecting the UI.
70 vbox_lists.append(dummybox, LayoutStrategy::Compact);
71
72 group_lists.set_child(vbox_lists);
73 hbox.append(group_lists.clone(), LayoutStrategy::Stretchy);
74
75 return hbox.into();
76}
Sourcepub fn append(&self, name: &str)
pub fn append(&self, name: &str)
Adds a new option to the combobox.
Examples found in repository?
examples/controlgallery/page2.rs (line 51)
4pub fn make_numbers_page(_ui: UI) -> Control {
5 // Left
6 let mut hbox = HorizontalBox::new();
7 let mut group_numbers = Group::new("Numbers");
8 let mut vbox_numbers = VerticalBox::new();
9 vbox_numbers.set_padded(true);
10
11 let mut spinner = Spinbox::new(0, 100);
12 let mut slider = Slider::new(0, 100);
13 let progressbar = ProgressBar::new();
14
15 spinner.on_changed({
16 let mut slider = slider.clone();
17 let mut progressbar = progressbar.clone();
18 move |val| -> () {
19 slider.set_value(val);
20 progressbar.set_value(val as u32);
21 }
22 });
23
24 slider.on_changed({
25 let mut spinner = spinner.clone();
26 let mut progressbar = progressbar.clone();
27 move |val| -> () {
28 spinner.set_value(val);
29 progressbar.set_value(val as u32);
30 }
31 });
32
33 vbox_numbers.append(spinner, LayoutStrategy::Compact);
34 vbox_numbers.append(slider, LayoutStrategy::Compact);
35 vbox_numbers.append(progressbar, LayoutStrategy::Compact);
36
37 group_numbers.set_child(vbox_numbers);
38 hbox.append(group_numbers.clone(), LayoutStrategy::Stretchy);
39
40 // Right
41 let mut group_lists = Group::new("Lists");
42 let mut vbox_lists = VerticalBox::new();
43 vbox_lists.set_padded(true);
44
45 let combobox = Combobox::new();
46 combobox.append("Combobox Item 1");
47 combobox.append("Combobox Item 2");
48 combobox.append("Combobox Item 3");
49
50 let mut combobox_editable = EditableCombobox::new();
51 combobox_editable.append("Editable Item 1");
52 combobox_editable.append("Editable Item 2");
53 combobox_editable.append("Editable Item 3");
54 combobox_editable.set_value("Custom Text");
55
56 let radiobuttons = RadioButtons::new();
57 radiobuttons.append("Radio Button 1");
58 radiobuttons.append("Radio Button 2");
59 radiobuttons.append("Radio Button 3");
60
61 let dummybox = VerticalBox::new();
62 vbox_lists.append(combobox, LayoutStrategy::Compact);
63 vbox_lists.append(combobox_editable, LayoutStrategy::Compact);
64 vbox_lists.append(radiobuttons, LayoutStrategy::Compact);
65
66 // On MacOS, the last item in a list tends to take all the remaining space,
67 // regardless of our `LayoutStrategy`. Because we don't want the radio buttons
68 // to be all over the place, a dummy box is inserted to take the space instead
69 // without visually affecting the UI.
70 vbox_lists.append(dummybox, LayoutStrategy::Compact);
71
72 group_lists.set_child(vbox_lists);
73 hbox.append(group_lists.clone(), LayoutStrategy::Stretchy);
74
75 return hbox.into();
76}
pub fn value(&self) -> String
Sourcepub fn set_value(&mut self, value: &str)
pub fn set_value(&mut self, value: &str)
Examples found in repository?
examples/controlgallery/page2.rs (line 54)
4pub fn make_numbers_page(_ui: UI) -> Control {
5 // Left
6 let mut hbox = HorizontalBox::new();
7 let mut group_numbers = Group::new("Numbers");
8 let mut vbox_numbers = VerticalBox::new();
9 vbox_numbers.set_padded(true);
10
11 let mut spinner = Spinbox::new(0, 100);
12 let mut slider = Slider::new(0, 100);
13 let progressbar = ProgressBar::new();
14
15 spinner.on_changed({
16 let mut slider = slider.clone();
17 let mut progressbar = progressbar.clone();
18 move |val| -> () {
19 slider.set_value(val);
20 progressbar.set_value(val as u32);
21 }
22 });
23
24 slider.on_changed({
25 let mut spinner = spinner.clone();
26 let mut progressbar = progressbar.clone();
27 move |val| -> () {
28 spinner.set_value(val);
29 progressbar.set_value(val as u32);
30 }
31 });
32
33 vbox_numbers.append(spinner, LayoutStrategy::Compact);
34 vbox_numbers.append(slider, LayoutStrategy::Compact);
35 vbox_numbers.append(progressbar, LayoutStrategy::Compact);
36
37 group_numbers.set_child(vbox_numbers);
38 hbox.append(group_numbers.clone(), LayoutStrategy::Stretchy);
39
40 // Right
41 let mut group_lists = Group::new("Lists");
42 let mut vbox_lists = VerticalBox::new();
43 vbox_lists.set_padded(true);
44
45 let combobox = Combobox::new();
46 combobox.append("Combobox Item 1");
47 combobox.append("Combobox Item 2");
48 combobox.append("Combobox Item 3");
49
50 let mut combobox_editable = EditableCombobox::new();
51 combobox_editable.append("Editable Item 1");
52 combobox_editable.append("Editable Item 2");
53 combobox_editable.append("Editable Item 3");
54 combobox_editable.set_value("Custom Text");
55
56 let radiobuttons = RadioButtons::new();
57 radiobuttons.append("Radio Button 1");
58 radiobuttons.append("Radio Button 2");
59 radiobuttons.append("Radio Button 3");
60
61 let dummybox = VerticalBox::new();
62 vbox_lists.append(combobox, LayoutStrategy::Compact);
63 vbox_lists.append(combobox_editable, LayoutStrategy::Compact);
64 vbox_lists.append(radiobuttons, LayoutStrategy::Compact);
65
66 // On MacOS, the last item in a list tends to take all the remaining space,
67 // regardless of our `LayoutStrategy`. Because we don't want the radio buttons
68 // to be all over the place, a dummy box is inserted to take the space instead
69 // without visually affecting the UI.
70 vbox_lists.append(dummybox, LayoutStrategy::Compact);
71
72 group_lists.set_child(vbox_lists);
73 hbox.append(group_lists.clone(), LayoutStrategy::Stretchy);
74
75 return hbox.into();
76}
Sourcepub fn on_changed<'ctx, F>(&mut self, _ctx: &'ctx UI, callback: F)
pub fn on_changed<'ctx, F>(&mut self, _ctx: &'ctx UI, callback: F)
Registers a callback for when an editable combobox item is selected or user text changed.
Note: The callback is not triggered when calling set_value(). Note: Only one callback can be registered at a time.
Trait Implementations§
Source§impl Clone for EditableCombobox
impl Clone for EditableCombobox
Source§fn clone(&self) -> EditableCombobox
fn clone(&self) -> EditableCombobox
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Drop for EditableCombobox
impl Drop for EditableCombobox
Auto Trait Implementations§
impl Freeze for EditableCombobox
impl RefUnwindSafe for EditableCombobox
impl !Send for EditableCombobox
impl !Sync for EditableCombobox
impl Unpin for EditableCombobox
impl UnwindSafe for EditableCombobox
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more