}
pub struct ToggleBuilder {
- args: *mut UiToggleArgs
+ args: *mut UiToggleArgs,
+ obj: *const UiObject,
+ create: ToggleButtonCreate
}
+pub type ToggleButtonCreate = fn(*const UiObject, *const UiToggleArgs);
+
impl toolkit::UiObject {
pub fn button(&self) -> ButtonBuilder {
unsafe {
}
}
- pub fn togglebutton() -> ToggleBuilder {
+ pub fn togglebutton(&self) -> ToggleBuilder {
unsafe {
let args = ui_toggle_args_new();
- ToggleBuilder { args: args }
+ ToggleBuilder { args: args, obj: self.ptr, create: togglebutton_create }
}
}
- pub fn checkbox() -> ToggleBuilder {
+ pub fn checkbox(&self) -> ToggleBuilder {
unsafe {
let args = ui_toggle_args_new();
- ToggleBuilder { args: args }
+ ToggleBuilder { args: args, obj: self.ptr, create: checkbox_create }
}
}
- pub fn switch() -> ToggleBuilder {
+ pub fn switch(&self) -> ToggleBuilder {
unsafe {
let args = ui_toggle_args_new();
- ToggleBuilder { args: args }
+ ToggleBuilder { args: args, obj: self.ptr, create: switch_create }
}
}
- pub fn radiobutton() -> ToggleBuilder {
+ pub fn radiobutton(&self) -> ToggleBuilder {
unsafe {
let args = ui_toggle_args_new();
- ToggleBuilder { args: args }
+ ToggleBuilder { args: args, obj: self.ptr, create: radiobutton_create }
}
}
}
+fn togglebutton_create(obj: *const UiObject, args: *const UiToggleArgs) {
+ unsafe {
+ ui_togglebutton_create(obj, args);
+ }
+}
+
+fn checkbox_create(obj: *const UiObject, args: *const UiToggleArgs) {
+ unsafe {
+ ui_checkbox_create(obj, args);
+ }
+}
+
+fn switch_create(obj: *const UiObject, args: *const UiToggleArgs) {
+ unsafe {
+ ui_switch_create(obj, args);
+ }
+}
+
+fn radiobutton_create(obj: *const UiObject, args: *const UiToggleArgs) {
+ unsafe {
+ ui_radiobutton_create(obj, args);
+ }
+}
+
impl Drop for ButtonBuilder {
fn drop(&mut self) {
unsafe {
self
}
}
+
+impl ToggleBuilder {
+ pub fn build(self) {
+ (self.create)(self.obj, self.args)
+ }
+}
\ No newline at end of file