> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> """Shows how to use the dSplitter
> """
> #node: Basic controls/dSplitter
> import dabo
> dabo.ui.loadUI("wx")
>
>
> class tSplitter(dabo.ui.dSplitter):
>         def __init__(self, *args, **kwargs):
>                 kwargs["createPanes"] = True
>                 super(tSplitter, self).__init__(*args, **kwargs)
>
>         def initProperties(self):
>                 self.Width = 250
>                 self.Height = 200
>                 self.MinimumPanelSize = 20
>
>         def afterInit(self):
>                 self.Panel1.Sizer = dabo.ui.dSizer()
>                 self.Panel2.Sizer = dabo.ui.dSizer()
>
>                 self.edit1 = dabo.ui.dEditBox(self.Panel1)
>                 self.edit2 = dabo.ui.dEditBox(self.Panel2)
>
>                 self.Panel1.Sizer.append1x(self.edit1)
>                 self.Panel2.Sizer.append1x(self.edit2)
>
>         def onSashDoubleClick(self, evt):
>                 if not dabo.ui.areYouSure("Remove the sash?"):
>                         evt.stop()
>
> class TestPanel(dabo.ui.dPanel):
>         def afterInit(self):
>                 self.Sizer = dabo.ui.dSizer()
>                 self.mySplitter = tSplitter(self, Orientation="v")
>                 self.Sizer.append1x(self.mySplitter)
>
> class TestForm(dabo.ui.dForm):
>         def afterInit(self):
>                 pnl = self.addObject(TestPanel)
>                 self.Sizer.append1x(pnl)
>
>
> def runTest():
>         app = dabo.dApp()
>         app.MainFormClass = TestForm
>         app.start()
>
>
> if __name__ == "__main__":
>         runTest()
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

OK, after I made the same changes to the Editor, it made it slightly
better, however, I have to right click and 'switch orientation' for it
to show correctly. Otherwise, the dEditor part doesnt even show.

here is the code:
#!/usr/bin/env python

import sys
import os, os.path
import keyword
import code
import inspect
import subprocess
import dabo
import dabo.dEvents as dEvents
from dabo.dLocalize import _
import dabo.dConstants as kons

if __name__ == "__main__":
        dabo.ui.loadUI("wx")

class _dSplitterEPage(dabo.ui.dSplitter):
        def __init__(self, *args, **kwargs):
                kwargs["createPanes"] = True
                super(_dSplitterEPage, self).__init__(*args, **kwargs)

        def initProperties(self):
                self.Width = 250
                self.Height = 200
                self.MinimumPanelSize = 20

        def afterInit(self):
                import random
                import dabo.dColors as dColors
                self.Panel1.BackColor = 
random.choice(dColors.colorDict.values())
                self.Panel2.BackColor = 
random.choice(dColors.colorDict.values())

        def onSashDoubleClick(self, evt):               
                evt.stop()
                
        def _onContextMenu(self, evt):
                evt.stop()

class EditorPage(dabo.ui.dPage):
        def initProperties(self):
                self.p = None
                self.outputText = ""

        def afterInit(self):
                self.splitter = _dSplitterEPage(self, Orientation = "h")
                
                self.splitter.Panel1.Sizer = dabo.ui.dSizer()
                self.splitter.Panel2.Sizer = dabo.ui.dSizer()
        
                self.editor = dabo.ui.dEditor(self.splitter.Panel1)
                self.output = dabo.ui.dEditBox(self.splitter.Panel2)
                
                #self.output.Enabled = False
                
                self.splitter.Panel1.Sizer.append1x(self.editor)
                self.splitter.Panel2.Sizer.append1x(self.output)
                
                self.Sizer = dabo.ui.dSizer()
                self.Sizer.append1x(self.splitter)
                                
                self.updateTimer = dabo.ui.dCallEvery(self, self.outputUpdate, 
1000)
                
                self.layout()
                self.editor.setFocus()
                self.editor.bindEvent(dEvents.TitleChanged, self.onTitleChanged)
                self.editor.bindEvent(dEvents.MouseRightClick, 
self.Form.onEditorRightClick)
                # Set the initial title
                dabo.ui.callAfter(self.onTitleChanged, None)
        
        def outputUpdate(self):
                if not self.p is None:
                        #need a nonblocking way of getting stdout and stderr
                        self.outputText = self.outputText + 
