summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjcid <devnull@localhost>2008-09-29 17:48:59 +0200
committerjcid <devnull@localhost>2008-09-29 17:48:59 +0200
commitbf974296adf971ecf48efb19c2ab262cd65925cc (patch)
tree6d76855d49267db22b8d6cfb1e1efb9819b8b8cc
parent9264f50d84e61c874856d7a373d8c4bebfa3102f (diff)
- Switched the image load button to be a per-window choice.
-rw-r--r--src/html.cc5
-rw-r--r--src/ui.cc41
-rw-r--r--src/ui.hh4
-rw-r--r--src/uicmd.cc8
-rw-r--r--src/uicmd.hh1
5 files changed, 21 insertions, 38 deletions
diff --git a/src/html.cc b/src/html.cc
index 952c43a2..0f68f695 100644
--- a/src/html.cc
+++ b/src/html.cc
@@ -2071,7 +2071,7 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag,
// style_attrs->x_tooltip = a_Dw_tooltip_new_no_ref(attrbuf);
alt_ptr = a_Html_get_attr_wdef(html, tag, tagsize, "alt", NULL);
- if (!prefs.load_images && (!alt_ptr || !*alt_ptr)) {
+ if ((!alt_ptr || !*alt_ptr) && !a_UIcmd_get_images_enabled(html->bw)) {
dFree(alt_ptr);
alt_ptr = dStrdup("[IMG]"); // Place holder for img_off mode
}
@@ -2126,7 +2126,8 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag,
style_attrs);
}
- load_now = prefs.load_images || (a_Capi_get_flags(url) & CAPI_IsCached);
+ load_now = a_UIcmd_get_images_enabled(html->bw) ||
+ (a_Capi_get_flags(url) & CAPI_IsCached);
Html_add_new_linkimage(html, &url, load_now ? NULL : Image);
if (load_now)
Html_load_image(html->bw, url, Image);
diff --git a/src/ui.cc b/src/ui.cc
index 89536d07..fd153f81 100644
--- a/src/ui.cc
+++ b/src/ui.cc
@@ -292,20 +292,6 @@ static void bugmeter_cb(Widget *wid, void *data)
}
}
-/*
- * Callback for the image loading button.
- */
-static void imageload_cb(Widget *w, void *data)
-{
- int k = event_key();
- //if (k && k <= 7)
- // MSG("[ImageLoad], mouse button %d was pressed\n", k);
- if (k == 1) {
- ((UI*)data)->imageload_toggle();
- }
-}
-
-
//////////////////////////////////////////////////////////////////////////////
// UI class methods
//
@@ -677,17 +663,16 @@ UI::UI(int x, int y, int ww, int wh, const char* label, const UI *cur_ui) :
// Image loading indicator
ImageLoad = new HighlightButton(ww-il_w-bm_w,0,il_w,s_h,0);
- ImgImageLoadOn = new xpmImage(imgload_on_xpm);
+ ImageLoad->type(Button::TOGGLE);
ImgImageLoadOff = new xpmImage(imgload_off_xpm);
- if (prefs.load_images) {
- ImageLoad->image(ImgImageLoadOn);
- } else {
- ImageLoad->image(ImgImageLoadOff);
- }
+ ImgImageLoadOn = new xpmImage(imgload_on_xpm);
+ ImgImageLoadMulti = new MultiImage(*ImgImageLoadOff,STATE,*ImgImageLoadOn);
+ ImageLoad->state(prefs.load_images);
+ ImageLoad->image(ImgImageLoadMulti);
+
ImageLoad->box(THIN_DOWN_BOX);
ImageLoad->align(ALIGN_INSIDE|ALIGN_CLIP|ALIGN_LEFT);
ImageLoad->tooltip("Toggle image loading");
- ImageLoad->callback(imageload_cb, this);
ImageLoad->clear_tab_to_focus();
StatusPanel->add(ImageLoad);
@@ -744,6 +729,7 @@ UI::~UI()
*/
void UI::delete_status_panel_images()
{
+ delete ImgImageLoadMulti;
delete ImgImageLoadOn;
delete ImgImageLoadOff;
delete ImgMeterOK;
@@ -1052,19 +1038,6 @@ void UI::panelmode_cb_i()
}
/*
- * Toggle image loading
- */
-void UI::imageload_toggle()
-{
- prefs.load_images = !prefs.load_images;
- if (prefs.load_images) {
- ImageLoad->image(ImgImageLoadOn);
- } else {
- ImageLoad->image(ImgImageLoadOff);
- }
-}
-
-/*
* Set 'nw' as the main render area widget
*/
void UI::set_render_layout(Widget &nw)
diff --git a/src/ui.hh b/src/ui.hh
index 605ccc7b..b14455e4 100644
--- a/src/ui.hh
+++ b/src/ui.hh
@@ -58,7 +58,7 @@ class UI : public fltk::Group {
*ImgStopIns, *ImgStopSens, *ImgFullScreenOn, *ImgFullScreenOff,
*ImgImageLoadOn, *ImgImageLoadOff, *ImgMeterOK, *ImgMeterBug,
*ImgHome, *ImgReload, *ImgSave, *ImgBook, *ImgClear, *ImgSearch;
- MultiImage *ImgLeftMulti, *ImgRightMulti, *ImgStopMulti;
+ MultiImage *ImgLeftMulti, *ImgRightMulti, *ImgStopMulti, *ImgImageLoadMulti;
Group *Panel, *StatusPanel;
Widget *Main;
Output *Status;
@@ -103,6 +103,7 @@ public:
void set_panelmode(UIPanelmode mode);
UIPanelmode get_panelmode();
void set_findbar_visibility(bool visible);
+ bool get_images_enabled() { return ImageLoad->state();}
Widget *fullscreen_button() { return FullScreen; }
void fullscreen_toggle() { FullScreen->do_callback(); }
@@ -116,7 +117,6 @@ public:
void color_change_cb_i();
void toggle_cb_i();
void panelmode_cb_i();
- void imageload_toggle();
};
#endif // __UI_HH__
diff --git a/src/uicmd.cc b/src/uicmd.cc
index c8e02133..c9df453c 100644
--- a/src/uicmd.cc
+++ b/src/uicmd.cc
@@ -815,6 +815,14 @@ void a_UIcmd_set_msg(BrowserWindow *bw, const char *format, ...)
}
/*
+ * Check whether the UI has automatic image loading enabled.
+ */
+bool_t a_UIcmd_get_images_enabled(BrowserWindow *bw)
+{
+ return BW2UI(bw)->get_images_enabled();
+}
+
+/*
* Set the sensitivity of back/forw/stop buttons.
*/
static void a_UIcmd_set_buttons_sens_cb(void *vbw)
diff --git a/src/uicmd.hh b/src/uicmd.hh
index 18bed3f8..80805cab 100644
--- a/src/uicmd.hh
+++ b/src/uicmd.hh
@@ -66,6 +66,7 @@ void a_UIcmd_set_img_prog(BrowserWindow *bw, int n_img, int t_img, int cmd);
void a_UIcmd_set_bug_prog(BrowserWindow *bw, int n_bug);
void a_UIcmd_set_page_title(BrowserWindow *bw, const char *label);
void a_UIcmd_set_msg(BrowserWindow *bw, const char *format, ...);
+bool_t a_UIcmd_get_images_enabled(BrowserWindow *bw);
void a_UIcmd_set_buttons_sens(BrowserWindow *bw);
void a_UIcmd_fullscreen_toggle(BrowserWindow *bw);