From 813a284e9e4fe4f4b1482de18488414636abad2b Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 2 Aug 2019 21:23:06 +0100 Subject: [PATCH] Local history: Consolidate thumbnail dimensions. --- desktop/browser_history.c | 47 ++++++++++++++++++------------------ desktop/browser_history.h | 11 +++++++++ desktop/local_history.c | 50 ++++++++++++++++++--------------------- 3 files changed, 58 insertions(+), 50 deletions(-) diff --git a/desktop/browser_history.c b/desktop/browser_history.c index 6f807961b..c4ff75079 100644 --- a/desktop/browser_history.c +++ b/desktop/browser_history.c @@ -42,12 +42,6 @@ #include "desktop/browser_private.h" #include "desktop/browser_history.h" -#define WIDTH 100 -#define HEIGHT 86 -#define RIGHT_MARGIN 50 -#define BOTTOM_MARGIN 30 - - /** * Clone a history entry * @@ -107,8 +101,10 @@ browser_window_history__clone_entry(struct history *history, unsigned char *bmdst_data; size_t bmsize; - new_entry->page.bitmap = guit->bitmap->create(WIDTH, HEIGHT, - BITMAP_NEW | BITMAP_OPAQUE); + new_entry->page.bitmap = guit->bitmap->create( + LOCAL_HISTORY_WIDTH, + LOCAL_HISTORY_HEIGHT, + BITMAP_NEW | BITMAP_OPAQUE); if (new_entry->page.bitmap != NULL) { bmsrc_data = guit->bitmap->get_buffer(entry->page.bitmap); @@ -202,26 +198,26 @@ static int browser_window_history__layout_subtree(struct history *history, struct history_entry *child; int y1 = y; - if (history->width < x + WIDTH) - history->width = x + WIDTH; + if (history->width < x + LOCAL_HISTORY_WIDTH) + history->width = x + LOCAL_HISTORY_WIDTH; if (!entry->forward) { entry->x = x; entry->y = y; - return y + HEIGHT; + return y + LOCAL_HISTORY_HEIGHT; } /* layout child subtrees below each other */ for (child = entry->forward; child; child = child->next) { y1 = browser_window_history__layout_subtree(history, child, - x + WIDTH + RIGHT_MARGIN, y1); + x + LOCAL_HISTORY_WIDTH + LOCAL_HISTORY_RIGHT_MARGIN, y1); if (child->next) - y1 += BOTTOM_MARGIN; + y1 += LOCAL_HISTORY_BOTTOM_MARGIN; } /* place ourselves in the middle */ entry->x = x; - entry->y = (y + y1) / 2 - HEIGHT / 2; + entry->y = (y + y1) / 2 - LOCAL_HISTORY_HEIGHT / 2; return y1; } @@ -244,12 +240,13 @@ static void browser_window_history__layout(struct history *history) if (history->start) history->height = browser_window_history__layout_subtree( history, history->start, - RIGHT_MARGIN / 2, BOTTOM_MARGIN / 2); + LOCAL_HISTORY_RIGHT_MARGIN / 2, + LOCAL_HISTORY_BOTTOM_MARGIN / 2); else history->height = 0; - history->width += RIGHT_MARGIN / 2; - history->height += BOTTOM_MARGIN / 2; + history->width += LOCAL_HISTORY_RIGHT_MARGIN / 2; + history->height += LOCAL_HISTORY_BOTTOM_MARGIN / 2; } @@ -275,7 +272,8 @@ static bool browser_window_history__enumerate_entry( const struct history_entry *child; if (!cb(bw, entry->x, entry->y, - entry->x + WIDTH, entry->y + HEIGHT, + entry->x + LOCAL_HISTORY_WIDTH, + entry->y + LOCAL_HISTORY_HEIGHT, entry, ud)) return false; @@ -304,8 +302,8 @@ nserror browser_window_history_create(struct browser_window *bw) return NSERROR_NOMEM; } - history->width = RIGHT_MARGIN / 2; - history->height = BOTTOM_MARGIN / 2; + history->width = LOCAL_HISTORY_RIGHT_MARGIN / 2; + history->height = LOCAL_HISTORY_BOTTOM_MARGIN / 2; bw->history = history; @@ -386,7 +384,8 @@ browser_window_history_add(struct browser_window *bw, NSLOG(netsurf, DEBUG, "Creating thumbnail for %s", nsurl_access(entry->page.url)); - entry->page.bitmap = guit->bitmap->create(WIDTH, HEIGHT, + entry->page.bitmap = guit->bitmap->create( + LOCAL_HISTORY_WIDTH, LOCAL_HISTORY_HEIGHT, BITMAP_NEW | BITMAP_CLEAR_MEMORY | BITMAP_OPAQUE); if (entry->page.bitmap != NULL) { ret = guit->bitmap->render(entry->page.bitmap, content); @@ -637,7 +636,8 @@ void browser_window_history_enumerate_forward(const struct browser_window *bw, e = bw->history->current->forward_pref; for (; e != NULL; e = e->forward_pref) { - if (!cb(bw, e->x, e->y, e->x + WIDTH, e->y + HEIGHT, + if (!cb(bw, e->x, e->y, e->x + LOCAL_HISTORY_WIDTH, + e->y + LOCAL_HISTORY_HEIGHT, e, user_data)) break; } @@ -654,7 +654,8 @@ void browser_window_history_enumerate_back(const struct browser_window *bw, return; for (e = bw->history->current->back; e != NULL; e = e->back) { - if (!cb(bw, e->x, e->y, e->x + WIDTH, e->y + HEIGHT, + if (!cb(bw, e->x, e->y, e->x + LOCAL_HISTORY_WIDTH, + e->y + LOCAL_HISTORY_HEIGHT, e, user_data)) break; } diff --git a/desktop/browser_history.h b/desktop/browser_history.h index 9b6f1fd42..06041ebf4 100644 --- a/desktop/browser_history.h +++ b/desktop/browser_history.h @@ -35,6 +35,17 @@ #include "utils/errors.h" +#include "content/handlers/css/utils.h" + +#define LOCAL_HISTORY_WIDTH \ + (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(116)))) +#define LOCAL_HISTORY_HEIGHT \ + (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(100)))) +#define LOCAL_HISTORY_RIGHT_MARGIN \ + (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(50)))) +#define LOCAL_HISTORY_BOTTOM_MARGIN \ + (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(30)))) + struct browser_window; struct history_entry; struct bitmap; diff --git a/desktop/local_history.c b/desktop/local_history.c index 1e754c40f..2a8871afe 100644 --- a/desktop/local_history.c +++ b/desktop/local_history.c @@ -39,13 +39,6 @@ #include "desktop/browser_history.h" #include "desktop/local_history.h" -#include "content/handlers/css/utils.h" - -#define WIDTH (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(116)))) -#define HEIGHT (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(100)))) -#define RIGHT_MARGIN (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(50)))) -#define BOTTOM_MARGIN (FIXTOINT(nscss_pixels_css_to_physical(INTTOFIX(30)))) - /** * local history viewer context */ @@ -166,7 +159,8 @@ redraw_entry(struct history *history, entry->page.bitmap, entry->x + x, entry->y + y, - WIDTH, HEIGHT, + LOCAL_HISTORY_WIDTH, + LOCAL_HISTORY_HEIGHT, 0xffffff, 0); if (res != NSERROR_OK) { @@ -176,8 +170,8 @@ redraw_entry(struct history *history, rect.x0 = entry->x - 1 + x; rect.y0 = entry->y - 1 + y; - rect.x1 = entry->x + x + WIDTH; - rect.y1 = entry->y + y + HEIGHT; + rect.x1 = entry->x + x + LOCAL_HISTORY_WIDTH; + rect.y1 = entry->y + y + LOCAL_HISTORY_HEIGHT; res = ctx->plot->rectangle(ctx, pstyle, &rect); if (res != NSERROR_OK) { return res; @@ -193,7 +187,7 @@ redraw_entry(struct history *history, } res = guit->layout->position(plot_style_font, entry->page.title, - strlen(entry->page.title), WIDTH, + strlen(entry->page.title), LOCAL_HISTORY_WIDTH, &char_offset, &actual_x); if (res != NSERROR_OK) { return res; @@ -202,7 +196,7 @@ redraw_entry(struct history *history, res = ctx->plot->text(ctx, pfstyle, entry->x + x, - entry->y + HEIGHT + 12 + y, + entry->y + LOCAL_HISTORY_HEIGHT + 12 + y, entry->page.title, char_offset); if (res != NSERROR_OK) { @@ -211,28 +205,28 @@ redraw_entry(struct history *history, /* for each child node draw a line and recurse redraw into it */ for (child = entry->forward; child; child = child->next) { - rect.x0 = entry->x + WIDTH + x; - rect.y0 = entry->y + HEIGHT / 2 + y; - rect.x1 = entry->x + WIDTH + tailsize + x; - rect.y1 = entry->y + HEIGHT / 2 + y; + rect.x0 = entry->x + LOCAL_HISTORY_WIDTH + x; + rect.y0 = entry->y + LOCAL_HISTORY_HEIGHT / 2 + y; + rect.x1 = entry->x + LOCAL_HISTORY_WIDTH + tailsize + x; + rect.y1 = entry->y + LOCAL_HISTORY_HEIGHT / 2 + y; res = ctx->plot->line(ctx, &pstyle_line, &rect); if (res != NSERROR_OK) { return res; } - rect.x0 = entry->x + WIDTH + tailsize + x; - rect.y0 = entry->y + HEIGHT / 2 + y; + rect.x0 = entry->x + LOCAL_HISTORY_WIDTH + tailsize + x; + rect.y0 = entry->y + LOCAL_HISTORY_HEIGHT / 2 + y; rect.x1 = child->x - tailsize + x; - rect.y1 = child->y + HEIGHT / 2 + y; + rect.y1 = child->y + LOCAL_HISTORY_HEIGHT / 2 + y; res = ctx->plot->line(ctx, &pstyle_line, &rect); if (res != NSERROR_OK) { return res; } rect.x0 = child->x - tailsize + x; - rect.y0 = child->y + HEIGHT / 2 + y; + rect.y0 = child->y + LOCAL_HISTORY_HEIGHT / 2 + y; rect.x1 = child->x + x; - rect.y1 = child->y + HEIGHT / 2 + y; + rect.y1 = child->y + LOCAL_HISTORY_HEIGHT / 2 + y; res = ctx->plot->line(ctx, &pstyle_line, &rect); if (res != NSERROR_OK) { return res; @@ -267,9 +261,9 @@ find_entry_position(struct history_entry *entry, int x, int y) } if ((entry->x <= x) && - (x <= entry->x + WIDTH) && + (x <= entry->x + LOCAL_HISTORY_WIDTH) && (entry->y <= y) && - (y <= entry->y + HEIGHT)) { + (y <= entry->y + LOCAL_HISTORY_HEIGHT)) { return entry; } @@ -293,10 +287,12 @@ local_history_scroll_to_cursor(struct local_history_session *session) return NSERROR_OK; } - cursor.x0 = session->cursor->x - RIGHT_MARGIN / 2; - cursor.y0 = session->cursor->y - BOTTOM_MARGIN / 2; - cursor.x1 = cursor.x0 + WIDTH + RIGHT_MARGIN / 2; - cursor.y1 = cursor.y0 + HEIGHT + BOTTOM_MARGIN / 2; + cursor.x0 = session->cursor->x - LOCAL_HISTORY_RIGHT_MARGIN / 2; + cursor.y0 = session->cursor->y - LOCAL_HISTORY_BOTTOM_MARGIN / 2; + cursor.x1 = cursor.x0 + LOCAL_HISTORY_WIDTH + + LOCAL_HISTORY_RIGHT_MARGIN / 2; + cursor.y1 = cursor.y0 + LOCAL_HISTORY_HEIGHT + + LOCAL_HISTORY_BOTTOM_MARGIN / 2; session->cw_t->scroll_visible(session->core_window_handle, &cursor);