diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2014-02-08 16:03:06 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2014-02-08 16:03:06 +0000 |
commit | 22d15380f40b82f7d1660648ec13af094643a3ca (patch) | |
tree | 5981d91a276400e6fee9d241959fb06385dcacdb | |
parent | 022a303d6043ed5843458c696c2d035e7f4b66fd (diff) | |
download | netsurf-22d15380f40b82f7d1660648ec13af094643a3ca.tar.gz netsurf-22d15380f40b82f7d1660648ec13af094643a3ca.tar.bz2 |
Add function to get browser window's extents.
-rw-r--r-- | desktop/browser.c | 24 | ||||
-rw-r--r-- | desktop/browser.h | 12 | ||||
-rw-r--r-- | utils/errors.h | 2 |
3 files changed, 38 insertions, 0 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 9061b3371..428c0775b 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1957,6 +1957,30 @@ bool browser_window_has_content(struct browser_window *bw) } +/* Exported interface, documented in browser.h */ +nserror browser_window_get_extents(struct browser_window *bw, bool scaled, + int *width, int *height) +{ + assert(bw != NULL); + + if (bw->current_content == NULL) { + *width = 0; + *height = 0; + return NSERROR_BAD_CONTENT; + } + + *width = content_get_width(bw->current_content); + *height = content_get_height(bw->current_content); + + if (scaled) { + *width *= bw->scale; + *height *= bw->scale; + } + + return NSERROR_OK; +} + + /* * Get the dimensions of the area a browser window occupies * diff --git a/desktop/browser.h b/desktop/browser.h index c48fd5a4f..b0a5c506c 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -130,6 +130,18 @@ nserror browser_window_navigate(struct browser_window *bw, nsurl * browser_window_get_url(struct browser_window *bw); /** + * Get a browser window's content extents. + * + * \param bw browser window + * \param scaled whether to apply current browser window scale + * \param width updated to content width extent in px + * \param width updated to content height extent in px + * \return NSERROR_OK, or appropriate error otherwise. + */ +nserror browser_window_get_extents(struct browser_window *bw, bool scaled, + int *width, int *height); + +/** * Find out if a browser window is currently showing a content. * * \param bw browser window diff --git a/utils/errors.h b/utils/errors.h index 244de0a6b..c38e4b9e2 100644 --- a/utils/errors.h +++ b/utils/errors.h @@ -67,6 +67,8 @@ typedef enum { NSERROR_BAD_URL, /**< Bad URL */ + NSERROR_BAD_CONTENT, /**< Bad Content */ + NSERROR_FRAME_DEPTH /**< Exceeded frame depth */ } nserror; |