Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import wx
  4. import os
  5. import time
  6.  
  7.  
  8. ID_BUTTON=100
  9. ID_EXIT=200
  10. ID_SPLITTER=300
  11.  
  12. class MyListCtrl(wx.ListCtrl):
  13. def __init__(self, parent, id):
  14. wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT)
  15.  
  16. files = os.listdir('.')
  17. ## images = ['images/empty.png', 'images/folder.png', 'images/source_py.png',
  18. ## 'images/image.png', 'images/pdf.png', 'images/up16.png']
  19.  
  20. self.InsertColumn(0, 'Name')
  21. self.InsertColumn(1, 'Ext')
  22. self.InsertColumn(2, 'Size', wx.LIST_FORMAT_RIGHT)
  23. self.InsertColumn(3, 'Modified')
  24.  
  25. self.SetColumnWidth(0, 220)
  26. self.SetColumnWidth(1, 70)
  27. self.SetColumnWidth(2, 100)
  28. self.SetColumnWidth(3, 420)
  29.  
  30. ## self.il = wx.ImageList(16, 16)
  31. ## for i in images:
  32. ## self.il.Add(wx.Bitmap(i))
  33. ## self.SetImageList(self.il, wx.IMAGE_LIST_SMALL)
  34.  
  35. j = 1
  36. self.InsertStringItem(0, '..')
  37. self.SetItemImage(0, 5)
  38.  
  39. for i in files:
  40. (name, ext) = os.path.splitext(i)
  41. ex = ext[1:]
  42. size = os.path.getsize(i)
  43. sec = os.path.getmtime(i)
  44. self.InsertStringItem(j, name)
  45. self.SetStringItem(j, 1, ex)
  46. self.SetStringItem(j, 2, str(size) + ' B')
  47. self.SetStringItem(j, 3, time.strftime('%Y-%m-%d %H:%M',
  48. time.localtime(sec)))
  49.  
  50. if os.path.isdir(i):
  51. self.SetItemImage(j, 1)
  52. elif ex == 'py':
  53. self.SetItemImage(j, 2)
  54. elif ex == 'jpg':
  55. self.SetItemImage(j, 3)
  56. elif ex == 'pdf':
  57. self.SetItemImage(j, 4)
  58. else:
  59. self.SetItemImage(j, 0)
  60.  
  61. if (j % 2) == 0:
  62. self.SetItemBackgroundColour(j, '#e6f1f5')
  63. j = j + 1
  64.  
  65.  
  66. class FileHunter(wx.Frame):
  67. def __init__(self, parent, id, title):
  68. wx.Frame.__init__(self, parent, -1, title)
  69.  
  70. self.splitter = wx.SplitterWindow(self, ID_SPLITTER, style=wx.SP_BORDER)
  71. self.splitter.SetMinimumPaneSize(50)
  72.  
  73. p1 = MyListCtrl(self.splitter, -1)
  74. p2 = MyListCtrl(self.splitter, -1)
  75. self.splitter.SplitVertically(p1, p2)
  76.  
  77. self.Bind(wx.EVT_SIZE, self.OnSize)
  78. self.Bind(wx.EVT_SPLITTER_DCLICK, self.OnDoubleClick, id=ID_SPLITTER)
  79.  
  80. filemenu= wx.Menu()
  81. filemenu.Append(ID_EXIT,"E&xit"," Terminate the program")
  82. editmenu = wx.Menu()
  83. netmenu = wx.Menu()
  84. showmenu = wx.Menu()
  85. configmenu = wx.Menu()
  86. helpmenu = wx.Menu()
  87.  
  88. menuBar = wx.MenuBar()
  89. menuBar.Append(filemenu,"&File")
  90. menuBar.Append(editmenu, "&Edit")
  91. menuBar.Append(netmenu, "&Net")
  92. menuBar.Append(showmenu, "&Show")
  93. menuBar.Append(configmenu, "&Config")
  94. menuBar.Append(helpmenu, "&Help")
  95. self.SetMenuBar(menuBar)
  96. self.Bind(wx.EVT_MENU, self.OnExit, id=ID_EXIT)
  97.  
  98. ## tb = self.CreateToolBar( wx.TB_HORIZONTAL | wx.NO_BORDER |
  99. ## wx.TB_FLAT | wx.TB_TEXT)
  100. ## tb.AddSimpleTool(10, wx.Bitmap('images/previous.png'), 'Previous')
  101. ## tb.AddSimpleTool(20, wx.Bitmap('images/up.png'), 'Up one directory')
  102. ## tb.AddSimpleTool(30, wx.Bitmap('images/blank.png'), 'Home')
  103. ## tb.AddSimpleTool(40, wx.Bitmap('images/Button Reload-01.png'), 'Refresh')
  104. ## tb.AddSeparator()
  105. ## tb.AddSimpleTool(50, wx.Bitmap('images/Button New-01.png'), 'Editor')
  106. ## tb.AddSimpleTool(60, wx.Bitmap('images/Network Connection-01.png'), 'Terminal')
  107. ## tb.AddSeparator()
  108. ## tb.AddSimpleTool(70, wx.Bitmap('images/Help-01.png'), 'Help')
  109. ## tb.Realize()
  110.  
  111. self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
  112.  
  113. button1 = wx.Button(self, ID_BUTTON + 1, "F3 View")
  114. button2 = wx.Button(self, ID_BUTTON + 2, "F4 Edit")
  115. button3 = wx.Button(self, ID_BUTTON + 3, "F5 Copy")
  116. button4 = wx.Button(self, ID_BUTTON + 4, "F6 Move")
  117. button5 = wx.Button(self, ID_BUTTON + 5, "F7 Mkdir")
  118. button6 = wx.Button(self, ID_BUTTON + 6, "F8 Delete")
  119. button7 = wx.Button(self, ID_BUTTON + 7, "F9 Rename")
  120. button8 = wx.Button(self, ID_EXIT, "F10 Quit")
  121.  
  122. self.sizer2.Add(button1, 1, wx.EXPAND)
  123. self.sizer2.Add(button2, 1, wx.EXPAND)
  124. self.sizer2.Add(button3, 1, wx.EXPAND)
  125. self.sizer2.Add(button4, 1, wx.EXPAND)
  126. self.sizer2.Add(button5, 1, wx.EXPAND)
  127. self.sizer2.Add(button6, 1, wx.EXPAND)
  128. self.sizer2.Add(button7, 1, wx.EXPAND)
  129. self.sizer2.Add(button8, 1, wx.EXPAND)
  130.  
  131. self.Bind(wx.EVT_BUTTON, self.OnExit, id=ID_EXIT)
  132.  
  133. self.sizer = wx.BoxSizer(wx.VERTICAL)
  134. self.sizer.Add(self.splitter,1,wx.EXPAND)
  135. self.sizer.Add(self.sizer2,0,wx.EXPAND)
  136. self.SetSizer(self.sizer)
  137.  
  138. size = wx.DisplaySize()
  139. self.SetSize(size)
  140.  
  141. self.sb = self.CreateStatusBar()
  142. self.sb.SetStatusText(os.getcwd())
  143. self.Center()
  144. self.Show(True)
  145.  
  146.  
  147. def OnExit(self,e):
  148. self.Close(True)
  149.  
  150. def OnSize(self, event):
  151. size = self.GetSize()
  152. self.splitter.SetSashPosition(size.x / 2)
  153. self.sb.SetStatusText(os.getcwd())
  154. event.Skip()
  155.  
  156.  
  157. def OnDoubleClick(self, event):
  158. size = self.GetSize()
  159. self.splitter.SetSashPosition(size.x / 2)
  160.  
  161. app = wx.App(0)
  162. FileHunter(None, -1, 'File Hunter')
  163. app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement