fluid-parser 0.1.13

A fluid (fltk ui designer) file parser
Documentation
#[derive(Default, Debug)]
pub struct WidgetProps {
    pub open: Option<bool>,
    pub xywh: String,
    pub label: Option<String>,
    pub typ: Option<String>,
    pub hide: Option<bool>,
    pub deactivate: Option<bool>,
    pub visible: Option<bool>,
    pub modal: Option<bool>,
    pub non_modal: Option<bool>,
    pub noborder: Option<bool>,
    pub xclass: Option<String>,
    pub size_range: Option<String>,
    pub resizable: Option<bool>,
    pub hotspot: Option<bool>,
    pub divider: Option<bool>,
    pub selected: Option<bool>,
    pub color: Option<u32>,
    pub selection_color: Option<u32>,
    pub tooltip: Option<String>,
    pub image: Option<String>,
    pub deimage: Option<String>,
    pub r#box: Option<String>,
    pub down_box: Option<String>,
    pub value: Option<String>,
    pub labeltype: Option<String>,
    pub labelfont: Option<i32>,
    pub labelsize: Option<i32>,
    pub labelcolor: Option<u32>,
    pub align: Option<i32>,
    pub when: Option<i32>,
    pub minimum: Option<f64>,
    pub maximum: Option<f64>,
    pub step: Option<f64>,
    pub slider_size: Option<f64>,
    pub size: Option<f64>,
    pub textfont: Option<i32>,
    pub textsize: Option<i32>,
    pub textcolor: Option<u32>,
    pub class: Option<String>,
    pub shortcut: Option<String>,
    pub code0: Option<String>,
    pub code1: Option<String>,
    pub code2: Option<String>,
    pub code3: Option<String>,
    pub extra_code: Option<String>,
    pub size_tuple: Option<String>,
    pub gap: Option<i32>,
    pub user_data: Option<String>,
    pub user_data_type: Option<String>,
    pub callback: Option<String>,
    pub comment: Option<String>,
}

#[derive(Debug, Default)]
pub struct Widget {
    pub typ: String,
    pub name: String,
    pub props: WidgetProps,
    pub children: Vec<Widget>,
}

#[derive(Debug, PartialEq, Eq, Copy, Clone)]
pub enum Visibility {
    PUBLIC,
    PRIVATE,
    PROTECTED,
}

impl Default for Visibility {
    fn default() -> Self {
        Visibility::PUBLIC
    }
}

#[derive(Debug, Default)]
pub struct FunctionProps {
    pub visibility: Option<Visibility>,
    pub open: Option<bool>,
    pub c: Option<bool>,
    pub return_type: Option<String>,
    pub comment: Option<String>,
}

#[derive(Debug, Default)]
pub struct Function {
    pub name: String,
    pub props: FunctionProps,
    pub code: Option<String>,
    pub widgets: Vec<Widget>,
}

#[derive(Debug, Default)]
pub struct ClassProps {
    pub visibility: Option<Visibility>,
    pub open: Option<bool>,
    pub comment: Option<String>,
}

#[derive(Debug, Default)]
pub struct Class {
    pub name: String,
    pub props: ClassProps,
    pub functions: Vec<Function>,
}

#[derive(Debug, Default)]
pub struct DeclProps {
    pub visibility: Visibility,
    pub global: Option<bool>,
    pub local: Option<bool>,
}

#[derive(Debug, Default)]
pub struct Decl {
    pub decl: String,
    pub props: DeclProps,
}

#[derive(Debug, Default)]
pub struct CommentProps {
    pub in_source: Option<bool>,
    pub in_header: Option<bool>,
}

#[derive(Debug, Default)]
pub struct Comment {
    pub comment: String,
    pub props: CommentProps,
}

#[derive(Debug, Default)]
pub struct Ast {
    pub i18n_type: Option<bool>,
    pub classes: Vec<Class>,
    pub widget_classes: Vec<Widget>,
    pub functions: Vec<Function>,
    pub comments: Vec<Comment>,
    pub decls: Vec<Decl>,
}