r2843 rjek - in /branches/rjek/glade/gtk: gtk_throbber.c gtk_throbber.h
by netsurf@semichrome.net
Author: rjek
Date: Mon Aug 14 21:27:33 2006
New Revision: 2843
URL: http://svn.semichrome.net?rev=2843&view=rev
Log:
Initial effort to decode a GIF into a structure of GdkPixbufs for nsgtk throbber
Added:
branches/rjek/glade/gtk/gtk_throbber.c
branches/rjek/glade/gtk/gtk_throbber.h
Added: branches/rjek/glade/gtk/gtk_throbber.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_throbber.c?rev=2843...
==============================================================================
--- branches/rjek/glade/gtk/gtk_throbber.c (added)
+++ branches/rjek/glade/gtk/gtk_throbber.c Mon Aug 14 21:27:33 2006
@@ -1,0 +1,117 @@
+/*
+ * This file is part of NetSurf, http://netsurf.sourceforge.net/
+ * Licensed under the GNU General Public License,
+ * http://www.opensource.org/licenses/gpl-license
+ * Copyright 2006 Rob Kendrick <rjek(a)rjek.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "netsurf/utils/log.h"
+#include "netsurf/image/gifread.h"
+#include "netsurf/gtk/gtk_throbber.h"
+
+struct nsgtk_throbber *nsgtk_throbber;
+
+bool nsgtk_throbber_initialise(const char *fn)
+{
+ /* disect the GIF provided by filename in *fn into a series of
+ * GdkPixbuf for use later.
+ */
+ struct gif_animation *gif; /**< structure for gifread.c */
+ struct nsgtk_throbber *throb; /**< structure we generate */
+ int i;
+
+ FILE *fh = fopen(fn, "rb");
+
+ if (fh == NULL) {
+ LOG(("Unable to open throbber image '%s' for reading!", fn));
+ return false;
+ }
+
+ gif = (struct gif_animation *)malloc(sizeof(struct gif_animation));
+ throb = (struct nsgtk_throbber *)malloc(sizeof(struct nsgtk_throbber));
+ nsgtk_throbber = throb;
+
+ /* discover the size of the data file. */
+ fseek(fh, 0, SEEK_END);
+ gif->buffer_size = ftell(fh);
+ fseek(fh, 0, SEEK_SET);
+
+ /* allocate a block of sufficient size, and load the data in. */
+ gif->gif_data = (unsigned char *)malloc(gif->buffer_size);
+ fread(gif->gif_data, gif->buffer_size, 1, fh);
+ fclose(fh);
+
+ /* set current position within GIF file to beginning, in order to
+ * signal to gifread that we're brand new.
+ */
+ gif->buffer_position = 0;
+
+ /* initialise the gif_animation structure. */
+ switch (gif_initialise(gif))
+ {
+ case GIF_INSUFFICIENT_FRAME_DATA:
+ case GIF_FRAME_DATA_ERROR:
+ case GIF_INSUFFICIENT_DATA:
+ case GIF_DATA_ERROR:
+ LOG(("GIF image '%s' appears invalid!", fn));
+ free(gif->gif_data);
+ free(gif);
+ free(throb);
+ return false;
+ break;
+ case GIF_INSUFFICIENT_MEMORY:
+ LOG(("Ran out of memory decoding GIF image '%s'!", fn));
+ free(gif->gif_data);
+ free(gif);
+ free(throb);
+ return false;
+ break;
+ }
+
+ throb->nframes = gif->frame_count;
+
+ if (throb->nframes < 2)
+ {
+ /* we need at least two frames - one for idle, one for active */
+ LOG(("Insufficent number of frames in throbber image '%s'!",
+ fn));
+ LOG(("(GIF contains %d frames, where 2 is a minimum.)",
+ throb->nframes));
+ free(gif->gif_data);
+ free(gif);
+ free(throb);
+ return false;
+ }
+
+ throb->framedata = (GdkPixbuf **)malloc(sizeof(GdkPixbuf *)
+ * throb->nframes);
+
+ /* decode each frame in turn, extracting the struct bitmap * for each,
+ * and put that in our array of frames.
+ */
+ for (i = 0; i < throb->nframes; i++)
+ {
+ gif_decode_frame(gif, i);
+ throb->framedata[i] = gdk_pixbuf_copy(
+ (GdkPixbuf *)(gif->frame_image));
+ }
+
+ gif_finalise(gif);
+ free(gif->gif_data);
+ free(gif);
+
+ /* debug code: save out each frame as a PNG to make sure decoding is
+ * working correctly.
+
+
+ for (i = 0; i < throb->nframes; i++) {
+ char fname[20];
+ sprintf(fname, "frame%d.png", i);
+ gdk_pixbuf_save(throb->framedata[i], fname, "png", NULL, NULL);
+ }
+ */
+
+ return true;
+}
Added: branches/rjek/glade/gtk/gtk_throbber.h
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_throbber.h?rev=2843...
==============================================================================
--- branches/rjek/glade/gtk/gtk_throbber.h (added)
+++ branches/rjek/glade/gtk/gtk_throbber.h Mon Aug 14 21:27:33 2006
@@ -1,0 +1,23 @@
+/*
+ * This file is part of NetSurf, http://netsurf.sourceforge.net/
+ * Licensed under the GNU General Public License,
+ * http://www.opensource.org/licenses/gpl-license
+ * Copyright 2006 Rob Kendrick <rjek(a)rjek.com>
+ */
+
+#ifndef __GTK_THROBBER_H__
+#define __GTK_THROBBER_H__
+
+#include <gtk/gtk.h>
+
+struct nsgtk_throbber
+{
+ int nframes; /**< Number of frames in the throbber */
+ GdkPixbuf **framedata;
+};
+
+extern struct nsgtk_throbber *nsgtk_throbber;
+
+bool nsgtk_throbber_initialise(const char *fn);
+
+#endif /* __GTK_THROBBER_H__ */
17 years, 3 months
r2842 rjek - in /branches/rjek/glade/gtk: gtk_window.c netsurf.glade
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 22:30:54 2006
New Revision: 2842
URL: http://svn.semichrome.net?rev=2842&view=rev
Log:
Zoom-related menu entries are now implemented, but broken.
Modified:
branches/rjek/glade/gtk/gtk_window.c
branches/rjek/glade/gtk/netsurf.glade
Modified: branches/rjek/glade/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_window.c?rev=2842&r...
==============================================================================
--- branches/rjek/glade/gtk/gtk_window.c (original)
+++ branches/rjek/glade/gtk/gtk_window.c Sun Aug 13 22:30:54 2006
@@ -113,7 +113,8 @@
static gboolean nsgtk_history_button_press_event(GtkWidget *, GdkEventButton *,
gpointer);
-static void nsgtk_attach_menu_handlers(GladeXML *xml, gpointer g);
+static void nsgtk_attach_menu_handlers(GladeXML *, gpointer);
+static void nsgtk_window_change_scale(struct gui_window *, float);
#define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) }
#define MENUPROTO(x) static gboolean nsgtk_on_##x##_activate( \
@@ -130,6 +131,9 @@
/* view menu */
MENUPROTO(stop);
MENUPROTO(reload);
+MENUPROTO(zoom_in);
+MENUPROTO(normal_size);
+MENUPROTO(zoom_out);
/* navigate menu */
MENUPROTO(back);
@@ -155,6 +159,9 @@
/* view menu */
MENUEVENT(stop),
MENUEVENT(reload),
+ MENUEVENT(zoom_in),
+ MENUEVENT(normal_size),
+ MENUEVENT(zoom_out),
/* navigate menu */
MENUEVENT(back),
@@ -493,6 +500,44 @@
{
gtk_widget_show(GTK_WIDGET(wndChoices));
gdk_window_raise(GDK_WINDOW(wndChoices));
+
+ return TRUE;
+}
+
+void nsgtk_window_change_scale(struct gui_window *g, float scale)
+{
+ g->scale = scale;
+
+ if (g->bw->current_content != NULL)
+ gui_window_set_extent(g, g->bw->current_content->width,
+ g->bw->current_content->height);
+
+ gtk_widget_queue_draw(GTK_WIDGET(g->drawing_area));
+}
+
+MENUHANDLER(zoom_in)
+{
+ struct gui_window *gw = g;
+
+ nsgtk_window_change_scale(gw, gw->scale + 0.05);
+
+ return TRUE;
+}
+
+MENUHANDLER(normal_size)
+{
+ struct gui_window *gw = g;
+
+ nsgtk_window_change_scale(gw, 1.00);
+
+ return TRUE;
+}
+
+MENUHANDLER(zoom_out)
+{
+ struct gui_window *gw = g;
+
+ nsgtk_window_change_scale(gw, gw->scale - 0.05);
return TRUE;
}
Modified: branches/rjek/glade/gtk/netsurf.glade
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/netsurf.glade?rev=2842&...
==============================================================================
--- branches/rjek/glade/gtk/netsurf.glade (original)
+++ branches/rjek/glade/gtk/netsurf.glade Sun Aug 13 22:30:54 2006
@@ -3282,7 +3282,7 @@
<accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image350">
+ <widget class="GtkImage" id="image382">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@@ -3316,7 +3316,7 @@
<accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image351">
+ <widget class="GtkImage" id="image383">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@@ -3338,7 +3338,7 @@
<accelerator key="W" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image352">
+ <widget class="GtkImage" id="image384">
<property name="visible">True</property>
<property name="stock">gtk-close</property>
<property name="icon_size">1</property>
@@ -3367,7 +3367,7 @@
<accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image353">
+ <widget class="GtkImage" id="image385">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@@ -3437,7 +3437,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image354">
+ <widget class="GtkImage" id="image386">
<property name="visible">True</property>
<property name="stock">gtk-print-preview</property>
<property name="icon_size">1</property>
@@ -3460,7 +3460,7 @@
<accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image355">
+ <widget class="GtkImage" id="image387">
<property name="visible">True</property>
<property name="stock">gtk-print</property>
<property name="icon_size">1</property>
@@ -3584,7 +3584,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image356">
+ <widget class="GtkImage" id="image388">
<property name="visible">True</property>
<property name="stock">gtk-preferences</property>
<property name="icon_size">1</property>
@@ -3618,7 +3618,7 @@
<accelerator key="Escape" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image357">
+ <widget class="GtkImage" id="image389">
<property name="visible">True</property>
<property name="stock">gtk-stop</property>
<property name="icon_size">1</property>
@@ -3639,7 +3639,7 @@
<accelerator key="F5" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image358">
+ <widget class="GtkImage" id="image390">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">1</property>
@@ -3667,7 +3667,7 @@
<accelerator key="F11" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image359">
+ <widget class="GtkImage" id="image391">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3682,14 +3682,14 @@
<widget class="GtkMenu" id="scale_view_menu">
<child>
- <widget class="GtkImageMenuItem" id="nsgtk_zoom_in">
+ <widget class="GtkImageMenuItem" id="zoom_in">
<property name="visible">True</property>
<property name="label" translatable="yes">Zoom _in</property>
<property name="use_underline">True</property>
<accelerator key="plus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image360">
+ <widget class="GtkImage" id="image392">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3710,7 +3710,7 @@
<accelerator key="0" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image361">
+ <widget class="GtkImage" id="image393">
<property name="visible">True</property>
<property name="stock">gtk-zoom-100</property>
<property name="icon_size">1</property>
@@ -3731,7 +3731,7 @@
<accelerator key="minus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image362">
+ <widget class="GtkImage" id="image394">
<property name="visible">True</property>
<property name="stock">gtk-zoom-out</property>
<property name="icon_size">1</property>
@@ -3869,7 +3869,7 @@
<accelerator key="Left" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image363">
+ <widget class="GtkImage" id="image395">
<property name="visible">True</property>
<property name="stock">gtk-go-back</property>
<property name="icon_size">1</property>
@@ -3890,7 +3890,7 @@
<accelerator key="Right" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image364">
+ <widget class="GtkImage" id="image396">
<property name="visible">True</property>
<property name="stock">gtk-go-forward</property>
<property name="icon_size">1</property>
@@ -3911,7 +3911,7 @@
<accelerator key="Home" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image365">
+ <widget class="GtkImage" id="image397">
<property name="visible">True</property>
<property name="stock">gtk-home</property>
<property name="icon_size">1</property>
@@ -4001,7 +4001,7 @@
<accelerator key="F1" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image366">
+ <widget class="GtkImage" id="image398">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
17 years, 3 months
r2841 rjek - /branches/rjek/glade/gtk/netsurf.glade
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 22:18:43 2006
New Revision: 2841
URL: http://svn.semichrome.net?rev=2841&view=rev
Log:
Menu structure tidies and improvements
Modified:
branches/rjek/glade/gtk/netsurf.glade
Modified: branches/rjek/glade/gtk/netsurf.glade
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/netsurf.glade?rev=2841&...
==============================================================================
--- branches/rjek/glade/gtk/netsurf.glade (original)
+++ branches/rjek/glade/gtk/netsurf.glade Sun Aug 13 22:18:43 2006
@@ -3282,7 +3282,7 @@
<accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image318">
+ <widget class="GtkImage" id="image350">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@@ -3300,7 +3300,7 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Open an address into this browser window.</property>
- <property name="label" translatable="yes">Open _location</property>
+ <property name="label" translatable="yes">Open _location...</property>
<property name="use_underline">True</property>
<accelerator key="L" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
@@ -3311,12 +3311,12 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Open a file on your computer into this browser window.</property>
- <property name="label" translatable="yes">Open _file</property>
+ <property name="label" translatable="yes">Open _file...</property>
<property name="use_underline">True</property>
<accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image319">
+ <widget class="GtkImage" id="image351">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@@ -3338,7 +3338,7 @@
<accelerator key="W" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image320">
+ <widget class="GtkImage" id="image352">
<property name="visible">True</property>
<property name="stock">gtk-close</property>
<property name="icon_size">1</property>
@@ -3367,7 +3367,7 @@
<accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image321">
+ <widget class="GtkImage" id="image353">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@@ -3395,7 +3395,7 @@
<widget class="GtkMenuItem" id="export_plain_text">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Plain ASCII text, readable in text editors and views.</property>
- <property name="label" translatable="yes">Plain text</property>
+ <property name="label" translatable="yes">Plain text...</property>
<property name="use_underline">True</property>
</widget>
</child>
@@ -3404,7 +3404,7 @@
<widget class="GtkMenuItem" id="export_drawfile">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">RISC OS Drawfile vector graphic.</property>
- <property name="label" translatable="yes">Drawfile</property>
+ <property name="label" translatable="yes">Drawfile...</property>
<property name="use_underline">True</property>
</widget>
</child>
@@ -3413,7 +3413,7 @@
<widget class="GtkMenuItem" id="export_postscript">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">PostScript for printing and converting to PDFs.</property>
- <property name="label" translatable="yes">PostScript</property>
+ <property name="label" translatable="yes">PostScript...</property>
<property name="use_underline">True</property>
</widget>
</child>
@@ -3433,11 +3433,11 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Show how a print out might look like.</property>
- <property name="label" translatable="yes">Print preview</property>
+ <property name="label" translatable="yes">Print preview...</property>
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image322">
+ <widget class="GtkImage" id="image354">
<property name="visible">True</property>
<property name="stock">gtk-print-preview</property>
<property name="icon_size">1</property>
@@ -3455,12 +3455,12 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Produce a hardcopy on your printer.</property>
- <property name="label" translatable="yes">Print</property>
+ <property name="label" translatable="yes">Print...</property>
<property name="use_underline">True</property>
<accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image323">
+ <widget class="GtkImage" id="image355">
<property name="visible">True</property>
<property name="stock">gtk-print</property>
<property name="icon_size">1</property>
@@ -3580,11 +3580,11 @@
<widget class="GtkImageMenuItem" id="choices">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Change how NetSurf functions.</property>
- <property name="label" translatable="yes">_Choices</property>
+ <property name="label" translatable="yes">_Choices...</property>
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image324">
+ <widget class="GtkImage" id="image356">
<property name="visible">True</property>
<property name="stock">gtk-preferences</property>
<property name="icon_size">1</property>
@@ -3618,7 +3618,7 @@
<accelerator key="Escape" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image325">
+ <widget class="GtkImage" id="image357">
<property name="visible">True</property>
<property name="stock">gtk-stop</property>
<property name="icon_size">1</property>
@@ -3639,7 +3639,7 @@
<accelerator key="F5" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image326">
+ <widget class="GtkImage" id="image358">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">1</property>
@@ -3667,7 +3667,7 @@
<accelerator key="F11" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image327">
+ <widget class="GtkImage" id="image359">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3689,7 +3689,7 @@
<accelerator key="plus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image328">
+ <widget class="GtkImage" id="image360">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3710,7 +3710,7 @@
<accelerator key="0" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image329">
+ <widget class="GtkImage" id="image361">
<property name="visible">True</property>
<property name="stock">gtk-zoom-100</property>
<property name="icon_size">1</property>
@@ -3731,7 +3731,7 @@
<accelerator key="minus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image330">
+ <widget class="GtkImage" id="image362">
<property name="visible">True</property>
<property name="stock">gtk-zoom-out</property>
<property name="icon_size">1</property>
@@ -3751,6 +3751,7 @@
<child>
<widget class="GtkMenuItem" id="images">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Images</property>
<property name="use_underline">True</property>
@@ -3760,20 +3761,22 @@
<child>
<widget class="GtkCheckMenuItem" id="foreground_images">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Toggle the display of images in the foreground.</property>
<property name="label" translatable="yes">Foreground images</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
+ <property name="active">False</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="background_images">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Toggle the display of images in the background.</property>
<property name="label" translatable="yes">Background images</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
+ <property name="active">False</property>
</widget>
</child>
</widget>
@@ -3784,6 +3787,7 @@
<child>
<widget class="GtkMenuItem" id="toolbars">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Toolbars</property>
<property name="use_underline">True</property>
@@ -3793,15 +3797,17 @@
<child>
<widget class="GtkCheckMenuItem" id="menu_bar">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Menu bar</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
+ <property name="active">False</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="buttons">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Buttons</property>
<property name="use_underline">True</property>
<property name="active">True</property>
@@ -3811,6 +3817,7 @@
<child>
<widget class="GtkCheckMenuItem" id="address_bar">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Address bar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
@@ -3820,6 +3827,7 @@
<child>
<widget class="GtkCheckMenuItem" id="throbber">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Throbber</property>
<property name="use_underline">True</property>
<property name="active">True</property>
@@ -3829,6 +3837,7 @@
<child>
<widget class="GtkCheckMenuItem" id="status_bar">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="label" translatable="yes">Status bar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
@@ -3860,7 +3869,7 @@
<accelerator key="Left" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image331">
+ <widget class="GtkImage" id="image363">
<property name="visible">True</property>
<property name="stock">gtk-go-back</property>
<property name="icon_size">1</property>
@@ -3881,7 +3890,7 @@
<accelerator key="Right" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image332">
+ <widget class="GtkImage" id="image364">
<property name="visible">True</property>
<property name="stock">gtk-go-forward</property>
<property name="icon_size">1</property>
@@ -3902,7 +3911,7 @@
<accelerator key="Home" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image333">
+ <widget class="GtkImage" id="image365">
<property name="visible">True</property>
<property name="stock">gtk-home</property>
<property name="icon_size">1</property>
@@ -3925,7 +3934,7 @@
<widget class="GtkMenuItem" id="local_history">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Show the history tree for this browser window.</property>
- <property name="label" translatable="yes">_Local history</property>
+ <property name="label" translatable="yes">_Local history...</property>
<property name="use_underline">True</property>
<accelerator key="F7" modifiers="0" signal="activate"/>
</widget>
@@ -3936,7 +3945,7 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Show the history tree for all windows.</property>
- <property name="label" translatable="yes">_Global history</property>
+ <property name="label" translatable="yes">_Global history...</property>
<property name="use_underline">True</property>
<accelerator key="F7" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
@@ -3963,7 +3972,7 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Open a window showing all your bookmarks.</property>
- <property name="label" translatable="yes">Show book_marks</property>
+ <property name="label" translatable="yes">Show book_marks...</property>
<property name="use_underline">True</property>
<accelerator key="F6" modifiers="0" signal="activate"/>
</widget>
@@ -3992,7 +4001,7 @@
<accelerator key="F1" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image334">
+ <widget class="GtkImage" id="image366">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
@@ -4010,7 +4019,7 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Shows a guide and tutorial.</property>
- <property name="label" translatable="yes">User _guide</property>
+ <property name="label" translatable="yes">User _guide...</property>
<property name="use_underline">True</property>
</widget>
</child>
@@ -4019,7 +4028,7 @@
<widget class="GtkMenuItem" id="user_information">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="label" translatable="yes">User _information</property>
+ <property name="label" translatable="yes">User _information...</property>
<property name="use_underline">True</property>
</widget>
</child>
17 years, 3 months
r2840 rjw - in /branches/rjw/frames: !NetSurf/ !NetSurf/Resources/de/ !NetSurf/Resources/en/ !NetSurf/Resources/fr/ !NetSurf/Resources/nl/ ./ content/ desktop/ gtk/ render/ riscos/ riscos/configure/
by netsurf@semichrome.net
Author: rjw
Date: Sun Aug 13 20:33:22 2006
New Revision: 2840
URL: http://svn.semichrome.net?rev=2840&view=rev
Log:
?
Added:
branches/rjw/frames/
- copied from r2839, trunk/netsurf/
Modified:
branches/rjw/frames/!NetSurf/!Run,feb
branches/rjw/frames/!NetSurf/!Sprites22,ff9
branches/rjw/frames/!NetSurf/5Sprites22,ff9
branches/rjw/frames/!NetSurf/Resources/de/Messages
branches/rjw/frames/!NetSurf/Resources/de/Templates,fec
branches/rjw/frames/!NetSurf/Resources/en/Messages
branches/rjw/frames/!NetSurf/Resources/en/Templates,fec
branches/rjw/frames/!NetSurf/Resources/fr/Messages
branches/rjw/frames/!NetSurf/Resources/fr/Templates,fec
branches/rjw/frames/!NetSurf/Resources/nl/Messages
branches/rjw/frames/!NetSurf/Resources/nl/Templates,fec
branches/rjw/frames/content/content.c
branches/rjw/frames/depend
branches/rjw/frames/desktop/browser.c
branches/rjw/frames/desktop/browser.h
branches/rjw/frames/desktop/gui.h
branches/rjw/frames/desktop/history_core.c
branches/rjw/frames/desktop/netsurf.c
branches/rjw/frames/desktop/options.c
branches/rjw/frames/desktop/options.h
branches/rjw/frames/gtk/gtk_window.c
branches/rjw/frames/makefile
branches/rjw/frames/render/box.h
branches/rjw/frames/render/box_construct.c
branches/rjw/frames/render/html.c
branches/rjw/frames/render/html.h
branches/rjw/frames/riscos/configure/con_content.c
branches/rjw/frames/riscos/gui.c
branches/rjw/frames/riscos/gui.h
branches/rjw/frames/riscos/theme.c
branches/rjw/frames/riscos/wimp.c
branches/rjw/frames/riscos/window.c
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: branches/rjw/frames/!NetSurf/!Run,feb
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/%21Run%2Cfeb?rev...
Modified: branches/rjw/frames/!NetSurf/!Sprites22,ff9
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/%21Sprites22%2Cf...
Modified: branches/rjw/frames/!NetSurf/5Sprites22,ff9
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/5Sprites22%2Cff9...
Modified: branches/rjw/frames/!NetSurf/Resources/de/Messages
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/de/Mes...
Modified: branches/rjw/frames/!NetSurf/Resources/de/Templates,fec
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/de/Tem...
Modified: branches/rjw/frames/!NetSurf/Resources/en/Messages
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/en/Mes...
Modified: branches/rjw/frames/!NetSurf/Resources/en/Templates,fec
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/en/Tem...
Modified: branches/rjw/frames/!NetSurf/Resources/fr/Messages
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/fr/Mes...
Modified: branches/rjw/frames/!NetSurf/Resources/fr/Templates,fec
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/fr/Tem...
Modified: branches/rjw/frames/!NetSurf/Resources/nl/Messages
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/nl/Mes...
Modified: branches/rjw/frames/!NetSurf/Resources/nl/Templates,fec
URL: http://svn.semichrome.net/branches/rjw/frames/%21NetSurf/Resources/nl/Tem...
Modified: branches/rjw/frames/content/content.c
URL: http://svn.semichrome.net/branches/rjw/frames/content/content.c?rev=2840&...
Modified: branches/rjw/frames/depend
URL: http://svn.semichrome.net/branches/rjw/frames/depend?rev=2840&r1=2839&r2=...
Modified: branches/rjw/frames/desktop/browser.c
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/browser.c?rev=2840&...
Modified: branches/rjw/frames/desktop/browser.h
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/browser.h?rev=2840&...
Modified: branches/rjw/frames/desktop/gui.h
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/gui.h?rev=2840&r1=2...
Modified: branches/rjw/frames/desktop/history_core.c
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/history_core.c?rev=...
Modified: branches/rjw/frames/desktop/netsurf.c
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/netsurf.c?rev=2840&...
Modified: branches/rjw/frames/desktop/options.c
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/options.c?rev=2840&...
Modified: branches/rjw/frames/desktop/options.h
URL: http://svn.semichrome.net/branches/rjw/frames/desktop/options.h?rev=2840&...
Modified: branches/rjw/frames/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjw/frames/gtk/gtk_window.c?rev=2840&r...
Modified: branches/rjw/frames/makefile
URL: http://svn.semichrome.net/branches/rjw/frames/makefile?rev=2840&r1=2839&r...
Modified: branches/rjw/frames/render/box.h
URL: http://svn.semichrome.net/branches/rjw/frames/render/box.h?rev=2840&r1=28...
Modified: branches/rjw/frames/render/box_construct.c
URL: http://svn.semichrome.net/branches/rjw/frames/render/box_construct.c?rev=...
Modified: branches/rjw/frames/render/html.c
URL: http://svn.semichrome.net/branches/rjw/frames/render/html.c?rev=2840&r1=2...
Modified: branches/rjw/frames/render/html.h
URL: http://svn.semichrome.net/branches/rjw/frames/render/html.h?rev=2840&r1=2...
Modified: branches/rjw/frames/riscos/configure/con_content.c
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/configure/con_conten...
Modified: branches/rjw/frames/riscos/gui.c
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/gui.c?rev=2840&r1=28...
Modified: branches/rjw/frames/riscos/gui.h
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/gui.h?rev=2840&r1=28...
Modified: branches/rjw/frames/riscos/theme.c
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/theme.c?rev=2840&r1=...
Modified: branches/rjw/frames/riscos/wimp.c
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/wimp.c?rev=2840&r1=2...
Modified: branches/rjw/frames/riscos/window.c
URL: http://svn.semichrome.net/branches/rjw/frames/riscos/window.c?rev=2840&r1...
17 years, 3 months
r2839 adrianl - in /trunk/netsurf/desktop: browser.c browser.h textinput.c
by netsurf@semichrome.net
Author: adrianl
Date: Sun Aug 13 04:05:55 2006
New Revision: 2839
URL: http://svn.semichrome.net?rev=2839&view=rev
Log:
Reposition caret when browser window reformatted
Modified:
trunk/netsurf/desktop/browser.c
trunk/netsurf/desktop/browser.h
trunk/netsurf/desktop/textinput.c
Modified: trunk/netsurf/desktop/browser.c
URL: http://svn.semichrome.net/trunk/netsurf/desktop/browser.c?rev=2839&r1=283...
==============================================================================
--- trunk/netsurf/desktop/browser.c (original)
+++ trunk/netsurf/desktop/browser.c Sun Aug 13 04:05:55 2006
@@ -122,10 +122,11 @@
bw->gesturer = NULL;
else
bw->gesturer = gesturer_clone(clone->gesturer);
- bw->sel = selection_create(bw);
+ bw->sel = selection_create(bw);
bw->throbbing = false;
bw->caret_callback = NULL;
bw->paste_callback = NULL;
+ bw->move_callback = NULL;
bw->frag_id = NULL;
bw->drag_type = DRAGGING_NONE;
bw->scrolling_box = NULL;
@@ -327,6 +328,7 @@
bw->loading_content = NULL;
bw->caret_callback = NULL;
bw->paste_callback = NULL;
+ bw->move_callback = NULL;
bw->scrolling_box = NULL;
gui_window_new_content(bw->window);
if (bw->frag_id)
@@ -392,6 +394,7 @@
bw->current_content = 0;
bw->caret_callback = NULL;
bw->paste_callback = NULL;
+ bw->move_callback = NULL;
bw->scrolling_box = NULL;
selection_init(bw->sel, NULL);
}
@@ -422,6 +425,8 @@
/* box tree may have changed, need to relabel */
selection_reinit(bw->sel, c->data.html.layout);
}
+ if (bw->move_callback)
+ bw->move_callback(bw, bw->caret_p);
browser_window_update(bw, false);
break;
@@ -442,6 +447,7 @@
bw->current_content = 0;
bw->caret_callback = NULL;
bw->paste_callback = NULL;
+ bw->move_callback = NULL;
bw->scrolling_box = NULL;
selection_init(bw->sel, NULL);
}
@@ -460,6 +466,7 @@
bw->current_content = 0;
bw->caret_callback = NULL;
bw->paste_callback = NULL;
+ bw->move_callback = NULL;
bw->scrolling_box = NULL;
selection_init(bw->sel, NULL);
}
@@ -1138,8 +1145,9 @@
if (selection_click(bw->sel, mouse, text_box->byte_offset + idx)) {
/* key presses must be directed at the main browser
* window, paste text operations ignored */
- if (bw->caret_callback) bw->caret_callback = NULL;
- if (bw->paste_callback) bw->paste_callback = NULL;
+ bw->caret_callback = NULL;
+ bw->paste_callback = NULL;
+ bw->move_callback = NULL;
if (selection_dragging(bw->sel)) {
bw->drag_type = DRAGGING_SELECTION;
Modified: trunk/netsurf/desktop/browser.h
URL: http://svn.semichrome.net/trunk/netsurf/desktop/browser.h?rev=2839&r1=283...
==============================================================================
--- trunk/netsurf/desktop/browser.h (original)
+++ trunk/netsurf/desktop/browser.h Sun Aug 13 04:05:55 2006
@@ -35,6 +35,8 @@
wchar_t key, void *p);
typedef bool (*browser_paste_callback)(struct browser_window *bw,
const char *utf8, unsigned utf8_len, bool last, void *p);
+typedef void (*browser_move_callback)(struct browser_window *bw,
+ void *p);
/** Browser window data. */
struct browser_window {
@@ -56,6 +58,8 @@
browser_caret_callback caret_callback;
/** Handler for pasting text, or 0. */
browser_paste_callback paste_callback;
+ /** Handler for repositioning caret, or 0. */
+ browser_move_callback move_callback;
/** User parameter for caret_callback and paste_callback */
void *caret_p;
Modified: trunk/netsurf/desktop/textinput.c
URL: http://svn.semichrome.net/trunk/netsurf/desktop/textinput.c?rev=2839&r1=2...
==============================================================================
--- trunk/netsurf/desktop/textinput.c (original)
+++ trunk/netsurf/desktop/textinput.c Sun Aug 13 04:05:55 2006
@@ -45,11 +45,14 @@
int x, int y, int height,
browser_caret_callback caret_cb,
browser_paste_callback paste_cb,
+ browser_move_callback move_cb,
void *p);
static bool browser_window_textarea_paste_text(struct browser_window *bw,
const char *utf8, unsigned utf8_len, bool last, void *handle);
static bool browser_window_input_paste_text(struct browser_window *bw,
const char *utf8, unsigned utf8_len, bool last, void *handle);
+static void browser_window_textarea_move_caret(struct browser_window *bw, void *p);
+static void browser_window_input_move_caret(struct browser_window *bw, void *p);
static void input_update_display(struct browser_window *bw, struct box *input,
unsigned form_offset, unsigned box_offset, bool to_textarea,
bool redraw);
@@ -268,6 +271,7 @@
text_box->height,
browser_window_textarea_callback,
browser_window_textarea_paste_text,
+ browser_window_textarea_move_caret,
textarea);
if (new_scroll_y != textarea->scroll_y) {
@@ -687,6 +691,7 @@
text_box->height,
browser_window_textarea_callback,
browser_window_textarea_paste_text,
+ browser_window_textarea_move_caret,
textarea);
if (new_scroll_y != textarea->scroll_y || reflow) {
@@ -769,6 +774,7 @@
text_box->height,
browser_window_input_callback,
browser_window_input_paste_text,
+ browser_window_input_move_caret,
input);
if (dx)
@@ -1072,17 +1078,20 @@
* \param height Height of caret
* \param caret_cb Callback function for keypresses
* \param paste_cb Callback function for pasting text
+ * \param move_cb Callback function for caret movement
* \param p Callback private data pointer, passed to callback function
*/
void browser_window_place_caret(struct browser_window *bw,
int x, int y, int height,
browser_caret_callback caret_cb,
browser_paste_callback paste_cb,
+ browser_move_callback move_cb,
void *p)
{
gui_window_place_caret(bw->window, x, y, height);
bw->caret_callback = caret_cb;
bw->paste_callback = paste_cb;
+ bw->move_callback = move_cb;
bw->caret_p = p;
}
@@ -1239,6 +1248,7 @@
text_box->height,
browser_window_textarea_callback,
browser_window_textarea_paste_text,
+ browser_window_textarea_move_caret,
textarea);
textarea->gadget->caret_pixel_offset = pixel_offset;
@@ -1352,6 +1362,75 @@
input_update_display(bw, input, form_offset, box_offset, false, true);
return success;
+}
+
+
+/**
+ * Move caret to new position after reformatting
+ *
+ * \param bw browser window
+ * \param p pointer textarea box
+ * \return none
+ */
+
+void browser_window_textarea_move_caret(struct browser_window *bw, void *p)
+{
+ struct box *textarea = p;
+ struct box *inline_container = textarea->gadget->caret_inline_container;
+ struct box *text_box = textarea->gadget->caret_text_box;
+ size_t char_offset = textarea->gadget->caret_box_offset;
+ int pixel_offset;
+ int box_x, box_y;
+
+ box_coords(textarea, &box_x, &box_y);
+ box_x -= textarea->scroll_x;
+ box_y -= textarea->scroll_y;
+
+ nsfont_width(text_box->style, text_box->text,
+ char_offset, &pixel_offset);
+
+ browser_window_place_caret(bw,
+ box_x + inline_container->x + text_box->x +
+ pixel_offset,
+ box_y + inline_container->y + text_box->y,
+ text_box->height,
+ browser_window_textarea_callback,
+ browser_window_textarea_paste_text,
+ browser_window_textarea_move_caret,
+ textarea);
+}
+
+
+/**
+ * Move caret to new position after reformatting
+ *
+ * \param bw browser window
+ * \param p pointer to text input box
+ * \return none
+ */
+
+void browser_window_input_move_caret(struct browser_window *bw, void *p)
+{
+ struct box *input = (struct box *)p;
+ struct box *text_box = input->children->children;
+ unsigned int box_offset = input->gadget->caret_box_offset;
+ int pixel_offset;
+ int box_x, box_y;
+
+ box_coords(input, &box_x, &box_y);
+
+ nsfont_width(text_box->style, text_box->text, box_offset,
+ &pixel_offset);
+
+ browser_window_place_caret(bw,
+ box_x + input->children->x +
+ text_box->x + pixel_offset,
+ box_y + input->children->y + text_box->y,
+ text_box->height,
+ browser_window_input_callback,
+ browser_window_input_paste_text,
+ browser_window_input_move_caret,
+ input);
}
@@ -1413,6 +1492,8 @@
: browser_window_input_callback,
to_textarea ? browser_window_textarea_paste_text
: browser_window_input_paste_text,
+ to_textarea ? browser_window_textarea_move_caret
+ : browser_window_input_move_caret,
input);
if (dx || redraw)
17 years, 3 months
r2838 bursa - /trunk/netsurf/render/layout.c
by netsurf@semichrome.net
Author: bursa
Date: Sun Aug 13 02:00:22 2006
New Revision: 2838
URL: http://svn.semichrome.net?rev=2838&view=rev
Log:
Use a minimum line height of 0 for inline containers which have no text.
Modified:
trunk/netsurf/render/layout.c
Modified: trunk/netsurf/render/layout.c
URL: http://svn.semichrome.net/trunk/netsurf/render/layout.c?rev=2838&r1=2837&...
==============================================================================
--- trunk/netsurf/render/layout.c (original)
+++ trunk/netsurf/render/layout.c Sun Aug 13 02:00:22 2006
@@ -62,6 +62,7 @@
static int line_height(struct css_style *style);
static bool layout_line(struct box *first, int width, int *y,
int cx, int cy, struct box *cont, bool indent,
+ bool has_text_children,
struct content *content, struct box **next_box);
static struct box *layout_minmax_line(struct box *first, int *min, int *max);
static int layout_text_indent(struct css_style *style, int width);
@@ -805,6 +806,7 @@
struct box *cont, int cx, int cy, struct content *content)
{
bool first_line = true;
+ bool has_text_children;
struct box *c, *next;
int y = 0;
@@ -813,10 +815,15 @@
LOG(("inline_container %p, width %i, cont %p, cx %i, cy %i",
inline_container, width, cont, cx, cy));
+ has_text_children = false;
+ for (c = inline_container->children; c; c = c->next)
+ if (!c->object && c->text && c->length)
+ has_text_children = true;
+
for (c = inline_container->children; c; ) {
LOG(("c %p", c));
if (!layout_line(c, width, &y, cx, cy + y, cont, first_line,
- content, &next))
+ has_text_children, content, &next))
return false;
c = next;
first_line = false;
@@ -910,6 +917,7 @@
* \param cy coordinate of top of line relative to cont
* \param cont ancestor box which defines horizontal space, for floats
* \param indent apply any first-line indent
+ * \param has_text_children at least one TEXT in the inline_container
* \param next_box updated to first box for next line, or 0 at end
* \param content memory pool for any new boxes
* \return true on success, false on memory exhaustion
@@ -917,6 +925,7 @@
bool layout_line(struct box *first, int width, int *y,
int cx, int cy, struct box *cont, bool indent,
+ bool has_text_children,
struct content *content, struct box **next_box)
{
int height, used_height;
@@ -952,7 +961,12 @@
x1 = x0;
/* get minimum line height from containing block */
- used_height = height = line_height(first->parent->parent->style);
+ if (has_text_children)
+ used_height = height = line_height(first->parent->parent->style);
+ else
+ /* inline containers with no text are usually for layout and
+ * look better with no minimum line-height */
+ used_height = height = 0;
/* pass 1: find height of line assuming sides at top of line: loop
* body executed at least once
17 years, 3 months
r2837 rjek - /branches/rjek/glade/gtk/gtk_window.c
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 01:14:21 2006
New Revision: 2837
URL: http://svn.semichrome.net?rev=2837&view=rev
Log:
Set utility window hint on nsgtk local history window
Modified:
branches/rjek/glade/gtk/gtk_window.c
Modified: branches/rjek/glade/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_window.c?rev=2837&r...
==============================================================================
--- branches/rjek/glade/gtk/gtk_window.c (original)
+++ branches/rjek/glade/gtk/gtk_window.c Sun Aug 13 01:14:21 2006
@@ -656,6 +656,8 @@
gtk_window_set_transient_for(g->history_window->window, g->window);
gtk_window_set_default_size(g->history_window->window, 400, 400);
gtk_window_set_title(g->history_window->window, "NetSurf History");
+ gtk_window_set_type_hint(g->history_window->window,
+ GDK_WINDOW_TYPE_HINT_UTILITY);
g->history_window->scrolled = GTK_SCROLLED_WINDOW(
gtk_scrolled_window_new(0, 0));
gtk_container_add(GTK_CONTAINER(g->history_window->window),
17 years, 3 months
r2836 rjek - /branches/rjek/glade/gtk/gtk_window.c
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 01:05:18 2006
New Revision: 2836
URL: http://svn.semichrome.net?rev=2836&view=rev
Log:
Local history window now works in new nsgtk. Warning fixes.
Modified:
branches/rjek/glade/gtk/gtk_window.c
Modified: branches/rjek/glade/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_window.c?rev=2836&r...
==============================================================================
--- branches/rjek/glade/gtk/gtk_window.c (original)
+++ branches/rjek/glade/gtk/gtk_window.c Sun Aug 13 01:05:18 2006
@@ -106,6 +106,13 @@
static gboolean nsgtk_window_home_button_clicked(GtkWidget *, gpointer);
static gboolean nsgtk_window_url_activate_event(GtkWidget *, gpointer);
+static gboolean nsgtk_history_expose_event(GtkWidget *, GdkEventExpose *,
+ gpointer);
+static gboolean nsgtk_history_motion_notify_event(GtkWidget *, GdkEventMotion *,
+ gpointer);
+static gboolean nsgtk_history_button_press_event(GtkWidget *, GdkEventButton *,
+ gpointer);
+
static void nsgtk_attach_menu_handlers(GladeXML *xml, gpointer g);
#define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) }
@@ -217,7 +224,8 @@
void nsgtk_window_destroy_event(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
-
+
+ gtk_widget_destroy(GTK_WIDGET(g->history_window->window));
gui_window_destroy(g);
if (--open_windows == 0)
netsurf_quit = true;
@@ -374,10 +382,13 @@
gtk_widget_set_sensitive(GTK_WIDGET(g->forward_menu),
history_forward_available(g->bw->history));
+ /* update the local history window, as well as queuing a redraw
+ * for it.
+ */
history_size(g->bw->history, &width, &height);
gtk_widget_set_size_request(GTK_WIDGET(g->history_window->drawing_area),
width, height);
- gtk_widget_queue_draw(GTK_WIDGET(g->history_window));
+ gtk_widget_queue_draw(GTK_WIDGET(g->history_window->drawing_area));
}
@@ -467,7 +478,7 @@
{
struct gui_window *gw = (struct gui_window *)g;
- gtk_widget_destroy(gw->window);
+ gtk_widget_destroy(GTK_WIDGET(gw->window));
return TRUE;
}
@@ -481,7 +492,7 @@
MENUHANDLER(choices)
{
gtk_widget_show(GTK_WIDGET(wndChoices));
- gdk_window_raise(GTK_WINDOW(wndChoices));
+ gdk_window_raise(GDK_WINDOW(wndChoices));
return TRUE;
}
@@ -513,6 +524,11 @@
MENUHANDLER(local_history)
{
+ struct gui_window *gw = (struct gui_window *)g;
+
+ gtk_widget_show(GTK_WIDGET(gw->history_window->window));
+ gdk_window_raise(GDK_WINDOW(gw->history_window->window));
+
return TRUE;
}
@@ -521,8 +537,48 @@
return TRUE;
}
+/* signal handler functions for the local history window */
+gboolean nsgtk_history_expose_event(GtkWidget *widget,
+ GdkEventExpose *event, gpointer g)
+{
+ struct gtk_history_window *hw = g;
+
+ current_widget = widget;
+ current_drawable = widget->window;
+ current_gc = gdk_gc_new(current_drawable);
+#ifdef CAIRO_VERSION
+ current_cr = gdk_cairo_create(current_drawable);
+#endif
+ plot = nsgtk_plotters;
+ nsgtk_plot_set_scale(1.0);
+
+ history_redraw(hw->g->bw->history);
+
+ g_object_unref(current_gc);
+#ifdef CAIRO_VERSION
+ cairo_destroy(current_cr);
+#endif
+ return FALSE;
+}
+
+gboolean nsgtk_history_motion_notify_event(GtkWidget *widget,
+ GdkEventMotion *event, gpointer g)
+{
+ return TRUE;
+}
+
+gboolean nsgtk_history_button_press_event(GtkWidget *widget,
+ GdkEventButton *event, gpointer g)
+{
+ struct gtk_history_window *hw = g;
+
+ history_click(hw->g->bw, hw->g->bw->history,
+ event->x, event->y, false);
+
+ return TRUE;
+}
+
/* functions called by the core to manipulate the GUI */
-
#define GET_WIDGET(x) glade_xml_get_widget(g->xml, (x))
struct gui_window *gui_create_browser_window(struct browser_window *bw,
struct browser_window *clone)
@@ -608,6 +664,7 @@
gtk_widget_show(GTK_WIDGET(g->history_window->scrolled));
g->history_window->drawing_area = GTK_DRAWING_AREA(
gtk_drawing_area_new());
+
gtk_widget_set_events(GTK_WIDGET(g->history_window->drawing_area),
GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK |
@@ -615,12 +672,24 @@
gtk_widget_modify_bg(GTK_WIDGET(g->history_window->drawing_area),
GTK_STATE_NORMAL,
&((GdkColor) { 0, 0xffff, 0xffff, 0xffff } ));
+ gtk_scrolled_window_add_with_viewport(g->history_window->scrolled,
+ GTK_WIDGET(g->history_window->drawing_area));
gtk_widget_show(GTK_WIDGET(g->history_window->drawing_area));
+#define CONNECT(obj, sig, callback, ptr) \
+ g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr))
+
+ /* connect history window signals to their handlers */
+ CONNECT(g->history_window->drawing_area, "expose_event",
+ nsgtk_history_expose_event, g->history_window);
+ CONNECT(g->history_window->drawing_area, "motion_notify_event",
+ nsgtk_history_motion_notify_event, g->history_window);
+ CONNECT(g->history_window->drawing_area, "button_press_event",
+ nsgtk_history_button_press_event, g->history_window);
+ CONNECT(g->history_window->window, "delete_event",
+ gtk_widget_hide_on_delete, NULL);
/* connect signals to handlers. */
-#define CONNECT(obj, sig, callback, ptr) \
- g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr))
CONNECT(g->window, "destroy", nsgtk_window_destroy_event, g);
CONNECT(g->drawing_area, "expose_event", nsgtk_window_expose_event, g);
CONNECT(g->drawing_area, "configure_event",
17 years, 3 months
r2835 rjek - /branches/rjek/glade/gtk/gtk_window.c
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 00:33:36 2006
New Revision: 2835
URL: http://svn.semichrome.net?rev=2835&view=rev
Log:
Grey out back/forward/stop/reload menu items in a similar fashion to their toolbar counterparts.
Modified:
branches/rjek/glade/gtk/gtk_window.c
Modified: branches/rjek/glade/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_window.c?rev=2835&r...
==============================================================================
--- branches/rjek/glade/gtk/gtk_window.c (original)
+++ branches/rjek/glade/gtk/gtk_window.c Sun Aug 13 00:33:36 2006
@@ -42,6 +42,10 @@
GtkToolButton *forward_button;
GtkToolButton *stop_button;
GtkToolButton *reload_button;
+ GtkMenuItem *back_menu;
+ GtkMenuItem *forward_menu;
+ GtkMenuItem *stop_menu;
+ GtkMenuItem *reload_menu;
GladeXML *xml;
@@ -364,6 +368,12 @@
history_back_available(g->bw->history));
gtk_widget_set_sensitive(GTK_WIDGET(g->forward_button),
history_forward_available(g->bw->history));
+
+ gtk_widget_set_sensitive(GTK_WIDGET(g->back_menu),
+ history_back_available(g->bw->history));
+ gtk_widget_set_sensitive(GTK_WIDGET(g->forward_menu),
+ history_forward_available(g->bw->history));
+
history_size(g->bw->history, &width, &height);
gtk_widget_set_size_request(GTK_WIDGET(g->history_window->drawing_area),
width, height);
@@ -455,11 +465,16 @@
MENUHANDLER(close_window)
{
+ struct gui_window *gw = (struct gui_window *)g;
+
+ gtk_widget_destroy(gw->window);
+
return TRUE;
}
MENUHANDLER(quit)
{
+ netsurf_quit = true;
return TRUE;
}
@@ -536,6 +551,10 @@
g->forward_button = GTK_TOOL_BUTTON(GET_WIDGET("toolForward"));
g->stop_button = GTK_TOOL_BUTTON(GET_WIDGET("toolStop"));
g->reload_button = GTK_TOOL_BUTTON(GET_WIDGET("toolReload"));
+ g->back_menu = GTK_MENU_ITEM(GET_WIDGET("back"));
+ g->forward_menu = GTK_MENU_ITEM(GET_WIDGET("forward"));
+ g->stop_menu = GTK_MENU_ITEM(GET_WIDGET("stop"));
+ g->reload_menu = GTK_MENU_ITEM(GET_WIDGET("reload"));
/* connect our scrollbars to the viewport */
gtk_viewport_set_hadjustment(GTK_VIEWPORT(GET_WIDGET("viewport1")),
@@ -814,6 +833,9 @@
{
gtk_widget_set_sensitive(GTK_WIDGET(g->stop_button), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(g->reload_button), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(g->stop_menu), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(g->reload_button), FALSE);
+
nsgtk_window_update_back_forward(g);
}
@@ -821,6 +843,9 @@
{
gtk_widget_set_sensitive(GTK_WIDGET(g->stop_button), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(g->reload_button), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(g->stop_menu), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(g->reload_menu), TRUE);
+
nsgtk_window_update_back_forward(g);
}
17 years, 3 months
r2834 rjek - in /branches/rjek/glade/gtk: gtk_window.c netsurf.glade
by netsurf@semichrome.net
Author: rjek
Date: Sun Aug 13 00:09:50 2006
New Revision: 2834
URL: http://svn.semichrome.net?rev=2834&view=rev
Log:
Infrastructure for working menus in nsgtk. Some menu items even work (back/forward/etc) including their keyboard shortcuts.
Modified:
branches/rjek/glade/gtk/gtk_window.c
branches/rjek/glade/gtk/netsurf.glade
Modified: branches/rjek/glade/gtk/gtk_window.c
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/gtk_window.c?rev=2834&r...
==============================================================================
--- branches/rjek/glade/gtk/gtk_window.c (original)
+++ branches/rjek/glade/gtk/gtk_window.c Sun Aug 13 00:09:50 2006
@@ -70,6 +70,11 @@
cairo_t *current_cr;
#endif
+struct menu_events {
+ const char *widget;
+ GCallback handler;
+};
+
static int open_windows = 0; /**< current number of open browsers */
static wchar_t gdkkey_to_nskey(GdkEventKey *);
@@ -90,12 +95,80 @@
static void nsgtk_perform_deferred_resize(void *p);
static void nsgtk_window_update_back_forward(struct gui_window *);
-static void nsgtk_window_back_button_clicked(GtkWidget *, gpointer);
-static void nsgtk_window_forward_button_clicked(GtkWidget *, gpointer);
-static void nsgtk_window_stop_button_clicked(GtkWidget *, gpointer);
-static void nsgtk_window_reload_button_clicked(GtkWidget *, gpointer);
-static void nsgtk_window_home_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_back_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_forward_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_stop_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_reload_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_home_button_clicked(GtkWidget *, gpointer);
static gboolean nsgtk_window_url_activate_event(GtkWidget *, gpointer);
+
+static void nsgtk_attach_menu_handlers(GladeXML *xml, gpointer g);
+
+#define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) }
+#define MENUPROTO(x) static gboolean nsgtk_on_##x##_activate( \
+ GtkMenuItem *widget, gpointer g)
+/* prototypes for menu handlers */
+/* file menu */
+MENUPROTO(new_window);
+MENUPROTO(close_window);
+MENUPROTO(quit);
+
+/* edit menu */
+MENUPROTO(choices);
+
+/* view menu */
+MENUPROTO(stop);
+MENUPROTO(reload);
+
+/* navigate menu */
+MENUPROTO(back);
+MENUPROTO(forward);
+MENUPROTO(home);
+MENUPROTO(local_history);
+
+/* help menu */
+MENUPROTO(about);
+
+/* structure used by nsgtk_attach_menu_handlers to connect menu items to
+ * their handling functions.
+ */
+static struct menu_events menu_events[] = {
+ /* file menu */
+ MENUEVENT(new_window),
+ MENUEVENT(close_window),
+ MENUEVENT(quit),
+
+ /* edit menu */
+ MENUEVENT(choices),
+
+ /* view menu */
+ MENUEVENT(stop),
+ MENUEVENT(reload),
+
+ /* navigate menu */
+ MENUEVENT(back),
+ MENUEVENT(forward),
+ MENUEVENT(home),
+ MENUEVENT(local_history),
+
+ /* help menu */
+ MENUEVENT(about),
+
+ /* sentinal */
+ { NULL, NULL }
+};
+
+void nsgtk_attach_menu_handlers(GladeXML *xml, gpointer g)
+{
+ struct menu_events *event = menu_events;
+
+ while (event->widget != NULL)
+ {
+ GtkWidget *w = glade_xml_get_widget(xml, event->widget);
+ g_signal_connect(G_OBJECT(w), "activate", event->handler, g);
+ event++;
+ }
+}
wchar_t gdkkey_to_nskey(GdkEventKey *key)
{
@@ -248,7 +321,8 @@
return TRUE;
}
-gboolean nsgtk_window_size_allocate_event(GtkWidget *widget, GtkAllocation *allocation, gpointer data)
+gboolean nsgtk_window_size_allocate_event(GtkWidget *widget,
+ GtkAllocation *allocation, gpointer data)
{
struct gui_window *g = data;
@@ -285,6 +359,7 @@
void nsgtk_window_update_back_forward(struct gui_window *g)
{
int width, height;
+
gtk_widget_set_sensitive(GTK_WIDGET(g->back_button),
history_back_available(g->bw->history));
gtk_widget_set_sensitive(GTK_WIDGET(g->forward_button),
@@ -297,43 +372,51 @@
/* signal handling functions for the toolbar and URL bar */
-void nsgtk_window_back_button_clicked(GtkWidget *widget, gpointer data)
+gboolean nsgtk_window_back_button_clicked(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
if (!history_back_available(g->bw->history))
- return;
+ return TRUE;
history_back(g->bw, g->bw->history);
nsgtk_window_update_back_forward(g);
-}
-
-void nsgtk_window_forward_button_clicked(GtkWidget *widget, gpointer data)
+
+ return TRUE;
+}
+
+gboolean nsgtk_window_forward_button_clicked(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
if (!history_forward_available(g->bw->history))
- return;
+ return TRUE;
history_forward(g->bw, g->bw->history);
nsgtk_window_update_back_forward(g);
-}
-
-void nsgtk_window_stop_button_clicked(GtkWidget *widget, gpointer data)
+
+ return TRUE;
+}
+
+gboolean nsgtk_window_stop_button_clicked(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
browser_window_stop(g->bw);
-}
-
-void nsgtk_window_reload_button_clicked(GtkWidget *widget, gpointer data)
+
+ return TRUE;
+}
+
+gboolean nsgtk_window_reload_button_clicked(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
browser_window_reload(g->bw, true);
-}
-
-void nsgtk_window_home_button_clicked(GtkWidget *widget, gpointer data)
+
+ return TRUE;
+}
+
+gboolean nsgtk_window_home_button_clicked(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
const char *addr = "http://netsurf.sourceforge.net/";
@@ -342,6 +425,8 @@
addr = option_homepage_url;
browser_window_go(g->bw, addr, 0, true);
+
+ return TRUE;
}
gboolean nsgtk_window_url_activate_event(GtkWidget *widget, gpointer data)
@@ -355,6 +440,69 @@
browser_window_go(g->bw, gtk_entry_get_text(GTK_ENTRY(g->url_bar)),
referer, true);
+ return TRUE;
+}
+
+
+/* signal handlers for menu entries */
+#define MENUHANDLER(x) gboolean nsgtk_on_##x##_activate(GtkMenuItem *widget, \
+ gpointer g)
+
+MENUHANDLER(new_window)
+{
+ return TRUE;
+}
+
+MENUHANDLER(close_window)
+{
+ return TRUE;
+}
+
+MENUHANDLER(quit)
+{
+ return TRUE;
+}
+
+MENUHANDLER(choices)
+{
+ gtk_widget_show(GTK_WIDGET(wndChoices));
+ gdk_window_raise(GTK_WINDOW(wndChoices));
+
+ return TRUE;
+}
+
+MENUHANDLER(stop)
+{
+ return nsgtk_window_stop_button_clicked(GTK_WIDGET(widget), g);
+}
+
+MENUHANDLER(reload)
+{
+ return nsgtk_window_reload_button_clicked(GTK_WIDGET(widget), g);
+}
+
+MENUHANDLER(back)
+{
+ return nsgtk_window_back_button_clicked(GTK_WIDGET(widget), g);
+}
+
+MENUHANDLER(forward)
+{
+ return nsgtk_window_forward_button_clicked(GTK_WIDGET(widget), g);
+}
+
+MENUHANDLER(home)
+{
+ return nsgtk_window_home_button_clicked(GTK_WIDGET(widget), g);
+}
+
+MENUHANDLER(local_history)
+{
+ return TRUE;
+}
+
+MENUHANDLER(about)
+{
return TRUE;
}
@@ -379,6 +527,7 @@
* widget references from it for later use.
*/
g->xml = glade_xml_new("./gtk/netsurf.glade", "wndBrowser", NULL);
+ glade_xml_signal_autoconnect(g->xml);
g->window = GTK_WINDOW(GET_WIDGET("wndBrowser"));
g->url_bar = GTK_ENTRY(GET_WIDGET("URLBar"));
g->drawing_area = GTK_DRAWING_AREA(GET_WIDGET("drawingArea"));
@@ -476,7 +625,10 @@
CONNECT(GET_WIDGET("toolHome"), "clicked",
nsgtk_window_home_button_clicked, g);
CONNECT(g->url_bar, "activate", nsgtk_window_url_activate_event, g);
-
+
+ /* set up the menu signal handlers */
+ nsgtk_attach_menu_handlers(g->xml, g);
+
/* increase the number of open windows. */
open_windows++;
@@ -496,7 +648,7 @@
char suffix[] = " - NetSurf";
char nt[strlen(title) + strlen(suffix) + 1];
- if (title == NULL || title[0] == NULL)
+ if (title == NULL || title[0] == '\0')
{
gtk_window_set_title(g->window, "NetSurf");
Modified: branches/rjek/glade/gtk/netsurf.glade
URL: http://svn.semichrome.net/branches/rjek/glade/gtk/netsurf.glade?rev=2834&...
==============================================================================
--- branches/rjek/glade/gtk/netsurf.glade (original)
+++ branches/rjek/glade/gtk/netsurf.glade Sun Aug 13 00:09:50 2006
@@ -3279,11 +3279,10 @@
<property name="tooltip" translatable="yes">Opens a new browser window.</property>
<property name="label" translatable="yes">New window</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_new_window_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image214">
+ <widget class="GtkImage" id="image318">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@@ -3303,7 +3302,6 @@
<property name="tooltip" translatable="yes">Open an address into this browser window.</property>
<property name="label" translatable="yes">Open _location</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_open_location_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="L" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
</child>
@@ -3315,11 +3313,10 @@
<property name="tooltip" translatable="yes">Open a file on your computer into this browser window.</property>
<property name="label" translatable="yes">Open _file</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_open_file_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image215">
+ <widget class="GtkImage" id="image319">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@@ -3338,11 +3335,10 @@
<property name="tooltip" translatable="yes">Close this browser window.</property>
<property name="label" translatable="yes">_Close window</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="ns_gtk_on_close_window_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="W" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image216">
+ <widget class="GtkImage" id="image320">
<property name="visible">True</property>
<property name="stock">gtk-close</property>
<property name="icon_size">1</property>
@@ -3368,11 +3364,10 @@
<property name="tooltip" translatable="yes">Save this page to disc, optionally including images, etc.</property>
<property name="label" translatable="yes">Save page...</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_save_page_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image217">
+ <widget class="GtkImage" id="image321">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
@@ -3392,7 +3387,6 @@
<property name="tooltip" translatable="yes">Export the page to a different format.</property>
<property name="label" translatable="yes">Export</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_export_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<child>
<widget class="GtkMenu" id="export_menu">
@@ -3403,7 +3397,6 @@
<property name="tooltip" translatable="yes">Plain ASCII text, readable in text editors and views.</property>
<property name="label" translatable="yes">Plain text</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_export_plain_text_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
</widget>
</child>
@@ -3413,7 +3406,6 @@
<property name="tooltip" translatable="yes">RISC OS Drawfile vector graphic.</property>
<property name="label" translatable="yes">Drawfile</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_export_drawfile_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
</widget>
</child>
@@ -3423,7 +3415,6 @@
<property name="tooltip" translatable="yes">PostScript for printing and converting to PDFs.</property>
<property name="label" translatable="yes">PostScript</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_export_postscript_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
</widget>
</child>
</widget>
@@ -3444,10 +3435,9 @@
<property name="tooltip" translatable="yes">Show how a print out might look like.</property>
<property name="label" translatable="yes">Print preview</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_print_preview_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image218">
+ <widget class="GtkImage" id="image322">
<property name="visible">True</property>
<property name="stock">gtk-print-preview</property>
<property name="icon_size">1</property>
@@ -3467,11 +3457,10 @@
<property name="tooltip" translatable="yes">Produce a hardcopy on your printer.</property>
<property name="label" translatable="yes">Print</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_print_activate" last_modification_time="Sat, 12 Aug 2006 13:19:42 GMT"/>
<accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image219">
+ <widget class="GtkImage" id="image323">
<property name="visible">True</property>
<property name="stock">gtk-print</property>
<property name="icon_size">1</property>
@@ -3491,11 +3480,10 @@
</child>
<child>
- <widget class="GtkImageMenuItem" id="quit1">
+ <widget class="GtkImageMenuItem" id="quit">
<property name="visible">True</property>
<property name="label">gtk-quit</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="on_quit1_activate" last_modification_time="Fri, 11 Aug 2006 14:58:59 GMT"/>
</widget>
</child>
</widget>
@@ -3518,7 +3506,6 @@
<property name="sensitive">False</property>
<property name="label">gtk-cut</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="nsgtk_on_cut_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
</widget>
</child>
@@ -3528,7 +3515,6 @@
<property name="sensitive">False</property>
<property name="label">gtk-copy</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="nsgtk_on_copy_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
</widget>
</child>
@@ -3538,7 +3524,6 @@
<property name="sensitive">False</property>
<property name="label">gtk-paste</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="nsgtk_on_paste_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
</widget>
</child>
@@ -3548,7 +3533,6 @@
<property name="sensitive">False</property>
<property name="label">gtk-delete</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="nsgtk_on_delete_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
</widget>
</child>
@@ -3565,7 +3549,6 @@
<property name="tooltip" translatable="yes">Selects all text in the current browser window.</property>
<property name="label" translatable="yes">Select _all</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_select_all_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
<accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
</child>
@@ -3583,7 +3566,6 @@
<property name="tooltip" translatable="yes">Find specific text in the current browser window.</property>
<property name="label" translatable="yes">_Find...</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_find_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
<accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
</child>
@@ -3600,10 +3582,9 @@
<property name="tooltip" translatable="yes">Change how NetSurf functions.</property>
<property name="label" translatable="yes">_Choices</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_choices_activate" last_modification_time="Sat, 12 Aug 2006 13:32:56 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image220">
+ <widget class="GtkImage" id="image324">
<property name="visible">True</property>
<property name="stock">gtk-preferences</property>
<property name="icon_size">1</property>
@@ -3630,16 +3611,63 @@
<widget class="GtkMenu" id="menuitem6_menu">
<child>
+ <widget class="GtkImageMenuItem" id="stop">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Stop</property>
+ <property name="use_underline">True</property>
+ <accelerator key="Escape" modifiers="0" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image325">
+ <property name="visible">True</property>
+ <property name="stock">gtk-stop</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="reload">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Reload</property>
+ <property name="use_underline">True</property>
+ <accelerator key="F5" modifiers="0" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image326">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separator10">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
<widget class="GtkImageMenuItem" id="scale_view">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Scale the page in the current browser window to be smaller or larger.</property>
<property name="label" translatable="yes">Scale View...</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_scale_view_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
<accelerator key="F11" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image221">
+ <widget class="GtkImage" id="image327">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3658,11 +3686,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Zoom _in</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_nsgtk_zoom_in_activate" last_modification_time="Sat, 12 Aug 2006 15:24:15 GMT"/>
<accelerator key="plus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image222">
+ <widget class="GtkImage" id="image328">
<property name="visible">True</property>
<property name="stock">gtk-zoom-in</property>
<property name="icon_size">1</property>
@@ -3680,11 +3707,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Normal size</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_normal_size_activate" last_modification_time="Sat, 12 Aug 2006 15:24:15 GMT"/>
<accelerator key="0" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image223">
+ <widget class="GtkImage" id="image329">
<property name="visible">True</property>
<property name="stock">gtk-zoom-100</property>
<property name="icon_size">1</property>
@@ -3702,11 +3728,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Zoom _out</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_zoom_out_activate" last_modification_time="Sat, 12 Aug 2006 15:24:15 GMT"/>
<accelerator key="minus" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image224">
+ <widget class="GtkImage" id="image330">
<property name="visible">True</property>
<property name="stock">gtk-zoom-out</property>
<property name="icon_size">1</property>
@@ -3728,7 +3753,6 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Images</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_images_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
<child>
<widget class="GtkMenu" id="images_menu">
@@ -3740,7 +3764,6 @@
<property name="label" translatable="yes">Foreground images</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_foreground_images_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
@@ -3751,7 +3774,6 @@
<property name="label" translatable="yes">Background images</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_background_images_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
</widget>
@@ -3764,7 +3786,6 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Toolbars</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_toolbars_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
<child>
<widget class="GtkMenu" id="toolbars_menu">
@@ -3775,7 +3796,6 @@
<property name="label" translatable="yes">Menu bar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_menu_bar_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
@@ -3785,7 +3805,6 @@
<property name="label" translatable="yes">Buttons</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_buttons_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
@@ -3795,7 +3814,6 @@
<property name="label" translatable="yes">Address bar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_address_bar_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
@@ -3805,7 +3823,6 @@
<property name="label" translatable="yes">Throbber</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_throbber_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
@@ -3815,7 +3832,6 @@
<property name="label" translatable="yes">Status bar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
- <signal name="activate" handler="nsgtk_on_status_bar_activate" last_modification_time="Sat, 12 Aug 2006 13:40:14 GMT"/>
</widget>
</child>
</widget>
@@ -3832,7 +3848,6 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Navigate</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_navigate_activate" last_modification_time="Sat, 12 Aug 2006 13:55:35 GMT"/>
<child>
<widget class="GtkMenu" id="navigate_menu">
@@ -3842,11 +3857,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Back</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_back_activate" last_modification_time="Sat, 12 Aug 2006 13:56:18 GMT"/>
<accelerator key="Left" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image225">
+ <widget class="GtkImage" id="image331">
<property name="visible">True</property>
<property name="stock">gtk-go-back</property>
<property name="icon_size">1</property>
@@ -3864,11 +3878,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Forward</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_forward_activate" last_modification_time="Sat, 12 Aug 2006 13:56:44 GMT"/>
<accelerator key="Right" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image226">
+ <widget class="GtkImage" id="image332">
<property name="visible">True</property>
<property name="stock">gtk-go-forward</property>
<property name="icon_size">1</property>
@@ -3886,11 +3899,10 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Home</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_home_activate" last_modification_time="Sat, 12 Aug 2006 13:57:05 GMT"/>
<accelerator key="Home" modifiers="GDK_MOD1_MASK" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image227">
+ <widget class="GtkImage" id="image333">
<property name="visible">True</property>
<property name="stock">gtk-home</property>
<property name="icon_size">1</property>
@@ -3915,7 +3927,6 @@
<property name="tooltip" translatable="yes">Show the history tree for this browser window.</property>
<property name="label" translatable="yes">_Local history</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_local_history_activate" last_modification_time="Sat, 12 Aug 2006 13:58:43 GMT"/>
<accelerator key="F7" modifiers="0" signal="activate"/>
</widget>
</child>
@@ -3927,7 +3938,6 @@
<property name="tooltip" translatable="yes">Show the history tree for all windows.</property>
<property name="label" translatable="yes">_Global history</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_global_history1_activate" last_modification_time="Sat, 12 Aug 2006 13:58:43 GMT"/>
<accelerator key="F7" modifiers="GDK_CONTROL_MASK" signal="activate"/>
</widget>
</child>
@@ -3945,7 +3955,6 @@
<property name="tooltip" translatable="yes">Add the current page to your bookmarks.</property>
<property name="label" translatable="yes">_Add to bookmarks</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="on_nsgtk_add_to_bookmarks_activate" last_modification_time="Sat, 12 Aug 2006 13:59:56 GMT"/>
</widget>
</child>
@@ -3956,7 +3965,6 @@
<property name="tooltip" translatable="yes">Open a window showing all your bookmarks.</property>
<property name="label" translatable="yes">Show book_marks</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_show_bookmarks_activate" last_modification_time="Sat, 12 Aug 2006 14:01:11 GMT"/>
<accelerator key="F6" modifiers="0" signal="activate"/>
</widget>
</child>
@@ -3970,7 +3978,6 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Help</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_help_activate" last_modification_time="Sat, 12 Aug 2006 14:04:35 GMT"/>
<child>
<widget class="GtkMenu" id="help_menu">
@@ -3982,11 +3989,10 @@
<property name="tooltip" translatable="yes">Shows the contents of the NetSurf manual.</property>
<property name="label" translatable="yes">_Contents...</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_contents_activate" last_modification_time="Sat, 12 Aug 2006 14:04:35 GMT"/>
<accelerator key="F1" modifiers="0" signal="activate"/>
<child internal-child="image">
- <widget class="GtkImage" id="image228">
+ <widget class="GtkImage" id="image334">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
@@ -4006,7 +4012,6 @@
<property name="tooltip" translatable="yes">Shows a guide and tutorial.</property>
<property name="label" translatable="yes">User _guide</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_guide_activate" last_modification_time="Sat, 12 Aug 2006 14:04:35 GMT"/>
</widget>
</child>
@@ -4016,7 +4021,6 @@
<property name="sensitive">False</property>
<property name="label" translatable="yes">User _information</property>
<property name="use_underline">True</property>
- <signal name="activate" handler="nsgtk_on_user_information_activate" last_modification_time="Sat, 12 Aug 2006 14:04:35 GMT"/>
</widget>
</child>
@@ -4031,7 +4035,6 @@
<property name="visible">True</property>
<property name="label">gtk-about</property>
<property name="use_stock">True</property>
- <signal name="activate" handler="nsgtk_on_about_activate" last_modification_time="Sat, 12 Aug 2006 14:04:35 GMT"/>
</widget>
</child>
</widget>
17 years, 3 months