diff --git a/framebuffer/fb_image_data.c b/framebuffer/fb_image_data.c index d9ed5084a..0a5e8da3a 100644 --- a/framebuffer/fb_image_data.c +++ b/framebuffer/fb_image_data.c @@ -377,3 +377,116 @@ const fb_widget_image_t reload = { "\0\334\0\10\0\366\0\10\0\320\0\10\0\234\0\10\0i\0\10\0""1\0\10\0\0\0\10\0" "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0", }; + +const fb_widget_image_t stop_image = { + 25, 25, 4, + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\0\0M\377\0\0\322\377\0\0\374\377\0\0\371\377\0\0\306\377\0\0=\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\0\0<\377\0\0\257\377\0\0\374\377\0\0\377\377\0\0\377\377" + "\0\0\377\377\0\0\376\377\0\0\263\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\0\0@\377\0\0\277\377\0\0\377\377\0\0\277" + "\377\0\0@\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\0\0\257\377\0\0\373\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\365\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\277\377\0\0" + "\377\377\0\0\377\377\0\0\377\377\0\0\346\377\0\0""3\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\0\0<\377\0\0\257\377\0\0\376\377\0" + "\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\323\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\355" + "\377\0\0Y\377\0\0\14\377\377\377\0\377\0\0\40\377\0\0\315\377\0\0\375\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377" + "\0\0\356\377\0\0a\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\0\0\277\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\371\377\0\0\246\377\0\0\\\377\0\0\327\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\376\377\0\0\344\377" + "\0\0\216\377\0\0@\377\0\0\15\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\0\0@\377\0\0\362\377\0\0\377\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\375\377\0\0\370\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\375\377\0\0\233\377" + "\0\0\40\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0Y\377\0" + "\0\352\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\277\377\0\0\40\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\0\0\15\377\0\0Q\377\0\0\342\377\0\0\377\377\0\0\377\377\0" + "\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\377\377\0\0\315\377\0\0\40\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0""3" + "\377\0\0\335\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\377\377\0\0\371\377\0\0T\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\0\0\14\377\0\0\306\377\0\0\377\377\0\0\377\377\0" + "\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\257\377\0\0\40\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\\\377\0\0\373" + "\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\377\377\0\0\376\377\0\0\315\377\0\0<\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\40" + "\377\0\0\345\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\345\377\0\0*\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\0\0\14\377\0\0\227\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377" + "\0\0\377\377\0\0\351\377\0\0\313\377\0\0\375\377\0\0\377\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\207\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\0\0Q\377\0\0\366\377\0\0\377\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\364\377\0\0""3\377\0\0\40\377\0\0\257\377\0" + "\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\356\377\0" + "\0<\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\0\0\40\377\0\0\326\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\377\377\0\0\376\377\0\0\207\377\377\377\0\377\377\377" + "\0\377\0\0\40\377\0\0\367\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\276\377\0\0\14\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\177\377\0\0\375\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\326\377\0\0\40\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\0\0\235\377\0\0\376\377\0\0\377\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\374\377\0\0f\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\20\377\0\0\342\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\367\377\0\0Q\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\40\377\0\0\315\377" + "\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\335\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0" + "\0@\377\0\0\374\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\253" + "\377\0\0\14\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\0\0<\377\0\0\362\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377" + "\377\0\0\375\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\0\0o\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\377\377\0" + "\0\377\377\0\0@\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\0\0\177\377\0\0\377\377\0\0\377" + "\377\0\0\377\377\0\0\377\377\0\0\377\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\0\0o\377\0\0\374\377\0\0\377\377\0" + "\0\377\377\0\0\377\377\0\0\350\377\0\0\14\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0" + "\0\40\377\0\0\352\377\0\0\377\377\0\0\377\377\0\0\377\377\0\0\333\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0@\377" + "\0\0\303\377\0\0\373\377\0\0\377\377\0\0\353\377\0\0p\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\0\0J\377\0\0\310\377\0\0\377\377\0\0\310" + "\377\0\0J\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\0\0\20\377\0\0@\377\0\0o\377\0\0o\377\0\0@\377\0\0\20\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" + "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" + "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" + "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0", +}; diff --git a/framebuffer/fb_image_data.h b/framebuffer/fb_image_data.h index d45600571..8d95548db 100644 --- a/framebuffer/fb_image_data.h +++ b/framebuffer/fb_image_data.h @@ -28,6 +28,7 @@ typedef struct fb_widget_image_s fb_widget_image_t; extern const fb_widget_image_t left_arrow; extern const fb_widget_image_t right_arrow; extern const fb_widget_image_t reload; +extern const fb_widget_image_t stop_image; extern struct bitmap pointer_image; extern struct bitmap hand_image; diff --git a/framebuffer/fb_rootwindow.c b/framebuffer/fb_rootwindow.c index 36eae3a5c..1e1eae28d 100644 --- a/framebuffer/fb_rootwindow.c +++ b/framebuffer/fb_rootwindow.c @@ -45,6 +45,10 @@ #include "framebuffer/fb_rootwindow.h" #include "framebuffer/fb_image_data.h" +#define FB_FRAME_COLOUR 0xFFDDDDDD +#define FB_COLOUR_BLACK 0xFF000000 +#define FB_COLOUR_WHITE 0xFFFFFFFF + enum fb_widget_type_e { FB_WIDGET_TYPE_NONE = 0, FB_WIDGET_TYPE_BUTTON, @@ -254,7 +258,7 @@ fb_add_text_widget(int x, int y, int width, int height, colour bg, fb_widget_inp new_widget->width = width; new_widget->height = height; new_widget->bg = bg; - new_widget->fg = 0xFF000000; + new_widget->fg = FB_COLOUR_BLACK; new_widget->input = input_rtn; @@ -312,6 +316,22 @@ fb_widget_rightarrow_click(struct gui_window *g, browser_mouse_state st, int x, } +/* reload icon click routine */ +static int +fb_widget_reload_click(struct gui_window *g, browser_mouse_state st, int x, int y) +{ + browser_window_reload(g->bw, true); + return 0; +} + +/* stop icon click routine */ +static int +fb_widget_stop_click(struct gui_window *g, browser_mouse_state st, int x, int y) +{ + browser_window_stop(g->bw); + return 0; +} + /* update status widget */ void fb_rootwindow_status(const char* text) @@ -359,7 +379,7 @@ void fb_rootwindow_create(framebuffer_t *fb) rootwindow->y = 0; rootwindow->width = fb->width; rootwindow->height = fb->height; - fb_add_window_widget(rootwindow, 0xFFCCCCCC, NULL, NULL); + fb_add_window_widget(rootwindow, FB_FRAME_COLOUR, NULL, NULL); /* back button */ newwidget = fb_add_button_widget(5, 2, @@ -372,10 +392,22 @@ void fb_rootwindow_create(framebuffer_t *fb) &right_arrow, fb_widget_rightarrow_click); + /* reload button */ + newwidget = fb_add_button_widget(newwidget->x + newwidget->width + 5, + 2, + &stop_image, + fb_widget_stop_click); + + /* reload button */ + newwidget = fb_add_button_widget(newwidget->x + newwidget->width + 5, + 2, + &reload, + fb_widget_reload_click); + /* url widget */ url_widget = fb_add_text_widget(newwidget->x + newwidget->width + 5, 5, fb->width - 200, 20, - 0xFFFFFFFF, + FB_COLOUR_WHITE, fb_widget_url_input); @@ -384,7 +416,7 @@ void fb_rootwindow_create(framebuffer_t *fb) */ status_widget = fb_add_text_widget(0, fb->height - 20, fb->width - 200, 20, - 0xFFCCCCCC, + FB_FRAME_COLOUR, NULL); } diff --git a/framebuffer/res/stop.png b/framebuffer/res/stop.png new file mode 100644 index 000000000..de9840658 Binary files /dev/null and b/framebuffer/res/stop.png differ