From: Olaf Wintermann Date: Wed, 9 Sep 2026 17:00:31 +0000 (+0200) Subject: change icon arg type from &str to Into X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;ds=sidebyside;p=note.git change icon arg type from &str to Into --- diff --git a/application/note/src/main.rs b/application/note/src/main.rs index a8cc9f2..767d66a 100644 --- a/application/note/src/main.rs +++ b/application/note/src/main.rs @@ -155,17 +155,17 @@ fn create_menubar(app: &AppContext) { } fn create_toolbar(app: &AppContext) { - app.toolbar_item("new_notebook").icon(UiIconSet::NewFolder.as_str()).action("new_notebook").create(); - app.toolbar_item("go_back").icon(UiIconSet::GoBack.as_str()).action("go_back").create(); - app.toolbar_item("go_forward").icon(UiIconSet::GoForward.as_str()).action("go_forward").create(); - app.toolbar_item("new_note").icon(UiIconSet::NewDocument.as_str()).action("new_note").states(&[AppStates::NoteEnableNew as i32]).create(); + app.toolbar_item("new_notebook").icon(UiIconSet::NewFolder).action("new_notebook").create(); + app.toolbar_item("go_back").icon(UiIconSet::GoBack).action("go_back").create(); + app.toolbar_item("go_forward").icon(UiIconSet::GoForward).action("go_forward").create(); + app.toolbar_item("new_note").icon(UiIconSet::NewDocument).action("new_note").states(&[AppStates::NoteEnableNew as i32]).create(); app.toolbar_content_toggleitem("note_maximize") - .icon0(UiIconSet::ViewFullscreen.as_str()) - .icon1(UiIconSet::ViewRestore.as_str()) + .icon0(UiIconSet::ViewFullscreen) + .icon1(UiIconSet::ViewRestore) .action("notebook_view_changed") .varname("note_maximized") .create(); - app.toolbar_item("add_attachment").icon(UiIconSet::Add.as_str()).action("add_attachment").create(); + app.toolbar_item("add_attachment").icon(UiIconSet::Add).action("add_attachment").create(); app.toolbar_add_default("new_notebook", ToolbarItemPosition::SidebarLeft); app.toolbar_add_default("go_back", ToolbarItemPosition::Left); diff --git a/ui-rs/src/ui/button.rs b/ui-rs/src/ui/button.rs index 02147da..da7362d 100644 --- a/ui-rs/src/ui/button.rs +++ b/ui-rs/src/ui/button.rs @@ -375,8 +375,8 @@ impl<'a, T> ButtonBuilder<'a, T> { self } - pub fn icon(&mut self, icon: &str) -> &mut Self { - let cstr = CString::new(icon).unwrap(); + pub fn icon(&mut self, icon: impl Into) -> &mut Self { + let cstr = CString::new(icon.into()).unwrap(); unsafe { ui_button_args_set_icon(self.args, cstr.as_ptr()); } @@ -555,8 +555,8 @@ impl<'a, T> ToggleBuilder<'a, T> { self } - pub fn icon(&mut self, icon: &str) -> &mut Self { - let cstr = CString::new(icon).unwrap(); + pub fn icon(&mut self, icon: impl Into) -> &mut Self { + let cstr = CString::new(icon.into()).unwrap(); unsafe { ui_toggle_args_set_icon(self.args, cstr.as_ptr()); } @@ -751,8 +751,8 @@ impl<'a, T> ContentToggleBuilder<'a, T> { self } - pub fn icon0(&mut self, icon: &str) -> &mut Self { - let cstr = CString::new(icon).unwrap(); + pub fn icon0(&mut self, icon: impl Into) -> &mut Self { + let cstr = CString::new(icon.into()).unwrap(); unsafe { ui_content_toggle_args_set_icon0(self.args, cstr.as_ptr()); } @@ -775,8 +775,8 @@ impl<'a, T> ContentToggleBuilder<'a, T> { self } - pub fn icon1(&mut self, icon: &str) -> &mut Self { - let cstr = CString::new(icon).unwrap(); + pub fn icon1(&mut self, icon: impl Into) -> &mut Self { + let cstr = CString::new(icon.into()).unwrap(); unsafe { ui_content_toggle_args_set_icon1(self.args, cstr.as_ptr()); } diff --git a/ui-rs/src/ui/icon.rs b/ui-rs/src/ui/icon.rs index 78fcc23..a4161e0 100644 --- a/ui-rs/src/ui/icon.rs +++ b/ui-rs/src/ui/icon.rs @@ -104,6 +104,12 @@ impl UiIconSet { } } +impl From for String { + fn from(icon: UiIconSet) -> Self { + icon.as_str().to_string() + } +} + unsafe extern "C" { fn ui_icon_name(id: i32) -> *const c_char ; } \ No newline at end of file diff --git a/ui-rs/src/ui/menu.rs b/ui-rs/src/ui/menu.rs index 8926d33..4f14145 100644 --- a/ui-rs/src/ui/menu.rs +++ b/ui-rs/src/ui/menu.rs @@ -143,9 +143,9 @@ impl MenuItemBuilder { ui_menuitem_create(self.args); } } - pub fn icon(&mut self, icon: &str) -> &mut Self { + pub fn icon(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_menuitem_args_set_icon(self.args, cstr.as_ptr()); } self @@ -186,9 +186,9 @@ impl MenuToggleItemBuilder { (self.create)(self.args); } } - pub fn icon(&mut self, icon: &str) -> &mut Self { + pub fn icon(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_menutoggleitem_args_set_icon(self.args, cstr.as_ptr()); } self diff --git a/ui-rs/src/ui/toolbar.rs b/ui-rs/src/ui/toolbar.rs index 54678cd..d735714 100644 --- a/ui-rs/src/ui/toolbar.rs +++ b/ui-rs/src/ui/toolbar.rs @@ -164,9 +164,9 @@ impl ToolbarItemBuilder { self } - pub fn icon(&mut self, icon: &str) -> &mut Self { + pub fn icon(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_toolbar_item_args_set_icon(self.args, cstr.as_ptr()); } self @@ -237,9 +237,9 @@ impl ToolbarToggleItemBuilder { self } - pub fn icon(&mut self, icon: &str) -> &mut Self { + pub fn icon(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_toolbar_toggleitem_args_set_icon(self.args, cstr.as_ptr()); } self @@ -310,9 +310,9 @@ impl ToolbarContentToggleItemBuilder { self } - pub fn icon0(&mut self, icon: &str) -> &mut Self { + pub fn icon0(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_toolbar_content_toggleitem_args_set_icon0(self.args, cstr.as_ptr()); } self @@ -334,9 +334,9 @@ impl ToolbarContentToggleItemBuilder { self } - pub fn icon1(&mut self, icon: &str) -> &mut Self { + pub fn icon1(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_toolbar_content_toggleitem_args_set_icon1(self.args, cstr.as_ptr()); } self @@ -436,9 +436,9 @@ impl ToolbarMenuItemBuilder { self } - pub fn icon(&mut self, icon: &str) -> &mut Self { + pub fn icon(&mut self, icon: impl Into) -> &mut Self { unsafe { - let cstr = CString::new(icon).unwrap(); + let cstr = CString::new(icon.into()).unwrap(); ui_toolbar_menu_args_set_icon(self.args, cstr.as_ptr()); } self