self.p.stdout.read() +
self.p.stderr.read()
                        
                        if not self.p.poll() is None:
                                self.p = None
                        
                        self.output.Value = self.outputText
        
        def onTitleChanged(self, evt):
                title = self.editor._title
                self.Caption = title
                self.Form.onTitleChanged(evt)
        
        
        def onPageEnter(self, evt):
                self.editor.setFocus()
        
        
        def onPageLeave(self, evt):
                self.editor.setInactive()
                
                
class EditorPageFrame(dabo.ui.dPageFrame):
        def beforeInit(self):
                self.PageClass = EditorPage
        
        
        def checkChanges(self):
                """Cycle through the pages, and if any contain unsaved changes,
                ask the user if they should be saved. If they cancel, 
immediately
                stop and return False. If they say yes, save the contents. 
Unless
                they cancel, close each page.
                """
                ret = True
                for pg in self.Pages[::-1]:
                        ed = pg.editor
                        ret = ed.checkChangesAndContinue()
                        if not ret:
                                break
#                       self.PageCount -= 1
                return ret
        
        
        def findEditor(self, pth, selectIt=False):
                """Returns the editor that is editing the specified file. If 
there
                is no matching editor, returns None. If selectIt is True, makes 
that
                editor the active editor.
                """
                ret = None
                for pg in self.Pages:
                        if pg.editor._fileName == pth:
                                ret = pg.editor
                                if selectIt:
                                        self.SelectedPage = pg
                return ret

                
        def editFile(self, pth, selectIt=False):
                ret = self.findEditor(pth, selectIt)
                if ret is None:
                        # Create a new page
                        pg = self.getBlankPage(True)
                        pg.editor.openFile(pth)
                        self.SelectedPage = pg
                        ret = pg
                return ret
                        
                        
        def getBlankPage(self, create=False):
                """Returns the first page that is not associated with a file,
                and which has not been modified. If no such page exists, and
                the 'create' parameter is True, a new blank page is created
                and returned. Otherwise, returns None.
                """
                ret = None
                for pg in self.Pages:
                        ed = pg.editor
                        if ed._title.strip() == ed._newFileName.strip():
                                ret = pg
                                break
                if ret is None and create:
                        self.PageCount += 1
                        ret = self.Pages[-1]
                return ret
                
        
        def closeEditor(self, ed=None):
                if ed is None:
                        ed = self.SelectedPage.editor
                ret = ed.checkChangesAndContinue()
                if ret is not False:
                        pg = ed.Parent
                        self.removePage(pg)
                return ret
                
                        
        def newEditor(self):
                return self.getBlankPage(True)


        def selectByCaption(self, cap):
                pgs = [pg for pg in self.Pages
                                if pg.Caption == cap]
                if pgs:
                        pg = pgs[0]
                else:
                        dabo.errorLog.write(_("No matching page for %s") % cap)
                        return
                self.SelectedPage = pg
                pg.editor.setFocus()
        
        
        def edFocus(self):
                self.SelectedPage.editor.setFocus()
                
        def _getCurrentEditor(self):
                try:
                        return self.SelectedPage.editor
                except:
                        return None
                        
                        
        def _getTitle(self):
                try:
                        ret = self.SelectedPage.Caption
                except:
                        ret = ""
                return ret
        
        CurrentEditor = property(_getCurrentEditor, None, None,
                        _("References the currently active editor  (dEditor)"))

        Title = property(_getTitle, None, None,
                        _("Title of the active page  (str)") )
                        
                        

class EditorForm(dabo.ui.dForm):
        def afterInit(self):
                self.AutoUpdateStatusText = False
                self.StatusText = ""
                pnl = dabo.ui.dPanel(self)
                self.Sizer.append1x(pnl)
                pnl.Sizer = dabo.ui.dSizer("v")
                self._lastPath = os.getcwd()
                super(EditorForm, self).afterInit()
                self.Caption = "Dabo Editor"
                self.funcButton = dabo.ui.dImage(pnl, ScaleMode="Clip", 
Size=(22,22))
                self.funcButton.Picture = 
