// This file is auto-generated by rute_gen. DO NOT EDIT.
use rute_ffi_base::*;

#[allow(unused_imports)]
use std::os::raw::c_void;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct RUObjectFuncs {
    pub destroy: extern "C" fn(self_c: *const RUBase),
    pub object_name: extern "C" fn(self_c: *const RUBase) -> *const ::std::os::raw::c_char,
    pub set_object_name: extern "C" fn(self_c: *const RUBase, name: *const ::std::os::raw::c_char),
    pub is_widget_type: extern "C" fn(self_c: *const RUBase) -> bool,
    pub is_window_type: extern "C" fn(self_c: *const RUBase) -> bool,
    pub signals_blocked: extern "C" fn(self_c: *const RUBase) -> bool,
    pub block_signals: extern "C" fn(self_c: *const RUBase, b: bool) -> bool,
    pub start_timer: extern "C" fn(self_c: *const RUBase, interval: i32, timer_type: u32) -> i32,
    pub start_timer_2: extern "C" fn(self_c: *const RUBase, time: u32, timer_type: u32) -> i32,
    pub kill_timer: extern "C" fn(self_c: *const RUBase, id: i32),
    pub set_parent: extern "C" fn(self_c: *const RUBase, parent: *const RUBase),
    pub install_event_filter: extern "C" fn(self_c: *const RUBase, filter_obj: *const RUBase),
    pub dump_object_tree: extern "C" fn(self_c: *const RUBase),
    pub dump_object_info: extern "C" fn(self_c: *const RUBase),
    pub dump_object_tree_2: extern "C" fn(self_c: *const RUBase),
    pub dump_object_info_2: extern "C" fn(self_c: *const RUBase),
    pub parent: extern "C" fn(self_c: *const RUBase) -> RUObject,
    pub delete_later: extern "C" fn(self_c: *const RUBase),
    pub set_custom_event: extern "C" fn(
        object: *const RUBase,
        user_data: *const c_void,
        trampoline_func: *const c_void,
        callback: *const c_void,
    ),

    pub remove_custom_event: extern "C" fn(object: *const RUBase),
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct RUObjectAllFuncs {
    pub object_funcs: *const RUObjectFuncs,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct RUObject {
    pub qt_data: *const RUBase,
    pub host_data: *const RUBase,
    pub all_funcs: *const RUObjectAllFuncs,
}
