wxAUI Improvements

Do you like to promote your wxWidgets based application or component!? Post it here and let's see what the critics have to say. Also, if you found that ONE wx component the world needs to know about, put it here for future reference.
NinjaNL
Moderator
Moderator
Posts: 899
Joined: Sun Oct 03, 2004 10:33 am
Location: Oosterwolde, Netherlands

Post by NinjaNL » Sun Mar 08, 2009 8:19 am

red_team316 wrote:NinjaNL and jjn, I have to agree with tierra for the most part about the patches. They really should be put on Trac. I did see NinjaNL added something about 6 days ago, so right on. If the patches are on Trac, as well as Kirix, then nobody can come back and point fingers.
I have added other patches. One implements a sort of minimize function for frames http://trac.wxwidgets.org/ticket/10185

Unfortunately, although I think this is a subtle improvement, there has been no comment/reaction even just to say thanks but no thanks. This is why I despair a little of wxAUI. I am aware that Ben is very busy, as are all the wxWidgets developers. Even a comment of "looks nice but it doesn't fullfill our desires" would be welcome. Anything. I understand eveyones comments about submitting to trac and will do so again, but the lack of any sort of feedback is depressing. (Note that I am really only commenting on wxAui feedback here - I don't believe that I can complain about other aspects of wxWidgets)
red_team316 wrote:NinjaNL, I have been testing a variation your ToolBar Orientation Horizontal/Vertical patch on wxGTK that does not modify the framemanager files and I must say, your patch is very clean looking and straight-forward other than the gripper comment possibly. I do not see it on Trac, I would like to see it there as this is one of the main reasons I decided to use wxWidgets rather than something else for my project. The only thing that seems a little odd about it is that when undocking a vertical toolbar, I think it should switch to a horizontal float.
You are probably correct there, I'll look into it.
red_team316 wrote:I don't think there is any problem with the way it is now, but it is odd since the caption cannot be read and that I have never used a program that undocks to a vertical floating toolbar. Possibly add a optional flag that forces the floating toolbar to be horizontal?...
This does make sense.
red_team316 wrote:Also since my variation of your patch doesn't modify wxAUI, I think it might be able to be encapsulated into a derived class(such as wxAUISmartToolBar) that overrides

Code: Select all

wxAuiManager::ProcessDockResult

bool ProcessDockResult(wxAuiPaneInfo& target, const wxAuiPaneInfo& new_pos)

ProcessDockResult() is a protected member of the wxAUI layout manager. It can be overridden by derived classes to provide custom docking calculations.
and in the overrrided function, call the DOCK/FLOATING events from there. My code uses wxIdleEvents at the moment since I traced back the actual dock/floating switch point is actually triggered at an IDLE event. The one thing that your toolbar patch shows is that these types of events are really needed.

What are your thoughts on a derived class that doesn't modify current wxAUI code?
If it works, then by all means use it. You could either generate the patch yourself, or post your code here (if it effectively becomes a derived class of wxAuiToolbar).

However I think that this sort of functionality SHOULD be contained within the standard wxAui system. So if you get to the point where you can get my code to do everything you want, then consider making a patch for the actual source of wxAui and of course submit a patch to trac.

Good luck.
Follow the development of my screenplay authoring program at http://wxscreenplaywriter.blogspot.com/

jjn
Earned a small fee
Earned a small fee
Posts: 21
Joined: Tue Sep 30, 2008 11:31 am

Post by jjn » Wed Mar 11, 2009 1:52 am

red_team316 wrote:NinjaNL and jjn, I have to agree with tierra for the most part about the patches.
When you post some patches for wxAUI to Trac by yourself, you may change your mind. :roll:

jacmoe
Experienced Solver
Experienced Solver
Posts: 64
Joined: Sun Feb 22, 2009 3:34 pm
Location: Denmark
Contact:

Post by jacmoe » Tue Mar 17, 2009 11:38 am

I just posted a small patch on the tracker:
http://trac.wxwidgets.org/ticket/10602

It enables wxAuiToolBar to handle radio buttons. :)
Small patch, which does not touch the interface at all.

Infinity_77
Experienced Solver
Experienced Solver
Posts: 89
Joined: Tue Oct 03, 2006 6:30 pm
Location: London, UK
Contact:

Post by Infinity_77 » Tue Mar 17, 2009 2:57 pm

Hi jjn, NinjaNL and All,

I have translated the whole wxAUI to wxPython, including all the modifications made by jjn and NinjaNL. It's working quite well, but I have few questions for you as it looks like you know much better than I do the internals of wxAUI:

1) The official wxAUI has the AUI_MGR_LIVE_RESIZE style, which allows you to see the resize of any sashes immediadely instead of drawing the sash on screen. Do you think it would be possible to add this style back to jjn's version of wxAUI? If the answer is yes, where should I look to implement it?

2) Once you float a pane, this pane lives in a AuiFloatingFrame which has its own manager: however, when you float another pane and you move it inside the AuiFloatingFrame there are no docking guides shown (as this second pane can not be docked inside the AuiFloatingFrame). Do you think it would be possible to enable the docking of a floating pane inside a AuiFloatingFrame (which has its own manager)? If yes, could you suggest a good place where to start hacking the code?

