summaryrefslogtreecommitdiff
path: root/framebuffer/fb_gui.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2009-03-22 23:11:38 +0000
committerVincent Sanders <vince@netsurf-browser.org>2009-03-22 23:11:38 +0000
commit02761ee5e4436083b0370d20996a622461f3df73 (patch)
tree9bc390e7f73298346ece84b75f5a35bc429c051b /framebuffer/fb_gui.c
parent8db32fc061dd4081dce43700db86eb7f6a7856b5 (diff)
downloadnetsurf-02761ee5e4436083b0370d20996a622461f3df73.tar.gz
netsurf-02761ee5e4436083b0370d20996a622461f3df73.tar.bz2
use greyed images for forward back buttons as approprite
svn path=/trunk/netsurf/; revision=6819
Diffstat (limited to 'framebuffer/fb_gui.c')
-rw-r--r--framebuffer/fb_gui.c64
1 files changed, 52 insertions, 12 deletions
diff --git a/framebuffer/fb_gui.c b/framebuffer/fb_gui.c
index e7db6c8d2..2b90590b4 100644
--- a/framebuffer/fb_gui.c
+++ b/framebuffer/fb_gui.c
@@ -470,18 +470,31 @@ fb_browser_window_input(fbtk_widget_t *widget, int value, void *pw)
return 0;
}
+static void
+fb_update_back_forward(struct gui_window *gw)
+{
+ struct browser_window *bw = gw->bw;
+
+ fbtk_set_bitmap(gw->back,
+ (history_back_available(bw->history))? &left_arrow : &left_arrow_g);
+ fbtk_set_bitmap(gw->forward,
+ (history_forward_available(bw->history))? &right_arrow : &right_arrow_g);
+}
+
/* left icon click routine */
static int
fb_leftarrow_click(fbtk_widget_t *widget,
browser_mouse_state st,
int x, int y, void *pw)
{
- struct browser_window *bw = pw;
+ struct gui_window *gw =pw;
+ struct browser_window *bw = gw->bw;
if (st == BROWSER_MOUSE_CLICK_1) {
if (history_back_available(bw->history))
history_back(bw, bw->history);
}
+ fb_update_back_forward(gw);
return 0;
}
@@ -490,12 +503,14 @@ fb_leftarrow_click(fbtk_widget_t *widget,
static int
fb_rightarrow_click(fbtk_widget_t *widget, browser_mouse_state st, int x, int y, void *pw)
{
- struct browser_window *bw = pw;
+ struct gui_window *gw =pw;
+ struct browser_window *bw = gw->bw;
if (st == BROWSER_MOUSE_CLICK_1) {
if (history_forward_available(bw->history))
history_forward(bw, bw->history);
}
+ fb_update_back_forward(gw);
return 0;
}
@@ -615,23 +630,45 @@ gui_create_browser_window(struct browser_window *bw,
LOG(("Normal window"));
/* fill toolbar background */
- widget = fbtk_create_fill(gw->window, 0, 0, 0, 30, FB_FRAME_COLOUR);
+ widget = fbtk_create_fill(gw->window,
+ 0, 0, 0, 30,
+ FB_FRAME_COLOUR);
fbtk_set_handler_move(widget, set_ptr_default_move, bw);
/* back button */
- widget = fbtk_create_button(gw->window, 5, 2, FB_FRAME_COLOUR, &left_arrow, fb_leftarrow_click, bw);
- fbtk_set_handler_move(widget, set_ptr_hand_move, bw);
+ gw->back = fbtk_create_button(gw->window,
+ 5, 2,
+ FB_FRAME_COLOUR,
+ &left_arrow_g,
+ fb_leftarrow_click,
+ gw);
+ fbtk_set_handler_move(gw->back, set_ptr_hand_move, bw);
/* forward button */
- widget = fbtk_create_button(gw->window, 35, 2, FB_FRAME_COLOUR, &right_arrow, fb_rightarrow_click, bw);
- fbtk_set_handler_move(widget, set_ptr_hand_move, bw);
+ gw->forward = fbtk_create_button(gw->window,
+ 35, 2,
+ FB_FRAME_COLOUR,
+ &right_arrow_g,
+ fb_rightarrow_click,
+ gw);
+ fbtk_set_handler_move(gw->forward, set_ptr_hand_move, bw);
/* reload button */
- widget = fbtk_create_button(gw->window, 65, 2, FB_FRAME_COLOUR, &stop_image, fb_stop_click, bw);
+ widget = fbtk_create_button(gw->window,
+ 65, 2,
+ FB_FRAME_COLOUR,
+ &stop_image,
+ fb_stop_click,
+ bw);
fbtk_set_handler_move(widget, set_ptr_hand_move, bw);
/* reload button */
- widget = fbtk_create_button(gw->window, 95, 2, FB_FRAME_COLOUR, &reload, fb_reload_click, bw);
+ widget = fbtk_create_button(gw->window,
+ 95, 2,
+ FB_FRAME_COLOUR,
+ &reload,
+ fb_reload_click,
+ bw);
fbtk_set_handler_move(widget, set_ptr_hand_move, bw);
/* url widget */
@@ -959,10 +996,13 @@ void gui_window_start_throbber(struct gui_window *g)
schedule(10, throbber_advance, g);
}
-void gui_window_stop_throbber(struct gui_window *g)
+void gui_window_stop_throbber(struct gui_window *gw)
{
- g->throbber_index = -1;
- fbtk_set_bitmap(g->throbber, &throbber0);
+ gw->throbber_index = -1;
+ fbtk_set_bitmap(gw->throbber, &throbber0);
+
+ fb_update_back_forward(gw);
+
}
void gui_window_place_caret(struct gui_window *g, int x, int y, int height)