mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-11 21:48:36 +00:00
Merge pull request #74 from Palmr/radio-buttons
Added functions in lib for radios
This commit is contained in:
commit
1a2f5427ec
@ -42,6 +42,7 @@ struct State {
|
||||
selected_fish: Option<usize>,
|
||||
auto_resize_state: AutoResizeState,
|
||||
file_menu: FileMenuState,
|
||||
radio_button: i32,
|
||||
}
|
||||
|
||||
impl Default for State {
|
||||
@ -85,6 +86,7 @@ impl Default for State {
|
||||
selected_fish: None,
|
||||
auto_resize_state: Default::default(),
|
||||
file_menu: Default::default(),
|
||||
radio_button: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -320,6 +322,12 @@ fn show_test_window<'a>(ui: &Ui<'a>, state: &mut State, opened: &mut bool) {
|
||||
.build();
|
||||
});
|
||||
|
||||
ui.radio_button(im_str!("radio a"), &mut state.radio_button, 0);
|
||||
ui.same_line(0.0);
|
||||
ui.radio_button(im_str!("radio b"), &mut state.radio_button, 1);
|
||||
ui.same_line(0.0);
|
||||
ui.radio_button(im_str!("radio c"), &mut state.radio_button, 2);
|
||||
|
||||
ui.separator();
|
||||
ui.label_text(im_str!("label"), im_str!("Value"));
|
||||
ui.combo(im_str!("combo"),
|
||||
|
||||
47
src/lib.rs
47
src/lib.rs
@ -714,6 +714,53 @@ impl<'ui> Ui<'ui> {
|
||||
}
|
||||
}
|
||||
|
||||
// Widgets: Radio
|
||||
impl<'ui> Ui<'ui> {
|
||||
/// Creates a radio button for selecting an integer value.
|
||||
/// Returns true if pressed.
|
||||
///
|
||||
/// # Example
|
||||
/// ```rust,no_run
|
||||
/// # use imgui::*;
|
||||
/// # let mut imgui = ImGui::init();
|
||||
/// # let ui = imgui.frame((0, 0), (0, 0), 0.1);
|
||||
/// # let mut selected_radio_value = 2;
|
||||
/// ui.radio_button(im_str!("Item 1"), &mut selected_radio_value, 1);
|
||||
/// ui.radio_button(im_str!("Item 2"), &mut selected_radio_value, 2);
|
||||
/// ui.radio_button(im_str!("Item 3"), &mut selected_radio_value, 3);
|
||||
/// ```
|
||||
pub fn radio_button<'p>(&self,
|
||||
label: &'p ImStr,
|
||||
value: &'p mut i32,
|
||||
wanted: i32) -> bool {
|
||||
unsafe {
|
||||
imgui_sys::igRadioButton(label.as_ptr(), value, wanted)
|
||||
}
|
||||
}
|
||||
|
||||
/// Creates a radio button that shows as selected if the given value is true.
|
||||
/// Returns true if pressed.
|
||||
///
|
||||
/// # Example
|
||||
/// ```rust,no_run
|
||||
/// # use imgui::*;
|
||||
/// # let mut imgui = ImGui::init();
|
||||
/// # let ui = imgui.frame((0, 0), (0, 0), 0.1);
|
||||
/// # let mut radio_button_test = "cats".to_string();
|
||||
/// if ui.radio_button_bool(im_str!("Cats"), radio_button_test == "cats") {
|
||||
/// radio_button_test = "cats".to_string();
|
||||
/// }
|
||||
/// if ui.radio_button_bool(im_str!("Dogs"), radio_button_test == "dogs") {
|
||||
/// radio_button_test = "dogs".to_string();
|
||||
/// }
|
||||
/// ```
|
||||
pub fn radio_button_bool<'p>(&self, label: &'p ImStr, value: bool) -> bool {
|
||||
unsafe {
|
||||
imgui_sys::igRadioButtonBool(label.as_ptr(), value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'ui> Ui<'ui> {
|
||||
pub fn plot_lines<'p>(&self, label: &'p ImStr, values: &'p [f32]) -> PlotLines<'ui, 'p> {
|
||||
PlotLines::new(self, label, values)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user