wxKonTEXT.py (original) (raw)
1: #!/usr/bin/python
2: import thread
3: from wxPython.wx import *
4: from string import *
5: from os import access,listdir
6: from wxPython.stc import *
7: import sys, os
8: from wxPython.wx import *
9: from wxPython.stc import *
10: from wxPython.html import *
11: import keyword
12: from random import *
13: import cgi
14: from wxPython.lib.buttons import *
15: from wxPython.lib.colourchooser import wxPyColourChooser
16: from httplib import *
17: from urllib import *
18: from wxPython.lib.colourselect import *
19: wxInitAllImageHandlers() #////inserisco gli handlers per supportare tutti i tipi di immagine nel nostro caso gif
20: files={} #/////lista con tutti i files di configurazione
21: #print os.path.abspath(os.getcwd())
22: files['default_dir'] = os.path.abspath(os.path.dirname(sys.argv[0]))+"/"
23: files['default_dir']=replace(files['default_dir'], "\", "/")
24: files['default_dir']=replace(files['default_dir'], "library.zip", "")
25: variables=files['default_dir']+"variables" ##percorso per il file delle variabili globali
26:
27: execfile(variables)
28:
29: def len_words(num):
30: ciccio=open(files['default_dir']+"/"+files['languages']+"/"+lingua, "r")
31: stringa=ciccio.readlines()
32: ciccio.close()
33: return strip(stringa[num])
34: linea=len_words(3)
35: colonna=len_words(4)
36:
37:
38: ####################RINGRAZIAMENTI##########################
39: [wxID_WXFRAME3, wxID_WXFRAME3HTMLWINDOW1, wxID_WXFRAME3PANEL1,
40: wxID_WXFRAME3STATICBITMAP1,
41: ] = map(lambda init_ctrls: wxNewId(), range(4))
42:
43: class win_info(wxFrame):
44: def init_utils(self):
45: # generated method, don't edit
46: pass
47:
48: def init_ctrls(self, prnt):
49: # generated method, don't edit
50: wxFrame.init(self, id=wxID_WXFRAME3, name='', parent=prnt,
51: pos=wxPoint(306, 220), size=wxSize(437, 527),
52: style=wxSYSTEM_MENU | wxCAPTION, title='wxKonTEXT V 0.3')
53: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
54: self.SetIcon(icon)
55: self.init_utils()
56: self.SetClientSize(wxSize(437, 527))
57:
58: self.panel1 = wxPanel(id=wxID_WXFRAME3PANEL1, name='panel1',
59: parent=self, pos=wxPoint(0, 0), size=wxSize(437, 527),
60: style=wxTAB_TRAVERSAL)
61:
62: self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"splash.png",
63: wxBITMAP_TYPE_PNG), id=wxID_WXFRAME3STATICBITMAP1,
64: name='staticBitmap1', parent=self.panel1, pos=wxPoint(0, 0),
65: size=wxSize(437, 376), style=0)
66:
67: self.htmlWindow1 = wxHtmlWindow(id=wxID_WXFRAME3HTMLWINDOW1,
68: name='htmlWindow1', parent=self.panel1, pos=wxPoint(0, 376),
69: size=wxSize(437, 150))
70: self.Centre()
71: self.htmlWindow1.LoadFile(files['default_dir']+files['icon']+"/"+"info.htm")
72:
73: def init(self, parent):
74: self.init_ctrls(parent)
75:
76: ###################SCELTA LINGUA#####################################
77: [wxID_WXFRAME2, wxID_WXFRAME2COMBOBOX1, wxID_WXFRAME2GENBITMAPTEXTBUTTON1,
78: wxID_WXFRAME2PANEL1, wxID_WXFRAME2STATICBITMAP1, wxID_WXFRAME2STATICTEXT1,
79: ] = map(lambda init_ctrls: wxNewId(), range(6))
80:
81: class wxlenguage(wxFrame):
82: def init_utils(self):
83: # generated method, don't edit
84: pass
85:
86: def init_ctrls(self, prnt):
87: # generated method, don't edit
88: wxFrame.init(self, id=wxID_WXFRAME2, name='', parent=prnt,
89: pos=wxPoint(218, 218), size=wxSize(220, 150),
90: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(39))
91: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
92: self.SetIcon(icon)
93: self.init_utils()
94: self.Centre()
95:
96: self.panel1 = wxPanel(id=wxID_WXFRAME2PANEL1, name='panel1',
97: parent=self, pos=wxPoint(0, 0), size=wxSize(220, 150),
98: style=wxTAB_TRAVERSAL)
99:
100: self.staticText1 = wxStaticText(id=wxID_WXFRAME2STATICTEXT1,
101: label=len_words(40), name='staticText1', parent=self.panel1,
102: pos=wxPoint(70, 24), size=wxSize(130, 16), style=0)
103:
104: self.comboBox1 = wxComboBox(choices=self.lista, id=wxID_WXFRAME2COMBOBOX1,
105: name='comboBox1', parent=self.panel1, pos=wxPoint(24, 48),
106: size=wxSize(180, 22), style=0, validator=wxDefaultValidator, value=self.lista[0])
107:
108: self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON1,
109: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif",
110: wxBITMAP_TYPE_ANY), label='OK', name='genBitmapTextButton1',
111: parent=self.panel1, pos=wxPoint(80, 88), size=wxSize(105, 24),
112: style=0)
113:
114: EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, self.ok)
115:
116: self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"world.gif",
117: wxBITMAP_TYPE_ANY),
118: id=wxID_WXFRAME2STATICBITMAP1, name='staticBitmap1',
119: parent=self.panel1, pos=wxPoint(29, 11), size=wxSize(34, 35),
120: style=0)
121:
122: def init(self, parent):
123: self.lista=listdir(files['default_dir']+"/"+files['languages'])
124: self.lista=self.set_combo()
125: self.init_ctrls(parent)
126:
127: def ok(self, evt):
128: ciccio=open(variables, "r")
129: stringa=ciccio.readlines()
130: ciccio.close()
131: stringa[1]="lingua=""+self.comboBox1.GetValue()+""\n"
132: stringa=join(stringa, "")
133: ciccio=open(variables, "w")
134: ciccio.write(stringa)
135: ciccio.close()
136: error_window(13, self)
137: self.Destroy()
138:
139:
140: def set_combo(self):
141: leng=[]
142: for i in self.lista:
143: c=split(i, "")
144: i=c[-1]
145: if(i not in leng):
146: leng.append(i)
147: return leng
148:
149: ####################################################################
150:
151:
152:
153: #_____________________FINE HEADER
154:
155: #___FUNZIONE PER GESTIRE GLI ERRORI IRREVERSIBILI
156: def error(number, lol):
157: file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r")
158: stringa=file.readlines()
159: file.close()
160: dlg= wxMessageDialog(lol,stringa[number], "Error", wxOK)
161: if dlg.ShowModal() == wxID_OK:
162: dlg.Destroy()
163: lol.Destroy()
164: dlg.Destroy()
165: lol.Destroy()
166: #############---FUNZIONE PER GESTIRE GLI ERRORI REVERSIBILI
167: def error_window(number, lol):
168: file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r")
169: stringa=file.readlines()
170: file.close()
171: dlg= wxMessageDialog(lol,stringa[number], "Error", wxOK)
172: if dlg.ShowModal() == wxID_OK:
173: dlg.Destroy()
174: dlg.Destroy()
175:
176:
177:
178:
179: ###################ESCAPE CARATTERI###################################
180: [wxID_WXFRAME2, wxID_WXFRAME2GENBITMAPTEXTBUTTON1,
181: wxID_WXFRAME2GENBITMAPTEXTBUTTON2, wxID_WXFRAME2GENBITMAPTEXTBUTTON3,
182: wxID_WXFRAME2STATICTEXT1, wxID_WXFRAME2TEXTCTRL1, wxID_WXFRAME2TEXTCTRL2,
183: ] = map(lambda init_ctrls: wxNewId(), range(7))
184:
185: class win_escape(wxFrame):
186: def init_utils(self):
187: # generated method, don't edit
188: pass
189:
190: def init_ctrls(self, prnt):
191: # generated method, don't edit
192: wxFrame.init(self, id=wxID_WXFRAME2, name='', parent=prnt,
193: pos=wxPoint(191, 280), size=wxSize(300, 250),
194: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(38))
195: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
196: self.SetIcon(icon)
197: self.editor=prnt
198: self.init_utils()
199:
200: self.panel_1 = wxPanel(self, -1)
201:
202: sizer_1 = wxBoxSizer(wxVERTICAL)
203:
204: sizer_1.Add(self.panel_1, 1, wxEXPAND, 0)
205:
206: #####################################
207: self.SetClientSize(wxSize(300, 250))
208: self.SetAutoLayout(False)
209:
210: self.textCtrl1 = wxStyledTextCtrl(id=wxID_WXFRAME2TEXTCTRL1, name='textCtrl1',
211: parent=self.panel_1, pos=wxPoint(8, 24), size=wxSize(280, 88), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER)
212: self.textCtrl1.SetWrapMode(wxSTC_WRAP_WORD)
213: self.textCtrl1.SetMarginWidth(1, 0)
214:
215: self.staticText1 = wxStaticText(id=wxID_WXFRAME2STATICTEXT1,
216: label=len_words(0), name='staticText1',
217: parent=self.panel_1, pos=wxPoint(8, 8), size=wxSize(137, 16), style=0)
218:
219: self.textCtrl2 = wxStyledTextCtrl(id=wxID_WXFRAME2TEXTCTRL2, name='textCtrl2',
220: parent=self.panel_1, pos=wxPoint(8, 120), size=wxSize(280, 88), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER)
221: self.textCtrl2.SetWrapMode(wxSTC_WRAP_WORD)
222: self.textCtrl2.SetMarginWidth(1, 0)
223:
224: self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON1,
225: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif",
226: wxBITMAP_TYPE_ANY), label=len_words(7), name='genBitmapTextButton1',
227: parent=self.panel_1, pos=wxPoint(8, 216), size=wxSize(81, 30), style=0)
228:
229: self.genBitmapTextButton2 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON2,
230: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"spast.gif",
231: wxBITMAP_TYPE_ANY), label=len_words(9),
232: name='genBitmapTextButton2', parent=self.panel_1, pos=wxPoint(104, 216),
233: size=wxSize(88, 30), style=0)
234:
235: self.genBitmapTextButton3 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON3,
236: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sclose.gif",
237: wxBITMAP_TYPE_ANY), label=len_words(10), name='genBitmapTextButton3',
238: parent=self.panel_1, pos=wxPoint(208, 216), size=wxSize(81, 30), style=0)
239:
240: EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, self.converti)
241: EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON2, self.inserisci)
242: EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON3, self.resetta)
243: self.Centre()
244:
245: def init(self, parent):
246: self.init_ctrls(parent)
247:
248: def converti(self, evt):
249: testo=cgi.escape(self.textCtrl1.GetText(), true)
250: self.textCtrl2.SetText(testo)
251:
252: def inserisci(self, evt):
253: self.editor.style_text[self.editor.current_tab].InsertText(self.editor.style_text[self.editor.current_tab].GetCurrentPos(),cgi.escape(self.textCtrl1.GetText(), true))
254:
255: def resetta(self, evt):
256: self.textCtrl1.SetText("")
257: self.textCtrl2.SetText("")
258: ######################################################################
259:
260: ######______COLORI***********
261: class win_color(wxFrame):
262: def init_utils(self):
263: # generated method, don't edit
264: pass
265:
266: def init_ctrls(self, prnt):
267: # generated method, don't edit
268: wxFrame.init(self, id=99, name='', parent=prnt,
269: pos=wxPoint(191, 280), size=wxSize(480, 400),
270: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(5))
271: self.init_utils()
272: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
273: self.SetIcon(icon)
274: self.panel_1 = wxPanel(self, -1)
275:
276: sizer_1 = wxBoxSizer(wxVERTICAL)
277:
278: sizer_1.Add(self.panel_1, 1, wxEXPAND, 0)
279: self.chooser = wxPyColourChooser(self.panel_1, 33)
280: self.staticText1 = wxStaticText(id=150,
281: label=len_words(6)+' :', name='staticText1',
282: parent=self.panel_1, pos=wxPoint(30, 325), size=wxSize(137, 16), style=0)
283:
284: self.textCtrl1 = wxTextCtrl(id=10, name='textCtrl1',
285: parent=self.panel_1, pos=wxPoint(167, 325), size=wxSize(100, 20), style=0,
286: value='#000000')
287:
288: self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=156,
289: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sundo.gif",
290: wxBITMAP_TYPE_ANY), label=len_words(7), name='genBitmapTextButton1',
291: parent=self.panel_1, pos=wxPoint(270, 325), size=wxSize(81, 20), style=0)
292: EVT_BUTTON(self, 156, self.scrivi)
293:
294: self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=157,
295: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif",
296: wxBITMAP_TYPE_ANY), label=len_words(8), name='genBitmapTextButton1',
297: parent=self.panel_1, pos=wxPoint(360, 325), size=wxSize(81, 20), style=0)
298: EVT_BUTTON(self, 157, self.setta)
299:
300: self.Centre()
301:
302: def init(self, parent):
303: self.init_ctrls(parent)
304:
305: def scrivi(self, evt):
306: rgb_value=str(self.chooser.GetValue())
307: rgb_value=list(eval(rgb_value))
308: hex_1=replace(hex(rgb_value[0]), "0x", "")
309: hex_2=replace(hex(rgb_value[1]), "0x", "")
310: hex_3=replace(hex(rgb_value[2]), "0x", "")
311: if(len(hex_1)==1):
312: hex_1="0"+hex_1
313: if(len(hex_2)==1):
314: hex_2="0"+hex_2
315: if(len(hex_3)==1):
316: hex_3="0"+hex_3
317: hex_value="#"+upper(hex_1)+upper(hex_2)+upper(hex_3)
318: self.textCtrl1.SetValue(hex_value)
319:
320: def setta(self, evt):
321: hex_value=self.textCtrl1.GetValue()
322: int_1=int(eval("0x"+hex_value[1:3]))
323: int_2=int(eval("0x"+hex_value[3:5]))
324: int_3=int(eval("0x"+hex_value[5:7]))
325: self.chooser.SetValue(wxColor(int_1, int_2, int_3))
326: self.chooser.Update()
327: #############################################################################
328: ###########################################################//////////////per esportazione__
329: class esportazione(wxFrame):
330: def init_utils(self):
331: # generated method, don't edit
332: pass
333:
334: def init_ctrls(self, prnt):
335: # generated method, don't edit
336: wxFrame.init(self, id=1, name='', parent=prnt,
337: pos=wxPoint(333, 184), size=wxSize(347, 354),
338: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(25))
339: self.init_utils()
340: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
341: self.SetIcon(icon)
342: self.parent=prnt
343: self.panel1 = wxPanel(id=2, name='panel1',
344: parent=self, pos=wxPoint(0, 0), size=wxSize(344, 324),
345: style=wxTAB_TRAVERSAL)
346:
347: self.staticText1 = wxStaticText(id=3,
348: label=len_words(26), name='staticText1',
349: parent=self.panel1, pos=wxPoint(5, 5), size=wxSize(189, 16),
350: style=0)
351:
352: e = wxFontEnumerator()
353: e.EnumerateFacenames()
354: list = e.GetFacenames()
355: list.sort()
356: self.comboBox1 = wxComboBox(id=4,
357: name='comboBox1', parent=self.panel1, pos=wxPoint(48, 54),
358: size=wxSize(144, 20), style=0, validator=wxDefaultValidator,
359: choices=list)
360:
361: EVT_COMBOBOX(self, 4, self.change_font)
362:
363: self.staticText2 = wxStaticText(id=5,
364: label=len_words(27), name='staticText2', parent=self.panel1,
365: pos=wxPoint(10, 55), size=wxSize(32, 16), style=0)
366:
367: self.staticText3 = wxStaticText(id=6,
368: label=len_words(28), name='staticText3', parent=self.panel1,
369: pos=wxPoint(200, 55), size=wxSize(67, 16), style=0)
370: list=['8','10','12','14']
371: self.comboBox2 = wxComboBox(choices=list, id=7,
372: name='comboBox2', parent=self.panel1, pos=wxPoint(272, 54),
373: size=wxSize(44, 20), style=0, validator=wxDefaultValidator)
374:
375: EVT_COMBOBOX(self, 7, self.change_font)
376:
377: self.staticText4 = wxStaticText(id=8,
378: label=len_words(29), name='staticText4', parent=self.panel1,
379: pos=wxPoint(5, 135), size=wxSize(37, 16), style=0)
380:
381:
382: self.textCtrl1 = wxTextCtrl(id=9, name='textCtrl1',
383: parent=self.panel1, pos=wxPoint(48, 130), size=wxSize(288, 20),
384: style=0)
385:
386: self.staticBox1 = wxStaticBox(id=10,
387: label=len_words(30), name='staticBox1', parent=self.panel1,
388: pos=wxPoint(8, 160), size=wxSize(328, 88), style=0)
389:
390: self.staticText5 = wxStaticText(id=11,
391: label=len_words(31), name='staticText5',
392: parent=self.panel1, pos=wxPoint(60, 190), size=wxSize(161, 16),
393: style=0)
394:
395: self.checkBox2 = wxCheckBox(id=12,
396: label=len_words(32), name='checkBox2',
397: parent=self.panel1, pos=wxPoint(5, 250), size=wxSize(168, 24),
398: style=0)
399: self.checkBox2.SetValue(False)
400:
401: self.genBitmapTextButton2 = wxGenBitmapTextButton(ID=13,
402: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif",
403: wxBITMAP_TYPE_ANY), label=len_words(33),
404: name='genBitmapTextButton2', parent=self.panel1, pos=wxPoint(224,
405: 296), size=wxSize(113, 24), style=0)
406:
407: EVT_BUTTON(self, 13, self.avanti)
408:
409: self.staticLine1 = wxStaticLine(id=14,
410: name='staticLine1', parent=self.panel1, pos=wxPoint(0, 284),
411: size=wxSize(352, 4), style=0)
412:
413: self.staticText6 = wxStaticText(id=15,
414: label=len_words(34), name='staticText6',
415: parent=self.panel1, pos=wxPoint(24, 83), size=wxSize(288, 24),
416: style=0)
417:
418: self.staticBox2 = wxStaticBox(id=16,
419: label=len_words(35), name='staticBox2', parent=self.panel1,
420: pos=wxPoint(8, 32), size=wxSize(328, 88), style=0)
421:
422: self.b = ColourSelect(self.panel1, 17, "", (255,255,255), size = (32, 22), pos=wxPoint(24, 184))
423:
424: self.c = ColourSelect(self.panel1, 18, "", (0,0,0), size = (32, 22), pos=wxPoint(24, 220))
425:
426: self.staticText7 = wxStaticText(id=19,
427: label=len_words(36), name='staticText7',
428: parent=self.panel1, pos=wxPoint(60, 225), size=wxSize(152, 16),
429: style=0)
430:
431: self.comboBox2.SetValue("10")
432: #self.comboBox1.SetValue(0)
433: self.textCtrl1.SetValue(self.parent.notebook_1.GetPageText(self.parent.current_tab))
434:
435: def init(self, parent):
436: self.init_ctrls(parent)
437:
438: def change_font(self, evt):
439: font_select=wxFont(int(self.comboBox2.GetValue()), wxDEFAULT, wxNORMAL, wxNORMAL, underline = false, faceName=self.comboBox1.GetValue())
440: self.staticText6.SetFont(font_select)
441:
442: def avanti(self, evt):
443: self.Show(0)
444: dlg = wxFileDialog( self, style=wxSAVE | wxOVERWRITE_PROMPT | wxCHANGE_DIR ,wildcard='(HTML files)|*.htm' )
445: dlg.ShowModal()
446: all_path=dlg.GetPath()
447: dlg.Destroy()
448: if(all_path == None or all_path == ""):
449: return
450: else:
451: self.parent.esporta_html(self.b.GetValue(), self.c.GetValue(), self.comboBox1.GetValue(), self.comboBox2.GetValue(), self.checkBox2.GetValue(), all_path, self.textCtrl1.GetValue())
452: self.Destroy()
453: ##____////////////////////per il conteggio del testo
454: class win_conta(wxFrame):
455: primo=0
456: secondo=0
457: terzo=0
458: def init_utils(self):
459: # generated method, don't edit
460: pass
461:
462: def init_ctrls(self, prnt):
463: # generated method, don't edit
464: wxFrame.init(self, id=1, name='', parent=prnt,
465: pos=wxPoint(38, 274), size=wxSize(214, 180),
466: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(11))
467: self.init_utils()
468: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
469: self.SetIcon(icon)
470:
471: self.panel_1 = wxPanel(self, -1)
472:
473: sizer_1 = wxBoxSizer(wxVERTICAL)
474:
475: sizer_1.Add(self.panel_1, 1, wxEXPAND, 0)
476:
477: #self.SetAutoLayout(1)
478:
479: self.SetSizer(sizer_1)
480:
481: #sizer_1.SetSizeHints(self)
482: self.staticBox1 = wxStaticBox(id=2,
483: label=len_words(12), name='staticBox1', parent=self.panel_1 ,
484: pos=wxPoint(3, 8), size=wxSize(200, 104), style=0)
485:
486: self.checkBox1 = wxCheckBox(id=3,
487: label=len_words(13), name='checkBox1', parent=self.panel_1 ,
488: pos=wxPoint(8, 24), size=wxSize(104, 24), style=0)
489: EVT_CHECKBOX(self.checkBox1, 3,
490: self.OnCheckbox1Checkbox)
491:
492: self.checkBox2 = wxCheckBox(id=4,
493: label=len_words(14), name='checkBox2', parent=self.panel_1 ,
494: pos=wxPoint(8, 48), size=wxSize(160, 24), style=0)
495: EVT_CHECKBOX(self.checkBox2, 4,
496: self.OnCheckbox2Checkbox)
497:
498: self.checkBox3 = wxCheckBox(id=5, label=len_words(15),
499: name='checkBox3', parent=self.panel_1 , pos=wxPoint(8, 72), size=wxSize(86,
500: 24), style=0)
501: EVT_CHECKBOX(self.checkBox3, 5,
502: self.OnCheckbox3Checkbox)
503:
504: self.staticText1 = wxStaticText(id=6,
505: label=len_words(16)+':', name='staticText1', parent=self.panel_1 ,
506: pos=wxPoint(8, 120), size=wxSize(91, 16), style=0)
507:
508: self.textCtrl1 = wxTextCtrl(id=7, name='textCtrl1',
509: parent=self.panel_1 , pos=wxPoint(104, 117), size=wxSize(80, 20), style=0,
510: value='')
511:
512: self.Centre()
513: self.totale=replace(prnt.style_text[prnt.current_tab].GetText(), "\r", "")
514: self.textCtrl1.SetValue(str(len(self.totale)))
515:
516: def init(self, parent):
517: self.init_ctrls(parent)
518:
519: def OnCheckbox1Checkbox(self, event):
520: if(self.primo==0):
521: self.primo=count(self.totale, " ")
522: else:
523: self.primo=0
524: self.scrivi()
525:
526: def OnCheckbox2Checkbox(self, event):
527: if(self.secondo==0):
528: self.secondo=count(self.totale, "\n")
529: else:
530: self.secondo=0
531: self.scrivi()
532:
533: def OnCheckbox3Checkbox(self, event):
534: if(self.terzo==0):
535: self.terzo=count(self.totale, "\t")
536: else:
537: self.terzo=0
538: self.scrivi()
539: def scrivi(self):
540: self.textCtrl1.SetValue(str(len(self.totale)-self.primo-self.secondo-self.terzo))
541: ##############################################//___
542: ###############################################SEGNALA BUG
543: class win_segnala(wxFrame):
544: def _init_utils(self):
545: # generated method, don't edit
546: pass
547:
548: def _init_ctrls(self, prnt):
549: # generated method, don't edit
550: wxFrame.init(self, id=1, name='', parent=prnt,
551: pos=wxPoint(379, 384), size=wxSize(379, 365),
552: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(21))
553: self._init_utils()
554: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
555: self.SetIcon(icon)
556:
557: self.panel_1 = wxPanel(self, -1)
558:
559: sizer_1 = wxBoxSizer(wxVERTICAL)
560:
561: sizer_1.Add(self.panel_1, 1, wxEXPAND, 0)
562: self.textCtrl1 = wxTextCtrl(id=2, name='textCtrl1',
563: parent=self.panel_1, pos=wxPoint(192, 79), size=wxSize(176, 20),
564: value='', style=0)
565:
566: self.staticText1 = wxStaticText(id=3,
567: label=len_words(17), name='staticText1',
568: parent=self.panel_1, pos=wxPoint(34, 80), size=wxSize(153, 16), style=0)
569:
570: self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"usermail.gif",
571: wxBITMAP_TYPE_ANY), id=4,
572: name='staticBitmap1', parent=self.panel_1, pos=wxPoint(8, 64),
573: size=wxSize(24, 28), style=0)
574:
575: self.staticText2 = wxStaticText(id=5,
576: label=len_words(18),
577: name='staticText2', parent=self.panel_1, pos=wxPoint(8, 120),
578: size=wxSize(250, 20), style=0)
579:
580: self.textCtrl2 = wxTextCtrl(id=6, name='textCtrl2',
581: parent=self.panel_1, pos=wxPoint(8, 136), size=wxSize(360, 160), style=wxTE_MULTILINE,
582: value='')
583:
584: self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=7,
585: bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif",
586: wxBITMAP_TYPE_ANY), label=len_words(19), name='genBitmapTextButton1',
587: parent=self.panel_1, pos=wxPoint(144, 304), size=wxSize(81, 24), style=0)
588:
589: EVT_BUTTON(self, 7, self.invia)
590:
591: self.textCtrl3 = wxStyledTextCtrl(id=50, name='textCtrl2',
592: parent=self.panel_1, pos=wxPoint(8, 8), size=wxSize(360, 58), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER)
593: self.textCtrl3.SetMarginWidth(1, 0)
594: self.textCtrl3.SetText(len_words(20))
595:
596: self.textCtrl3.SetWrapMode(wxSTC_WRAP_WORD)
597: self.textCtrl3.Disable()
598:
599: self.textCtrl3.ClearDocumentStyle()
600: self.Centre()
601: def init(self, parent):
602: self._init_ctrls(parent)
603:
604: def invia(self, evt):
605: try:
606:
607: dlg=win_conferma(self)
608: dlg.Show()
609: params = urlencode({'mail': self.textCtrl1.GetValue(), 'messaggio': self.textCtrl2.GetValue()})
610: headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
611: conn = HTTPConnection("www.kaworu.it")
612: conn.request("POST", "/soft/sendforwxkontext.php", params, headers)
613: response = conn.getresponse()
614: data = response.read()
615: conn.close()
616: dlg.staticText1.SetLabel(data)
617: return
618: except:
619: dlg.staticText1.SetLabel(len_words(22))
620: return
621:
622:
623: class win_conferma(wxFrame):
624: def _init_utils(self):
625: # generated method, don't edit
626: pass
627:
628: def _init_ctrls(self, prnt):
629: # generated method, don't edit
630: wxFrame.init(self, id=1, name='', parent=prnt,
631: pos=wxPoint(506, 320), size=wxSize(272, 110),
632: style=wxSYSTEM_MENU | wxCAPTION, title=len_words(23))
633: self._init_utils()
634: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO)
635: self.SetIcon(icon)
636:
637: self.panel_1 = wxPanel(self, -1)
638:
639: sizer_1 = wxBoxSizer(wxVERTICAL)
640:
641: sizer_1.Add(self.panel_1, 1, wxEXPAND, 0)
642: self.Centre()
643:
644: self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"collegamento.gif",
645: wxBITMAP_TYPE_ANY), id=2,
646: name='staticBitmap1', parent=self.panel_1, pos=wxPoint(38, 25),
647: size=wxSize(38, 34), style=0)
648:
649: self.staticText1 = wxStaticText(id=3,
650: label=len_words(24), name='staticText1', parent=self.panel_1,
651: pos=wxPoint(80, 30), size=wxSize(124, 16), style=0)
652:
653: def init(self, parent):
654: self._init_ctrls(parent)
655: ###################################################################
656: #####################################################################
657: ###########--==[[CLASSE PER IL TESTO]]==--######################
658: class MySTC(wxStyledTextCtrl):
659: dir_to_file=0 #variabile legata al path del file valore 0 se il file e' nuovo
660: syntaxo=None #Numero dell'elemento del menu di highlight
661: modify=1 #per controllare se il file e' stato modificato dopo il salvataggio
662: dire=""
663: def init(self, parent, ID):
664: wxStyledTextCtrl.init(self, parent, ID, style = wxNO_FULL_REPAINT_ON_RESIZE | wxNO_BORDER)
665: self.CmdKeyAssign(ord('+'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMIN)
666: self.CmdKeyAssign(ord('-'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMOUT)
667: self.SetProperty("fold", "1")
668: self.SetProperty("tab.timmy.whinge.level", "0")
669: self.SetMargins(0,0)
670: self.SetViewWhiteSpace(False)
671: self.SetMarginType(2, wxSTC_MARGIN_SYMBOL)
672: self.SetMarginMask(2, wxSTC_MASK_FOLDERS)
673: self.SetMarginSensitive(2, True)
674: self.SetMarginWidth(2, 12)
675: self.SetMarginWidth(1, 35)
676: self.EmptyUndoBuffer()
677: self.Colourise(0, -1) ############colora tutto il documento
678: self.SetMarginType(1, wxSTC_MARGIN_NUMBER)
679: self.SetLayoutCache(wxSTC_CACHE_DOCUMENT) ####cache tutta l'highlight del documento serve per l'esportazione
680: self.SetScrollWidth(4000) #####setta la scroolbar a 4000 pixel
681: ####___PROVA PER LA FORMATTAZIONE
682:
683: #[ Definizione per i cosetti a tendina
684: if 0: # per visualizzare i cosi a tendina, anche se non funzionanti
685: self.MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_ARROW, "navy", "navy")
686: self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN, "navy", "navy")
687: self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BACKGROUND, "white", "black")
688: self.MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_BACKGROUND, "white", "black")
689: self.MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_BACKGROUND, "white", "black")
690: self.MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_BACKGROUND, "white", "black")
691:
692: else: ##idem
693: self.MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUSCONNECTED, "white", "black")
694: self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUSCONNECTED, "white", "black")
695: self.MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_TCORNER, "white", "black")
696: self.MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_LCORNER, "white", "black")
697: self.MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE, "white", "black")
698: self.MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS, "white", "black")
699: self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS, "white", "black")
700:
701: EVT_STC_MARGINCLICK(self, ID, self.OnMarginClick) #sempre per i fold
702:
703:
704: #___________________[definizione dei metodi______________________
705:
706: def syntax(self, stringa):
707: execfile(stringa)
708:
709: def open_file(self, dir_to_file,dire, syntaxo=None):
710: #####da inserire il caso di errore di apertura del file
711: try:
712: self.SetText(open(dir_to_file).read())
713: self.dir_to_file=dir_to_file
714: self.syntaxo=syntaxo
715: self.modify=0
716: self.dire=dire
717: except:
718: error_window(0, self)
719:
720: def FoldAll(self): ####funzione utile per racchiudere tutte le sottoparti
721: lineCount = self.GetLineCount()
722: expanding = True
723: for lineNum in range(lineCount):
724: if self.GetFoldLevel(lineNum) & wxSTC_FOLDLEVELHEADERFLAG:
725: expanding = not self.GetFoldExpanded(lineNum)
726: break;
727: lineNum = 0
728: while lineNum < lineCount:
729: level = self.GetFoldLevel(lineNum)
730: if level & wxSTC_FOLDLEVELHEADERFLAG and
731: (level & wxSTC_FOLDLEVELNUMBERMASK) == wxSTC_FOLDLEVELBASE:
732: if expanding:
733: self.SetFoldExpanded(lineNum, True)
734: lineNum = self.Expand(lineNum, True)
735: lineNum = lineNum - 1
736: else:
737: lastChild = self.GetLastChild(lineNum, -1)
738: self.SetFoldExpanded(lineNum, False)
739: if lastChild > lineNum:
740: self.HideLines(lineNum+1, lastChild)
741: lineNum = lineNum + 1
742:
743:
744: def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): #####funzione per espanderle
745: lastChild = self.GetLastChild(line, level)
746: line = line + 1
747: while line <= lastChild:
748: if force:
749: if visLevels > 0:
750: self.ShowLines(line, line)
751: else:
752: self.HideLines(line, line)
753: else:
754: if doExpand:
755: self.ShowLines(line, line)
756: if level == -1:
757: level = self.GetFoldLevel(line)
758: if level & wxSTC_FOLDLEVELHEADERFLAG:
759: if force:
760: if visLevels > 1:
761: self.SetFoldExpanded(line, True)
762: else:
763: self.SetFoldExpanded(line, False)
764: line = self.Expand(line, doExpand, force, visLevels-1)
765: else:
766: if doExpand and self.GetFoldExpanded(line):
767: line = self.Expand(line, True, force, visLevels-1)
768: else:
769: line = self.Expand(line, False, force, visLevels-1)
770: else:
771: line = line + 1;
772: return line
773:
774:
775:
776:
777: def OnMarginClick(self, evt):
778: if evt.GetMargin() == 2:
779: if evt.GetShift() and evt.GetControl():
780: self.FoldAll()
781: else:
782: lineClicked = self.LineFromPosition(evt.GetPosition())
783: if self.GetFoldLevel(lineClicked) & wxSTC_FOLDLEVELHEADERFLAG:
784: if evt.GetShift():
785: self.SetFoldExpanded(lineClicked, True)
786: self.Expand(lineClicked, True, True, 1)
787: elif evt.GetControl():
788: if self.GetFoldExpanded(lineClicked):
789: self.SetFoldExpanded(lineClicked, False)
790: self.Expand(lineClicked, False, True, 0)
791: else:
792: self.SetFoldExpanded(lineClicked, True)
793: self.Expand(lineClicked, True, True, 100)
794: else:
795: self.ToggleFold(lineClicked)
796:
797: ############################################################
798:
799: class MyFileDropTarget(wxFileDropTarget):
800: def init(self, window):
801: wxFileDropTarget.init(self)
802: self.window = window
803:
804: def OnDropFiles(self, x, y, filenames):
805: for file in filenames:
806: ciccio=split(file, dir_separator)
807: name=ciccio[len(ciccio)-1]
808: self.window.apertura_pagina(name, file, "")
809:
810: ##############################################################
811: #INIZIO FRAME
812: ############################################################
813: class MyFrame(wxFrame):
814: combobox=0 ####Variabile che conterra' la combobox della toolbar
815: frame_1_toolbar=0 ####Variabile che conterra' la toolbar
816: menubar=0 ####
817: default_syntax=0 ####variabile che contiene l'indice per la sintassi dei documenti di testo
818: style_text=[] #lista di oggetti
819: panel=[] #lista di panneli pet le text box
820: current_tab=0 ####contiene il tab attuale
821: search_word="" ###contiene la parola con il quale effetuare le ricerche
822: position=0
823: row=0
824: line=0
825: dir_to_open="./"
826: current_margin=35
827: def init(self,filenames, *args, **kwds):
828: kwds["style"] = wxDEFAULT_FRAME_STYLE
829: wxFrame.init(self, *args, **kwds)
830: #///////////////////////////////////////////////////
831: self.highlight=listdir(files['default_dir']+"/"+files['highlight']) ##lista di tutte le sintassi disponibili
832: ID=wxNewId()
833: self.notebook_1 = wxNotebook(self, ID, style=0)######creo notebook vuoto
834: EVT_NOTEBOOK_PAGE_CHANGED(self, ID, self.page_change)
835: EVT_CLOSE(self, self.OnCloseWindow)
836: #---------------# Menu Bar
837: self.create_menu()
838: #_________________ Status
839: self.frame_1_statusbar = self.CreateStatusBar(3)
840: #________________________________- Tool Bar
841: self.__generate_toolbar()
842: ###genero la lista degli highlight
843: self.__set_properties()
844: self.__do_layout()
845: sizefile=open(files['size'], "r") ##apro i file per impostare le dimensioni della finestra
846: listone=sizefile.readlines()
847: x=replace(listone[0], "\n", "")
848: y=replace(listone[1], "\n", "")
849: sizefile.close()
850: self.SetSize((int(x),int(y)))
851: self.listaimg=wxImageList(16, 16)
852: self.nas=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nas.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
853: self.nphp=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nphp.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
854: self.nasp=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nasp.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
855: self.npython=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"npython.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
856: self.ntext=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"ntext.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
857: self.nc=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nc.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
858: self.nhtml=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nhtml.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
859: self.nsql=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nsql.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap)
860: self.notebook_1.SetImageList(self.listaimg)
861: self.nuovo("")
862: #print str(len(self.highlight))
863: for filename in filenames:
864: ciccio=split(filename, dir_separator)
865: name=ciccio[len(ciccio)-1]
866: self.apertura_pagina(name, filename, "")
867:
868:
869: #_________________________________________________________________definizione metodi di utilita'
870: def nuovo(self, evt):
871: self.generate_tab("")
872: self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/text")
873:
874: def generate_tab(self, ev):
875: numero=len(self.style_text)
876: self.panel.append(wxPanel(self.notebook_1, -1))
877: ID=wxNewId()
878: self.style_text.append(MySTC(self.panel[numero], ID))
879: EVT_STC_CHARADDED(self.style_text[numero], ID, self.update_text)
880: EVT_STC_UPDATEUI(self.style_text[numero], ID, self.OnUpdateUI)
881: #############
882: dt = MyFileDropTarget(self)
883: self.style_text[numero].SetDropTarget(dt)
884: ############
885: ####EVT_STC_UPDATEUI(self.style_text[numero], ID, self.update_text)
886: self.style_text[numero].syntaxo=self.default_syntax
887: sizer=wxBoxSizer(wxHORIZONTAL)
888: sizer.Add(self.style_text[numero], 1, wxEXPAND, 0)
889: self.notebook_1.AddPage(self.panel[numero], "nuovo_documento"+str(numero), imageId =self.ntext)
890: self.panel[numero].SetSizer(sizer)
891: if(numero==0):
892: self.frame_1_toolbar.EnableTool(502, 1)
893: self.frame_1_toolbar.EnableTool(503, 1)
894: self.frame_1_toolbar.EnableTool(504, 1)
895: self.frame_1_toolbar.EnableTool(505, 1)
896: self.frame_1_toolbar.EnableTool(506, 1)
897: self.frame_1_toolbar.EnableTool(507, 1)
898: self.frame_1_toolbar.EnableTool(508, 1)
899: self.combobox.SetSelection(self.default_syntax)
900: if wxPlatform == 'WXMSW':
901: pippo=self.notebook_1.GetSize() #_____PEZZO DI CODICE PER FARLO FUNZIONARE SU WIN
902: self.notebook_1.SetSize((pippo[0], pippo [1]-1)) #
903: self.notebook_1.SetSize(pippo) #
904: self.style_text[numero].SetIndent(identation) ###setta la larghezze del tab
905: self.style_text[numero].SetIndentationGuides(show_identation) ###fa' vedere le linee di indentazione
906: self.style_text[numero].SetUseTabs(only_space)
907: if(wordwraping==0):
908: self.style_text[numero].SetWrapMode(wxSTC_WRAP_NONE)
909: else:
910: self.style_text[numero].SetWrapMode(wxSTC_WRAP_WORD)
911: #self.notebook_1.SetPageImage(numero, self.ntext)
912: self.notebook_1.SetSelection(numero)
913: self.style_text[numero].modify=0
914:
915: def page_change(self, ev):
916: self.Refresh()
917: self.current_tab=self.notebook_1.GetSelection()
918: self.combobox.SetSelection(self.style_text[self.current_tab].syntaxo)
919: if(self.style_text[self.current_tab].CanUndo()==0):
920: self.menubar.Enable(9, 0)
921: else:
922: self.menubar.Enable(9, 1)
923: if(self.style_text[self.current_tab].CanRedo()==0):
924: self.menubar.Enable(10, 0)
925: else:
926: self.menubar.Enable(10, 1)
927: self.style_text[self.current_tab].SetFocus() #############per ripristinare il puntatore
928:
929: def update_text(self, ev):
930: self.style_text[self.current_tab].modify=1
931: if(self.style_text[self.current_tab].CanUndo()==0):
932: self.menubar.Enable(9, 0)
933: else:
934: self.menubar.Enable(9, 1)
935: if(self.style_text[self.current_tab].CanRedo()==0):
936: self.menubar.Enable(10, 0)
937: else:
938: self.menubar.Enable(10, 1)
939: ######################################################
940: char1 = ev.GetKey()
941: if char1 == 10:
942: self.do_auto_indent(self.style_text[self.current_tab].GetUseTabs(), self.style_text[self.current_tab].GetTabWidth())
943:
944: def OnUpdateUI(self, evt):
945: braceAtCaret = -1
946: braceOpposite = -1
947: charBefore = None
948: caretPos = self.style_text[self.current_tab].GetCurrentPos()
949: if caretPos > 0:
950: charBefore = self.style_text[self.current_tab].GetCharAt(caretPos - 1)
951: styleBefore = self.style_text[self.current_tab].GetStyleAt(caretPos - 1)
952: if charBefore and chr(charBefore) in "[]{}()" and styleBefore == wxSTC_P_OPERATOR:
953: braceAtCaret = caretPos - 1
954: if braceAtCaret < 0:
955: charAfter = self.style_text[self.current_tab].GetCharAt(caretPos)
956: styleAfter = self.style_text[self.current_tab].GetStyleAt(caretPos)
957: if charAfter and chr(charAfter) in "[]{}()" and styleAfter == wxSTC_P_OPERATOR:
958: braceAtCaret = caretPos
959: if braceAtCaret >= 0:
960: braceOpposite = self.style_text[self.current_tab].BraceMatch(braceAtCaret)
961: if braceAtCaret != -1 and braceOpposite == -1:
962: self.style_text[self.current_tab].BraceBadLight(braceAtCaret)
963: else:
964: self.style_text[self.current_tab].BraceHighlight(braceAtCaret, braceOpposite)
965: self.line=self.style_text[self.current_tab].GetCurrentLine()+1
966: self.position=self.style_text[self.current_tab].GetCurrentPos()
967: self.row=self.style_text[self.current_tab].GetColumn(self.position)
968: frame_1_statusbar_fields = [linea+": "+str(self.line)+" "+colonna+": "+str(self.row)+""]
969: for i in range(len(frame_1_statusbar_fields)):
970: self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], 1)
971:
972:
973: def do_auto_indent(self, usingTabs, currentTabWidth):
974: if (self.conta_sp_righe(self.current_tab)>35):
975: self.style_text[self.current_tab].SetMarginWidth(1, self.conta_sp_righe(self.current_tab))
976: self.current_margin=self.conta_sp_righe(self.current_tab)
977: lineNo = self.style_text[self.current_tab].GetCurrentLine()
978: if lineNo > 0:
979: currentIndent = self.style_text[self.current_tab].GetLineIndentation(lineNo - 1)
980: if currentIndent == 0:
981: return
982: self.style_text[self.current_tab].SetLineIndentation(lineNo, currentIndent)
983: pos = self.style_text[self.current_tab].GetLineIndentPosition(lineNo)
984: self.style_text[self.current_tab].SetSelectionStart(pos)
985: self.style_text[self.current_tab].SetSelectionEnd(pos)
986: return 1
987: ######################################################
988: def close_tab(self, numero):
989: if(self.style_text[self.current_tab].modify==0):
990: self.notebook_1.DeletePage(numero)
991: del self.style_text[numero]
992: del self.panel[numero]
993: else:
994: file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r")
995: stringa=file.readlines()
996: file.close()
997: dlg= wxMessageDialog(self,self.notebook_1.GetPageText(numero)+" "+stringa[9], stringa[8], wxYES_NO)
998: if dlg.ShowModal() == wxID_YES:
999: self.save_as_file("")
1000: dlg.Destroy()
1001: self.notebook_1.DeletePage(numero)
1002: del self.style_text[numero]
1003: del self.panel[numero]
1004:
1005: def close_all(self, evt):
1006: cycle=range(len(self.style_text))
1007: for i in cycle:
1008: self.close_single("")
1009:
1010: def save_all(self, evt):
1011: ciccio=self.current_tab
1012: cycle=range(len(self.style_text))
1013: for i in cycle:
1014: self.notebook_1.SetSelection(i)
1015: self.save_file("")
1016: self.notebook_1.SetSelection(ciccio)
1017:
1018: def close_single(self, evt):
1019: control=self.current_tab
1020: if(len(self.style_text)==1): ####serve per chiudere l'ultimo tab
1021: control=0
1022: self.close_tab(control)
1023: if(control!=0):
1024: self.current_tab=control-1
1025: else:
1026: self.current_tab=control
1027: if(len(self.style_text)==0):
1028: self.frame_1_toolbar.EnableTool(502, 0)
1029: self.frame_1_toolbar.EnableTool(503, 0)
1030: self.frame_1_toolbar.EnableTool(504, 0)
1031: self.frame_1_toolbar.EnableTool(505, 0)
1032: self.frame_1_toolbar.EnableTool(506, 0)
1033: self.menubar.Enable(9, 0)
1034: self.menubar.Enable(10, 0)
1035:
1036: def change_highlight(self, ev):
1037: #try:
1038: highlight=self.combobox.GetValue()
1039: ########-siccome non riesco a cambiare l'highlight moemntaneamente distruggo l'oggetto e lo ricreo
1040: pippo=self.style_text[self.current_tab].modify
1041: ciccio=self.style_text[self.current_tab].GetText()
1042: size=self.style_text[self.current_tab].GetSize()
1043: default_path=self.style_text[self.current_tab].dir_to_file
1044: linea_visibile=self.style_text[self.current_tab].GetLineEndPosition(self.style_text[self.current_tab].GetFirstVisibleLine())
1045: X_offset=self.style_text[self.current_tab].GetXOffset()
1046: self.style_text[self.current_tab].Destroy()
1047: ID=wxNewId()
1048: self.style_text[self.current_tab]=MySTC(self.panel[self.current_tab], ID)
1049: EVT_STC_CHARADDED(self.style_text[self.current_tab], ID, self.update_text)
1050: sizer=wxBoxSizer(wxHORIZONTAL)
1051: sizer.Add(self.style_text[self.current_tab], ID, wxEXPAND, 0)
1052: self.panel[self.current_tab].SetSizer(sizer)
1053: self.panel[self.current_tab].SetAutoLayout(1)
1054: self.style_text[self.current_tab].SetSize(size)
1055: self.style_text[self.current_tab].syntax(files['default_dir']+"/"+files['highlight']+"/"+highlight)
1056: self.style_text[self.current_tab].SetText(ciccio)
1057: self.style_text[self.current_tab].syntaxo=self.highlight.index(highlight)
1058: self.style_text[self.current_tab].dir_to_file=default_path
1059: self.style_text[self.current_tab].SetSelection(-1, -1) ####
1060: self.style_text[self.current_tab].SetSelection(linea_visibile, linea_visibile)
1061: self.style_text[self.current_tab].SetSelection(self.position, self.position)
1062: self.notebook_1.SetSelection(self.current_tab)
1063: self.style_text[self.current_tab].SetFocus()
1064: self.notebook_1.SetSelection(self.current_tab)
1065: self.style_text[self.current_tab].SetXOffset(X_offset)
1066: self.style_text[self.current_tab].SetFocus() ####
1067: self.style_text[self.current_tab].modify=pippo
1068: EVT_STC_UPDATEUI(self.style_text[self.current_tab], ID, self.OnUpdateUI)
1069: if(self.conta_sp_righe(self.current_tab)>35):
1070: self.style_text[self.current_tab].SetMarginWidth(1, self.conta_sp_righe(self.current_tab))
1071: self.current_margin=self.conta_sp_righe(self.current_tab)
1072: #sempre per i fold
1073: #except:
1074: #print "errore"
1075:
1076: def ric_extension(self, name_file):
1077: estensione=split(name_file, '.')
1078: estensione=estensione[-1]
1079: ext=estensioni.keys()
1080: for i in ext:
1081: for n in estensioni[i]:
1082: if(lower(estensione)==n):
1083: return "n"+replace(i, "++", "")
1084: return "ntext"
1085:
1086: def apriFile( self, event ):
1087: dlg = wxFileDialog( self, style=wxOPEN|wxFILE_MUST_EXIST, defaultDir =self.dir_to_open ,wildcard='TXT files ()||Tutti i files ()|' )
1088: dlg.ShowModal()
1089: fileName = dlg.GetFilename()
1090: all_path=dlg.GetPath()
1091: dire=dlg.GetDirectory()
1092: dlg.Destroy()
1093: if( fileName == None or fileName == "" ):
1094: return
1095: else:
1096: self.apertura_pagina(fileName, all_path, dire)
1097: self.dir_to_open=dire
1098: self.current_margin=self.conta_sp_righe(len(self.style_text)-1)
1099: if(self.current_margin>35):
1100: self.style_text[len(self.style_text)-1].SetMarginWidth(1, self.conta_sp_righe(len(self.style_text)-1))
1101:
1102:
1103:
1104: def conta_sp_righe(self, tabloid):
1105: righe=self.style_text[tabloid].GetLineCount()
1106: largh=self.style_text[tabloid].TextWidth(wxSTC_STYLE_LINENUMBER,str(righe))
1107: return largh+5
1108:
1109:
1110: def apertura_pagina(self, fileName, all_path, dire):
1111: try:
1112: #_____________________righe per il buckup del file
1113: numb=randint(1000000,999999999)
1114: file=open(files['default_dir']+"/"+"buckup/buckup"+str(fileName)+str(numb)+".bck", "w")
1115: file.write(open(all_path).read())
1116: file.close()
1117: #_________________________fine righe
1118: if(len(self.style_text)!=1 or self.notebook_1.GetPageText(0)!="nuovo_documento_0" or self.style_text[0].modify!=0 or len(self.style_text[0].GetText())!=0):
1119: self.generate_tab("")
1120: self.style_text[len(self.style_text)-1].open_file(all_path, dire, self.default_syntax)
1121: ciccio=split(fileName, ".")
1122: ext=estensioni.keys()
1123: self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/"+"text")
1124: for i in ext: #####associo se gia' presente nelle estensioni standard la colorazione in base all'estensione
1125: for n in estensioni[i]:
1126: if(lower(ciccio[-1])==n):
1127: self.style_text[len(self.style_text)-1].syntaxo=self.highlight.index(i)
1128: self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/"+i)
1129: self.combobox.SetSelection(self.highlight.index(i))
1130: self.notebook_1.SetPageText(len(self.style_text)-1, fileName)
1131: self.notebook_1.SetPageImage(len(self.style_text)-1, eval("self."+self.ric_extension(all_path)))
1132: self.style_text[len(self.style_text)-1].modify=0
1133: self.style_text[len(self.style_text)-1].EmptyUndoBuffer()
1134: except:
1135: error_window(11, self)
1136:
1137:
1138: def save_file(self, evt): #metodo per salvare file
1139: try:
1140: file=open(self.style_text[self.current_tab].dir_to_file, "w")
1141: file.write(self.style_text[self.current_tab].GetText())
1142: file.close()
1143: #linea_visibile=self.style_text[self.current_tab].GetLineEndPosition(self.style_text[self.current_tab].GetFirstVisibleLine())
1144: ciccio=split(self.style_text[self.current_tab].dir_to_file, ".")
1145: ext=estensioni.keys()
1146: for i in ext: #####associo se gia' presente nelle estensioni standard la colorazione in base all'estensione
1147: for n in estensioni[i]:
1148: if(ciccio[-1]==n):
1149: self.combobox.SetSelection(self.highlight.index(i))
1150: self.change_highlight("")
1151: #self.style_text[self.current_tab].SetSelection(-1, -1)
1152: #self.style_text[self.current_tab].SetSelection(linea_visibile, linea_visibile)
1153: #self.style_text[self.current_tab].SetSelection(self.position, self.position)
1154: #self.notebook_1.SetSelection(self.current_tab)
1155: #self.style_text[self.current_tab].SetFocus()
1156: self.style_text[self.current_tab].modify=0
1157: except:
1158: self.save_as_file("")
1159:
1160: def save_as_file(self, evt):
1161: dlg = wxFileDialog( self, style=wxSAVE | wxOVERWRITE_PROMPT,defaultDir=self.style_text[self.current_tab].dire ,wildcard='' )
1162: dlg.ShowModal()
1163: all_path=dlg.GetPath()
1164: fileName=dlg.GetFilename()
1165: dire=dlg.GetDirectory()
1166: dlg.Destroy()
1167: if(fileName == None or fileName == ""):
1168: return
1169: else:
1170: try:
1171: self.style_text[self.current_tab].dire=dire
1172: self.style_text[self.current_tab].dir_to_file=all_path
1173: self.notebook_1.SetPageText(self.current_tab, fileName)
1174: self.notebook_1.SetPageImage(self.current_tab, eval("self."+self.ric_extension(all_path)))
1175: ###################
1176: if wxPlatform == 'WXMSW':
1177: pippo=self.notebook_1.GetSize() #_______________PEZZO DI CODICE PER FARLO FUNZIONARE SU WIN
1178: self.notebook_1.SetSize((pippo[0], pippo [1]-1)) #
1179: self.notebook_1.SetSize(pippo) #
1180: ###################
1181: self.save_file("")
1182: except:
1183: error_window(7, self)
1184:
1185: def quit(self, evt):
1186: self.close_all("")
1187: self.Destroy()
1188:
1189:
1190: def only_space_tab(self, evt):
1191: global only_space
1192: if(only_space==0):
1193: only_space=1
1194: else:
1195: only_space=0
1196: cycle=range(len(self.style_text))
1197: for i in cycle:
1198: self.style_text[i].SetUseTabs(only_space)
1199: self.edit_files(2,"only_space=", only_space)
1200:
1201: def wordwrap(self, evt):
1202: global wordwraping
1203: if(wordwraping==0):
1204: for i in range(len(self.style_text)):
1205: self.style_text[i].SetWrapMode(wxSTC_WRAP_WORD)
1206: self.edit_files(3,"wordwraping=", 1)
1207: wordwraping=1
1208: else:
1209: for i in range(len(self.style_text)):
1210: self.style_text[i].SetWrapMode(wxSTC_WRAP_NONE)
1211: self.edit_files(3,"wordwraping=", 0)
1212: wordwraping=0
1213:
1214:
1215: def edit_files(self, riga, variabile, stringa):
1216: ciccio=open(files['default_dir']+"/"+files['languages']+"/"+files['global'], "r")
1217: text=ciccio.readlines()
1218: ciccio.close()
1219: text[riga]=variabile+str(stringa)+"\n"
1220: ciccio=open(files['default_dir']+"/"+files['languages']+"/"+files['global'], "w")
1221: cycle=range(len(text))
1222: for i in cycle:
1223: ciccio.write(text[i])
1224: ciccio.close()
1225:
1226:
1227: def view_identation(self, evt):
1228: global show_identation
1229: if(show_identation==0):
1230: show_identation=1
1231: else:
1232: show_identation=0
1233: cycle=range(len(self.style_text))
1234: for i in cycle:
1235: self.style_text[i].SetIndentationGuides(show_identation)
1236: self.edit_files(1,"show_identation=", show_identation)
1237:
1238: def font_config(self, evt):
1239: data= wxFontData()
1240: dlg= wxFontDialog(self, data)
1241: if dlg.ShowModal()==wxID_OK:
1242: data=dlg.GetFontData()
1243: data= data.GetChosenFont()
1244: font=data.GetFaceName()
1245: size=data.GetPointSize()
1246: global faces
1247: faces={'font' : font, 'size' : size}
1248: corrente=self.current_tab
1249: ciccio=range(len(self.style_text))
1250: for i in ciccio:
1251: self.notebook_1.SetSelection(i)
1252: self.change_highlight("")
1253: self.notebook_1.SetSelection(corrente)
1254: file=open(files['default_dir']+"/"+files['font'], "w")
1255: file.write("faces={'font' : '"+font+"', 'size' : "+str(size)+"}")
1256: file.close()
1257:
1258: def tab_space(self, evt):
1259: global identation
1260: dlg= wxTextEntryDialog(self, len_words(2), len_words(1))
1261: dlg.SetValue(str(identation))
1262: if dlg.ShowModal() == wxID_OK:
1263: try:
1264: identation=int(strip(dlg.GetValue()))
1265: except:
1266: error_window(10, self)
1267: cycle=range(len(self.style_text))
1268: for i in cycle:
1269: self.style_text[i].SetIndent(identation)
1270: self.edit_files(0,"identation=", identation)
1271: dlg.Destroy()
1272:
1273: def info(self, event):
1274: ciccio = win_info(self)
1275: ciccio.Show(1)
1276: #_________________________________________________________________________________________metodi classici per gli editor
1277:
1278:
1279: def print_setup(self, evt):
1280: #testo="
" 1281: pippo=cgi.escape(self.style_text[self.current_tab].GetText()) 1282: testo=replace(pippo, "\n", "" 1287: self.printData = wxPrintData() 1288: self.printData.SetPaperId(wxPAPER_A4) 1289: pdd = wxPrintDialogData() 1290: pdd.SetPrintData(self.printData) 1291: #pdd.EnablePageNumbers(0) 1292: #pdd.EnableHelp(0) 1293: pdd.EnablePrintToFile(0) 1294: pdd.SetMinPage(1) 1295: pdd.SetMaxPage(5) 1296: pdd.SetAllPages(True) 1297: #pdd.EnableSelection(0) 1298: dlg = wxPrintDialog(self, pdd) 1299: if dlg.ShowModal() == wxID_OK: 1300: pdd = dlg.GetPrintDialogData() 1301: else: 1302: dlg.Destroy() 1303: return 1304: dlg.Destroy() 1305: printer = wxPrinter(pdd) 1306: printout = wxHtmlPrintout(title=str(self.style_text[self.current_tab].dir_to_file)) 1307: printout.SetMargins(top=15, bottom=15, left=13, right=13) 1308: printout.SetHtmlText(testo) 1309: #ciccio=wxPrintPreview(printout, printout, data=NULL) 1310: #popo=wxPreviewFrame(ciccio, self, title="ciao", style = wxDEFAULT_FRAME_STYLE) 1311: #popo.Initialize() 1312: #popo.Show() 1313: printer.Print(self, printout, prompt=FALSE) 1314: printout.Destroy() 1315:
") 1283: testo=replace(testo, "\r\n", "
") 1284: testo=replace(testo, " ", " ") 1285: testo=replace(testo, "\t", " ") 1286: #testo=testo+"
1316: def preview(self, evt): 1317: ciccio="" 1318:
1319:
1320: def maiuscolo(self, evt): 1321: selection=self.style_text[self.current_tab].GetSelection() 1322: stringa=upper(self.style_text[self.current_tab].GetSelectedText()) 1323: self.style_text[self.current_tab].ReplaceSelection(stringa) 1324: self.style_text[self.current_tab].SetSelection(selection[0], selection[1]) 1325: return 1 1326: 1327:
1328: def minuscolo(self, evt): 1329: selection=self.style_text[self.current_tab].GetSelection() 1330: stringa=lower(self.style_text[self.current_tab].GetSelectedText()) 1331: self.style_text[self.current_tab].ReplaceSelection(stringa) 1332: self.style_text[self.current_tab].SetSelection(selection[0], selection[1]) 1333: return 1 1334:
1335: def copy(self, evt): 1336: self.style_text[self.current_tab].Copy() 1337:
1338: def paste(self, evt): 1339: self.style_text[self.current_tab].Paste() 1340: 1341: def cut(self, evt): 1342: self.style_text[self.current_tab].Cut() 1343:
1344: def select_all(self, evt): 1345: self.style_text[self.current_tab].SelectAll() 1346: 1347: def undo(self, evt): 1348: self.style_text[self.current_tab].Undo() 1349: try: 1350: self.update_text("") 1351: except: 1352: return 0 1353: 1354: def redo(self, evt): 1355: self.style_text[self.current_tab].Redo() 1356: try: 1357: self.update_text("") 1358: except: 1359: return 0 1360:
1361: def search_up(self, evt): 1362: self.search(2) 1363: 1364: def search_down(self, evt): 1365: self.search(1) 1366: 1367: def search(self, verso): 1368: if(verso==2): 1369: end=0 1370: start=self.style_text[self.current_tab].GetCurrentPos()-len(self.search_word.GetValue())-1 1371: else: 1372: end=len(self.style_text[self.current_tab].GetText()) 1373: start=self.style_text[self.current_tab].GetCurrentPos() 1374: to=self.style_text[self.current_tab].FindText(start,end,self.search_word.GetValue()) 1375: if (to==-1): 1376: error_window(12, self) 1377: else: 1378: self.style_text[self.current_tab].SetSelection(to,to+len(self.search_word.GetValue())) 1379: 1380:
1381: 1382: #_________________________________________________________________________________________definizione metodi grafici
1383:
1384: def language_select(self): #Metodo richiamato dal file toolbar per la creazione della combobox 1385: self.combobox=wxComboBox(self.frame_1_toolbar, 200, "", choices=self.highlight, size=(150,-1), style=wxCB_DROPDOWN) #costruttore modificato per winzozz 1386: self.frame_1_toolbar.AddControl(self.combobox) 1387: EVT_COMBOBOX(self, 200, self.change_highlight) 1388: i=0 1389: for n in self.highlight: 1390: if(n=="text"): 1391: self.default_syntax=i 1392: return 1393: i=i+1 1394: if(self.default_syntax==0): 1395: try: 1396: file=open(files['default_dir']+"/"+files['highlight']+"/text", "w") 1397: file.close() 1398: self.language_select() 1399: except: 1400: error(6, self) 1401: 1402: def open_escape(self, evt): 1403: ciccio=win_escape(self) 1404: ciccio.Show(true) 1405: return 1406:
1407: def open_lenguage(self, evt): 1408: ciccio=wxlenguage(self) 1409: ciccio.Show(true) 1410: return 1411:
1412: def open_esporta(self, evt): 1413: ciccio=esportazione(self) 1414: ciccio.Show(true) 1415: return 1416:
1417: def open_colori(self, evt): 1418: ciccio=win_color(self) 1419: ciccio.Show(true) 1420: return 1421:
1422: def open_conta(self, evt): 1423: ciccio=win_conta(self) 1424: ciccio.Show(true) 1425: return 1426:
1427: def open_segnala(self, evt): 1428: ciccio=win_segnala(self) 1429: ciccio.Show(true) 1430: return 1431:
1432: def converti_rgb(self, rgb_value): 1433: rgb_value=list(rgb_value) 1434: hex_1=replace(hex(rgb_value[0]), "0x", "") 1435: hex_2=replace(hex(rgb_value[1]), "0x", "") 1436: hex_3=replace(hex(rgb_value[2]), "0x", "") 1437: if(len(hex_1)==1): 1438: hex_1="0"+hex_1 1439: if(len(hex_2)==1): 1440: hex_2="0"+hex_2 1441: if(len(hex_3)==1): 1442: hex_3="0"+hex_3 1443: hex_value="#"+upper(hex_1)+upper(hex_2)+upper(hex_3) 1444: return hex_value 1445:
1446: def esporta_html(self, sfondo, bordo, font, grandezza, righe, file_save, titolo): 1447: #########prova per l'esportazione in html 1448: #ciclone="" 1449: #colori=[] 1450: #colori.append("#7F7F7F") 1451: #colori.append("#000000") 1452: #colori.append("#7F0000") 1453: if (sfondo==""): 1454: sfondo="#000000" 1455: else: 1456: sfondo=self.converti_rgb(sfondo) 1457: if (bordo==""): 1458: bordo="#000000" 1459: else: 1460: bordo=self.converti_rgb(bordo) 1461: if (font==""): 1462: font="Verdana" 1463: if (grandezza==""): 1464: grandezza="10" 1465: if (righe==""): 1466: righe=0 1467: if (titolo==""): 1468: titolo=len_words(37) 1469:
1470: pippone=self.style_text[self.current_tab].GetText() 1471: c=0 1472: #parte="" 1473: ultimo_stile="" 1474: self.style_text[self.current_tab].Colourise(0,len(self.style_text[self.current_tab].GetText())) 1475: #print self.style_text[self.current_tab].GetCurrentPos() 1476: #print self.style_text[self.current_tab].GetStyleAt(self.style_text[self.current_tab].GetCurrentPos()) 1477: pippo=open(file_save, "w") 1478: pippo.write("\n\n\n\n"+titolo+"\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\n\n<style type="text/css">\n") 1479: pippo.write(".sf{background-color: "+sfondo+"; padding: 5px; border: 1px solid "+bordo+"; margin-right: 5px; font: "+grandezza+"px "+font+", Verdana,Sans-serif; color: #000000; }\n") 1480: for d in self.style_text[self.current_tab].colori.keys(): 1481: if(len(self.style_text[self.current_tab].colori[d])==7): 1482: stile_css=self.style_text[self.current_tab].colori[d]+";" 1483: else: 1484: stile_css=self.style_text[self.current_tab].colori[d][0:7]+"; " 1485: if(find(self.style_text[self.current_tab].colori[d], "bold")!=-1): 1486: stile_css+="FONT-WEIGHT: bold; " 1487: if(find(self.style_text[self.current_tab].colori[d], "underline")!=-1): 1488: stile_css+="TEXT-DECORATION: underline; " 1489: if(find(self.style_text[self.current_tab].colori[d], "back")!=-1): 1490: stile_css+="background: #E0C0E0; "
1491:
1492: pippo.write(".a"+str(d)+"{font: "+grandezza+"px "+font+", Verdana,Sans-serif; color: "+stile_css+"}\n") 1493:
1494: pippo.write("\n\n\n<table cellpadding='0' cellspacing='0' class="sf">\n
") 1500: #pippo.write("
")
1502: riga=1
1503: tot_righe=len(str(count(pippone, "\n")+1))
1504: for i in pippone:
1505: indice=self.style_text[self.current_tab].GetStyleAt(c)
1506: c+=1
1507: #self.style_text[self.current_tab].SetSelection(self.style_text[self.current_tab].GetCurrentPos()+1,self.style_text[self.current_tab].GetCurrentPos()+1)
1508: #try:
1509: #ciclone+=""+i+""
1510: #ciclone+=str(c)+"--"+str(indice)+i+"\n"
1511: #elif(i==" "):
1512: #pippo.write(" ")
1513: #elif(i=="\t"):
1514: #pippo.write(" "identation)
1515: #else:
1516: if(i=="\n"):
1517: if (righe==1):
1518: pippo.write("\n"+str(riga)+": "+str(" ")(tot_righe-len(str(riga))))
1519: ultimo_stile=""
1520: riga+=1
1521: else:
1522: pippo.write("\n")
1523: elif(ultimo_stile==indice):
1524: pippo.write(cgi.escape(i, true))
1525: elif(ultimo_stile!=""):
1526: pippo.write(""+cgi.escape(i, true))
1527: ultimo_stile=indice
1528: else:
1529: if(riga==1 & righe==1):
1530: pippo.write(str(riga)+": "+str(" ")*(tot_righe-len(str(riga))))
1531: riga+=1
1532: pippo.write(""+cgi.escape(i, true))
1533: ultimo_stile=indice
1534: #except:
1535: #ciclone+=""+cgi.escape(i)+""
1536: #pippo.write(""+i+"")
1537: #print "cazzo"
1538: pippo.write("\n1543: def search_tool(self): 1544: self.search_word=wxTextCtrl(self.frame_1_toolbar, -1, "") 1545: self.frame_1_toolbar.AddControl(self.search_word) 1546:
1547:
1548: def __generate_toolbar(self): 1549: self.frame_1_toolbar = wxToolBar(self, -1, style=wxTB_HORIZONTAL|wxTB_FLAT|wxTB_DOCKABLE) 1550: self.SetToolBar(self.frame_1_toolbar) ###istanzio la toolbar 1551: try: ##prova ad aprire il file con la configurazione (usando la variabile globale che lo identifica) 1552: file=open(files['default_dir']+"/"+files['languages']+"/"+files['toolbar'], 'r') 1553: except: ##in caso contrario stamp l'errore 1554: error(1, self) 1555: row=file.readline() 1556: i=500 1557: while row!='': ####scorro tutto il file riga per riga 1558: if(row[0:3]=="###"): #####se la riga e' uno specificatore di metodo lo richiamo (deve cominciare con ###) 1559: eval(strip(row[3:])+"()") 1560: else: 1561: array={} 1562: array=split(row, div['toolbar']) ###metto nella lista la riga del file esploda da la variabile di divisione 1563: if(len(array)!=3): ###controllo che la lista abbia solo 3 elementi 1564: error(2, self) 1565: extension=array[0][-4:] ###controllo l'estensione 1566: if(lower(extension)!=".ico" and lower(extension)!=".gif" and lower(extension)!=".jpg" and lower(extension)!=".png" and lower(extension)!=".bmp"): 1567: error(3, self) 1568: if(access(files['default_dir']+"/"+files['icon']+"/"+strip(array[0]), 0)!=1): ###controllo che l'immagine sia nella cartella 1569: error(4, self) 1570: ###se tutto ok creo l'icona usando come parametri gli elementi pescati dalla lista array[] appena creata 1571: id=i 1572: ####bitmap= wxBitmap(files['default_dir']+"/"+files['icon']+"/"+strip(array[0])) 1573: #image=bitmap.ConvertToImage(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+strip(array[0]))) 1574: #image.SetMaskColour(r, g, b); 1575: ###bitmap = wxMask(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+strip(array[0]), wxBITMAP_TYPE_ANY)); 1576: self.frame_1_toolbar.AddLabelTool(id, strip(array[2]), wxBitmap(files['default_dir']+"/"+files['icon']+"/"+strip(array[0]), wxBITMAP_TYPE_ANY), wxNullBitmap, wxITEM_NORMAL, strip(array[2]), strip(array[2])) 1577: try: 1578: EVT_TOOL(self, id, eval(strip(array[1]))) ####associa il metodo al pulsante 1579: except: 1580: error(5, self) ###se non esiste errore 1581: i+=1 1582: row=file.readline() 1583: file.close() ##chiudo il file 1584:
1585:
1586:
1587: def __set_properties(self): 1588: self.SetTitle("wxKonTEXT V 0.3") 1589: icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 1590: self.SetIcon(icon) 1591: self.frame_1_statusbar.SetStatusWidths([-1, -1, -1]) 1592: frame_1_statusbar_fields = ["Ready..", linea+": 0 "+colonna+": 0", "By Kaworu"] 1593: for i in range(len(frame_1_statusbar_fields)): 1594: self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], i) 1595: self.frame_1_toolbar.SetMargins((2, 2)) 1596: self.frame_1_toolbar.SetToolPacking(4) 1597: self.frame_1_toolbar.SetToolSeparation(5) 1598: self.frame_1_toolbar.SetToolBitmapSize((32, 32)) 1599: self.frame_1_toolbar.Realize() 1600:
1601: def __do_layout(self): 1602: sizer_1 = wxBoxSizer(wxVERTICAL) 1603: sizer_1.Add(wxNotebookSizer(self.notebook_1), 1, wxEXPAND, 0) 1604: self.SetAutoLayout(1) 1605: self.SetSizer(sizer_1) 1606: sizer_1.Fit(self) 1607: sizer_1.SetSizeHints(self) 1608: self.Layout() 1609: self.Centre() 1610:
1611: def OnCloseWindow(self, e): 1612: self.close_all("") 1613: pippo=self.GetSize() ###salvo le dimensioni della finestra su file pe rl aprossima aperuta 1614: if(self.IsMaximized()==0): 1615: file=open(files['size'], "w") 1616: file.write(str(pippo[0])+"\n"+str(pippo[1])) 1617: file.close() 1618: self.Destroy() 1619:
1620: #___________________________________________________________________________MENU 1621: def create_menu(self): #metodo per creare il menu 1622: self.menubar = wxMenuBar() 1623: self.SetMenuBar(self.menubar) 1624: self.menu = wxMenu() 1625: try: 1626: file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_menu']) 1627: except: 1628: error("Non esiste il file della lingua "+files['default_dir']+"/"+files['languages']+"/"+files['language_menu'], self) ###se non esiste il file della lingua errore 1629: menu_text=file.readlines() 1630: riga=split(menu_text[0], div['menu']) 1631: item=split(riga[1], div['menu_help']) 1632: #self.menu.Append(1, strip(item[0])+"\tCtrl+N", strip(item[1][0:-1]), wxITEM_NORMAL) 1633: item=wxMenuItem(self.menu, 1, strip(item[0])+"\tCtrl+Q", strip(item[1][0:-1])) 1634: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"snew.gif", wxBITMAP_TYPE_ANY)) 1635: self.menu.AppendItem(item) 1636: EVT_MENU(self, 1, self.nuovo) 1637: item=split(riga[2], div['menu_help']) 1638: #self.menu.Append(2, strip(item[0])+"\tCtrl+O", strip(item[1][0:-1]), wxITEM_NORMAL) 1639: item=wxMenuItem(self.menu, 2, strip(item[0])+"\tCtrl+O", strip(item[1][0:-1])) 1640: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"sopen.gif", wxBITMAP_TYPE_ANY)) 1641: self.menu.AppendItem(item) 1642: EVT_MENU(self, 2, self.apriFile) 1643: self.menu.AppendSeparator() 1644: item=split(riga[3], div['menu_help']) 1645: #self.menu.Append(3, strip(item[0])+"\tCtrl+S", strip(item[1][0:-1]), wxITEM_NORMAL) 1646: item=wxMenuItem(self.menu, 3, strip(item[0])+"\tCtrl+S", strip(item[1][0:-1])) 1647: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"ssave.gif", wxBITMAP_TYPE_ANY)) 1648: self.menu.AppendItem(item) 1649: EVT_MENU(self, 3, self.save_file) 1650: item=split(riga[4], div['menu_help']) 1651: #self.menu.Append(4, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1652: item=wxMenuItem(self.menu, 4, strip(item[0]), strip(item[1][0:-1])) 1653: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"ssaveas.gif", wxBITMAP_TYPE_ANY)) 1654: self.menu.AppendItem(item) 1655: EVT_MENU(self, 4, self.save_as_file) 1656: item=split(riga[5], div['menu_help']) 1657: #self.menu.Append(5, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1658: item=wxMenuItem(self.menu, 5, strip(item[0]), strip(item[1][0:-1])) 1659: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"transparent.gif", wxBITMAP_TYPE_ANY)) 1660: self.menu.AppendItem(item) 1661: EVT_MENU(self, 5, self.save_all) 1662: self.menu.AppendSeparator() 1663: item=split(riga[6], div['menu_help']) 1664: #self.menu.Append(6, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1665: item=wxMenuItem(self.menu, 36, strip(item[0]), strip(item[1][0:-1])) 1666: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"shtml.gif", wxBITMAP_TYPE_ANY)) 1667: self.menu.AppendItem(item) 1668: EVT_MENU(self, 36, self.open_esporta) 1669: self.menu.AppendSeparator() 1670: item=split(riga[7], div['menu_help']) 1671: #self.menu.Append(6, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1672: item=wxMenuItem(self.menu, 6, strip(item[0]), strip(item[1][0:-1])) 1673: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"sclose.gif", wxBITMAP_TYPE_ANY)) 1674: self.menu.AppendItem(item) 1675: EVT_MENU(self, 6, self.close_single) 1676: item=split(riga[8], div['menu_help']) 1677: #self.menu.Append(7, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1678: item=wxMenuItem(self.menu, 7, strip(item[0]), strip(item[1][0:-1])) 1679: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"transparent.gif", wxBITMAP_TYPE_ANY)) 1680: self.menu.AppendItem(item) 1681: EVT_MENU(self, 7, self.close_all) 1682: self.menu.AppendSeparator() 1683: item=split(riga[9], div['menu_help']) 1684: #self.menu.Append(8, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1685: item=wxMenuItem(self.menu, 8, strip(item[0]), strip(item[1][0:-1])) 1686: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"squit.gif", wxBITMAP_TYPE_ANY)) 1687: self.menu.AppendItem(item) 1688: EVT_MENU(self, 8, self.quit) 1689: self.menubar.Append(self.menu, strip(riga[0])) 1690: self.menu = wxMenu() 1691: ####______________________________________________________________________riga edit 1692: riga=split(menu_text[1], div['menu']) 1693: item=split(riga[1], div['menu_help']) 1694: #self.menu.Append(9, strip(item[0])+"\tCtrl+Z", strip(item[1][0:-1]), wxITEM_NORMAL) 1695: item=wxMenuItem(self.menu, 9, strip(item[0])+"\tCtrl+Z", strip(item[1][0:-1])) 1696: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"sundo.gif", wxBITMAP_TYPE_ANY)) 1697: self.menu.AppendItem(item) 1698: EVT_MENU(self, 9, self.undo) 1699: item=split(riga[2], div['menu_help']) 1700: #self.menu.Append(10, strip(item[0])+"\tCtrl+Y", strip(item[1][0:-1]), wxITEM_NORMAL) 1701: item=wxMenuItem(self.menu, 10, strip(item[0])+"\tCtrl+Y", strip(item[1][0:-1])) 1702: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"sredo.gif", wxBITMAP_TYPE_ANY)) 1703: self.menu.AppendItem(item) 1704: EVT_MENU(self, 10, self.redo) 1705: self.menu.AppendSeparator() #________________________divisore 1706: item=split(riga[3], div['menu_help']) 1707: #self.menu.Append(11, strip(item[0])+"\tCtrl+X", strip(item[1][0:-1]), wxITEM_NORMAL) 1708: item=wxMenuItem(self.menu, 11, strip(item[0])+"\tCtrl+X", strip(item[1][0:-1])) 1709: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"scut.gif", wxBITMAP_TYPE_ANY)) 1710: self.menu.AppendItem(item) 1711: EVT_MENU(self,11, self.cut) 1712: item=split(riga[4], div['menu_help']) 1713: #self.menu.Append(12, strip(item[0])+"\tCtrl+C", strip(item[1][0:-1]), wxITEM_NORMAL) 1714: item=wxMenuItem(self.menu, 12, strip(item[0])+"\tCtrl+C", strip(item[1][0:-1])) 1715: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"scopy.gif", wxBITMAP_TYPE_ANY)) 1716: self.menu.AppendItem(item) 1717: EVT_MENU(self, 12, self.copy) 1718: item=split(riga[5], div['menu_help']) 1719: #self.menu.Append(13, strip(item[0])+"\tCtrl+V", strip(item[1][0:-1]), wxITEM_NORMAL) 1720: item=wxMenuItem(self.menu, 13, strip(item[0])+"\tCtrl+V", strip(item[1][0:-1])) 1721: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"spast.gif", wxBITMAP_TYPE_ANY)) 1722: self.menu.AppendItem(item) 1723: EVT_MENU(self, 13, self.paste) 1724: self.menu.AppendSeparator() #__________divisore 1725: item=split(riga[6], div['menu_help']) 1726: #self.menu.Append(14, strip(item[0])+"\tCtrl+A", strip(item[1][0:-1]), wxITEM_NORMAL) 1727: item=wxMenuItem(self.menu, 14, strip(item[0]), strip(item[1][0:-1])) 1728: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"transparent.gif", wxBITMAP_TYPE_ANY)) 1729: self.menu.AppendItem(item) 1730: EVT_MENU(self, 14, self.select_all) 1731: self.menu.AppendSeparator() #divisore 1732: item=split(riga[7], div['menu_help']) 1733: item=wxMenuItem(self.menu, 34, strip(item[0])+"\tCtrl+W", strip(item[1][0:-1])) 1734: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"supper.gif", wxBITMAP_TYPE_ANY)) 1735: self.menu.AppendItem(item) 1736: EVT_MENU(self, 34, self.maiuscolo) 1737: item=split(riga[8], div['menu_help']) 1738: item=wxMenuItem(self.menu, 35, strip(item[0])+"\tCtrl+E", strip(item[1][0:-1])) 1739: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"slower.gif", wxBITMAP_TYPE_ANY)) 1740: self.menu.AppendItem(item) 1741: EVT_MENU(self, 35, self.minuscolo) 1742: self.menu.AppendSeparator() #divisore 1743: item=split(riga[9], div['menu_help']) 1744: #self.menu.Append(15, strip(item[0])+"\tCtrl+F", strip(item[1][0:-1]), wxITEM_NORMAL) 1745: item=wxMenuItem(self.menu, 15, strip(item[0])+"\tCtrl+F", strip(item[1][0:-1])) 1746: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"stext.gif", wxBITMAP_TYPE_ANY)) 1747: self.menu.AppendItem(item) 1748: EVT_MENU(self, 15, self.font_config) 1749: self.menubar.Append(self.menu, strip(riga[0])) 1750: self.menu = wxMenu() 1751: ###########################Document 1752: riga=split(menu_text[2], div['menu']) 1753: item=split(riga[1], div['menu_help']) 1754: self.menu.Append(16, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1755: EVT_MENU(self,16, self.tab_space) 1756: item=split(riga[2], div['menu_help']) 1757: self.menu.Append(17, strip(item[0]), strip(item[1][0:-1]), wxITEM_CHECK) 1758: EVT_MENU(self,17, self.view_identation) 1759: item=split(riga[3], div['menu_help']) 1760: self.menu.Append(18, strip(item[0]), strip(item[1][0:-1]), wxITEM_CHECK) 1761: EVT_MENU(self,18, self.only_space_tab) 1762: item=split(riga[4], div['menu_help']) 1763: self.menu.Append(20, strip(item[0]), strip(item[1][0:-1]), wxITEM_CHECK) 1764: EVT_MENU(self,20, self.wordwrap) 1765: self.menubar.Append(self.menu, strip(riga[0])) 1766: self.menu=wxMenu() 1767: #####################################TOOLS 1768: riga=split(menu_text[3], div['menu']) 1769: item=split(riga[1], div['menu_help']) 1770: item=wxMenuItem(self.menu, 30, strip(item[0]), strip(item[1][0:-1])) 1771: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"shtml.gif", wxBITMAP_TYPE_ANY)) 1772: self.menu.AppendItem(item) 1773: EVT_MENU(self, 30, self.open_escape) 1774: item=split(riga[2], div['menu_help']) 1775: item=wxMenuItem(self.menu, 31, strip(item[0]), strip(item[1][0:-1])) 1776: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"scolor.gif", wxBITMAP_TYPE_ANY)) 1777: self.menu.AppendItem(item) 1778: EVT_MENU(self, 31, self.open_colori) 1779: item=split(riga[3], div['menu_help']) 1780: item=wxMenuItem(self.menu, 32, strip(item[0]), strip(item[1][0:-1])) 1781: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"scount.gif", wxBITMAP_TYPE_ANY)) 1782: self.menu.AppendItem(item) 1783: EVT_MENU(self, 32, self.open_conta) 1784: self.menubar.Append(self.menu, strip(riga[0])) 1785: self.menu=wxMenu() 1786: ############################################? 1787: riga=split(menu_text[4], div['menu']) 1788: item=split(riga[1], div['menu_help']) 1789: item=wxMenuItem(self.menu, 33, strip(item[0]), strip(item[1][0:-1])) 1790: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"smail.gif", wxBITMAP_TYPE_ANY)) 1791: self.menu.AppendItem(item) 1792: EVT_MENU(self,33, self.open_segnala) 1793: item=split(riga[2], div['menu_help']) 1794: item=wxMenuItem(self.menu, 19, strip(item[0]), strip(item[1][0:-1])) 1795: item.SetBitmap(wxBitmap(files['default_dir']+"/"+files['icon']+"/"+"sinfo.gif", wxBITMAP_TYPE_ANY)) 1796: self.menu.AppendItem(item) 1797: EVT_MENU(self,19, self.info) 1798: item=split(riga[3], div['menu_help']) 1799: self.menu.Append(55, strip(item[0]), strip(item[1][0:-1]), wxITEM_NORMAL) 1800: EVT_MENU(self, 55, self.open_lenguage) 1801: ################################################## testo del menu inutile#################### 1802: ################################################## 1803: self.menubar.Append(self.menu, strip(riga[0])) 1804: file.close() 1805: ###########fine menu 1806: self.menubar.Enable(9, 0) 1807: self.menubar.Enable(10, 0) 1808: self.menubar.Check(17, show_identation) 1809: if(only_space==0): 1810: lol=1 1811: else: 1812: lol=0 1813: self.menubar.Check(18, lol) 1814: self.menubar.Check(20, wordwraping) 1815: ############### 1816: ##################################################### 1817: class MySplashScreen(wxSplashScreen): 1818: def init(self): 1819: self.args=sys.argv[1:] 1820: bmp = wxImage(files['default_dir']+files['icon']+"/"+"splash.png").ConvertToBitmap() 1821: wxSplashScreen.init(self, bmp, 1822: wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, 1823: 2500, None, -1, 1824: style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP) 1825: EVT_CLOSE(self, self.OnClose) 1826:
1827: def OnClose(self, evt): 1828: pip.frame.Show(1) 1829: self.Destroy() 1830: #frame = MyFrame(self.args,None, -1, "wxKonTEXT") 1831: #frame.Show() 1832: #frame.Centre() 1833: #evt.Skip() 1834:
1835: #________________________________________________________________________________________runno l'applicazione 1836: class MySplashApp(wxApp): 1837: def OnInit(self): 1838: frame=MySplashScreen() 1839: frame.Show(1) 1840: frame.Centre() 1841: return true 1842: def open_fin(self): 1843: self.MainLoop() 1844: def OnClose(self, evt): 1845: self.Exit() 1846:
1847: class MyApp(wxApp): 1848: def OnInit(self): 1849: args=sys.argv[1:] 1850: self.frame=MyFrame(args, None, -1, "wxKonTEXT") 1851: #frame.Show(1) 1852: self.frame.Centre() 1853: return true 1854:
1855: app = MySplashApp() 1856:
1857:
1858: #thread.start_new_thread(app.open_fin, ( "1", )) 1859: #app.MainLoop() 1860: #pip = MyApp(0) 1861: #app.lollo() 1862: pip=MyApp() 1863: pip.MainLoop() 1864: