U++ framework
Do not panic. Ask here before giving up.

Home » Developing U++ » UppHub » Docking package (plus examples)
Re: Docking / DockTest packages [message #14896 is a reply to message #14888] Wed, 19 March 2008 09:25 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 826
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor
mrjt wrote on Tue, 18 March 2008 23:10

although you will have to install Subversion.


Well, you need SVN client, not full SVN itself.
On Windows I can recommend TortoiseSVN for it's rich set of supported SVN functions and generally good stability (although many changelogs from new versions made me shiver with "how was it working before those bug fixes?", but almost never ran into actual issue).
On linux I have still no favorite, actually anything I tried is lacking something, kdesvn works for me in many cases ok, but far from complete solution like Tortoise is.
Re: Docking / DockTest packages [message #14899 is a reply to message #14896] Wed, 19 March 2008 09:47 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
Thanks for the info. I know how to use SVN and I have Tortoise (even though it doesn't give me such a big advantage since I use TotalCmd).

I downloaded SVN version, but unfortunately I managed to loose some modifications to U++ source code. Have to reproduce them and this time isolate them properly.
Re: Docking / DockTest packages [message #14907 is a reply to message #14899] Wed, 19 March 2008 14:12 Go to previous messageGo to next message
mdelfede is currently offline  mdelfede
Messages: 1313
Registered: September 2007
Ultimate Contributor
IMO on linux the best is svn command line + meld for diff.... And, if you don't want to loose some local changes, keep a svn folder separate from you devel, and sync when you need with meld.

Max
Re: Docking package (plus examples) [message #14955 is a reply to message #13581] Sat, 22 March 2008 13:25 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1278
Registered: August 2007
Senior Contributor
Hi Mrjt,

Here is the new docking.t with Turkish translation.

ps: I had to change the char. encoding to UTF8.

Regards.
  • Attachment: Docking.t
    (Size: 2.11KB, Downloaded 485 times)


[Updated on: Sat, 22 March 2008 13:27]

Report message to a moderator

Re: Docking package (plus examples) [message #15060 is a reply to message #14955] Thu, 27 March 2008 20:25 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
Hi!

I finally got to the point where I can use your tabbing system. It was not that easy, because if you try to design the "perfect" interface without taking into consideration dockable windows, you can hardly insert this concept in the interface so that it feels natural.

But I found a way to improve my interface, but it seems that I have special needs Smile. I wonder if you system could be adapted so that a layout is formed only by docked windows, without a main layout? First docked window takes full surface, second takes half and there is only one splitter. It would be nice if certain windows can be configured to tile vertically, and others horizontally. I believe this is some work and I'm not asking you to implement this for me. It is just an idea of what I would like to have, and I'm certain I can get it to work after some hacking by inserting a dummy header into the main layout, and an option to dynamically switch the context of it. But this is something for the future.

Something that is for now is a bug. I found that if you slowly drag a dock over a blueish highlighted surface you can leave a trail. To reproduce, open your test example, dock any window on the left for example. Take a second floating window, and drag it over the first one which is docked now. A blue highlight will appear. Move it around until the highlight covers the whole window (not just top or bottom). After the highlight appears, without releasing the mouse, move the window arround and you will see a trail.
Re: Docking package (plus examples) [message #15061 is a reply to message #15060] Thu, 27 March 2008 20:28 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
I just reread my post and the direction are not as clear as they could have been. Here is a picture to help:

index.php?t=getfile&id=1111&private=0


  • Attachment: dock.PNG
    (Size: 43.42KB, Downloaded 1974 times)
Re: Docking package (plus examples) [message #15069 is a reply to message #15060] Fri, 28 March 2008 14:40 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
I've just uploaded a new version to the repository:
-Animation and auto resize now work perfectly, I still need to add some more intelligence to the resize algorithm but for now it works very well (no more problems with not having enough space).
-Pop-up docking hints are supported again (and should be forever now). Just inherit from PopUpDockWindow instead of DockWindow.
-Some other minor stuff.
Re: Docking package (plus examples) [message #15070 is a reply to message #15060] Fri, 28 March 2008 14:45 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Something that is for now is a bug.

Thanks, I was trying to do it with a transparent Ctrl, which doesn't work very well in Upp Sad . Fixed now.

But I found a way to improve my interface, but it seems that I have special needs Smile.

If I understand correctly this actually doesn't sound too difficult to do, but is quite different to how the docking works at the moment. What you actually need is a single ctrl like a tree of splitters:
Internal structure:
H- horizontal splitter node
V- vertical splitter node
cN- ctrls (leaves)
                     Root (horizontally split)
                     /    \
                    H      V
                   / \    / \
                  V   c3 c4  c5
                 / \
                c1  c2

Appearance:
        -------------
        |c1|  |     |
        |  |  | c4  |
        |--|c3|-----|
        |c2|  | c5  |
        |  |  |     |
        -------------

and then add the abitility to drag-drop the ctrls around. It's an interesting concept, if you can make it work right. I've already got a SplitterTree ctrl so I might have a quick play with it. You can also just implement this by adding splitters to splitters to form the tree, but this gets unwieldy quite quickly.

James

[Updated on: Fri, 28 March 2008 17:09]

Report message to a moderator

Re: Docking package (plus examples) [message #15076 is a reply to message #15060] Fri, 28 March 2008 17:07 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Well, that was easy. Quite a bit of deleting, about 20 lines of code and we have a new interface.

It's a modified version of the Docking package, almost all of the features work except for Serialization/Animation. These are essentially the same problem, and because the tree structure is more complex than a normal splitter it's more difficult to do.

The example attached use the popup interface, although the drag-drop one also works.

Is this something like you were suggesting? I thinks it's quite cool in any case Smile
Re: Docking package (plus examples) [message #15077 is a reply to message #15076] Fri, 28 March 2008 17:08 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Source code
Re: Docking package (plus examples) [message #15080 is a reply to message #15077] Fri, 28 March 2008 20:55 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
Quote:

Well, that was easy. Quite a bit of deleting, about 20 lines of code and we have a new interface.

Wow! That even sounds easy! I was aware of an approach with multiple splitters, but before I would have produced something with the fraction of the functionality of you framework it would have certainly taken me quite some time.

And I really like it. It was exactly what I was hopping for. You see, I have o TotalCmd like interface, with the left side different from the right side. Each side has for choseable layouts. With the previous version of the docking package I would have had to select one of them and make them the main layout and second with a dock and the rest of them as pre-hidden ones. This is all OK, but the design goals was to have both windows on the screen at the same time and they both have the same importance.

But with this new layout scheme, I can definitely get the ultimate (no pun intended) end user configuration possibility. I certainly think this has nice potential, and could possibly be used to emulate MDI/split screen document structure too.

And now for the bugs:
1. If you undock all windows, none can be docked again.
2. The ability to choose from the interface a position for docking is gone. As far as I can tell, this was dropped because position are no longer that straightforward. But still, a nice left and right at left could be achievable.
3. If I put a window to autohide, then I wait for it to appear and click on it's option button, a menu appears, but the window will automatically hide again. It should stay until the menu is closed.
4. Windows set to autohide can not be dragged away anymore.
5. Let an autohide open and quickly resize the window. You will see the pop-up borderless window stay in place.

Items 3 (only noticed for top position autohide docks) and 5 are also in the old code.

Anyway, thank you for giving my idea a shot Smile.

Re: Docking package (plus examples) [message #15100 is a reply to message #15080] Mon, 31 March 2008 12:32 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
cbpporter wrote on Fri, 28 March 2008 19:55

But with this new layout scheme, I can definitely get the ultimate (no pun intended) end user configuration possibility. I certainly think this has nice potential, and could possibly be used to emulate MDI/split screen document structure too.

And now for the bugs:
1. If you undock all windows, none can be docked again.
2. The ability to choose from the interface a position for docking is gone. As far as I can tell, this was dropped because position are no longer that straightforward. But still, a nice left and right at left could be achievable.
3. If I put a window to autohide, then I wait for it to appear and click on it's option button, a menu appears, but the window will automatically hide again. It should stay until the menu is closed.
4. Windows set to autohide can not be dragged away anymore.
5. Let an autohide open and quickly resize the window. You will see the pop-up borderless window stay in place.

Items 3 (only noticed for top position autohide docks) and 5 are also in the old code.

Anyway, thank you for giving my idea a shot Smile.



No problem. As I said it wasn't difficult to do and I agree that it's a nice interface for certain apps.

Item 4 on your list I haven't been able to reproduce. I've tested it on XP, Gnome and KDE and that portion of the code is identical to the original package (and hasn't changed for some time). Can you give more details? All the other items are fixable, though 3 is going to be difficult. The problem is that I'm not sure what to do with the code now.

If you'd like to use it I can fix 1, 2 & 4 and add serialization by the end of the week, which makes it useable in a real-world app. But unless there is interest from other parties I can't really justify maintaining it and adding Animation, which is a real pain. Unfortunately although 90% of the code is the same as the original docking package it's different enough that I can't see how to merge the two.

So let me know if you'd like me to make it useable and I'll have to think about what to do about maintaining it.

James

[Updated on: Mon, 31 March 2008 12:36]

Report message to a moderator

Re: Docking package (plus examples) [message #15101 is a reply to message #15100] Mon, 31 March 2008 15:22 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
Quote:

If you'd like to use it I can fix 1, 2 & 4 and add serialization by the end of the week, which makes it useable in a real-world app. But unless there is interest from other parties I can't really justify maintaining it and adding Animation, which is a real pain. Unfortunately although 90% of the code is the same as the original docking package it's different enough that I can't see how to merge the two.

So let me know if you'd like me to make it useable and I'll have to think about what to do about maintaining it.

James

I don't know how to proceed. Give a day or tho to look over the code, and if I can make head or tails out of it, maybe I can strip out all that I don't need and provide a package which I maintain until it reaches maturity (read no obvious bugs). But I can't promise anything, since there is so much code and so little time.
Re: Docking package (plus examples) [message #15102 is a reply to message #15101] Mon, 31 March 2008 16:47 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Good luck Smile That sounds like a reasonable plan, let me know if you need any help. The code can be slighly unruly in places but there is a structure and design to it (mainly an attempt to create a small public interface and maintain loose-coupling between the internal classes). The DockCont class is the worst bit but that handles the tabbing/nesting and you shouldn't have to worry about it.
Re: Docking / DockTest packages [message #15209 is a reply to message #14888] Wed, 09 April 2008 16:34 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
I've updated the Docking package in the SVN.

SVN Revision 211 Changes:
- Major improvement to the Smart-Resize algorithm. Works very well now.
- Additional window animation (floating windows now 'slide' into place when docked).
- Improved group tree in config window
- Some internal refactoring and various little fixes. No major bugs (none found Smile).

James

[Updated on: Thu, 10 April 2008 16:10]

Report message to a moderator

Re: Docking package (plus examples) [message #15275 is a reply to message #15102] Tue, 15 April 2008 00:21 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1428
Registered: September 2007
Ultimate Contributor
mrjt wrote on Mon, 31 March 2008 17:47

Good luck Smile That sounds like a reasonable plan, let me know if you need any help. The code can be slighly unruly in places but there is a structure and design to it (mainly an attempt to create a small public interface and maintain loose-coupling between the internal classes). The DockCont class is the worst bit but that handles the tabbing/nesting and you shouldn't have to worry about it.

Wow, that took me a lot longer than expected! I have now a basic grasp of the inner workings of your code. This is good, but right now I don't know what to do with it. The next update of my app got published with the same TC like interface, and so far there were no complains regarding it. So I don't know if maintaining a fork of your docking system would be a wise decision, especially since the next update is planned for August. But I would like to investigate a way to make any control pop-upable (is that a word Smile ) with minimal impact on core packages.

But I really love your tree code. I wonder what the impact of a college course (if there are still C++ courses, with all the Java ones)which teaches such tree data would have. Unfortunately, here in my local city at it's relatively high regarded Computer Science course, tree structures (and other data structures) as well are thought with nasty plain C style. This is fine for an introductory level, but taking into account the shear number of hours dedicated to the subject, some higher level stuff would be welcome. And I'm sure that 75% of students would break their teeth on that code Twisted Evil.
Re: Docking package (plus examples) [message #15279 is a reply to message #15275] Tue, 15 April 2008 10:56 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
cbpporter wrote on Mon, 14 April 2008 23:21

So I don't know if maintaining a fork of your docking system would be a wise decision

Cool. I'd like to come back to this later though, perhaps after I've finished with the main package and can think of integrating them somehow. I think it's an interesting paradigm that I haven't seen anywhere else so it's a fun experiment.

Quote:

But I would like to investigate a way to make any control pop-upable (is that a word Smile ) with minimal impact on core packages.

I'm not quite sure what you mean (presumably not just calling Popup on a ctrl), but if you can give me a more detailed description I'm sure I can help. I consider myself a bit of an expert of that subject now Smile

Quote:

But I really love your tree code. I wonder what the impact of a college course (if there are still C++ courses, with all the Java ones)which teaches such tree data would have. Unfortunately, here in my local city at it's relatively high regarded Computer Science course, tree structures (and other data structures) as well are thought with nasty plain C style. This is fine for an introductory level, but taking into account the shear number of hours dedicated to the subject, some higher level stuff would be welcome. And I'm sure that 75% of students would break their teeth on that code Twisted Evil.

No doubt Smile I'm still not sure myself whether the Tree class was a stroke of brilliance or absolute madness. And I couldn't write code like that before encountering Upp and reading lots of Mirek's code, but I did at least get taught lots of C++ data structures on my CS course (and Computational Geometry).

Some/all of the traverses don't work correctly I'm afraid, I didn't notice until I tried to do serialization and I haven't got round to fixing them yet.


Re: Docking package (plus examples) [message #16041 is a reply to message #15279] Fri, 23 May 2008 18:21 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Just a quick post so that it doesn't look like the package is dead really. I haven't been posting updates since there aren't really any new features, just incremental improvements.

X11 support has been improved (including performance).
TabBar theming has been much improved thanks to unodgs.
API documentation is now included.
Many bugs squashed.

[Updated on: Fri, 23 May 2008 18:38]

Report message to a moderator

Re: Docking package (plus examples) [message #16042 is a reply to message #16041] Sat, 24 May 2008 01:05 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1278
Registered: August 2007
Senior Contributor
Quote:


Just a quick post so that it doesn't look like the package is dead really. I haven't been posting updates since there aren't really any new features, just incremental improvements.

X11 support has been improved (including performance).
TabBar theming has been much improved thanks to unodgs.
API documentation is now included.
Many bugs squashed.



Well, mrjt congratulations. It seems that you have won the "competition" (If there was one) Smile I was away for a long while and I had to pause the development of my DockCtrl package, since I was very busy with my other projects and my ph.d. I'm sorry for that, but I'm glad to see that, at least it encouraged you to finalize your solution (or I hope so Wink ) And one more thing, if you would like to use my packages control panel style, etc. and "DockCtrl" label for your docking package, please do it.


Well, for me, probably, I'll come up with something totally new (a new ctrl maybe) and/or some additons/ideas to your package (if you ask for any) this summer Wink

And I would like to thank the U++ community for their support to the DockCtrl package. Smile

Regards.


[Updated on: Sat, 24 May 2008 01:12]

Report message to a moderator

Re: Docking package (plus examples) [message #16043 is a reply to message #16042] Sat, 24 May 2008 18:49 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Well, perhaps a bit of friendly competion, it's good for motivation Smile But I definitely wouldn't have got it working this well without your ideas and designs, so thanks!

And if you have any more of those good ideas please let me know, or try them out yourself Smile. 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.

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: 1278
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: 1278
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: 14291
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: 14291
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: 1367
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: 14291
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: 1278
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: 1433
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: 1433
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: 1433
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: 1433
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: 1278
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: Mon Sep 14 00:08:39 GMT+2 2026

Total time taken to generate the page: 0.05147 seconds