Code Search for Developers
 
 
  

appgenpage.py from The Nebula Device at Krugle


Show appgenpage.py syntax highlighted

#----------------------------------------------------------------------
#  appgenpage.py
#
#  (C)2005 Kim, Hyoun Woo
#----------------------------------------------------------------------
import wx
import wx.wizard as wiz
import glob, os, time
from common import *

STR_MISSING_PARAMS = """\
Please ensure you've selected the output directory 
"""

#----------------------------------------------------------------------
#  Application general specification page.
#----------------------------------------------------------------------
class AppGenPage(wiz.PyWizardPage):
    def __init__(self, parent, title, homeDir):
        #wiz.WizardPageSimple.__init__(self, parent)
        wiz.PyWizardPage.__init__(self, parent)

        # create a sizer of this page.
        self.sizerA = makePageTitle(self, title)

        defaultOutputDir = os.path.join(homeDir, 'code')

        self.outputDirLabel = wx.StaticText(self, -1, 'Output Dir')
        self.outputDirTextBox = wx.TextCtrl(self, -1, defaultOutputDir, 
                                            (0, 0), (250, 21))

        self.outputDirBtn = wx.Button(self, -1, 'Browse...')
        self.Bind(wx.EVT_BUTTON, self.OnOutputDirBtn, self.outputDirBtn)

        self.moduleSubdirLabel = wx.StaticText(self, -1, 'Module Subdir')
        self.moduleSubdirTextBox = wx.TextCtrl(self, -1, '', 
                                               (0, 0), (200, 21))

        self.companyNameLabel = wx.StaticText(self, -1, 'Company Name')
        self.companyNameTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21))

        self.authorLabel = wx.StaticText(self, -1, 'Author')
        self.authorTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21))

        self.docGroupLabel = wx.StaticText(self, -1, 'Doxygen Group')
        self.docGroupTextBox = wx.TextCtrl(self, -1, '', (0, 0), (200, 21))

        # Layout
        sizerB = wx.GridBagSizer(4, 6)

        # row 0
        sizerB.Add(self.outputDirLabel, (0, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.outputDirTextBox, (0, 1),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        # row 1
        sizerB.Add(self.outputDirBtn, (1, 1),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        # row 2
        sizerB.Add(self.moduleSubdirLabel, (2, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.moduleSubdirTextBox, (2, 1), flag = wx.EXPAND)
        #
        sizerB.Add(self.companyNameLabel, (3, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.companyNameTextBox, (3, 1), flag = wx.EXPAND)      
        # row 5 
        sizerB.Add(self.authorLabel, (4, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.authorTextBox, (4, 1), flag = wx.EXPAND)
        # row 6 
        sizerB.Add(self.docGroupLabel, (5, 0),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.docGroupTextBox, (5, 1), flag = wx.EXPAND)
        # row 7

        self.sizerA.Add(sizerB, 0, wx.ALL, 6)
        self.sizerA.Fit(self)
        self.SetSizer(self.sizerA)

    #--------------------------------------------------------------------------
    # Called when the Browse... button is clicked.
    #--------------------------------------------------------------------------
    def OnOutputDirBtn(self, evt):
        dlg = wx.DirDialog(self, "Choose output directory:", 
                           self.outputDirTextBox.GetValue().strip(),
                           style=wx.DD_DEFAULT_STYLE|wx.DD_NEW_DIR_BUTTON)
        if dlg.ShowModal() == wx.ID_OK:
            self.outputDirTextBox.SetValue(dlg.GetPath())
        dlg.Destroy()

    def SetPrev(self, prev):
        self.prev = prev

    def SetNext(self, next):
        self.next = next

    def GetNext(self):
        return self.next

    def GetPrev(self):
        return self.prev

    #--------------------------------------------------------------------------
    # Check the validation of this page.
    #--------------------------------------------------------------------------
    def validate(self):
        valid = True
        if self.outputDirTextBox.GetValue().strip() == '':
            valid = False

        if not valid:
            dlg = wx.MessageDialog(self, STR_MISSING_PARAMS,
                                   'AppWizard', 
                                   wx.ICON_EXCLAMATION|wx.OK )
            dlg.ShowModal()
            dlg.Destroy() 

        return valid

#----------------------------------------------------------------------
# EOF 
#----------------------------------------------------------------------




See more files for this project here

The Nebula Device

Realtime 3D game/visualization engine, written in C++, scriptable through Tcl/Tk, Python and Lua. Supports D3D and OpenGL for rendering, runs under Linux and Windows.

Project homepage: http://sourceforge.net/projects/nebuladevice
Programming language(s): C,C++,Python
License: other

  template/
    app.sbld
    app.sc
    napp.sh
    napp_cmds.sc
    napp_main.sc
    nappstate.sh
    nappstate_cmds.sc
    nappstate_main.sc
  __init__.py
  appentrypage.py
  appframe.py
  appgenpage.py
  appmodpage.py
  bldpage.py
  common.py
  disppage.py
  finpage.py
  readme.txt
  scripthelper.py
  titlepage.py
  wizimage1.py