void filebrowser_op_finished(UiEvent *event, void *data) {
FileBrowserOp *op = data;
+ FileBrowser *browser = op->browser;
printf("filebrowser_op_finished\n");
if(op->result) {
section->parent_url = op->url;
op->result = NULL;
op->url = NULL;
-
+
// update_grid takes ownership of section
- op->browser->update_grid(op->browser, section, 1, op->browser->update_grid_data);
- } else if(view == 1) {
+ if(browser->update_grid) {
+ browser->update_grid(op->browser, section, 1, browser->update_grid_data);
+ }
+ } else if(view == 1) {
+ ui_list_clear(browser->list_files);
+ CxIterator i = cxListIterator(op->result);
+ cx_foreach(FileInfo *, file, i) {
+ ui_list_append(browser->list_files, file);
+ }
+ ui_list_update(browser->list_files);
}
} else {
// TODO: error msg
#endif
window_create_browser_view(obj, wdata);
- ui_set(browser->view, 0); // select default view
+ ui_set(browser->view, 1); // select default view
// test
ui_set(browser->path, "/usr");
void* window_filelistview_getvalue(UiList *list, void *elm, int row, int col, void *userdata, UiBool *freeResult) {
+ FileInfo *file = elm;
+ switch(col) {
+ case 0: {
+ return S_ISDIR(file->mode) ? ui_foldericon(16) : ui_fileicon(16);
+ }
+ case 1: {
+ return file->name;
+ }
+ case 2: {
+ break;
+ }
+ }
return NULL;
}