diff -r eae5b817aa47 -r a952337ae325 ui/cocoa/list.h --- a/ui/cocoa/list.h Fri Oct 10 09:06:06 2025 +0200 +++ b/ui/cocoa/list.h Fri Oct 10 14:13:52 2025 +0200 @@ -55,3 +55,50 @@ void ui_dropdown_update(UiList *list, int i); UiListSelection ui_dropdown_getselection(UiList *list); void ui_dropdown_setselection(UiList *list, UiListSelection selection); + +@class UiSourceList; + +@interface UiSourceListItem : NSObject +@property (weak) UiSourceList *sourcelist; +@property (strong) NSString *label; +@property (strong) NSString *badge; + +@property (strong) NSMutableArray *items; +@property UiVar *var; +@property UiSubList *sublist; + +/* + * Initialize a section item + */ +- (id)init:(UiSubListItem*)item; +/* + * Initialize a child item + */ +- (id)init:(UiSourceList*)sourcelist sublist:(UiSubList*)sublist; +- (BOOL)isSection; +- (void)update:(int)row; + +@end + + +@interface UiSourceList : NSObject + +@property UiObject *obj; +@property CxList *sublists; +@property UiVar *dynamic_sublists; +@property ui_sublist_getvalue_func getvalue; +@property void *getvaluedata; +@property ui_callback onactivate; +@property void *onactivatedata; +@property ui_callback onbuttonclick; +@property void *onbuttonclickdata; + +@property (strong) NSMutableArray *sections; + +- (id)init:(UiObject*)obj; + +- (void)update:(int)row; + +@end + +void ui_sourcelist_update(UiList *list, int row);