mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-07-04 15:17:14 +00:00
first commit
This commit is contained in:
137
.venv/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py
Normal file
137
.venv/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py
Normal file
@ -0,0 +1,137 @@
|
||||
import win32ui
|
||||
import os
|
||||
import commctrl
|
||||
|
||||
from pywin.tools import hierlist
|
||||
from pywin.mfc import docview, window
|
||||
|
||||
# directory listbox
|
||||
# This has obvious limitations - doesnt track subdirs, etc. Demonstrates
|
||||
# simple use of Python code for querying the tree as needed.
|
||||
# Only use strings, and lists of strings (from curdir())
|
||||
class DirHierList(hierlist.HierList):
|
||||
def __init__(self, root, listBoxID=win32ui.IDC_LIST1):
|
||||
hierlist.HierList.__init__(self, root, win32ui.IDB_HIERFOLDERS, listBoxID)
|
||||
|
||||
def GetText(self, item):
|
||||
return os.path.basename(item)
|
||||
|
||||
def GetSubList(self, item):
|
||||
if os.path.isdir(item):
|
||||
ret = [os.path.join(item, fname) for fname in os.listdir(item)]
|
||||
else:
|
||||
ret = None
|
||||
return ret
|
||||
|
||||
# if the item is a dir, it is expandable.
|
||||
def IsExpandable(self, item):
|
||||
return os.path.isdir(item)
|
||||
|
||||
def GetSelectedBitmapColumn(self, item):
|
||||
return self.GetBitmapColumn(item) + 6 # Use different color for selection
|
||||
|
||||
|
||||
class TestDocument(docview.Document):
|
||||
def __init__(self, template):
|
||||
docview.Document.__init__(self, template)
|
||||
self.hierlist = hierlist.HierListWithItems(
|
||||
HLIFileDir("\\"), win32ui.IDB_HIERFOLDERS, win32ui.AFX_IDW_PANE_FIRST
|
||||
)
|
||||
|
||||
|
||||
class HierListView(docview.TreeView):
|
||||
def OnInitialUpdate(self):
|
||||
rc = self._obj_.OnInitialUpdate()
|
||||
self.hierList = self.GetDocument().hierlist
|
||||
self.hierList.HierInit(self.GetParent())
|
||||
self.hierList.SetStyle(
|
||||
commctrl.TVS_HASLINES | commctrl.TVS_LINESATROOT | commctrl.TVS_HASBUTTONS
|
||||
)
|
||||
return rc
|
||||
|
||||
|
||||
class HierListFrame(window.MDIChildWnd):
|
||||
pass
|
||||
|
||||
|
||||
def GetTestRoot():
|
||||
tree1 = ("Tree 1", [("Item 1", "Item 1 data"), "Item 2", 3])
|
||||
tree2 = ("Tree 2", [("Item 2.1", "Item 2 data"), "Item 2.2", 2.3])
|
||||
return ("Root", [tree1, tree2, "Item 3"])
|
||||
|
||||
|
||||
def demoboth():
|
||||
template = docview.DocTemplate(
|
||||
win32ui.IDR_PYTHONTYPE, TestDocument, HierListFrame, HierListView
|
||||
)
|
||||
template.OpenDocumentFile(None).SetTitle("Hierlist demo")
|
||||
|
||||
demomodeless()
|
||||
|
||||
|
||||
def demomodeless():
|
||||
testList2 = DirHierList("\\")
|
||||
dlg = hierlist.HierDialog("hier list test", testList2)
|
||||
dlg.CreateWindow()
|
||||
|
||||
|
||||
def demodlg():
|
||||
testList2 = DirHierList("\\")
|
||||
dlg = hierlist.HierDialog("hier list test", testList2)
|
||||
dlg.DoModal()
|
||||
|
||||
|
||||
def demo():
|
||||
template = docview.DocTemplate(
|
||||
win32ui.IDR_PYTHONTYPE, TestDocument, HierListFrame, HierListView
|
||||
)
|
||||
template.OpenDocumentFile(None).SetTitle("Hierlist demo")
|
||||
|
||||
|
||||
#
|
||||
# Demo/Test for HierList items.
|
||||
#
|
||||
# Easy to make a better directory program.
|
||||
#
|
||||
class HLIFileDir(hierlist.HierListItem):
|
||||
def __init__(self, filename):
|
||||
self.filename = filename
|
||||
hierlist.HierListItem.__init__(self)
|
||||
|
||||
def GetText(self):
|
||||
try:
|
||||
return "%-20s %d bytes" % (
|
||||
os.path.basename(self.filename),
|
||||
os.stat(self.filename)[6],
|
||||
)
|
||||
except os.error as details:
|
||||
return "%-20s - %s" % (self.filename, details[1])
|
||||
|
||||
def IsExpandable(self):
|
||||
return os.path.isdir(self.filename)
|
||||
|
||||
def GetSubList(self):
|
||||
ret = []
|
||||
for newname in os.listdir(self.filename):
|
||||
if newname not in [".", ".."]:
|
||||
ret.append(HLIFileDir(os.path.join(self.filename, newname)))
|
||||
return ret
|
||||
|
||||
|
||||
def demohli():
|
||||
template = docview.DocTemplate(
|
||||
win32ui.IDR_PYTHONTYPE,
|
||||
TestDocument,
|
||||
hierlist.HierListFrame,
|
||||
hierlist.HierListView,
|
||||
)
|
||||
template.OpenDocumentFile(None).SetTitle("Hierlist demo")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import demoutils
|
||||
|
||||
if demoutils.HaveGoodGUI():
|
||||
demoboth()
|
||||
else:
|
||||
demodlg()
|
Reference in New Issue
Block a user