# Programmer: Daniel Pozmanter # E-mail: drpython@bluebottle.com # Note: You must reply to the verification e-mail to get through. # # Copyright 2003-2005 Daniel Pozmanter # # Distributed under the terms of the GPL (GNU Public License) # # DrPython is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ToolBar File import os.path import drPrefsFile import wx import drScrolledMessageDialog def getToolBarList(userpreferencesdirectory): toolbarfile = userpreferencesdirectory + "/toolbar.dat" if not os.path.exists(toolbarfile): return ["New", "Open", "Reload File", "Close", "Save", \ "", "Print File", "Print Prompt", \ "", "Find", "Replace", \ "", "", "Preferences", "Toggle Prompt", "Toggle View Whitespace", \ "", "", "", "Check Syntax", "Run", "Set Arguments", "Python", \ "End"] ToolBarList = [] f = file(toolbarfile, 'r') line = f.readline().rstrip() while (len(line) > 0): ToolBarList.append(line) line = f.readline().rstrip() f.close() return ToolBarList def getCustomBitmaps(userpreferencesdirectory): filename = userpreferencesdirectory + "/toolbar.custom.icons.dat" if not os.path.exists(filename): return [], [], [] nameArray = [] fileArray16 = [] fileArray24 = [] f = file(filename, 'r') line = f.readline() while (len(line) > 0): nameArray.append(drPrefsFile.ExtractPreferenceFromText(line, "Name")) fileArray16.append(drPrefsFile.ExtractPreferenceFromText(line, '16')) fileArray24.append(drPrefsFile.ExtractPreferenceFromText(line, '24')) line = f.readline() f.close() return nameArray, fileArray16, fileArray24 def getBitmapFileArray(bitmapNames, defaultbitmapdirectory, iconsize, customNames, customFiles): iconsizestr = str(iconsize) fileArray = [] l = len(bitmapNames) x = 0 while (x < l): if not bitmapNames[x] == "": if bitmapNames[x] in customNames: i = customNames.index(bitmapNames[x]) t = customFiles[i] if not os.path.exists(t): t = defaultbitmapdirectory + "/" + iconsizestr + "/" + bitmapNames[x] + ".png" else: t = defaultbitmapdirectory + "/" + iconsizestr + "/" + bitmapNames[x] + ".png" if not os.path.exists(t): t = defaultbitmapdirectory + "/" + iconsizestr + "/Default.png" fileArray.append(t) else: fileArray.append("") x = x + 1 return fileArray def AddandReturn(frame, bitmapFileArray, IDNUM, count, title = ""): if len(title) > 0: frame.toolbar.AddSimpleTool(IDNUM, wx.BitmapFromImage(wx.Image(bitmapFileArray[count], wx.BITMAP_TYPE_PNG)), title) return IDNUM frame.toolbar.AddSimpleTool(IDNUM, wx.BitmapFromImage(wx.Image(bitmapFileArray[count], wx.BITMAP_TYPE_PNG)), frame.ToolBarList[count]) return IDNUM def SetupToolBar(frame): try: names, f16, f24 = getCustomBitmaps(frame.userpreferencesdirectory) if frame.prefs.iconsize == 16: bitmapFileArray = getBitmapFileArray(frame.ToolBarList, frame.bitmapdirectory, frame.prefs.iconsize, names, f16) else: bitmapFileArray = getBitmapFileArray(frame.ToolBarList, frame.bitmapdirectory, frame.prefs.iconsize, names, f24) frame.toolbar.SetToolBitmapSize(wx.Size(frame.prefs.iconsize, frame.prefs.iconsize)) ToolBarIdList = [] x = 0 l = len(frame.ToolBarList) while x < l: if frame.ToolBarList[x] == "": frame.toolbar.AddSeparator() ToolBarIdList.append(-300) elif frame.ToolBarList[x] == "New": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_NEW, x)) elif frame.ToolBarList[x] == "Open": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_OPEN, x)) elif frame.ToolBarList[x] == "Open Imported Module": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_OPEN_IMPORTED_MODULE, x)) elif frame.ToolBarList[x] == "Reload File": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_RELOAD, x)) elif frame.ToolBarList[x] == "Close": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CLOSE, x)) elif frame.ToolBarList[x] == "Save": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SAVE, x)) elif frame.ToolBarList[x] == "Save As": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SAVE_AS, x)) elif frame.ToolBarList[x] == "Save All Documents": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SAVE_ALL, x)) elif frame.ToolBarList[x] == "Save Prompt Output To File": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SAVE_PROMPT, x)) elif frame.ToolBarList[x] == "Restore From Backup": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_RESTORE_FROM_BACKUP, x)) elif frame.ToolBarList[x] == "Close All Documents": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CLOSE_ALL, x)) elif frame.ToolBarList[x] == "Close All Other Documents": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CLOSE_ALL_OTHER_TABS, x)) elif frame.ToolBarList[x] == "Print Setup": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PRINT_SETUP, x)) elif frame.ToolBarList[x] == "Print File": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PRINT, x)) elif frame.ToolBarList[x] == "Print Prompt": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PRINTPROMPT, x)) elif frame.ToolBarList[x] == "Exit": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_EXIT, x)) elif frame.ToolBarList[x] == "Next Document": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_NEXT_TAB, x)) elif frame.ToolBarList[x] == "Previous Document": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PREVIOUS_TAB, x)) elif frame.ToolBarList[x] == "First Document": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIRST_TAB, x)) elif frame.ToolBarList[x] == "Last Document": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_LAST_TAB, x)) elif frame.ToolBarList[x] == "Find": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIND, x)) elif frame.ToolBarList[x] == "Replace": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_REPLACE, x)) elif frame.ToolBarList[x] == "Find Next": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIND_NEXT, x)) elif frame.ToolBarList[x] == "Find Previous": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIND_PREVIOUS, x)) elif frame.ToolBarList[x] == "Insert Regular Expression": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_INSERT_REGEX, x)) elif frame.ToolBarList[x] == "Insert Separator": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_INSERT_SEPARATOR, x)) elif frame.ToolBarList[x] == "Go To": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO, x)) elif frame.ToolBarList[x] == "Go To Block Start": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_BLOCK_START, x)) elif frame.ToolBarList[x] == "Go To Block End": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_BLOCK_END, x)) elif frame.ToolBarList[x] == "Go To Class Start": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_CLASS_START, x)) elif frame.ToolBarList[x] == "Go To Class End": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_CLASS_END, x)) elif frame.ToolBarList[x] == "Go To Def Start": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_DEF_START, x)) elif frame.ToolBarList[x] == "Go To Def End": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_GOTO_DEF_END, x)) elif frame.ToolBarList[x] == "Source Browser Go To": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SOURCEBROWSER_GOTO, x)) elif frame.ToolBarList[x] == "Find And Complete": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIND_AND_COMPLETE, x)) elif frame.ToolBarList[x] == "Comment": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_COMMENT_REGION, x)) elif frame.ToolBarList[x] == "UnComment": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_UNCOMMENT_REGION, x)) elif frame.ToolBarList[x] == "Indent": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_INDENT_REGION, x)) elif frame.ToolBarList[x] == "Dedent": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_DEDENT_REGION, x)) elif frame.ToolBarList[x] == "Undo": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_UNDO, x)) elif frame.ToolBarList[x] == "Redo": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_REDO, x)) elif frame.ToolBarList[x] == "Uppercase": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_UPPERCASE, x)) elif frame.ToolBarList[x] == "Lowercase": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_LOWERCASE, x)) elif frame.ToolBarList[x] == "Find And Complete": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FIND_AND_COMPLETE, x)) elif frame.ToolBarList[x] == "Dynamic DrScript": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.drscriptmenu.ID_DYNAMIC_SCRIPT, x)) elif frame.ToolBarList[x] == "Copy": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_COPY, x)) elif frame.ToolBarList[x] == "Cut": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CUT, x)) elif frame.ToolBarList[x] == "Paste": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PASTE, x)) elif frame.ToolBarList[x] == "Delete": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_DELETE, x)) elif frame.ToolBarList[x] == "Select All": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SELECT_ALL, x)) elif frame.ToolBarList[x] == "Select None": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SELECT_NONE, x)) elif frame.ToolBarList[x] == "Zoom In": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_ZOOM_IN, x)) elif frame.ToolBarList[x] == "Zoom Out": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_ZOOM_OUT, x)) elif frame.ToolBarList[x] == "Toggle Fold": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_TOGGLE_FOLD, x)) elif frame.ToolBarList[x] == "Fold All": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_FOLD_ALL, x)) elif frame.ToolBarList[x] == "Expand All": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_EXPAND_ALL, x)) elif frame.ToolBarList[x] == "Select All": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SELECT_ALL, x)) elif frame.ToolBarList[x] == "View In Left Panel": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_VIEW_IN_LEFT_PANEL, x)) elif frame.ToolBarList[x] == "View In Right Panel": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_VIEW_IN_RIGHT_PANEL, x)) elif frame.ToolBarList[x] == "View In Top Panel": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_VIEW_IN_TOP_PANEL, x)) elif frame.ToolBarList[x] == "Toggle Source Browser": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_TOGGLE_SOURCEBROWSER, x)) elif frame.ToolBarList[x] == "Preferences": #Fixed by limodou: ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PREFS, x)) #End limodou elif frame.ToolBarList[x] == "Customize Shortcuts": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SHORTCUTS, x)) elif frame.ToolBarList[x] == "Customize Pop Up Menu": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_POPUP, x)) elif frame.ToolBarList[x] == "Customize ToolBar": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CUSTOMIZE_TOOLBAR, x)) elif frame.ToolBarList[x] == "Toggle Prompt": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_TOGGLE_PROMPT, x)) elif frame.ToolBarList[x] == "Toggle View Whitespace": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_TOGGLE_VIEWWHITESPACE, x)) elif frame.ToolBarList[x] == "Run": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_RUN, x)) elif frame.ToolBarList[x] == "Set Arguments": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_SET_ARGS, x)) elif frame.ToolBarList[x] == "Python": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PYTHON, x)) elif frame.ToolBarList[x] == "End": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_END, x)) elif frame.ToolBarList[x] == "Check Syntax": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CHECK_SYNTAX, x)) elif frame.ToolBarList[x] == "Close Prompt": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_CLOSE_PROMPT, x)) elif frame.ToolBarList[x] == "Help": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_HELP, x)) elif frame.ToolBarList[x] == "View Python Docs": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_PYTHON_DOCS, x)) elif frame.ToolBarList[x] == "View WxWidgets Docs": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_WXWIDGETS_DOCS, x)) elif frame.ToolBarList[x] == "View Regular Expression Howto": ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_REHOWTO_DOCS, x)) elif frame.ToolBarList[x].find(":") > -1: try: title = frame.ToolBarList[x][frame.ToolBarList[x].find(":")+11:] i = frame.drscriptmenu.titles.index(title) ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.drscriptmenu.ID_SCRIPT_BASE+i, x, title)) except: pass elif frame.ToolBarList[x].find(":") > -1: try: title = frame.ToolBarList[x][frame.ToolBarList[x].find(":")+9:] ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_OTHER+x, x, title)) frame.Bind(wx.EVT_MENU, frame.OnToolBar, id=frame.ID_OTHER+x) except: pass else: ToolBarIdList.append(AddandReturn(frame, bitmapFileArray, frame.ID_OTHER+x, x)) frame.Bind(wx.EVT_MENU, frame.OnToolBar, id=frame.ID_OTHER+x) x = x + 1 frame.toolbar.Realize() except: drScrolledMessageDialog.ShowMessage(frame, "Error Loading the ToolBar.", "DrPython Error") return [] return ToolBarIdList