-class wxFloatBar(wxToolBar):
- """
- wxToolBar subclass which can be dragged off its frame and later
- replaced there. Drag on the toolbar to release it, close it like
- a normal window to make it return to its original
- position. Programmatically, call SetFloatable(true) and then
- Float(true) to float, Float(false) to dock.
- """
-
- def __init__(self,*_args,**_kwargs):
- """
- In addition to the usual arguments, wxFloatBar accepts keyword
- args of: title(string): the title that should appear on the
- toolbar's frame when it is floating. floatable(bool): whether
- user actions (i.e., dragging) can float the toolbar or not.
- """
- args = (self,) + _args
- apply(wxToolBar.__init__, args, _kwargs)
- if _kwargs.has_key('floatable'):
- self.floatable = _kwargs['floatable']
- assert type(self.floatable) == type(0)
- else:
- self.floatable = 0
- self.floating = 0
- if _kwargs.has_key('title'):
- self.title = _kwargs['title']
- assert type(self.title) == type("")
- else:
- self.title = ""
- EVT_MOUSE_EVENTS(self, self.OnMouse)
- self.parentframe = wxPyTypeCast(args[1], 'wxFrame')
-
- def IsFloatable(self):
- return self.floatable
-
- def SetFloatable(self, float):
- self.floatable = float
- #Find the size of a title bar.
- if not hasattr(self, 'titleheight'):
- test = wxFrame(NULL, -1, "TEST")
- test.SetClientSize(wxSize(0,0))
- self.titleheight = test.GetSizeTuple()[1]
- test.Destroy()
-
- def IsFloating(self):
- return self.floating
-
- def Realize(self):
- wxToolBar.Realize(self)
- self.barheight = -1
-
- def GetTitle(self):
- return self.title
-
- def SetTitle(self, title):
- self.title = title
- if self.IsFloating():
- self.floatframe.SetTitle(self.title)
-
- def GetHome(self):
- """
- Returns the frame which this toolbar will return to when
- docked, or the parent if currently docked.
- """
- if hasattr(self, 'parentframe'):
- return self.parentframe
- else:
- return wxPyTypeCast(self.GetParent(), 'wxFrame')
+if wxPlatform == '__WXGTK__':
+ #
+ # For wxGTK all we have to do is set the wxTB_DOCKABLE flag
+ #
+ class wxFloatBar(wxToolBar):
+ def __init__(self, parent, ID,
+ pos = wxDefaultPosition,
+ size = wxDefaultSize,
+ style = 0,
+ name = 'toolbar'):
+ wxToolBar.__init__(self, parent, ID, pos, size,
+ style|wxTB_DOCKABLE, name)
+
+ # these other methods just become no-ops
+ def SetFloatable(self, float):
+ pass
+
+ def IsFloating(self):
+ return 1
+
+ def GetTitle(self):
+ return ""
+