def __init__(self, parent, id=-1, title='Pinguino',
                 pos=wx.DefaultPosition ,size=(600, 600),
                 style=wx.DEFAULT_FRAME_STYLE):

        # ----------------------------------------------------------------------
        # load settings from config file
        # ----------------------------------------------------------------------
        self.config = wx.FileConfig(    localFilename = APP_CONFIG,
                                        style = wx.CONFIG_USE_LOCAL_FILE)
        self.filehistory = wx.FileHistory()
        self.filehistory.Load(self.config)
        framesize = (    self.config.ReadInt('Window/Width', -1),
                        self.config.ReadInt('Window/Height', -1))
        framepos = (    self.config.ReadInt('Window/Posx', -1),
                        self.config.ReadInt('Window/Posy', -1))
        outputsize = (    self.config.ReadInt('Output/Width', -1),
                        self.config.ReadInt('Output/Height', -1))
        self.theme =     self.config.Read('Theme/name')
        if self.theme == '':
            self.theme = THEME_DEFAULT
                    
        wx.Frame.__init__(self, parent, id, title, framepos, framesize, style)

        loc = locale.getdefaultlocale()[0][0:2]
        self.lang = gettext.translation('pinguino', sys.path[0]+'/locale', languages=[loc], fallback=True)
        _=self.lang.ugettext

        #self.SetTitle('Pinguino '+pinguino_version)
        self.SetTitle('Qubotic - www.roboticawilde.com.ar')
        _icon = wx.EmptyIcon()
        _icon.CopyFromBitmap(wx.Bitmap(sys.path[0]+"/logo.png", wx.BITMAP_TYPE_ANY))
        self.SetIcon(_icon)           

        self._mgr = wx.aui.AuiManager(self)      
        
        self.menu = wx.MenuBar()
        
        # file menu
        self.file_menu = wx.Menu()
        self.NEW = wx.MenuItem(self.file_menu, wx.ID_NEW, _("New"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.NEW)
        self.OPEN = wx.MenuItem(self.file_menu, wx.ID_OPEN, _("Open"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.OPEN)
        self.SAVE = wx.MenuItem(self.file_menu, wx.ID_SAVE, _("Save"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.SAVE)
        self.SAVEAS = wx.MenuItem(self.file_menu, wx.ID_SAVEAS, _("Save as"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.SAVEAS)
        self.CLOSE = wx.MenuItem(self.file_menu, wx.ID_CLOSE, _("Close"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.CLOSE)
        self.EXIT = wx.MenuItem(self.file_menu, wx.ID_EXIT, _("Exit"), "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.EXIT)
        # ---file history-------------------------------------------------------
        self.filehistory.UseMenu(self.file_menu)
        self.filehistory.AddFilesToMenu()        
        self.menu.Append(self.file_menu, _("File"))

        # edit menu
        self.edit_menu = wx.Menu()
        self.UNDO = wx.MenuItem(self.edit_menu, wx.ID_UNDO, _("Undo"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.UNDO)
        self.REDO = wx.MenuItem(self.edit_menu, wx.ID_REDO, _("Redo"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.REDO)
        self.edit_menu.AppendSeparator()
        self.FIND = wx.MenuItem(self.edit_menu, wx.ID_FIND, _("Find"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.FIND)        
        self.REPLACE = wx.MenuItem(self.edit_menu, wx.ID_REPLACE, _("Replace"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.REPLACE)
        self.REPLACE.Enable(False)
        self.edit_menu.AppendSeparator()        
        self.CUT = wx.MenuItem(self.edit_menu, wx.ID_CUT, _("Cut"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.CUT)
        self.COPY = wx.MenuItem(self.edit_menu, wx.ID_COPY, _("Copy"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.COPY)
        self.PASTE = wx.MenuItem(self.edit_menu, wx.ID_PASTE, _("Paste"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.PASTE)  
        self.CLEAR = wx.MenuItem(self.edit_menu, wx.ID_CLEAR, _("Clear"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.CLEAR)
        self.SELECTALL = wx.MenuItem(self.edit_menu, wx.ID_SELECTALL, _("Select all"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.SELECTALL)                        
        self.menu.Append(self.edit_menu, _("Edit"))
        
        # preferences menu
        self.pref_menu = wx.Menu()
        # ---theme submenu
        self.theme_menu = wx.Menu()
        self.GetTheme()
        i = 0
        for th in self.themeList:
            self.THEME.append(wx.MenuItem(self.theme_menu, self.ID_THEME1 + i, th, "", wx.ITEM_CHECK))
            self.theme_menu.AppendItem(self.THEME[i])
            i = i + 1
        self.pref_menu.AppendMenu(self.ID_THEME, _("Themes"), self.theme_menu)
        # ---debug submenu
        self.debug_menu = wx.Menu()
        self.USBBULK = wx.MenuItem(self.debug_menu, self.ID_USBBULK, _("USB Bulk"), "", wx.ITEM_CHECK)
        self.debug_menu.AppendItem(self.USBBULK)
        self.USBBULK.Enable(False)
        self.CDC = wx.MenuItem(self.debug_menu, self.ID_CDC, _("CDC"), "", wx.ITEM_CHECK)
        self.debug_menu.AppendItem(self.CDC)
        self.CDC.Enable(False)
        self.pref_menu.AppendMenu(self.ID_DEBUG, _("Debug"), self.debug_menu)
        self.menu.Append(self.pref_menu, _("Preferences"))
                        
        self.HELP = wx.Menu()
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_WEBSITE, _("Website"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_BLOG, _("Blog"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_FORUM, _("Forum"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_GROUP, _("Group"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)                                      
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_WIKI, _("Wiki"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT) 
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_TUTORIAL, _("Tutorial"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_ABOUT, _("About..."), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)                                                
        self.menu.Append(self.HELP, _("Help"))
        
        self.SetMenuBar(self.menu)

        # ------------------------------------------------------------------------------
        # Load toolbar icons
        # ------------------------------------------------------------------------------

        self.DrawToolbar()
                
        # define output window
        
        self.logwindow = wx.TextCtrl(self, -1, "",wx.DefaultPosition,wx.Size(400,300), style=wx.TE_MULTILINE|wx.TE_READONLY)
        self.logwindow.SetBackgroundColour(wx.Colour(0, 0, 0))
        self.logwindow.SetForegroundColour(wx.Colour(255, 255, 255))
                
        # create a PaneInfo structure for output window
        
        PaneOutputInfo=wx.aui.AuiPaneInfo()
        PaneOutputInfo.CloseButton(False)
        PaneOutputInfo.MaximizeButton(True)
        PaneOutputInfo.MinimizeButton(True)
        PaneOutputInfo.Caption(_("Output"))
        PaneOutputInfo.Bottom()

        # create editor panel
        
        editorsize=self.GetSize()-self.logwindow.GetSize()
        editorsize=(editorsize[0],editorsize[1])
        self.EditorPanel = wx.Panel(self,-1,wx.DefaultPosition,wx.Size(400,100))
        self.pinguinobmp = wx.StaticBitmap(self.EditorPanel, -1, wx.Bitmap(sys.path[0]+"/theme/pinguinodesign.png", wx.BITMAP_TYPE_ANY))
        self.pinguinobmp.CentreOnParent(wx.BOTH) 
                
        # create a PaneInfo structure for editor window 
        # this Paneinfo will be switched when loading a file
        
        self.PaneEditorInfo=wx.aui.AuiPaneInfo()
        self.PaneEditorInfo.CloseButton(False)
        self.PaneEditorInfo.MaximizeButton(True)
        self.PaneEditorInfo.Caption(_("Editor"))
        self.PaneEditorInfo.Top()
        
        # add the panes to the manager
        self._mgr.AddPane(self.toolbar, wx.aui.AuiPaneInfo().
                          Name("toolbar").Caption("Toolbar").
                          ToolbarPane().Top().Row(1).
                          LeftDockable(False).RightDockable(False))        
        self._mgr.AddPane(self.logwindow, PaneOutputInfo, '')
        self._mgr.AddPane(self.EditorPanel, wx.CENTER , '')
        
        self.editor = editeur.editeur(self.EditorPanel, -1,self.EditorPanel.GetSize())
 
        # tell the manager to 'commit' all the changes just made
        self._mgr.Update()        
        
# ------------------------------------------------------------------------------
# Event Management
# ------------------------------------------------------------------------------

        self.Bind(wx.EVT_CLOSE, self.OnExit)
        self.Bind(wx.EVT_SIZE, self.OnResize)     
        self.Bind(wx.aui.EVT_AUI_RENDER, self.OnRender)
        
        # file menu
        self.Bind(wx.EVT_MENU, self.OnNew, self.NEW)
        self.Bind(wx.EVT_MENU, self.OnOpen, self.OPEN)
        self.Bind(wx.EVT_MENU_RANGE, self.OnFileHistory, id=wx.ID_FILE1, id2=wx.ID_FILE9) 
        self.Bind(wx.EVT_MENU, self.OnSave, self.SAVE)
        self.Bind(wx.EVT_MENU, self.OnSaveAs, self.SAVEAS)
        self.Bind(wx.EVT_MENU, self.OnClose, self.CLOSE)
        self.Bind(wx.EVT_MENU, self.OnExit, self.EXIT)
        
        # edit menu
        self.Bind(wx.EVT_MENU, self.editor.copy, self.COPY)
        self.Bind(wx.EVT_MENU, self.editor.paste, self.PASTE)
        self.Bind(wx.EVT_MENU, self.editor.cut, self.CUT)
        self.Bind(wx.EVT_MENU, self.editor.clear, self.CLEAR)       
        self.Bind(wx.EVT_MENU, self.editor.undo, self.UNDO)       
        self.Bind(wx.EVT_MENU, self.editor.redo, self.REDO)
        self.Bind(wx.EVT_MENU, self.OnFind, self.FIND)               
        self.Bind(wx.EVT_MENU, self.editor.selectall, self.SELECTALL)     

        # pref menu
        self.Bind(wx.EVT_MENU_RANGE, self.OnTheme, id=self.ID_THEME1, id2=self.ID_THEME1 + self.themeNum) 

        # icons bar
        self.Bind(wx.EVT_TOOL, self.OnVerify, id=self.ID_VERIFY)
        self.Bind(wx.EVT_TOOL, self.OnClose, id=wx.ID_CLOSE)
        self.Bind(wx.EVT_TOOL, self.OnNew, id=wx.ID_NEW)
        self.Bind(wx.EVT_TOOL, self.OnSave, id=wx.ID_SAVE)
        self.Bind(wx.EVT_TOOL, self.OnOpen, id=wx.ID_OPEN)
        self.Bind(wx.EVT_TOOL, self.OnUpload, id=self.ID_UPLOAD)
        self.Bind(wx.EVT_TOOL, self.OnFind, id=wx.ID_FIND)
        self.Bind(wx.EVT_TOOL, self.OnExit, id=wx.ID_EXIT)
        self.Bind(wx.EVT_TOOL, self.editor.undo, id=wx.ID_UNDO)
        self.Bind(wx.EVT_TOOL, self.editor.redo, id=wx.ID_REDO)
        self.Bind(wx.EVT_TOOL, self.editor.cut, id=wx.ID_CUT)
        self.Bind(wx.EVT_TOOL, self.editor.copy, id=wx.ID_COPY)
        self.Bind(wx.EVT_TOOL, self.editor.paste, id=wx.ID_PASTE)
        self.Bind(wx.EVT_TOOL, self.editor.clear, id=wx.ID_CLEAR)
        self.Bind(wx.EVT_TOOL, self.editor.selectall, id=wx.ID_SELECTALL)

        # help menu
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_WEBSITE)     # website
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_BLOG)         # blog   
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_FORUM)         # forum
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_GROUP)         # group        
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_WIKI)         # wiki
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_TUTORIAL)     # tutorial
        self.Bind(wx.EVT_MENU, self.OnAbout, self.ABOUT)
               
        # initialize all the lib pdl in /lib folder
        self.readlib()
    
        self.displaymsg(_("Welcome to ") + pinguino_version + "\n", 0);

        # check current theme in menu
        id = self.theme_menu.FindItem(self.theme)
        self.menu.Check(id, True)
Esempio n. 2
0
    def __init__(self, *args, **kwds):
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)

        loc = locale.getdefaultlocale()[0][0:2]
        lang = gettext.translation('pinguino', './locale', languages=[loc])
        lang.install()

        self.menu = wx.MenuBar()
        wxglade_tmp_menu = wx.Menu()
        self.NEW = wx.MenuItem(wxglade_tmp_menu, 20, _("New"), "",
                               wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.NEW)
        self.OPEN = wx.MenuItem(wxglade_tmp_menu, 21, _("Open"), "",
                                wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.OPEN)
        self.SAVE = wx.MenuItem(wxglade_tmp_menu, 22, _("Save"), "",
                                wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.SAVE)
        wxglade_tmp_menu.AppendSeparator()
        self.CLOSE = wx.MenuItem(wxglade_tmp_menu, 23, _("Close"), "",
                                 wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.CLOSE)
        self.EXIT = wx.MenuItem(wxglade_tmp_menu, 24, _("Exit"), "",
                                wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.EXIT)
        self.menu.Append(wxglade_tmp_menu, _("File"))

        self.LANGUAGE = wx.Menu()
        self.ENGLISH = wx.MenuItem(self.LANGUAGE, 26, _("English"), "",
                                   wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.ENGLISH)
        self.FRENCH = wx.MenuItem(self.LANGUAGE, 27, _("French"), "",
                                  wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.FRENCH)
        self.SPANISH = wx.MenuItem(self.LANGUAGE, 28, _("Spanish"), "",
                                   wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.SPANISH)
        self.PORTUGUESE = wx.MenuItem(self.LANGUAGE, 29, _("Portuguese"), "",
                                      wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.PORTUGUESE)
        self.DANISH = wx.MenuItem(self.LANGUAGE, 30, _("Danish"), "",
                                  wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.DANISH)
        self.CROATIAN = wx.MenuItem(self.LANGUAGE, 31, _("Croatian"), "",
                                    wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.CROATIAN)
        self.ITALIAN = wx.MenuItem(self.LANGUAGE, 32, _("Italian"), "",
                                   wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.ITALIAN)
        self.GERMANY = wx.MenuItem(self.LANGUAGE, 33, _("Germany"), "",
                                   wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.GERMANY)

        self.menu.Append(self.LANGUAGE, _("Language"))
        self.HELP = wx.Menu()
        self.ABOUT = wx.MenuItem(self.HELP, 25, _("About"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.menu.Append(self.HELP, _("Help"))

        self.SetMenuBar(self.menu)

        self.frame_1_statusbar = self.CreateStatusBar(1, 0)

        self.frame_1_toolbar = wx.ToolBar(self, -1)
        self.SetToolBar(self.frame_1_toolbar)
        self.frame_1_toolbar.AddLabelTool(
            100, _("Verify"),
            wx.Bitmap(sys.path[0] + "/runw5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("Verify"), "")
        self.frame_1_toolbar.AddLabelTool(
            101, _("Close"),
            wx.Bitmap(sys.path[0] + "/stop5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("Close"), "")
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddLabelTool(
            102, _("New"),
            wx.Bitmap(sys.path[0] + "/new5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("New"), "")
        self.frame_1_toolbar.AddLabelTool(
            103, _("Save"),
            wx.Bitmap(sys.path[0] + "/save5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("Save"), "")
        self.frame_1_toolbar.AddLabelTool(
            104, _("Open"),
            wx.Bitmap(sys.path[0] + "/open5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("Open"), "")
        self.frame_1_toolbar.AddLabelTool(
            105, _("Upload"),
            wx.Bitmap(sys.path[0] + "/dwn5050.png", wx.BITMAP_TYPE_ANY),
            wx.NullBitmap, wx.ITEM_NORMAL, _("Upload"), "")

        self.editor = editeur.editeur(self, -1)
        self.logwindow = wx.TextCtrl(self,
                                     -1,
                                     "",
                                     style=wx.TE_MULTILINE | wx.TE_READONLY)

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_MENU, self.New, self.NEW)
        self.Bind(wx.EVT_MENU, self.Open, self.OPEN)
        self.Bind(wx.EVT_MENU, self.Save, self.SAVE)
        self.Bind(wx.EVT_MENU, self.Close, self.CLOSE)
        self.Bind(wx.EVT_MENU, self.Exit, self.EXIT)
        self.Bind(wx.EVT_MENU, self.About, self.ABOUT)

        self.Bind(wx.EVT_TOOL, self.Verify, id=100)
        self.Bind(wx.EVT_TOOL, self.Close, id=101)
        self.Bind(wx.EVT_TOOL, self.New, id=102)
        self.Bind(wx.EVT_TOOL, self.Save, id=103)
        self.Bind(wx.EVT_TOOL, self.Open, id=104)
        self.Bind(wx.EVT_TOOL, self.Upload, id=105)

        self.Bind(wx.EVT_SIZE, self.onresize)
Esempio n. 3
0
    def __init__(self, *args, **kwds):
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)

        loc = locale.getdefaultlocale()[0][0:2]
        lang = gettext.translation('pinguino', './locale', languages=[loc])
        lang.install()
        
        self.menu = wx.MenuBar()
        wxglade_tmp_menu = wx.Menu()
        self.NEW = wx.MenuItem(wxglade_tmp_menu, 20, _("New"), "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.NEW)
        self.OPEN = wx.MenuItem(wxglade_tmp_menu, 21, _("Open"), "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.OPEN)
        self.SAVE = wx.MenuItem(wxglade_tmp_menu, 22, _("Save"), "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.SAVE)
        wxglade_tmp_menu.AppendSeparator()
        self.CLOSE = wx.MenuItem(wxglade_tmp_menu, 23, _("Close"), "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.CLOSE)
        self.EXIT = wx.MenuItem(wxglade_tmp_menu, 24, _("Exit"), "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendItem(self.EXIT)
        self.menu.Append(wxglade_tmp_menu, _("File"))

        self.LANGUAGE = wx.Menu()
        self.ENGLISH = wx.MenuItem(self.LANGUAGE, 26, _("English"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.ENGLISH)
        self.FRENCH = wx.MenuItem(self.LANGUAGE, 27, _("French"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.FRENCH)
        self.SPANISH = wx.MenuItem(self.LANGUAGE, 28, _("Spanish"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.SPANISH)
        self.PORTUGUESE = wx.MenuItem(self.LANGUAGE, 29, _("Portuguese"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.PORTUGUESE)
        self.DANISH = wx.MenuItem(self.LANGUAGE, 30, _("Danish"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.DANISH)
        self.CROATIAN = wx.MenuItem(self.LANGUAGE, 31, _("Croatian"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.CROATIAN)
        self.ITALIAN = wx.MenuItem(self.LANGUAGE, 32, _("Italian"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.ITALIAN)
        self.GERMANY = wx.MenuItem(self.LANGUAGE, 33, _("Germany"), "", wx.ITEM_NORMAL)
        self.LANGUAGE.AppendItem(self.GERMANY)
        
        self.menu.Append(self.LANGUAGE, _("Language"))
        self.HELP = wx.Menu()
        self.ABOUT = wx.MenuItem(self.HELP, 25, _("About"), "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.menu.Append(self.HELP, _("Help"))
        
        self.SetMenuBar(self.menu)
        
        self.frame_1_statusbar = self.CreateStatusBar(1, 0)
        
        self.frame_1_toolbar = wx.ToolBar(self, -1)
        self.SetToolBar(self.frame_1_toolbar)
        self.frame_1_toolbar.AddLabelTool(100, _("Verify"), wx.Bitmap(sys.path[0]+"/runw5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("Verify"), "")
        self.frame_1_toolbar.AddLabelTool(101, _("Close"), wx.Bitmap(sys.path[0]+"/stop5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("Close"), "")
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddSeparator()
        self.frame_1_toolbar.AddLabelTool(102, _("New"), wx.Bitmap(sys.path[0]+"/new5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("New"), "")
        self.frame_1_toolbar.AddLabelTool(103, _("Save"), wx.Bitmap(sys.path[0]+"/save5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("Save"), "")
        self.frame_1_toolbar.AddLabelTool(104, _("Open"), wx.Bitmap(sys.path[0]+"/open5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("Open"), "")
        self.frame_1_toolbar.AddLabelTool(105, _("Upload"), wx.Bitmap(sys.path[0]+"/dwn5050.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, _("Upload"), "")
        
        self.editor = editeur.editeur(self, -1)
        self.logwindow = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY)

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.EVT_MENU, self.New, self.NEW)
        self.Bind(wx.EVT_MENU, self.Open, self.OPEN)
        self.Bind(wx.EVT_MENU, self.Save, self.SAVE)
        self.Bind(wx.EVT_MENU, self.Close, self.CLOSE)
        self.Bind(wx.EVT_MENU, self.Exit, self.EXIT)
        self.Bind(wx.EVT_MENU,self.About,self.ABOUT)
        
        self.Bind(wx.EVT_TOOL, self.Verify, id=100)
        self.Bind(wx.EVT_TOOL, self.Close, id=101)
        self.Bind(wx.EVT_TOOL, self.New, id=102)
        self.Bind(wx.EVT_TOOL, self.Save, id=103)
        self.Bind(wx.EVT_TOOL, self.Open, id=104)
        self.Bind(wx.EVT_TOOL, self.Upload, id=105)
        
        self.Bind(wx.EVT_SIZE,self.onresize)
Esempio n. 4
0
    def __init__(self,
                 parent,
                 id=-1,
                 title='Pinguino',
                 pos=wx.DefaultPosition,
                 size=(600, 600),
                 style=wx.DEFAULT_FRAME_STYLE):

        # ----------------------------------------------------------------------
        # load settings from config file
        # ----------------------------------------------------------------------
        self.config = wx.FileConfig(localFilename=APP_CONFIG,
                                    style=wx.CONFIG_USE_LOCAL_FILE)
        self.filehistory = wx.FileHistory()
        self.filehistory.Load(self.config)
        framesize = (self.config.ReadInt('Window/Width', -1),
                     self.config.ReadInt('Window/Height', -1))
        framepos = (self.config.ReadInt('Window/Posx', -1),
                    self.config.ReadInt('Window/Posy', -1))
        outputsize = (self.config.ReadInt('Output/Width', -1),
                      self.config.ReadInt('Output/Height', -1))
        self.theme = self.config.Read('Theme/name')
        if self.theme == '':
            self.theme = THEME_DEFAULT

        wx.Frame.__init__(self, parent, id, title, framepos, framesize, style)

        loc = locale.getdefaultlocale()[0][0:2]
        self.lang = gettext.translation('pinguino',
                                        sys.path[0] + '/locale',
                                        languages=[loc],
                                        fallback=True)
        _ = self.lang.ugettext

        #self.SetTitle('Pinguino '+pinguino_version)
        self.SetTitle('Qubotic - www.roboticawilde.com.ar')
        _icon = wx.EmptyIcon()
        _icon.CopyFromBitmap(
            wx.Bitmap(sys.path[0] + "/logo.png", wx.BITMAP_TYPE_ANY))
        self.SetIcon(_icon)

        self._mgr = wx.aui.AuiManager(self)

        self.menu = wx.MenuBar()

        # file menu
        self.file_menu = wx.Menu()
        self.NEW = wx.MenuItem(self.file_menu, wx.ID_NEW, _("New"), "",
                               wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.NEW)
        self.OPEN = wx.MenuItem(self.file_menu, wx.ID_OPEN, _("Open"), "",
                                wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.OPEN)
        self.SAVE = wx.MenuItem(self.file_menu, wx.ID_SAVE, _("Save"), "",
                                wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.SAVE)
        self.SAVEAS = wx.MenuItem(self.file_menu, wx.ID_SAVEAS, _("Save as"),
                                  "", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.SAVEAS)
        self.CLOSE = wx.MenuItem(self.file_menu, wx.ID_CLOSE, _("Close"), "",
                                 wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.CLOSE)
        self.EXIT = wx.MenuItem(self.file_menu, wx.ID_EXIT, _("Exit"), "",
                                wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.EXIT)
        # ---file history-------------------------------------------------------
        self.filehistory.UseMenu(self.file_menu)
        self.filehistory.AddFilesToMenu()
        self.menu.Append(self.file_menu, _("File"))

        # edit menu
        self.edit_menu = wx.Menu()
        self.UNDO = wx.MenuItem(self.edit_menu, wx.ID_UNDO, _("Undo"), "",
                                wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.UNDO)
        self.REDO = wx.MenuItem(self.edit_menu, wx.ID_REDO, _("Redo"), "",
                                wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.REDO)
        self.edit_menu.AppendSeparator()
        self.FIND = wx.MenuItem(self.edit_menu, wx.ID_FIND, _("Find"), "",
                                wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.FIND)
        self.REPLACE = wx.MenuItem(self.edit_menu, wx.ID_REPLACE, _("Replace"),
                                   "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.REPLACE)
        self.REPLACE.Enable(False)
        self.edit_menu.AppendSeparator()
        self.CUT = wx.MenuItem(self.edit_menu, wx.ID_CUT, _("Cut"), "",
                               wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.CUT)
        self.COPY = wx.MenuItem(self.edit_menu, wx.ID_COPY, _("Copy"), "",
                                wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.COPY)
        self.PASTE = wx.MenuItem(self.edit_menu, wx.ID_PASTE, _("Paste"), "",
                                 wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.PASTE)
        self.CLEAR = wx.MenuItem(self.edit_menu, wx.ID_CLEAR, _("Clear"), "",
                                 wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.CLEAR)
        self.SELECTALL = wx.MenuItem(self.edit_menu, wx.ID_SELECTALL,
                                     _("Select all"), "", wx.ITEM_NORMAL)
        self.edit_menu.AppendItem(self.SELECTALL)
        self.menu.Append(self.edit_menu, _("Edit"))

        # preferences menu
        self.pref_menu = wx.Menu()
        # ---theme submenu
        self.theme_menu = wx.Menu()
        self.GetTheme()
        i = 0
        for th in self.themeList:
            self.THEME.append(
                wx.MenuItem(self.theme_menu, self.ID_THEME1 + i, th, "",
                            wx.ITEM_CHECK))
            self.theme_menu.AppendItem(self.THEME[i])
            i = i + 1
        self.pref_menu.AppendMenu(self.ID_THEME, _("Themes"), self.theme_menu)
        # ---debug submenu
        self.debug_menu = wx.Menu()
        self.USBBULK = wx.MenuItem(self.debug_menu, self.ID_USBBULK,
                                   _("USB Bulk"), "", wx.ITEM_CHECK)
        self.debug_menu.AppendItem(self.USBBULK)
        self.USBBULK.Enable(False)
        self.CDC = wx.MenuItem(self.debug_menu, self.ID_CDC, _("CDC"), "",
                               wx.ITEM_CHECK)
        self.debug_menu.AppendItem(self.CDC)
        self.CDC.Enable(False)
        self.pref_menu.AppendMenu(self.ID_DEBUG, _("Debug"), self.debug_menu)
        self.menu.Append(self.pref_menu, _("Preferences"))

        self.HELP = wx.Menu()
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_WEBSITE, _("Website"), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_BLOG, _("Blog"), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_FORUM, _("Forum"), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_GROUP, _("Group"), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_WIKI, _("Wiki"), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_TUTORIAL, _("Tutorial"),
                                 "", wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.ABOUT = wx.MenuItem(self.HELP, self.ID_ABOUT, _("About..."), "",
                                 wx.ITEM_NORMAL)
        self.HELP.AppendItem(self.ABOUT)
        self.menu.Append(self.HELP, _("Help"))

        self.SetMenuBar(self.menu)

        # ------------------------------------------------------------------------------
        # Load toolbar icons
        # ------------------------------------------------------------------------------

        self.DrawToolbar()

        # define output window

        self.logwindow = wx.TextCtrl(self,
                                     -1,
                                     "",
                                     wx.DefaultPosition,
                                     wx.Size(400, 300),
                                     style=wx.TE_MULTILINE | wx.TE_READONLY)
        self.logwindow.SetBackgroundColour(wx.Colour(0, 0, 0))
        self.logwindow.SetForegroundColour(wx.Colour(255, 255, 255))

        # create a PaneInfo structure for output window

        PaneOutputInfo = wx.aui.AuiPaneInfo()
        PaneOutputInfo.CloseButton(False)
        PaneOutputInfo.MaximizeButton(True)
        PaneOutputInfo.MinimizeButton(True)
        PaneOutputInfo.Caption(_("Output"))
        PaneOutputInfo.Bottom()

        # create editor panel

        editorsize = self.GetSize() - self.logwindow.GetSize()
        editorsize = (editorsize[0], editorsize[1])
        self.EditorPanel = wx.Panel(self, -1, wx.DefaultPosition,
                                    wx.Size(400, 100))
        self.pinguinobmp = wx.StaticBitmap(
            self.EditorPanel, -1,
            wx.Bitmap(sys.path[0] + "/theme/pinguinodesign.png",
                      wx.BITMAP_TYPE_ANY))
        self.pinguinobmp.CentreOnParent(wx.BOTH)

        # create a PaneInfo structure for editor window
        # this Paneinfo will be switched when loading a file

        self.PaneEditorInfo = wx.aui.AuiPaneInfo()
        self.PaneEditorInfo.CloseButton(False)
        self.PaneEditorInfo.MaximizeButton(True)
        self.PaneEditorInfo.Caption(_("Editor"))
        self.PaneEditorInfo.Top()

        # add the panes to the manager
        self._mgr.AddPane(
            self.toolbar,
            wx.aui.AuiPaneInfo().Name("toolbar").Caption(
                "Toolbar").ToolbarPane().Top().Row(1).LeftDockable(
                    False).RightDockable(False))
        self._mgr.AddPane(self.logwindow, PaneOutputInfo, '')
        self._mgr.AddPane(self.EditorPanel, wx.CENTER, '')

        self.editor = editeur.editeur(self.EditorPanel, -1,
                                      self.EditorPanel.GetSize())

        # tell the manager to 'commit' all the changes just made
        self._mgr.Update()

        # ------------------------------------------------------------------------------
        # Event Management
        # ------------------------------------------------------------------------------

        self.Bind(wx.EVT_CLOSE, self.OnExit)
        self.Bind(wx.EVT_SIZE, self.OnResize)
        self.Bind(wx.aui.EVT_AUI_RENDER, self.OnRender)

        # file menu
        self.Bind(wx.EVT_MENU, self.OnNew, self.NEW)
        self.Bind(wx.EVT_MENU, self.OnOpen, self.OPEN)
        self.Bind(wx.EVT_MENU_RANGE,
                  self.OnFileHistory,
                  id=wx.ID_FILE1,
                  id2=wx.ID_FILE9)
        self.Bind(wx.EVT_MENU, self.OnSave, self.SAVE)
        self.Bind(wx.EVT_MENU, self.OnSaveAs, self.SAVEAS)
        self.Bind(wx.EVT_MENU, self.OnClose, self.CLOSE)
        self.Bind(wx.EVT_MENU, self.OnExit, self.EXIT)

        # edit menu
        self.Bind(wx.EVT_MENU, self.editor.copy, self.COPY)
        self.Bind(wx.EVT_MENU, self.editor.paste, self.PASTE)
        self.Bind(wx.EVT_MENU, self.editor.cut, self.CUT)
        self.Bind(wx.EVT_MENU, self.editor.clear, self.CLEAR)
        self.Bind(wx.EVT_MENU, self.editor.undo, self.UNDO)
        self.Bind(wx.EVT_MENU, self.editor.redo, self.REDO)
        self.Bind(wx.EVT_MENU, self.OnFind, self.FIND)
        self.Bind(wx.EVT_MENU, self.editor.selectall, self.SELECTALL)

        # pref menu
        self.Bind(wx.EVT_MENU_RANGE,
                  self.OnTheme,
                  id=self.ID_THEME1,
                  id2=self.ID_THEME1 + self.themeNum)

        # icons bar
        self.Bind(wx.EVT_TOOL, self.OnVerify, id=self.ID_VERIFY)
        self.Bind(wx.EVT_TOOL, self.OnClose, id=wx.ID_CLOSE)
        self.Bind(wx.EVT_TOOL, self.OnNew, id=wx.ID_NEW)
        self.Bind(wx.EVT_TOOL, self.OnSave, id=wx.ID_SAVE)
        self.Bind(wx.EVT_TOOL, self.OnOpen, id=wx.ID_OPEN)
        self.Bind(wx.EVT_TOOL, self.OnUpload, id=self.ID_UPLOAD)
        self.Bind(wx.EVT_TOOL, self.OnFind, id=wx.ID_FIND)
        self.Bind(wx.EVT_TOOL, self.OnExit, id=wx.ID_EXIT)
        self.Bind(wx.EVT_TOOL, self.editor.undo, id=wx.ID_UNDO)
        self.Bind(wx.EVT_TOOL, self.editor.redo, id=wx.ID_REDO)
        self.Bind(wx.EVT_TOOL, self.editor.cut, id=wx.ID_CUT)
        self.Bind(wx.EVT_TOOL, self.editor.copy, id=wx.ID_COPY)
        self.Bind(wx.EVT_TOOL, self.editor.paste, id=wx.ID_PASTE)
        self.Bind(wx.EVT_TOOL, self.editor.clear, id=wx.ID_CLEAR)
        self.Bind(wx.EVT_TOOL, self.editor.selectall, id=wx.ID_SELECTALL)

        # help menu
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_WEBSITE)  # website
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_BLOG)  # blog
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_FORUM)  # forum
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_GROUP)  # group
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_WIKI)  # wiki
        self.Bind(wx.EVT_TOOL, self.website, id=self.ID_TUTORIAL)  # tutorial
        self.Bind(wx.EVT_MENU, self.OnAbout, self.ABOUT)

        # initialize all the lib pdl in /lib folder
        self.readlib()

        self.displaymsg(_("Welcome to ") + pinguino_version + "\n", 0)

        # check current theme in menu
        id = self.theme_menu.FindItem(self.theme)
        self.menu.Check(id, True)