diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2014-01-05 17:03:17 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2014-01-05 17:03:17 +0000 |
commit | 9a9cb399f9fc5503cf64a906d44ec016564d06bb (patch) | |
tree | 3eafe6402d08b56ae7d616c79fdf5b9664bea8a4 /gtk | |
parent | 0d5960a68cc031758dd17edf7e83c342c13ea144 (diff) | |
parent | ef5c516ee372d29ca636fa0f7bd422c312be0acf (diff) | |
download | netsurf-9a9cb399f9fc5503cf64a906d44ec016564d06bb.tar.gz netsurf-9a9cb399f9fc5503cf64a906d44ec016564d06bb.tar.bz2 |
Merge branch 'rjek/click-file-gadget'
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gui.c | 4 | ||||
-rw-r--r-- | gtk/theme.c | 14 | ||||
-rw-r--r-- | gtk/window.c | 32 |
3 files changed, 34 insertions, 16 deletions
@@ -681,10 +681,6 @@ void gui_quit(void) gtk_fetch_filetype_fin(); } - - - - static void nsgtk_select_menu_clicked(GtkCheckMenuItem *checkmenuitem, gpointer user_data) { diff --git a/gtk/theme.c b/gtk/theme.c index 9d50c5931..ff0144cc8 100644 --- a/gtk/theme.c +++ b/gtk/theme.c @@ -793,11 +793,8 @@ theme_install_callback(hlcache_handle *c, const hlcache_event *event, void *pw) { switch (event->type) { - case CONTENT_MSG_READY: - break; - case CONTENT_MSG_DONE: - { + case CONTENT_MSG_DONE: { const char *source_data; unsigned long source_size; @@ -807,21 +804,14 @@ theme_install_callback(hlcache_handle *c, warn_user("ThemeInvalid", 0); hlcache_handle_release(c); + break; } - break; case CONTENT_MSG_ERROR: warn_user(event->data.error, 0); break; - case CONTENT_MSG_STATUS: - break; - - case CONTENT_MSG_LOADING: - case CONTENT_MSG_REFORMAT: - case CONTENT_MSG_REDRAW: default: - assert(0); break; } diff --git a/gtk/window.c b/gtk/window.c index 8f449ced2..8f05c3799 100644 --- a/gtk/window.c +++ b/gtk/window.c @@ -1162,3 +1162,35 @@ void gui_window_get_dimensions(struct gui_window *g, int *width, int *height, LOG(("width: %i", *width)); LOG(("height: %i", *height)); } + +void gui_file_gadget_open(struct gui_window *g, hlcache_handle *hl, + struct form_control *gadget) +{ + GtkWidget *dialog; + + LOG(("Awooga.")); + + dialog = gtk_file_chooser_dialog_new("Select File", + nsgtk_scaffolding_window(g->scaffold), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + + LOG(("*** open dialog: %p", dialog)); + + int ret = gtk_dialog_run(GTK_DIALOG(dialog)); + LOG(("*** return value: %d", ret)); + if (ret == GTK_RESPONSE_ACCEPT) { + char *filename; + + filename = gtk_file_chooser_get_filename( + GTK_FILE_CHOOSER(dialog)); + + browser_window_set_gadget_filename(g->bw, gadget, filename); + + g_free(filename); + } + + gtk_widget_destroy(dialog); +} |