49 if (load_config(davctx)) { |
50 if (load_config(davctx)) { |
50 // TODO: error |
51 // TODO: error |
51 exit(-1); |
52 exit(-1); |
52 } |
53 } |
53 |
54 |
|
55 window_init(); |
|
56 |
|
57 // create new window |
54 UiObject *win = window_create(); |
58 UiObject *win = window_create(); |
|
59 // create new browser document and attach it to the main window |
|
60 DavBrowser *doc = davbrowser_create(win); |
|
61 ui_attach_document(win->ctx, doc); |
55 |
62 |
|
63 // create document for global settings (repolist, ...) |
56 DavApp *app = application_create_app_document(); |
64 DavApp *app = application_create_app_document(); |
57 UiContext *global = ui_global_context(); |
65 UiContext *global = ui_global_context(); |
58 ui_attach_document(global, app); |
66 ui_attach_document(global, app); |
59 |
67 |
60 ui_show(win); |
68 ui_show(win); |
|
69 } |
|
70 |
|
71 static void* davrepo_getname(void *elm, int unused) { |
|
72 DavCfgRepository *repo = elm; |
|
73 return repo->name.value.ptr; |
61 } |
74 } |
62 |
75 |
63 void application_create_menu(void) { |
76 void application_create_menu(void) { |
64 // menu |
77 // menu |
65 |
78 |
66 |
79 |
67 // toolbar |
80 // toolbar |
68 ui_toolbar_item("Home", .icon = "Home"); |
81 ui_toolbar_item("Home", .icon = "Home"); |
69 ui_toolbar_item("NewWindow", .icon = "NewWindow"); |
82 ui_toolbar_item("NewWindow", .icon = "NewWindow"); |
70 ui_toolbar_menu("Repo", .label = "Repository") { |
83 ui_toolbar_menu("Repo", .label = "Repository") { |
71 ui_menu_itemlist(.varname = "repolist", .onselect = action_repo_selected); |
84 ui_menu_itemlist(.varname = "repolist", .getvalue = davrepo_getname, .onselect = action_repo_selected); |
72 } |
85 } |
73 ui_toolbar_item("Refresh", .icon = "Refresh"); |
86 ui_toolbar_item("Refresh", .icon = "Refresh"); |
74 ui_toolbar_item("NewFolder", .icon = "NewFolder"); |
87 ui_toolbar_item("NewFolder", .icon = "NewFolder"); |
75 ui_toolbar_item("NewFile", .icon = "Add"); |
88 ui_toolbar_item("NewFile", .icon = "Add"); |
76 ui_toolbar_item("Upload", .label = "Upload", .icon = "Upload"); |
89 ui_toolbar_item("Upload", .label = "Upload", .icon = "Upload"); |
113 |
126 |
114 void application_update_repolist(DavApp *app) { |
127 void application_update_repolist(DavApp *app) { |
115 DavConfig *config = get_config(); |
128 DavConfig *config = get_config(); |
116 DavCfgRepository *repo = config->repositories; |
129 DavCfgRepository *repo = config->repositories; |
117 |
130 |
118 |
|
119 // TODO: free list content ptr |
|
120 ui_list_clear(app->repos); |
131 ui_list_clear(app->repos); |
121 |
132 |
122 for (DavCfgRepository *repo = config->repositories; repo; repo = repo->next) { |
133 for (DavCfgRepository *repo = config->repositories; repo; repo = repo->next) { |
123 // TODO: copy repo name |
134 ui_list_append(app->repos, repo); |
124 ui_list_append(app->repos, repo->name.value.ptr); |
|
125 } |
135 } |
126 } |
136 } |
127 |
137 |
128 |
138 |
129 DavContext* application_dav_context(void) { |
139 DavContext* application_dav_context(void) { |
130 return davctx; |
140 return davctx; |
131 } |
141 } |
132 |
142 |
133 |
143 |
134 void action_repo_selected(UiEvent *event, void *data) { |
144 void action_repo_selected(UiEvent *event, void *data) { |
135 |
145 DavCfgRepository *repo = event->eventdata; |
|
146 DavBrowser *browser = event->document; |
|
147 davbrowser_connect2repo(event->obj, browser, repo); |
136 } |
148 } |