mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-23 04:26:50 +03:00
[project @ 2003-07-30 13:06:22 by jmb]
Add support for Acorn URI Protocol and URI files (Rob Jackson) svn path=/import/netsurf/; revision=242
This commit is contained in:
parent
3c0daf429a
commit
7c474c848e
17
!NetSurf/!Boot
Normal file
17
!NetSurf/!Boot
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Set NetSurf$Dir <Obey$Dir>
|
||||||
|
|
||||||
|
IconSprites <NetSurf$Dir>.!Sprites
|
||||||
|
Set File$Type_F79 CSS
|
||||||
|
|
||||||
|
| Acorn URI protocol
|
||||||
|
Set NetSurf$start_uri_handler "no"
|
||||||
|
RMEnsure AcornURI 0.10 Set NetSurf$start_uri_handler "yes"
|
||||||
|
RMEnsure AcornURI 0.10 RMLoad System:310.Modules.Network.URI
|
||||||
|
If "<NetSurf$start_uri_handler>" = "yes" Then Desktop
|
||||||
|
|
||||||
|
If "<Alias$Open_URI_http>" = "" Then Set Alias$Open_URI_http <NetSurf$Dir>.URILaunch
|
||||||
|
If "<Alias$Open_URI_https>" = "" Then Set Alias$Open_URI_https <NetSurf$Dir>.URILaunch
|
||||||
|
If "<Alias$Open_URI_file>" = "" Then Set Alias$Open_URI_file <NetSurf$Dir>.URILaunch
|
||||||
|
|
||||||
|
| Claim URI files
|
||||||
|
If "<Alias$@RunType_F91>" = "" Then Set Alias$@RunType_F91 <NetSurf$Dir>.URILaunch
|
17
!NetSurf/!Boot,feb
Normal file
17
!NetSurf/!Boot,feb
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Set NetSurf$Dir <Obey$Dir>
|
||||||
|
|
||||||
|
IconSprites <NetSurf$Dir>.!Sprites
|
||||||
|
Set File$Type_F79 CSS
|
||||||
|
|
||||||
|
| Acorn URI protocol
|
||||||
|
Set NetSurf$start_uri_handler "no"
|
||||||
|
RMEnsure AcornURI 0.10 Set NetSurf$start_uri_handler "yes"
|
||||||
|
RMEnsure AcornURI 0.10 RMLoad System:310.Modules.Network.URI
|
||||||
|
If "<NetSurf$start_uri_handler>" = "yes" Then Desktop
|
||||||
|
|
||||||
|
If "<Alias$Open_URI_http>" = "" Then Set Alias$Open_URI_http <NetSurf$Dir>.URILaunch
|
||||||
|
If "<Alias$Open_URI_https>" = "" Then Set Alias$Open_URI_https <NetSurf$Dir>.URILaunch
|
||||||
|
If "<Alias$Open_URI_file>" = "" Then Set Alias$Open_URI_file <NetSurf$Dir>.URILaunch
|
||||||
|
|
||||||
|
| Claim URI files
|
||||||
|
If "<Alias$@RunType_F91>" = "" Then Set Alias$@RunType_F91 <NetSurf$Dir>.URILaunch
|
@ -1,15 +1,16 @@
|
|||||||
|rafs_flush
|
|rafs_flush
|
||||||
|
|
||||||
Set NetSurf$Dir <Obey$Dir>
|
If "<NetSurf$Dir>" = "" Then Obey <Obey$Dir>.!Boot
|
||||||
|
|
||||||
IconSprites <NetSurf$Dir>.!Sprites
|
|
||||||
Set File$Type_F79 CSS
|
|
||||||
|
|
||||||
RMensure WindowManager 3.80 Error 0 NetSurf requires the Nested Window Manager.
|
RMensure WindowManager 3.80 Error 0 NetSurf requires the Nested Window Manager.
|
||||||
RMEnsure UtilityModule 3.70 RMensure CallASWI 0.00 RMload <NetSurf$Dir>.CallASWI
|
RMEnsure UtilityModule 3.70 RMensure CallASWI 0.00 RMload <NetSurf$Dir>.CallASWI
|
||||||
RMEnsure SharedUnixLibrary 1.00 RMLoad System:Modules.SharedULib
|
RMEnsure SharedUnixLibrary 1.00 RMLoad System:Modules.SharedULib
|
||||||
|
|
||||||
|
|
||||||
| drag the 'next' slot in the task manager to something huge and ridiculous,
|
| drag the 'next' slot in the task manager to something huge and ridiculous,
|
||||||
| and/or increase the number below
|
| and/or increase the number below
|
||||||
Wimpslot -min 2000k
|
Wimpslot -min 2000k
|
||||||
|
|
||||||
|
Set NetSurf$running "yes"
|
||||||
<NetSurf$Dir>.!RunImage 2><NetSurf$Dir>.stderr
|
<NetSurf$Dir>.!RunImage 2><NetSurf$Dir>.stderr
|
||||||
|
UnSet NetSurf$running
|
||||||
|
1
!NetSurf/URILaunch,feb
Normal file
1
!NetSurf/URILaunch,feb
Normal file
@ -0,0 +1 @@
|
|||||||
|
If "<NetSurf$running>" <> "yes" Then Run <NetSurf$Dir>.!Run
|
@ -1,4 +1,4 @@
|
|||||||
$Id: TODO-General,v 1.4 2003/07/07 22:10:51 jmb Exp $
|
$Id: TODO-General,v 1.5 2003/07/30 13:06:22 jmb Exp $
|
||||||
|
|
||||||
TODO-General for NetSurf.
|
TODO-General for NetSurf.
|
||||||
|
|
||||||
@ -8,10 +8,8 @@ This file documents general things which need doing.
|
|||||||
Disk Cache
|
Disk Cache
|
||||||
Saving
|
Saving
|
||||||
Printing
|
Printing
|
||||||
View Source
|
|
||||||
Global Clipboard Support
|
Global Clipboard Support
|
||||||
More Image file formats
|
More Image file formats
|
||||||
JavaScript?
|
JavaScript?
|
||||||
URI Protocol support
|
|
||||||
ANT URL protocol support
|
ANT URL protocol support
|
||||||
#targets in URLS eg: http://www.moo.com/index.html#blah
|
#targets in URLS eg: http://www.moo.com/index.html#blah
|
2
makefile
2
makefile
@ -13,7 +13,7 @@ OBJECTS_COMMON = cache.o content.o fetch.o fetchcache.o other.o \
|
|||||||
OBJECTS = $(OBJECTS_COMMON) \
|
OBJECTS = $(OBJECTS_COMMON) \
|
||||||
browser.o netsurf.o \
|
browser.o netsurf.o \
|
||||||
gif.o gui.o jpeg.o png.o theme.o plugin.o \
|
gif.o gui.o jpeg.o png.o theme.o plugin.o \
|
||||||
options.o filetype.o font.o
|
options.o filetype.o font.o uri.o
|
||||||
OBJECTS_DEBUG = $(OBJECTS_COMMON) \
|
OBJECTS_DEBUG = $(OBJECTS_COMMON) \
|
||||||
netsurfd.o \
|
netsurfd.o \
|
||||||
optionsd.o filetyped.o fontd.o
|
optionsd.o filetyped.o fontd.o
|
||||||
|
80
riscos/gui.c
80
riscos/gui.c
@ -19,12 +19,15 @@
|
|||||||
#include "oslib/osgbpb.h"
|
#include "oslib/osgbpb.h"
|
||||||
#include "oslib/wimp.h"
|
#include "oslib/wimp.h"
|
||||||
#include "oslib/wimpspriteop.h"
|
#include "oslib/wimpspriteop.h"
|
||||||
|
#include "oslib/uri.h"
|
||||||
#include "netsurf/desktop/gui.h"
|
#include "netsurf/desktop/gui.h"
|
||||||
#include "netsurf/desktop/netsurf.h"
|
#include "netsurf/desktop/netsurf.h"
|
||||||
#include "netsurf/desktop/options.h"
|
#include "netsurf/desktop/options.h"
|
||||||
#include "netsurf/render/font.h"
|
#include "netsurf/render/font.h"
|
||||||
#include "netsurf/render/html.h"
|
#include "netsurf/render/html.h"
|
||||||
|
#include "netsurf/riscos/gui.h"
|
||||||
#include "netsurf/riscos/theme.h"
|
#include "netsurf/riscos/theme.h"
|
||||||
|
#include "netsurf/riscos/uri.h"
|
||||||
#include "netsurf/utils/log.h"
|
#include "netsurf/utils/log.h"
|
||||||
#include "netsurf/utils/utils.h"
|
#include "netsurf/utils/utils.h"
|
||||||
|
|
||||||
@ -138,32 +141,6 @@ int ro_y_units(unsigned long browser_units);
|
|||||||
unsigned long browser_x_units(int ro_units);
|
unsigned long browser_x_units(int ro_units);
|
||||||
unsigned long browser_y_units(int ro_units);
|
unsigned long browser_y_units(int ro_units);
|
||||||
|
|
||||||
struct ro_gui_window
|
|
||||||
{
|
|
||||||
gui_window_type type;
|
|
||||||
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
wimp_w window;
|
|
||||||
wimp_w toolbar;
|
|
||||||
int toolbar_width;
|
|
||||||
struct browser_window* bw;
|
|
||||||
} browser;
|
|
||||||
} data;
|
|
||||||
|
|
||||||
char status[256];
|
|
||||||
char title[256];
|
|
||||||
char url[256];
|
|
||||||
gui_window* next;
|
|
||||||
|
|
||||||
int throbber;
|
|
||||||
float throbtime;
|
|
||||||
|
|
||||||
gui_safety redraw_safety;
|
|
||||||
enum { drag_NONE, drag_UNKNOWN, drag_BROWSER_TEXT_SELECTION } drag_status;
|
|
||||||
int old_width;
|
|
||||||
};
|
|
||||||
|
|
||||||
void ro_gui_window_click(gui_window* g, wimp_pointer* mouse);
|
void ro_gui_window_click(gui_window* g, wimp_pointer* mouse);
|
||||||
//void ro_gui_window_mouse_at(gui_window* g, wimp_pointer* mouse);
|
//void ro_gui_window_mouse_at(gui_window* g, wimp_pointer* mouse);
|
||||||
void ro_gui_window_open(gui_window* g, wimp_open* open);
|
void ro_gui_window_open(gui_window* g, wimp_open* open);
|
||||||
@ -366,7 +343,7 @@ ro_theme* current_theme = NULL;
|
|||||||
const char* BROWSER_VALIDATION = "\0";
|
const char* BROWSER_VALIDATION = "\0";
|
||||||
|
|
||||||
const char* task_name = "NetSurf";
|
const char* task_name = "NetSurf";
|
||||||
const wimp_MESSAGE_LIST(3) task_messages = { {message_DATA_SAVE, message_DATA_LOAD, 0} };
|
const wimp_MESSAGE_LIST(4) task_messages = { {message_DATA_SAVE, message_DATA_LOAD, message_URI_PROCESS, 0} };
|
||||||
wimp_t task_handle;
|
wimp_t task_handle;
|
||||||
|
|
||||||
wimp_i ro_gui_iconbar_i;
|
wimp_i ro_gui_iconbar_i;
|
||||||
@ -2007,11 +1984,24 @@ void gui_multitask(void)
|
|||||||
case wimp_USER_MESSAGE :
|
case wimp_USER_MESSAGE :
|
||||||
case wimp_USER_MESSAGE_RECORDED :
|
case wimp_USER_MESSAGE_RECORDED :
|
||||||
case wimp_USER_MESSAGE_ACKNOWLEDGE:
|
case wimp_USER_MESSAGE_ACKNOWLEDGE:
|
||||||
|
|
||||||
fprintf(stderr, "MESSAGE %d (%x) HAS ARRIVED\n", block.message.action, block.message.action);
|
fprintf(stderr, "MESSAGE %d (%x) HAS ARRIVED\n", block.message.action, block.message.action);
|
||||||
if (block.message.action == message_DATA_SAVE)
|
|
||||||
ro_msg_datasave(&(block.message));
|
switch (block.message.action)
|
||||||
else if (block.message.action == message_DATA_LOAD)
|
{
|
||||||
ro_msg_dataload(&(block.message));
|
case message_DATA_SAVE :
|
||||||
|
ro_msg_datasave(&(block.message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case message_DATA_LOAD :
|
||||||
|
ro_msg_dataload(&(block.message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case message_URI_PROCESS :
|
||||||
|
ro_uri_message_received(&(block.message));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (block.message.action == message_QUIT)
|
if (block.message.action == message_QUIT)
|
||||||
netsurf_quit = 1;
|
netsurf_quit = 1;
|
||||||
else
|
else
|
||||||
@ -2317,14 +2307,28 @@ void gui_poll(void)
|
|||||||
case wimp_USER_MESSAGE :
|
case wimp_USER_MESSAGE :
|
||||||
case wimp_USER_MESSAGE_RECORDED :
|
case wimp_USER_MESSAGE_RECORDED :
|
||||||
case wimp_USER_MESSAGE_ACKNOWLEDGE:
|
case wimp_USER_MESSAGE_ACKNOWLEDGE:
|
||||||
|
|
||||||
fprintf(stderr, "MESSAGE %d (%x) HAS ARRIVED\n", block.message.action, block.message.action);
|
fprintf(stderr, "MESSAGE %d (%x) HAS ARRIVED\n", block.message.action, block.message.action);
|
||||||
if (block.message.action == message_DATA_SAVE)
|
|
||||||
ro_msg_datasave(&(block.message));
|
switch (block.message.action)
|
||||||
else if (block.message.action == message_DATA_LOAD)
|
{
|
||||||
ro_msg_dataload(&(block.message));
|
case message_DATA_SAVE :
|
||||||
else if (block.message.action == message_QUIT)
|
ro_msg_datasave(&(block.message));
|
||||||
netsurf_quit = 1;
|
break;
|
||||||
break;
|
|
||||||
|
case message_DATA_LOAD :
|
||||||
|
ro_msg_dataload(&(block.message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case message_URI_PROCESS :
|
||||||
|
ro_uri_message_received(&(block.message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case message_QUIT :
|
||||||
|
netsurf_quit = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} while (finished == 0);
|
} while (finished == 0);
|
||||||
|
|
||||||
|
41
riscos/gui.h
Normal file
41
riscos/gui.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* 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 2003 Phil Mellor <monkeyson@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _NETSURF_RISCOS_GUI_H_
|
||||||
|
#define _NETSURF_RISCOS_GUI_H_
|
||||||
|
|
||||||
|
#include "netsurf/desktop/browser.h"
|
||||||
|
#include "netsurf/desktop/gui.h"
|
||||||
|
#include "oslib/wimp.h"
|
||||||
|
|
||||||
|
struct ro_gui_window
|
||||||
|
{
|
||||||
|
gui_window_type type;
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
wimp_w window;
|
||||||
|
wimp_w toolbar;
|
||||||
|
int toolbar_width;
|
||||||
|
struct browser_window* bw;
|
||||||
|
} browser;
|
||||||
|
} data;
|
||||||
|
|
||||||
|
char status[256];
|
||||||
|
char title[256];
|
||||||
|
char url[256];
|
||||||
|
gui_window* next;
|
||||||
|
|
||||||
|
int throbber;
|
||||||
|
float throbtime;
|
||||||
|
|
||||||
|
gui_safety redraw_safety;
|
||||||
|
enum { drag_NONE, drag_UNKNOWN, drag_BROWSER_TEXT_SELECTION } drag_status;
|
||||||
|
int old_width;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
87
riscos/uri.c
Normal file
87
riscos/uri.c
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
* 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 2003 Rob Jackson <jacko@xms.ms>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "oslib/uri.h"
|
||||||
|
#include "oslib/wimp.h"
|
||||||
|
#include "netsurf/desktop/browser.h"
|
||||||
|
#include "netsurf/riscos/theme.h"
|
||||||
|
#include "netsurf/desktop/gui.h"
|
||||||
|
#include "netsurf/riscos/gui.h"
|
||||||
|
#include "netsurf/utils/log.h"
|
||||||
|
#include "netsurf/utils/utils.h"
|
||||||
|
|
||||||
|
void ro_uri_message_received(uri_full_message_process*);
|
||||||
|
|
||||||
|
extern ro_theme* current_theme;
|
||||||
|
|
||||||
|
void ro_uri_message_received(uri_full_message_process* uri_message)
|
||||||
|
{
|
||||||
|
uri_h uri_handle;
|
||||||
|
char* uri_requested;
|
||||||
|
char* temp;
|
||||||
|
|
||||||
|
struct browser_window* bw;
|
||||||
|
int uri_length;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
uri_handle = uri_message->handle;
|
||||||
|
|
||||||
|
LOG(("URI message... %s, handle = %d", uri_message->uri,
|
||||||
|
(int)uri_message->handle));
|
||||||
|
|
||||||
|
if ( (strspn(uri_message->uri, "http://") != strlen("http://")) &&
|
||||||
|
(strspn(uri_message->uri, "https://") != strlen("https://")) &&
|
||||||
|
(strspn(uri_message->uri, "file:/") != strlen("file:/")) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
else LOG(("URI message deemed relevant"));
|
||||||
|
|
||||||
|
uri_message->your_ref = uri_message->my_ref;
|
||||||
|
uri_message->action = message_URI_PROCESS_ACK;
|
||||||
|
|
||||||
|
xwimp_send_message(wimp_USER_MESSAGE_ACKNOWLEDGE,
|
||||||
|
(wimp_message*)uri_message,
|
||||||
|
uri_message->sender);
|
||||||
|
|
||||||
|
xuri_request_uri(0, 0, 0, uri_handle, &uri_length);
|
||||||
|
uri_requested = xcalloc(uri_length, sizeof(char));
|
||||||
|
|
||||||
|
if (uri_requested == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
xuri_request_uri(0, uri_requested, uri_length, uri_handle, NULL);
|
||||||
|
|
||||||
|
/* Kludge for file:/ URLs (changes them into file:/// URLs) */
|
||||||
|
if( (strncasecmp(uri_requested, "file:/", 6) == 0) &&
|
||||||
|
(strncasecmp(uri_requested, "file://", 7) != 0) ) {
|
||||||
|
|
||||||
|
temp = xcalloc(strlen(uri_requested) + 5, sizeof(char));
|
||||||
|
strcpy(temp, "file:///");
|
||||||
|
for(i=6; i!=strlen(uri_requested); i++) {
|
||||||
|
|
||||||
|
temp[i+2] = uri_message->uri[i];
|
||||||
|
}
|
||||||
|
xfree(uri_requested);
|
||||||
|
uri_requested = strdup(temp);
|
||||||
|
xfree(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
bw = create_browser_window(browser_TITLE | browser_TOOLBAR
|
||||||
|
| browser_SCROLL_X_ALWAYS | browser_SCROLL_Y_ALWAYS, 640, 480);
|
||||||
|
|
||||||
|
gui_window_show(bw->window);
|
||||||
|
browser_window_open_location(bw, uri_requested);
|
||||||
|
|
||||||
|
wimp_set_caret_position(bw->window->data.browser.toolbar,
|
||||||
|
ro_theme_icon(current_theme, THEME_TOOLBAR, "TOOLBAR_URL"),
|
||||||
|
0,0,-1, (int) strlen(bw->window->url) - 1);
|
||||||
|
|
||||||
|
|
||||||
|
xfree(uri_requested);
|
||||||
|
}
|
13
riscos/uri.h
Normal file
13
riscos/uri.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* 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 2003 Rob Jackson <jacko@xms.ms>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _NETSURF_RISCOS_URI_H_
|
||||||
|
#define _NETSURF_RISCOS_URI_H_
|
||||||
|
|
||||||
|
static void ro_uri_message_received(uri_full_message_process*);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user