remove agw
[iramuteq] / agw / aui / tabmdi.py
diff --git a/agw/aui/tabmdi.py b/agw/aui/tabmdi.py
deleted file mode 100644 (file)
index ef09e9f..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-__author__ = "Andrea Gavana <andrea.gavana@gmail.com>"
-__date__ = "31 March 2009"
-
-
-import wx
-
-import auibook
-from aui_constants import *
-
-_ = wx.GetTranslation
-
-#-----------------------------------------------------------------------------
-# AuiMDIParentFrame
-#-----------------------------------------------------------------------------
-
-class AuiMDIParentFrame(wx.Frame):
-
-    def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
-                 size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE|wx.VSCROLL|wx.HSCROLL,
-                 name="AuiMDIParentFrame"):
-
-        wx.Frame.__init__(self, parent, id, title, pos, size, style, name=name)
-        self.Init()
-
-        self.Bind(wx.EVT_MENU, self.DoHandleMenu, id=wx.ID_ANY)
-
-        # this style can be used to prevent a window from having the standard MDI
-        # "Window" menu
-        if not style & wx.FRAME_NO_WINDOW_MENU:
-        
-            self._pWindowMenu = wx.Menu()
-            self._pWindowMenu.Append(wxWINDOWCLOSE,    _("Cl&ose"))
-            self._pWindowMenu.Append(wxWINDOWCLOSEALL, _("Close All"))
-            self._pWindowMenu.AppendSeparator()
-            self._pWindowMenu.Append(wxWINDOWNEXT,     _("&Next"))
-            self._pWindowMenu.Append(wxWINDOWPREV,     _("&Previous"))
-    
-        self._pClientWindow = self.OnCreateClient()
-
-
-    def SetArtProvider(self, provider):
-
-        if self._pClientWindow:
-            self._pClientWindow.SetArtProvider(provider)
-    
-
-    def GetArtProvider(self):
-
-        if not self._pClientWindow:
-            return None
-
-        return self._pClientWindow.GetArtProvider()
-
-
-    def GetNotebook(self):
-
-        return self._pClientWindow
-
-
-    def SetWindowMenu(self, pMenu):
-
-        # Replace the window menu from the currently loaded menu bar.
-        pMenuBar = self.GetMenuBar()
-
-        if self._pWindowMenu:
-            self.RemoveWindowMenu(pMenuBar)
-            del self._pWindowMenu
-            self._pWindowMenu = None
-
-        if pMenu:
-            self._pWindowMenu = pMenu
-            self.AddWindowMenu(pMenuBar)
-        
-
-    def GetWindowMenu(self):
-
-        return self._pWindowMenu
-    
-
-    def SetMenuBar(self, pMenuBar):
-
-        # Remove the Window menu from the old menu bar
-        self.RemoveWindowMenu(self.GetMenuBar())
-
-        # Add the Window menu to the new menu bar.
-        self.AddWindowMenu(pMenuBar)
-
-        wx.Frame.SetMenuBar(self, pMenuBar)
-
-
-    def SetChildMenuBar(self, pChild):
-
-        if not pChild:
-        
-            # No Child, set Our menu bar back.
-            if self._pMyMenuBar:
-                self.SetMenuBar(self._pMyMenuBar)
-            else:
-                self.SetMenuBar(self.GetMenuBar())
-
-            # Make sure we know our menu bar is in use
-            self._pMyMenuBar = None
-        
-        else:
-        
-            if pChild.GetMenuBar() == None:
-                return
-
-            # Do we need to save the current bar?
-            if self._pMyMenuBar == None:
-                self._pMyMenuBar = self.GetMenuBar()
-
-            self.SetMenuBar(pChild.GetMenuBar())
-    
-
-    def ProcessEvent(self, event):
-
-        # stops the same event being processed repeatedly
-        if self._pLastEvt == event:
-            return False
-        
-        self._pLastEvt = event
-
-        # let the active child (if any) process the event first.
-        res = False
-        if self._pActiveChild and event.IsCommandEvent() and \
-           event.GetEventObject() != self._pClientWindow and \
-           event.GetEventType() not in [wx.wxEVT_ACTIVATE, wx.wxEVT_SET_FOCUS,
-                                        wx.wxEVT_KILL_FOCUS, wx.wxEVT_CHILD_FOCUS,
-                                        wx.wxEVT_COMMAND_SET_FOCUS, wx.wxEVT_COMMAND_KILL_FOCUS]:
-        
-            res = self._pActiveChild.GetEventHandler().ProcessEvent(event)
-        
-        if not res:
-        
-            # if the event was not handled this frame will handle it,
-            # which is why we need the protection code at the beginning
-            # of this method
-            res = self.GetEventHandler().ProcessEvent(event)
-        
-        self._pLastEvt = None
-
-        return res
-
-
-    def GetActiveChild(self):
-
-        return self._pActiveChild
-
-
-    def SetActiveChild(self, pChildFrame):
-
-        self._pActiveChild = pChildFrame
-
-
-    def GetClientWindow(self):
-
-        return self._pClientWindow
-
-
-    def OnCreateClient(self):
-
-        return AuiMDIClientWindow(self)
-
-
-    def ActivateNext(self):
-
-        if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
-        
-            active = self._pClientWindow.GetSelection() + 1
-            if active >= self._pClientWindow.GetPageCount():
-                active = 0
-
-            self._pClientWindow.SetSelection(active)
-        
-
-    def ActivatePrevious(self):
-
-        if self._pClientWindow and self._pClientWindow.GetSelection() != wx.NOT_FOUND:
-        
-            active = self._pClientWindow.GetSelection() - 1
-            if active < 0:
-                active = self._pClientWindow.GetPageCount() - 1
-
-            self._pClientWindow.SetSelection(active)
-    
-
-    def Init(self):
-
-        self._pLastEvt = None
-
-        self._pClientWindow = None
-        self._pActiveChild = None
-        self._pWindowMenu = None
-        self._pMyMenuBar = None
-
-
-    def RemoveWindowMenu(self, pMenuBar):
-
-        if pMenuBar and self._pWindowMenu:
-        
-            # Remove old window menu
-            pos = pMenuBar.FindMenu(_("&Window"))
-            if pos != wx.NOT_FOUND:            
-                pMenuBar.Remove(pos)
-            
-
-    def AddWindowMenu(self, pMenuBar):
-
-        if pMenuBar and self._pWindowMenu:
-        
-            pos = pMenuBar.FindMenu(wx.GetStockLabel(wx.ID_HELP, wx.STOCK_NOFLAGS))
-            if pos == wx.NOT_FOUND:
-                pMenuBar.Append(self._pWindowMenu, _("&Window"))
-            else:
-                pMenuBar.Insert(pos, self._pWindowMenu, _("&Window"))
-    
-
-    def DoHandleMenu(self, event):
-
-        evId = event.GetId()
-        
-        if evId == wxWINDOWCLOSE:
-            if self._pActiveChild:
-                self._pActiveChild.Close()
-
-        elif evId == wxWINDOWCLOSEALL:
-            
-            while self._pActiveChild:            
-                if not self._pActiveChild.Close():
-                    return # failure
-                
-        elif evId == wxWINDOWNEXT:
-            self.ActivateNext()
-
-        elif evId == wxWINDOWPREV:
-            self.ActivatePrevious()
-
-        else:
-            event.Skip()
-
-    
-    def Tile(self, orient=wx.HORIZONTAL):
-
-        client_window = self.GetClientWindow()
-        if not client_window:
-            raise Exception("Missing MDI Client Window")
-
-        cur_idx = client_window.GetSelection()
-        if cur_idx == -1:
-            return
-
-        if orient == wx.VERTICAL:
-        
-            client_window.Split(cur_idx, wx.LEFT)
-        
-        elif orient == wx.HORIZONTAL:
-        
-            client_window.Split(cur_idx, wx.TOP)
-    
-
-#-----------------------------------------------------------------------------
-# AuiMDIChildFrame
-#-----------------------------------------------------------------------------
-
-class AuiMDIChildFrame(wx.PyPanel):
-
-    def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
-                 size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="AuiMDIChildFrame"):
-
-        pClientWindow = parent.GetClientWindow()
-        if pClientWindow is None:
-            raise Exception("Missing MDI client window.")
-
-        self.Init()
-        
-        # see comment in constructor
-        if style & wx.MINIMIZE:
-            self._activate_on_create = False
-
-        cli_size = pClientWindow.GetClientSize()
-
-        # create the window off-screen to prevent flicker
-        wx.PyPanel.__init__(self, pClientWindow, id, wx.Point(cli_size.x+1, cli_size.y+1),
-                            size, wx.NO_BORDER, name=name)
-
-        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
-        self.Show(False)
-        self.SetMDIParentFrame(parent)
-
-        # this is the currently active child
-        parent.SetActiveChild(self)
-        self._title = title
-
-        pClientWindow.AddPage(self, title, self._activate_on_create)
-        pClientWindow.Refresh()
-
-        self.Bind(wx.EVT_MENU_HIGHLIGHT_ALL, self.OnMenuHighlight)
-        self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
-        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
-
-
-    def Init(self):
-
-        # There are two ways to create an tabbed mdi child fram without
-        # making it the active document.  Either Show(False) can be called
-        # before Create() (as is customary on some ports with wxFrame-type
-        # windows), or wx.MINIMIZE can be passed in the style flags.  Note that
-        # AuiMDIChildFrame is not really derived from wxFrame, as MDIChildFrame
-        # is, but those are the expected symantics.  No style flag is passed
-        # onto the panel underneath.
-
-        self._activate_on_create = True
-
-        self._pMDIParentFrame = None
-        self._pMenuBar = None
-        
-        self._mdi_currect = None
-        self._mdi_newrect = wx.Rect()
-        self._icon = None
-        self._icon_bundle = None
-
-
-    def Destroy(self):
-
-        pParentFrame = self.GetMDIParentFrame()
-        if not pParentFrame:
-            raise Exception("Missing MDI Parent Frame")
-
-        pClientWindow = pParentFrame.GetClientWindow()
-        if not pClientWindow:
-            raise Exception("Missing MDI Client Window")
-
-        if pParentFrame.GetActiveChild() == self:
-        
-            # deactivate ourself
-            event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, self.GetId())
-            event.SetEventObject(self)
-            self.GetEventHandler().ProcessEvent(event)
-
-            pParentFrame.SetActiveChild(None)
-            pParentFrame.SetChildMenuBar(None)
-        
-        for pos in xrange(pClientWindow.GetPageCount()):
-            if pClientWindow.GetPage(pos) == self:
-                return pClientWindow.DeletePage(pos)
-
-        return False
-
-
-    def SetMenuBar(self, menu_bar):
-
-        pOldMenuBar = self._pMenuBar
-        self._pMenuBar = menu_bar
-
-        if self._pMenuBar:
-        
-            pParentFrame = self.GetMDIParentFrame()
-            if not pParentFrame:
-                raise Exception("Missing MDI Parent Frame")
-
-            self._pMenuBar.Reparent(pParentFrame)
-            if pParentFrame.GetActiveChild() == self:
-            
-                # replace current menu bars
-                if pOldMenuBar:
-                    pParentFrame.SetChildMenuBar(None)
-                    
-                pParentFrame.SetChildMenuBar(self)
-            
-
-    def GetMenuBar(self):
-
-        return self._pMenuBar
-
-
-    def SetTitle(self, title):
-
-        self._title = title
-
-        pParentFrame = self.GetMDIParentFrame()
-        if not pParentFrame:
-            raise Exception("Missing MDI Parent Frame")
-        
-        pClientWindow = pParentFrame.GetClientWindow()
-        if pClientWindow is not None:
-        
-            for pos in xrange(pClientWindow.GetPageCount()):
-                if pClientWindow.GetPage(pos) == self:
-                    pClientWindow.SetPageText(pos, self._title)
-                    break
-
-
-    def GetTitle(self):
-
-        return self._title
-
-
-    def SetIcons(self, icons):
-
-        # get icon with the system icon size
-        self.SetIcon(icons.GetIcon(-1))
-        self._icon_bundle = icons
-
-
-    def GetIcons(self):
-
-        return self._icon_bundle
-
-
-    def SetIcon(self, icon):
-
-        pParentFrame = self.GetMDIParentFrame()
-        if not pParentFrame:
-            raise Exception("Missing MDI Parent Frame")
-
-        self._icon = icon
-
-        bmp = wx.BitmapFromIcon(self._icon)
-
-        pClientWindow = pParentFrame.GetClientWindow()
-        if pClientWindow is not None:
-            idx = pClientWindow.GetPageIndex(self)
-            if idx != -1:
-                pClientWindow.SetPageBitmap(idx, bmp)
-        
-
-    def GetIcon(self):
-
-        return self._icon
-
-
-    def Activate(self):
-
-        pParentFrame = self.GetMDIParentFrame()
-        if not pParentFrame:
-            raise Exception("Missing MDI Parent Frame")
-        
-        pClientWindow = pParentFrame.GetClientWindow()
-        if pClientWindow is not None:
-        
-            for pos in xrange(pClientWindow.GetPageCount()):
-                if pClientWindow.GetPage(pos) == self:
-                    pClientWindow.SetSelection(pos)
-                    break
-            
-
-    def OnMenuHighlight(self, event):
-
-        if self._pMDIParentFrame:
-    
-            # we don't have any help text for this item,
-            # but may be the MDI frame does?
-            self._pMDIParentFrame.OnMenuHighlight(event)
-
-
-    def OnActivate(self, event):
-
-        # do nothing
-        pass
-
-
-    def OnCloseWindow(self, event):
-
-        pParentFrame = self.GetMDIParentFrame()
-        if pParentFrame:
-            if pParentFrame.GetActiveChild() == self:
-            
-                pParentFrame.SetActiveChild(None)
-                pParentFrame.SetChildMenuBar(None)
-            
-            pClientWindow = pParentFrame.GetClientWindow()
-            idx = pClientWindow.GetPageIndex(self)
-            
-            if idx != wx.NOT_FOUND:
-                pClientWindow.RemovePage(idx)
-
-        self.Destroy()
-
-
-    def SetMDIParentFrame(self, parentFrame):
-
-        self._pMDIParentFrame = parentFrame
-
-
-    def GetMDIParentFrame(self):
-
-        return self._pMDIParentFrame
-
-
-    def CreateStatusBar(self, number=1, style=1, winid=1, name=""):
-        
-        return None
-
-
-    def GetStatusBar(self):
-
-        return None
-    
-
-    def SetStatusText(self, text, number=0):
-
-        pass
-
-    
-    def SetStatusWidths(self, widths_field):
-
-        pass
-    
-
-    # no toolbar bars
-    def CreateToolBar(self, style=1, winid=-1, name=""):
-        
-        return None
-
-    
-    def GetToolBar(self):
-
-        return None
-    
-
-    # no maximize etc
-    def Maximize(self, maximize=True):
-
-        pass
-
-
-    def Restore(self):
-    
-        pass
-
-    
-    def Iconize(self, iconize=True):
-
-        pass
-
-    
-    def IsMaximized(self):
-
-        return True
-
-    
-    def IsIconized(self):
-
-        return False
-
-    
-    def ShowFullScreen(self, show=True, style=0):
-
-        return False
-
-    
-    def IsFullScreen(self):
-
-        return False        
-
-
-    def IsTopLevel(self):
-
-        return False
-
-
-    # renamed from Show().
-    def ActivateOnCreate(self, activate_on_create):
-
-        self._activate_on_create = activate_on_create
-        return True
-
-    
-    def Show(self, show=True):
-
-        wx.PyPanel.Show(self, show)
-
-
-    def ApplyMDIChildFrameRect(self):
-
-        if self._mdi_currect != self._mdi_newrect:
-            self.SetDimensions(*self._mdi_newrect)
-            self._mdi_currect = wx.Rect(*self._mdi_newrect)
-
-
-#-----------------------------------------------------------------------------
-# AuiMDIClientWindow
-#-----------------------------------------------------------------------------
-
-class AuiMDIClientWindow(auibook.AuiNotebook):
-
-    def __init__(self, parent, agwStyle=0):
-
-        auibook.AuiNotebook.__init__(self, parent, wx.ID_ANY, wx.Point(0, 0), wx.Size(100, 100),
-                                     agwStyle=AUI_NB_DEFAULT_STYLE|wx.NO_BORDER)
-
-        caption_icon_size = wx.Size(wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_X),
-                                    wx.SystemSettings.GetMetric(wx.SYS_SMALLICON_Y))
-        self.SetUniformBitmapSize(caption_icon_size)
-
-        bkcolour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_APPWORKSPACE)
-        self.SetOwnBackgroundColour(bkcolour)
-
-        self._mgr.GetArtProvider().SetColour(AUI_DOCKART_BACKGROUND_COLOUR, bkcolour)
-
-        self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
-        self.Bind(auibook.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClose)
-        self.Bind(wx.EVT_SIZE, self.OnSize)
-
-
-    def SetSelection(self, nPage):
-
-        return auibook.AuiNotebook.SetSelection(self, nPage)
-
-
-    def PageChanged(self, old_selection, new_selection):
-
-        # don't do anything if the page doesn't actually change
-        if old_selection == new_selection:
-            return
-
-        # notify old active child that it has been deactivated
-        if old_selection != -1 and old_selection < self.GetPageCount():
-        
-            old_child = self.GetPage(old_selection)
-            if not old_child:
-                raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
-
-            event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, False, old_child.GetId())
-            event.SetEventObject(old_child)
-            old_child.GetEventHandler().ProcessEvent(event)
-        
-        # notify new active child that it has been activated
-        if new_selection != -1:
-        
-            active_child = self.GetPage(new_selection)
-            if not active_child:
-                raise Exception("AuiMDIClientWindow.PageChanged - null page pointer")
-
-            event = wx.ActivateEvent(wx.wxEVT_ACTIVATE, True, active_child.GetId())
-            event.SetEventObject(active_child)
-            active_child.GetEventHandler().ProcessEvent(event)
-
-            if active_child.GetMDIParentFrame():
-                active_child.GetMDIParentFrame().SetActiveChild(active_child)
-                active_child.GetMDIParentFrame().SetChildMenuBar(active_child)
-
-
-    def OnPageClose(self, event):
-
-        wnd = self.GetPage(event.GetSelection())
-        wnd.Close()
-
-        # regardless of the result of wnd.Close(), we've
-        # already taken care of the close operations, so
-        # suppress further processing
-        event.Veto()
-
-
-    def OnPageChanged(self, event):
-
-        self.PageChanged(event.GetOldSelection(), event.GetSelection())
-
-
-    def OnSize(self, event):
-
-        auibook.AuiNotebook.OnSize(self, event)
-
-        for pos in xrange(self.GetPageCount()):
-            self.GetPage(pos).ApplyMDIChildFrameRect()