GSoC: Implement the Explorer

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

GSoC: Implement the Explorer

Jay Yang
Hello,

     Since my first proposal got no response at all, I thought I'd offer
another possible project I'm interested in. I looked a little into the
"Implement the Explorer" project idea listed on the Summer of Code page
on the wine wiki. I have a few questions as to what parts need to be
implemented. Clearly, as stated by the description on the Summer of Code
page, we have winefile, which does some of the things expected of
explorer, but how far is winefile from a correct explorer
implementation? Also would implementing Shell Extensions be a good
Summer of Code project? In particular, I think it would be nice to have
things like TortiseSVN working in wine.

Thanks
--
Jay Yang


Reply | Threaded
Open this post in threaded view
|

Re: GSoC: Implement the Explorer

David Hedberg
Hi Jay,

On Thu, Mar 24, 2011 at 05:16, Jay Yang <[hidden email]> wrote:

> Hello,
>
>    Since my first proposal got no response at all, I thought I'd offer
> another possible project I'm interested in. I looked a little into the
> "Implement the Explorer" project idea listed on the Summer of Code page on
> the wine wiki. I have a few questions as to what parts need to be
> implemented. Clearly, as stated by the description on the Summer of Code
> page, we have winefile, which does some of the things expected of explorer,
> but how far is winefile from a correct explorer implementation? Also would
> implementing Shell Extensions be a good Summer of Code project? In
> particular, I think it would be nice to have things like TortiseSVN working
> in wine.
>

I think winefile is pretty much a dead end as far as "correct"
Explorer implementations go. Assuming that we want something as close
to the native architecture as possible, the main functionality of the
windows explorer lies in libraries ( shell32.dll, explorerframe.dll,
..), used through COM. I did some work in this area last year, which
resulted in an implementation of the ExplorerBrowser control (see the
documentation for IExplorerBrowser on msdn [1]). I also just now
quickly fixed up the proof-of-concept "explorer" I hacked up last year
so that it at least compiles on my system (see [2]). It's not
beautiful (neither the code nor the interface), but it might give you
an idea of what the current state of affairs are. It runs on at least
wine and Windows 7, and should also run on Vista.

The code for creating new explorer windows should probably reside in
explorerframe.dll, somewhat analogous to how this works for the
Internet Explorer and shdocvw.dll.

As for TortoiseSVN I don't dare speak for what others might find
useful or how far we are from having that working, but in general
there's no lack of things in the shell subsystem that could use some
attention. Having explorer implemented and somewhat working would
undoubtedly also lead to more of these shortcomings surfacing and
hopefully getting some attention.


[1] http://msdn.microsoft.com/en-us/library/bb761909%28v=vs.85%29.aspx
[2] http://inget.dyndns.org:9999/wine_explorer/

--
David


Reply | Threaded
Open this post in threaded view
|

Re: GSoC: Implement the Explorer

John Klehm
On Thu, Mar 24, 2011 at 9:51 AM, David Hedberg <[hidden email]> wrote:
> Hi Jay,
>
> On Thu, Mar 24, 2011 at 05:16, Jay Yang <[hidden email]> wrote:
> As for TortoiseSVN I don't dare speak for what others might find
> useful or how far we are from having that working, but in general

Pretty much a drop in linux replacement for tortoise is RabbitVCS:
http://www.rabbitvcs.org/


Reply | Threaded
Open this post in threaded view
|

Re: GSoC: Implement the Explorer

Jay Yang
In reply to this post by David Hedberg
Hi David,

Thank you for your reply, I was quite busy yesterday so I didn't get
around to responding. Thank you for helping clarify the situation with
the explorer.

On 03/24/2011 10:51 AM, David Hedberg wrote:
> I also just now
> quickly fixed up the proof-of-concept "explorer" I hacked up last year
> so that it at least compiles on my system (see [2]). It's not
> beautiful (neither the code nor the interface), but it might give you
> an idea of what the current state of affairs are. It runs on at least
> wine and Windows 7, and should also run on Vista.
>
Yep, I got it to work after some fiddling with include paths, thanks.

> The code for creating new explorer windows should probably reside in
> explorerframe.dll, somewhat analogous to how this works for the
> Internet Explorer and shdocvw.dll.
So would implementing explorerframe.dll be a good summer project or is
it too large or too small? I haven't been able to find any good
documentation on what exactly is implemented by explorerframe.dll, is
there any?

Thanks
--
Jay Yang


Reply | Threaded
Open this post in threaded view
|

Re: GSoC: Implement the Explorer

David Hedberg
Hi Jay,

On Fri, Mar 25, 2011 at 21:51, Jay Yang <[hidden email]> wrote:

>> The code for creating new explorer windows should probably reside in
>> explorerframe.dll, somewhat analogous to how this works for the
>> Internet Explorer and shdocvw.dll.
>
> So would implementing explorerframe.dll be a good summer project or is it
> too large or too small? I haven't been able to find any good documentation
> on what exactly is implemented by explorerframe.dll, is there any?
>

Yeah, lack of documentation might be a problem here. I haven't dug
very deep into these parts. In fact it might be the case that it would
not be worth the time to attempt to implement this exactly like in
Windows at the moment, given both the lack of documentation and -
presumably - a lack of applications relying on it.

The obvious parts missing is code for the creation of a frame with
navigation controls and an embedded ExplorerBrowser, and then some
changes to our explorer to use this code instead of spawning winefile.

As you have probably seen though, neither the wine Explorer Browser
control nor the things it relies on are quite full featured, so
there's no real lack of things one could work on if the above were to
be insufficient for an entire project. Many of the new interfaces
introduced in Vista+ are also poorly (or not at all) supported.
There's also the issue of supporting shell extensions like you
mentioned. I guess it boils down to what you want to accomplish and
how much time you think that will take you. :-)

Disclaimer: While I am trying to give a picture of where we're
currently at, I might not have much of any actual say in wine's gsoc
administration.


--
David