109 |
109 |
110 |
110 |
111 |
111 |
112 |
112 |
113 |
113 |
114 void dav_resourceviewer_new(DavBrowser *browser, const char *path, DavResourceViewType type) { |
114 void resourceviewer_new(DavBrowser *browser, const char *path, DavResourceViewType type) { |
115 const char *name = util_resource_name(path); |
115 const char *name = util_resource_name(path); |
116 UiObject *win = ui_simple_window(name, NULL); |
116 UiObject *win = ui_simple_window(name, NULL); |
117 |
117 |
118 DavResourceViewer *doc = dav_resourceviewer_create(browser->sn, path, type); |
118 DavResourceViewer *doc = dav_resourceviewer_create(browser->sn, path, type); |
119 ui_attach_document(win->ctx, doc); |
119 ui_attach_document(win->ctx, doc); |
138 ui_tab(win, "Preview") { |
138 ui_tab(win, "Preview") { |
139 ui_imageviewer(win, .varname = "image"); |
139 ui_imageviewer(win, .varname = "image"); |
140 } |
140 } |
141 } |
141 } |
142 |
142 |
|
143 ui_tab(win, "Info") { |
|
144 ui_grid(win, .margin = 16, .columnspacing = 30, .rowspacing = 6) { |
|
145 ui_llabel(win, .label = "URL"); |
|
146 ui_llabel(win, .varname = "info_url"); |
|
147 ui_newline(win); |
|
148 |
|
149 ui_llabel(win, .label = "Name"); |
|
150 ui_llabel(win, .varname = "info_name"); |
|
151 ui_newline(win); |
|
152 |
|
153 ui_llabel(win, .label = "Type"); |
|
154 ui_llabel(win, .varname = "info_type"); |
|
155 ui_newline(win); |
|
156 |
|
157 ui_llabel(win, .label = "Encrypted"); |
|
158 ui_llabel(win, .varname = "info_encrypted"); |
|
159 ui_newline(win); |
|
160 |
|
161 ui_llabel(win, .label = "ETag"); |
|
162 ui_llabel(win, .varname = "info_etag"); |
|
163 ui_newline(win); |
|
164 |
|
165 ui_llabel(win, .label = "Size"); |
|
166 ui_llabel(win, .varname = "info_size"); |
|
167 ui_newline(win); |
|
168 } |
|
169 } |
|
170 |
143 ui_tab(win, "Properties") { |
171 ui_tab(win, "Properties") { |
144 UiModel* model = ui_model(win->ctx, UI_STRING, "Namespace", UI_STRING, "Name", UI_STRING, "Value", -1); |
172 UiModel* model = ui_model(win->ctx, UI_STRING, "Namespace", UI_STRING, "Name", UI_STRING, "Value", -1); |
145 model->getvalue = (ui_getvaluefunc) resourceviewer_proplist_getvalue; |
173 model->getvalue = (ui_getvaluefunc) resourceviewer_proplist_getvalue; |
146 ui_table(win, .fill = UI_ON, .model = model, .varname = "properties"); |
174 ui_table(win, .fill = UI_ON, .model = model, .varname = "properties"); |
147 } |
175 } |
153 |
181 |
154 ui_show(win); |
182 ui_show(win); |
155 } |
183 } |
156 |
184 |
157 void* resourceviewer_proplist_getvalue(DavPropertyList *property, int col) { |
185 void* resourceviewer_proplist_getvalue(DavPropertyList *property, int col) { |
|
186 switch(col) { |
|
187 case 0: { |
|
188 return property->ns; |
|
189 } |
|
190 case 1: { |
|
191 return property->name; |
|
192 } |
|
193 case 2: { |
|
194 return property->value_simplified ? property->value_simplified : property->value_full; |
|
195 } |
|
196 } |
|
197 |
158 return NULL; |
198 return NULL; |
159 } |
199 } |
160 |
200 |
161 static UiPathElm* dav_get_pathelm(const char *full_path, size_t len, size_t *ret_nelm, void* data) { |
201 static UiPathElm* dav_get_pathelm(const char *full_path, size_t len, size_t *ret_nelm, void* data) { |
162 cxstring fpath = cx_strn(full_path, len); |
202 cxstring fpath = cx_strn(full_path, len); |