LabelBook and FlatImageBook are a quasi-full generic and owner-drawn implementations of Notebook.
LabelBook and FlatImageBook are quasi-full implementations of the Notebook, and designed to be a drop-in replacement for Notebook. The API functions are similar so one can expect the function to behave in the same way. LabelBook anf FlatImageBook share their appearance with Toolbook and Listbook, while having more options for custom drawings, label positioning, mouse pointing and so on. Moreover, they retain also some visual characteristics of the Outlook address book.
Some features:
And much more. See the demo for a quasi-complete review of all the functionalities of LabelBook and FlatImageBook.
Usage example:
import wx
import wx.lib.agw.labelbook as LB
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "LabelBook Demo")
# Possible values for Tab placement are INB_TOP, INB_BOTTOM, INB_RIGHT, INB_LEFT
notebook = LB.LabelBook(self, -1, agwStyle=LB.INB_FIT_LABELTEXT|LB.INB_LEFT|LB.INB_DRAW_SHADOW|LB.INB_GRADIENT_BACKGROUND)
pane1 = wx.Panel(notebook)
pane2 = wx.Panel(notebook)
imagelist = wx.ImageList(32, 32)
imagelist.Add(wx.Bitmap("my_bitmap.png", wx.BITMAP_TYPE_PNG))
notebook.AssignImageList(imagelist)
notebook.AddPage(pane_1, "Tab1", 1, 0)
notebook.AddPage(pane_2, "Tab2", 0, 0)
# our normal wxApp-derived class, as usual
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
This class supports the following window styles:
Window Styles | Hex Value | Description |
---|---|---|
INB_BOTTOM | 0x1 | Place labels below the page area. Available only for FlatImageBook. |
INB_LEFT | 0x2 | Place labels on the left side. Available only for FlatImageBook. |
INB_RIGHT | 0x4 | Place labels on the right side. |
INB_TOP | 0x8 | Place labels above the page area. |
INB_BORDER | 0x10 | Draws a border around LabelBook or FlatImageBook. |
INB_SHOW_ONLY_TEXT | 0x20 | Shows only text labels and no images. Available only for LabelBook. |
INB_SHOW_ONLY_IMAGES | 0x40 | Shows only tab images and no label texts. Available only for LabelBook. |
INB_FIT_BUTTON | 0x80 | Displays a pin button to show/hide the book control. |
INB_DRAW_SHADOW | 0x100 | Draw shadows below the book tabs. Available only for LabelBook. |
INB_USE_PIN_BUTTON | 0x200 | Displays a pin button to show/hide the book control. |
INB_GRADIENT_BACKGROUND | 0x400 | Draws a gradient shading on the tabs background. Available only for LabelBook. |
INB_WEB_HILITE | 0x800 | On mouse hovering, tabs behave like html hyperlinks. Available only for LabelBook. |
INB_NO_RESIZE | 0x1000 | Don’t allow resizing of the tab area. |
INB_FIT_LABELTEXT | 0x2000 | Will fit the tab area to the longest text (or text+image if you have images) in all the tabs. |
INB_BOLD_TAB_SELECTION | 0x4000 | Show the selected tab text using a bold font. |
This class processes the following events:
Event Name | Description |
---|---|
EVT_IMAGENOTEBOOK_PAGE_CHANGED | Notify client objects when the active page in FlatImageBook or LabelBook has changed. |
EVT_IMAGENOTEBOOK_PAGE_CHANGING | Notify client objects when the active page in FlatImageBook or LabelBook is about to change. |
EVT_IMAGENOTEBOOK_PAGE_CLOSED | Notify client objects when a page in FlatImageBook or LabelBook has been closed. |
EVT_IMAGENOTEBOOK_PAGE_CLOSING | Notify client objects when a page in FlatImageBook or LabelBook is closing. |
LabelBook and FlatImageBook are distributed under the wxPython license.
Latest Revision: Andrea Gavana @ 07 Dec 2011, 21.00 GMT
Version 0.6.
FlatBookBase | Base class for the containing window for LabelBook and FlatImageBook. |
FlatImageBook | Default implementation of the image book, it is like a Notebook, except that |
ImageContainer | Base class for FlatImageBook image container. |
ImageContainerBase | Base class for FlatImageBook image container. |
ImageInfo | This class holds all the information (caption, image, etc...) belonging to a |
ImageNotebookEvent | This events will be sent when a EVT_IMAGENOTEBOOK_PAGE_CHANGED, |
LabelBook | An implementation of a notebook control - except that instead of having |
LabelContainer | Base class for LabelBook. |