3) Have any of you made any other improvements to the modified wxAUI? If yes, would it be possible for you to share them?

Thank you for your suggestions and for your time.

Andrea.
"Imagination Is The Only Weapon In The War Against Reality."

http://xoomer.alice.it/infinity77/

jjn
Earned a small fee
Earned a small fee
Posts: 21
Joined: Tue Sep 30, 2008 11:31 am

Post by jjn » Wed Mar 18, 2009 1:13 am

Infinity_77 wrote:1) The official wxAUI has the AUI_MGR_LIVE_RESIZE style, which allows you to see the resize of any sashes immediadely instead of drawing the sash on screen. Do you think it would be possible to add this style back to jjn's version of wxAUI? If the answer is yes, where should I look to implement it?
It is a feature added in 2.8.10. You can see the following to implement it.
http://trac.wxwidgets.org/changeset/57885
Infinity_77 wrote:2) Once you float a pane, this pane lives in a AuiFloatingFrame which has its own manager: however, when you float another pane and you move it inside the AuiFloatingFrame there are no docking guides shown (as this second pane can not be docked inside the AuiFloatingFrame). Do you think it would be possible to enable the docking of a floating pane inside a AuiFloatingFrame (which has its own manager)? If yes, could you suggest a good place where to start hacking the code?
Maybe possible but hard work. I think the starting point for that is OnMotion_DragFloatingPane().
Infinity_77 wrote:3) Have any of you made any other improvements to the modified wxAUI? If yes, would it be possible for you to share them?
This file includes some small fixes. (Allow tab moving in auto notebooks, etc.)
http://www.mediafire.com/download.php?1g2nmmztjtn

If you have done more work on my modification, please post it here.

NinjaNL
Moderator
Moderator
Posts: 899
Joined: Sun Oct 03, 2004 10:33 am
Location: Oosterwolde, Netherlands

Post by NinjaNL » Wed Mar 18, 2009 4:37 am

jacmoe wrote:I just posted a small patch on the tracker:
http://trac.wxwidgets.org/ticket/10602
I posted an updated patch (based upon work done by r.u.10). Imagine my surprise when Ben responded almost immediately, wanting to apply the patch.

Unfortunately Vadim put the kibosh on it.

I understand his reasoning though, so now someone needs to reimplement the wxAuiMDI classes using a different base class for wxAuiMDIParentFrame (currently wxFrame derived needs to be wxMDIParentBase derived) and the event ProcessEvent stuff needs changing to the new TryBefore stuff. Also the whole code needs looking at as far as wxWidgets coding styles are concerned.

Then I can look at redoing the patch for the wxAuiDocMDI classes.
Follow the development of my screenplay authoring program at http://wxscreenplaywriter.blogspot.com/

jacmoe
Experienced Solver
Experienced Solver
Posts: 64
Joined: Sun Feb 22, 2009 3:34 pm
Location: Denmark
Contact:

Post by jacmoe » Wed Mar 18, 2009 1:13 pm

NinjaNL wrote:
jacmoe wrote:I just posted a small patch on the tracker:
http://trac.wxwidgets.org/ticket/10602
I posted an updated patch (based upon work done by r.u.10). Imagine my surprise when Ben responded almost immediately, wanting to apply the patch.
Is it related to my patch?
Was just a small modification to auibar.cpp, which makes it handle radio buttons properly. :)
It is a dead simple patch, not touching any interface.
That way it is real easy to apply: it doesn't break, nor change anything, only add a feature.
I asked about the feature on the Kirix forum, and Ben asked me to have a go at it, and I did. Which is probably why he responded so quickly. :wink:

NinjaNL
Moderator
Moderator
Posts: 899
Joined: Sun Oct 03, 2004 10:33 am
Location: Oosterwolde, Netherlands

Post by NinjaNL » Wed Mar 18, 2009 1:41 pm

jacmoe wrote:
NinjaNL wrote:
jacmoe wrote:I just posted a small patch on the tracker:
http://trac.wxwidgets.org/ticket/10602
I posted an updated patch (based upon work done by r.u.10). Imagine my surprise when Ben responded almost immediately, wanting to apply the patch.
Is it related to my patch?
No, nothing to do with your patch. This was a patch adding Doc/View functionality/classes to wxAui.
Follow the development of my screenplay authoring program at http://wxscreenplaywriter.blogspot.com/

jacmoe
Experienced Solver
Experienced Solver
Posts: 64
Joined: Sun Feb 22, 2009 3:34 pm
Location: Denmark
Contact:

Post by jacmoe » Wed Mar 18, 2009 1:46 pm

Oh, I see.
Let's hope it means that Ben is back in business. :)

Infinity_77
Experienced Solver
Experienced Solver
Posts: 89
Joined: Tue Oct 03, 2006 6:30 pm
Location: London, UK
Contact:

Post by Infinity_77 » Wed Mar 18, 2009 6:55 pm

