1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::PdfAnnotation;

#[derive(Debug)]
pub enum PdfWidget {
    Button { inner: PdfWidgetInner },
    CheckBox { inner: PdfWidgetInner },
    ComboBox { inner: PdfWidgetInner },
    ListBox { inner: PdfWidgetInner },
    RadioButton { inner: PdfWidgetInner },
    Signature { inner: PdfWidgetInner },
    Text { inner: PdfWidgetInner },
    Unknown { inner: PdfWidgetInner },
}

#[derive(Debug)]
pub struct PdfWidgetInner {
    annot: PdfAnnotation,
}

impl PdfWidget {
    pub fn type_code(&self) -> i32 {
        use PdfWidget::*;

        match *self {
            Unknown { .. } => 0,
            Button { .. } => 1,
            CheckBox { .. } => 2,
            ComboBox { .. } => 3,
            ListBox { .. } => 4,
            RadioButton { .. } => 5,
            Signature { .. } => 6,
            Text { .. } => 7,
        }
    }
}