dabo.ui.imageFromData(funcButtonData())
                self.funcButton.bindEvent(dEvents.MouseLeftDown, 
self.onFuncButton)
                self.bmkButton = dabo.ui.dImage(pnl, ScaleMode="Clip", 
Size=(22,22))
                self.bmkButton.Picture = dabo.ui.imageFromData(bmkButtonData())
                self.bmkButton.bindEvent(dEvents.MouseLeftDown, 
self.onBmkButton)
                btnSizer = dabo.ui.dSizer("H", Spacing=4)
                btnSizer.append(self.funcButton)
                btnSizer.append(self.bmkButton)
                pnl.Sizer.append(btnSizer, border=4)            
                
                self.pgfEditor = EditorPageFrame(pnl, TabPosition="Top")
                self.pgfEditor.bindEvent(dEvents.PageChanged, 
self.onEditorPageChanged)
                pnl.Sizer.append1x(self.pgfEditor)
                self.layout()
                if self.CurrentEditor:
                        self.CurrentEditor.setFocus()
                self.fillMenu()


        def onFuncButton(self, evt):
                evt.stop()
                flist = self.CurrentEditor.getFunctionList(True)
                pop = dabo.ui.dMenu()
                for nm, pos in flist:
                        prompt = nm
                        if nm.startswith("def "):
                                prompt = " - %s" % nm[4:]
                        itm = pop.append(prompt, bindfunc=self.onFunctionPop)
                        itm.textPosition = pos
                self.showContextMenu(pop)
                del pop
        
        
        def onFunctionPop(self, evt):
                ed = self.CurrentEditor
                pos = evt.menuItem.textPosition
                currLine = ed.LineNumber
                newLine = ed.LineFromPosition(pos)
                if newLine > currLine:
                        ed.moveToEnd()
                ed.LineNumber = newLine
                
        
        def onEditorRightClick(self, evt):
                ed = self.CurrentEditor
                pos = evt.mousePosition
                pp = ed.PositionFromPointClose(*pos)
                if pp < 0:
                        # They clicked outside of the text area of the line. 
Find
                        # a position just to the right of the margin
                        lpos = ed.getMarginWidth()
                        pp = ed.PositionFromPointClose(lpos, pos[1])
                if pp < 0:
                        # This is a totally blank line. Nothing can be done
                        return
                ln = ed.LineFromPosition(pp)
                ed.LineNumber = ln
                self.onBmkButton(evt)
                
                                
        def onBmkButton(self, evt):
                evt.stop()
                ed = self.CurrentEditor
                bmkList = ed.getBookmarkList()
                pop = dabo.ui.dMenu()
                currBmk = ed.getCurrentLineBookmark()
                if not currBmk:
                        pop.append(_("Set Bookmark..."), bindfunc=self.onSetBmk)
                else:
                        pop.append(_("Clear Bookmark..."), 
bindfunc=self.onClearBmk)
                if bmkList:
                        pop.append(_("Clear All Bookmarks"), 
bindfunc=self.onClearAllBmk)
                        pop.appendSeparator()
                        for nm in bmkList:
                                itm = pop.append(nm, 
bindfunc=self.onBookmarkPop)
                self.showContextMenu(pop)
                del pop
        
        
        def onBookmarkPop(self, evt):
                """Navigate to the chosen bookmark."""
                self.CurrentEditor.findBookmark(evt.prompt)
        
        
        def onSetBmk(self, evt):
                """Need to ask the user for a name for this bookmark."""
                nm = dabo.ui.getString(message="Name for this bookmark:",
                                caption="New Bookmark")
                if not nm:
                        # User canceled
                        return
                ed = self.CurrentEditor
                if nm in ed.getBookmarkList():
                        msg = _("There is already a bookmark named '%s'. 
Creating a new bookmark "
                                        "with the same name will delete the old 
one. Are you sure you want "
                                        "to do this?") % nm
                        answer = dabo.ui.areYouSure(message=msg, 
title=_("Duplicate Name"),
                                        defaultNo=True, cancelButton=False)
                        print "ANS", answer, type(answer)

                self.CurrentEditor.setBookmark(nm)
                

        def onClearBmk(self, evt):
                """Clear the current bookmark."""
                ed = self.CurrentEditor
                bmk = ed.getCurrentLineBookmark()
                if bmk:
                        ed.clearBookmark(bmk)
        
        
        def onClearAllBmk(self, evt):
                """Remove all the bookmarks."""
                self.CurrentEditor.clearAllBookmarks()
                

        def onEditorPageChanged(self, evt):
                self.onTitleChanged(evt)
                
                
        def beforeClose(self, evt):
                return self.pgfEditor.checkChanges()


        def onDocumentationHint(self, evt):
                # Eventually, a separate IDE window can optionally display help 
