]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/wxFileHistory.py
digital mars updated
[wxWidgets.git] / wxPython / demo / wxFileHistory.py
CommitLineData
7c41d11a
RD
1
2from wxPython.wx import *
3import os
4
5#----------------------------------------------------------------------
6
7text = """\
8Right-click on the panel to get a menu. This menu will be managed by
9a wxFileHistory object and so the files you select will automatically
10be added to the end of the menu and will be selectable the next time
11the menu is viewed. The filename selcted, either via the Open menu
12item, or from the history, will be displayed in the log window below.
13"""
14
15#----------------------------------------------------------------------
16
17class TestPanel(wxPanel):
18 def __init__(self, parent, log):
19 self.log = log
20 wxPanel.__init__(self, parent, -1)
21 box = wxBoxSizer(wxVERTICAL)
22
23 # Make and layout the controls
d3bfec74
RD
24 fs = self.GetFont().GetPointSize()
25 bf = wxFont(fs+4, wxSWISS, wxNORMAL, wxBOLD)
26 nf = wxFont(fs+2, wxSWISS, wxNORMAL, wxNORMAL)
7c41d11a
RD
27
28 t = wxStaticText(self, -1, "wxFileHistory")
29 t.SetFont(bf)
30 box.Add(t, 0, wxCENTER|wxALL, 5)
31
32 box.Add(wxStaticLine(self, -1), 0, wxEXPAND)
33 box.Add(10,20)
34
35 t = wxStaticText(self, -1, text)
36 t.SetFont(nf)
37 box.Add(t, 0, wxCENTER|wxALL, 5)
38
39 self.SetSizer(box)
1e4a197e 40 self.SetAutoLayout(True)
7c41d11a
RD
41
42 # Make a menu
43 self.menu = m = wxMenu()
44 m.Append(wxID_NEW, "&New")
45 m.Append(wxID_OPEN, "&Open...")
46 m.Append(wxID_CLOSE, "&Close")
47 m.Append(wxID_SAVE, "&Save")
48 m.Append(wxID_SAVEAS, "Save &as...")
1e4a197e
RD
49 m.Enable(wxID_NEW, False)
50 m.Enable(wxID_CLOSE, False)
51 m.Enable(wxID_SAVE, False)
52 m.Enable(wxID_SAVEAS, False)
7c41d11a
RD
53
54 # and a file history
55 self.filehistory = wxFileHistory()
56 self.filehistory.UseMenu(self.menu)
57
58 # and finally the event handler bindings
59 EVT_RIGHT_UP(self, self.OnRightClick)
60 EVT_MENU(self, wxID_OPEN, self.OnFileOpenDialog)
61 EVT_MENU_RANGE(self, wxID_FILE1, wxID_FILE9, self.OnFileHistory)
f2a10cdc 62 EVT_WINDOW_DESTROY(self, self.Cleanup)
7c41d11a
RD
63
64
f2a10cdc 65 def Cleanup(self, *args):
7c41d11a
RD
66 del self.filehistory
67 self.menu.Destroy()
68
69
70 def OnRightClick(self, evt):
71 self.PopupMenu(self.menu, evt.GetPosition())
72
73
74 def OnFileOpenDialog(self, evt):
75 dlg = wxFileDialog(self,
76 defaultDir = os.getcwd(),
93214200 77 wildcard = "All Files|*",
7c41d11a
RD
78 style = wxOPEN | wxCHANGE_DIR)
79 if dlg.ShowModal() == wxID_OK:
80 path = dlg.GetPath()
81 self.log.write("You selected %s\n" % path)
82
83 # add it to the history
84 self.filehistory.AddFileToHistory(path)
85
86 dlg.Destroy()
87
88
89 def OnFileHistory(self, evt):
90 # get the file based on the menu ID
91 fileNum = evt.GetId() - wxID_FILE1
92 path = self.filehistory.GetHistoryFile(fileNum)
93 self.log.write("You selected %s\n" % path)
94
95 # add it back to the history so it will be moved up the list
96 self.filehistory.AddFileToHistory(path)
97
98
99
100#----------------------------------------------------------------------
101
102def runTest(frame, nb, log):
103 win = TestPanel(nb, log)
104 return win
105
106#----------------------------------------------------------------------
107
108
109
110overview = """<html><body>
111<h3>wxFileHistory</h3>
112
113wxFileHistory encapsulates functionality to record the last few files
114visited, and to allow the user to quickly load these files using the
115list appended to a menu, such as the File menu.
116
117</body></html>
118"""
93214200
RD
119
120if __name__ == '__main__':
8641d30c 121 import sys,os
93214200 122 import run
8641d30c 123 run.main(['', os.path.basename(sys.argv[0])])
93214200 124