152 lines
4.2 KiB
C
152 lines
4.2 KiB
C
/*
|
|
* Copyright 2020 Michael Drake <tlsa@netsurf-browser.org>
|
|
*
|
|
* This file is part of NetSurf, http://www.netsurf-browser.org/
|
|
*
|
|
* NetSurf is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* NetSurf is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**
|
|
* \file
|
|
* Pave info viewer window interface
|
|
*/
|
|
|
|
#ifndef NETSURF_DESKTOP_PAGE_INFO_H
|
|
#define NETSURF_DESKTOP_PAGE_INFO_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
#include "utils/errors.h"
|
|
#include "netsurf/mouse.h"
|
|
|
|
struct rect;
|
|
struct nsurl;
|
|
struct page_info;
|
|
struct core_window;
|
|
struct browser_window;
|
|
struct redraw_context;
|
|
struct core_window_callback_table;
|
|
|
|
/**
|
|
* Initialise the page_info module.
|
|
*
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_init(void);
|
|
|
|
/**
|
|
* Finalise the page_info module.
|
|
*
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_fini(void);
|
|
|
|
/**
|
|
* Create a page info corewindow.
|
|
*
|
|
* The page info window is opened for a particular browser window.
|
|
* It can be destroyed before the browser window is destroyed by calling
|
|
* \ref page_info_destroy.
|
|
*
|
|
* \param[in] cw_t Callback table for the containing core_window.
|
|
* \param[in] cw_h Handle for the containing core_window.
|
|
* \param[in] bw Browser window to show page info for.
|
|
* \param[out] pi_out The created page info window handle.
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_create(
|
|
const struct core_window_callback_table *cw_t,
|
|
struct core_window *cw_h,
|
|
struct browser_window *bw,
|
|
struct page_info **pi_out);
|
|
|
|
/**
|
|
* Destroy a page info corewindow.
|
|
*
|
|
* \param[in] pi The page info window handle.
|
|
*/
|
|
nserror page_info_destroy(struct page_info *pi);
|
|
|
|
/**
|
|
* change the browser window the page information refers to
|
|
*
|
|
* \param[in] pgi The page info window context
|
|
* \param[in] bw The new browser window
|
|
* \return NSERROR_OK on sucess else error code.
|
|
*/
|
|
nserror page_info_set(struct page_info *pgi, struct browser_window *bw);
|
|
|
|
/**
|
|
* Redraw the page info window.
|
|
*
|
|
* Causes the page info window to issue plot operations to redraw
|
|
* the specified area of the viewport.
|
|
*
|
|
* \param[in] pi The page info window handle.
|
|
* \param[in] x X coordinate to render page_info at.
|
|
* \param[in] y Y coordinate to render page_info at.
|
|
* \param[in] clip Current clip rectangle.
|
|
* \param[in] ctx Current redraw context.
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_redraw(
|
|
const struct page_info *pi,
|
|
int x,
|
|
int y,
|
|
const struct rect *clip,
|
|
const struct redraw_context *ctx);
|
|
|
|
/**
|
|
* Mouse action handling.
|
|
*
|
|
* \param[in] pi The page info window handle.
|
|
* \param[in] mouse The current mouse state
|
|
* \param[in] x The current mouse X coordinate
|
|
* \param[in] y The current mouse Y coordinate
|
|
* \param[out] did_something Set to true if this resulted in some action
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_mouse_action(
|
|
struct page_info *pi,
|
|
enum browser_mouse_state mouse,
|
|
int x,
|
|
int y,
|
|
bool *did_something);
|
|
|
|
/**
|
|
* Key press handling.
|
|
*
|
|
* \param[in] pi The page info window handle.
|
|
* \param[in] key The ucs4 character codepoint.
|
|
* \return true if the keypress is dealt with, false otherwise.
|
|
*/
|
|
bool page_info_keypress(
|
|
struct page_info *pi,
|
|
int32_t key);
|
|
|
|
/**
|
|
* Get size of page info content area.
|
|
*
|
|
* \param[in] pi The page info window handle.
|
|
* \param[out] width On success, return the page info content width.
|
|
* \param[out] height On success, return the page info content height.
|
|
* \return NSERROR_OK on success, appropriate error code otherwise.
|
|
*/
|
|
nserror page_info_get_size(
|
|
struct page_info *pi,
|
|
int *width,
|
|
int *height);
|
|
|
|
#endif
|