Hi jjn & All,
jjn wrote: It is a feature added in 2.8.10. You can see the following to implement it.
http://trac.wxwidgets.org/changeset/57885
Thank you for the info, I got it working without too much effort...
jjn wrote:
Infinity_77 wrote:2) Once you float a pane, this pane lives in a AuiFloatingFrame which has its own manager: however, when you float another pane and you move it inside the AuiFloatingFrame there are no docking guides shown (as this second pane can not be docked inside the AuiFloatingFrame). Do you think it would be possible to enable the docking of a floating pane inside a AuiFloatingFrame (which has its own manager)? If yes, could you suggest a good place where to start hacking the code?
Maybe possible but hard work. I think the starting point for that is OnMotion_DragFloatingPane().
Uhm, I'll try to poke with the code but my feeling is that it will be way over my wxPython skills.
jjn wrote:
Infinity_77 wrote:3) Have any of you made any other improvements to the modified wxAUI? If yes, would it be possible for you to share them?
This file includes some small fixes. (Allow tab moving in auto notebooks, etc.)
http://www.mediafire.com/download.php?1g2nmmztjtn

If you have done more work on my modification, please post it here.
Thank you for the link, I updated my Python copy with modifications you have made. I will for sure contribute back any enhancements I will make: the only issue at the moment is which way to go: what are the missing features? Which kind of improvements needs to be made to this version of wxAUI?

If you have any interesting idea, please let me know! I'll code it in Python and try to contribute back a reasonable C++ implementation.

Thank you.
"Imagination Is The Only Weapon In The War Against Reality."

http://xoomer.alice.it/infinity77/

Infinity_77
Experienced Solver
Experienced Solver
Posts: 89
Joined: Tue Oct 03, 2006 6:30 pm
Location: London, UK
Contact:

Post by Infinity_77 » Wed Mar 25, 2009 10:01 am

Hi jjn, NinjaNL and All,

I was wondering if you had an answer for a small problem I am facing. Basically, it is related to automatic notebooks vs developer-created notebooks (i.e., explicitely created as wxAuiNotebook and then added as panes to the AuiManager).

The behaviour of the 2 notebooks is fairly different: automatic notebooks do not "split" when a tab is dragged. The dragged tab becomes immediately a floating pane. On the contrary, when you drag a tab on developer-created AuiNotebooks, the notebook can split but a dragged tab can never become a floating pane (which would be very useful to have).

Do you have any suggestion on how to make the 2 notebooks more coherent? I would be happy even simply by having developer-created AuiNotebooks create a floating pane when a tab is dragged outside the notebook.

If you could point me to a good place in the code on where to start hacking I would be very glad.

Thank you for your suggestions.

Andrea.
"Imagination Is The Only Weapon In The War Against Reality."

http://xoomer.alice.it/infinity77/

ngpaton
Knows some wx things
Knows some wx things
Posts: 25
Joined: Tue May 20, 2008 8:23 am

Post by ngpaton » Mon Jun 15, 2009 10:38 am

Hi,

What is the status of this? It's unclear from the posts as to whether this will ever make it into the official wxWidgets releases.

If risk to existing wxAUI users is the problem maybe this should be changed to wxAUI2 and both can live in the wx release. The original wxAUI can then be deprecated over a few releases.

Cheers

Nigel

NinjaNL
Moderator
Moderator
Posts: 899
Joined: Sun Oct 03, 2004 10:33 am
Location: Oosterwolde, Netherlands

Post by NinjaNL » Tue Jun 16, 2009 8:08 am

ngpaton wrote:What is the status of this? It's unclear from the posts as to whether this will ever make it into the official wxWidgets releases.
It is hoped that these improvements will make it into the official wxAui tree, but there will need to be some work done on these classes in order to separate each improvement/bug fix into its own patch for submission to the wxWidgets trac system for examination.
ngpaton wrote:If risk to existing wxAUI users is the problem maybe this should be changed to wxAUI2 and both can live in the wx release. The original wxAUI can then be deprecated over a few releases.
I would rather see that someone do the work and merge these improvements/bugfixes into the official wxAui tree. I had hoped to be able to do this myself, but I recently started a new job and don't have the time at the moment.

I see no reason to create a wxAui2 project since with some work, the official version can be such a good thing.
Follow the development of my screenplay authoring program at http://wxscreenplaywriter.blogspot.com/

TobiasA
Knows some wx things
Knows some wx things
Posts: 39
Joined: Mon Aug 28, 2017 8:42 am

Re: wxAUI Improvements

Post by TobiasA » Wed Jun 03, 2020 10:06 am

Just being curious: Did those improvements ever make it into the official AUI code?

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 4360
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: wxAUI Improvements

Post by ONEEYEMAN » Thu Jun 04, 2020 6:35 pm

Hi,
Why don't you get the sources and check yourself.?

Its very easy to compile it and then compile the sample and see for yourself.

And if it doesn't - it is an open-source project. You can try to implement whatever you need and submit it as a patch/pull request.

Thank you.

Post Reply