From: Olaf Wintermann Date: Fri, 19 Jun 2026 18:31:48 +0000 (+0200) Subject: save note maximized status in the note viewmodel X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=17e890baaaa0c3ef40cdb5cca3ccec237e087014;p=note.git save note maximized status in the note viewmodel --- diff --git a/application/src/main.rs b/application/src/main.rs index 6ad759c..b3d3eb0 100644 --- a/application/src/main.rs +++ b/application/src/main.rs @@ -154,8 +154,8 @@ fn create_toolbar(app: &AppContext) { app.toolbar_content_toggleitem("note_maximize") .icon0(UiIconSet::ViewFullscreen.as_str()) .icon1(UiIconSet::ViewRestore.as_str()) - .varname("notebook_dual_view") .action("notebook_view_changed") + .varname("note_maximized") .create(); app.toolbar_add_default("new_notebook", ToolbarItemPosition::SidebarLeft); diff --git a/application/src/note.rs b/application/src/note.rs index 4ed00bd..705228c 100644 --- a/application/src/note.rs +++ b/application/src/note.rs @@ -61,6 +61,9 @@ pub struct Note { modified: bool, + #[bind("note_maximized")] + pub note_maximized: UiInteger, + #[bind("note_type")] pub note_type: UiInteger, @@ -90,6 +93,7 @@ impl Note { title_end: -1, modified: false, + note_maximized: Default::default(), note_type: Default::default(), text: Default::default(), info: Default::default(), @@ -114,10 +118,10 @@ impl Note { /// Handles any attachment status change, which includes if this note is /// directly attached or detached, but also if any parent attachment status changes #[action] - pub fn attachment_status_changed(&mut self, _event: &ActionEvent) -> Option<()>{ + pub fn attachment_status_changed(&mut self, _event: &mut ActionEvent) -> Option<()>{ let doc = self.doc.get_doc()?; - if doc.ctx.is_attached_to_obj() { + if let Some(mut obj) = doc.ctx.get_parent_object() { // attached to an obj also means, this note is visible and the editor should // require the lock for this note // self.lock should always be none here @@ -134,6 +138,9 @@ impl Note { doc.ctx.unset_state(AppStates::NoteShowInfo as i32); } } + + let val = self.note_maximized.get(); + obj.splitview_set_visible(0, val == 0); } else { // clean self.lock, however don't clean self.vhandle self.lock = None; @@ -347,6 +354,19 @@ impl Note { } self.extract_title = false; } + + #[action] + pub fn notebook_view_changed(&mut self, event: &mut ActionEvent) { + let Some(obj) = &mut event.obj else { + return; + }; + let Some(doc) = self.doc.get_doc() else { + return; + }; + + obj.splitview_set_visible(0, event.intval == 0); + doc.ctx.set_state(AppStates::NoteMaximized as i32); + } } fn generate_title(s: &str) -> Option<(&str, usize)> { diff --git a/application/src/notebook.rs b/application/src/notebook.rs index a5f7d02..eaa0f7a 100644 --- a/application/src/notebook.rs +++ b/application/src/notebook.rs @@ -33,7 +33,6 @@ use ui_rs::{action, ui_actions, UiModel}; use ui_rs::ui::*; use entity::note::{Model as Note}; -use crate::AppStates; use crate::backend::{BackendHandle, BroadcastMessage, NoteId, NoteTitleUpdate, NoteUpdate}; use crate::note::new_note_id; use crate::window::NavigationItem; @@ -197,7 +196,7 @@ impl Notebook { if let EventType::ListSelection(s) = event.event_type { let result = self.select_note_from(NoteSelectFrom::ListSelection(s), true); - obj.splitview_set_visible(0, false); + //obj.splitview_set_visible(0, false); self.view.set(1); // in case select_note_from didn't return a result, the note was already selected // and no new navigation item was added @@ -240,17 +239,8 @@ impl Notebook { } self.select_note_from(NoteSelectFrom::NavigationItem(nav.clone()), false); - obj.splitview_set_visible(0, !nav.note_maximized); - self.view.set(nav.note_maximized as i64); - } - - #[action] - pub fn notebook_view_changed(&mut self, event: &mut ActionEvent) { - let Some(obj) = &mut event.obj else { - return; - }; - - obj.splitview_set_visible(0, event.intval == 0); + //obj.splitview_set_visible(0, !nav.note_maximized); + //self.view.set(nav.note_maximized as i64); } pub fn update_note_title(&mut self, update: &NoteTitleUpdate) { diff --git a/application/src/window.rs b/application/src/window.rs index 7206615..8a25c64 100644 --- a/application/src/window.rs +++ b/application/src/window.rs @@ -214,7 +214,7 @@ pub fn create_window(app: &App, ctx: &AppContext) -> UiObject Option> { + unsafe { + let obj_ptr = ui_context_get_parent_obj(self.ptr); + if !obj_ptr.is_null() { + return Some(UiObject::from_ptr(obj_ptr)); + } + } + None + } + pub fn list(&self) -> UiList { let mut ls = UiList::::default(); ls.init(self, None); @@ -271,6 +281,7 @@ impl Drop for UiDoc { } } + impl UiDoc { fn from_ptr(ptr: *mut c_void) -> UiDoc { unsafe { @@ -458,6 +469,7 @@ extern "C" fn ref_obj_destroyed(data: *mut c_void) { } } + impl Clone for UiObjRef { fn clone(&self) -> Self { UiObjRef::from_ptr(*self.ptr) @@ -512,12 +524,13 @@ impl Drop for UiObjProxy { pub struct UiDocRef { ptr: Box<*mut c_void>, + orig_ptr: *mut c_void, _data: PhantomData } impl UiDocRef { fn from_ptr(doc_ptr: *mut c_void) -> UiDocRef { - let obj_ref = UiDocRef { ptr: Box::new(doc_ptr), _data: PhantomData }; + let obj_ref = UiDocRef { ptr: Box::new(doc_ptr), orig_ptr: doc_ptr, _data: PhantomData }; if !doc_ptr.is_null() { let ctx = unsafe { ui_document_context(doc_ptr) }; unsafe { @@ -1352,6 +1365,7 @@ unsafe extern "C" { fn ui_context_obj(ctx: *mut ffi::UiContext) -> *mut ffi::UiObject; fn ui_context_is_attached(ctx: *mut ffi::UiContext) -> c_int; fn ui_context_is_attached_to_obj(ctx: *mut ffi::UiContext) -> c_int; + fn ui_context_get_parent_obj(ctx: *mut ffi::UiContext) -> *mut ffi::UiObject; fn ui_add_action(ctx: *mut ffi::UiContext, name: *const c_char, callback: UiCallback, data: *mut c_void); diff --git a/ui/cocoa/image.m b/ui/cocoa/image.m index a6794c0..80ae7d2 100644 --- a/ui/cocoa/image.m +++ b/ui/cocoa/image.m @@ -100,11 +100,12 @@ void ui_icon_init(void) { NSImage* ui_cocoa_named_icon(const char *name) { NSString *imageName = [[NSString alloc] initWithUTF8String:name]; - NSString *imgName = [standardIconNames objectForKey:imageName]; - if(imgName) { - imageName = imgName; - } - return [NSImage imageNamed:imageName]; + //NSString *imgName = [standardIconNames objectForKey:imageName]; + //if(imgName) { + // imageName = imgName; + //} + //return [NSImage imageNamed:imageName]; + return [NSImage imageWithSystemSymbolName:imageName accessibilityDescription:nil]; } static UIIMAGE create_image(NSImage *image) { diff --git a/ui/common/context.c b/ui/common/context.c index 78434fa..a3ae312 100644 --- a/ui/common/context.c +++ b/ui/common/context.c @@ -137,6 +137,7 @@ void uic_context_destroy(UiContext *ctx, void *document) { uic_context_detach_all(ctx); + printf("cxMempoolFree %p\n", ctx); cxMempoolFree(ctx->mp); } @@ -199,7 +200,13 @@ void uic_context_attach_document(UiContext *ctx, void *document) { doc_ctx->onattach(&event, doc_ctx->onattachdata); } uic_check_state_widgets(ui_context_toplevel_parent(ctx)); - uic_send_status_change(doc_ctx); + UiObject *obj = ui_context_get_parent_obj(ctx); + uic_send_status_change(doc_ctx, obj); + + UiContext *obj_ctx = uic_obj_context(ctx); + if(obj_ctx) { + ui_update_action_bindings(obj_ctx); + } } static void uic_context_unbind_vars(UiContext *ctx) { @@ -247,7 +254,10 @@ void uic_context_detach_document(UiContext *ctx, void *document) { uic_context_unbind_vars(doc_ctx); // unbind all doc/subdoc vars from the parent doc_ctx->parent = NULL; - ui_update_action_bindings(ctx); + UiContext *obj_ctx = uic_obj_context(ctx); + if(obj_ctx) { + ui_update_action_bindings(obj_ctx); + } if(doc_ctx->ondetach) { UiEvent event; memset(&event, 0, sizeof(UiEvent)); @@ -256,7 +266,7 @@ void uic_context_detach_document(UiContext *ctx, void *document) { } uic_check_state_widgets(ui_context_toplevel_parent(ctx)); - uic_send_status_change(doc_ctx); + uic_send_status_change(doc_ctx, NULL); ui_document_unref(document); } @@ -272,19 +282,19 @@ void uic_context_detach_all(UiContext *ctx) { i = cxListIterator(ls); cx_foreach(void *, doc, i) { uic_context_detach_document(ctx, doc); - uic_send_status_change(ui_document_context(doc)); + uic_send_status_change(ui_document_context(doc), NULL); } cxListFree(ls); ui_update_action_bindings(ctx); } -static void send_status_change(UiContext *ctx, UiEvent *event) { +static void send_status_change(UiContext *ctx, UiEvent *event, UiObject *obj) { CxIterator i = cxListIterator(ctx->documents); cx_foreach(void *, doc, i) { UiContext *doc_ctx = ui_document_context(doc); if(doc_ctx->onattachmentstatuschange) { - event->obj = doc_ctx->obj; + event->obj = doc_ctx->obj ? doc_ctx->obj : obj; event->window = event->obj ? event->obj->window : NULL; event->document = doc_ctx->self_doc ? doc_ctx->self_doc : doc_ctx->document; doc_ctx->onattachmentstatuschange(event, doc_ctx->onattachmentstatuschangedata); @@ -292,17 +302,17 @@ static void send_status_change(UiContext *ctx, UiEvent *event) { } if(ctx->onattachmentstatuschange) { - event->obj = ctx->obj; + event->obj = ctx->obj ? ctx->obj : obj; event->window = event->obj ? event->obj->window : NULL; event->document = ctx->self_doc ? ctx->self_doc : ctx->document; ctx->onattachmentstatuschange(event, ctx->onattachmentstatuschangedata); } } -void uic_send_status_change(UiContext *ctx) { +void uic_send_status_change(UiContext *ctx, UiObject *obj) { UiEvent event; memset(&event, 0, sizeof(UiEvent)); - send_status_change(ctx, &event); + send_status_change(ctx, &event, obj); } @@ -1104,11 +1114,20 @@ int ui_context_is_attached(UiContext *ctx) { } int ui_context_is_attached_to_obj(UiContext *ctx) { + return uic_obj_context(ctx) != NULL; +} + +UIEXPORT UiObject* ui_context_get_parent_obj(UiContext *ctx) { + UiContext *obj_ctx = uic_obj_context(ctx); + return obj_ctx ? obj_ctx->obj : NULL; +} + +UiContext* uic_obj_context(UiContext *ctx) { if(ctx->obj) { - return TRUE; + return ctx; } if(ctx->parent == NULL) { - return FALSE; + return NULL; } - return ui_context_is_attached_to_obj(ctx->parent); + return uic_obj_context(ctx->parent); } diff --git a/ui/common/context.h b/ui/common/context.h index f742d38..0718007 100644 --- a/ui/common/context.h +++ b/ui/common/context.h @@ -153,7 +153,7 @@ void uic_context_attach_context(UiContext *ctx, UiContext *doc_ctx); // TODO void uic_context_detach_context(UiContext *ctx, UiContext *doc_ctx); // TODO void uic_context_detach_all(UiContext *ctx); -void uic_send_status_change(UiContext *ctx); +void uic_send_status_change(UiContext *ctx, UiObject *obj); UiVar* uic_get_var(UiContext *ctx, const char *name); UiVar* uic_get_var_t(UiContext *ctx, const char *name, UiVarType type); @@ -179,6 +179,8 @@ void uic_add_state_widget(UiContext *ctx, void *widget, ui_enablefunc enable, Cx void uic_add_state_widget_i(UiContext *ctx, void *widget, ui_enablefunc enable, const int *states, size_t numstates); void uic_remove_state_widget(UiContext *ctx, void *widget); +UiContext* uic_obj_context(UiContext *ctx); + UIEXPORT void ui_context_onattach(UiContext *ctx, ui_callback cb, void *data); UIEXPORT void ui_context_ondetach(UiContext *ctx, ui_callback cb, void *data); UIEXPORT void ui_context_onattachmentstatuschange(UiContext *ctx, ui_callback cb, void *data); @@ -188,6 +190,7 @@ UIEXPORT void ui_context_onattachmentstatuschange_action(UiContext *ctx, const c UIEXPORT int ui_context_is_attached(UiContext *ctx); UIEXPORT int ui_context_is_attached_to_obj(UiContext *ctx); +UIEXPORT UiObject* ui_context_get_parent_obj(UiContext *ctx); #ifdef __cplusplus } diff --git a/ui/common/document.c b/ui/common/document.c index 287b5b5..6635bad 100644 --- a/ui/common/document.c +++ b/ui/common/document.c @@ -64,6 +64,7 @@ void ui_document_unref(void *doc) { UiContext *ctx = ui_document_context(doc); if(ctx) { if(--ctx->ref == 0) { + printf("doc destroy %p ctx %p\n", doc, ctx); uic_context_destroy(ctx, doc); } } diff --git a/ui/common/icons.c b/ui/common/icons.c index e5b710b..377b1a7 100644 --- a/ui/common/icons.c +++ b/ui/common/icons.c @@ -71,6 +71,28 @@ const char* ui_icon_name(enum UiIconId icon_id) { case UI_ICON_ID_LIST_BULLET : return UI_ICON_LIST_BULLET ; case UI_ICON_ID_LIST_ORDERED : return UI_ICON_LIST_ORDERED; case UI_ICON_ID_LIST_CHECK : return UI_ICON_LIST_CHECK; + case UI_ICON_ID_CHECKBOX : return UI_ICON_CHECKBOX; + case UI_ICON_ID_STAR : return UI_ICON_STAR; + case UI_ICON_ID_VIEW_REVEAL : return UI_ICON_VIEW_REVEAL; + case UI_ICON_ID_VIEW_CONCEAL : return UI_ICON_VIEW_CONCEAL; + case UI_ICON_ID_SETTINGS : return UI_ICON_SETTINGS; + case UI_ICON_ID_MEDIA_PLAY : return UI_ICON_MEDIA_PLAY; + case UI_ICON_ID_MEDIA_STOP : return UI_ICON_MEDIA_STOP; + case UI_ICON_ID_MEDIA_PAUSE : return UI_ICON_MEDIA_PAUSE; + case UI_ICON_ID_MEDIA_SEEK_BACKWARD : return UI_ICON_MEDIA_SEEK_BACKWARD; + case UI_ICON_ID_MEDIA_SEEK_FORWARD : return UI_ICON_MEDIA_SEEK_FORWARD; + case UI_ICON_ID_MEDIA_SKIP_BACKWARD : return UI_ICON_MEDIA_SKIP_BACKWARD; + case UI_ICON_ID_MEDIA_SKIP_FORWARD : return UI_ICON_MEDIA_SKIP_FORWARD; + case UI_ICON_ID_CALL_START : return UI_ICON_CALL_START; + case UI_ICON_ID_CALL_STOP : return UI_ICON_CALL_STOP; + case UI_ICON_ID_CALL_INCOMING : return UI_ICON_CALL_INCOMING; + case UI_ICON_ID_CALL_OUTGOING : return UI_ICON_CALL_OUTGOING; + case UI_ICON_ID_MICROPHONE_ON : return UI_ICON_MICROPHONE_ON; + case UI_ICON_ID_MICROPHONE_OFF : return UI_ICON_MICROPHONE_OFF; + case UI_ICON_ID_LOCKED : return UI_ICON_LOCKED; + case UI_ICON_ID_UNLOCKED : return UI_ICON_UNLOCKED; + case UI_ICON_ID_SECURE : return UI_ICON_SECURE; + case UI_ICON_ID_INSECURE : return UI_ICON_INSECURE; } return NULL; } diff --git a/ui/gtk/button.c b/ui/gtk/button.c index dd6431c..aa641bf 100644 --- a/ui/gtk/button.c +++ b/ui/gtk/button.c @@ -692,6 +692,14 @@ UIWIDGET ui_create_content_togglebutton(UiObject *obj, UiContentToggleArgs *args gtk_widget_set_tooltip_text(widget, tooltip); button->widget = widget; + if(args->action) { + uic_bind_action(obj->ctx, args->action, widget, (ui_enablefunc)ui_set_enabled); + UiAction *ui_action = uic_resolve_action(obj->ctx, args->action); + if(!ui_action) { + ui_set_enabled(widget, FALSE); + } + } + if(args->toggled_by_state != 0) { CxList *ls = cxArrayListCreate(NULL, sizeof(int), 1); cxListAdd(ls, &args->toggled_by_state); diff --git a/ui/ui/icons.h b/ui/ui/icons.h index fba5c73..2b5540f 100644 --- a/ui/ui/icons.h +++ b/ui/ui/icons.h @@ -78,6 +78,29 @@ extern "C" { #define UI_ICON_LIST_BULLET "view-list-bullet" #define UI_ICON_LIST_ORDERED "view-list-ordered" #define UI_ICON_LIST_CHECK "checkbox-checked" +#define UI_ICON_CHECKBOX "checkbox-checked" +#define UI_ICON_STAR "starred" +#define UI_ICON_VIEW_REVEAL "view-reveal" +#define UI_ICON_VIEW_CONCEAL "view-conceal" +#define UI_ICON_SETTINGS "applications-system" +#define UI_ICON_MEDIA_PLAY "media-playback-start" +#define UI_ICON_MEDIA_STOP "media-playback-stop" +#define UI_ICON_MEDIA_PAUSE "media-playback-pause" +#define UI_ICON_MEDIA_SEEK_BACKWARD "media-seek-backward" +#define UI_ICON_MEDIA_SEEK_FORWARD "media-seek-forward" +#define UI_ICON_MEDIA_SKIP_BACKWARD "media-skip-backward" +#define UI_ICON_MEDIA_SKIP_FORWARD "media-skip-forward" +#define UI_ICON_CALL_START "call-start" +#define UI_ICON_CALL_STOP "call-stop" +#define UI_ICON_CALL_INCOMING "call-incoming" +#define UI_ICON_CALL_OUTGOING "call-outgoing" +#define UI_ICON_MICROPHONE_ON "microphone-sensitivity-high" +#define UI_ICON_MICROPHONE_OFF "microphone-disabled" +#define UI_ICON_LOCKED "changes-allow" +#define UI_ICON_UNLOCKED "changes-prevent" +#define UI_ICON_SECURE "channel-secure" +#define UI_ICON_INSECURE "channel-insecure" + #endif /* UI_GTK */ @@ -124,6 +147,28 @@ extern "C" { #define UI_ICON_LIST_BULLET "view-list-bullet" #define UI_ICON_LIST_ORDERED "view-list-ordered" #define UI_ICON_LIST_CHECK "checkbox-checked" +#define UI_ICON_CHECKBOX "checkbox-checked" +#define UI_ICON_STAR "starred" +#define UI_ICON_VIEW_REVEAL "view-reveal" +#define UI_ICON_VIEW_CONCEAL "view-conceal" +#define UI_ICON_SETTINGS "applications-system" +#define UI_ICON_MEDIA_PLAY "media-playback-start" +#define UI_ICON_MEDIA_STOP "media-playback-stop" +#define UI_ICON_MEDIA_PAUSE "media-playback-pause" +#define UI_ICON_MEDIA_SEEK_BACKWARD "media-seek-backward" +#define UI_ICON_MEDIA_SEEK_FORWARD "media-seek-forward" +#define UI_ICON_MEDIA_SKIP_BACKWARD "media-skip-backward" +#define UI_ICON_MEDIA_SKIP_FORWARD "media-skip-forward" +#define UI_ICON_CALL_START "call-start" +#define UI_ICON_CALL_STOP "call-stop" +#define UI_ICON_CALL_INCOMING "call-incoming" +#define UI_ICON_CALL_OUTGOING "call-outgoing" +#define UI_ICON_MICROPHONE_ON "microphone-sensitivity-high" +#define UI_ICON_MICROPHONE_OFF "microphone-disabled" +#define UI_ICON_LOCKED "changes-allow" +#define UI_ICON_UNLOCKED "changes-prevent" +#define UI_ICON_SECURE "channel-secure" +#define UI_ICON_INSECURE "channel-insecure" #endif /* UI_QT */ @@ -190,6 +235,28 @@ extern "C" { #define UI_ICON_LIST_BULLET "list.bullet" #define UI_ICON_LIST_ORDERED "list.number" #define UI_ICON_LIST_CHECK "checklist" +#define UI_ICON_CHECKBOX "checkmark.square" +#define UI_ICON_STAR "star" +#define UI_ICON_VIEW_REVEAL "eye" +#define UI_ICON_VIEW_CONCEAL "eye.slash" +#define UI_ICON_SETTINGS "gearshape" +#define UI_ICON_MEDIA_PLAY "play.fill" +#define UI_ICON_MEDIA_STOP "stop.fill" +#define UI_ICON_MEDIA_PAUSE "pause.fill" +#define UI_ICON_MEDIA_SEEK_BACKWARD "backward.fill" +#define UI_ICON_MEDIA_SEEK_FORWARD "forward.fill" +#define UI_ICON_MEDIA_SKIP_BACKWARD "backward.end.fill" +#define UI_ICON_MEDIA_SKIP_FORWARD "forward.end.fill" +#define UI_ICON_CALL_START "phone" +#define UI_ICON_CALL_STOP "phone.down" +#define UI_ICON_CALL_INCOMING "phone.arrow.down.left" +#define UI_ICON_CALL_OUTGOING "phone.arrow.up.right" +#define UI_ICON_MICROPHONE_ON "microphone" +#define UI_ICON_MICROPHONE_OFF "microphone.slash" +#define UI_ICON_LOCKED "lock" +#define UI_ICON_UNLOCKED "lock.open" +#define UI_ICON_SECURE "lock" +#define UI_ICON_INSECURE "lock.trianglebadge.exclamationmark" #endif /* UI_COCOA */ @@ -236,6 +303,28 @@ extern "C" { #define UI_ICON_LIST_BULLET "" #define UI_ICON_LIST_ORDERED "" #define UI_ICON_LIST_CHECK "" +#define UI_ICON_CHECKBOX "" +#define UI_ICON_STAR "" +#define UI_ICON_VIEW_REVEAL "" +#define UI_ICON_VIEW_CONCEAL "" +#define UI_ICON_SETTINGS "" +#define UI_ICON_MEDIA_PLAY "" +#define UI_ICON_MEDIA_STOP "" +#define UI_ICON_MEDIA_PAUSE "" +#define UI_ICON_MEDIA_SEEK_BACKWARD "" +#define UI_ICON_MEDIA_SEEK_FORWARD "" +#define UI_ICON_MEDIA_SKIP_BACKWARD "" +#define UI_ICON_MEDIA_SKIP_FORWARD "" +#define UI_ICON_CALL_START "" +#define UI_ICON_CALL_STOP "" +#define UI_ICON_CALL_INCOMING "" +#define UI_ICON_CALL_OUTGOING "" +#define UI_ICON_MICROPHONE_ON "" +#define UI_ICON_MICROPHONE_OFF "" +#define UI_ICON_LOCKED "" +#define UI_ICON_UNLOCKED "" +#define UI_ICON_SECURE "" +#define UI_ICON_INSECURE "" #endif /* UI_MOTIF */ @@ -282,6 +371,28 @@ extern "C" { #define UI_ICON_LIST_BULLET "" #define UI_ICON_LIST_ORDERED "" #define UI_ICON_LIST_CHECK "" +#define UI_ICON_CHECKBOX "" +#define UI_ICON_STAR "" +#define UI_ICON_VIEW_REVEAL "" +#define UI_ICON_VIEW_CONCEAL "" +#define UI_ICON_SETTINGS "" +#define UI_ICON_MEDIA_PLAY "" +#define UI_ICON_MEDIA_STOP "" +#define UI_ICON_MEDIA_PAUSE "" +#define UI_ICON_MEDIA_SEEK_BACKWARD "" +#define UI_ICON_MEDIA_SEEK_FORWARD "" +#define UI_ICON_MEDIA_SKIP_BACKWARD "" +#define UI_ICON_MEDIA_SKIP_FORWARD "" +#define UI_ICON_CALL_START "" +#define UI_ICON_CALL_STOP "" +#define UI_ICON_CALL_INCOMING "" +#define UI_ICON_CALL_OUTGOING "" +#define UI_ICON_MICROPHONE_ON "" +#define UI_ICON_MICROPHONE_OFF "" +#define UI_ICON_LOCKED "" +#define UI_ICON_UNLOCKED "" +#define UI_ICON_SECURE "" +#define UI_ICON_INSECURE "" #endif /* UI_MOTIF */ @@ -327,7 +438,29 @@ enum UiIconId { UI_ICON_ID_TEXT_UNDERLINE, UI_ICON_ID_LIST_BULLET, UI_ICON_ID_LIST_ORDERED, - UI_ICON_ID_LIST_CHECK + UI_ICON_ID_LIST_CHECK, + UI_ICON_ID_CHECKBOX, + UI_ICON_ID_STAR, + UI_ICON_ID_VIEW_REVEAL, + UI_ICON_ID_VIEW_CONCEAL, + UI_ICON_ID_SETTINGS, + UI_ICON_ID_MEDIA_PLAY, + UI_ICON_ID_MEDIA_STOP, + UI_ICON_ID_MEDIA_PAUSE, + UI_ICON_ID_MEDIA_SEEK_BACKWARD, + UI_ICON_ID_MEDIA_SEEK_FORWARD, + UI_ICON_ID_MEDIA_SKIP_BACKWARD, + UI_ICON_ID_MEDIA_SKIP_FORWARD, + UI_ICON_ID_CALL_START, + UI_ICON_ID_CALL_STOP, + UI_ICON_ID_CALL_INCOMING, + UI_ICON_ID_CALL_OUTGOING, + UI_ICON_ID_MICROPHONE_ON, + UI_ICON_ID_MICROPHONE_OFF, + UI_ICON_ID_LOCKED, + UI_ICON_ID_UNLOCKED, + UI_ICON_ID_SECURE, + UI_ICON_ID_INSECURE }; UIEXPORT UiIcon* ui_icon(const char* name, size_t size);