|
|
Home » Developing U++ » UppHub » Docking package (plus examples)
Re: Docking package (plus examples) [message #16046 is a reply to message #16043] |
Sat, 24 May 2008 21:22 |
Oblivion
Messages: 1094 Registered: August 2007
|
Senior Contributor |
|
|
Quote: |
And if you have any more of those good ideas please let me know, or try them out yourself.
|
Actually I have an idea.
As you know, I had planned to add a dockable bar control to the DockCtrl framework. Now that the development of DockCtrl is stopped, I would like to share what I have in my mind. I have studied your framework and I've come to the the conclusion that there is no reason that it can't be done (since, it's similar to mine). Here is the idea: A "dockable" DockBar . What I mean is, a dockbar which will have both user defined standard buttons (as usual) and dockwindows which can be "docked" to the dockbar as buttons. This is both theoretically and pratically possible. Since the dockwindows have both a label and an icon, we can use them as buttons (or, we can supply a default icon if they don't have one) and by using a simple overlay icon (something like on Windows desktop shortcut) on the dockwindow-buttons, user can easily seperate between standard button and a dockwindow-button. As for the behaviour of this dockwindow-buttons, when the user presses the the button the dockwindow can pop-up (just like the autohidebar behaviour) and when the user drags the buttoned dockwindow, it can float in its standard dockwindow form. I know that we already have AutoHideBar for similar behaviour, but I think this will save a lot of space in professional projecs. Think about having, say, a dockable "virtual functions" or other windows in TheIDE which can be buttonized and docked. Now, I didn't see something like this in any other docking framework (porbably this is going to be a unique feature). Imho, it would be both useful and eye-candy. It shoudn't be so hard to implement this (actually, I had started to implement this, but then abandoned due to the reasons I've mentioned in my last post). Since, I think we both have learned a hell lot about docking mechanisms and U++ behaviour throughout our "competition" we can add this feature easily. If it seems reasonable to you, we can collaborate on it or you can do it all by yourself. What do you think about it?
Quote: |
Otherwise, if you're looking for a project I believe some people are desiring a port of WebKit, and I'd happily collaborate on it if you wanted help.
|
Yes, I myself was considering that since Mirek has suggested a plugin/port for the webkit. I've examined webkit and now I'm examining the WxWidgets port of Webkit. Their solution (and interface) seems good. I can plunge into this "adventure" by myself, but probably it would be better to do it as a "party". Well, after June 3, I'm free. And, probably "I'm in!".
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Sat, 24 May 2008 22:28] Report message to a moderator
|
|
|
|
|
|
|
Re: Docking package (plus examples) [message #17904 is a reply to message #17886] |
Tue, 02 September 2008 19:17 |
mrjt
Messages: 705 Registered: March 2007 Location: London
|
Contributor |
|
|
luzr wrote on Mon, 01 September 2008 17:31 |
mrjt wrote on Mon, 01 September 2008 11:21 | I've just updated the SVN, however, I'm no longer 100% sure whether I'm using the correct repository. Is https://upp.svn.sourceforge.net/svnroot/upp/trunk still correct?
|
Incorrect.
Please read PM from Thu, 14 August 2008 17:49.
Mirek
|
Thanks. Not sure how I missed that, but the update is now committed to correct one.
[Updated on: Tue, 02 September 2008 22:59] Report message to a moderator
|
|
|
Re: Docking / DockTest packages [message #17927 is a reply to message #14888] |
Wed, 03 September 2008 10:21 |
|
mirek
Messages: 13980 Registered: November 2005
|
Ultimate Member |
|
|
Well, I think this is almost ready to be moved to uppsrc.
Just small comments:
I really like the code, the only thing that makes me a little bit nervous is "unstable placement" of '*' and '&'.
This is not really critical. Anyway, MY coding style mandates to place '&' alongside type and '*' with variable, I believe that makes it visually more readable. I have no problem if you have different style, it is just funny that you seem to mix several styles in single package
Also, with class definition, I put '{' on the same line.
Now important: If your preferences are different, please keep them! Over years, I have found this can have some advantage too, as just seeing the code I can say how is responsible (the style forms sort of fingerprint
A little bit more important: Maybe we should discuss the button sizes. So far, I tend to prefer 64x24 - while not correct on any platform, looks almost correct everywhere.
Mirek
|
|
|
|
Re: Docking / DockTest packages [message #17932 is a reply to message #17927] |
Wed, 03 September 2008 13:14 |
|
luzr wrote on Wed, 03 September 2008 04:21 | Well, I think this is almost ready to be moved to uppsrc
|
We have a nv branch of theide which uses Docking package. I think it'd be better to work on it a little bit more before moving. I'd like to finish tabbar as well. It's all connected.
|
|
|
|
|
|
|
Re: Docking package (plus examples) [message #19076 is a reply to message #18269] |
Sun, 09 November 2008 21:08 |
Novo
Messages: 1361 Registered: December 2006
|
Ultimate Contributor |
|
|
I couldn't build Docking package from trunk (http://upp-mirror.googlecode.com/svn/trunk).
c:\local\home\sergey\cpp\code\gui\upp\svn\bazaar\Docking\DockCont.cpp(766) : error C2248: 'Upp::CtrlFrame::CtrlFrame' : cannot access private member declared in class 'Upp::CtrlFrame'
c:\local\home\sergey\cpp\code\gui\upp\svn\uppsrc\CtrlCore\CtrlCore.h(75) : see declaration of 'Upp::CtrlFrame::CtrlFrame'
c:\local\home\sergey\cpp\code\gui\upp\svn\uppsrc\CtrlCore\CtrlCore.h(57) : see declaration of 'Upp::CtrlFrame'
Am I doing something wrong? As far as I understand, there is an ongoing development in a branch. If this is correct, could you please promote changes from a branch to the trunk?
TIA
Regards,
Novo
|
|
|
|
Re: Docking package (plus examples) [message #19085 is a reply to message #19077] |
Tue, 11 November 2008 06:11 |
Novo
Messages: 1361 Registered: December 2006
|
Ultimate Contributor |
|
|
mrjt wrote on Mon, 10 November 2008 05:56 |
That odd. I've just compiled it against the svn and 2008.1 versions using MSC8 and MingW without any problems. I can see a potential problem on line 766, but it doesn't match the error message. Are you using GCC on linux by any chance? If so which vesion?
I've changed the offending line but I can't guarantee it'll fix the problem since I can't reproduce it. It's in revision 628.
All updates go into the main trunk, the version you were using was the most recent.
Hope that helps. If you intend on using the Docking package I would love to hear feedback so that I can improve it further, particularly on how easy the API is to use.
James
|
Thanks. Your change fixed the compilation problem.
Sorry for forgetting to report compiler name and version. That was MSVC9.
I've checked compilation with GCC 4.1.3 on Ubuntu 7.10 + GTK. No problem with compilation. Unfortunately, there is a problem with DockingExample1. Basically, docking is not working with this example. When I'm trying to drag any control (TreeCtrl 2, for example), several other controls just disappear. Sometimes they disappear all, sometimes one or two of them stay visible. That seems to depend on dragging direction.
And that is even more strange because DockingExample2 seems to work correctly.
Another problem. Docking is not working on Vista compiled with MSVC9 + disabled "Show window contents while dragging".
It is not possible to dock a control using mouse.
I've also checked docking on Windows XP + MSVC8 + enabled "Show window contents while dragging". Everything was working fine.
Sorry for making troubles
Regards,
Novo
|
|
|
Re: Docking package (plus examples) [message #19086 is a reply to message #19085] |
Tue, 11 November 2008 10:52 |
mrjt
Messages: 705 Registered: March 2007 Location: London
|
Contributor |
|
|
Novo wrote on Tue, 11 November 2008 05:11 |
Sorry for making troubles
|
No problem, I did say I wanted feedback after all!
Novo wrote on Tue, 11 November 2008 05:11 |
Unfortunately, there is a problem with DockingExample1. Basically, docking is not working with this example.
| Thanks, I haven't tested DockingExample1 for a while so I didn't notice. I'm currently re-installing everything on my machine but I'll have a look at it as soon as I'm able.
Novo wrote on Tue, 11 November 2008 05:11 | Another problem. Docking is not working on Vista compiled with MSVC9 + disabled "Show window contents while dragging".
It is not possible to dock a control using mouse.
|
Bugger. You may be the first person to test this with MSC9, although I'll be installing it shortly.
The dragging problem is a real pain in the arse! The dragging works by tracking window movement, so Vista must not be sending the usual WM_MOVE/WM_SIZE messages when the contents aren't being drawn. If Vista only sends move events to the window after it has completed the move then I can make it dock, but the animation/highlighting will never work .
|
|
|
Re: Docking package (plus examples) [message #19116 is a reply to message #19086] |
Thu, 13 November 2008 04:42 |
Novo
Messages: 1361 Registered: December 2006
|
Ultimate Contributor |
|
|
I've found two more problems with DockingExample1. I was testing two configurations:
1) Vista + disabled "Show window contents while dragging" + MSVC71;
2) The same as above, but compiled with MSVC9;
In case 2 dragging of TreeCtrl 2 causes disappearing of ArrayCtrl 1 and TreeCtrl 1. This is similar to what happens on Linux + GCC 4.1.3.
In both case 1 and case 2 docking and undocking of "single" controls using mouse causes they to shrink in size. Try to dock-undock ArrayCtrl 2 or TreeCtrl 2 several times, and see what happens.
Regards,
Novo
|
|
|
Re: Docking package (plus examples) [message #19240 is a reply to message #19116] |
Sat, 22 November 2008 18:34 |
Novo
Messages: 1361 Registered: December 2006
|
Ultimate Contributor |
|
|
I checked DockCtrl (by Ismail Yilmaz) + Vista + disabled "Show window contents while dragging" + MSVC71/MSVC9.
Docking with mouse is working fine. I couldn't find any difference between MSVC71 and MSVC9.
There are currently only two problems with DockCtrl:
1) DockCtrlExample crashes during docking a control as a tab;
2) Closing a tab (by pressing a close/cross button) causes assert in DockCtrlExample;
Problem (2) happens in Docking package too. But in this case application just crashes.
I wonder if it is possible to make at least one stable docking control/package?
Sorry for being annoying.
Regards,
Novo
|
|
|
Re: Docking package (plus examples) [message #19275 is a reply to message #19240] |
Sun, 23 November 2008 22:38 |
Oblivion
Messages: 1094 Registered: August 2007
|
Senior Contributor |
|
|
Novo wrote on Sat, 22 November 2008 19:34 | I checked DockCtrl (by Ismail Yilmaz) + Vista + disabled "Show window contents while dragging" + MSVC71/MSVC9.
Docking with mouse is working fine. I couldn't find any difference between MSVC71 and MSVC9.
There are currently only two problems with DockCtrl:
1) DockCtrlExample crashes during docking a control as a tab;
2) Closing a tab (by pressing a close/cross button) causes assert in DockCtrlExample;
Problem (2) happens in Docking package too. But in this case application just crashes.
I wonder if it is possible to make at least one stable docking control/package?
Sorry for being annoying.
|
Hello Novo,
Unfortunately, the development of the DockCtrl is stopped (Recently I have marked it as "Depreceated") since I was very occupied with other projects. I'm sorry for any inconvenience caused with the package. If possible, could you give some details about the assert?
Regards.
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
|
|
|
Goto Forum:
Current Time: Thu May 30 14:10:50 CEST 2024
Total time taken to generate the page: 0.01615 seconds
|
|
|