contents
                # for the object. For now, just print the longdoc to the 
infolog.
                dabo.infoLog.write("Documentation Hint received:\n\n%s" %
evt.EventData["longDoc"])


        def onTitleChanged(self, evt):
                self.Caption = _("Dabo Editor: %s") % self.pgfEditor.Title


        def fillMenu(self):
                mb = self.MenuBar
                fileMenu = mb.getMenu("File")
                editMenu = mb.getMenu("Edit")
                runMenu = dabo.ui.dMenu(Caption="&Run")
                mb.insertMenu(2, runMenu)
                viewMenu = mb.getMenu("View")
                dIcons = dabo.ui.dIcons
                                
                fileMenu.prependSeparator()
                fileMenu.prepend("Save &As\tCtrl+Shift+S",
bindfunc=self.onFileSaveAs, bmp="saveAs",
                                help="Save under a different file name")
                fileMenu.prepend("&Save\tCtrl+S", bindfunc=self.onFileSave, 
bmp="save",
                                help="Save file")
                cPos = fileMenu.getItemIndex("Close Window")
                if cPos is not None:
                        fileMenu.remove(cPos)
                fileMenu.prepend("&Close Editor\tCtrl+W", 
bindfunc=self.onFileClose,
bmp="close",
                                help="Close file")
                fileMenu.prepend("&Open\tCtrl+O", bindfunc=self.onFileOpen, 
bmp="open",
                                help="Open file")
                fileMenu.prepend("&New\tCtrl+N", bindfunc=self.onFileNew, 
bmp="new",
                                help="New file")

                editMenu.appendSeparator()
                editMenu.append("&Jump to line...\tCtrl+J", 
bindfunc=self.onEditJumpToLine,
                                bmp="", help="Jump to line")
                editMenu.appendSeparator()
                editMenu.append("Co&mment Line\tCtrl+M", 
bindfunc=self.onCommentLine,
                                bmp="", help="Comment out selection")
                editMenu.append("&Uncomment Line\tCtrl+Shift+M",
                                bindfunc=self.onUncommentLine, bmp="",
                                help="Uncomment selection")

                editMenu.appendSeparator()
                editMenu.append("&Word Wrap\tCtrl+Shift+W", 
bindfunc=self.onWordWrap,
                                bmp="", help="Toggle WordWrap", 
menutype="check")
                mnit = editMenu.append("S&yntax Coloring\tCtrl+Shift+Y",
bindfunc=self.onSyntaxColoring,
                                bmp="", help="Toggle Syntax Coloring")

                runMenu.append("&Run Script\tF7", bindfunc=self.onRunScript,
                                bmp="", help="Run Script")

                fontMenu = dabo.ui.dMenu(Caption="Font")
                mb.insertMenu(3, fontMenu)
                fonts = dabo.ui.getAvailableFonts()
                fontMenu.append("Set Font Size", bindfunc=self.onFontSize,
                                help="Set Default Font Size")
                fontMenu.appendSeparator()
                fontMenu.append("Zoom &In\tCtrl++", bindfunc=self.onViewZoomIn,
                                bmp="zoomIn", help="Zoom In")
                fontMenu.append("&Normal Zoom\tCtrl+/", 
bindfunc=self.onViewZoomNormal,
                                bmp="zoomNormal", help="Normal Zoom")
                fontMenu.append("Zoom &Out\tCtrl+-", 
bindfunc=self.onViewZoomOut,
                                bmp="zoomOut", help="Zoom Out")
                fontMenu.appendSeparator()
                for font in fonts:
                        fontMenu.append(font, bindfunc=self.onFontSelection)
                
                vp = mb.getMenuIndex("Font")
                edtMenu = mb.insert(vp+1, "Editors")
                
                mb.remove(mb.getMenuIndex("View"))
                
                # bind the hotkeys
                self.bindKey("alt+Left", self.onPrevPg)
                self.bindKey("alt+Right", self.onNextPg)
                self.bindKey("alt+shift+Left", self.onMoveLeft)
                self.bindKey("alt+shift+Right", self.onMoveRight)
                

        def onFontSelection(self, evt):
                """The user selected a font face for the editor."""
                face = evt.EventObject.Caption
                self.CurrentEditor.changeFontFace(face)
                
        
        def onFontSize(self, evt):
                """Change the default font size for the editor."""
                val = dabo.ui.getInt("Select new font size", "Font Size",
self.CurrentEditor._fontSize)
                if val is not None:
                        self.CurrentEditor.changeFontSize(val)
                
                
        def onMenuOpen(self, evt):
                """Currently this never fires under Windows."""
                mn = evt.menuObject
                prm = evt.prompt
                if prm == "Editors":
                        mn.clear()
                        for pg in self.pgfEditor.Pages:
                                prmpt = pg.editor._title                        
        
                                mn.append(prmpt, 
bindfunc=self.onEditorSelected, help="Select %s" % prmpt)


        def onEditorSelected(self, evt):
                """Called when a menuitem in the Editors menu is chosen."""
                cap = evt.EventObject.Caption
                self.pgfEditor.selectByCaption(cap)
        
        
        def onFileNew(self, evt):
                target = self.pgfEditor.newEditor()
                target.setFocus()


        def onFileOpen(self, evt):
                fileName = self.CurrentEditor.promptForFileName(prompt="Open",
                                path=self._lastPath)
                if fileName is not None:
                        self._lastPath = os.path.split(fileName)[0]
                        self.openFile(fileName)
        
        
        def onMRUSelection(cls, evt):
                """This needs to be a classmethod, since the form
                that originally opens a file path might get closed, and
                if we bound the MRU action to an instance method, it
                would barf. So we make this a classmethod, and pass
                the call to the first EditorForm instance we can find.
                """
                pth = " ".join(evt.prompt.split(" ")[1:])
                # Find the topmost form that is an EditorForm
                app = dabo.dAppRef
                try:
                        app.ActiveForm.openFile(pth)
                except:
                        # Call the first available EditorForm
                        edf = [frm for frm in app.uiForms
                                        if isinstance(frm, EditorForm)][0]
                        edf.openFile(pth)
        onMRUSelection = classmethod(onMRUSelection)
                
                
        def openFile(self, pth):
                """Open the selected file, if it isn't already open. If it is,
                bring its Editor to the front.
                """
                # Add to the MRU list
                fm = self.MenuBar.getMenu("File")
                self.Application.addToMRU(fm, pth, self.onMRUSelection)
                target = self.pgfEditor.editFile(pth, True)
                return target
                

        def onFileSave(self, evt):
                self.CurrentEditor.saveFile()
                
                
        def onFileClose(self, evt):
                self.pgfEditor.closeEditor()
                if self.pgfEditor.PageCount == 0:
                        self.release()
                evt.stop()
                
                
        def onFileSaveAs(self, evt):
                fname = self.CurrentEditor.promptForSaveAs()
                if fname:
                        self.CurrentEditor.saveFile(fname)
                        
                        
        def onEditJumpToLine(self, evt):
                class LineNumberDlg(dabo.ui.dOkCancelDialog):
                        def addControls(self):
                                self.Caption = _("Jump To Line")
                                self.lblLine = dabo.ui.dLabel(self, 
Caption=_("Line Number:"))
                                self.txtLine = dabo.ui.dTextBox(self, 
SelectOnEntry=True)
                                hs = dabo.ui.dSizer("h")
                                hs.append(self.lblLine, valign="middle")
                                hs.append(self.txtLine, valign="middle")
                                self.Sizer.append(hs, 1, halign="center")
                                self.layout()
