Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
splittst.py80 linesDownload Raw Back to Demos
1import commctrl2import fontdemo3import win32ui4from pywin.mfc import docview, window5 6# derive from CMDIChild.  This does much work for us.7 8 9class SplitterFrame(window.MDIChildWnd):10    def __init__(self):11        # call base CreateFrame12        self.images = None13        window.MDIChildWnd.__init__(self)14 15    def OnCreateClient(self, cp, context):16        splitter = win32ui.CreateSplitter()17        doc = context.doc18        frame_rect = self.GetWindowRect()19        size = ((frame_rect[2] - frame_rect[0]), (frame_rect[3] - frame_rect[1]) // 2)20        sub_size = (size[0] // 2, size[1])21        splitter.CreateStatic(self, 2, 1)22        self.v1 = win32ui.CreateEditView(doc)23        self.v2 = fontdemo.FontView(doc)24        # CListControl view25        self.v3 = win32ui.CreateListView(doc)26        sub_splitter = win32ui.CreateSplitter()27        # pass "splitter" so each view knows how to get to the others28        sub_splitter.CreateStatic(splitter, 1, 2)29        sub_splitter.CreateView(self.v1, 0, 0, (sub_size))30        sub_splitter.CreateView(self.v2, 0, 1, (0, 0))  # size ignored.31        splitter.SetRowInfo(0, size[1], 0)32        splitter.CreateView(self.v3, 1, 0, (0, 0))  # size ignored.33        # Setup items in the imagelist34        self.images = win32ui.CreateImageList(32, 32, 1, 5, 5)35        self.images.Add(win32ui.GetApp().LoadIcon(win32ui.IDR_MAINFRAME))36        self.images.Add(win32ui.GetApp().LoadIcon(win32ui.IDR_PYTHONCONTYPE))37        self.images.Add(win32ui.GetApp().LoadIcon(win32ui.IDR_TEXTTYPE))38        self.v3.SetImageList(self.images, commctrl.LVSIL_NORMAL)39        self.v3.InsertItem(0, "Icon 1", 0)40        self.v3.InsertItem(0, "Icon 2", 1)41        self.v3.InsertItem(0, "Icon 3", 2)42        # 		self.v3.Arrange(commctrl.LVA_DEFAULT) Hmmm - win95 aligns left always???43        return 144 45    def OnDestroy(self, msg):46        window.MDIChildWnd.OnDestroy(self, msg)47        if self.images:48            self.images.DeleteImageList()49            self.images = None50 51    def InitialUpdateFrame(self, doc, makeVisible):52        self.v1.ReplaceSel("Hello from Edit Window 1")53        self.v1.SetModifiedFlag(0)54 55 56class SampleTemplate(docview.DocTemplate):57    def __init__(self):58        docview.DocTemplate.__init__(59            self, win32ui.IDR_PYTHONTYPE, None, SplitterFrame, None60        )61 62    def InitialUpdateFrame(self, frame, doc, makeVisible):63        # 		print "frame is ", frame, frame._obj_64        # 		print "doc is ", doc, doc._obj_65        self._obj_.InitialUpdateFrame(frame, doc, makeVisible)  # call default handler.66        frame.InitialUpdateFrame(doc, makeVisible)67 68 69def demo():70    template = SampleTemplate()71    doc = template.OpenDocumentFile(None)72    doc.SetTitle("Splitter Demo")73 74 75if __name__ == "__main__":76    import demoutils77 78    if demoutils.NeedGoodGUI():79        demo()80 
codekingpro/portable-devtools · Team Ai