summaryrefslogtreecommitdiff
path: root/riscos/toolbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/toolbar.h')
-rw-r--r--riscos/toolbar.h542
1 files changed, 0 insertions, 542 deletions
diff --git a/riscos/toolbar.h b/riscos/toolbar.h
deleted file mode 100644
index 41f1af728..000000000
--- a/riscos/toolbar.h
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright 2005 Richard Wilson <info@tinct.net>
- * Copyright 2010, 2011 Stephen Fryatt <stevef@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
- * Window toolbars (interface).
- */
-
-#include <stdbool.h>
-#include "riscos/theme.h"
-#include "riscos/gui/button_bar.h"
-#include "riscos/gui/throbber.h"
-#include "riscos/gui/url_bar.h"
-
-#ifndef _NETSURF_RISCOS_TOOLBAR_H_
-#define _NETSURF_RISCOS_TOOLBAR_H_
-
-typedef enum {
- TOOLBAR_FLAGS_NONE = 0x00,
- TOOLBAR_FLAGS_DISPLAY = 0x01,
- TOOLBAR_FLAGS_EDIT = 0x02,
-} toolbar_flags;
-
-/**
- * Widget action types that the toolbar can pass on to clients.
- */
-
-typedef enum {
- TOOLBAR_ACTION_NONE = 0,
- TOOLBAR_ACTION_BUTTON,
- TOOLBAR_ACTION_URL
-} toolbar_action_type;
-
-/**
- * Union to hold the different widget action data that can be passed
- * from widget via toolbar to client.
- */
-
-union toolbar_action {
- button_bar_action button;
- url_bar_action url;
-};
-
-struct toolbar;
-
-struct toolbar_callbacks {
- /** Call on theme update */
- void (*theme_update)(void *, bool);
-
- /** Call on bar size change */
- void (*change_size)(void *);
-
- /** Call to update button states */
- void (*update_buttons)(void *);
-
- /** Call to handle user actions */
- void (*user_action)(void *, toolbar_action_type, union toolbar_action);
-
- /** Call to handle keypresses. */
- bool (*key_press)(void *, wimp_key *);
-
- /** Call on change to button order. */
- void (*save_buttons)(void *, char *);
-};
-
-
-#define ro_toolbar_menu_option_shade(toolbar) \
- (((toolbar) == NULL) || ro_toolbar_get_editing(toolbar))
-
-#define ro_toolbar_menu_buttons_tick(toolbar) \
- (ro_toolbar_get_display_buttons(toolbar) || \
- ro_toolbar_get_editing(toolbar))
-
-#define ro_toolbar_menu_url_tick(toolbar) \
- (ro_toolbar_get_display_url(toolbar))
-
-#define ro_toolbar_menu_throbber_tick(toolbar) \
- (ro_toolbar_get_display_throbber(toolbar))
-
-#define ro_toolbar_menu_edit_shade(toolbar) ((toolbar) == NULL)
-
-#define ro_toolbar_menu_edit_tick(toolbar) (ro_toolbar_get_editing(toolbar))
-
-
-/* The new toolbar API */
-
-
-/**
- * Initialise the RISC OS toolbar widget.
- */
-
-void ro_toolbar_init(void);
-
-
-/**
- * Create a new toolbar, ready to have widgets added and to be attached to
- * a window. If a parent window is supplied, then the toolbar module will
- * handle the window attachments; if NULL, it is up to the client to sort this
- * out for itself.
- *
- * \param *descriptor The theme to apply, or NULL for the default.
- * \param parent The window to attach the toolbar to, or NULL.
- * \param style The theme style to apply.
- * \param bar_flags Toolbar flags for the new bar.
- * \param *callbacks A client callback block, or NULL for none.
- * \param *client_data A data pointer to pass to callbacks, or NULL.
- * \param *help The Help token prefix for interactive help.
- * \return The handle of the new bar, or NULL on failure.
- */
-
-struct toolbar *ro_toolbar_create(struct theme_descriptor *descriptor,
- wimp_w parent, theme_style style, toolbar_flags bar_flags,
- const struct toolbar_callbacks *callbacks, void *client_data,
- const char *help);
-
-
-/**
- * Add a button bar to a toolbar, and configure the buttons.
- *
- * \param *toolbar The toolbar to take the button bar.
- * \param buttons[] The button definitions.
- * \param *button_order The initial button order to use.
- * \return true if the action completed; else false.
- */
-
-bool ro_toolbar_add_buttons(struct toolbar *toolbar,
- const struct button_bar_buttons buttons[], char *button_order);
-
-
-/**
- * Add a throbber to a toolbar.
- *
- * \param *toolbar The toolbar to take the throbber.
- * \return true if the action completed; else false.
- */
-
-bool ro_toolbar_add_throbber(struct toolbar *toolbar);
-
-
-/**
- * Add a URL bar to a toolbar.
- *
- * \param *toolbar The toolbar to take the URL bar.
- * \return true if the action completed; else false.
- */
-
-bool ro_toolbar_add_url(struct toolbar *toolbar);
-
-
-/**
- * (Re-)build a toolbar to use the specified (or current) theme. If false
- * is returned, the toolbar may not be complete and should be deleted.
- *
- * \param *toolbar The toolbar to rebuild.
- * \return true if the action was successful; else false.
- */
-
-bool ro_toolbar_rebuild(struct toolbar *toolbar);
-
-
-/**
- * Attach or re-attach a toolbar to its parent window.
- *
- * \param *toolbar The toolbar to attach.
- * \param parent The window to attach the toolbar to.
- * \return true if the operation succeeded; else false.
- */
-
-bool ro_toolbar_attach(struct toolbar *toolbar, wimp_w parent);
-
-
-/**
- * Process a toolbar, updating its contents for a size or content change.
- *
- * \param *toolbar The toolbar to update.
- * \param width The width to reformat to, or -1 to use parent.
- * \param reformat true to force a widget reflow; else false.
- * \return true if the operation succeeded; else false.
- */
-
-bool ro_toolbar_process(struct toolbar *toolbar, int width, bool reformat);
-
-
-/**
- * Destroy a toolbar after use.
- *
- * \param *toolbar The toolbar to destroy.
- */
-
-void ro_toolbar_destroy(struct toolbar *toolbar);
-
-
-/**
- * Change the client data associated with a toolbar's callbacks.
- *
- * \param *toolbar the toolbar whose data is to be updated.
- * \param *client_data the new client data, or NULL for none.
- */
-
-void ro_toolbar_update_client_data(struct toolbar *toolbar, void *client_data);
-
-
-/**
- * Force the update of all toolbars buttons to reflect the current state.
- */
-
-void ro_toolbar_update_all_buttons(void);
-
-
-/**
- * Refresh a toolbar after it has been updated
- *
- * \param toolbar the toolbar to update
- */
-
-void ro_toolbar_refresh(struct toolbar *toolbar);
-
-
-/**
- * Force the update of all toolbars to reflect the application of a new theme.
- */
-
-void ro_toolbar_theme_update(void);
-
-
-/**
- * Find the toolbar associated with a given RO window handle.
- *
- * \param w the window handle to look up.
- * \return the toolbar handle, or NULL if a match wasn't found.
- */
-
-struct toolbar *ro_toolbar_parent_window_lookup(wimp_w w);
-
-
-/**
- * Find the toolbar using a given RO window handle for its pane.
- *
- * \param w the window (pane) handle to look up.
- * \return the toolbar handle, or NULL if a match wasn't found.
- */
-
-struct toolbar *ro_toolbar_window_lookup(wimp_w w);
-
-
-/**
- * Return the RO window handle of the parent window for a toolbar.
- *
- * \param *toolbar the toolbar to look up.
- * \return the RO window handle of the parent.
- */
-
-wimp_w ro_toolbar_get_parent_window(struct toolbar *toolbar);
-
-
-/**
- * Return the RO window handle of a toolbar.
- *
- * \param *toolbar the toolbar to look up.
- * \return the RO window handle of the bar.
- */
-
-wimp_w ro_toolbar_get_window(struct toolbar *toolbar);
-
-
-/**
- * Return the current height of a toolbar, allowing for available window
- * space.
- *
- * \param *toolbar The toolbar of interest.
- * \return The current toolbar height in OS units.
- */
-
-int ro_toolbar_height(struct toolbar *toolbar);
-
-
-/**
- * Return the full height that a toolbar could grow to, if space is available.
- *
- * \param *toolbar The toolbar of interest.
- * \return The full toolbar height in OS units.
- */
-
-int ro_toolbar_full_height(struct toolbar *toolbar);
-
-
-/**
- * Starts a toolbar throbber, if there is one active.
- *
- * \param *toolbar the toolbar to start throbbing.
- */
-
-void ro_toolbar_start_throbbing(struct toolbar *toolbar);
-
-
-/**
- * Stops a toolbar throbber, if there is one active.
- *
- * \param *toolbar the toolbar to stop throbbing.
- */
-
-void ro_toolbar_stop_throbbing(struct toolbar *toolbar);
-
-
-/**
- * Animate a toolbar throbber, if there is one active.
- *
- * \param *toolbar the toolbar to throb.
- */
-
-void ro_toolbar_throb(struct toolbar *toolbar);
-
-/**
- * Change the arrangement of buttons and spacers on a button bar within a
- * toolbar.
- *
- * \param *toolbar The toolbar to change.
- * \param order[] The new button configuration.
- * \return true of the order was updated; else false.
- */
-
-bool ro_toolbar_set_button_order(struct toolbar *toolbar, char order[]);
-
-
-/**
- * Set the shaded state of a toolbar button.
- *
- * \param *toolbar the toolbar to update.
- * \param action the button action to update.
- * \param shaded true if the button should be shaded; else false.
- */
-
-void ro_toolbar_set_button_shaded_state(struct toolbar *toolbar,
- button_bar_action action, bool shaded);
-
-/**
- * Give a toolbar input focus, placing the caret into the URL bar if one is
- * present. Currently a toolbar can only accept focus if it has a URL bar.
- *
- * \param *toolbar The toolbar to take the caret.
- * \return true if the caret was taken; else false.
- */
-
-bool ro_toolbar_take_caret(struct toolbar *toolbar);
-
-
-/**
- * Set the content of a toolbar's URL field.
- *
- * \param *toolbar the toolbar to update.
- * \param *url the new url to insert.
- * \param is_utf8 true if the string is in utf8 encoding; false
- * if it is in local encoding.
- * \param set_caret true if the caret should be placed in the field;
- * else false.
- */
-
-void ro_toolbar_set_url(struct toolbar *toolbar, const char *url,
- bool is_utf8, bool set_caret);
-
-
-/**
- * Return a pointer to the URL contained in a browser toolbar. If the toolbar
- * doesn't have a URL field, then NULL is returned instead.
- *
- * \param *toolbar The toolbar to look up the URL from.
- * \return pointer to the URL, or NULL.
- */
-
-const char *ro_toolbar_get_url(struct toolbar *toolbar);
-
-
-/**
- * Update the state of the URL Bar hotlist icons in all open toolbars.
- */
-
-void ro_toolbar_update_all_hotlists(void);
-
-
-/**
- * Update the state of a toolbar's URL Bar hotlist icon to reflect any changes
- * to the URL or the hotlist contents.
- *
- * \param *toolbar The toolbar to update.
- */
-
-void ro_toolbar_update_hotlist(struct toolbar *toolbar);
-
-
-/**
- * Return the current work area coordinates of the URL and favicon field's
- * bounding box.
- *
- * \param *toolbar The toolbar to look up.
- * \param *extent Return the coordinates.
- * \return true if successful; else false.
- */
-
-bool ro_toolbar_get_url_field_extent(struct toolbar *toolbar, os_box *extent);
-
-
-/**
- * Update the favicon in a browser window toolbar to the supplied content, or
- * revert to using filetype-based icons.
- *
- * \param *toolbar The toolbar to refresh.
- * \param *h The new favicon to use, or NULL for none.
- */
-
-void ro_toolbar_set_site_favicon(struct toolbar *toolbar,
- struct hlcache_handle *h);
-
-
-/**
- * Update the favicon in a browser window toolbar to reflect the RISC OS
- * filetype of the content within the supplied window. If the toolbar
- * currently has a site favicon set, then this call will be ignored.
- *
- * \param *toolbar The toolbar to refresh.
- * \param *g The gui window to set content favicon for.
- */
-
-void ro_toolbar_set_content_favicon(struct toolbar *toolbar,
- struct gui_window *g);
-
-
-/**
- * Update the state of the URL suggestion pop-up menu icon on a toolbar.
- *
- * \param *toolbar The toolbar to update.
- */
-
-void ro_toolbar_update_urlsuggest(struct toolbar *toolbar);
-
-
-/**
- * Set the display button bar state for a toolbar.
- *
- * \param *toolbar the toolbar to update.
- * \param display true to display the button bar; else false.
- */
-
-void ro_toolbar_set_display_buttons(struct toolbar *toolbar, bool display);
-
-
-/**
- * Set the display URL bar state for a toolbar.
- *
- * \param *toolbar the toolbar to update.
- * \param display true to display the URL bar; else false.
- */
-
-void ro_toolbar_set_display_url(struct toolbar *toolbar, bool display);
-
-
-/**
- * Set the display throbber state for a toolbar.
- *
- * \param *toolbar the toolbar to update.
- * \param display true to display the throbber; else false.
- */
-
-void ro_toolbar_set_display_throbber(struct toolbar *toolbar, bool display);
-
-
-/**
- * Return true or false depending on whether the given toolbar is set to
- * display the button bar.
- *
- * \param *toolbar the toolbar of interest.
- * \return true if the toolbar exists and the button bar is
- * shown; else false.
- */
-
-bool ro_toolbar_get_display_buttons(struct toolbar *toolbar);
-
-
-/**
- * Return true or false depending on whether the given toolbar is set to
- * display the URL bar.
- *
- * \param *toolbar the toolbar of interest.
- * \return true if the toolbar exists and the URL bar is
- * shown; else false.
- */
-
-bool ro_toolbar_get_display_url(struct toolbar *toolbar);
-
-
-/**
- * Return true or false depending on whether the given toolbar is set to
- * display the throbber.
- *
- * \param *toolbar the toolbar of interest.
- * \return true if the toolbar exists and the throbber is
- * shown; else false.
- */
-
-bool ro_toolbar_get_display_throbber(struct toolbar *toolbar);
-
-
-/**
- * Return true or false depending on whether the given toolbar is currently
- * being edited.
- *
- * \param *toolbar the toolbar of interest.
- * \return true if the toolbar exists and is beng edited;
- * else false.
- */
-
-bool ro_toolbar_get_editing(struct toolbar *toolbar);
-
-
-/**
- * Toggle toolbar edit mode on the given toolbar. Only a button bar can be
- * edited, so edit mode can only be toggled if there's an editor button
- * bar defined.
- *
- * \param *toolbar The toolbar to be toggled.
- * \return true if the action was successful; false if
- * the action failed and the toolbar was destroyed.
- */
-
-bool ro_toolbar_toggle_edit(struct toolbar *toolbar);
-
-#endif
-