File: testsepq.py

package info (click to toggle)
codequery 0.26.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 9,332 kB
  • sloc: cpp: 106,043; xml: 16,576; python: 4,187; perl: 244; makefile: 11
file content (157 lines) | stat: -rw-r--r-- 5,525 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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.styleFont(1)
		print(len(someText), '[' + someText + ']')
		someText = self.edit.getSelText()
		print(len(someText), '[' + someText + ']')
		someText = self.edit.tag(1)
		print(len(someText), '[' + someText + ']')
		someText = self.edit.autoCCurrentText()
		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.property("fold")
		print(len(someText), '[' + someText + ']')
		someText = self.edit.propertyExpanded("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_())