Kirix Support Forums

wxAUI Tabs - first phase

Please post all general questions, comments, bug reports, and any other wxAUI feedback here.

wxAUI Tabs - first phase

Postby Ben on Wed Jul 19, 2006 11:00 am

Hi All,

I posted this on the wx-dev list, but wanted other to know about this, too.

We've been busily coding away at wxAUI tabs. For starters, here is
the code and a sample application which demonstrates the feature.

Code: http://www.kirix.com/res/aui/auitabs.zip
Sample: http://www.kirix.com/res/aui/auitabs.exe

I'd like to note that this is not yet a full implementation of
dockable/draggable tabs that everybody has requested, but rather the
first part of that feature. We've split up the job of doing tabs into
several parts:

1) Multi-Notebook control
2) Tabbed MDI
3) Full tab integration into wxFrameManager

The multi-notebook control is extremely useful by itself. It's like a
notebook, but with dynamic splitters built in. The control is
particularly interesting because it uses wxAUI to manage it's layout.
Up until recent CVS builds, wxAUI could only be used to manage a
wxFrame-derived window, but now it is able to manage wxWindow-derived
objects as well.

The tabbed MDI is a reworking of wxGenericMDI* for use with
wxAuiMultiNotebook. This provides a drop-in replacement for the
normal msw mdi classes.

The next step is to integrate the tab work into the existing wxAUI
wxFrameManager class.

I hope you like it.

Best,
Ben
User avatar
Ben
Kirix Support Team
 
Posts: 525
Joined: Mon Dec 19, 2005 6:29 am

Congrats

Postby epage on Wed Jul 19, 2006 6:03 pm

Great job. Im especially grateful for your support for those using existing paths, like the MDI support.

The demo didn't show this, but will it support floating? Is there not a way to re-use the native notebook tabs?

Thanks for all of the work you put into this.
epage
Registered User
 
Posts: 10
Joined: Thu Jul 13, 2006 2:16 pm

Re: Congrats

Postby Ben on Thu Jul 20, 2006 3:13 am

epage wrote:Great job. Im especially grateful for your support for those using existing paths, like the MDI support.

The demo didn't show this, but will it support floating? Is there not a way to re-use the native notebook tabs?

Thanks for all of the work you put into this.



Eventually, it will support floating. We're just getting started.. :-)

Ben
User avatar
Ben
Kirix Support Team
 
Posts: 525
Joined: Mon Dec 19, 2005 6:29 am

Postby Game_Ender on Thu Jul 20, 2006 10:22 am

Can you explain exactly what "Tabbed MDI" is and how it relates to the current wxFrameManager functionality?
Game_Ender
Registered User
 
Posts: 5
Joined: Sat Feb 18, 2006 12:33 pm

Postby Ben on Thu Jul 20, 2006 10:38 am

Game_Ender wrote:Can you explain exactly what "Tabbed MDI" is and how it relates to the current wxFrameManager functionality?


There are several styles of MDI. The two most common ones are Win32 MDI (i.e. many windows within a window). The other common type is a tab control. The main difference is in how windows are managed. Win32's can overlap or be tiled on the screen. Tab MDI's can usually only display one window at a time.

In our application, up until now, we have used regular Win32 MDI. In our Linux version, we actually wrote our own MDI control to allow this same user interface 'feel'. The reason why is that our users want to see multiple documents on the screen at the same time. Many of our users tile their windows to see multiple documents.

It turns out that tab controls are a decent way of displaying multiple documents on the screen at the same time. They have one disadvantage-- the documents can't be tiled. To remedy this, we've implemented a control called wxAuiMultiNotebook. This control allows the user to reposition the tab documents at will.

This is what we mean by "tab mdi".

Hope this helps,
Ben
User avatar
Ben
Kirix Support Team
 
Posts: 525
Joined: Mon Dec 19, 2005 6:29 am

Postby benedicte on Thu Jul 20, 2006 10:54 am

Will you add "<<" and ">>" arrows near the close button to navigate between the tabs, and move them when there are more tabs that the ones which can be displayed in the control?
benedicte
Registered User
 
Posts: 5
Joined: Fri Jun 09, 2006 3:23 am
Location: Paris, France

Postby Ben on Fri Jul 21, 2006 1:47 am

benedicte wrote:Will you add "<<" and ">>" arrows near the close button to navigate between the tabs, and move them when there are more tabs that the ones which can be displayed in the control?


That's certainly one possibility. The other possibility is a window-list type drop down.

Best,
Ben
User avatar
Ben
Kirix Support Team
 
Posts: 525
Joined: Mon Dec 19, 2005 6:29 am

Postby TomSpilman on Mon Jul 24, 2006 11:18 pm

This is looking excellent! We hope to be integrating wxAUI into our TorqueScript debugging application, Torsion, shortly after our 1.0 release.

Great job guys!

Personally i prefer if you adopt the VisualStudio 2005 style UI first (which it seems your doing), then later go back and add other styles as desired.
TomSpilman
Registered User
 
Posts: 3
Joined: Mon Jul 24, 2006 11:16 pm
Location: Dallas, Texas

Example code?

Postby somedave on Fri Jul 28, 2006 1:15 pm

The demo looks great. Do you have any sample code showing how to hook up the tabbed MDI interface with an existing wxAUI implementation? Perhaps even the code from the demo?
somedave
Registered User
 
Posts: 1
Joined: Fri Jul 28, 2006 1:14 pm

Re: Example code?

Postby Ben on Sat Jul 29, 2006 10:58 am

somedave wrote:The demo looks great. Do you have any sample code showing how to hook up the tabbed MDI interface with an existing wxAUI implementation? Perhaps even the code from the demo?


I have to merge the tabmdi sample with the wxaui sample still.

Getting the tabbed mdi sample is really quite easy. Depending on how your current code is structured, getting the tabs up and running looks like one of the following:

1) If your code is already using the wxWidgets MDI classes (either msw's mdi or the generic MDI), then just use wxTabMDIParentFrame and wxTabMDIChildFrame instead of wx[Generic]MDIParentFrame/wx[Generic]MDIChildFrame. Your application should then automatically adopt the new feel.

2) If you aren't using MDI alread, you can optionally use the wxAuiMultiNotebook. It's programmatic interface is just like wxNotebook. You will automatically have tabs and be able to drag them around inside the control itself.

I called this "phase I" of tabs because the tabs can only be dragged around in the tab control itself. They still cannot be dragged into other panes inside the exiting wxAUI frame manager. This is "phase II" of the tab work, which is still pending.

I hope this information helps you.

Best,
Ben
User avatar
Ben
Kirix Support Team
 
Posts: 525
Joined: Mon Dec 19, 2005 6:29 am

Return to wxAUI Questions, Thoughts & Feedback