#-                              # Map escape key to cancelbutton:
#-                              self.bindKey("esc", self.onCancel)
#-                              # Map enter key to accept button:
#-                              self.bindKey("enter", self.onAccept)
                                                                
                currEditor = self.CurrentEditor
                dlg = LineNumberDlg(self)
                dlg.txtLine.Value = currEditor.LineNumber + 1
                dlg.txtLine.Min = 1
                dlg.txtLine.Max = currEditor.LineCount
                dlg.Centered = dlg.Modal = True
                dlg.AutoSize = False
                dlg.show()
                if dlg.Accepted:
                        currEditor.LineNumber = dlg.txtLine.Value - 1
                dlg.release()           

        
        def onCommentLine(self, evt):
                if self.CurrentEditor:
                        self.CurrentEditor.onCommentLine(evt)
                        
                        
        def onUncommentLine(self, evt):
                if self.CurrentEditor:
                        self.CurrentEditor.onUncommentLine(evt)
                        
                        
        def onRunScript(self, evt):
                """ Save the script to temp dir, and run it."""
                #pkm: this isn't finished, just a quick stab. os.system() is 
inadequate
                #     because it blocks. Need to use something like 
os.popen2(). And on
                #     Mac the command needs to be "pythonw" instead of 
"python". Also,
                #     stderr and stdout should be captured and displayed in a 
