diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-12-17 23:55:02 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-12-17 23:55:02 +0000 |
commit | 355799ce0bbb078237dfc1ae9874bbc5342acbc4 (patch) | |
tree | 7ca980c01c0d4d1d55a3b7b15418c95c5618afae /gtk/gtk_scaffolding.h | |
parent | 4346b2b62b940182575e6612e46234355afa083c (diff) | |
download | netsurf-355799ce0bbb078237dfc1ae9874bbc5342acbc4.tar.gz netsurf-355799ce0bbb078237dfc1ae9874bbc5342acbc4.tar.bz2 |
Merge branches/MarkieB/gtkmain to trunk.
svn path=/trunk/netsurf/; revision=9729
Diffstat (limited to 'gtk/gtk_scaffolding.h')
-rw-r--r-- | gtk/gtk_scaffolding.h | 244 |
1 files changed, 200 insertions, 44 deletions
diff --git a/gtk/gtk_scaffolding.h b/gtk/gtk_scaffolding.h index f4b6bffd5..07886690b 100644 --- a/gtk/gtk_scaffolding.h +++ b/gtk/gtk_scaffolding.h @@ -21,63 +21,219 @@ #include <gtk/gtk.h> #include <glade/glade.h> +#include <glib.h> #include "desktop/gui.h" #include "desktop/plotters.h" +#include "gtk/gtk_menu.h" +#include "gtk/sexy_icon_entry.h" typedef struct gtk_scaffolding nsgtk_scaffolding; -struct gtk_scaffolding { +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, + 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 gtk_scaffolding *g; GtkWindow *window; - GtkNotebook *notebook; - GtkEntry *url_bar; - GtkEntryCompletion *url_bar_completion; - GtkStatusbar *status_bar; - GtkMenuItem *edit_menu; - GtkMenuItem *tabs_menu; - GtkToolbar *tool_bar; - GtkToolButton *back_button; - GtkToolButton *history_button; - GtkToolButton *forward_button; - GtkToolButton *stop_button; - GtkToolButton *reload_button; - GtkMenuBar *menu_bar; - GtkMenuItem *back_menu; - GtkMenuItem *forward_menu; - GtkMenuItem *stop_menu; - GtkMenuItem *reload_menu; - GtkImage *throbber; - GtkPaned *status_pane; - - GladeXML *xml; - - GladeXML *popup_xml; - GtkMenu *popup_menu; - - struct gtk_history_window *history_window; - GtkDialog *preferences_dialog; - - int throb_frame; - struct gui_window *top_level; - int being_destroyed; - - bool fullscreen; + GtkScrolledWindow *scrolled; + GtkDrawingArea *drawing_area; }; -GtkWindow *nsgtk_get_window_for_scaffold(struct gtk_scaffolding *g); - -nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel); - -gboolean nsgtk_scaffolding_is_busy(nsgtk_scaffolding *scaffold); - -GtkWindow* nsgtk_scaffolding_get_window (struct gui_window *g); +struct gtk_search { + GtkToolbar *bar; + GtkEntry *entry; + GtkToolButton *buttons[3]; /* back, forward, */ + GtkCheckButton *checkAll; /* close */ + GtkCheckButton *caseSens; +}; -GtkNotebook* nsgtk_scaffolding_get_notebook (struct gui_window *g); +struct nsgtk_button_connect { + GtkToolItem *button; + int location; /* in toolbar */ + bool sensitivity; + GtkImageMenuItem *main; + GtkImageMenuItem *rclick; + GtkImageMenuItem *popup; + void *mhandler; /* menu item clicked */ + void *bhandler; /* button clicked */ + void *dataplus; /* customization -> toolbar */ + void *dataminus; /* customization -> store */ +}; -void nsgtk_scaffolding_set_top_level (struct gui_window *gw); +extern nsgtk_scaffolding *scaf_list; -void nsgtk_scaffolding_destroy(nsgtk_scaffolding *scaffold); +nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel); +bool nsgtk_scaffolding_is_busy(nsgtk_scaffolding *g); + +GtkWindow *nsgtk_scaffolding_window(nsgtk_scaffolding *g); +GtkNotebook *nsgtk_scaffolding_notebook(nsgtk_scaffolding *g); +GtkWidget *nsgtk_scaffolding_urlbar(nsgtk_scaffolding *g); +GtkWidget *nsgtk_scaffolding_websearch(nsgtk_scaffolding *g); +GtkToolbar *nsgtk_scaffolding_toolbar(nsgtk_scaffolding *g); +struct nsgtk_button_connect *nsgtk_scaffolding_button(nsgtk_scaffolding *g, + int i); +struct gtk_search *nsgtk_scaffolding_search(nsgtk_scaffolding *g); +GtkMenuBar *nsgtk_scaffolding_menu_bar(nsgtk_scaffolding *g); +struct gtk_history_window *nsgtk_scaffolding_history_window(nsgtk_scaffolding + *g); +struct gui_window *nsgtk_scaffolding_top_level(nsgtk_scaffolding *g); +void nsgtk_scaffolding_reset_offset(nsgtk_scaffolding *g); +nsgtk_scaffolding *nsgtk_scaffolding_iterate(nsgtk_scaffolding *g); +void nsgtk_scaffolding_toolbar_init(struct gtk_scaffolding *g); +void nsgtk_scaffolding_update_url_bar_ref(nsgtk_scaffolding *g); +void nsgtk_scaffolding_update_throbber_ref(nsgtk_scaffolding *g); +void nsgtk_scaffolding_update_websearch_ref(nsgtk_scaffolding *g); +void nsgtk_scaffolding_set_websearch(nsgtk_scaffolding *g, const char + *content); +void nsgtk_scaffolding_toggle_search_bar_visibility(nsgtk_scaffolding *g); +void nsgtk_scaffolding_set_top_level(struct gui_window *g); + +void nsgtk_scaffolding_destroy(nsgtk_scaffolding *g); + +void nsgtk_scaffolding_set_sensitivity(struct gtk_scaffolding *g); +void nsgtk_scaffolding_initial_sensitivity(struct gtk_scaffolding *g); void nsgtk_scaffolding_popup_menu(struct gtk_scaffolding *g, gdouble x, gdouble y); +void nsgtk_scaffolding_toolbar_size_allocate(GtkWidget *widget, + GtkAllocation *alloc, gpointer data); + +gboolean nsgtk_window_url_activate_event(GtkWidget *, gpointer); +gboolean nsgtk_window_url_changed(GtkWidget *, GdkEventKey *, gpointer); + +#define MULTIPROTO(q)\ +gboolean nsgtk_on_##q##_activate(struct gtk_scaffolding *);\ +gboolean nsgtk_on_##q##_activate_menu(GtkMenuItem *, gpointer);\ +gboolean nsgtk_on_##q##_activate_button(GtkButton *, gpointer) +#define MENUPROTO(q)\ +gboolean nsgtk_on_##q##_activate(GtkMenuItem *, gpointer) +#define BUTTONPROTO(q)\ +gboolean nsgtk_on_##q##_activate(GtkButton *, gpointer) +/* prototypes for handlers */ +/* file menu */ +MULTIPROTO(newwindow); +MULTIPROTO(newtab); +MULTIPROTO(open_location); +MULTIPROTO(openfile); +MULTIPROTO(savepage); +MULTIPROTO(pdf); +MULTIPROTO(plaintext); +MULTIPROTO(drawfile); +MULTIPROTO(postscript); +MULTIPROTO(printpreview); +MULTIPROTO(print); +MULTIPROTO(closewindow); +MULTIPROTO(quit); + +/* edit menu */ +MULTIPROTO(cut); +MULTIPROTO(copy); +MULTIPROTO(paste); +MULTIPROTO(delete); +MULTIPROTO(selectall); +MULTIPROTO(find); +MULTIPROTO(preferences); + +/* view menu */ +MULTIPROTO(stop); +MULTIPROTO(reload); +MULTIPROTO(zoomplus); +MULTIPROTO(zoomnormal); +MULTIPROTO(zoomminus); +MULTIPROTO(fullscreen); +MULTIPROTO(viewsource); +MENUPROTO(menubar); +MENUPROTO(toolbar); +MENUPROTO(statusbar); +MULTIPROTO(downloads); +MULTIPROTO(savewindowsize); +MULTIPROTO(toggledebugging); +MULTIPROTO(saveboxtree); +MULTIPROTO(savedomtree); + +/* navigate menu */ +MULTIPROTO(back); +MULTIPROTO(forward); +MULTIPROTO(home); +MULTIPROTO(localhistory); +MULTIPROTO(globalhistory); +MULTIPROTO(addbookmarks); +MULTIPROTO(showbookmarks); +MULTIPROTO(openlocation); + +/* tabs menu */ +MULTIPROTO(nexttab); +MULTIPROTO(prevtab); +MULTIPROTO(closetab); + +/* help menu */ +MULTIPROTO(contents); +MULTIPROTO(guide); +MULTIPROTO(info); +MULTIPROTO(about); + +/* popup menu */ +MENUPROTO(customize); +MENUPROTO(savelink); +MENUPROTO(linkfocused); +MENUPROTO(linkbackground); + +/* non-menu */ +BUTTONPROTO(history); + +#undef MULTIPROTO +#undef MENUPROTO +#undef BUTTONPROTO #endif /* NETSURF_GTK_SCAFFOLDING_H */ |