summaryrefslogtreecommitdiff
path: root/monkey/browser.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 17:54:02 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 17:54:02 +0000
commit91003cbaf39271e8b6611d587eec97301bc6df7e (patch)
tree1748c99ac0d3fdc63e736e196d76210b2a765445 /monkey/browser.c
parent1bfb8c9f89cc95ce4c37ef7e506007f7fa50b933 (diff)
downloadnetsurf-91003cbaf39271e8b6611d587eec97301bc6df7e.tar.gz
netsurf-91003cbaf39271e8b6611d587eec97301bc6df7e.tar.bz2
WINDOW REDRAW and WINDOW RELOAD. Also, when quitting, cleanup
svn path=/trunk/netsurf/; revision=11978
Diffstat (limited to 'monkey/browser.c')
-rw-r--r--monkey/browser.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/monkey/browser.c b/monkey/browser.c
index 606884451..1c53aae8b 100644
--- a/monkey/browser.c
+++ b/monkey/browser.c
@@ -76,6 +76,13 @@ monkey_window_process_reformats(void)
} RING_ITERATE_END(gw_ring, c_ring);
}
+void
+monkey_kill_browser_windows(void)
+{
+ while (gw_ring != NULL) {
+ browser_window_destroy(gw_ring->bw);
+ }
+}
struct gui_window *
gui_create_browser_window(struct browser_window *bw,
@@ -459,6 +466,58 @@ monkey_window_handle_go(int argc, char **argv)
}
+static void
+monkey_window_handle_redraw(int argc, char **argv)
+{
+ struct gui_window *gw;
+ struct rect clip;
+
+ if (argc != 3 && argc != 7) {
+ fprintf(stdout, "ERROR WINDOW REDRAW ARGS BAD");
+ return;
+ }
+
+ gw = monkey_find_window_by_num(atoi(argv[2]));
+
+ if (gw == NULL) {
+ fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+ return;
+ }
+
+ clip.x0 = 0;
+ clip.y0 = 0;
+ clip.x1 = gw->width;
+ clip.y1 = gw->height;
+
+ if (argc == 7) {
+ clip.x0 = atoi(argv[3]);
+ clip.y0 = atoi(argv[4]);
+ clip.x1 = atoi(argv[5]);
+ clip.y1 = atoi(argv[6]);
+ }
+
+ LOG(("Issue redraw"));
+ browser_window_redraw(gw->bw, gw->scrollx, gw->scrolly, &clip);
+}
+
+static void
+monkey_window_handle_reload(int argc, char **argv)
+{
+ struct gui_window *gw;
+ if (argc != 3 && argc != 4) {
+ fprintf(stdout, "ERROR WINDOW RELOAD ARGS BAD");
+ }
+
+ gw = monkey_find_window_by_num(atoi(argv[2]));
+
+ if (gw == NULL) {
+ fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+ } else {
+ browser_window_reload(gw->bw, argc == 4);
+ }
+}
+
+
void
monkey_window_handle_command(int argc, char **argv)
{
@@ -471,6 +530,10 @@ monkey_window_handle_command(int argc, char **argv)
monkey_window_handle_destroy(argc, argv);
} else if (strcmp(argv[1], "GO") == 0) {
monkey_window_handle_go(argc, argv);
+ } else if (strcmp(argv[1], "REDRAW") == 0) {
+ monkey_window_handle_redraw(argc, argv);
+ } else if (strcmp(argv[1], "RELOAD") == 0) {
+ monkey_window_handle_reload(argc, argv);
}
}