"terminal"
                #     window.
                ed = self.CurrentEditor
                txt = ed.Text
                fname = os.tmpnam()
                f = open(fname, "w")
                f.write(txt)
                f.close()
                #os.system("python %s" % fname)
                #os.remove(fname)
                
                #The Echo hack:
                self.pgfEditor.SelectedPage.outputText = ""
                self.pgfEditor.SelectedPage.p = subprocess.Popen("pythonw %s" % 
fname,
                                                        stdin=subprocess.PIPE,  
stdout=subprocess.PIPE,
                                                        stderr=subprocess.PIPE)
                                
                
        def onViewZoomIn(self, evt):
                ed = self.CurrentEditor
                ed.increaseTextSize()
                self.Application.setUserSetting("editor.zoom", ed.ZoomLevel)
                

        def onViewZoomNormal(self, evt):
                ed = self.CurrentEditor
                ed.restoreTextSize()
                self.Application.setUserSetting("editor.zoom", ed.ZoomLevel)
                

        def onViewZoomOut(self, evt):
                ed = self.CurrentEditor
                ed.decreaseTextSize()
                self.Application.setUserSetting("editor.zoom", ed.ZoomLevel)
                
        
        def onWordWrap(self, evt):
                self.CurrentEditor.toggleWordWrap()
                
                
        def onSyntaxColoring(self, evt):
                self.CurrentEditor.toggleSyntaxColoring()


        def onPrevPg(self, evt):
                self.pgfEditor.cyclePages(-1)
                self.pgfEditor.edFocus()
                
        def onNextPg(self, evt):
                self.pgfEditor.cyclePages(1)
                self.pgfEditor.edFocus()
        
        def onMoveLeft(self, evt):
                """Move the selected page over one to the left in the
                pageframe. If it is already the leftmost, move it to the
                end of the right side.
                """
                pgf = self.pgfEditor
                pg = pgf.SelectedPage
                pos = pgf.Pages.index(pg)
                if pos == 0:
                        # First page; move it to the end
                        newPos = pgf.PageCount - 1
                else:
                        newPos = pos - 1
                pgf.movePage(pos, newPos)
                
                
        def onMoveRight(self, evt):
                """Move the selected page over one to the right in the
                pageframe. If it is already the rightmost, move it to the
                first position on the left.
                """
                pgf = self.pgfEditor
                pg = pgf.SelectedPage
                pos = pgf.Pages.index(pg)
                if pos == (pgf.PageCount - 1):
                        # Last page; move it to the beginning
                        newPos = 0
                else:
                        newPos = pos + 1
                pgf.movePage(pos, newPos)
                
                
        def _getCurrentEditor(self):
                return self.pgfEditor.CurrentEditor


        CurrentEditor = property(_getCurrentEditor, None, None,
                        _("References the currently active editor  (dEditor)"))
        

