classification
Title: Enhanced tabbed pane widget
Type: Stage:
Components: IDLE Versions:
process
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: kbk Nosy List: kbk, taleinat
Priority: low Keywords: patch

Created on 2006-12-10 20:14 by taleinat, last changed 2007-12-11 19:36 by kbk. This issue is now closed.

Files
File name Uploaded Description Edit
tabbedPages.061210.patch taleinat, 2006-12-10 20:14 Initial patch
IDLE_tabbedPages.071029.patch taleinat, 2007-10-29 13:04
IDLE_tabbedPages.071029.patch taleinat, 2007-10-29 17:17
IDLE_tabbedpages.071101.patch taleinat, 2007-11-01 10:51
Messages (9)
msg51506 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2006-12-10 20:14
tabbedPage.py is a replacement for tabpage.py. Other than the test code, the code has been almost completely re-written.

Enhancements over tabpage.py:
* Tab panes with several rows of tabs (optional)
* Dynamic tab rows (optional) - tabs are divided into rows as needed, currently according to a configurable maximum number of tabs per row
* Simpler, more Pythonic design and API
* Two placement mechanisms for the inner pages - grid.lift and grid/remove. Each creates different behavior, and I couldn't decide between them, so I made it configurable :)
* Continues to support dynamic addition/removal of pages
* Additional comments and documentation, code cleanup

Also included in the patch are the required changes in configDialog.py for it to use tabbedPages.py, along with some minor widget padding fixes.

(tabpage.py is no longer needed, though the patch doesn't  say so for some reason)


BTW, this is required for the IDLE extension configuration dialog I've written, for which I will post a patch soon.
msg51507 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2006-12-10 20:16
Typo - the file is tabbedPages.py
msg56895 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2007-10-28 23:40
Can I ask you for an update? This no longer applies cleanly with the 
recent changes to configDialog.py, and I suspect you might have some 
further cleanup.
msg56904 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2007-10-29 13:04
Update, as requested.

After the recent configDialog.py changes, very little changes to it are
required.

I've included a much updated version of tabbedPages.py in this patch.
Since posting the original patch, I've discovered and fixed a few bugs,
implemented a 3d look for the tabs, and cleaned up the code. This
version has also been tested more thoroughly.

Also, this version very nicely supports tabbed panes with more than one
row of tabs. However you can't see this with configDialog.py, you'll
have to use the test code to check it out (just add several new pages
and then play around with them). I've used this feature in implementing
the extension config dialog, where every extension gets its own tab. I
hope I can finally get to posting a patch for it...

Enjoy!
msg56912 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2007-10-29 17:17
Bah, sorry, included wrong version of tabbedPages.py in the previous patch.

(differences are very minor, just some code cleanup and one very minor bug)
msg56952 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2007-10-30 02:48
Prior to the 13:17:41 update:
r58710.
Minor formatting changes.

I figured you might have an update :-)  It's good to let these new 
modules 
age a bit :-)  Well, maybe not that long...

renamed tabbedPages.py -> tabbedpages.py to conform to PEP 8.
Nicely done, thanks for the patch!

One comment: when multiple rows are created, the row order in the test 
widget, counting from the top, is 2341.  I expected 1234.
msg56953 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2007-10-30 02:49
Well, I already checked it in.  Please synch to svn and send me an update 
against that.  Note that I renamed tabbedPages.py.
msg57007 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2007-11-01 10:51
Updated patch as requested.

Most of the changes are cosmetic, except one minor bug (kw -> **kw). I
added a few comments and doc-strings as well.


Consider removing tabpage.py, which is no longer used...
msg58460 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2007-12-11 19:36
r59468
Thanks for the update!
History
Date User Action Args
2007-12-11 19:36:04kbksetstatus: open -> closed
messages: + msg58460
2007-11-01 10:51:53taleinatsetfiles: + IDLE_tabbedpages.071101.patch
messages: + msg57007
2007-10-30 02:49:28kbksetmessages: + msg56953
2007-10-30 02:48:16kbksetresolution: out of date -> accepted
messages: + msg56952
2007-10-29 17:17:41taleinatsetfiles: + IDLE_tabbedPages.071029.patch
messages: + msg56912
2007-10-29 13:04:11taleinatsetfiles: + IDLE_tabbedPages.071029.patch
messages: + msg56904
2007-10-28 23:40:56kbksetassignee: kbk
resolution: out of date
messages: + msg56895
nosy: + kbk
2006-12-10 20:14:42taleinatcreate