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, " ", " ") 1285: testo=replace(testo, "\t", " ") 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(" ") 1513: #elif(i=="\t"): 1514: #pippo.write(" "*identation) 1515: #else: 1516: if(i=="\n"): 1517: if (righe==1): 1518: pippo.write("</span>\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("</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(" ")*(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: |