def funcButtonData():
        return \
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x02\
\x00\x00\x00K\xd6\xfbl\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\
\x02\'[EMAIL PROTECTED] $J\xf4Z*()\xa8h\x80\x8e\
\x03 ([EMAIL PROTECTED] R\x02\x9b\xec/&\
\xcf\xec\x07=\x17Q\xe4\xb5g\xed\x99\x1d\xb3\xd9l\xe8\x8f0\xc6\x10\x91\xf7>\
\xccx\xef?\xf2BD\x8b\xc5\xa2Z\xad\xea\x81\xd6\x85\xd5aR\x11\x1f\x8f\xc7v\xbb\
\x15"\xba\xdf\xef\xcc\x8cjc\x8c\xd6}\xa3\xe8\xe5\xc6\x18\xe7\\\x92$\xe5\x14\
\xd7\xeb5\xcb2k-\x80P]\x14\x05\x11\x89\x88s\xce{\x8f\xd3\xa2(p\x9a\xe7\xb9s.\
M\xd3\x12"\x8a"\x11\xa9T*\xd6Z\xe7\x9c\xb5\xd6{_\x14\x053\x03\x05p\xc6\x18d\
\x8c1Q\x14=\x9f\xcf7\x84\x88`~f\xb6\xd6\x02\x82\x99\x9b\xcd&v\xbe\\.X\x81\
\x99\xbd\xf7\xd8\x85\x99E\xa4\x84 \xa2J\xa5\x12E\x911\xc6Z\x8b]\xea\xf5:\x11\
\xed\xf7{":\x1e\x8f\xbd^/\xa4&\xcfs\xb4\x10\x91h\x1b\xbe\x1f\x9c\x13Q\xbf\
\xdf\x0fY\x04\n\xe8D\x8b(U\x98*$\x1f\x11r\xacL333\xe7y\xee\xbd\xff\x94\x00=\
[EMAIL PROTECTED] \xf6\
[EMAIL PROTECTED]
\xd7\xcb)k\xa2\xe3A\xd1O\x9f\x10i\xb3\x12d\x8c\x11\xb1\xce\xbd\xde\x1eQ!B\
\xd94>\x9e|\x08\xfd^\x04\x0cA\x11f\x8e\xe3X\x89P\x08\n\xac\t\x11\xbd\xf7\xce\
9"*Y\x80\x1c )M\xd3\xd3\xe9\x84\xfe\xd1h\x04\n\xa7\xd3i\xab\xd5\x8a\xe3\xb8\
\xd5j\xcdf30\x8a\xc5E\xa7\x02\x17\xb8\xaa\xddn\xb7\xdb\xed\xf0\xda\xe5ry>\
\x9f\xb3,k4\x1a\xcb\xe5\x12\xf7\x95\x04+\x91\x18\x01\x1b\xf1o \x1fEQ\xb7\xdb\
]\xaf\xd7???\xab\xd5\xaa\xd3\xe9\xc0\rX\xb04\x98\x88 \xab\x14~K3\x1c\x0e/\
\x97\xcbx<\xa6_\x8f\xfdg\xb3\xa2(\xd4\xdd:|\xe8\x17\x80\xce\xe7s5\xbe\xf7>\
\xcfs"\x12\xfc%I\xe2\x9c\xfbxW\xdf\x02\x87\x91e\xd9\xf3\xf9,!v\xbb\xdd_u\xdf\
\xf1m\xe5\x7f\xd0\xdbI\xf9\xcd\xb6\xabn\x00\x00\x00\x00IEND\xaeB`\x82'


def bmkButtonData():
    return \
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x02\
\x00\x00\x00K\xd6\xfbl\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\
\x02\x7fIDAT8\x8duT\xbbJ,A\x10\xad\xee\xae\xdeUaDA\x84\xc5H\x19\xfc\x00A\xff\
BL\x0c\x16\x0c\x84\xf5\x01F\x1bh*\x88\x9f`.F~\x83b&\x08\xfe\x82\x82\xf1dF\
\xce\xa2=\xb7\xbb\xeb\x06gn9w\xbd\xb7\x83a\xa6\xab\xfa\xf4\xa9s\xaa\xc6\\^^\
\xd2\x7f\x961\x86\x88D\xa4\xbb#"S\xfbLD\'\'\'\x8b\x8b\x8b\x1a\xd0\xbcnvwS\
\x11\xeb\xba\xbe\xba\xbab"\xfa\xf8\xf8\xb0\xd6"\xdb\x18\xa3y?Q\xf4rcL\x8cq2\
\x99\xb4,\xde\xdf\xdfC\x08\xce9\x00!;\xe7LD\xcc\x1cc\x14\x11Ds\xce\x88\xa6\
\x94b\x8c___-\x84\xf7\x9e\x99{\xbd\x9es.\xc6\xe8\x9c\x13\x91\x9cs\xd349gf\
\xb6\xd6\xe2f}\xf1\xde7M\xf3\r\xc1\xcc\xe0o\xadu\xce\x01"\xa5\xd4\xef\xf7\
\xb5\x1c"\x02\x11\x11\xc1\xa7\xb5\x96\x99[\x08"\xea\xf5z\xde{c\x8csn0\x18\
\xe4\x9c\xcb\xb2|~~F\xcd\x1b\x1b\x1bUU-,,[EMAIL PROTECTED]
\x91\xc51<\xb1\x00\xfa\xf6\xf6\xf6\xf8\xf8HDwwwUU\xb5\xfe1;\xe7\x98\x19\xc4q\
\xd0\xaaT\x08\xa3Z\xef\xfd\xf2\xf2\xf2\xcd\xcd\r3___\xaf\xac\xac\x00\x02i(\
\xd9Z\x9bR\x12\x91i\x0b4\xf5\xe0\xe0\xe0\xfe\xfe\xfe\xe1\xe1\xe1\xe9\xe9\xe9\
\xf8\xf8\xb8\xdbl\xea]\xab \x02\xe0\xa6,\x88h\x7f\x7f\x9f\x99G\xa3QQ\x14\xc3\
\xe1P\xa1q\x0c\x99\xad\x16\x08h\xcf(\xc4\xd2\xd2\xd2\xee\xeen]\xd7{{{EQ(\x8b\
?\r\xf2\xdd\xa9\xac\xf4\xe0\xa8\xd6\xc2\xccgggkkk\xc3\xe1\x10\xe6i\xa61\x86\
\xd9\xc5\xf8\xeb{F\xb4\xa9\xa7F`uu\xf5\xf4\xf4\x94\x88\x9a\xa6\xd1B\xbaz\xa1\
\x90\x16\x1eV!P\xd7u\x08\x01}%"!\x84\xa2(>??\x15\x1d&\x8aH\x8c\xb1\xd5\x02\
\xed\xacR\xcf\xcc\xcc\xcc\xcf\xcf\xa3s\xfa\xfd\xfe\xec\xec\xac1f4\x1a\x95e97\
7W\x96\xe5\xe1\xe1\xa1\xf6\xd17\x0b\xf8\x0cl\xd4\xd5%,"\xe3\xf1\xf8\xf5\xf55\
\x840\x18\x0c\xc6\xe31\xeek\x1dP!AAg,\xe7\x9cR\xca9;\xe7\xbc\xf7[[[\x17\x17\
\x17\xeb\xeb\xeb\xe7\xe7\xe7\x9b\x9b\x9b\x98\x06\xdc\xd4\x0e\x183c\xb7\xab\
\xfc\xd4\xda\xde\xde\xae\xaajggG\xdb\xf4\xaf1\xc3\xb5]\xc1\xa7\x0c\x02\xe8\
\xd1\xd1\x11TC(\xa5DD\x8c\xb7\xc9d\x12c\xecBP\xe7O\xf5\xcf\x15B\x80\xd9,"\
\xb7\xb7\xb7\xff\xcb\xfb\xb9\xa6z\x87\x88~\x03!\x94ZC\xeb\xb8\xaf\xa0\x00\
\x00\x00\x00IEND\xaeB`\x82'



def main():
        files = sys.argv[1:]
        app = dabo.dApp()
        app.setAppInfo("appName", "Dabo Editor")
        app.setAppInfo("appShortName", "DaboEditor")
        app.MainFormClass = None
        app.setup()

        frm = EditorForm()
        frm.onFileNew(None)
        for file in files:
                frm.openFile(file)
        frm.show()
                
        app.start()
        
if __name__ == "__main__":
        main()




--
-Echo

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users

Reply via email to