summaryrefslogtreecommitdiff
path: root/monkey/browser.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 17:27:18 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 17:27:18 +0000
commitbdb05fa08abe1781827a3c095f26d7d0ac4dbe82 (patch)
tree450fea3b379e1d169cf4a6b721f63a6f5fd47b42 /monkey/browser.c
parentd72f9d28627119bf1926f4aa59b6b211385910b2 (diff)
downloadnetsurf-bdb05fa08abe1781827a3c095f26d7d0ac4dbe82.tar.gz
netsurf-bdb05fa08abe1781827a3c095f26d7d0ac4dbe82.tar.bz2
Give Monkey a hearing aid, add 'WINDOW NEW' 'WINDOW GO' and 'WINDOW DESTROY' commands, along with 'QUIT'
svn path=/trunk/netsurf/; revision=11974
Diffstat (limited to 'monkey/browser.c')
-rw-r--r--monkey/browser.c122
1 files changed, 90 insertions, 32 deletions
diff --git a/monkey/browser.c b/monkey/browser.c
index b7afa658e..606884451 100644
--- a/monkey/browser.c
+++ b/monkey/browser.c
@@ -24,6 +24,7 @@
#include "desktop/browser.h"
#include "desktop/gui.h"
#include "utils/ring.h"
+#include "utils/log.h"
#include "monkey/browser.h"
@@ -90,9 +91,9 @@ gui_create_browser_window(struct browser_window *bw,
ret->width = 800;
ret->height = 600;
- fprintf(stdout, "BROWSER_WINDOW NEW WIN %u FOR %p CLONE %p NEWTAB %s\n",
+ fprintf(stdout, "WINDOW NEW WIN %u FOR %p CLONE %p NEWTAB %s\n",
ret->win_num, bw, clone, new_tab ? "TRUE" : "FALSE");
- fprintf(stdout, "BROWSER_WINDOW SIZE WIN %u WIDTH %d HEIGHT %d\n",
+ fprintf(stdout, "WINDOW SIZE WIN %u WIDTH %d HEIGHT %d\n",
ret->win_num, ret->width, ret->height);
RING_INSERT(gw_ring, ret);
@@ -109,7 +110,7 @@ gui_window_get_browser_window(struct gui_window *g)
void
gui_window_destroy(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW DESTROY WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW DESTROY WIN %u\n", g->win_num);
RING_REMOVE(gw_ring, g);
free(g);
}
@@ -117,26 +118,20 @@ gui_window_destroy(struct gui_window *g)
void
gui_window_set_title(struct gui_window *g, const char *title)
{
- fprintf(stdout, "BROWSER_WINDOW TITLE WIN %u STR %s\n", g->win_num, title);
+ fprintf(stdout, "WINDOW TITLE WIN %u STR %s\n", g->win_num, title);
}
void
gui_window_redraw_window(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW REDRAW WIN %u\n", g->win_num);
-}
-
-void
-gui_launch_url(const char *url)
-{
- fprintf(stdout, "GENERIC LAUNCH URL %s\n", url);
+ fprintf(stdout, "WINDOW REDRAW WIN %u\n", g->win_num);
}
void
gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
bool scaled)
{
- fprintf(stdout, "BROWSER_WINDOW GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d\n",
+ fprintf(stdout, "WINDOW GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d\n",
g->win_num, g->width, g->height);
*width = g->width;
*height = g->height;
@@ -145,25 +140,25 @@ gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
void
gui_window_new_content(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW NEW_CONTENT WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW NEW_CONTENT WIN %u\n", g->win_num);
}
void
gui_window_set_icon(struct gui_window *g, hlcache_handle *icon)
{
- fprintf(stdout, "BROWSER_WINDOW NEW_ICON WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW NEW_ICON WIN %u\n", g->win_num);
}
void
gui_window_start_throbber(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW START_THROBBER WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW START_THROBBER WIN %u\n", g->win_num);
}
void
gui_window_stop_throbber(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW STOP_THROBBER WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW STOP_THROBBER WIN %u\n", g->win_num);
}
void
@@ -171,14 +166,14 @@ gui_window_set_scroll(struct gui_window *g, int sx, int sy)
{
g->scrollx = sx;
g->scrolly = sy;
- fprintf(stdout, "BROWSER_WINDOW SET_SCROLL WIN %u X %d Y %d\n", g->win_num, sx, sy);
+ fprintf(stdout, "WINDOW SET_SCROLL WIN %u X %d Y %d\n", g->win_num, sx, sy);
}
void
gui_window_update_box(struct gui_window *g,
const union content_msg_data *data)
{
- fprintf(stdout, "BROWSER_WINDOW UPDATE_BOX WIN %u X %d Y %d WIDTH %d HEIGHT %d\n",
+ fprintf(stdout, "WINDOW UPDATE_BOX WIN %u X %d Y %d WIDTH %d HEIGHT %d\n",
g->win_num, data->redraw.x, data->redraw.y,
data->redraw.width, data->redraw.height);
@@ -190,7 +185,7 @@ gui_window_update_extent(struct gui_window *g)
if (!g->bw->current_content)
return;
- fprintf(stdout, "BROWSER_WINDOW UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d\n",
+ fprintf(stdout, "WINDOW UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d\n",
g->win_num,
content_get_width(g->bw->current_content),
content_get_height(g->bw->current_content));
@@ -199,7 +194,7 @@ gui_window_update_extent(struct gui_window *g)
void
gui_window_set_status(struct gui_window *g, const char *text)
{
- fprintf(stdout, "BROWSER_WINDOW SET_STATUS WIN %u STR %s\n", g->win_num, text);
+ fprintf(stdout, "WINDOW SET_STATUS WIN %u STR %s\n", g->win_num, text);
}
void
@@ -268,19 +263,19 @@ gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
default:
break;
}
- fprintf(stdout, "BROWSER_WINDOW SET_POINTER WIN %u POINTER %s\n", g->win_num, ptr_name);
+ fprintf(stdout, "WINDOW SET_POINTER WIN %u POINTER %s\n", g->win_num, ptr_name);
}
void
gui_window_set_scale(struct gui_window *g, float scale)
{
- fprintf(stdout, "BROWSER_WINDOW SET_SCALE WIN %u SCALE %f\n", g->win_num, scale);
+ fprintf(stdout, "WINDOW SET_SCALE WIN %u SCALE %f\n", g->win_num, scale);
}
void
gui_window_set_url(struct gui_window *g, const char *url)
{
- fprintf(stdout, "BROWSER_WINDOW SET_URL WIN %u URL %s\n", g->win_num, url);
+ fprintf(stdout, "WINDOW SET_URL WIN %u URL %s\n", g->win_num, url);
}
void
@@ -293,7 +288,7 @@ gui_drag_save_object(gui_save_type type, hlcache_handle *c,
bool
gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
{
- fprintf(stdout, "BROWSER_WINDOW GET_SCROLL WIN %u X %d Y %d\n",
+ fprintf(stdout, "WINDOW GET_SCROLL WIN %u X %d Y %d\n",
g->win_num, g->scrollx, g->scrolly);
*sx = g->scrollx;
*sy = g->scrolly;
@@ -303,7 +298,7 @@ gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
bool
gui_window_scroll_start(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW SCROLL_START WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW SCROLL_START WIN %u\n", g->win_num);
g->scrollx = g->scrolly = 0;
return true;
}
@@ -312,7 +307,7 @@ void
gui_window_position_frame(struct gui_window *g, int x0, int y0,
int x1, int y1)
{
- fprintf(stdout, "BROWSER_WINDOW POSITION_FRAME WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
+ fprintf(stdout, "WINDOW POSITION_FRAME WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
g->win_num, x0, y0, x1, y1);
}
@@ -331,7 +326,7 @@ void
gui_window_scroll_visible(struct gui_window *g, int x0, int y0,
int x1, int y1)
{
- fprintf(stdout, "BROWSER_WINDOW SCROLL_VISIBLE WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
+ fprintf(stdout, "WINDOW SCROLL_VISIBLE WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
g->win_num, x0, y0, x1, y1);
}
@@ -382,21 +377,21 @@ gui_copy_to_clipboard(struct selection *s)
void
gui_window_place_caret(struct gui_window *g, int x, int y, int height)
{
- fprintf(stdout, "BROWSER_WINDOW PLACE_CARET WIN %u X %d Y %d HEIGHT %d\n",
+ fprintf(stdout, "WINDOW PLACE_CARET WIN %u X %d Y %d HEIGHT %d\n",
g->win_num, x, y, height);
}
void
gui_window_remove_caret(struct gui_window *g)
{
- fprintf(stdout, "BROWSER_WINDOW REMOVE_CARET WIN %u\n", g->win_num);
+ fprintf(stdout, "WINDOW REMOVE_CARET WIN %u\n", g->win_num);
}
bool
gui_window_box_scroll_start(struct gui_window *g,
int x0, int y0, int x1, int y1)
{
- fprintf(stdout, "BROWSER_WINDOW SCROLL_START WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
+ fprintf(stdout, "WINDOW SCROLL_START WIN %u X0 %d Y0 %d X1 %d Y1 %d\n",
g->win_num, x0, y0, x1, y1);
return false;
}
@@ -405,7 +400,7 @@ void
gui_create_form_select_menu(struct browser_window *bw,
struct form_control *control)
{
- fprintf(stdout, "BROWSER_WINDOW SELECT_MENU WIN %u\n",
+ fprintf(stdout, "WINDOW SELECT_MENU WIN %u\n",
bw->window->win_num);
}
@@ -413,6 +408,69 @@ void
gui_window_save_link(struct gui_window *g, const char *url,
const char *title)
{
- fprintf(stdout, "BROWSER_WINDOW SAVE_LINK WIN %u URL %s TITLE %s\n",
+ fprintf(stdout, "WINDOW SAVE_LINK WIN %u URL %s TITLE %s\n",
g->win_num, url, title);
}
+
+
+/**** Handlers ****/
+
+static void
+monkey_window_handle_new(int argc, char **argv)
+{
+ struct browser_window *bw;
+ if (argc > 3)
+ return;
+ bw = browser_window_create((argc == 3) ? argv[2] : NULL, NULL, NULL, true, false);
+}
+
+static void
+monkey_window_handle_destroy(int argc, char **argv)
+{
+ struct gui_window *gw;
+ uint32_t nr = atoi((argc > 2) ? argv[2] : "-1");
+
+ gw = monkey_find_window_by_num(nr);
+
+ if (gw == NULL) {
+ fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+ } else {
+ browser_window_destroy(gw->bw);
+ }
+}
+
+static void
+monkey_window_handle_go(int argc, char **argv)
+{
+ struct gui_window *gw;
+
+ if (argc < 4 || argc > 5) {
+ fprintf(stdout, "ERROR WINDOW GO ARGS BAD\n");
+ return;
+ }
+
+ gw = monkey_find_window_by_num(atoi(argv[2]));
+
+ if (gw == NULL) {
+ fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+ } else {
+ browser_window_go(gw->bw, argv[3], (argc == 5) ? argv[4] : NULL, true);
+ }
+
+}
+
+void
+monkey_window_handle_command(int argc, char **argv)
+{
+ if (argc == 1)
+ return;
+
+ if (strcmp(argv[1], "NEW") == 0) {
+ monkey_window_handle_new(argc, argv);
+ } else if (strcmp(argv[1], "DESTROY") == 0) {
+ monkey_window_handle_destroy(argc, argv);
+ } else if (strcmp(argv[1], "GO") == 0) {
+ monkey_window_handle_go(argc, argv);
+ }
+
+}