1use crate::enums::FrameType;
2use crate::prelude::*;
3use crate::utils::FlString;
4use fltk_sys::input::*;
5use std::ffi::{CStr, CString};
6
7#[derive(Debug)]
9pub struct Input {
10 inner: crate::widget::WidgetTracker,
11 is_derived: bool,
12}
13
14crate::macros::widget::impl_widget_ext!(Input, Fl_Input);
15crate::macros::widget::impl_widget_base!(Input, Fl_Input);
16crate::macros::widget::impl_widget_default!(Input, Fl_Input);
17crate::macros::input::impl_input_ext!(Input, Fl_Input);
18
19#[repr(i32)]
21#[derive(Debug, Copy, Clone, PartialEq, Eq)]
22pub enum InputType {
23 Normal = 0,
25 Float = 1,
27 Int = 2,
29 Multiline = 4,
31 Secret = 5,
33 Input = 7,
35 Readonly = 8,
37 Wrap = 16,
39}
40
41crate::macros::widget::impl_widget_type!(InputType);
42
43#[derive(Debug)]
45pub struct IntInput {
46 inner: crate::widget::WidgetTracker,
47 is_derived: bool,
48}
49
50crate::macros::widget::impl_widget_ext!(IntInput, Fl_Int_Input);
51crate::macros::widget::impl_widget_base!(IntInput, Fl_Int_Input);
52crate::macros::widget::impl_widget_default!(IntInput, Fl_Int_Input);
53crate::macros::input::impl_input_ext!(IntInput, Fl_Int_Input);
54
55#[derive(Debug)]
57pub struct FloatInput {
58 inner: crate::widget::WidgetTracker,
59 is_derived: bool,
60}
61
62crate::macros::widget::impl_widget_ext!(FloatInput, Fl_Float_Input);
63crate::macros::widget::impl_widget_base!(FloatInput, Fl_Float_Input);
64crate::macros::widget::impl_widget_default!(FloatInput, Fl_Float_Input);
65crate::macros::input::impl_input_ext!(FloatInput, Fl_Float_Input);
66
67#[derive(Debug)]
69pub struct MultilineInput {
70 inner: crate::widget::WidgetTracker,
71 is_derived: bool,
72}
73
74crate::macros::widget::impl_widget_ext!(MultilineInput, Fl_Multiline_Input);
75crate::macros::widget::impl_widget_base!(MultilineInput, Fl_Multiline_Input);
76crate::macros::widget::impl_widget_default!(MultilineInput, Fl_Multiline_Input);
77crate::macros::input::impl_input_ext!(MultilineInput, Fl_Multiline_Input);
78
79#[derive(Debug)]
81pub struct FileInput {
82 inner: crate::widget::WidgetTracker,
83 is_derived: bool,
84}
85
86crate::macros::widget::impl_widget_ext!(FileInput, Fl_File_Input);
87crate::macros::widget::impl_widget_base!(FileInput, Fl_File_Input);
88crate::macros::widget::impl_widget_default!(FileInput, Fl_File_Input);
89crate::macros::input::impl_input_ext!(FileInput, Fl_File_Input);
90
91impl FileInput {
92 pub fn set_down_frame(&mut self, f: FrameType) {
94 unsafe { Fl_File_Input_set_down_box(self.inner.widget() as _, f.as_i32()) }
95 }
96
97 pub fn down_frame(&self) -> FrameType {
99 unsafe { FrameType::from_i32(Fl_File_Input_down_box(self.inner.widget() as _)) }
100 }
101}
102
103#[derive(Debug)]
105pub struct SecretInput {
106 inner: crate::widget::WidgetTracker,
107 is_derived: bool,
108}
109
110crate::macros::widget::impl_widget_ext!(SecretInput, Fl_Secret_Input);
111crate::macros::widget::impl_widget_base!(SecretInput, Fl_Secret_Input);
112crate::macros::widget::impl_widget_default!(SecretInput, Fl_Secret_Input);
113crate::macros::input::impl_input_ext!(SecretInput, Fl_Secret_Input);