# Path: wh.py
# def SetLoaddir(d):
#   def __init__(self, frame):
#   def Add(self, flags, keycode, cmd):
#   def GetTable(self):
#   def Realize(self):
#   def __init__(self, parent):
#   def OnLabelLeftClick(self, evt):
#   def GetAllSelectedRows(self):
#   def quoteVal(self, val, quoteChar):
#   def GetAllSelectedCellValues(self, withLabel=True):
#   def __init__(self, frame, size=32, style=wx.TB_FLAT|wx.TB_NODIVIDER):
#   def Enable(self, procOrId, how=None):
#   def AddCheck(self, procOrCls, text=None, bitmap=None):
#   def Add(self, procOrCls, text=None, bitmap=None, kind=wx.ITEM_NORMAL):
#   def __init__(self, frame, config=None):
#   def _currentDirectory(self):
#   def _makePatterns(self, filePatterns):
#   def _saveFile(self, wnd, contents, filePatterns, message, filename):
#   def OpenFile(self, wnd, filePatterns, message=None, filename=None):
#   def SaveFile(self, wnd, content, filePatterns, message=None):
#   def SaveFileAs(self, wnd, content, filePatterns, message=None):
#   def OnSelectFile(self, evt):
#   def GetRecentFilesMenu(self):
#   def _handleMenu(self):
#   def _handleConfig(self):
# def localizePath(path):
# def modPath(name, mod):
# def evalAsPython(val, default=None):
# def GetIcon(name, module=None):
# def GetBitmap(name, module=None):
#   def __init__(self, wnd, proc):
#   def __init__(self, menuOwner=None):
#   def Popup(self, evt):
#   def getId(self, something):
#   def Enable(self, something, how):
#   def IsEnabled(self, something):
#   def Check(self, something, how):
#   def IsChecked(self, something):
#   def Add(self, onproc, name, desc=None, id=-1, macproc=None):
#   def AddCheck(self, onproc, name, desc, how=True):
#   def AppendOneMenu(self, menu, txt, help=None):
#   def Dup(self):
#   def getRepr(self, m, indentstr):
#   def __str__(self):
# def YesNo(b):
# def xlt(s): # translate
# def removeSmartQuote(txt):
# def quoteIfNeeded(txt, quoteChar='"'):
# def shlexSplit(str, sep):
# def copytree(src, dst, symlinks=False, ignore=None, replace=True):
#   def __init__(self, str=None):
#   def setString(self, items):
#   def getList(self):
#   def getString(self):
# def restoreSize(unused_name, unused_defSize=None, unused_defPos=None):
# def breakLines(text, breakLen=80):
# def splitValUnit(value):
# def strToIsoDate(val):
# def utc2local(value):
# def isoDateToStr(value):
# def timeToFloat(value):
# def floatToTime(value, nk=1):
# def prettyTime(val, nk=1):
# def prettyDate(val, long=True):
# def sizeToFloat(value):
# def prettySize(val):
# def floatToSize(val, resolution=0):
# class AcceleratorHelper:
# class Grid(wx.grid.Grid):
# class ToolBar(wx.ToolBar):
# class FileManager:
# class Timer(wx.Timer):
# class Menu(wx.Menu):
# class ParamDict(dict):


import version
import wx
import logger
import adm
import sys,os
import xmlres
import config
import getopt
import frame
from wh import StringType, SetLoaddir
    from version import vendor, vendorDisplay
              if s:
                child="%s:%s" % (str(s), ni['class'].__name__)
              else:
                child=ni['class'].__name__
              childlist.append(child)

        childlist.sort()
        for child in childlist:
          cn=child[child.find(':')+1:]
          nodeinfo['children'].append(cn)

      mod.moduleinfo['nodes']=nodelist

      # sort and remember module menuinfo
      menus=[]
      for mi in menulist:
        cls=mi['class']
        if hasattr(cls, "OnExecute"):
          cls.OnExecute._classname_=cls.__name__
        else:
          logger.debug("Menu %s has no OnExecute", str(cls))
          continue
        nodeclasses=mi.get('nodeclasses')
        if nodeclasses:
          if isinstance(nodeclasses, str):
            nodeclasses=nodeclasses.split(' ')
          elif not isinstance(nodeclasses, list):
            nodeclasses=[nodeclasses]
          ncs=[]
          for nc in nodeclasses:

