wxKonTEXT.py (original) (raw)

1:    #!/usr/bin/python 2:    import thread 3:    from wxPython.wx import * 4:    from string import * 5:    from os import access,listdir 6:    from wxPython.stc import * 7:    import sys, os 8:    from wxPython.wx import * 9:    from wxPython.stc import * 10:   from wxPython.html import * 11:   import keyword 12:   from random import * 13:   import cgi 14:   from wxPython.lib.buttons import * 15:   from wxPython.lib.colourchooser import wxPyColourChooser 16:   from httplib import * 17:   from urllib import * 18:   from wxPython.lib.colourselect import * 19:   wxInitAllImageHandlers() #////inserisco gli handlers per supportare tutti i tipi di immagine nel nostro caso gif 20:   files={} #/////lista con tutti i files di configurazione 21:   #print os.path.abspath(os.getcwd()) 22:   files['default_dir'] = os.path.abspath(os.path.dirname(sys.argv[0]))+"/" 23:   files['default_dir']=replace(files['default_dir'], "\", "/") 24:   files['default_dir']=replace(files['default_dir'], "library.zip", "") 25:   variables=files['default_dir']+"variables" ##percorso per il file delle variabili globali 26:    27:   execfile(variables) 28:    29:   def len_words(num): 30:    ciccio=open(files['default_dir']+"/"+files['languages']+"/"+lingua, "r") 31:    stringa=ciccio.readlines() 32:    ciccio.close() 33:    return strip(stringa[num]) 34:   linea=len_words(3) 35:   colonna=len_words(4) 36:    37:    38:   ####################RINGRAZIAMENTI########################## 39:   [wxID_WXFRAME3, wxID_WXFRAME3HTMLWINDOW1, wxID_WXFRAME3PANEL1, 40:    wxID_WXFRAME3STATICBITMAP1, 41:   ] = map(lambda init_ctrls: wxNewId(), range(4)) 42:    43:   class win_info(wxFrame): 44:    def init_utils(self): 45:    # generated method, don't edit 46:    pass 47:    48:    def init_ctrls(self, prnt): 49:    # generated method, don't edit 50:    wxFrame.init(self, id=wxID_WXFRAME3, name='', parent=prnt, 51:    pos=wxPoint(306, 220), size=wxSize(437, 527), 52:    style=wxSYSTEM_MENU | wxCAPTION, title='wxKonTEXT V 0.3') 53:    icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 54:    self.SetIcon(icon) 55:    self.init_utils() 56:    self.SetClientSize(wxSize(437, 527)) 57:    58:    self.panel1 = wxPanel(id=wxID_WXFRAME3PANEL1, name='panel1', 59:    parent=self, pos=wxPoint(0, 0), size=wxSize(437, 527), 60:    style=wxTAB_TRAVERSAL) 61:    62:    self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"splash.png", 63:    wxBITMAP_TYPE_PNG), id=wxID_WXFRAME3STATICBITMAP1, 64:    name='staticBitmap1', parent=self.panel1, pos=wxPoint(0, 0), 65:    size=wxSize(437, 376), style=0) 66:    67:    self.htmlWindow1 = wxHtmlWindow(id=wxID_WXFRAME3HTMLWINDOW1, 68:    name='htmlWindow1', parent=self.panel1, pos=wxPoint(0, 376), 69:    size=wxSize(437, 150)) 70:    self.Centre() 71:    self.htmlWindow1.LoadFile(files['default_dir']+files['icon']+"/"+"info.htm") 72:    73:    def init(self, parent): 74:    self.init_ctrls(parent) 75:    76:   ###################SCELTA LINGUA##################################### 77:   [wxID_WXFRAME2, wxID_WXFRAME2COMBOBOX1, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, 78:    wxID_WXFRAME2PANEL1, wxID_WXFRAME2STATICBITMAP1, wxID_WXFRAME2STATICTEXT1, 79:   ] = map(lambda init_ctrls: wxNewId(), range(6)) 80:    81:   class wxlenguage(wxFrame): 82:    def init_utils(self): 83:    # generated method, don't edit 84:    pass 85:    86:    def init_ctrls(self, prnt): 87:    # generated method, don't edit 88:    wxFrame.init(self, id=wxID_WXFRAME2, name='', parent=prnt, 89:    pos=wxPoint(218, 218), size=wxSize(220, 150), 90:    style=wxSYSTEM_MENU | wxCAPTION, title=len_words(39)) 91:    icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 92:    self.SetIcon(icon) 93:    self.init_utils() 94:    self.Centre() 95:    96:    self.panel1 = wxPanel(id=wxID_WXFRAME2PANEL1, name='panel1', 97:    parent=self, pos=wxPoint(0, 0), size=wxSize(220, 150), 98:    style=wxTAB_TRAVERSAL) 99:    100:   self.staticText1 = wxStaticText(id=wxID_WXFRAME2STATICTEXT1, 101:   label=len_words(40), name='staticText1', parent=self.panel1, 102:   pos=wxPoint(70, 24), size=wxSize(130, 16), style=0) 103:   104:   self.comboBox1 = wxComboBox(choices=self.lista, id=wxID_WXFRAME2COMBOBOX1, 105:   name='comboBox1', parent=self.panel1, pos=wxPoint(24, 48), 106:   size=wxSize(180, 22), style=0, validator=wxDefaultValidator, value=self.lista[0]) 107:   108:   self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON1, 109:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif", 110:   wxBITMAP_TYPE_ANY), label='OK', name='genBitmapTextButton1', 111:   parent=self.panel1, pos=wxPoint(80, 88), size=wxSize(105, 24), 112:   style=0) 113:  
114:   EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, self.ok) 115:   116:   self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"world.gif", 117:   wxBITMAP_TYPE_ANY), 118:   id=wxID_WXFRAME2STATICBITMAP1, name='staticBitmap1', 119:   parent=self.panel1, pos=wxPoint(29, 11), size=wxSize(34, 35), 120:   style=0) 121:   122:   def init(self, parent): 123:   self.lista=listdir(files['default_dir']+"/"+files['languages']) 124:   self.lista=self.set_combo() 125:   self.init_ctrls(parent) 126:   127:   def ok(self, evt): 128:   ciccio=open(variables, "r") 129:   stringa=ciccio.readlines() 130:   ciccio.close() 131:   stringa[1]="lingua=""+self.comboBox1.GetValue()+""\n" 132:   stringa=join(stringa, "") 133:   ciccio=open(variables, "w") 134:   ciccio.write(stringa) 135:   ciccio.close() 136:   error_window(13, self) 137:   self.Destroy() 138:   139:  
140:   def set_combo(self): 141:   leng=[] 142:   for i in self.lista: 143:   c=split(i, "
") 144:   i=c[-1] 145:   if(i not in leng): 146:   leng.append(i) 147:   return leng 148:  
149:  #################################################################### 150:   151:   152:   153:  #_____________________FINE HEADER 154:   155:  #___FUNZIONE PER GESTIRE GLI ERRORI IRREVERSIBILI 156:  def error(number, lol): 157:   file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r") 158:   stringa=file.readlines() 159:   file.close() 160:   dlg= wxMessageDialog(lol,stringa[number], "Error", wxOK) 161:   if dlg.ShowModal() == wxID_OK: 162:   dlg.Destroy() 163:   lol.Destroy() 164:   dlg.Destroy() 165:   lol.Destroy() 166:  #############---FUNZIONE PER GESTIRE GLI ERRORI REVERSIBILI 167:  def error_window(number, lol): 168:   file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r") 169:   stringa=file.readlines() 170:   file.close() 171:   dlg= wxMessageDialog(lol,stringa[number], "Error", wxOK) 172:   if dlg.ShowModal() == wxID_OK: 173:   dlg.Destroy() 174:   dlg.Destroy() 175:   176:   177:   178:   179:  ###################ESCAPE CARATTERI################################### 180:  [wxID_WXFRAME2, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, 181:   wxID_WXFRAME2GENBITMAPTEXTBUTTON2, wxID_WXFRAME2GENBITMAPTEXTBUTTON3, 182:   wxID_WXFRAME2STATICTEXT1, wxID_WXFRAME2TEXTCTRL1, wxID_WXFRAME2TEXTCTRL2, 183:  ] = map(lambda init_ctrls: wxNewId(), range(7)) 184:   185:  class win_escape(wxFrame): 186:   def init_utils(self): 187:   # generated method, don't edit 188:   pass 189:   190:   def init_ctrls(self, prnt): 191:   # generated method, don't edit 192:   wxFrame.init(self, id=wxID_WXFRAME2, name='', parent=prnt, 193:   pos=wxPoint(191, 280), size=wxSize(300, 250), 194:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(38)) 195:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 196:   self.SetIcon(icon) 197:   self.editor=prnt 198:   self.init_utils() 199:   200:   self.panel_1 = wxPanel(self, -1) 201:   202:   sizer_1 = wxBoxSizer(wxVERTICAL) 203:   204:   sizer_1.Add(self.panel_1, 1, wxEXPAND, 0) 205:   206:   ##################################### 207:   self.SetClientSize(wxSize(300, 250)) 208:   self.SetAutoLayout(False) 209:   210:   self.textCtrl1 = wxStyledTextCtrl(id=wxID_WXFRAME2TEXTCTRL1, name='textCtrl1', 211:   parent=self.panel_1, pos=wxPoint(8, 24), size=wxSize(280, 88), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER) 212:   self.textCtrl1.SetWrapMode(wxSTC_WRAP_WORD) 213:   self.textCtrl1.SetMarginWidth(1, 0) 214:  
215:   self.staticText1 = wxStaticText(id=wxID_WXFRAME2STATICTEXT1, 216:   label=len_words(0), name='staticText1', 217:   parent=self.panel_1, pos=wxPoint(8, 8), size=wxSize(137, 16), style=0) 218:   219:   self.textCtrl2 = wxStyledTextCtrl(id=wxID_WXFRAME2TEXTCTRL2, name='textCtrl2', 220:   parent=self.panel_1, pos=wxPoint(8, 120), size=wxSize(280, 88), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER) 221:   self.textCtrl2.SetWrapMode(wxSTC_WRAP_WORD) 222:   self.textCtrl2.SetMarginWidth(1, 0) 223:   224:   self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON1, 225:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif", 226:   wxBITMAP_TYPE_ANY), label=len_words(7), name='genBitmapTextButton1', 227:   parent=self.panel_1, pos=wxPoint(8, 216), size=wxSize(81, 30), style=0) 228:   229:   self.genBitmapTextButton2 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON2, 230:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"spast.gif", 231:   wxBITMAP_TYPE_ANY), label=len_words(9), 232:   name='genBitmapTextButton2', parent=self.panel_1, pos=wxPoint(104, 216), 233:   size=wxSize(88, 30), style=0) 234:   235:   self.genBitmapTextButton3 = wxGenBitmapTextButton(ID=wxID_WXFRAME2GENBITMAPTEXTBUTTON3, 236:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sclose.gif", 237:   wxBITMAP_TYPE_ANY), label=len_words(10), name='genBitmapTextButton3', 238:   parent=self.panel_1, pos=wxPoint(208, 216), size=wxSize(81, 30), style=0) 239:  
240:   EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON1, self.converti) 241:   EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON2, self.inserisci) 242:   EVT_BUTTON(self, wxID_WXFRAME2GENBITMAPTEXTBUTTON3, self.resetta) 243:   self.Centre() 244:   245:   def init(self, parent): 246:   self.init_ctrls(parent) 247:   248:   def converti(self, evt): 249:   testo=cgi.escape(self.textCtrl1.GetText(), true) 250:   self.textCtrl2.SetText(testo) 251:  
252:   def inserisci(self, evt): 253:   self.editor.style_text[self.editor.current_tab].InsertText(self.editor.style_text[self.editor.current_tab].GetCurrentPos(),cgi.escape(self.textCtrl1.GetText(), true)) 254:   255:   def resetta(self, evt): 256:   self.textCtrl1.SetText("") 257:   self.textCtrl2.SetText("") 258:  ###################################################################### 259:   260:  ######______COLORI*********** 261:  class win_color(wxFrame): 262:   def init_utils(self): 263:   # generated method, don't edit 264:   pass 265:   266:   def init_ctrls(self, prnt): 267:   # generated method, don't edit 268:   wxFrame.init(self, id=99, name='', parent=prnt, 269:   pos=wxPoint(191, 280), size=wxSize(480, 400), 270:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(5)) 271:   self.init_utils() 272:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 273:   self.SetIcon(icon) 274:   self.panel_1 = wxPanel(self, -1) 275:   276:   sizer_1 = wxBoxSizer(wxVERTICAL) 277:   278:   sizer_1.Add(self.panel_1, 1, wxEXPAND, 0) 279:   self.chooser = wxPyColourChooser(self.panel_1, 33) 280:   self.staticText1 = wxStaticText(id=150, 281:   label=len_words(6)+' :', name='staticText1', 282:   parent=self.panel_1, pos=wxPoint(30, 325), size=wxSize(137, 16), style=0) 283:   284:   self.textCtrl1 = wxTextCtrl(id=10, name='textCtrl1', 285:   parent=self.panel_1, pos=wxPoint(167, 325), size=wxSize(100, 20), style=0, 286:   value='#000000') 287:   288:   self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=156, 289:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sundo.gif", 290:   wxBITMAP_TYPE_ANY), label=len_words(7), name='genBitmapTextButton1', 291:   parent=self.panel_1, pos=wxPoint(270, 325), size=wxSize(81, 20), style=0) 292:   EVT_BUTTON(self, 156, self.scrivi) 293:   294:   self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=157, 295:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif", 296:   wxBITMAP_TYPE_ANY), label=len_words(8), name='genBitmapTextButton1', 297:   parent=self.panel_1, pos=wxPoint(360, 325), size=wxSize(81, 20), style=0) 298:   EVT_BUTTON(self, 157, self.setta) 299:   300:   self.Centre() 301:  
302:   def init(self, parent): 303:   self.init_ctrls(parent) 304:   305:   def scrivi(self, evt): 306:   rgb_value=str(self.chooser.GetValue()) 307:   rgb_value=list(eval(rgb_value)) 308:   hex_1=replace(hex(rgb_value[0]), "0x", "") 309:   hex_2=replace(hex(rgb_value[1]), "0x", "") 310:   hex_3=replace(hex(rgb_value[2]), "0x", "") 311:   if(len(hex_1)==1): 312:   hex_1="0"+hex_1 313:   if(len(hex_2)==1): 314:   hex_2="0"+hex_2 315:   if(len(hex_3)==1): 316:   hex_3="0"+hex_3 317:   hex_value="#"+upper(hex_1)+upper(hex_2)+upper(hex_3) 318:   self.textCtrl1.SetValue(hex_value) 319:   320:   def setta(self, evt): 321:   hex_value=self.textCtrl1.GetValue() 322:   int_1=int(eval("0x"+hex_value[1:3])) 323:   int_2=int(eval("0x"+hex_value[3:5])) 324:   int_3=int(eval("0x"+hex_value[5:7])) 325:   self.chooser.SetValue(wxColor(int_1, int_2, int_3)) 326:   self.chooser.Update() 327:  ############################################################################# 328:  ###########################################################
//////////////per esportazione
_
_ 329:  class esportazione(wxFrame): 330:   def init_utils(self): 331:   # generated method, don't edit 332:   pass 333:   334:   def init_ctrls(self, prnt): 335:   # generated method, don't edit 336:   wxFrame.init(self, id=1, name='', parent=prnt, 337:   pos=wxPoint(333, 184), size=wxSize(347, 354), 338:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(25)) 339:   self.init_utils() 340:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 341:   self.SetIcon(icon) 342:   self.parent=prnt 343:   self.panel1 = wxPanel(id=2, name='panel1', 344:   parent=self, pos=wxPoint(0, 0), size=wxSize(344, 324), 345:   style=wxTAB_TRAVERSAL) 346:   347:   self.staticText1 = wxStaticText(id=3, 348:   label=len_words(26), name='staticText1', 349:   parent=self.panel1, pos=wxPoint(5, 5), size=wxSize(189, 16), 350:   style=0) 351:   352:   e = wxFontEnumerator() 353:   e.EnumerateFacenames() 354:   list = e.GetFacenames() 355:   list.sort() 356:   self.comboBox1 = wxComboBox(id=4, 357:   name='comboBox1', parent=self.panel1, pos=wxPoint(48, 54), 358:   size=wxSize(144, 20), style=0, validator=wxDefaultValidator, 359:   choices=list) 360:  
361:   EVT_COMBOBOX(self, 4, self.change_font) 362:   363:   self.staticText2 = wxStaticText(id=5, 364:   label=len_words(27), name='staticText2', parent=self.panel1, 365:   pos=wxPoint(10, 55), size=wxSize(32, 16), style=0) 366:   367:   self.staticText3 = wxStaticText(id=6, 368:   label=len_words(28), name='staticText3', parent=self.panel1, 369:   pos=wxPoint(200, 55), size=wxSize(67, 16), style=0) 370:   list=['8','10','12','14'] 371:   self.comboBox2 = wxComboBox(choices=list, id=7, 372:   name='comboBox2', parent=self.panel1, pos=wxPoint(272, 54), 373:   size=wxSize(44, 20), style=0, validator=wxDefaultValidator) 374:  
375:   EVT_COMBOBOX(self, 7, self.change_font) 376:   377:   self.staticText4 = wxStaticText(id=8, 378:   label=len_words(29), name='staticText4', parent=self.panel1, 379:   pos=wxPoint(5, 135), size=wxSize(37, 16), style=0) 380:   381:   382:   self.textCtrl1 = wxTextCtrl(id=9, name='textCtrl1', 383:   parent=self.panel1, pos=wxPoint(48, 130), size=wxSize(288, 20), 384:   style=0) 385:   386:   self.staticBox1 = wxStaticBox(id=10, 387:   label=len_words(30), name='staticBox1', parent=self.panel1, 388:   pos=wxPoint(8, 160), size=wxSize(328, 88), style=0) 389:   390:   self.staticText5 = wxStaticText(id=11, 391:   label=len_words(31), name='staticText5', 392:   parent=self.panel1, pos=wxPoint(60, 190), size=wxSize(161, 16), 393:   style=0) 394:   395:   self.checkBox2 = wxCheckBox(id=12, 396:   label=len_words(32), name='checkBox2', 397:   parent=self.panel1, pos=wxPoint(5, 250), size=wxSize(168, 24), 398:   style=0) 399:   self.checkBox2.SetValue(False) 400:   401:   self.genBitmapTextButton2 = wxGenBitmapTextButton(ID=13, 402:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif", 403:   wxBITMAP_TYPE_ANY), label=len_words(33), 404:   name='genBitmapTextButton2', parent=self.panel1, pos=wxPoint(224, 405:   296), size=wxSize(113, 24), style=0) 406:  
407:   EVT_BUTTON(self, 13, self.avanti) 408:   409:   self.staticLine1 = wxStaticLine(id=14, 410:   name='staticLine1', parent=self.panel1, pos=wxPoint(0, 284), 411:   size=wxSize(352, 4), style=0) 412:   413:   self.staticText6 = wxStaticText(id=15, 414:   label=len_words(34), name='staticText6', 415:   parent=self.panel1, pos=wxPoint(24, 83), size=wxSize(288, 24), 416:   style=0) 417:   418:   self.staticBox2 = wxStaticBox(id=16, 419:   label=len_words(35), name='staticBox2', parent=self.panel1, 420:   pos=wxPoint(8, 32), size=wxSize(328, 88), style=0) 421:  
422:   self.b = ColourSelect(self.panel1, 17, "", (255,255,255), size = (32, 22), pos=wxPoint(24, 184)) 423:  
424:   self.c = ColourSelect(self.panel1, 18, "", (0,0,0), size = (32, 22), pos=wxPoint(24, 220)) 425:   426:   self.staticText7 = wxStaticText(id=19, 427:   label=len_words(36), name='staticText7', 428:   parent=self.panel1, pos=wxPoint(60, 225), size=wxSize(152, 16), 429:   style=0) 430:  
431:   self.comboBox2.SetValue("10") 432:   #self.comboBox1.SetValue(0) 433:   self.textCtrl1.SetValue(self.parent.notebook_1.GetPageText(self.parent.current_tab)) 434:   435:   def init(self, parent): 436:   self.init_ctrls(parent) 437:   438:   def change_font(self, evt): 439:   font_select=wxFont(int(self.comboBox2.GetValue()), wxDEFAULT, wxNORMAL, wxNORMAL, underline = false, faceName=self.comboBox1.GetValue()) 440:   self.staticText6.SetFont(font_select) 441:   442:   def avanti(self, evt): 443:   self.Show(0) 444:   dlg = wxFileDialog( self, style=wxSAVE | wxOVERWRITE_PROMPT | wxCHANGE_DIR ,wildcard='(HTML files)|*.htm' ) 445:   dlg.ShowModal() 446:   all_path=dlg.GetPath() 447:   dlg.Destroy() 448:   if(all_path == None or all_path == ""): 449:   return 450:   else: 451:   self.parent.esporta_html(self.b.GetValue(), self.c.GetValue(), self.comboBox1.GetValue(), self.comboBox2.GetValue(), self.checkBox2.GetValue(), all_path, self.textCtrl1.GetValue()) 452:   self.Destroy() 453:  ##
_
_
_
_
////////////////////per il conteggio del testo 454:  class win_conta(wxFrame): 455:   primo=0 456:   secondo=0 457:   terzo=0 458:   def init_utils(self): 459:   # generated method, don't edit 460:   pass 461:   462:   def init_ctrls(self, prnt): 463:   # generated method, don't edit 464:   wxFrame.init(self, id=1, name='', parent=prnt, 465:   pos=wxPoint(38, 274), size=wxSize(214, 180), 466:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(11)) 467:   self.init_utils() 468:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 469:   self.SetIcon(icon) 470:   471:   self.panel_1 = wxPanel(self, -1) 472:   473:   sizer_1 = wxBoxSizer(wxVERTICAL) 474:   475:   sizer_1.Add(self.panel_1, 1, wxEXPAND, 0) 476:   477:   #self.SetAutoLayout(1) 478:   479:   self.SetSizer(sizer_1) 480:   481:   #sizer_1.SetSizeHints(self) 482:   self.staticBox1 = wxStaticBox(id=2, 483:   label=len_words(12), name='staticBox1', parent=self.panel_1 , 484:   pos=wxPoint(3, 8), size=wxSize(200, 104), style=0) 485:   486:   self.checkBox1 = wxCheckBox(id=3, 487:   label=len_words(13), name='checkBox1', parent=self.panel_1 , 488:   pos=wxPoint(8, 24), size=wxSize(104, 24), style=0) 489:   EVT_CHECKBOX(self.checkBox1, 3, 490:   self.OnCheckbox1Checkbox) 491:   492:   self.checkBox2 = wxCheckBox(id=4, 493:   label=len_words(14), name='checkBox2', parent=self.panel_1 , 494:   pos=wxPoint(8, 48), size=wxSize(160, 24), style=0) 495:   EVT_CHECKBOX(self.checkBox2, 4, 496:   self.OnCheckbox2Checkbox) 497:   498:   self.checkBox3 = wxCheckBox(id=5, label=len_words(15), 499:   name='checkBox3', parent=self.panel_1 , pos=wxPoint(8, 72), size=wxSize(86, 500:   24), style=0) 501:   EVT_CHECKBOX(self.checkBox3, 5, 502:   self.OnCheckbox3Checkbox) 503:   504:   self.staticText1 = wxStaticText(id=6, 505:   label=len_words(16)+':', name='staticText1', parent=self.panel_1 , 506:   pos=wxPoint(8, 120), size=wxSize(91, 16), style=0) 507:   508:   self.textCtrl1 = wxTextCtrl(id=7, name='textCtrl1', 509:   parent=self.panel_1 , pos=wxPoint(104, 117), size=wxSize(80, 20), style=0, 510:   value='') 511:  
512:   self.Centre() 513:   self.totale=replace(prnt.style_text[prnt.current_tab].GetText(), "\r", "") 514:   self.textCtrl1.SetValue(str(len(self.totale))) 515:   516:   def init(self, parent): 517:   self.init_ctrls(parent) 518:   519:   def OnCheckbox1Checkbox(self, event): 520:   if(self.primo==0): 521:   self.primo=count(self.totale, " ") 522:   else: 523:   self.primo=0 524:   self.scrivi() 525:   526:   def OnCheckbox2Checkbox(self, event): 527:   if(self.secondo==0): 528:   self.secondo=count(self.totale, "\n") 529:   else: 530:   self.secondo=0 531:   self.scrivi() 532:   533:   def OnCheckbox3Checkbox(self, event): 534:   if(self.terzo==0): 535:   self.terzo=count(self.totale, "\t") 536:   else: 537:   self.terzo=0 538:   self.scrivi() 539:   def scrivi(self): 540:   self.textCtrl1.SetValue(str(len(self.totale)-self.primo-self.secondo-self.terzo)) 541:  ##############################################//
_
_
_
542:  ###############################################SEGNALA BUG 543:  class win_segnala(wxFrame): 544:   def _init_utils(self): 545:   # generated method, don't edit 546:   pass 547:   548:   def _init_ctrls(self, prnt): 549:   # generated method, don't edit 550:   wxFrame.init(self, id=1, name='', parent=prnt, 551:   pos=wxPoint(379, 384), size=wxSize(379, 365), 552:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(21)) 553:   self._init_utils() 554:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 555:   self.SetIcon(icon) 556:   557:   self.panel_1 = wxPanel(self, -1) 558:   559:   sizer_1 = wxBoxSizer(wxVERTICAL) 560:   561:   sizer_1.Add(self.panel_1, 1, wxEXPAND, 0) 562:   self.textCtrl1 = wxTextCtrl(id=2, name='textCtrl1', 563:   parent=self.panel_1, pos=wxPoint(192, 79), size=wxSize(176, 20), 564:   value='', style=0) 565:   566:   self.staticText1 = wxStaticText(id=3, 567:   label=len_words(17), name='staticText1', 568:   parent=self.panel_1, pos=wxPoint(34, 80), size=wxSize(153, 16), style=0) 569:   570:   self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"usermail.gif", 571:   wxBITMAP_TYPE_ANY), id=4, 572:   name='staticBitmap1', parent=self.panel_1, pos=wxPoint(8, 64), 573:   size=wxSize(24, 28), style=0) 574:   575:   self.staticText2 = wxStaticText(id=5, 576:   label=len_words(18), 577:   name='staticText2', parent=self.panel_1, pos=wxPoint(8, 120), 578:   size=wxSize(250, 20), style=0) 579:   580:   self.textCtrl2 = wxTextCtrl(id=6, name='textCtrl2', 581:   parent=self.panel_1, pos=wxPoint(8, 136), size=wxSize(360, 160), style=wxTE_MULTILINE, 582:   value='') 583:   584:   self.genBitmapTextButton1 = wxGenBitmapTextButton(ID=7, 585:   bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"sredo.gif", 586:   wxBITMAP_TYPE_ANY), label=len_words(19), name='genBitmapTextButton1', 587:   parent=self.panel_1, pos=wxPoint(144, 304), size=wxSize(81, 24), style=0) 588:   589:   EVT_BUTTON(self, 7, self.invia) 590:   591:   self.textCtrl3 = wxStyledTextCtrl(id=50, name='textCtrl2', 592:   parent=self.panel_1, pos=wxPoint(8, 8), size=wxSize(360, 58), style = wxNO_FULL_REPAINT_ON_RESIZE | wxBORDER) 593:   self.textCtrl3.SetMarginWidth(1, 0) 594:   self.textCtrl3.SetText(len_words(20)) 595:   596:   self.textCtrl3.SetWrapMode(wxSTC_WRAP_WORD) 597:   self.textCtrl3.Disable() 598:   599:   self.textCtrl3.ClearDocumentStyle() 600:   self.Centre() 601:   def init(self, parent): 602:   self._init_ctrls(parent) 603:   604:   def invia(self, evt): 605:   try: 606:   607:   dlg=win_conferma(self) 608:   dlg.Show() 609:   params = urlencode({'mail': self.textCtrl1.GetValue(), 'messaggio': self.textCtrl2.GetValue()}) 610:   headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} 611:   conn = HTTPConnection("www.kaworu.it") 612:   conn.request("POST", "/soft/sendforwxkontext.php", params, headers) 613:   response = conn.getresponse() 614:   data = response.read() 615:   conn.close() 616:   dlg.staticText1.SetLabel(data) 617:   return 618:   except: 619:   dlg.staticText1.SetLabel(len_words(22)) 620:   return 621:  
622:   623:  class win_conferma(wxFrame): 624:   def _init_utils(self): 625:   # generated method, don't edit 626:   pass 627:   628:   def _init_ctrls(self, prnt): 629:   # generated method, don't edit 630:   wxFrame.init(self, id=1, name='', parent=prnt, 631:   pos=wxPoint(506, 320), size=wxSize(272, 110), 632:   style=wxSYSTEM_MENU | wxCAPTION, title=len_words(23)) 633:   self._init_utils() 634:   icon=wxIcon(files['default_dir']+files['icon']+"/"+"icon.ico", wxBITMAP_TYPE_ICO) 635:   self.SetIcon(icon) 636:   637:   self.panel_1 = wxPanel(self, -1) 638:   639:   sizer_1 = wxBoxSizer(wxVERTICAL) 640:   641:   sizer_1.Add(self.panel_1, 1, wxEXPAND, 0) 642:   self.Centre() 643:   644:   self.staticBitmap1 = wxStaticBitmap(bitmap=wxBitmap(files['default_dir']+files['icon']+"/"+"collegamento.gif", 645:   wxBITMAP_TYPE_ANY), id=2, 646:   name='staticBitmap1', parent=self.panel_1, pos=wxPoint(38, 25), 647:   size=wxSize(38, 34), style=0) 648:   649:   self.staticText1 = wxStaticText(id=3, 650:   label=len_words(24), name='staticText1', parent=self.panel_1, 651:   pos=wxPoint(80, 30), size=wxSize(124, 16), style=0) 652:   653:   def init(self, parent): 654:   self._init_ctrls(parent) 655:  ################################################################### 656:  ##################################################################### 657:  ###########--==[[CLASSE PER IL TESTO]]==--###################### 658:  class MySTC(wxStyledTextCtrl): 659:   dir_to_file=0 #variabile legata al path del file valore 0 se il file e' nuovo 660:   syntaxo=None #Numero dell'elemento del menu di highlight 661:   modify=1 #per controllare se il file e' stato modificato dopo il salvataggio 662:   dire="" 663:   def init(self, parent, ID): 664:   wxStyledTextCtrl.init(self, parent, ID, style = wxNO_FULL_REPAINT_ON_RESIZE | wxNO_BORDER) 665:   self.CmdKeyAssign(ord('+'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMIN) 666:   self.CmdKeyAssign(ord('-'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMOUT) 667:   self.SetProperty("fold", "1") 668:   self.SetProperty("tab.timmy.whinge.level", "0") 669:   self.SetMargins(0,0) 670:   self.SetViewWhiteSpace(False) 671:   self.SetMarginType(2, wxSTC_MARGIN_SYMBOL) 672:   self.SetMarginMask(2, wxSTC_MASK_FOLDERS) 673:   self.SetMarginSensitive(2, True) 674:   self.SetMarginWidth(2, 12) 675:   self.SetMarginWidth(1, 35) 676:   self.EmptyUndoBuffer() 677:   self.Colourise(0, -1) ############colora tutto il documento 678:   self.SetMarginType(1, wxSTC_MARGIN_NUMBER) 679:   self.SetLayoutCache(wxSTC_CACHE_DOCUMENT) ####cache tutta l'highlight del documento serve per l'esportazione 680:   self.SetScrollWidth(4000) #####setta la scroolbar a 4000 pixel 681:   ####___PROVA PER LA FORMATTAZIONE 682:   683:  #[ Definizione per i cosetti a tendina 684:   if 0: # per visualizzare i cosi a tendina, anche se non funzionanti 685:   self.MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_ARROW, "navy", "navy") 686:   self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN, "navy", "navy") 687:   self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BACKGROUND, "white", "black") 688:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_BACKGROUND, "white", "black") 689:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_BACKGROUND, "white", "black") 690:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_BACKGROUND, "white", "black") 691:   692:   else: ##idem 693:   self.MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUSCONNECTED, "white", "black") 694:   self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUSCONNECTED, "white", "black") 695:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_TCORNER, "white", "black") 696:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_LCORNER, "white", "black") 697:   self.MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE, "white", "black") 698:   self.MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS, "white", "black") 699:   self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS, "white", "black") 700:   701:   EVT_STC_MARGINCLICK(self, ID, self.OnMarginClick) #sempre per i fold 702:   703:   704:  #____________
_
__
_
__
_[definizione dei metodi
__
_
__
_
__
______________ 705:   706:   def syntax(self, stringa): 707:   execfile(stringa)
708:  
709:   def open_file(self, dir_to_file,dire, syntaxo=None): 710:   #####da inserire il caso di errore di apertura del file 711:   try: 712:   self.SetText(open(dir_to_file).read()) 713:   self.dir_to_file=dir_to_file 714:   self.syntaxo=syntaxo 715:   self.modify=0 716:   self.dire=dire 717:   except: 718:   error_window(0, self) 719:   720:   def FoldAll(self): ####funzione utile per racchiudere tutte le sottoparti 721:   lineCount = self.GetLineCount() 722:   expanding = True 723:   for lineNum in range(lineCount): 724:   if self.GetFoldLevel(lineNum) & wxSTC_FOLDLEVELHEADERFLAG: 725:   expanding = not self.GetFoldExpanded(lineNum) 726:   break; 727:   lineNum = 0 728:   while lineNum < lineCount: 729:   level = self.GetFoldLevel(lineNum) 730:   if level & wxSTC_FOLDLEVELHEADERFLAG and
731:   (level & wxSTC_FOLDLEVELNUMBERMASK) == wxSTC_FOLDLEVELBASE: 732:   if expanding: 733:   self.SetFoldExpanded(lineNum, True) 734:   lineNum = self.Expand(lineNum, True) 735:   lineNum = lineNum - 1 736:   else: 737:   lastChild = self.GetLastChild(lineNum, -1) 738:   self.SetFoldExpanded(lineNum, False) 739:   if lastChild > lineNum: 740:   self.HideLines(lineNum+1, lastChild) 741:   lineNum = lineNum + 1 742:   743:   744:   def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): #####funzione per espanderle 745:   lastChild = self.GetLastChild(line, level) 746:   line = line + 1 747:   while line <= lastChild: 748:   if force: 749:   if visLevels > 0: 750:   self.ShowLines(line, line) 751:   else: 752:   self.HideLines(line, line) 753:   else: 754:   if doExpand: 755:   self.ShowLines(line, line) 756:   if level == -1: 757:   level = self.GetFoldLevel(line) 758:   if level & wxSTC_FOLDLEVELHEADERFLAG: 759:   if force: 760:   if visLevels > 1: 761:   self.SetFoldExpanded(line, True) 762:   else: 763:   self.SetFoldExpanded(line, False) 764:   line = self.Expand(line, doExpand, force, visLevels-1) 765:   else: 766:   if doExpand and self.GetFoldExpanded(line): 767:   line = self.Expand(line, True, force, visLevels-1) 768:   else: 769:   line = self.Expand(line, False, force, visLevels-1) 770:   else: 771:   line = line + 1; 772:   return line 773:   774:   775:   776:   777:   def OnMarginClick(self, evt): 778:   if evt.GetMargin() == 2: 779:   if evt.GetShift() and evt.GetControl(): 780:   self.FoldAll() 781:   else: 782:   lineClicked = self.LineFromPosition(evt.GetPosition()) 783:   if self.GetFoldLevel(lineClicked) & wxSTC_FOLDLEVELHEADERFLAG: 784:   if evt.GetShift(): 785:   self.SetFoldExpanded(lineClicked, True) 786:   self.Expand(lineClicked, True, True, 1) 787:   elif evt.GetControl(): 788:   if self.GetFoldExpanded(lineClicked): 789:   self.SetFoldExpanded(lineClicked, False) 790:   self.Expand(lineClicked, False, True, 0) 791:   else: 792:   self.SetFoldExpanded(lineClicked, True) 793:   self.Expand(lineClicked, True, True, 100) 794:   else: 795:   self.ToggleFold(lineClicked) 796:   797:  ############################################################ 798:   799:  class MyFileDropTarget(wxFileDropTarget): 800:   def init(self, window): 801:   wxFileDropTarget.init(self) 802:   self.window = window 803:   804:   def OnDropFiles(self, x, y, filenames): 805:   for file in filenames: 806:   ciccio=split(file, dir_separator) 807:   name=ciccio[len(ciccio)-1] 808:   self.window.apertura_pagina(name, file, "") 809:   810:  ############################################################## 811:   #INIZIO FRAME 812:  ############################################################ 813:  class MyFrame(wxFrame): 814:   combobox=0 ####Variabile che conterra' la combobox della toolbar 815:   frame_1_toolbar=0 ####Variabile che conterra' la toolbar 816:   menubar=0 #### 817:   default_syntax=0 ####variabile che contiene l'indice per la sintassi dei documenti di testo 818:   style_text=[] #lista di oggetti 819:   panel=[] #lista di panneli pet le text box 820:   current_tab=0 ####contiene il tab attuale 821:   search_word="" ###contiene la parola con il quale effetuare le ricerche 822:   position=0 823:   row=0 824:   line=0 825:   dir_to_open="./" 826:   current_margin=35 827:   def init(self,filenames, *args, **kwds): 828:   kwds["style"] = wxDEFAULT_FRAME_STYLE 829:   wxFrame.init(self, *args, **kwds) 830:   #/////////////////////////////////////////////////// 831:   self.highlight=listdir(files['default_dir']+"/"+files['highlight']) ##lista di tutte le sintassi disponibili 832:   ID=wxNewId() 833:   self.notebook_1 = wxNotebook(self, ID, style=0)######creo notebook vuoto 834:   EVT_NOTEBOOK_PAGE_CHANGED(self, ID, self.page_change) 835:   EVT_CLOSE(self, self.OnCloseWindow) 836:   #---------------# Menu Bar 837:   self.create_menu() 838:   #_________________ Status 839:   self.frame_1_statusbar = self.CreateStatusBar(3) 840:   #________________________________
- Tool Bar 841:   self.__generate_toolbar() 842:   ###genero la lista degli highlight 843:   self.__set_properties() 844:   self.__do_layout() 845:   sizefile=open(files['size'], "r") ##apro i file per impostare le dimensioni della finestra 846:   listone=sizefile.readlines() 847:   x=replace(listone[0], "\n", "") 848:   y=replace(listone[1], "\n", "") 849:   sizefile.close() 850:   self.SetSize((int(x),int(y))) 851:   self.listaimg=wxImageList(16, 16) 852:   self.nas=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nas.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 853:   self.nphp=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nphp.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 854:   self.nasp=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nasp.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 855:   self.npython=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"npython.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 856:   self.ntext=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"ntext.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 857:   self.nc=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nc.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 858:   self.nhtml=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nhtml.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 859:   self.nsql=self.listaimg.Add(wxBitmap(files['default_dir']+files['icon']+"/"+"nsql.gif", wxBITMAP_TYPE_ANY), mask = wxNullBitmap) 860:   self.notebook_1.SetImageList(self.listaimg) 861:   self.nuovo("") 862:   #print str(len(self.highlight)) 863:   for filename in filenames: 864:   ciccio=split(filename, dir_separator) 865:   name=ciccio[len(ciccio)-1] 866:   self.apertura_pagina(name, filename, "") 867:   868:  
869:  #_________________________________________________________________definizione metodi di utilita' 870:   def nuovo(self, evt): 871:   self.generate_tab("") 872:   self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/text") 873:   874:   def generate_tab(self, ev): 875:   numero=len(self.style_text) 876:   self.panel.append(wxPanel(self.notebook_1, -1)) 877:   ID=wxNewId() 878:   self.style_text.append(MySTC(self.panel[numero], ID)) 879:   EVT_STC_CHARADDED(self.style_text[numero], ID, self.update_text) 880:   EVT_STC_UPDATEUI(self.style_text[numero], ID, self.OnUpdateUI) 881:   ############# 882:   dt = MyFileDropTarget(self) 883:   self.style_text[numero].SetDropTarget(dt) 884:   ############ 885:   ####EVT_STC_UPDATEUI(self.style_text[numero], ID, self.update_text) 886:   self.style_text[numero].syntaxo=self.default_syntax 887:   sizer=wxBoxSizer(wxHORIZONTAL) 888:   sizer.Add(self.style_text[numero], 1, wxEXPAND, 0) 889:   self.notebook_1.AddPage(self.panel[numero], "nuovo_documento"+str(numero), imageId =self.ntext) 890:   self.panel[numero].SetSizer(sizer) 891:   if(numero==0): 892:   self.frame_1_toolbar.EnableTool(502, 1) 893:   self.frame_1_toolbar.EnableTool(503, 1) 894:   self.frame_1_toolbar.EnableTool(504, 1) 895:   self.frame_1_toolbar.EnableTool(505, 1) 896:   self.frame_1_toolbar.EnableTool(506, 1) 897:   self.frame_1_toolbar.EnableTool(507, 1) 898:   self.frame_1_toolbar.EnableTool(508, 1) 899:   self.combobox.SetSelection(self.default_syntax) 900:   if wxPlatform == 'WXMSW': 901:   pippo=self.notebook_1.GetSize() #_____PEZZO DI CODICE PER FARLO FUNZIONARE SU WIN 902:   self.notebook_1.SetSize((pippo[0], pippo [1]-1)) # 903:   self.notebook_1.SetSize(pippo) # 904:   self.style_text[numero].SetIndent(identation) ###setta la larghezze del tab 905:   self.style_text[numero].SetIndentationGuides(show_identation) ###fa' vedere le linee di indentazione 906:   self.style_text[numero].SetUseTabs(only_space) 907:   if(wordwraping==0): 908:   self.style_text[numero].SetWrapMode(wxSTC_WRAP_NONE) 909:   else: 910:   self.style_text[numero].SetWrapMode(wxSTC_WRAP_WORD) 911:   #self.notebook_1.SetPageImage(numero, self.ntext) 912:   self.notebook_1.SetSelection(numero) 913:   self.style_text[numero].modify=0 914:   915:   def page_change(self, ev): 916:   self.Refresh() 917:   self.current_tab=self.notebook_1.GetSelection() 918:   self.combobox.SetSelection(self.style_text[self.current_tab].syntaxo) 919:   if(self.style_text[self.current_tab].CanUndo()==0): 920:   self.menubar.Enable(9, 0) 921:   else: 922:   self.menubar.Enable(9, 1) 923:   if(self.style_text[self.current_tab].CanRedo()==0): 924:   self.menubar.Enable(10, 0) 925:   else: 926:   self.menubar.Enable(10, 1) 927:   self.style_text[self.current_tab].SetFocus() #############per ripristinare il puntatore 928:   929:   def update_text(self, ev): 930:   self.style_text[self.current_tab].modify=1 931:   if(self.style_text[self.current_tab].CanUndo()==0): 932:   self.menubar.Enable(9, 0) 933:   else: 934:   self.menubar.Enable(9, 1) 935:   if(self.style_text[self.current_tab].CanRedo()==0): 936:   self.menubar.Enable(10, 0) 937:   else: 938:   self.menubar.Enable(10, 1) 939:   ###################################################### 940:   char1 = ev.GetKey() 941:   if char1 == 10: 942:   self.do_auto_indent(self.style_text[self.current_tab].GetUseTabs(), self.style_text[self.current_tab].GetTabWidth()) 943:   944:   def OnUpdateUI(self, evt): 945:   braceAtCaret = -1 946:   braceOpposite = -1 947:   charBefore = None 948:   caretPos = self.style_text[self.current_tab].GetCurrentPos() 949:   if caretPos > 0: 950:   charBefore = self.style_text[self.current_tab].GetCharAt(caretPos - 1) 951:   styleBefore = self.style_text[self.current_tab].GetStyleAt(caretPos - 1) 952:   if charBefore and chr(charBefore) in "[]{}()" and styleBefore == wxSTC_P_OPERATOR: 953:   braceAtCaret = caretPos - 1 954:   if braceAtCaret < 0: 955:   charAfter = self.style_text[self.current_tab].GetCharAt(caretPos) 956:   styleAfter = self.style_text[self.current_tab].GetStyleAt(caretPos) 957:   if charAfter and chr(charAfter) in "[]{}()" and styleAfter == wxSTC_P_OPERATOR: 958:   braceAtCaret = caretPos 959:   if braceAtCaret >= 0: 960:   braceOpposite = self.style_text[self.current_tab].BraceMatch(braceAtCaret) 961:   if braceAtCaret != -1 and braceOpposite == -1: 962:   self.style_text[self.current_tab].BraceBadLight(braceAtCaret) 963:   else: 964:   self.style_text[self.current_tab].BraceHighlight(braceAtCaret, braceOpposite) 965:   self.line=self.style_text[self.current_tab].GetCurrentLine()+1 966:   self.position=self.style_text[self.current_tab].GetCurrentPos() 967:   self.row=self.style_text[self.current_tab].GetColumn(self.position) 968:   frame_1_statusbar_fields = [linea+": "+str(self.line)+" "+colonna+": "+str(self.row)+""] 969:   for i in range(len(frame_1_statusbar_fields)): 970:   self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], 1) 971:   972:   973:   def do_auto_indent(self, usingTabs, currentTabWidth): 974:   if (self.conta_sp_righe(self.current_tab)>35): 975:   self.style_text[self.current_tab].SetMarginWidth(1, self.conta_sp_righe(self.current_tab)) 976:   self.current_margin=self.conta_sp_righe(self.current_tab) 977:   lineNo = self.style_text[self.current_tab].GetCurrentLine() 978:   if lineNo > 0: 979:   currentIndent = self.style_text[self.current_tab].GetLineIndentation(lineNo - 1) 980:   if currentIndent == 0: 981:   return 982:   self.style_text[self.current_tab].SetLineIndentation(lineNo, currentIndent) 983:   pos = self.style_text[self.current_tab].GetLineIndentPosition(lineNo) 984:   self.style_text[self.current_tab].SetSelectionStart(pos) 985:   self.style_text[self.current_tab].SetSelectionEnd(pos) 986:   return 1 987:  ###################################################### 988:   def close_tab(self, numero): 989:   if(self.style_text[self.current_tab].modify==0): 990:   self.notebook_1.DeletePage(numero) 991:   del self.style_text[numero] 992:   del self.panel[numero] 993:   else: 994:   file=open(files['default_dir']+"/"+files['languages']+"/"+files['language_error'], "r") 995:   stringa=file.readlines() 996:   file.close() 997:   dlg= wxMessageDialog(self,self.notebook_1.GetPageText(numero)+" "+stringa[9], stringa[8], wxYES_NO) 998:   if dlg.ShowModal() == wxID_YES: 999:   self.save_as_file("") 1000: dlg.Destroy() 1001: self.notebook_1.DeletePage(numero) 1002: del self.style_text[numero] 1003: del self.panel[numero] 1004: 1005: def close_all(self, evt): 1006: cycle=range(len(self.style_text)) 1007: for i in cycle: 1008: self.close_single("") 1009: 1010: def save_all(self, evt): 1011: ciccio=self.current_tab 1012: cycle=range(len(self.style_text)) 1013: for i in cycle: 1014: self.notebook_1.SetSelection(i) 1015: self.save_file("") 1016: self.notebook_1.SetSelection(ciccio) 1017:
1018: def close_single(self, evt): 1019: control=self.current_tab 1020: if(len(self.style_text)==1): ####serve per chiudere l'ultimo tab 1021: control=0 1022: self.close_tab(control) 1023: if(control!=0): 1024: self.current_tab=control-1 1025: else: 1026: self.current_tab=control 1027: if(len(self.style_text)==0): 1028: self.frame_1_toolbar.EnableTool(502, 0) 1029: self.frame_1_toolbar.EnableTool(503, 0) 1030: self.frame_1_toolbar.EnableTool(504, 0) 1031: self.frame_1_toolbar.EnableTool(505, 0) 1032: self.frame_1_toolbar.EnableTool(506, 0) 1033: self.menubar.Enable(9, 0) 1034: self.menubar.Enable(10, 0) 1035: 1036: def change_highlight(self, ev): 1037: #try: 1038: highlight=self.combobox.GetValue() 1039: ########
-siccome non riesco a cambiare l'highlight moemntaneamente distruggo l'oggetto e lo ricreo 1040: pippo=self.style_text[self.current_tab].modify 1041: ciccio=self.style_text[self.current_tab].GetText() 1042: size=self.style_text[self.current_tab].GetSize() 1043: default_path=self.style_text[self.current_tab].dir_to_file 1044: linea_visibile=self.style_text[self.current_tab].GetLineEndPosition(self.style_text[self.current_tab].GetFirstVisibleLine()) 1045: X_offset=self.style_text[self.current_tab].GetXOffset() 1046: self.style_text[self.current_tab].Destroy() 1047: ID=wxNewId() 1048: self.style_text[self.current_tab]=MySTC(self.panel[self.current_tab], ID) 1049: EVT_STC_CHARADDED(self.style_text[self.current_tab], ID, self.update_text) 1050: sizer=wxBoxSizer(wxHORIZONTAL) 1051: sizer.Add(self.style_text[self.current_tab], ID, wxEXPAND, 0) 1052: self.panel[self.current_tab].SetSizer(sizer) 1053: self.panel[self.current_tab].SetAutoLayout(1) 1054: self.style_text[self.current_tab].SetSize(size) 1055: self.style_text[self.current_tab].syntax(files['default_dir']+"/"+files['highlight']+"/"+highlight) 1056: self.style_text[self.current_tab].SetText(ciccio) 1057: self.style_text[self.current_tab].syntaxo=self.highlight.index(highlight) 1058: self.style_text[self.current_tab].dir_to_file=default_path 1059: self.style_text[self.current_tab].SetSelection(-1, -1) #### 1060: self.style_text[self.current_tab].SetSelection(linea_visibile, linea_visibile) 1061: self.style_text[self.current_tab].SetSelection(self.position, self.position) 1062: self.notebook_1.SetSelection(self.current_tab) 1063: self.style_text[self.current_tab].SetFocus() 1064: self.notebook_1.SetSelection(self.current_tab) 1065: self.style_text[self.current_tab].SetXOffset(X_offset) 1066: self.style_text[self.current_tab].SetFocus() #### 1067: self.style_text[self.current_tab].modify=pippo 1068: EVT_STC_UPDATEUI(self.style_text[self.current_tab], ID, self.OnUpdateUI) 1069: if(self.conta_sp_righe(self.current_tab)>35): 1070: self.style_text[self.current_tab].SetMarginWidth(1, self.conta_sp_righe(self.current_tab)) 1071: self.current_margin=self.conta_sp_righe(self.current_tab) 1072: #sempre per i fold 1073: #except: 1074: #print "errore" 1075: 1076: def ric_extension(self, name_file): 1077: estensione=split(name_file, '.') 1078: estensione=estensione[-1] 1079: ext=estensioni.keys() 1080: for i in ext: 1081: for n in estensioni[i]: 1082: if(lower(estensione)==n): 1083: return "n"+replace(i, "++", "") 1084: return "ntext" 1085:
1086: def apriFile( self, event ): 1087: dlg = wxFileDialog( self, style=wxOPEN|wxFILE_MUST_EXIST, defaultDir =self.dir_to_open ,wildcard='TXT files ()||Tutti i files ()|' ) 1088: dlg.ShowModal() 1089: fileName = dlg.GetFilename() 1090: all_path=dlg.GetPath() 1091: dire=dlg.GetDirectory() 1092: dlg.Destroy() 1093: if( fileName == None or fileName == "" ): 1094: return 1095: else: 1096: self.apertura_pagina(fileName, all_path, dire) 1097: self.dir_to_open=dire 1098: self.current_margin=self.conta_sp_righe(len(self.style_text)-1) 1099: if(self.current_margin>35): 1100: self.style_text[len(self.style_text)-1].SetMarginWidth(1, self.conta_sp_righe(len(self.style_text)-1)) 1101:
1102:
1103:
1104: def conta_sp_righe(self, tabloid): 1105: righe=self.style_text[tabloid].GetLineCount() 1106: largh=self.style_text[tabloid].TextWidth(wxSTC_STYLE_LINENUMBER,str(righe)) 1107: return largh+5 1108: 1109: 1110: def apertura_pagina(self, fileName, all_path, dire): 1111: try: 1112: #_____________________righe per il buckup del file 1113: numb=randint(1000000,999999999) 1114: file=open(files['default_dir']+"/"+"buckup/buckup"+str(fileName)+str(numb)+".bck", "w") 1115: file.write(open(all_path).read()) 1116: file.close() 1117: #_________________________fine righe 1118: if(len(self.style_text)!=1 or self.notebook_1.GetPageText(0)!="nuovo_documento_0" or self.style_text[0].modify!=0 or len(self.style_text[0].GetText())!=0): 1119: self.generate_tab("") 1120: self.style_text[len(self.style_text)-1].open_file(all_path, dire, self.default_syntax) 1121: ciccio=split(fileName, ".") 1122: ext=estensioni.keys() 1123: self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/"+"text") 1124: for i in ext: #####associo se gia' presente nelle estensioni standard la colorazione in base all'estensione 1125: for n in estensioni[i]: 1126: if(lower(ciccio[-1])==n): 1127: self.style_text[len(self.style_text)-1].syntaxo=self.highlight.index(i) 1128: self.style_text[len(self.style_text)-1].syntax(files['default_dir']+"/"+files['highlight']+"/"+i) 1129: self.combobox.SetSelection(self.highlight.index(i)) 1130: self.notebook_1.SetPageText(len(self.style_text)-1, fileName) 1131: self.notebook_1.SetPageImage(len(self.style_text)-1, eval("self."+self.ric_extension(all_path))) 1132: self.style_text[len(self.style_text)-1].modify=0 1133: self.style_text[len(self.style_text)-1].EmptyUndoBuffer() 1134: except: 1135: error_window(11, self) 1136: 1137:
1138: def save_file(self, evt): #metodo per salvare file 1139: try: 1140: file=open(self.style_text[self.current_tab].dir_to_file, "w") 1141: file.write(self.style_text[self.current_tab].GetText()) 1142: file.close() 1143: #linea_visibile=self.style_text[self.current_tab].GetLineEndPosition(self.style_text[self.current_tab].GetFirstVisibleLine()) 1144: ciccio=split(self.style_text[self.current_tab].dir_to_file, ".") 1145: ext=estensioni.keys() 1146: for i in ext: #####associo se gia' presente nelle estensioni standard la colorazione in base all'estensione 1147: for n in estensioni[i]: 1148: if(ciccio[-1]==n): 1149: self.combobox.SetSelection(self.highlight.index(i)) 1150: self.change_highlight("") 1151: #self.style_text[self.current_tab].SetSelection(-1, -1) 1152: #self.style_text[self.current_tab].SetSelection(linea_visibile, linea_visibile) 1153: #self.style_text[self.current_tab].SetSelection(self.position, self.position) 1154: #self.notebook_1.SetSelection(self.current_tab) 1155: #self.style_text[self.current_tab].SetFocus() 1156: self.style_text[self.current_tab].modify=0 1157: except: 1158: self.save_as_file("") 1159:
1160: def save_as_file(self, evt): 1161: dlg = wxFileDialog( self, style=wxSAVE | wxOVERWRITE_PROMPT,defaultDir=self.style_text[self.current_tab].dire ,wildcard='' ) 1162: dlg.ShowModal() 1163: all_path=dlg.GetPath() 1164: fileName=dlg.GetFilename() 1165: dire=dlg.GetDirectory() 1166: dlg.Destroy() 1167: if(fileName == None or fileName == ""): 1168: return 1169: else: 1170: try: 1171: self.style_text[self.current_tab].dire=dire 1172: self.style_text[self.current_tab].dir_to_file=all_path 1173: self.notebook_1.SetPageText(self.current_tab, fileName) 1174: self.notebook_1.SetPageImage(self.current_tab, eval("self."+self.ric_extension(all_path))) 1175: ################### 1176: if wxPlatform == 'WXMSW': 1177: pippo=self.notebook_1.GetSize() #_______________PEZZO DI CODICE PER FARLO FUNZIONARE SU WIN 1178: self.notebook_1.SetSize((pippo[0], pippo [1]-1)) # 1179: self.notebook_1.SetSize(pippo) # 1180: ################### 1181: self.save_file("") 1182: except: 1183: error_window(7, self) 1184:
1185: def quit(self, evt): 1186: self.close_all("") 1187: self.Destroy() 1188:
1189:
1190: def only_space_tab(self, evt): 1191: global only_space 1192: if(only_space==0): 1193: only_space=1 1194: else: 1195: only_space=0 1196: cycle=range(len(self.style_text)) 1197: for i in cycle: 1198: self.style_text[i].SetUseTabs(only_space) 1199: self.edit_files(2,"only_space=", only_space) 1200:
1201: def wordwrap(self, evt): 1202: global wordwraping 1203: if(wordwraping==0): 1204: for i in range(len(self.style_text)): 1205: self.style_text[i].SetWrapMode(wxSTC_WRAP_WORD) 1206: self.edit_files(3,"wordwraping=", 1) 1207: wordwraping=1 1208: else: 1209: for i in range(len(self.style_text)): 1210: self.style_text[i].SetWrapMode(wxSTC_WRAP_NONE) 1211: self.edit_files(3,"wordwraping=", 0) 1212: wordwraping=0 1213: 1214: 1215: def edit_files(self, riga, variabile, stringa): 1216: ciccio=open(files['default_dir']+"/"+files['languages']+"/"+files['global'], "r") 1217: text=ciccio.readlines() 1218: ciccio.close() 1219: text[riga]=variabile+str(stringa)+"\n" 1220: ciccio=open(files['default_dir']+"/"+files['languages']+"/"+files['global'], "w") 1221: cycle=range(len(text)) 1222: for i in cycle: 1223: ciccio.write(text[i]) 1224: ciccio.close() 1225: 1226: 1227: def view_identation(self, evt): 1228: global show_identation 1229: if(show_identation==0): 1230: show_identation=1 1231: else: 1232: show_identation=0 1233: cycle=range(len(self.style_text)) 1234: for i in cycle: 1235: self.style_text[i].SetIndentationGuides(show_identation) 1236: self.edit_files(1,"show_identation=", show_identation) 1237:
1238: def font_config(self, evt): 1239: data= wxFontData() 1240: dlg= wxFontDialog(self, data) 1241: if dlg.ShowModal()==wxID_OK: 1242: data=dlg.GetFontData() 1243: data= data.GetChosenFont() 1244: font=data.GetFaceName() 1245: size=data.GetPointSize() 1246: global faces 1247: faces={'font' : font, 'size' : size} 1248: corrente=self.current_tab 1249: ciccio=range(len(self.style_text)) 1250: for i in ciccio: 1251: self.notebook_1.SetSelection(i) 1252: self.change_highlight("") 1253: self.notebook_1.SetSelection(corrente) 1254: file=open(files['default_dir']+"/"+files['font'], "w") 1255: file.write("faces={'font' : '"+font+"', 'size' : "+str(size)+"}") 1256: file.close() 1257: 1258: def tab_space(self, evt): 1259: global identation 1260: dlg= wxTextEntryDialog(self, len_words(2), len_words(1)) 1261: dlg.SetValue(str(identation)) 1262: if dlg.ShowModal() == wxID_OK: 1263: try: 1264: identation=int(strip(dlg.GetValue())) 1265: except: 1266: error_window(10, self) 1267: cycle=range(len(self.style_text)) 1268: for i in cycle: 1269: self.style_text[i].SetIndent(identation) 1270: self.edit_files(0,"identation=", identation) 1271: dlg.Destroy() 1272: 1273: def info(self, event): 1274: ciccio = win_info(self) 1275: ciccio.Show(1) 1276: #_________________________________________________________________________________________metodi classici per gli editor 1277:
1278:
1279: def print_setup(self, evt): 1280: #testo="

"
1281:          pippo=cgi.escape(self.style_text[self.current_tab].GetText())
1282:          testo=replace(pippo, "\n", "
") 1283: testo=replace(testo, "\r\n", "
") 1284: testo=replace(testo, " ", "  ") 1285: testo=replace(testo, "\t", "     ") 1286: #testo=testo+"
" 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("\n\n\n\n"+titolo+"\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\n\n<style type="text/css">\n") 1479: pippo.write(".sf{background-color: "+sfondo+"; padding: 5px; border: 1px solid "+bordo+"; margin-right: 5px; font: "+grandezza+"px "+font+", Verdana,Sans-serif; color: #000000; }\n") 1480: for d in self.style_text[self.current_tab].colori.keys(): 1481: if(len(self.style_text[self.current_tab].colori[d])==7): 1482: stile_css=self.style_text[self.current_tab].colori[d]+";" 1483: else: 1484: stile_css=self.style_text[self.current_tab].colori[d][0:7]+"; " 1485: if(find(self.style_text[self.current_tab].colori[d], "bold")!=-1): 1486: stile_css+="FONT-WEIGHT: bold; " 1487: if(find(self.style_text[self.current_tab].colori[d], "underline")!=-1): 1488: stile_css+="TEXT-DECORATION: underline; " 1489: if(find(self.style_text[self.current_tab].colori[d], "back")!=-1): 1490: stile_css+="background: #E0C0E0; "
1491:
1492: pippo.write(".a"+str(d)+"{font: "+grandezza+"px "+font+", Verdana,Sans-serif; color: "+stile_css+"}\n") 1493:
1494: pippo.write("\n\n\n<table cellpadding='0' cellspacing='0' class="sf">\n\n") 1495: #if(righe==1): 1496: #tot_righe=count(pippone, "\n")+1 1497: #pippo.write("") 1498: #for i in range(tot_righe): 1499: #pippo.write(str(i)+":
") 1500: #pippo.write("\n") 1501: pippo.write("
")
1502:         riga=1
1503:         tot_righe=len(str(count(pippone, "\n")+1))
1504:         for i in pippone:
1505:           indice=self.style_text[self.current_tab].GetStyleAt(c)
1506:  	 c+=1
1507:  	 #self.style_text[self.current_tab].SetSelection(self.style_text[self.current_tab].GetCurrentPos()+1,self.style_text[self.current_tab].GetCurrentPos()+1)
1508:  	 #try:
1509:  	  #ciclone+=""+i+""
1510:  	  #ciclone+=str(c)+"--"+str(indice)+i+"\n"
1511:  	 #elif(i==" "):
1512:  	    #pippo.write(" ")
1513:  	 #elif(i=="\t"):
1514:  	    #pippo.write(" "identation)
1515:  	 #else:
1516:  	 if(i=="\n"):
1517:  	    if (righe==1):
1518:  	      pippo.write("\n"+str(riga)+":  "+str(" ")(tot_righe-len(str(riga))))
1519:  	      ultimo_stile=""
1520:  	      riga+=1
1521:  	    else:
1522:  	      pippo.write("\n")
1523:  	 elif(ultimo_stile==indice):
1524:  	      pippo.write(cgi.escape(i, true))
1525:  	 elif(ultimo_stile!=""):
1526:  	      pippo.write(""+cgi.escape(i, true))
1527:  	      ultimo_stile=indice
1528:  	 else:
1529:  	      if(riga==1 & righe==1):
1530:  	        pippo.write(str(riga)+":  "+str(" ")*(tot_righe-len(str(riga))))
1531:  		riga+=1
1532:  	      pippo.write(""+cgi.escape(i, true))
1533:  	      ultimo_stile=indice 
1534:  	 #except:
1535:  	  #ciclone+=""+cgi.escape(i)+""
1536:  	  #pippo.write(""+i+"")
1537:  	  #print "cazzo"
1538:         pippo.write("
\n\n\n") 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: