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="<pre>"
1281:          pippo=cgi.escape(self.style_text[self.current_tab].GetText())
1282:          testo=replace(pippo, "\n", "<br>")
1283:          testo=replace(testo, "\r\n", "<br>")
1284:          testo=replace(testo, " ", " &nbsp;")
1285:          testo=replace(testo, "\t", " &nbsp;&nbsp;&nbsp;&nbsp;")
1286:          #testo=testo+"</pre>"
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:  
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("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n<html>\n<head>\n<title>"+titolo+"</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n<!--Exported by wxKonTEXT powered by Kaworu !-->\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("</style>\n</head>\n<body>\n<table cellpadding='0' cellspacing='0' class=\"sf\">\n<tr>\n")
1495:         #if(righe==1):
1496:           #tot_righe=count(pippone, "\n")+1
1497:           #pippo.write("<td>")
1498:  	 #for i in range(tot_righe):
1499:  	   #pippo.write(str(i)+":  <br />")
1500:  	 #pippo.write("</td>\n")
1501:         pippo.write("<td><pre>")
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+="<font color="+colori[indice]+">"+i+"</font>"
1510:  	  #ciclone+=str(c)+"--"+str(indice)+i+"\n"
1511:  	 #elif(i==" "):
1512:  	    #pippo.write("&nbsp;")
1513:  	 #elif(i=="\t"):
1514:  	    #pippo.write("&nbsp;"*identation)
1515:  	 #else:
1516:  	 if(i=="\n"):
1517:  	    if (righe==1):
1518:  	      pippo.write("</span>\n"+str(riga)+":  "+str("&nbsp;")*(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("</span><span class='a"+str(indice)+"'>"+cgi.escape(i, true))
1527:  	      ultimo_stile=indice
1528:  	 else:
1529:  	      if(riga==1 & righe==1):
1530:  	        pippo.write(str(riga)+":  "+str("&nbsp;")*(tot_righe-len(str(riga))))
1531:  		riga+=1
1532:  	      pippo.write("<span class='a"+str(indice)+"'>"+cgi.escape(i, true))
1533:  	      ultimo_stile=indice 
1534:  	 #except:
1535:  	  #ciclone+="<font color="+colori[indice-100]+">"+cgi.escape(i)+"</font>"
1536:  	  #pippo.write("<font color="+colori[indice-100]+">"+i+"</font>")
1537:  	  #print "cazzo"
1538:         pippo.write("</span></pre>\n</td></tr></table>\n</body>\n</html>")
1539:         pippo.close()
1540:         #print self.style_text[self.current_tab].GetStyledText(0,150)
1541:         return
1542:      
1543:      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: