1#!/usr/bin/env python2 2# -*- coding: utf-8 -*- 3# Requires Python 2.7 or later 4 5import ctypes, os, sys, unittest 6 7from PySide.QtCore import * 8from PySide.QtGui import * 9 10import ScintillaCallable 11 12sys.path.append("..") 13from bin import ScintillaEditPy 14 15scintillaDirectory = ".." 16scintillaIncludeDirectory = os.path.join(scintillaDirectory, "include") 17scintillaScriptsDirectory = os.path.join(scintillaDirectory, "scripts") 18sys.path.append(scintillaScriptsDirectory) 19import Face 20 21class Form(QDialog): 22 23 def __init__(self, parent=None): 24 super(Form, self).__init__(parent) 25 self.resize(460,300) 26 # Create widget 27 self.edit = ScintillaEditPy.ScintillaEdit(self) 28 29class XiteWin(): 30 def __init__(self, test=""): 31 self.face = Face.Face() 32 self.face.ReadFromFile(os.path.join(scintillaIncludeDirectory, "Scintilla.iface")) 33 34 self.test = test 35 36 self.form = Form() 37 38 scifn = self.form.edit.send(int(self.face.features["GetDirectFunction"]["Value"]), 0, 0) 39 sciptr = ctypes.c_char_p(self.form.edit.send( 40 int(self.face.features["GetDirectPointer"]["Value"]), 0,0)) 41 42 self.ed = ScintillaCallable.ScintillaCallable(self.face, scifn, sciptr) 43 self.form.show() 44 45 def DoStuff(self): 46 print(self.test) 47 self.CmdTest() 48 49 def DoEvents(self): 50 QApplication.processEvents() 51 52 def CmdTest(self): 53 runner = unittest.TextTestRunner() 54 tests = unittest.defaultTestLoader.loadTestsFromName(self.test) 55 results = runner.run(tests) 56 print(results) 57 sys.exit(0) 58 59xiteFrame = None 60 61def main(test): 62 global xiteFrame 63 app = QApplication(sys.argv) 64 xiteFrame = XiteWin(test) 65 xiteFrame.DoStuff() 66 sys.exit(app.exec_()) 67