148 gtk_container_add(GTK_CONTAINER(frame), content_box); |
148 gtk_container_add(GTK_CONTAINER(frame), content_box); |
149 obj->container = ui_box_container(obj, content_box); |
149 obj->container = ui_box_container(obj, content_box); |
150 */ |
150 */ |
151 GtkWidget *content_box = ui_gtk_vbox_new(0); |
151 GtkWidget *content_box = ui_gtk_vbox_new(0); |
152 BOX_ADD(GTK_BOX(vbox), content_box); |
152 BOX_ADD(GTK_BOX(vbox), content_box); |
153 obj->container = ui_box_container(obj, content_box); |
153 obj->container = ui_box_container(obj, content_box, UI_CONTAINER_VBOX); |
154 |
154 |
155 nwindows++; |
155 nwindows++; |
156 return obj; |
156 return obj; |
157 } |
157 } |
158 |
158 |
240 event); |
240 event); |
241 |
241 |
242 WINDOW_SHOW(GTK_WIDGET(dialog_w)); |
242 WINDOW_SHOW(GTK_WIDGET(dialog_w)); |
243 } |
243 } |
244 |
244 |
|
245 |
|
246 #if GTK_MAJOR_VERSION >= 4 |
|
247 static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
|
248 // TODO |
|
249 } |
|
250 #else |
245 static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
251 static void ui_gtkfilechooser(UiObject *obj, GtkFileChooserAction action, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
246 char *button; |
252 char *button; |
247 char *title; |
253 char *title; |
248 |
254 |
249 GtkWidget *dialog; |
255 GtkWidget *dialog; |
280 } |
286 } |
281 |
287 |
282 if((mode & UI_FILEDIALOG_SELECT_MULTI) == UI_FILEDIALOG_SELECT_MULTI) { |
288 if((mode & UI_FILEDIALOG_SELECT_MULTI) == UI_FILEDIALOG_SELECT_MULTI) { |
283 gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); |
289 gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); |
284 } |
290 } |
285 |
291 |
286 UiEvent evt; |
292 UiEvent evt; |
287 evt.obj = obj; |
293 evt.obj = obj; |
288 evt.document = evt.obj->ctx->document; |
294 evt.document = evt.obj->ctx->document; |
289 evt.window = evt.obj->window; |
295 evt.window = evt.obj->window; |
290 evt.intval = 0; |
296 evt.intval = 0; |
318 free(flist.files); |
324 free(flist.files); |
319 g_slist_free(selection); |
325 g_slist_free(selection); |
320 |
326 |
321 gtk_widget_destroy(dialog); |
327 gtk_widget_destroy(dialog); |
322 } |
328 } |
|
329 #endif |
323 |
330 |
324 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
331 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
325 ui_gtkfilechooser(obj, GTK_FILE_CHOOSER_ACTION_OPEN, mode, file_selected_callback, cbdata); |
332 ui_gtkfilechooser(obj, GTK_FILE_CHOOSER_ACTION_OPEN, mode, file_selected_callback, cbdata); |
326 } |
333 } |
327 |
334 |