#import "toolkit.h"
#import "Container.h"
#import "../ui/list.h"
#import "ListDataSource.h"
@interface UiDropDown : NSObject<NSComboBoxDelegate>
@property UiObject *obj;
@property ui_callback onactivate;
@property void *onactivatedata;
@property ui_callback onselection;
@property void *onselectiondata;
@property ui_getvaluefunc2 getvalue;
@property void *getvaluedata;
@property UiVar *var;
@property (weak) NSComboBox *combobox;
- (id)init:(UiObject*)obj;
@end
void ui_tableview_update(UiList *list, int i);
UiListSelection ui_tableview_getselection(UiList *list);
void ui_tableview_setselection(UiList *list, UiListSelection selection);
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 (weak) UiSourceListItem *parent;
@property (strong) NSString *label;
@property (strong) NSString *badge;
@property (strong) NSMutableArray<UiSourceListItem*> *items;
@property UiVar *var;
@property UiSubList *sublist;
@property int sublistIndex;
@property int sublistStartRow;
@property int rownum;
@property void *eventdata;
- (id)init:(UiSubListItem*)item parent:(UiSourceListItem*)parent;
- (id)init:(UiSourceList*)sourcelist sublist:(UiSubList*)sublist;
- (BOOL)isSection;
- (void)update:(int)row;
@end
@interface UiSourceList : NSObject <NSOutlineViewDataSource, NSOutlineViewDelegate>
@property UiObject *obj;
@property (weak) NSOutlineView *outlineView;
@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<UiSourceListItem*> *sections;
- (id)init:(UiObject*)obj outline:(NSOutlineView*)view;
- (void)update:(int)row;
@end
@interface UiSourceListRow : NSTableRowView
@property NSTrackingArea *trackingArea;
@property NSView *disclosureButton;
@property BOOL hover;
@property BOOL showDisclosureButton;
@end
void ui_sourcelist_update(UiList *list, int row);