Dual Pane Resurrected

Please check the FAQ (https://www.xyplorer.com/faq.php) before posting a question...
TheQwerty
Posts: 4373
Joined: 03 Aug 2007 22:30

Post by TheQwerty »

panorama wrote:
TheQwerty wrote:I'd like to draw your attention to http://jgpaiva.donationcoders.com/gridmove.html if you have not already seen it.
If I'm not mistaken, jgpaiva is a user of XY and also a contributor to this forum :wink:
I believe you are correct on that.

Demic
Posts: 16
Joined: 22 Nov 2007 19:05
Location: Montreal

Post by Demic »

Don,

Coming back to the original subject, I believe that both dual-pane and multi-window approach have their use at different times.

But have you considered single-instance multi-window idea? I mean, user could have a choice of having another file list (without tree and catalog by default) in another pane or separate window. The single instance would keep all history and stuff, file lists may be together or separated on different monitors (useful mode), you may have one taskbar button or many (like Office documents), you can easily move tabs between windows... Lots of benefits. A good example of this would be Firefox.

As for implementation, in Delphi you can host a form in any windowed control, just assign the form's Parent property. Can you do it in VB?

admin
Site Admin
Posts: 65009
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Post by admin »

First I thought you were talking about the so called MDI (multi-doc-interface). But then
Demic wrote:A good example of this would be Firefox.
... in what way is Firefox an example of this?

Demic
Posts: 16
Joined: 22 Nov 2007 19:05
Location: Montreal

Post by Demic »

No MDI, God forbid!

I am talking multiple WS_POPUP windows.

Use File->New Window (Ctrl-N) in Firefox. The new window will open (too bad it's not arranged in any way with the original and its location does not persist - a must have, IMHO). Notice that there is still only one Firefox process but two (or more) taskbar buttons and top windows.

To put this into XY you only need to add a little :wink: global code to create and manage multiple instances of the same main form class. As I said before, in Delphi you can host your main form in any child panel; same, I guess, would apply to VB -- and here you get DP almost for free. (Well, I know that nothing is actually simple and VB is not Delphi and your main form is probably holding most of the code and creating another instance of it won't work right away... but nonetheless!)

The benefits are also that you don't need to use inter-process communication techinques to have XY instances talk to each other. You get both DP and multi-window interface in the same package and please most users :D.

At my place I did a design like this and it works pretty well. Want me to make a sample app to illustrate the idea? I would, because I think it would be another "killer" feature of XY.

Best regards!

admin
Site Admin
Posts: 65009
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Post by admin »

Demic wrote:No MDI, God forbid!

I am talking multiple WS_POPUP windows.

Use File->New Window (Ctrl-N) in Firefox. The new window will open (too bad it's not arranged in any way with the original and its location does not persist - a must have, IMHO). Notice that there is still only one Firefox process but two (or more) taskbar buttons and top windows.

To put this into XY you only need to add a little :wink: global code to create and manage multiple instances of the same main form class. As I said before, in Delphi you can host your main form in any child panel; same, I guess, would apply to VB -- and here you get DP almost for free. (Well, I know that nothing is actually simple and VB is not Delphi and your main form is probably holding most of the code and creating another instance of it won't work right away... but nonetheless!)

The benefits are also that you don't need to use inter-process communication techinques to have XY instances talk to each other. You get both DP and multi-window interface in the same package and please most users :D.

At my place I did a design like this and it works pretty well. Want me to make a sample app to illustrate the idea? I would, because I think it would be another "killer" feature of XY.

Best regards!
Okay, got it. And I know it is possible in VB, I have even done it years ago with some mini-app. Good idea, man, thanks! :D I can't say how much work it will be, and if there will be any unforeseen problems, but I'll give it a try. Not now, but the day will come.

Demic
Posts: 16
Joined: 22 Nov 2007 19:05
Location: Montreal

Post by Demic »

Don,

I couldn't resist the temptation and made a little mock-up application that demonstrates what I wrote before. See if you like how it works. I enjoyed making it.

http://www.uploading.com/files/QVUGR1TD ... p.zip.html

Everybody else are welcome to tell Don what they like/dislike about it and how badly they want it. :lol:

graham
Posts: 457
Joined: 24 Aug 2007 22:08
Location: Isle of Man

Post by graham »

Demic wrote:
I couldn't resist the temptation and made a little mock-up application that demonstrates what I wrote before. See if you like how it works. I enjoyed making it.
First off, I should like to congratulate you for coming up with a concept and then showing this in in the way you have - well done.

Now, does it meet a need, does it mean it can be implemented easily and finally does it mean Don is convinced that it has value and enhance XY. My own view is that this need is there even if only because other programs have it but what it does do is provide XY with the best of both worlds which the competitors can't match. If XY were my program and I could program this then yes I would include it at some stage.

admin
Site Admin
Posts: 65009
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Post by admin »

Demic wrote:Don,

I couldn't resist the temptation and made a little mock-up application that demonstrates what I wrote before. See if you like how it works. I enjoyed making it.

http://www.uploading.com/files/QVUGR1TD ... p.zip.html

Everybody else are welcome to tell Don what they like/dislike about it and how badly they want it. :lol:
:D I like your passion!

Before I try to understand the C++ code (which would take a long time...), let me ask: your idea was "1 instance, 2 windows". This what happens when you press "New Win", right? But when you press "Horz/vert DP", that's a different thing.

j_c_hallgren
XY Blog Master
Posts: 5826
Joined: 02 Jan 2006 19:34
Location: So. Chatham MA/Clearwater FL
Contact:

Post by j_c_hallgren »

Demic wrote:I couldn't resist the temptation and made a little mock-up application that demonstrates what I wrote before. See if you like how it works. I enjoyed making it.
http://www.uploading.com/files/QVUGR1TD ... p.zip.html
Everybody else are welcome to tell Don what they like/dislike about it and how badly they want it. :lol:
I was at the library and looked at this post, and clicked on the above link...ok, fine, and when I saw it was a download, I canceled out and then got a warning from library virus software that it had trapped something harmful and critical...so now that I'm home and don't have as much protection, what safe alternatives do I have to get this file?
Still spending WAY TOO much time here! But it's such a pleasure helping XY be a treasure!
(XP on laptop with touchpad and thus NO mouse!) Using latest beta vers when possible.

graham
Posts: 457
Joined: 24 Aug 2007 22:08
Location: Isle of Man

Post by graham »

jc wrote:
was at the library and looked at this post, and clicked on the above link...ok, fine, and when I saw it was a download, I canceled out and then got a warning from library virus software that it had trapped something harmful and critical...so now that I'm home and don't have as much protection, what safe alternatives do I have to get this file?
Well what criteria checks are made by the library? They could be cautious because it is a download source or has pop-up windows or....
If it helps, I downloaded and nothing kicked off - maybe the odd rootfile but then again I doubt the library would test for those. Seems safe!

admin
Site Admin
Posts: 65009
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Post by admin »


Demic
Posts: 16
Joined: 22 Nov 2007 19:05
Location: Montreal

Post by Demic »

admin wrote:Before I try to understand the C++ code (which would take a long time...)
Come on! What could be simpler than C++ code? It can be read like a book! :lol: Just kidding...

I commented every method of the MainForm (that's where everything is done), so if you are curious you can read just the comments. Actually, I don't think reading my code will help you much, if only improve your C++ skills :), 'cause we use utterly different development environments and rely heavily on their unique UI features. (side note: I am amazed that you manage to stick so much functionality in so small binary!)

The point of this was to give a "feel" of proposed feature.
admin wrote:your idea was "1 instance, 2 windows"
No, my idea was: 1 instance, many windows; each window may have two panes. This covers the needs of most users, I, personally, prefer two panes in one situation and two windows in another. Two windows work especially well when you have them on different monitors (I have 2 and love it dearly), two panes work well when you need to see both source and target file lists side by side.

And what pleases me most as a developer, is that you can do both multi-window/dual pane modes having only one single source form class. Kind of cool "window recursion". This is what I tried to demonstrate with this little project.

If you feel curious about C++ :), I could give you some more comments over, say, Skype. After all, you accepted a piece of \\server\share code from my friend Alex ;)

TheQwerty
Posts: 4373
Joined: 03 Aug 2007 22:30

Post by TheQwerty »

Demic wrote:No MDI, God forbid!

I am talking multiple WS_POPUP windows.

Use File->New Window (Ctrl-N) in Firefox. The new window will open (too bad it's not arranged in any way with the original and its location does not persist - a must have, IMHO). Notice that there is still only one Firefox process but two (or more) taskbar buttons and top windows.

To put this into XY you only need to add a little :wink: global code to create and manage multiple instances of the same main form class. As I said before, in Delphi you can host your main form in any child panel; same, I guess, would apply to VB -- and here you get DP almost for free. (Well, I know that nothing is actually simple and VB is not Delphi and your main form is probably holding most of the code and creating another instance of it won't work right away... but nonetheless!)

The benefits are also that you don't need to use inter-process communication techinques to have XY instances talk to each other. You get both DP and multi-window interface in the same package and please most users :D.

At my place I did a design like this and it works pretty well. Want me to make a sample app to illustrate the idea? I would, because I think it would be another "killer" feature of XY.

Best regards!
Excuse my ignorance but how does what you describe differ from a MDI? Is it because the single process can spawn multiple windows that can each contain multiple windows/tabs? So it's kind of like a program that can spawn multiple MDIs within a single process.

I'm almost thinking the general interface structure of Opera would be perfect for XY.

From a single instance you can have multiple windows.
If the tabs are maximized it would look just like XY does now.
But if you restore the tabs they become separate windows which can be arranged however you like.

EDIT: If the example program explains all that, sorry. Being at work I can't try it.

Demic
Posts: 16
Joined: 22 Nov 2007 19:05
Location: Montreal

Post by Demic »

TheQwerty wrote:how does what you describe differ from a MDI?
MDI child windows live within the boundaries of their parent MDI frame window. Technically they are the same as docked panes, but provide extra (unneccessary for XY) possibility of being overlapped by each other.

I vote for optional second non-overlapping file list pane and possibility of having several windows bound to Desktop, not application's main window.
TheQwerty wrote:If the example program explains all that...
I really hope so... :D

admin
Site Admin
Posts: 65009
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Post by admin »

Demic wrote:And what pleases me most as a developer, is that you can do both multi-window/dual pane modes having only one single source form class. Kind of cool "window recursion". This is what I tried to demonstrate with this little project.
Okay, got it. You not only want me to add a second file list, I also shall add multiple windows each with a 2nd file list. Did I say I was bored? :wink:

I thought your idea was to use this -- indeed cool and easy to do with VB -- "window recursion" as 2nd pane, not additionally to it...
Demic wrote:If you feel curious about C++ :), I could give you some more comments over, say, Skype. After all, you accepted a piece of \\server\share code from my friend Alex ;)
Ah, nice. In fact, I did not use code by him, not yet. The hidden share thing of today's beta was my own (but wished by him!). I might use his code tomorrow when I try (once again, sigh!) to get the password dialog up for passworded network shares. Wish me luck!

Post Reply