From d21447d096a320a08b3efb2b8768fad0dcdcfd64 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 5 May 2016 22:28:51 +0100 Subject: move frontends into sub directory --- frontends/gtk/scaffolding.h | 252 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 frontends/gtk/scaffolding.h (limited to 'frontends/gtk/scaffolding.h') diff --git a/frontends/gtk/scaffolding.h b/frontends/gtk/scaffolding.h new file mode 100644 index 000000000..e1fd9bf2a --- /dev/null +++ b/frontends/gtk/scaffolding.h @@ -0,0 +1,252 @@ +/* + * Copyright 2005 James Bursa + * + * 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 . + */ + +#ifndef NETSURF_GTK_SCAFFOLDING_H +#define NETSURF_GTK_SCAFFOLDING_H 1 + +#include +#include "utils/errors.h" + +struct bitmap; +struct hlcache_handle; +struct gui_window; +struct gui_search_web_table; +struct nsurl; + +extern struct gui_search_web_table *nsgtk_search_web_table; + +typedef enum { + BACK_BUTTON = 0, + HISTORY_BUTTON, + FORWARD_BUTTON, + STOP_BUTTON, + RELOAD_BUTTON, + HOME_BUTTON, + URL_BAR_ITEM, + WEBSEARCH_ITEM, + THROBBER_ITEM, + NEWWINDOW_BUTTON, + NEWTAB_BUTTON, + OPENFILE_BUTTON, + CLOSETAB_BUTTON, + CLOSEWINDOW_BUTTON, + SAVEPAGE_BUTTON, + PDF_BUTTON, + PLAINTEXT_BUTTON, + DRAWFILE_BUTTON, + POSTSCRIPT_BUTTON, + PRINTPREVIEW_BUTTON, + PRINT_BUTTON, + QUIT_BUTTON, + CUT_BUTTON, + COPY_BUTTON, + PASTE_BUTTON, + DELETE_BUTTON, + SELECTALL_BUTTON, + FIND_BUTTON, + PREFERENCES_BUTTON, + ZOOMPLUS_BUTTON, + ZOOMMINUS_BUTTON, + ZOOMNORMAL_BUTTON, + FULLSCREEN_BUTTON, + VIEWSOURCE_BUTTON, + DOWNLOADS_BUTTON, + SAVEWINDOWSIZE_BUTTON, + TOGGLEDEBUGGING_BUTTON, + SAVEBOXTREE_BUTTON, + SAVEDOMTREE_BUTTON, + LOCALHISTORY_BUTTON, + GLOBALHISTORY_BUTTON, + ADDBOOKMARKS_BUTTON, + SHOWBOOKMARKS_BUTTON, + SHOWCOOKIES_BUTTON, + OPENLOCATION_BUTTON, + NEXTTAB_BUTTON, + PREVTAB_BUTTON, + CONTENTS_BUTTON, + GUIDE_BUTTON, + INFO_BUTTON, + ABOUT_BUTTON, + PLACEHOLDER_BUTTON /* size indicator; array maximum indices */ +} nsgtk_toolbar_button; /* PLACEHOLDER_BUTTON - 1 */ + +struct gtk_history_window { + struct nsgtk_scaffolding *g; + GtkWindow *window; + GtkScrolledWindow *scrolled; + GtkDrawingArea *drawing_area; +}; + +struct gtk_search { + GtkToolbar *bar; + GtkEntry *entry; + GtkToolButton *buttons[3]; /* back, forward, */ + GtkCheckButton *checkAll; /* close */ + GtkCheckButton *caseSens; +}; + +struct nsgtk_button_connect { + GtkToolItem *button; + int location; /* in toolbar */ + bool sensitivity; + GtkWidget *main; /* left click menu entry */ + GtkWidget *rclick; /* right click menu */ + GtkWidget *popup; /* popup menu entry */ + void *mhandler; /* menu item clicked */ + void *bhandler; /* button clicked */ + void *dataplus; /* customization -> toolbar */ + void *dataminus; /* customization -> store */ +}; + +/** + * create a new scaffolding for a window. + * + * \param gw The gui window to create the new scaffold around. + * \return The newly constructed scaffold or NULL on error. + */ +struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *gw); + +/** + * Obtain the most recently used scaffolding element. + * + * This allows tabs to be opened in the most recently used window + */ +struct nsgtk_scaffolding *nsgtk_current_scaffolding(void); + +/* acessors for gtk elements within a scaffold */ + +/** + * Get the gtk window for a scaffolding. + */ +GtkWindow *nsgtk_scaffolding_window(struct nsgtk_scaffolding *g); + +/** + * Get the gtk notebook from a scaffold. + */ +GtkNotebook *nsgtk_scaffolding_notebook(struct nsgtk_scaffolding *g); + +/** + * Get the gtk url bar from a scaffold. + */ +GtkWidget *nsgtk_scaffolding_urlbar(struct nsgtk_scaffolding *g); + +/** + * Get the gtk web search entry from a scaffold. + */ +GtkWidget *nsgtk_scaffolding_websearch(struct nsgtk_scaffolding *g); + +/** + * Get the gtk toolbar from a scaffold. + */ +GtkToolbar *nsgtk_scaffolding_toolbar(struct nsgtk_scaffolding *g); + + +struct nsgtk_button_connect *nsgtk_scaffolding_button(struct nsgtk_scaffolding *g, int i); + +struct gtk_search *nsgtk_scaffolding_search(struct nsgtk_scaffolding *g); + +GtkMenuBar *nsgtk_scaffolding_menu_bar(struct nsgtk_scaffolding *g); + +struct gtk_history_window *nsgtk_scaffolding_history_window(struct nsgtk_scaffolding *g); + +struct gui_window *nsgtk_scaffolding_top_level(struct nsgtk_scaffolding *g); + +/** + * reset the scaffold offset value to 0. + * + * \todo The value is only ever altered in + * nsgtk_scaffolding_toolbar_size_allocate and is something to do with + * the history button either clarify or remove! + */ +void nsgtk_scaffolding_reset_offset(struct nsgtk_scaffolding *g); + +/** + * Iterate through available scaffolding. + */ +struct nsgtk_scaffolding *nsgtk_scaffolding_iterate(struct nsgtk_scaffolding *g); + +void nsgtk_scaffolding_update_url_bar_ref(struct nsgtk_scaffolding *g); + +void nsgtk_scaffolding_update_throbber_ref(struct nsgtk_scaffolding *g); + +void nsgtk_scaffolding_update_websearch_ref(struct nsgtk_scaffolding *g); + +void nsgtk_scaffolding_toggle_search_bar_visibility(struct nsgtk_scaffolding *g); + +/** + * Set the current active top level gui window. + */ +void nsgtk_scaffolding_set_top_level(struct gui_window *g); + +/** + * update the sensitivity of context sensitive UI elements + * + * widgets altered in arrays: + * main + * right click menu + * location + * popup + * current arrays are: + * stop + * reload + * cut + * copy + * paste + * back + * forward + * nexttab + * prevtab + * closetab + */ +void nsgtk_scaffolding_set_sensitivity(struct nsgtk_scaffolding *g); + +/** + * Open a context sensitive menu. + * + * \param g the scaffolding containing the browser window. + * \param x The x co-ordinate. + * \param y The y co-ordinate. + */ +void nsgtk_scaffolding_context_menu(struct nsgtk_scaffolding *g, gdouble x, gdouble y); + +void nsgtk_scaffolding_toolbar_size_allocate(GtkWidget *widget, GtkAllocation *alloc, gpointer data); + +void nsgtk_scaffolding_set_icon(struct gui_window *gw); + +gboolean nsgtk_window_url_activate_event(GtkWidget *, gpointer); + +gboolean nsgtk_window_url_changed(GtkWidget *, GdkEventKey *, gpointer); + +nserror nsgtk_scaffolding_new_tab(struct gui_window *gw); + +/* core acessors */ +/** + * set the title in the window + * + * \param gw The gui window to set title on + * \param title The title to set which may be NULL + */ +void nsgtk_window_set_title(struct gui_window *gw, const char *title); + +nserror gui_window_set_url(struct gui_window *g, struct nsurl *url); +void gui_window_start_throbber(struct gui_window *g); +void gui_window_stop_throbber(struct gui_window *g); + +void nsgtk_scaffolding_toolbars(struct nsgtk_scaffolding *g, int tbi); + +#endif /* NETSURF_GTK_SCAFFOLDING_H */ -- cgit v1.2.3