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 » U++ Library support » U++ Widgets - General questions or Mixed problems » DockCtrl (A dockable window widget for U++)
Re: DockCtrl (A dockable window widget for U++) [message #14331 is a reply to message #14330] Fri, 22 February 2008 16:27 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Oops! Embarassed

That's an addition I made to my version ages ago. I rediscovered it this morning and forgot that I'd added it myself Rolling Eyes

And now I remember that it breaks things. Bugger.

[Updated on: Fri, 22 February 2008 16:27]

Report message to a moderator

Re: DockCtrl (A dockable window widget for U++) [message #14346 is a reply to message #11482] Sat, 23 February 2008 03:14 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Ok, DND transparency effect and X11 DND support added to the source code. I've also reverted the DockCtrl SVN folder back to the bazaar/DockCtrl and Bazaar/DockCtrlExample.

And as usual, I aupdated the example exe. You can see the tranparency effect. (Thanks to Mrjt for the transparent image painting code)

Regards.


Re: DockCtrl (A dockable window widget for U++) [message #14352 is a reply to message #14346] Sat, 23 February 2008 13:38 Go to previous messageGo to next message
masu is currently offline  masu
Messages: 378
Registered: February 2006
Senior Member
I tried to compile SVN rev157 under FreeBSD and fixed some minor errors, but I got stuck with a missing call to MoveEnd():
/home/masu/upp_uvs/bazaar/DockCtrl/DockWindow.cpp: In member function 'virtual void DockWindow::EventPr
	oc(Upp::Ctrl::XWindow&, XEvent*)':
/home/masu/upp_uvs/bazaar/DockCtrl/DockWindow.cpp:184: error: 'MoveEnd' was not declared in this scope
DockableCtrl.cpp
/home/masu/upp_uvs/bazaar/DockCtrl/DockableCtrl.cpp: In member function 'void DockableCtrl::StartWindow
	Drag()':
/home/masu/upp_uvs/bazaar/DockCtrl/DockableCtrl.cpp:263: error: 'p' was not declared in this scope


I could not find this function inside project sources, but there is one in James' Docking package. Did you forget this one?

Matthias
  • Attachment: Dock.zip
    (Size: 214.34KB, Downloaded 283 times)


931b81e7ea53320dccc37375b34b38c3
Re: DockCtrl (A dockable window widget for U++) [message #14354 is a reply to message #14352] Sat, 23 February 2008 14:22 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


I tried to compile SVN rev157 under FreeBSD and fixed some minor errors, but I got stuck with a missing call to MoveEnd():

/home/masu/upp_uvs/bazaar/DockCtrl/DockWindow.cpp: In member function 'virtual void DockWindow::EventPr
oc(Upp::Ctrl::XWindow&, XEvent*)':
/home/masu/upp_uvs/bazaar/DockCtrl/DockWindow.cpp:184: error: 'MoveEnd' was not declared in this scope
DockableCtrl.cpp
/home/masu/upp_uvs/bazaar/DockCtrl/DockableCtrl.cpp: In member function 'void DockableCtrl::StartWindow
Drag()':
/home/masu/upp_uvs/bazaar/DockCtrl/DockableCtrl.cpp:263: error: 'p' was not declared in this scope



I could not find this function inside project sources, but there is one in James' Docking package. Did you forget this one?



Ooops Embarassed
I forgot to adjust the code(MoveEnd() should be removed).
Ok, I've updated the SVN. But there are two issues you need to know about the current SVN version.

1. The code is not tested. For, the computer I have installed the Ubuntu distro was broken. I'll get my hands on it this week. So I need some feedback about the DnD behaviour. I would be grateful if you could give me some feedbacks about the DockCtrl X11 behaviour.

2. Tab transparency effect has a strange bug which causes a tab window in a PaneFrame with more than one childs to draw improperly(I'm trying to find the reason of this strange behaviour).




[Updated on: Sat, 23 February 2008 14:32]

Report message to a moderator

Re: DockCtrl (A dockable window widget for U++) [message #14364 is a reply to message #14354] Sat, 23 February 2008 22:35 Go to previous messageGo to next message
masu is currently offline  masu
Messages: 378
Registered: February 2006
Senior Member
Unfortunately, the application does not start up.
I attached an archive with a patch (has to be applied in DockCtrl directory) that contains once more the changes I had to do to get the package compiled.
The archive also contains the buglog and log files, an error occurred during Value conversion (at least that's what an error dialog told me).

Matthias
  • Attachment: DockCtrl.zip
    (Size: 19.27KB, Downloaded 280 times)
Re: DockCtrl (A dockable window widget for U++) [message #14367 is a reply to message #14364] Sun, 24 February 2008 00:22 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Confused
Well, that's a bad news. Whatever, I'm growing impatient. Hopefully I'll have the chance to examine it this week (I'll get my mobo back from the computer service on monday. After then, my primary target will be X11 support...

Thank you for your feedback. I'll apply any changes necessary.

Also, the tab transparency effect bug is fixed. It works fine on (2000/XP Pro and Home/Vista - Basic).


Re: DockCtrl (A dockable window widget for U++) [message #14368 is a reply to message #14364] Sun, 24 February 2008 01:18 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Ok, Masu I've patched the files. Also, I've re-installed that ever-complaining cr... compiler (MingW 5.1.3) again. It seems that the crash was due to a typecasting bug in AlphaHighlight() function.

static Image AlphaHighlight(const Image &img, int alpha)
{
	ImageDraw draw(img.GetSize());
	draw.Alpha().DrawRect(img.GetSize(), Color(alpha, alpha, alpha));
	draw.DrawImage(0, 0, img);
	// MingW (5.1.3) fix - Damn, I hate that ever-complaining compiler.
	Image dimg = draw;
	// Is there a better way to set hotspots than this?
	ImageBuffer ib(dimg);
	ib.SetHotSpot(Point(1, 1));
	ib.Set2ndSpot(Point(3, 3));
	return ib;
}


Mrjt, you should check this out too.

Regards.


[Updated on: Sun, 24 February 2008 01:19]

Report message to a moderator

Re: DockCtrl (A dockable window widget for U++) [message #14376 is a reply to message #14368] Sun, 24 February 2008 15:34 Go to previous messageGo to next message
masu is currently offline  masu
Messages: 378
Registered: February 2006
Senior Member
Unfortunately, the error persist.
I began to debug application and found that the error somehow occurs when trying to cast from 'const Value::Void*' to 'const RichValueRep' that appears in Value.h line 438.

Matthias
Re: DockCtrl (A dockable window widget for U++) [message #14378 is a reply to message #14376] Sun, 24 February 2008 16:11 Go to previous messageGo to next message
masu is currently offline  masu
Messages: 378
Registered: February 2006
Senior Member
Ok, I have found the problem.
In DockCtrl.h change line 634 from
DragBar() : _parent(0), _titlesize(0) { SetFrame(FieldFrame()); }

to
DragBar() : _parent(0), _titlesize(0,0) { SetFrame(FieldFrame()); }

Size constructor parameter initialization was wrong and therefore RichValue conversion to Size_ failed.

So, now I can start application, but when trying to drag first frame, it is only detached and not movable until I release the mouse button. After that action the GUI is not refreshed anymore.
Also the auto hide feature does not work, i.e. when I move the mouse cursor over Dock 6 it is highlighted, but the window does not appear.
What however works is Tab position dragging.

Matthias

[Updated on: Sun, 24 February 2008 16:36]

Report message to a moderator

Re: DockCtrl (A dockable window widget for U++) [message #14381 is a reply to message #14378] Sun, 24 February 2008 17:44 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


Size constructor parameter initialization was wrong and therefore RichValue conversion to Size_ failed.

So, now I can start application, but when trying to drag first frame, it is only detached and not movable until I release the mouse button. After that action the GUI is not refreshed anymore.
Also the auto hide feature does not work, i.e. when I move the mouse cursor over Dock 6 it is highlighted, but the window does not appear.
What however works is Tab position dragging.

Matthias



Thank you very much. I'll change that. Please be patient (so should I Smile ) Tomorrow when I get my mobo back I'll focus exclusively on these issues.


Regards.


Re: DockCtrl (A dockable window widget for U++) [message #14394 is a reply to message #14381] Mon, 25 February 2008 10:35 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
The problem with the AutoHide is that X11 doesn't open the popup properly if any of the dimensions are 0. I fixed this after Oblivion copied my code.
Re: DockCtrl (A dockable window widget for U++) [message #14411 is a reply to message #14394] Mon, 25 February 2008 19:32 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


The problem with the AutoHide is that X11 doesn't open the popup properly if any of the dimensions are 0. I fixed this after Oblivion copied my code.



Yes, I've noticed that later, Thank you mrjt. Smile


Re: DockCtrl (A dockable window widget for U++) [message #14418 is a reply to message #11482] Tue, 26 February 2008 01:05 Go to previous messageGo to next message
Sc0rch is currently offline  Sc0rch
Messages: 99
Registered: February 2008
Location: Russia, Rubtsovsk
Member

Please, sorry for my English (just learning). Screenshot below illustrates how I want to setup widget areas. But whatever I do, DockCtrl overrides content or/and sets it into the center of the window.

Please, help with a little code-snippet or a little bit modified DockCtrlExample or tell me in what direction I have to dig.

Thank you,
Anton.
  • Attachment: image1.png
    (Size: 4.59KB, Downloaded 286 times)
Re: DockCtrl (A dockable window widget for U++) [message #14419 is a reply to message #14418] Tue, 26 February 2008 02:14 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


Please, sorry for my English (just learning). Screenshot below illustrates how I want to setup widget areas. But whatever I do, DockCtrl overrides content or/and sets it into the center of the window.

Please, help with a little code-snippet or a little bit modified DockCtrlExample or tell me in what direction I have to dig.

Thank you,
Anton.



Confused Yes, that's because I didn't add a barctrl check mechanism to the DockCtrl (it's on my todo list). Nevertheless, the solution to your problem is very easy, just add any barctrl (menu, toolbar) to the main window you use BEFORE Add()ing DockCtrl.

I've added the DockCtrlExample below, take a look at the lines 26-29 in main.cpp. I hope it'll help you.

And please keep in mind that DockCtrl in not in production state. It still has a long way to go (But Hopefully, it'll be mature enough at the end of March). Wink




[Updated on: Tue, 26 February 2008 02:16]

Report message to a moderator

Re: DockCtrl (A dockable window widget for U++) [message #14421 is a reply to message #14419] Tue, 26 February 2008 06:58 Go to previous messageGo to next message
Sc0rch is currently offline  Sc0rch
Messages: 99
Registered: February 2008
Location: Russia, Rubtsovsk
Member

Oblivion


Yes, that's because I didn't add a barctrl check mechanism to the DockCtrl (it's on my todo list).


Yes, of course, I understand, the screenshot was just an illustration of idea.

Oblivion


Nevertheless, the solution to your problem is very easy... I hope it'll help you.


I'm using Upp just a month and I've completely forgot about AddFrame-methods. Menubar's behaviour (as popup-menu) looks confusing me, but I'll read a appropriate threads. Thank you.

Oblivion


And please keep in mind that DockCtrl in not in production state. It still has a long way to go (But Hopefully, it'll be mature enough at the end of March). Wink


Of course, it still has a way to go. But current state of DockCtrl development also very usefull. I'm looking for use it in my projects.

Here the latest t-file from SVN-repository, completely translated to Russian, and more correct layout-file. I hope that it can be usefull for you.

Anton
  • Attachment: DockCtrl.t
    (Size: 8.79KB, Downloaded 282 times)
  • Attachment: DockCtrl.lay
    (Size: 1.42KB, Downloaded 244 times)
Re: DockCtrl (A dockable window widget for U++) [message #14426 is a reply to message #14421] Tue, 26 February 2008 10:41 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


Here the latest t-file from SVN-repository, completely translated to Russian, and more correct layout-file. I hope that it can be usefull for you.

Anton



Smile
Thank you very much. I'll add these to the current SVN today.

Regards


Re: DockCtrl (A dockable window widget for U++) [message #14465 is a reply to message #11482] Wed, 27 February 2008 00:41 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Finally, I've managed to fix all the MAJOR issues about X11. DockCtrl now has full docking support on X11 platform. Tested on Kubuntu 7.10 (Ubuntu with KDE) and works perfectly.



Re: DockCtrl (A dockable window widget for U++) [message #14478 is a reply to message #14329] Wed, 27 February 2008 10:13 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1366
Registered: November 2005
Location: Poland
Ultimate Contributor

Quote:

Well, we are "unofficially" cooperating already (at least, I'm using some part of Mrjt's code. E.g. I took the Autohidebar animation control, X11 support (by the way, I've implemented mrjt's X11 support but have no time to test it due to some technical reasons. I Will upload it tonight to the SVN) alpha blending from him. (I've implemented this too, I took severeal lines of code ) And I'm very thankful to him.

I can see that Smile That's really great!
Quote:


But there is one big problem with our docking frameworks: they are, totally (or, let's say mostly) different. We use different techniques to handle the docks. They look similar, but not act so. So, IMHO, it would be painful to "merge" them. Yet we still can and already cooperate (As I said before, he helps me most of the time).


That's a pity but I must check what the differences really are. The point is API can be different but as long as everything mrjt want can be done in our API there is no reason to develop his own docking system. It's better to extened the existing one.
On the second hand if that's ok for mrjt that we use his code to improve our system let's stay with current develop model.
Quote:


My TabBar Paint routine not based on the current QuickTabs Paint code, as I wrote it before you added support for different alignments. Mine works by pre-caching all the rotated/mirrored style elements so that you don't have to do image copying and rotation in the Paint routine. On the other-hand the code is more complex.


Yes, I'm gonna do the same, but later. For now I just want tabs to paint and behave corretly.


Re: DockCtrl (A dockable window widget for U++) [message #14483 is a reply to message #14478] Wed, 27 February 2008 10:37 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Quote:

On the second hand if that's ok for mrjt that we use his code to improve our system let's stay with current develop model.

That's fine. I've decided to drop the insanely complicated docking, but since I'm almost 'finished' I'm going to develop mine a bit further as it's much easier for me to experiment with features there, and it's already in use in an App.

Quote:

Quote:

My TabBar Paint routine not based on the current QuickTabs Paint code, as I wrote it before you added support for different alignments. Mine works by pre-caching all the rotated/mirrored style elements so that you don't have to do image copying and rotation in the Paint routine. On the other-hand the code is more complex.

Yes, I'm gonna do the same, but later. For now I just want tabs to paint and behave corretly.

Cool, it's certainly easier that way. If you can perfect the standard version I can then incorporate the changes, and at some point today I'll upload my TabBar to the SVN and you can have a look.
Re: DockCtrl (A dockable window widget for U++) [message #14492 is a reply to message #14478] Wed, 27 February 2008 12:57 Go to previous messageGo to previous message
Oblivion is currently offline  Oblivion
Messages: 1091
Registered: August 2007
Senior Contributor
Quote:


That's a pity but I must check what the differences really are. The point is API can be different but as long as everything mrjt want can be done in our API there is no reason to develop his own docking system. It's better to extened the existing one.
On the second hand if that's ok for mrjt that we use his code to improve our system let's stay with current develop model.



Well, there is no problem, except for the "complex docking". Of course I can add that feature to the DockCtrl too, but it will 1) bloat the code, 2) make my life harder Rolling Eyes , and frankly I'm not sure that it is a must, for we already have some different features like nested tabbing, nested autodocking and even a nested dockable framework. As to the other features, we already have most of them. If he permits, we sure can use James' tab code (that highligted tabs are really cool) and other new ideas he could give us. He could also make changes on the current DockCtrl SVN (James, if you have time, you are permitted "officially" Wink Very Happy to make any changes you see necessary.)

I can make "complex docking" an option, but probably in the next major version. Because, I need to change the internals without effecting the user API (and I don't wan't to make the current code instable).

By the way, does anyone have any idea about this issue:

http://www.ultimatepp.org/forum/index.php?t=msg&th=3220& amp;start=0&


Regards.


Previous Topic: TheIDE bug in layout designer?
Next Topic: Linux RectTracker problem
Goto Forum:
  


Current Time: Fri Mar 29 16:04:03 CET 2024

Total time taken to generate the page: 0.02473 seconds