# Path: wh.py
# def SetLoaddir(d):
#   def __init__(self, frame):
#   def Add(self, flags, keycode, cmd):
#   def GetTable(self):
#   def Realize(self):
#   def __init__(self, parent):
#   def OnLabelLeftClick(self, evt):
#   def GetAllSelectedRows(self):
#   def quoteVal(self, val, quoteChar):
#   def GetAllSelectedCellValues(self, withLabel=True):
#   def __init__(self, frame, size=32, style=wx.TB_FLAT|wx.TB_NODIVIDER):
#   def Enable(self, procOrId, how=None):
#   def AddCheck(self, procOrCls, text=None, bitmap=None):
#   def Add(self, procOrCls, text=None, bitmap=None, kind=wx.ITEM_NORMAL):
#   def __init__(self, frame, config=None):
#   def _currentDirectory(self):
#   def _makePatterns(self, filePatterns):
#   def _saveFile(self, wnd, contents, filePatterns, message, filename):
#   def OpenFile(self, wnd, filePatterns, message=None, filename=None):
#   def SaveFile(self, wnd, content, filePatterns, message=None):
#   def SaveFileAs(self, wnd, content, filePatterns, message=None):
#   def OnSelectFile(self, evt):
#   def GetRecentFilesMenu(self):
#   def _handleMenu(self):
#   def _handleConfig(self):
# def localizePath(path):
# def modPath(name, mod):
# def evalAsPython(val, default=None):
# def GetIcon(name, module=None):
# def GetBitmap(name, module=None):
#   def __init__(self, wnd, proc):
#   def __init__(self, menuOwner=None):
#   def Popup(self, evt):
#   def getId(self, something):
#   def Enable(self, something, how):
#   def IsEnabled(self, something):
#   def Check(self, something, how):
#   def IsChecked(self, something):
#   def Add(self, onproc, name, desc=None, id=-1, macproc=None):
#   def AddCheck(self, onproc, name, desc, how=True):
#   def AppendOneMenu(self, menu, txt, help=None):
#   def Dup(self):
#   def getRepr(self, m, indentstr):
#   def __str__(self):
# def YesNo(b):
# def xlt(s): # translate
# def removeSmartQuote(txt):
# def quoteIfNeeded(txt, quoteChar='"'):
# def shlexSplit(str, sep):
# def copytree(src, dst, symlinks=False, ignore=None, replace=True):
#   def __init__(self, str=None):
#   def setString(self, items):
#   def getList(self):
#   def getString(self):
# def restoreSize(unused_name, unused_defSize=None, unused_defPos=None):
# def breakLines(text, breakLen=80):
# def splitValUnit(value):
# def strToIsoDate(val):
# def utc2local(value):
# def isoDateToStr(value):
# def timeToFloat(value):
# def floatToTime(value, nk=1):
# def prettyTime(val, nk=1):
# def prettyDate(val, long=True):
# def sizeToFloat(value):
# def prettySize(val):
# def floatToSize(val, resolution=0):
# class AcceleratorHelper:
# class Grid(wx.grid.Grid):
# class ToolBar(wx.ToolBar):
# class FileManager:
# class Timer(wx.Timer):
# class Menu(wx.Menu):
# class ParamDict(dict):


# Path: main.py
import version
import wx
import logger
import adm
import sys,os
import xmlres
import config
import getopt
import frame
from wh import StringType, SetLoaddir
    from version import vendor, vendorDisplay

              if s:
                child="%s:%s" % (str(s), ni['class'].__name__)
              else:
                child=ni['class'].__name__
              childlist.append(child)

        childlist.sort()
        for child in childlist:
          cn=child[child.find(':')+1:]
          nodeinfo['children'].append(cn)

      mod.moduleinfo['nodes']=nodelist

      # sort and remember module menuinfo
      menus=[]
      for mi in menulist:
        cls=mi['class']
        if hasattr(cls, "OnExecute"):
          cls.OnExecute._classname_=cls.__name__
        else:
          logger.debug("Menu %s has no OnExecute", str(cls))
          continue
        nodeclasses=mi.get('nodeclasses')
        if nodeclasses:
          if isinstance(nodeclasses, str):
            nodeclasses=nodeclasses.split(' ')
          elif not isinstance(nodeclasses, list):
            nodeclasses=[nodeclasses]
          ncs=[]
          for nc in nodeclasses:

            if isinstance(nc, StringType):