summaryrefslogtreecommitdiff
path: root/riscos/textselection.c
diff options
context:
space:
mode:
authorRob Jackson <jacko@xms.ms>2003-10-05 23:30:21 +0000
committerRob Jackson <jacko@xms.ms>2003-10-05 23:30:21 +0000
commit0b5bea4c19e12aa05e57da8a12ed79a3968d2905 (patch)
treed409e8dc88169de7bff7a957bb66f84176b01ba4 /riscos/textselection.c
parentf52856210375d43ddcf0e573c58fd4eb1a79e163 (diff)
downloadnetsurf-0b5bea4c19e12aa05e57da8a12ed79a3968d2905.tar.gz
netsurf-0b5bea4c19e12aa05e57da8a12ed79a3968d2905.tar.bz2
[project @ 2003-10-05 23:30:21 by rob]
Implemented download window interface, and modified ro_drag_info struct svn path=/import/netsurf/; revision=345
Diffstat (limited to 'riscos/textselection.c')
-rw-r--r--riscos/textselection.c65
1 files changed, 64 insertions, 1 deletions
diff --git a/riscos/textselection.c b/riscos/textselection.c
index 7fd6f40c9..e14e230b6 100644
--- a/riscos/textselection.c
+++ b/riscos/textselection.c
@@ -7,6 +7,9 @@
#include "oslib/wimp.h"
#include "netsurf/riscos/gui.h"
+#include "netsurf/utils/log.h"
+#include "netsurf/utils/utils.h"
+
struct ro_gui_drag_info current_drag;
@@ -71,9 +74,69 @@ void ro_gui_drag_end(wimp_dragged* drag)
}
current_drag.data.selection.gui->drag_status = drag_NONE;
current_drag.data.selection.gui->data.browser.bw->current_content->data.html.text_selection.altering = alter_UNKNOWN;
+
+ current_drag.type = draginfo_NONE;
}
- current_drag.type = draginfo_NONE;
+ else if (current_drag.type == draginfo_DOWNLOAD_SAVE)
+ {
+ wimp_pointer *pointer_dropped;
+ wimp_message *send_message;
+ //wimp_icon_state *icon_state;
+
+ LOG(("Download icon dropped"));
+
+ pointer_dropped = xcalloc(1, sizeof(*pointer_dropped));
+ wimp_get_pointer_info(pointer_dropped);
+
+ //Send message, saying "please save this data!"
+ send_message = xcalloc(1, sizeof(*send_message));
+
+ send_message->size = sizeof(*send_message);
+ send_message->your_ref = 0;
+ send_message->action = message_DATA_SAVE;
+ send_message->data.data_xfer.w = pointer_dropped->w;
+ send_message->data.data_xfer.i = pointer_dropped->i;
+
+ send_message->data.data_xfer.pos.x = pointer_dropped->pos.x;
+ send_message->data.data_xfer.pos.y = pointer_dropped->pos.y;
+
+ send_message->data.data_xfer.est_size = (int)
+ current_drag.data.download.gui->data.download.content->data.other.length;
+
+ send_message->data.data_xfer.file_type =
+ current_drag.data.download.gui->data.download.file_type;
+
+ /*icon_state = xcalloc(1, sizeof(icon_state));
+
+ icon_state->w = pointer_dropped->w;
+ icon_state->i = ICON_DOWNLOAD_PATH;
+ wimp_get_icon_state(icon_state);
+
+ LOG(("Getting indirected text"));
+
+ strncpy(send_message->data.data_xfer.file_name,
+ icon_state->icon.data.indirected_text.text,
+ icon_state->icon.data.indirected_text.size);*/
+
+ strcpy(send_message->data.data_xfer.file_name,
+ current_drag.data.download.gui->data.download.path);
+
+ LOG(("Sending message to window owner, filename = %s, length = %lu",
+ send_message->data.data_xfer.file_name,
+ send_message->data.data_xfer.est_size));
+
+ LOG(("Sending....."));
+
+ wimp_send_message_to_window(wimp_USER_MESSAGE, send_message,
+ pointer_dropped->w, pointer_dropped->i);
+
+ LOG(("Sent."));
+
+ //xfree(icon_state);
+ xfree(send_message);
+ xfree(pointer_dropped);
+ }
}
void ro_gui_copy_selection(gui_window* g)