Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
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. Smile
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 Smile . 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" Smile 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" Smile 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!". Wink


[Updated on: Sat, 24 May 2008 22:28]

Report message to a moderator

Re: Docking package (plus examples) [message #16341 is a reply to message #16046] Mon, 09 June 2008 13:22 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Oblivion wrote on Sat, 24 May 2008 20:22


Actually I have an idea. Smile


That does sound very interesting! As you say it would duplicate some of the features of Autohide so I would probably not want both. I'll give it a go when I get the chance (if you wish to try it should be quite straightforward to test, just replace the autohide bars with the new Dockbar. The other changes should be small).

And for the WebKit port have a look and see what needs doing, then perhaps start a Bazaar thread and a repository. If you don't mind being in charge of the overview I can happily work on individual sections and perhaps others will to.
Re: Docking package (plus examples) [message #16523 is a reply to message #16341] Sun, 22 June 2008 13:04 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


And for the WebKit port have a look and see what needs doing, then perhaps start a Bazaar thread and a repository. If you don't mind being in charge of the overview I can happily work on individual sections and perhaps others will to.



Yep, that I will do. And nope, I won't mind being in charge. Smile
See: http://www.ultimatepp.org/forum/index.php?t=msg&goto=165 22&#msg_16522


Re: Docking package (plus examples) [message #17883 is a reply to message #13581] Mon, 01 September 2008 17:21 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
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?

Various bug fixes + some new features:
- Greatly improved animation performance (I think this was caused by an image resizing bug in chameleon that has since been fixed, but I now cache the image regardless).
- 'Activate' functions that bring a window to the foreground if it's hidden or open it if it's closed
- Layout 'locking'. When the locked all frames and buttons (except for tabs) are hidden and the user cannot modify the windows layout.
- some addition customisation options.

James
Re: Docking package (plus examples) [message #17886 is a reply to message #17883] Mon, 01 September 2008 18:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
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
Re: Docking package (plus examples) [message #17904 is a reply to message #17886] Tue, 02 September 2008 19:17 Go to previous messageGo to next message
mrjt is currently offline  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 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
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 Smile

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 Smile (the style forms sort of fingerprint Smile

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 #17930 is a reply to message #17927] Wed, 03 September 2008 11:10 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Well, the style problems are just because I'm inconsistent Smile I've gradually been adopting Upp style since I started using it but I'd honestly never conciously noticed the different placement of '*' and '&' and I have no problem fixing it. Likewise with button sizes.

I'll let you know when I've fixed it.
Re: Docking / DockTest packages [message #17932 is a reply to message #17927] Wed, 03 September 2008 13:14 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1366
Registered: November 2005
Location: Poland
Ultimate Contributor

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 / DockTest packages [message #17937 is a reply to message #17932] Wed, 03 September 2008 16:47 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
I agree, there is also one major addition I need to make which may introduce some new bugs.

[Updated on: Wed, 03 September 2008 16:52]

Report message to a moderator

Re: Docking / DockTest packages [message #17945 is a reply to message #17937] Wed, 03 September 2008 23:05 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
OK, but let us do it soon.

IMO, there is no code that would be broken by adding this package to uppsrc. So the only real reason not to do so would be if you feel that the interface design is faulty.

Mirek
Re: Docking package (plus examples) [message #18263 is a reply to message #13581] Fri, 19 September 2008 14:32 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Hi Mrjt,

I have noticed something about the "autohide" bar. When a dock goes into autohide state, it's tab (or the last activated one's tab) stays active even if the mouse is not hovering on it. Is this behaviour intentional, or is it just a small bug?


Regards.


Re: Docking package (plus examples) [message #18269 is a reply to message #18263] Fri, 19 September 2008 16:29 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Bug Smile
Re: Docking package (plus examples) [message #19076 is a reply to message #18269] Sun, 09 November 2008 21:08 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
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 #19077 is a reply to message #19076] Mon, 10 November 2008 11:56 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Novo wrote on Sun, 09 November 2008 20:08

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


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
Re: Docking package (plus examples) [message #19085 is a reply to message #19077] Tue, 11 November 2008 06:11 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
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 Wink


Regards,
Novo
Re: Docking package (plus examples) [message #19086 is a reply to message #19085] Tue, 11 November 2008 10:52 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Novo wrote on Tue, 11 November 2008 05:11


Sorry for making troubles Wink


Smile 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 Sad.
Re: Docking package (plus examples) [message #19116 is a reply to message #19086] Thu, 13 November 2008 04:42 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
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 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
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 Go to previous messageGo to previous message
Oblivion is currently offline  Oblivion
Messages: 1091
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.


Previous Topic: SysInfo, Functions4U and Controls4U packages
Next Topic: TabBar Major Revision
Goto Forum:
  


Current Time: Fri Mar 29 09:05:21 CET 2024

Total time taken to generate the page: 0.02161 seconds