In article <[email protected]>,
   Steve Fryatt <[email protected]> wrote:
> On 6 Aug, Michael Drake  wrote in message
>   <[email protected]>:

> > The NetSurf Developers are looking for new developers to join the team.

> > The RISC OS front end
> > ---------------------

> I would be interested in finding out more, if you're struggling to find
> anyone to take on the RISC OS front-end.

Cool, thanks for the interest.

I'm probably not the best person to answer technical stuff on the RISC OS
front end -- I hardly know anything about how to use the WIMP and I've
only ever touched the front end to do a few trivial tweaks and fixes --
but I'll try to explain what I know.

> I use NetSurf a lot, and it would be a pity if its support for RISC OS
> were to reduce.

Yes, I feel the same.

> My main worry -- which has stopped my getting involved before -- is lack
> of time: due to my other commitments, there are likely to be some
> (possibly longish) periods when I can't spend any time on NetSurf.

In general, I don't think that should matter at all. Any huge changes to
the core that will break all the front ends are usually done on branches,
so front end maintainers have plenty of time to see what's changing and
get their front end to work, before the branch is merged back to trunk.

The RISC OS front end also has the advantage that it's autobuilt, so
eveyone can see when it's broken.

> I have some experience of the RISC OS wimp (and other aspects of the
> system), although none of developing as part of a team.  My main
> language (on RISC OS) these days is C, using OSLib and compiling on GCC.

NetSurf's RISC OS front end is built with GCC and uses OSLib. It can be
compiled natively or it can be cross compiled, which is faster.

>From my experience the fact it's developed as a team is great. There's
always others to ask if you're stuck and if you're too busy to do any
development yourself for a while, other people are still doing things. :)
It's good to communicate with the other developers so everyone can share
ideas and know what else is being worked on.


In terms of NetSurf's code,

    http://wiki.netsurf-browser.org/Documentation/Overview

explains that it's split up into various directories for core components
and a directory for each front end. The RISC OS code is in riscos/.

The core has various APIs that each front end needs to implement. For
example to open a browser window, to update a status bar or for the front
end to tell the core where the mouse is etc.

I don't think there's that much stuff that needs to be implemented to
create a new front end which can open a window and allow simple browsing.

As I said before, the RISC OS front end was made with OSLib. Using the
Toolbox wasn't an option when NetSurf was started since there was no
freely available ResEd.

John-Mark summed up the current situation well in his comment here:

    http://www.drobe.co.uk/article.php?id=2526&nc=6#cid31352

The RISC OS front end has various features (such as the treeviews for
hotlist, cookie manager and global history, and the full save and page
searching). Rather than re-implement all of these in every front end, they
have been (or are being) made platform independent and moved to the core.

This is the right thing to do as now the code can be well tested on other
platforms with better debug tools. It also increases the chances of these
features being improved as there are more developers who can work on them
now. For example, there's been a long standing feature request to allow
the global history to be sorted by date, visits, title and URL etc. This
wasn't likely to happen while the feature was RISC OS only and there
wasn't anyone actively developing the RISC OS front end.

Now each front end can use the core feature. On RISC OS, since there is no
maintainer who uses RISC OS and has the relevant knowledge, there is noone
to make the front end use the core feature.

For example, the hotlist has been moved to the core in one of the
development branches, however, all the old RISC OS front end code for the
hotlist now does not compile. I think all that's really required of the
front end to use the core Hotlist is a window, with a toolbar & menu, and
for the front end to tell the core about mouse actions.

As far as the actual RISC OS front end code goes, from what I understand,
I think it's quite involved, with various things that could be separate
being intertwined with other stuff, like menus and toolbars. So sometimes
it's a bit hard to see the wood from the trees.

I don't think it would be that hard for someone who knows about the WIMP
and OSLib to just fix the things that need fixing as they come up,
especially once they've had a look around and asked stuff.

I think that there is also scope for ripping out chunks of NetSurf's RISC
OS front end into a separate GUI library. For example, if the stuff for
making windows, toolbar widgets, menus, etc were all removed into a
separate library, with nice APIs for each component, it would make the
NetSurf RISC OS front end a lot smaller and easier to maintain.

If you're interested and need a hand getting NetSurf to compile, the
quickest way is to drop into the NetSurf IRC channel.

Best regards,

Michael

-- 

Michael Drake (tlsa)                  http://www.netsurf-browser.org/


Reply via email to