diff options
Diffstat (limited to 'qt/ScintillaEditPy/testsepq.py')
-rw-r--r-- | qt/ScintillaEditPy/testsepq.py | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/qt/ScintillaEditPy/testsepq.py b/qt/ScintillaEditPy/testsepq.py new file mode 100644 index 000000000..a3849295d --- /dev/null +++ b/qt/ScintillaEditPy/testsepq.py @@ -0,0 +1,157 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys + +from PySide.QtCore import * +from PySide.QtGui import * + +import ScintillaConstants as sci + +sys.path.append("../..") +from bin import ScintillaEditPy + +txtInit = "int main(int argc, char **argv) {\n" \ + " // Start up the gnome\n" \ + " gnome_init(\"stest\", \"1.0\", argc, argv);\n}\n"; + +keywords = \ + "and and_eq asm auto bitand bitor bool break " \ + "case catch char class compl const const_cast continue " \ + "default delete do double dynamic_cast else enum explicit export extern false float for " \ + "friend goto if inline int long mutable namespace new not not_eq " \ + "operator or or_eq private protected public " \ + "register reinterpret_cast return short signed sizeof static static_cast struct switch " \ + "template this throw true try typedef typeid typename union unsigned using " \ + "virtual void volatile wchar_t while xor xor_eq"; + +def uriDropped(): + print "uriDropped" + +class Form(QDialog): + + def __init__(self, parent=None): + super(Form, self).__init__(parent) + self.resize(460,300) + # Create widgets + self.edit = ScintillaEditPy.ScintillaEdit(self) + self.edit.uriDropped.connect(uriDropped) + self.edit.command.connect(self.receive_command) + self.edit.notify.connect(self.receive_notification) + + self.edit.styleClearAll() + self.edit.setMarginWidthN(0, 35) + self.edit.setScrollWidth(200) + self.edit.setScrollWidthTracking(1) + self.edit.setLexer(sci.SCLEX_CPP) + self.edit.styleSetFore(sci.SCE_C_COMMENT, 0x008000) + self.edit.styleSetFore(sci.SCE_C_COMMENTLINE, 0x008000) + self.edit.styleSetFore(sci.SCE_C_COMMENTDOC, 0x008040) + self.edit.styleSetItalic(sci.SCE_C_COMMENTDOC, 1) + self.edit.styleSetFore(sci.SCE_C_NUMBER, 0x808000) + self.edit.styleSetFore(sci.SCE_C_WORD, 0x800000) + self.edit.styleSetBold(sci.SCE_C_WORD, True) + self.edit.styleSetFore(sci.SCE_C_STRING, 0x800080) + self.edit.styleSetFore(sci.SCE_C_PREPROCESSOR, 0x008080) + self.edit.styleSetBold(sci.SCE_C_OPERATOR, True) + self.edit.setMultipleSelection(1) + self.edit.setVirtualSpaceOptions( + sci.SCVS_RECTANGULARSELECTION | sci.SCVS_USERACCESSIBLE) + self.edit.setAdditionalSelectionTyping(1) + + self.edit.styleSetFore(sci.STYLE_INDENTGUIDE, 0x808080) + self.edit.setIndentationGuides(sci.SC_IV_LOOKBOTH) + + self.edit.setKeyWords(0, keywords) + self.edit.addText(len(txtInit), txtInit) + self.edit.setSel(1,10) + retriever = str(self.edit.getLine(1)) + print(type(retriever), len(retriever)) + print('[' + retriever + ']') + someText = str(self.edit.textRange(2,5)) + print(len(someText), '[' + someText + ']') + someText = self.edit.getCurLine(100) + print(len(someText), '[' + someText + ']') + someText = self.edit.styleGetFont(1) + print(len(someText), '[' + someText + ']') + someText = self.edit.getSelText() + print(len(someText), '[' + someText + ']') + someText = self.edit.getTag(1) + print(len(someText), '[' + someText + ']') + someText = self.edit.autoCGetCurrentText() + print(len(someText), '[' + someText + ']') + someText = self.edit.annotationText(1) + print(len(someText), '[' + someText + ']') + someText = self.edit.annotationStyles(1) + print(len(someText), '[' + someText + ']') + someText = self.edit.describeKeyWordSets() + print(len(someText), '[' + someText + ']') + someText = self.edit.propertyNames() + print(len(someText), '[' + someText + ']') + self.edit.setProperty("fold", "1") + someText = self.edit.getProperty("fold") + print(len(someText), '[' + someText + ']') + someText = self.edit.getPropertyExpanded("fold") + print(len(someText), '[' + someText + ']') + someText = self.edit.lexerLanguage() + print(len(someText), '[' + someText + ']') + someText = self.edit.describeProperty("styling.within.preprocessor") + print(len(someText), '[' + someText + ']') + + xx = self.edit.findText(0, "main", 0, 25) + print(type(xx), xx) + print("isBold", self.edit.styleBold(sci.SCE_C_WORD)) + + # Retrieve the document and write into it + doc = self.edit.get_doc() + doc.insert_string(40, "***") + stars = doc.get_char_range(40,3) + assert stars == "***" + + # Create a new independent document and attach it to the editor + doc = ScintillaEditPy.ScintillaDocument() + doc.insert_string(0, "/***/\nif(a)\n") + self.edit.set_doc(doc) + self.edit.setLexer(sci.SCLEX_CPP) + + def Call(self, message, wParam=0, lParam=0): + return self.edit.send(message, wParam, lParam) + + def resizeEvent(self, e): + self.edit.resize(e.size().width(), e.size().height()) + + def receive_command(self, wParam, lParam): + # Show underline at start when focussed + notifyCode = wParam >> 16 + if (notifyCode == sci.SCEN_SETFOCUS) or (notifyCode == sci.SCEN_KILLFOCUS): + self.edit.setIndicatorCurrent(sci.INDIC_CONTAINER); + self.edit.indicatorClearRange(0, self.edit.length()) + if notifyCode == sci.SCEN_SETFOCUS: + self.edit.indicatorFillRange(0, 2); + + def receive_notification(self, scn): + if scn.nmhdr.code == sci.SCN_CHARADDED: + print "Char %02X" % scn.ch + elif scn.nmhdr.code == sci.SCN_SAVEPOINTREACHED: + print "Saved" + elif scn.nmhdr.code == sci.SCN_SAVEPOINTLEFT: + print "Unsaved" + elif scn.nmhdr.code == sci.SCN_MODIFIED: + print "Modified" + elif scn.nmhdr.code == sci.SCN_UPDATEUI: + print "Update UI" + elif scn.nmhdr.code == sci.SCN_PAINTED: + #print "Painted" + pass + else: + print "Notification", scn.nmhdr.code + pass + +if __name__ == '__main__': + # Create the Qt Application + app = QApplication(sys.argv) + # Create and show the form + form = Form() + form.show() + # Run the main Qt loop + sys.exit(app.exec_()) |