Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/244c49df26ba943dc7cef60413126fbaf52a4428
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/244c49df26ba943dc7cef60413126fbaf52a4428
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/244c49df26ba943dc7cef60413126fbaf52a4428

The branch, master has been updated
       via  244c49df26ba943dc7cef60413126fbaf52a4428 (commit)
      from  d090f016ad753d41077e616db2c17bf1bf1408ec (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=244c49df26ba943dc7cef60413126fbaf52a4428
commit 244c49df26ba943dc7cef60413126fbaf52a4428
Author: Chris Young <ch...@unsatisfactorysoftware.co.uk>
Commit: Chris Young <ch...@unsatisfactorysoftware.co.uk>

    Amiga: Add page info window
    Currently untested but builds OK

diff --git a/frontends/amiga/Makefile b/frontends/amiga/Makefile
index 17af11e..99745c9 100644
--- a/frontends/amiga/Makefile
+++ b/frontends/amiga/Makefile
@@ -53,7 +53,7 @@ S_FRONTEND := gui.c history.c hotlist.c schedule.c file.c     
\
        stringview/stringview.c stringview/urlhistory.c rtg.c           \
        agclass/amigaguide_class.c os3support.c font_diskfont.c         \
        selectmenu.c hash/xxhash.c font_cache.c font_bullet.c           \
-       nsoption.c corewindow.c gui_menu.c
+       nsoption.c corewindow.c gui_menu.c pageinfo.c
 
 # This is the final source build list
 # Note this is deliberately *not* expanded here as common and image
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index bb7478c..1dde687 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2019 Chris Young <ch...@unsatisfactorysoftware.co.uk>
+ * Copyright 2008-2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
  *
  * This file is part of NetSurf, http://www.netsurf-browser.org/
  *
@@ -152,6 +152,7 @@
 #include "amiga/menu.h"
 #include "amiga/misc.h"
 #include "amiga/nsoption.h"
+#include "amiga/pageinfo.h"
 #include "amiga/plotters.h"
 #include "amiga/plugin_hack.h"
 #include "amiga/print.h"
@@ -2998,6 +2999,12 @@ static BOOL ami_gui_event(void *w)
                                                ami_gui_history(gwin, false);
                                        break;
 
+                                       case GID_PAGEINFO:
+                                               
if(ami_pageinfo_open(gwin->gw->bw) != NSERROR_OK) {
+                                                       NSLOG(netsurf, INFO, 
"Unable to open page info window");
+                                               }
+                                       break;
+
                                        case GID_FAVE:
                                                GetAttr(STRINGA_TextVal,
                                                        (Object 
*)gwin->objects[GID_URL],
@@ -5019,7 +5026,7 @@ gui_window_create(struct browser_window *bw,
                                                LAYOUT_AddChild, 
g->shared->objects[GID_PAGEINFO] = ButtonObj,
                                                        GA_ID, GID_PAGEINFO,
                                                        GA_RelVerify, TRUE,
-                                                       GA_ReadOnly, TRUE,
+                                                       GA_ReadOnly, FALSE,
                                                        BUTTON_RenderImage, 
g->shared->objects[GID_PAGEINFO_INTERNAL_BM],
                                                ButtonEnd,
                                                CHILD_WeightedWidth, 0,
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
new file mode 100644
index 0000000..9a2b049
--- /dev/null
+++ b/frontends/amiga/pageinfo.c
@@ -0,0 +1,282 @@
+/*
+ * Copyright 2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * Amiga implementation of page info using core windows.
+ */
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <proto/intuition.h>
+
+#include <classes/window.h>
+#include <gadgets/layout.h>
+#include <gadgets/scroller.h>
+#include <gadgets/space.h>
+#include <images/label.h>
+
+#include <intuition/icclass.h>
+#include <reaction/reaction_macros.h>
+
+#include "utils/log.h"
+#include "netsurf/keypress.h"
+#include "netsurf/plotters.h"
+#include "desktop/page-info.h"
+#include "utils/messages.h"
+#include "utils/nsoption.h"
+
+#include "amiga/corewindow.h"
+#include "amiga/libs.h"
+#include "amiga/pageinfo.h"
+#include "amiga/schedule.h"
+#include "amiga/utf8.h"
+
+
+/**
+ * Amiga page info window context
+ */
+struct ami_pageinfo_window {
+       /** Amiga core window context */
+       struct ami_corewindow core;
+       /** core pageinfo */
+       struct page_info *pi;
+};
+
+/**
+ * destroy a previously created pageinfo window
+ */
+static void
+ami_pageinfo_destroy(struct ami_corewindow *ami_cw)
+{
+       nserror res;
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+       res = page_info_destroy(pageinfo_win->pi);
+       if (res == NSERROR_OK) {
+               ami_corewindow_fini(&pageinfo_win->core); /* closes the window 
for us */
+       }
+}
+
+/**
+ * close pageinfo window (callback)
+ */
+static void
+ami_pageinfo_close_cb(void *p)
+{
+       ami_pageinfo_destroy((struct ami_corewindow *)p);
+}
+
+/**
+ * callback for unknown events on Amiga core window
+ * (result & WMHI_CLASSMASK) gives the class of event (eg. WMHI_GADGETUP)
+ * (result & WMHI_GADGETMASK) gives the gadget ID (eg. GID_SSLCERT_ACCEPT)
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param result event as returned by RA_HandleInput()
+ * \return TRUE if window closed during event processing
+ */
+static BOOL
+ami_pageinfo_event(struct ami_corewindow *ami_cw, ULONG result)
+{
+       /* we don't have any events on this window yet */
+       return FALSE;
+}
+
+/**
+ * callback for mouse action for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param mouse_state netsurf mouse state on event
+ * \param x location of event
+ * \param y location of event
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_mouse(struct ami_corewindow *ami_cw,
+                                       browser_mouse_state mouse_state,
+                                       int x, int y)
+{
+       bool did_something = false;
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       if(page_info_mouse_action(pageinfo_win->pi, mouse_state, x, y, 
&did_something) == NSERROR_OK)
+               if (did_something == true) {
+                       /* Something happened so we need to close ourselves */
+                       ami_schedule(0, ami_pageinfo_close_cb, pageinfo_win);
+               }
+               
+       return NSERROR_OK;
+}
+
+/**
+ * callback for keypress for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param nskey The netsurf key code
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_key(struct ami_corewindow *ami_cw, uint32_t nskey)
+{
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       if (page_info_keypress(pageinfo_win->pi, nskey)) {
+                       return NSERROR_OK;
+       }
+       return NSERROR_NOT_IMPLEMENTED;
+}
+
+/**
+ * callback on draw event for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param x the x coordinate to draw
+ * \param y the y coordinate to draw
+ * \param r The rectangle of the window that needs updating.
+ * \param ctx The drawing context
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_draw(struct ami_corewindow *ami_cw, int x, int y, struct rect *r, 
struct redraw_context *ctx)
+{
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       page_info_redraw(pageinfo_win->pi, x, y, r, ctx);
+
+       return NSERROR_OK;
+}
+
+static nserror
+ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
+{
+       struct ami_corewindow *ami_cw = (struct ami_corewindow 
*)&pageinfo_win->core;
+       ULONG refresh_mode = WA_SmartRefresh;
+       struct Screen *scrn = ami_gui_get_screen();
+
+       if(nsoption_bool(window_simple_refresh) == true) {
+               refresh_mode = WA_SimpleRefresh;
+       }
+
+       ami_cw->objects[GID_CW_WIN] = WindowObj,
+           WA_ScreenTitle, ami_gui_get_screen_title(),
+               WA_Title, ami_cw->wintitle,
+               WA_Activate, TRUE,
+               WA_DepthGadget, TRUE,
+               WA_DragBar, TRUE,
+               WA_CloseGadget, FALSE,
+               WA_SizeGadget, TRUE,
+               WA_SizeBBottom, TRUE,
+               WA_Height, scrn->Height / 2,
+               WA_PubScreen, scrn,
+               WA_ReportMouse, TRUE,
+               refresh_mode, TRUE,
+               WA_IDCMP, IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
+                               IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
+                               IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY | 
IDCMP_REFRESHWINDOW,
+               WINDOW_IDCMPHook, &ami_cw->idcmp_hook,
+               WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
+                               IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW,
+               WINDOW_SharedPort, ami_gui_get_shared_msgport(),
+               WINDOW_UserData, pageinfo_win,
+               WINDOW_IconifyGadget, FALSE,
+               WINDOW_Position, WPOS_CENTERSCREEN,
+               WINDOW_ParentGroup, ami_cw->objects[GID_CW_MAIN] = LayoutVObj,
+                       LAYOUT_AddChild, ami_cw->objects[GID_CW_HSCROLLLAYOUT] 
= LayoutVObj,
+                               LAYOUT_AddChild, 
ami_cw->objects[GID_CW_VSCROLLLAYOUT] = LayoutHObj,
+                                       LAYOUT_AddChild, 
ami_cw->objects[GID_CW_DRAW] = SpaceObj,
+                                               GA_ID, GID_CW_DRAW,
+                                               SPACE_Transparent, TRUE,
+                                               SPACE_BevelStyle, BVS_DISPLAY,
+                                               GA_RelVerify, TRUE,
+                                       SpaceEnd,
+                                       LAYOUT_AddChild, 
ami_cw->objects[GID_CW_VSCROLL] = ScrollerObj,
+                                               GA_ID, GID_CW_VSCROLL,
+                                               GA_RelVerify, TRUE,
+                                               ICA_TARGET, ICTARGET_IDCMP,
+                                       ScrollerEnd,
+                               LayoutEnd,
+                               LAYOUT_AddChild, 
ami_cw->objects[GID_CW_HSCROLL] = ScrollerObj,
+                                       GA_ID, GID_CW_HSCROLL,
+                                       GA_RelVerify, TRUE,
+                                       ICA_TARGET, ICTARGET_IDCMP,
+                                       SCROLLER_Orientation, SORIENT_HORIZ,
+                               ScrollerEnd,
+                       LayoutEnd,
+                       CHILD_WeightedHeight, 0,
+               EndGroup,
+       EndWindow;
+
+       if(ami_cw->objects[GID_CW_WIN] == NULL) {
+               return NSERROR_NOMEM;
+       }
+
+       return NSERROR_OK;
+}
+
+/* exported interface documented in amiga/pageinfo.h */
+nserror ami_pageinfo_open(struct browser_window *bw)
+{
+       struct ami_pageinfo_window *ncwin;
+       nserror res;
+
+       ncwin = calloc(1, sizeof(struct ami_pageinfo_window));
+       if (ncwin == NULL) {
+               return NSERROR_NOMEM;
+       }
+
+       ncwin->core.wintitle = ami_utf8_easy((char *)messages_get("PageInfo"));
+
+       res = ami_pageinfo_create_window(ncwin);
+       if (res != NSERROR_OK) {
+               NSLOG(netsurf, INFO, "Page info init failed");
+               ami_utf8_free(ncwin->core.wintitle);
+               free(ncwin);
+               return res;
+       }
+
+       /* initialise Amiga core window */
+       ncwin->core.draw = ami_pageinfo_draw;
+       ncwin->core.key = ami_pageinfo_key;
+       ncwin->core.mouse = ami_pageinfo_mouse;
+       ncwin->core.close = ami_pageinfo_destroy;
+       ncwin->core.event = ami_pageinfo_event;
+
+       res = ami_corewindow_init(&ncwin->core);
+       if (res != NSERROR_OK) {
+               ami_utf8_free(ncwin->core.wintitle);
+               DisposeObject(ncwin->core.objects[GID_CW_WIN]);
+               free(ncwin);
+               return res;
+       }
+
+       res = page_info_create(ncwin->core.cb_table,
+                                         (struct core_window *)ncwin,
+                                         bw,
+                                         &ncwin->pi);
+
+       if (res != NSERROR_OK) {
+               ami_utf8_free(ncwin->core.wintitle);
+               DisposeObject(ncwin->core.objects[GID_CW_WIN]);
+               free(ncwin);
+               return res;
+       }
+
+       return NSERROR_OK;
+}
+
diff --git a/frontends/amiga/pageinfo.h b/frontends/amiga/pageinfo.h
new file mode 100644
index 0000000..7737b25
--- /dev/null
+++ b/frontends/amiga/pageinfo.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef AMIGA_PAGEINFO_H
+#define AMIGA_PAGEINFO_H
+
+/**
+ * Open the page info window
+ *
+ * \param bw the browser window 
+ * \return NSERROR_OK or error code if window creation failed.
+ */
+nserror ami_pageinfo_open(struct browser_window *bw);
+
+#endif
+
diff --git a/resources/FatMessages b/resources/FatMessages
index cbbead2..a6e21b8 100644
--- a/resources/FatMessages
+++ b/resources/FatMessages
@@ -1888,7 +1888,7 @@ it.beos.ViewSrcAccel:U
 #
 en.ro.Draw:Draw  ?^F3
 fr.ro.Draw:Dessiner  ?^F3
-it.ro.Draw:Draw  ?^F3
+it.ro.Draw:Draw  ?^F3
 nl.ro.Draw:Draw-bestand  ?^F3
 
 en.all.PDF:PDF
@@ -1991,21 +1991,21 @@ fr.all.Back:Retour
 it.all.Back:Indietro
 nl.all.Back:Vorige pagina
 en.beos.BackAccel:?
-it.beos.BackAccel:?
+it.beos.BackAccel:?
 en.all.Forward:Forward one page
 de.all.Forward:Eine Seite vor
 fr.all.Forward:Avancer
 it.all.Forward:Avanti
 nl.all.Forward:Volgende pagina
 en.beos.ForwardAccel:?
-it.beos.ForwardAccel:?
+it.beos.ForwardAccel:?
 en.all.UpLevel:Up one level
 de.all.UpLevel:Eine Ebene hoch
 fr.all.UpLevel:Remonter d'un niveau
 it.all.UpLevel:Livello superiore
 nl.all.UpLevel:Niveau omhoog
 en.beos.UpLevelAccel:?
-it.beos.UpLevelAccel:?
+it.beos.UpLevelAccel:?
 en.ro.Reload:Reload this page  ^F5
 de.ro.Reload:Seite erneut laden  ^F5
 fr.ro.Reload:Recharger cette page  ^F5
@@ -2749,17 +2749,17 @@ nl.all.ExternalApp:Open in ander programma
 en.all.Download:%s of %s  ?  %s/s  ?  %s remaining
 de.all.Download:%s von %s ? %s/s ? noch %s
 fr.all.Download:%s de %s  ?  %s/s  ?  %s restants
-it.all.Download:%s di %s  ?  %s/s  ?  %s al termine
+it.all.Download:%s di %s  ?  %s/s  ?  %s al termine
 nl.all.Download:%s van %s  ?  %s/s  ?  nog %s
 en.all.DownloadU:%s of unknown  ?  %s/s  ?  %s total
 de.all.DownloadU:%s von unbekannt ? %s/s ? bisher %s
 fr.all.DownloadU:%s sur inconnu  ?  %s/s  ?  %s total
-it.all.DownloadU:%s sconosciuto  ?  %s/s  ?  %s totale
+it.all.DownloadU:%s sconosciuto  ?  %s/s  ?  %s totale
 nl.all.DownloadU:%s van onbekend  ?  %s/s  ?  %s totaal
 en.all.Downloaded:%s complete  ?  average %s/s  ?  %s total
 de.all.Downloaded:%s komplett ? etwa %s/s ? gesamt %s
 fr.all.Downloaded:%s effectu?s  ?  moyenne %s/s  ?  %s total
-it.all.Downloaded:%s completato  ?  average %s/s  ?  %s totale
+it.all.Downloaded:%s completato  ?  average %s/s  ?  %s totale
 nl.all.Downloaded:%s compleet ? gemiddeld %s/s ? %s totaal
 en.all.Unwritten:Writing data to file failed.
 de.all.Unwritten:Schreiben der Datei ist fehlgeschlagen.
@@ -5829,7 +5829,7 @@ nl.ro.HelpLanguageConfig:Diverse taalinstellingen kunnen 
in dit venster gewijzig
 en.ro.HelpLanguageConfig3:\Tcurrently selected interface language.|MThe 
interface language is the language used for NetSurf's messages and dialogue 
boxes.
 de.ro.HelpLanguageConfig3:Das ist die aktuell eingestellte Sprache f?r die 
Bedienoberfl?che.|MDiese Sprache wird genutzt, um NetSurf's Meldungen, Texte 
der Dialogboxen, Men?s darzustellen.
 fr.ro.HelpLanguageConfig3:\Tla langue d'interface s?lectionn?e 
actuellement.|MLa langue d'interface est la langue utilis?e pour les messages 
et les bo?tes de dialogue de Netsurf.
-it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente 
selezionata.|MLa lingua dell'interfaccia ? la lingua utilizzata per i messaggi 
e le finestre di dialogo di NetSurf.
+it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente 
selezionata.|MLa lingua dell'interfaccia ? la lingua utilizzata per i messaggi 
e le finestre di dialogo di NetSurf.
 nl.ro.HelpLanguageConfig3:Dit is momenteel de geselecteerde 
gebruikersinterfacetaal.|MDe interfacetaal is de taal voor de melding- en 
dialoogvensters.
 en.ro.HelpLanguageConfig4:\Sselect an interface language.
 de.ro.HelpLanguageConfig4:Klicken mit AUSWAHL zum Ausw?hlen einer 
Oberfl?chensprache.
@@ -5870,7 +5870,7 @@ nl.ro.HelpSecurityConfig:De privacy- en 
veiligheidsinstellingen kunnen in dit ve
 en.ro.HelpSecurityConfig2:This indicates whether NetSurf will send site 
referral information to web servers.|MWhen this is enabled NetSurf will tell 
the web server of a new page the address of the site you came from, after 
following a link.
 de.ro.HelpSecurityConfig2:NetSurf sendet Seitenreferenzinformationen an 
Webserver.|MIst diese Option gew?hlt, schickt NetSurf an den Server einer neuen 
Webseite die Adresse der Seite von der aus die aktuelle ?ber einen Link 
aufgerufen wurde.
 fr.ro.HelpSecurityConfig2:Ceci indique si Netsurf doit envoyer l'information 
de renvoi de site aux serveurs web.|MLorsque ceci est activ? Netsurf signalera 
au serveur web d'une nouvelle page l'adresse du site d'o? vous venez, apr?s 
avoir suivi un lien.
-it.ro.HelpSecurityConfig2:Indica se NetSurf invier?  le informazioni di 
riferimento del sito ai server Web.|MQuando questo ? abilitato, NetSurf 
comunicher?  al server Web di una nuova pagina l'indirizzo del sito dal quale 
proveniva, dopo aver seguito un link.
+it.ro.HelpSecurityConfig2:Indica se NetSurf invier?  le informazioni di 
riferimento del sito ai server Web.|MQuando questo ? abilitato, NetSurf 
comunicher?  al server Web di una nuova pagina l'indirizzo del sito dal quale 
proveniva, dopo aver seguito un link.
 nl.ro.HelpSecurityConfig2:Deze optie geeft aan of site-gerelateerde informatie 
naar webservers wordt meegezonden.|MIndien toegestaan, ontvangt de webserver 
informatie over de vorige pagina waar, via een koppeling, vandaan is gekomen.
 en.ro.HelpSecurityConfig6:You can enter the length of time that items are 
stored in global history here.
 de.ro.HelpSecurityConfig6:Hier kann die Zeitdauer in Tagen angegeben werden, 
bis zu deren Ablauf Objekte in der globalen History gespeichert bleiben.
@@ -5973,6 +5973,7 @@ de.ami.HelpToolbarAddTab:Tab hinzuf?gen.
 fr.ami.HelpToolbarAddTab:Add tab\nLMB: Adds a new blank tab
 it.ami.HelpToolbarAddTab:Apri una nuova scheda
 nl.ami.HelpToolbarAddTab:Tabblad toevoegen\nLMB: Een nieuwe leeg tabblad wordt 
geopend
+en.ami.PageInfo:Page info
 en.ami.PageInfoInsecure:Insecure
 it.ami.PageInfoInsecure:Non sicuro
 en.ami.PageInfoLocal:Local


-----------------------------------------------------------------------

Summary of changes:
 frontends/amiga/Makefile                           |    2 +-
 frontends/amiga/gui.c                              |   11 +-
 frontends/amiga/pageinfo.c                         |  282 ++++++++++++++++++++
 .../image/webp.h => frontends/amiga/pageinfo.h     |   18 +-
 resources/FatMessages                              |   19 +-
 5 files changed, 312 insertions(+), 20 deletions(-)
 create mode 100644 frontends/amiga/pageinfo.c
 copy content/handlers/image/webp.h => frontends/amiga/pageinfo.h (69%)

diff --git a/frontends/amiga/Makefile b/frontends/amiga/Makefile
index 17af11e..99745c9 100644
--- a/frontends/amiga/Makefile
+++ b/frontends/amiga/Makefile
@@ -53,7 +53,7 @@ S_FRONTEND := gui.c history.c hotlist.c schedule.c file.c     
\
        stringview/stringview.c stringview/urlhistory.c rtg.c           \
        agclass/amigaguide_class.c os3support.c font_diskfont.c         \
        selectmenu.c hash/xxhash.c font_cache.c font_bullet.c           \
-       nsoption.c corewindow.c gui_menu.c
+       nsoption.c corewindow.c gui_menu.c pageinfo.c
 
 # This is the final source build list
 # Note this is deliberately *not* expanded here as common and image
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index bb7478c..1dde687 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008-2019 Chris Young <ch...@unsatisfactorysoftware.co.uk>
+ * Copyright 2008-2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
  *
  * This file is part of NetSurf, http://www.netsurf-browser.org/
  *
@@ -152,6 +152,7 @@
 #include "amiga/menu.h"
 #include "amiga/misc.h"
 #include "amiga/nsoption.h"
+#include "amiga/pageinfo.h"
 #include "amiga/plotters.h"
 #include "amiga/plugin_hack.h"
 #include "amiga/print.h"
@@ -2998,6 +2999,12 @@ static BOOL ami_gui_event(void *w)
                                                ami_gui_history(gwin, false);
                                        break;
 
+                                       case GID_PAGEINFO:
+                                               
if(ami_pageinfo_open(gwin->gw->bw) != NSERROR_OK) {
+                                                       NSLOG(netsurf, INFO, 
"Unable to open page info window");
+                                               }
+                                       break;
+
                                        case GID_FAVE:
                                                GetAttr(STRINGA_TextVal,
                                                        (Object 
*)gwin->objects[GID_URL],
@@ -5019,7 +5026,7 @@ gui_window_create(struct browser_window *bw,
                                                LAYOUT_AddChild, 
g->shared->objects[GID_PAGEINFO] = ButtonObj,
                                                        GA_ID, GID_PAGEINFO,
                                                        GA_RelVerify, TRUE,
-                                                       GA_ReadOnly, TRUE,
+                                                       GA_ReadOnly, FALSE,
                                                        BUTTON_RenderImage, 
g->shared->objects[GID_PAGEINFO_INTERNAL_BM],
                                                ButtonEnd,
                                                CHILD_WeightedWidth, 0,
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
new file mode 100644
index 0000000..9a2b049
--- /dev/null
+++ b/frontends/amiga/pageinfo.c
@@ -0,0 +1,282 @@
+/*
+ * Copyright 2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * Amiga implementation of page info using core windows.
+ */
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <proto/intuition.h>
+
+#include <classes/window.h>
+#include <gadgets/layout.h>
+#include <gadgets/scroller.h>
+#include <gadgets/space.h>
+#include <images/label.h>
+
+#include <intuition/icclass.h>
+#include <reaction/reaction_macros.h>
+
+#include "utils/log.h"
+#include "netsurf/keypress.h"
+#include "netsurf/plotters.h"
+#include "desktop/page-info.h"
+#include "utils/messages.h"
+#include "utils/nsoption.h"
+
+#include "amiga/corewindow.h"
+#include "amiga/libs.h"
+#include "amiga/pageinfo.h"
+#include "amiga/schedule.h"
+#include "amiga/utf8.h"
+
+
+/**
+ * Amiga page info window context
+ */
+struct ami_pageinfo_window {
+       /** Amiga core window context */
+       struct ami_corewindow core;
+       /** core pageinfo */
+       struct page_info *pi;
+};
+
+/**
+ * destroy a previously created pageinfo window
+ */
+static void
+ami_pageinfo_destroy(struct ami_corewindow *ami_cw)
+{
+       nserror res;
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+       res = page_info_destroy(pageinfo_win->pi);
+       if (res == NSERROR_OK) {
+               ami_corewindow_fini(&pageinfo_win->core); /* closes the window 
for us */
+       }
+}
+
+/**
+ * close pageinfo window (callback)
+ */
+static void
+ami_pageinfo_close_cb(void *p)
+{
+       ami_pageinfo_destroy((struct ami_corewindow *)p);
+}
+
+/**
+ * callback for unknown events on Amiga core window
+ * (result & WMHI_CLASSMASK) gives the class of event (eg. WMHI_GADGETUP)
+ * (result & WMHI_GADGETMASK) gives the gadget ID (eg. GID_SSLCERT_ACCEPT)
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param result event as returned by RA_HandleInput()
+ * \return TRUE if window closed during event processing
+ */
+static BOOL
+ami_pageinfo_event(struct ami_corewindow *ami_cw, ULONG result)
+{
+       /* we don't have any events on this window yet */
+       return FALSE;
+}
+
+/**
+ * callback for mouse action for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param mouse_state netsurf mouse state on event
+ * \param x location of event
+ * \param y location of event
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_mouse(struct ami_corewindow *ami_cw,
+                                       browser_mouse_state mouse_state,
+                                       int x, int y)
+{
+       bool did_something = false;
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       if(page_info_mouse_action(pageinfo_win->pi, mouse_state, x, y, 
&did_something) == NSERROR_OK)
+               if (did_something == true) {
+                       /* Something happened so we need to close ourselves */
+                       ami_schedule(0, ami_pageinfo_close_cb, pageinfo_win);
+               }
+               
+       return NSERROR_OK;
+}
+
+/**
+ * callback for keypress for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param nskey The netsurf key code
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_key(struct ami_corewindow *ami_cw, uint32_t nskey)
+{
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       if (page_info_keypress(pageinfo_win->pi, nskey)) {
+                       return NSERROR_OK;
+       }
+       return NSERROR_NOT_IMPLEMENTED;
+}
+
+/**
+ * callback on draw event for pageinfo on core window
+ *
+ * \param ami_cw The Amiga core window structure.
+ * \param x the x coordinate to draw
+ * \param y the y coordinate to draw
+ * \param r The rectangle of the window that needs updating.
+ * \param ctx The drawing context
+ * \return NSERROR_OK on success otherwise apropriate error code
+ */
+static nserror
+ami_pageinfo_draw(struct ami_corewindow *ami_cw, int x, int y, struct rect *r, 
struct redraw_context *ctx)
+{
+       struct ami_pageinfo_window *pageinfo_win = (struct ami_pageinfo_window 
*)ami_cw;
+
+       page_info_redraw(pageinfo_win->pi, x, y, r, ctx);
+
+       return NSERROR_OK;
+}
+
+static nserror
+ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
+{
+       struct ami_corewindow *ami_cw = (struct ami_corewindow 
*)&pageinfo_win->core;
+       ULONG refresh_mode = WA_SmartRefresh;
+       struct Screen *scrn = ami_gui_get_screen();
+
+       if(nsoption_bool(window_simple_refresh) == true) {
+               refresh_mode = WA_SimpleRefresh;
+       }
+
+       ami_cw->objects[GID_CW_WIN] = WindowObj,
+           WA_ScreenTitle, ami_gui_get_screen_title(),
+               WA_Title, ami_cw->wintitle,
+               WA_Activate, TRUE,
+               WA_DepthGadget, TRUE,
+               WA_DragBar, TRUE,
+               WA_CloseGadget, FALSE,
+               WA_SizeGadget, TRUE,
+               WA_SizeBBottom, TRUE,
+               WA_Height, scrn->Height / 2,
+               WA_PubScreen, scrn,
+               WA_ReportMouse, TRUE,
+               refresh_mode, TRUE,
+               WA_IDCMP, IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
+                               IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
+                               IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY | 
IDCMP_REFRESHWINDOW,
+               WINDOW_IDCMPHook, &ami_cw->idcmp_hook,
+               WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
+                               IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW,
+               WINDOW_SharedPort, ami_gui_get_shared_msgport(),
+               WINDOW_UserData, pageinfo_win,
+               WINDOW_IconifyGadget, FALSE,
+               WINDOW_Position, WPOS_CENTERSCREEN,
+               WINDOW_ParentGroup, ami_cw->objects[GID_CW_MAIN] = LayoutVObj,
+                       LAYOUT_AddChild, ami_cw->objects[GID_CW_HSCROLLLAYOUT] 
= LayoutVObj,
+                               LAYOUT_AddChild, 
ami_cw->objects[GID_CW_VSCROLLLAYOUT] = LayoutHObj,
+                                       LAYOUT_AddChild, 
ami_cw->objects[GID_CW_DRAW] = SpaceObj,
+                                               GA_ID, GID_CW_DRAW,
+                                               SPACE_Transparent, TRUE,
+                                               SPACE_BevelStyle, BVS_DISPLAY,
+                                               GA_RelVerify, TRUE,
+                                       SpaceEnd,
+                                       LAYOUT_AddChild, 
ami_cw->objects[GID_CW_VSCROLL] = ScrollerObj,
+                                               GA_ID, GID_CW_VSCROLL,
+                                               GA_RelVerify, TRUE,
+                                               ICA_TARGET, ICTARGET_IDCMP,
+                                       ScrollerEnd,
+                               LayoutEnd,
+                               LAYOUT_AddChild, 
ami_cw->objects[GID_CW_HSCROLL] = ScrollerObj,
+                                       GA_ID, GID_CW_HSCROLL,
+                                       GA_RelVerify, TRUE,
+                                       ICA_TARGET, ICTARGET_IDCMP,
+                                       SCROLLER_Orientation, SORIENT_HORIZ,
+                               ScrollerEnd,
+                       LayoutEnd,
+                       CHILD_WeightedHeight, 0,
+               EndGroup,
+       EndWindow;
+
+       if(ami_cw->objects[GID_CW_WIN] == NULL) {
+               return NSERROR_NOMEM;
+       }
+
+       return NSERROR_OK;
+}
+
+/* exported interface documented in amiga/pageinfo.h */
+nserror ami_pageinfo_open(struct browser_window *bw)
+{
+       struct ami_pageinfo_window *ncwin;
+       nserror res;
+
+       ncwin = calloc(1, sizeof(struct ami_pageinfo_window));
+       if (ncwin == NULL) {
+               return NSERROR_NOMEM;
+       }
+
+       ncwin->core.wintitle = ami_utf8_easy((char *)messages_get("PageInfo"));
+
+       res = ami_pageinfo_create_window(ncwin);
+       if (res != NSERROR_OK) {
+               NSLOG(netsurf, INFO, "Page info init failed");
+               ami_utf8_free(ncwin->core.wintitle);
+               free(ncwin);
+               return res;
+       }
+
+       /* initialise Amiga core window */
+       ncwin->core.draw = ami_pageinfo_draw;
+       ncwin->core.key = ami_pageinfo_key;
+       ncwin->core.mouse = ami_pageinfo_mouse;
+       ncwin->core.close = ami_pageinfo_destroy;
+       ncwin->core.event = ami_pageinfo_event;
+
+       res = ami_corewindow_init(&ncwin->core);
+       if (res != NSERROR_OK) {
+               ami_utf8_free(ncwin->core.wintitle);
+               DisposeObject(ncwin->core.objects[GID_CW_WIN]);
+               free(ncwin);
+               return res;
+       }
+
+       res = page_info_create(ncwin->core.cb_table,
+                                         (struct core_window *)ncwin,
+                                         bw,
+                                         &ncwin->pi);
+
+       if (res != NSERROR_OK) {
+               ami_utf8_free(ncwin->core.wintitle);
+               DisposeObject(ncwin->core.objects[GID_CW_WIN]);
+               free(ncwin);
+               return res;
+       }
+
+       return NSERROR_OK;
+}
+
diff --git a/content/handlers/image/webp.h b/frontends/amiga/pageinfo.h
similarity index 69%
copy from content/handlers/image/webp.h
copy to frontends/amiga/pageinfo.h
index b219f25..7737b25 100644
--- a/content/handlers/image/webp.h
+++ b/frontends/amiga/pageinfo.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 Vincent Sanders <vi...@netsurf-browser.org>
+ * Copyright 2020 Chris Young <ch...@unsatisfactorysoftware.co.uk>
  *
  * This file is part of NetSurf, http://www.netsurf-browser.org/
  *
@@ -16,14 +16,16 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#ifndef AMIGA_PAGEINFO_H
+#define AMIGA_PAGEINFO_H
+
 /**
- * \file
- * Interface to image/webp content handlers
+ * Open the page info window
+ *
+ * \param bw the browser window 
+ * \return NSERROR_OK or error code if window creation failed.
  */
-
-#ifndef _NETSURF_IMAGE_WEBP_H_
-#define _NETSURF_IMAGE_WEBP_H_
-
-nserror nswebp_init(void);
+nserror ami_pageinfo_open(struct browser_window *bw);
 
 #endif
+
diff --git a/resources/FatMessages b/resources/FatMessages
index cbbead2..a6e21b8 100644
--- a/resources/FatMessages
+++ b/resources/FatMessages
@@ -1888,7 +1888,7 @@ it.beos.ViewSrcAccel:U
 #
 en.ro.Draw:Draw  ?^F3
 fr.ro.Draw:Dessiner  ?^F3
-it.ro.Draw:Draw  ?^F3
+it.ro.Draw:Draw  ?^F3
 nl.ro.Draw:Draw-bestand  ?^F3
 
 en.all.PDF:PDF
@@ -1991,21 +1991,21 @@ fr.all.Back:Retour
 it.all.Back:Indietro
 nl.all.Back:Vorige pagina
 en.beos.BackAccel:?
-it.beos.BackAccel:?
+it.beos.BackAccel:?
 en.all.Forward:Forward one page
 de.all.Forward:Eine Seite vor
 fr.all.Forward:Avancer
 it.all.Forward:Avanti
 nl.all.Forward:Volgende pagina
 en.beos.ForwardAccel:?
-it.beos.ForwardAccel:?
+it.beos.ForwardAccel:?
 en.all.UpLevel:Up one level
 de.all.UpLevel:Eine Ebene hoch
 fr.all.UpLevel:Remonter d'un niveau
 it.all.UpLevel:Livello superiore
 nl.all.UpLevel:Niveau omhoog
 en.beos.UpLevelAccel:?
-it.beos.UpLevelAccel:?
+it.beos.UpLevelAccel:?
 en.ro.Reload:Reload this page  ^F5
 de.ro.Reload:Seite erneut laden  ^F5
 fr.ro.Reload:Recharger cette page  ^F5
@@ -2749,17 +2749,17 @@ nl.all.ExternalApp:Open in ander programma
 en.all.Download:%s of %s  ?  %s/s  ?  %s remaining
 de.all.Download:%s von %s ? %s/s ? noch %s
 fr.all.Download:%s de %s  ?  %s/s  ?  %s restants
-it.all.Download:%s di %s  ?  %s/s  ?  %s al termine
+it.all.Download:%s di %s  ?  %s/s  ?  %s al termine
 nl.all.Download:%s van %s  ?  %s/s  ?  nog %s
 en.all.DownloadU:%s of unknown  ?  %s/s  ?  %s total
 de.all.DownloadU:%s von unbekannt ? %s/s ? bisher %s
 fr.all.DownloadU:%s sur inconnu  ?  %s/s  ?  %s total
-it.all.DownloadU:%s sconosciuto  ?  %s/s  ?  %s totale
+it.all.DownloadU:%s sconosciuto  ?  %s/s  ?  %s totale
 nl.all.DownloadU:%s van onbekend  ?  %s/s  ?  %s totaal
 en.all.Downloaded:%s complete  ?  average %s/s  ?  %s total
 de.all.Downloaded:%s komplett ? etwa %s/s ? gesamt %s
 fr.all.Downloaded:%s effectu?s  ?  moyenne %s/s  ?  %s total
-it.all.Downloaded:%s completato  ?  average %s/s  ?  %s totale
+it.all.Downloaded:%s completato  ?  average %s/s  ?  %s totale
 nl.all.Downloaded:%s compleet ? gemiddeld %s/s ? %s totaal
 en.all.Unwritten:Writing data to file failed.
 de.all.Unwritten:Schreiben der Datei ist fehlgeschlagen.
@@ -5829,7 +5829,7 @@ nl.ro.HelpLanguageConfig:Diverse taalinstellingen kunnen 
in dit venster gewijzig
 en.ro.HelpLanguageConfig3:\Tcurrently selected interface language.|MThe 
interface language is the language used for NetSurf's messages and dialogue 
boxes.
 de.ro.HelpLanguageConfig3:Das ist die aktuell eingestellte Sprache f?r die 
Bedienoberfl?che.|MDiese Sprache wird genutzt, um NetSurf's Meldungen, Texte 
der Dialogboxen, Men?s darzustellen.
 fr.ro.HelpLanguageConfig3:\Tla langue d'interface s?lectionn?e 
actuellement.|MLa langue d'interface est la langue utilis?e pour les messages 
et les bo?tes de dialogue de Netsurf.
-it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente 
selezionata.|MLa lingua dell'interfaccia ? la lingua utilizzata per i messaggi 
e le finestre di dialogo di NetSurf.
+it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente 
selezionata.|MLa lingua dell'interfaccia ? la lingua utilizzata per i messaggi 
e le finestre di dialogo di NetSurf.
 nl.ro.HelpLanguageConfig3:Dit is momenteel de geselecteerde 
gebruikersinterfacetaal.|MDe interfacetaal is de taal voor de melding- en 
dialoogvensters.
 en.ro.HelpLanguageConfig4:\Sselect an interface language.
 de.ro.HelpLanguageConfig4:Klicken mit AUSWAHL zum Ausw?hlen einer 
Oberfl?chensprache.
@@ -5870,7 +5870,7 @@ nl.ro.HelpSecurityConfig:De privacy- en 
veiligheidsinstellingen kunnen in dit ve
 en.ro.HelpSecurityConfig2:This indicates whether NetSurf will send site 
referral information to web servers.|MWhen this is enabled NetSurf will tell 
the web server of a new page the address of the site you came from, after 
following a link.
 de.ro.HelpSecurityConfig2:NetSurf sendet Seitenreferenzinformationen an 
Webserver.|MIst diese Option gew?hlt, schickt NetSurf an den Server einer neuen 
Webseite die Adresse der Seite von der aus die aktuelle ?ber einen Link 
aufgerufen wurde.
 fr.ro.HelpSecurityConfig2:Ceci indique si Netsurf doit envoyer l'information 
de renvoi de site aux serveurs web.|MLorsque ceci est activ? Netsurf signalera 
au serveur web d'une nouvelle page l'adresse du site d'o? vous venez, apr?s 
avoir suivi un lien.
-it.ro.HelpSecurityConfig2:Indica se NetSurf invier?  le informazioni di 
riferimento del sito ai server Web.|MQuando questo ? abilitato, NetSurf 
comunicher?  al server Web di una nuova pagina l'indirizzo del sito dal quale 
proveniva, dopo aver seguito un link.
+it.ro.HelpSecurityConfig2:Indica se NetSurf invier?  le informazioni di 
riferimento del sito ai server Web.|MQuando questo ? abilitato, NetSurf 
comunicher?  al server Web di una nuova pagina l'indirizzo del sito dal quale 
proveniva, dopo aver seguito un link.
 nl.ro.HelpSecurityConfig2:Deze optie geeft aan of site-gerelateerde informatie 
naar webservers wordt meegezonden.|MIndien toegestaan, ontvangt de webserver 
informatie over de vorige pagina waar, via een koppeling, vandaan is gekomen.
 en.ro.HelpSecurityConfig6:You can enter the length of time that items are 
stored in global history here.
 de.ro.HelpSecurityConfig6:Hier kann die Zeitdauer in Tagen angegeben werden, 
bis zu deren Ablauf Objekte in der globalen History gespeichert bleiben.
@@ -5973,6 +5973,7 @@ de.ami.HelpToolbarAddTab:Tab hinzuf?gen.
 fr.ami.HelpToolbarAddTab:Add tab\nLMB: Adds a new blank tab
 it.ami.HelpToolbarAddTab:Apri una nuova scheda
 nl.ami.HelpToolbarAddTab:Tabblad toevoegen\nLMB: Een nieuwe leeg tabblad wordt 
geopend
+en.ami.PageInfo:Page info
 en.ami.PageInfoInsecure:Insecure
 it.ami.PageInfoInsecure:Non sicuro
 en.ami.PageInfoLocal:Local


-- 
NetSurf Browser
_______________________________________________
netsurf-commits mailing list -- netsurf-commits@netsurf-browser.org
To unsubscribe send an email to netsurf-commits-le...@netsurf-browser.org

Reply via email to