summaryrefslogtreecommitdiff
path: root/framebuffer/fb_rootwindow.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2009-02-18 23:45:12 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2009-02-18 23:45:12 +0000
commitb04c72fc0fc0340adeeeb5d88ca1b59bba721636 (patch)
tree77ec0546e2bdc7db162aa2e75c59b234aa2f911b /framebuffer/fb_rootwindow.c
parent5668fa1154bcf52f04e877be25918561a930ea47 (diff)
downloadnetsurf-b04c72fc0fc0340adeeeb5d88ca1b59bba721636.tar.gz
netsurf-b04c72fc0fc0340adeeeb5d88ca1b59bba721636.tar.bz2
Outline URL bar and make it take the remaining width minus space for a throbber.
svn path=/trunk/netsurf/; revision=6568
Diffstat (limited to 'framebuffer/fb_rootwindow.c')
-rw-r--r--framebuffer/fb_rootwindow.c129
1 files changed, 68 insertions, 61 deletions
diff --git a/framebuffer/fb_rootwindow.c b/framebuffer/fb_rootwindow.c
index 1e1eae28d..979ca3f54 100644
--- a/framebuffer/fb_rootwindow.c
+++ b/framebuffer/fb_rootwindow.c
@@ -73,7 +73,7 @@ struct fb_widget {
fb_widget_input_t input;
/* data */
- struct bitmap *bitmap;
+ struct bitmap *bitmap;
struct gui_window *g;
char* text;
};
@@ -96,7 +96,7 @@ static void
fb_redraw_widget(struct fb_widget *widget)
{
bbox_t saved_plot_ctx;
-
+
/* set the clipping rectangle to the widget area */
saved_plot_ctx = fb_plot_ctx;
@@ -108,8 +108,8 @@ fb_redraw_widget(struct fb_widget *widget)
/* clear background */
if ((widget->bg & 0xFF000000) != 0) {
/* transparent polygon filling isnt working so fake it */
- plot.fill(fb_plot_ctx.x0, fb_plot_ctx.y0,
- fb_plot_ctx.x1, fb_plot_ctx.y1,
+ plot.fill(fb_plot_ctx.x0, fb_plot_ctx.y0,
+ fb_plot_ctx.x1, fb_plot_ctx.y1,
widget->bg);
}
@@ -119,11 +119,11 @@ fb_redraw_widget(struct fb_widget *widget)
case FB_WIDGET_TYPE_BUTTON:
/* plot the image */
- plot.bitmap(widget->x,
- widget->y,
- widget->width,
- widget->height,
- widget->bitmap,
+ plot.bitmap(widget->x,
+ widget->y,
+ widget->width,
+ widget->height,
+ widget->bitmap,
0, NULL);
break;
@@ -132,12 +132,16 @@ fb_redraw_widget(struct fb_widget *widget)
case FB_WIDGET_TYPE_TEXT:
if (widget->text != NULL) {
- plot.text(fb_plot_ctx.x0,
- fb_plot_ctx.y0 + 15,
- NULL,
- widget->text,
- strlen(widget->text),
- widget->bg,
+ plot.rectangle(fb_plot_ctx.x0, fb_plot_ctx.y0,
+ fb_plot_ctx.x1 - fb_plot_ctx.x0 - 1,
+ fb_plot_ctx.y1 - fb_plot_ctx.y0 - 1,
+ 1, 0x00000000, false, false);
+ plot.text(fb_plot_ctx.x0 + 2,
+ fb_plot_ctx.y0 + 15,
+ NULL,
+ widget->text,
+ strlen(widget->text),
+ widget->bg,
widget->fg);
}
break;
@@ -177,7 +181,7 @@ fb_change_input_focus(struct fb_widget *widget)
inputfocus_widget = widget;
/* tell it so */
- widget->input(widget, NULL, -1);
+ widget->input(widget, NULL, - 1);
}
static int
@@ -211,9 +215,9 @@ fb_widget_url_input(struct fb_widget *widget, struct gui_window *g, int value)
}
static struct fb_widget *
-fb_add_button_widget(int x,
- int y,
- const fb_widget_image_t *widget_image,
+fb_add_button_widget(int x,
+ int y,
+ const fb_widget_image_t *widget_image,
fb_widget_mouseclick_t click_rtn)
{
struct fb_widget *new_widget;
@@ -229,14 +233,14 @@ fb_add_button_widget(int x,
new_widget->click = click_rtn;
- new_widget->bitmap = bitmap_create(widget_image->width,
- widget_image->height,
+ new_widget->bitmap = bitmap_create(widget_image->width,
+ widget_image->height,
0);
- memcpy(new_widget->bitmap->pixdata,
- widget_image->pixel_data,
- widget_image->width *
- widget_image->height *
+ memcpy(new_widget->bitmap->pixdata,
+ widget_image->pixel_data,
+ widget_image->width *
+ widget_image->height *
widget_image->bytes_per_pixel);
fb_insert_widget(new_widget);
@@ -268,9 +272,9 @@ fb_add_text_widget(int x, int y, int width, int height, colour bg, fb_widget_inp
}
struct fb_widget *
-fb_add_window_widget(struct gui_window *g,
- colour bg,
- fb_widget_mouseclick_t click_rtn,
+fb_add_window_widget(struct gui_window *g,
+ colour bg,
+ fb_widget_mouseclick_t click_rtn,
fb_widget_input_t input_rtn)
{
struct fb_widget *new_widget;
@@ -297,7 +301,7 @@ fb_add_window_widget(struct gui_window *g,
/* left icon click routine */
-static int
+static int
fb_widget_leftarrow_click(struct gui_window *g, browser_mouse_state st, int x, int y)
{
if (history_back_available(g->bw->history))
@@ -307,7 +311,7 @@ fb_widget_leftarrow_click(struct gui_window *g, browser_mouse_state st, int x, i
}
/* right arrow icon click routine */
-static int
+static int
fb_widget_rightarrow_click(struct gui_window *g, browser_mouse_state st, int x, int y)
{
if (history_forward_available(g->bw->history))
@@ -317,7 +321,7 @@ fb_widget_rightarrow_click(struct gui_window *g, browser_mouse_state st, int x,
}
/* reload icon click routine */
-static int
+static int
fb_widget_reload_click(struct gui_window *g, browser_mouse_state st, int x, int y)
{
browser_window_reload(g->bw, true);
@@ -325,7 +329,7 @@ fb_widget_reload_click(struct gui_window *g, browser_mouse_state st, int x, int
}
/* stop icon click routine */
-static int
+static int
fb_widget_stop_click(struct gui_window *g, browser_mouse_state st, int x, int y)
{
browser_window_stop(g->bw);
@@ -382,67 +386,70 @@ void fb_rootwindow_create(framebuffer_t *fb)
fb_add_window_widget(rootwindow, FB_FRAME_COLOUR, NULL, NULL);
/* back button */
- newwidget = fb_add_button_widget(5, 2,
- &left_arrow,
+ newwidget = fb_add_button_widget(5, 2,
+ &left_arrow,
fb_widget_leftarrow_click);
/* forward button */
- newwidget = fb_add_button_widget(newwidget->x + newwidget->width + 5,
- 2,
- &right_arrow,
+ newwidget = fb_add_button_widget(newwidget->x + newwidget->width + 5,
+ 2,
+ &right_arrow,
fb_widget_rightarrow_click);
/* reload button */
- newwidget = fb_add_button_widget(newwidget->x + newwidget->width + 5,
- 2,
- &stop_image,
+ 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,
+ 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,
+ url_widget = fb_add_text_widget(newwidget->x + newwidget->width + 5, 3,
+ fb->width -
+ (newwidget->x + newwidget->width + 5) -
+ (25 + 10),
+ 22,
FB_COLOUR_WHITE,
fb_widget_url_input);
/* add status area widget, width of framebuffer less some for
- * scrollbar
+ * scrollbar
*/
- status_widget = fb_add_text_widget(0, fb->height - 20,
+ status_widget = fb_add_text_widget(0, fb->height - 20,
fb->width - 200, 20,
FB_FRAME_COLOUR,
NULL);
}
-void
+void
fb_rootwindow_input(struct gui_window *g, int value)
{
- if ((inputfocus_widget != NULL) &&
+ if ((inputfocus_widget != NULL) &&
(inputfocus_widget->input != NULL)) {
inputfocus_widget->input(inputfocus_widget, g, value);
}
}
-void
+void
fb_rootwindow_click(struct gui_window *g, browser_mouse_state st, int x, int y)
{
struct fb_widget *widget;
widget = widget_list;
while (widget != NULL) {
- if ((x > widget->x) &&
- (y > widget->y) &&
- (x < widget->x + widget->width) &&
+ if ((x > widget->x) &&
+ (y > widget->y) &&
+ (x < widget->x + widget->width) &&
(y < widget->y + widget->height)) {
if (widget->click != NULL) {
- widget->click(g, st,
+ widget->click(g, st,
x - widget->x, y - widget->y);
}
@@ -458,10 +465,10 @@ fb_rootwindow_click(struct gui_window *g, browser_mouse_state st, int x, int y)
void
-fb_rootwindow_move(framebuffer_t *fb,
- struct gui_window *g,
- int x,
- int y,
+fb_rootwindow_move(framebuffer_t *fb,
+ struct gui_window *g,
+ int x,
+ int y,
bool relative)
{
struct fb_widget *widget;
@@ -475,9 +482,9 @@ fb_rootwindow_move(framebuffer_t *fb,
widget = widget_list;
while (widget != NULL) {
- if ((x > widget->x) &&
- (y > widget->y) &&
- (x < widget->x + widget->width) &&
+ if ((x > widget->x) &&
+ (y > widget->y) &&
+ (x < widget->x + widget->width) &&
(y < widget->y + widget->height)) {
if (widget->g == g) {