]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/FloatBar.py
Moved @interface wxNSApplicationDelegate to new header
[wxWidgets.git] / wxPython / demo / FloatBar.py
CommitLineData
8fa876ca 1#
95bfd958
RD
2# Please note that wx.lib.floatbar is not formally supported as
3# part of wxPython. If it works, fine. If not, unfortunate.
4# GTK users can use the wx.TB_DOCKABLE flag with a regular
5# wx.ToolBar, but everyone else has to take thier chances.
33785d9f 6#
f0261a72 7
8fa876ca 8import wx
33785d9f 9import wx.lib.floatbar
96bfd053 10
8fa876ca 11import images
96bfd053 12
8fa876ca
RD
13
14class TestFloatBar(wx.Frame):
f0261a72 15 def __init__(self, parent, log):
8fa876ca
RD
16 wx.Frame.__init__(
17 self, parent, -1, 'Test ToolBar', wx.DefaultPosition, (500, 300)
18 )
19
f0261a72
RD
20 self.log = log
21
8fa876ca
RD
22 win = wx.Window(self, -1)
23 win.SetBackgroundColour("WHITE")
24 wx.StaticText(
25 win, -1, "Drag the toolbar to float it,\n"
26 "Toggle the last tool to remove\nthe title.", (15,15)
27 )
f0261a72 28
33785d9f 29 tb = wx.lib.floatbar.FloatBar(self, -1)
f0261a72
RD
30 self.SetToolBar(tb)
31 tb.SetFloatable(1)
32 tb.SetTitle("Floating!")
33 self.CreateStatusBar()
96bfd053 34
70a357c2 35 tb.AddSimpleTool(10, images.getNewBitmap(), "New", "Long help for 'New'")
8fa876ca
RD
36 self.Bind(wx.EVT_TOOL, self.OnToolClick, id=10)
37 self.Bind(wx.EVT_TOOL_RCLICKED, self.OnToolRClick, id=10)
f0261a72 38
70a357c2 39 tb.AddSimpleTool(20, images.getOpenBitmap(), "Open")
8fa876ca
RD
40 self.Bind(wx.EVT_TOOL, self.OnToolClick, id=20)
41 self.Bind(wx.EVT_TOOL_RCLICKED, self.OnToolRClick, id=20)
f0261a72
RD
42
43 tb.AddSeparator()
70a357c2 44 tb.AddSimpleTool(30, images.getCopyBitmap(), "Copy")
8fa876ca
RD
45 self.Bind(wx.EVT_TOOL, self.OnToolClick, id=30)
46 self.Bind(wx.EVT_TOOL_RCLICKED, self.OnToolRClick, id=30)
f0261a72 47
70a357c2 48 tb.AddSimpleTool(40, images.getPasteBitmap(), "Paste")
8fa876ca
RD
49 self.Bind(wx.EVT_TOOL, self.OnToolClick, id=40)
50 self.Bind(wx.EVT_TOOL_RCLICKED, self.OnToolRClick, id=40)
f0261a72
RD
51
52 tb.AddSeparator()
53
70a357c2 54 tb.AddCheckTool(60, images.getTog1Bitmap(), images.getTog2Bitmap())
8fa876ca
RD
55 self.Bind(wx.EVT_TOOL, self.OnToolClick, id=60)
56 self.Bind(wx.EVT_TOOL_RCLICKED, self.OnToolRClick, id=60)
57
f0261a72 58 tb.Realize()
944930d5
RD
59
60 self.tb = tb
8fa876ca 61 self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
f0261a72
RD
62
63
64 def OnCloseWindow(self, event):
65 self.Destroy()
66
67 def OnToolClick(self, event):
68 self.log.WriteText("tool %s clicked\n" % event.GetId())
8fa876ca 69
944930d5 70 if event.GetId() == 60:
33785d9f 71 print event.GetExtraLong(), event.IsChecked(), event.GetInt(), self.tb.GetToolState(60)
8fa876ca 72
944930d5
RD
73 if event.GetExtraLong():
74 self.tb.SetTitle("")
75 else:
76 self.tb.SetTitle("Floating!")
f0261a72
RD
77
78 def OnToolRClick(self, event):
79 self.log.WriteText("tool %s right-clicked\n" % event.GetId())
f0261a72
RD
80
81#---------------------------------------------------------------------------
82
83def runTest(frame, nb, log):
84 win = TestFloatBar(frame, log)
85 frame.otherWin = win
1e4a197e 86 win.Show(True)
f0261a72
RD
87
88#---------------------------------------------------------------------------
89
90overview = """\
33785d9f 91FloatBar is a subclass of wx.ToolBar, implemented in Python, which
1fded56b 92can be detached from its frame.
f0261a72 93
1fded56b
RD
94Drag the toolbar with the mouse to make it float, and drag it back, or
95close it to make the toolbar return to its original position.
f0261a72 96
f0261a72
RD
97"""
98
1fded56b
RD
99if __name__ == '__main__':
100 import sys,os
101 import run
102 run.main(['', os.path.basename(sys.argv[0])])
103
104
105
f0261a72
RD
106
107
108
109
110
111
112
113
114
115