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 » Community » U++ community news and announcements » Docking host platform dependency refactored
Docking host platform dependency refactored [message #40103] Tue, 11 June 2013 08:17 Go to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Docking package had some platform dependent code (for Win32/X11) used to track moving of tool windows. This obviously created problems when porting to other platforms.

I have refactored this issue out by using frameless TopWindow and implementing moving behavior in our code. In the process I have also added frameless support for plain X11 and fixed some mouse event/capture related issues.

Mirek
Re: Docking host platform dependency refactored [message #40158 is a reply to message #40103] Tue, 25 June 2013 02:44 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
It looks like this refactoring changed the way docking panel can be resized. DockableCtrl can be resized independently from enclosing window. Example:
void wnb3::DockInit()
{
	DockableCtrl& target01 = Dockable(ont_tree, "Ontology Tree").SizeHint(Size(400, 300));
	DockRight(target01);
	
	Tabify(target01, Dockable(wtree, "Tree").SizeHint(Size(200, 300)));
	Tabify(target01, Dockable(wtext, "Text").SizeHint(Size(200, 300)));
}

index.php?t=getfile&id=4231&private=0
I just dragged right and left sides of the DockableCtrl. Resizing of the main window restores correct layout of the DockableCtrl.
This happens in Windows and Linux.


Regards,
Novo
Re: Docking host platform dependency refactored [message #40160 is a reply to message #40158] Tue, 25 June 2013 08:49 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
I have to say I am not sure I understand the issue. Can you be more specific please? (eventually adding some test-case).

Mirek
Re: Docking host platform dependency refactored [message #40163 is a reply to message #40160] Tue, 25 June 2013 16:12 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
mirek wrote on Tue, 25 June 2013 02:49

I have to say I am not sure I understand the issue. Can you be more specific please? (eventually adding some test-case).

Mirek


reference/DockingExample1
I can make this example look like below.
index.php?t=getfile&id=4235&private=0
Changing size of the main window will fix the layout.
It is possible to resize individual DockingControls, which are supposed to be aligned to the main window. So, instead of changing size of the main window you end up changing size of a DockingControl. I do not know how else this can be explained. For example, ArrayCtrl 2 is docked to the top and it is supposed to be aligned to the left and right side of the main window, but I can resize it in any direction. Resizing the main window will relayout docking controls. This doesn't look like a consistent behavior.
  • Attachment: docking04.png
    (Size: 30.50KB, Downloaded 709 times)


Regards,
Novo
Re: Docking host platform dependency refactored [message #40167 is a reply to message #40163] Wed, 26 June 2013 12:09 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Ah, I see - the problem is that the "window" can be resized even if it is docked, right?
Re: Docking host platform dependency refactored [message #40168 is a reply to message #40167] Wed, 26 June 2013 15:22 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
mirek wrote on Wed, 26 June 2013 06:09

Ah, I see - the problem is that the "window" can be resized even if it is docked, right?

I guess you are right.


Regards,
Novo
Re: Docking host platform dependency refactored [message #40170 is a reply to message #40168] Wed, 26 June 2013 19:29 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Novo wrote on Wed, 26 June 2013 09:22

mirek wrote on Wed, 26 June 2013 06:09

Ah, I see - the problem is that the "window" can be resized even if it is docked, right?

I guess you are right.


Hopefully fixed.

Mirek
Re: Docking host platform dependency refactored [message #40173 is a reply to message #40170] Thu, 27 June 2013 18:52 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
mirek wrote on Wed, 26 June 2013 13:29

Novo wrote on Wed, 26 June 2013 09:22

mirek wrote on Wed, 26 June 2013 06:09

Ah, I see - the problem is that the "window" can be resized even if it is docked, right?

I guess you are right.


Hopefully fixed.

Mirek


Thank you! It is fixed.

There is another issue, well, this is not a problem, that I can see in the new version of Docking: you cannot dock two floating windows into each other. You have to dock first floating window into the main window, and only after that you can dock another floating window into it. You can undock a bunch of tabified windows, after that you can undock individual tabified windows, but you cannot restore previous state by creating a floating windows with tabs. This is easily reproducible with DockingExample1.

Thanks.


Regards,
Novo
Re: Docking host platform dependency refactored [message #40205 is a reply to message #40103] Wed, 03 July 2013 06:16 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
Another observation: floating window has a weird dockbar. It has no menu and only one button with weird tooltip (Shift+65617246). Example: reference/DockingExmple1. Checked on Windows.

Regards,
Novo
Re: Docking host platform dependency refactored [message #40206 is a reply to message #40205] Wed, 03 July 2013 07:47 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Thanks for reporting. I am trying to fix all of that...

Anyway, are you sure that "tabify against floating" really worked in previous versions? I have checked the code (albeit not thoroughtly yet) and I see no support yet...

Mirek
Re: Docking host platform dependency refactored [message #40258 is a reply to message #40206] Sat, 13 July 2013 12:04 Go to previous messageGo to next message
281264 is currently offline  281264
Messages: 270
Registered: June 2010
Location: Spain
Experienced Member
When compiling DockingExample1 the compiler reports this error:
----- CtrlLib ( GUI MSC9 DEBUG WIN32 MSC ) (1 / 11)
----- Docking ( GUI MSC9 DEBUG WIN32 MSC ) (2 / 11)
DockPane.cpp
C:\Upp\Bazaar\Docking\DockPane.cpp(7) : error C2065: 'width' : undeclared identifier
C:\Upp\Bazaar\Docking\DockPane.cpp(400) : error C2065: 'width' : undeclared identifier
C:\Upp\Bazaar\Docking\DockPane.cpp(404) : error C2065: 'width' : undeclared identifier
Docking: 1 file(s) built in (0:01.25), 1250 msecs / file, duration = 1297 msecs, parallelization 0%

There were errors. (0:02.07)


Apparently, the variable width is not defined.

Javier
Re: Docking host platform dependency refactored [message #40261 is a reply to message #40258] Sat, 13 July 2013 21:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
This is really weird, are you sure that you have the latest version?

I have first tried my current local copy, then svn checkout, then downloaded sources from the nightly build and everything is OK.

Mirek
Re: Docking host platform dependency refactored [message #40262 is a reply to message #40261] Sat, 13 July 2013 21:25 Go to previous messageGo to next message
BioBytes is currently offline  BioBytes
Messages: 307
Registered: October 2008
Location: France
Senior Member
Hi,

I got the same compiling issue with DockingExample1 (width variable is not defined!?):

----- CtrlLib ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (1 / 11)
----- Docking ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (2 / 11)
BLITZ: DockWindow.cpp DockConfig.cpp DockMenu.cpp DockableCtrl.cpp DockCont.cpp DockPane.cpp DockTabBar.cpp
----- CtrlCore ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (3 / 11)
----- PdfDraw ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (4 / 11)
BLITZ: TTFStream.cpp TTFStruct.cpp TTFReader.cpp TTFSubset.cpp
PdfDraw.cpp
PdfReport.icpp
----- Draw ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (5 / 11)
BLITZ: Font.cpp FontCR.cpp FontWin32.cpp FontFc.cpp Draw.cpp DrawText.cpp DrawData.cpp Drawing.cpp ImageAnyDraw.cpp DrawUtil.cpp DrawTextUtil.cpp Display.cpp Image.cpp ImageBlit.cpp RasterFormat.cpp RasterW
	rite.cpp Palette.cpp Raster.cpp RasterEncoder.cpp ImageOp.cpp ImageChOp.cpp ImageScale.cpp BiCubic.cpp RescaleFilter.cpp MakeCache.cpp DrawRasterData.cpp DDARasterizer.cpp SDrawClip.cpp SDrawPut.cpp SDrawTe
	xt.cpp SDraw.cpp SImageDraw.cpp Cham.cpp SSettings.cpp
----- plugin/bmp ( GUI GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (6 / 11)
BLITZ: Bmp.cpp BmpWrite.cpp Icon.cpp
BmpReg.icpp
In file included from /home/patrick/Documents/OutProjsUpp/Bazaar/Docking/GCC.Debug.Debug_Full.Gui.Shared/$blitz.cpp:74:0:
/usr/share/upp/bazaar/Docking/DockPane.cpp: In member function ‘int Upp::DockPane::ClientToPos(const Size&)’:
/usr/share/upp/bazaar/Docking/DockPane.cpp:7:11: erreur: ‘width’ was not declared in this scope
/usr/share/upp/bazaar/Docking/DockPane.cpp: In member function ‘Upp::Rect Upp::DockPane::GetFinalAnimRect(Upp::Ctrl&)’:
/usr/share/upp/bazaar/Docking/DockPane.cpp:400:33: erreur: ‘width’ was not declared in this scope
/usr/share/upp/bazaar/Docking/DockPane.cpp:404:32: erreur: ‘width’ was not declared in this scope
Docking: 7 file(s) built in (0:00.17), 24 msecs / file, duration = 3631 msecs, parallelization 100%
PdfDraw: 6 file(s) built in (0:00.24), 40 msecs / file, duration = 4112 msecs, parallelization 100%
plugin/bmp: 4 file(s) built in (0:00.05), 13 msecs / file, duration = 3056 msecs, parallelization 100%
Draw: 34 file(s) built in (0:02.38), 70 msecs / file, duration = 7418 msecs, parallelization 75%

There were errors. (0:08.02)



I am running on Ubuntu 12.10 and Upp Svn 6187.

Regards

Biobytes
Re: Docking host platform dependency refactored [message #40264 is a reply to message #40262] Sat, 13 July 2013 21:38 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Even more weird. If you look to what is in repository, it seems to be OK:

http://code.google.com/p/upp-mirror/source/browse/trunk/upps rc/Docking/DockPane.cpp

(the method is commented out...)

Can you both please check whether you are using the 'correct' package? The one from uppsrc?

Mirek
Re: Docking host platform dependency refactored [message #40265 is a reply to message #40264] Sat, 13 July 2013 22:12 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1076
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

It seems that, there are two docking packages one from bazzar and one from uppsrc. Personally, I think that we should remove three following packages from bazzar: "Docking", "DockingExample1" and "DockingExample2". Two independent packages for docking contributes to unnecessary chaos. At the end, I would like to notice that "Docking" from uppscr compiles, but "Dokcing" from bazzar dosen't.

Guys, Can you try compile packages from "reference" assembly (DockingExample1 & DockingExample2)?

Sincerely,
Klugier


U++ - one framework to rule them all.
Re: Docking host platform dependency refactored [message #40266 is a reply to message #40265] Sun, 14 July 2013 00:07 Go to previous messageGo to next message
281264 is currently offline  281264
Messages: 270
Registered: June 2010
Location: Spain
Experienced Member
I've tested DockingExample1&2 in Reference and both work fine; the code lines in DockPane.cpp containing the “width” variable are disabled (treated as comments); perhaps it would wise to update the corresponding versions in Bazaar.

Thx,

Javier
Re: Docking host platform dependency refactored [message #40268 is a reply to message #40266] Sun, 14 July 2013 09:47 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
281264 wrote on Sat, 13 July 2013 18:07

I've tested DockingExample1&2 in Reference and both work fine; the code lines in DockPane.cpp containing the �width� variable are disabled (treated as comments); perhaps it would wise to update the corresponding versions in Bazaar.

Thx,

Javier


OK, removed from Bazaar...

Mirek
Re: Docking host platform dependency refactored [message #40271 is a reply to message #40268] Sun, 14 July 2013 14:34 Go to previous messageGo to next message
BioBytes is currently offline  BioBytes
Messages: 307
Registered: October 2008
Location: France
Senior Member
Hello Mirek,

All is working perfectly when docking package is removed from bazaar keeping only the files in uppsrc directory. Smile

Regards
Biobytes
Re: Docking host platform dependency refactored [message #40274 is a reply to message #40206] Sun, 14 July 2013 18:57 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
mirek wrote on Wed, 03 July 2013 01:47

Thanks for reporting. I am trying to fix all of that...

Anyway, are you sure that "tabify against floating" really worked in previous versions? I have checked the code (albeit not thoroughtly yet) and I see no support yet...

Mirek


Sorry for the delay with the answer.

"tabify against floating" didn't work in previous version. I checked that against version from 2011-12-01.

One big difference between version from 2011 and current version is that floating window was a regular decorated window without a custom-made docking bar. Current floating window is undecorated, but has a docking bar with no menu and a broken close button.

Another observation related to the docking bar menu. It is quite confusing. It uses combination of check box with sub-menu. This combination doesn't work as somebody would expect. In some cases actions caused by using this menu are just not logical. Example Auto-Hide --> Right and repeat the same Auto-Hide --> Right on the same control, you will end up with a docked control.

Another weird behavior: double-click on docking bar will undock window, double-clicking on floating window right after it became floating won't have any effect, but if you click on main window and after that you single-click on a bar of floating window it will dock back.


Regards,
Novo

[Updated on: Mon, 15 July 2013 02:33]

Report message to a moderator

Re: Docking host platform dependency refactored [message #40276 is a reply to message #40274] Sun, 14 July 2013 20:37 Go to previous messageGo to previous message
281264 is currently offline  281264
Messages: 270
Registered: June 2010
Location: Spain
Experienced Member
Docking is an outstanding tool without question; however it has got some limitations in addition to what are mentioning. For example, if you use it with GlCtrl in several windows/panes and assign the “auto-hide” mode to one of the vissible windows, then the “fixed central” pane gets distorted and does not work well.

In my opinion, Mirek is the only person (I think James Thomas -the author- is no longer maintaining Docking) with enough knowledge to fix this aberrant behaviour.

By the way, thanks Mirek for adjusting and tweaking Docking.

Javier
Previous Topic: EditNumber
Next Topic: New small hidden feature of ArrayCtrl
Goto Forum:
  


Current Time: Sat Apr 20 03:35:31 CEST 2024

Total time taken to generate the page: 0.04754 seconds