home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.6)
-
- import config
- import sys
- from path import path
- inited = False
- if config.platform == 'win':
- import ctypes
- SHGFP_TYPE_DEFAULT = 1
- MAX_PATH = 260
- u_buffer = ctypes.create_unicode_buffer(MAX_PATH)
- s_buffer = ctypes.create_string_buffer(MAX_PATH)
- SHGetFolderPath = ctypes.windll.shell32.SHGetFolderPathW
-
- def GetSpecialFolder(csidl):
- SHGetFolderPath(None, csidl, None, SHGFP_TYPE_DEFAULT, ctypes.byref(u_buffer))
- return u_buffer.value
-
-
- class SHItemID(ctypes.Structure):
- _fields_ = [
- ('cb', ctypes.c_ushort),
- ('abID', ctypes.POINTER(ctypes.c_byte))]
-
-
- class ItemIDList(ctypes.Structure):
- _fields_ = [
- ('mkid', SHItemID)]
-
- SHGetFolderLocation = ctypes.windll.shell32.SHGetFolderLocation
- SHGetPathFromIDList = ctypes.windll.shell32.SHGetPathFromIDList
-
- def GetFolderLocation(csidl):
- idl = ItemIDList()
- idl.mkid.cb = ctypes.sizeof(ctypes.c_ushort)
- pidl = ctypes.pointer(idl)
-
- try:
- if SHGetFolderLocation(0, csidl, 0, 0, ctypes.byref(pidl)):
- raise WindowsError(ctypes.GetLastError())
- SHGetFolderLocation(0, csidl, 0, 0, ctypes.byref(pidl))
- if not SHGetPathFromIDList(pidl, s_buffer):
- raise WindowsError(ctypes.GetLastError())
- SHGetPathFromIDList(pidl, s_buffer)
- except WindowsError:
- return GetSpecialFolder(csidl)
-
- return s_buffer.value
-
-
-
- def init(reinit = False):
- global inited
- if inited and not reinit:
- return None
- inited = True
- init_wx()
- sys.is_portable = False
- if not (sys.DEV) or sys.opts.allow_portable:
-
- try:
- init_portable()
- except Exception:
- not reinit
- not reinit
- sys.is_portable = False
- except:
- not reinit
-
- sys.is_portable = True
-
-
-
- def __res_dir():
- import locale
- if hasattr(sys, 'frozen') and sys.frozen == 'windows_exe':
- prog_dir = path(sys.executable.decode(locale.getpreferredencoding())).abspath().dirname()
- else:
- import digsbypaths
- prog_dir = path(digsbypaths.__file__).parent
- return prog_dir / 'res'
-
-
- def init_portable():
- import syck
-
- try:
- f = _[1]
- usb_info = syck.load(f)
- finally:
- pass
-
- for name in usb_info.keys():
- usb_info[name] = path(usb_info[name]).abspath()
-
- _set_paths(**usb_info)
-
-
- def GetAppDir():
- return path(sys.executable).parent
-
-
- def GetTempDir():
- import os
- for p in ('TMPDIR', 'TMP', 'TEMP'):
-
- try:
- return os.environ[p]
- continue
- except KeyError:
- continue
-
-
-
- return GetFolderLocation(CSIDL.LOCAL_APPDATA) + '\\Temp'
-
-
- def init_wx_old():
- import wx
- s = wx.StandardPaths.Get()
- _set_paths(config = s.GetConfigDir(), data = s.GetDataDir(), documents = s.GetDocumentsDir(), executablepath = s.GetExecutablePath(), localdata = s.GetLocalDataDir(), userconfig = s.GetUserConfigDir(), userdata = s.GetUserDataDir(), userlocaldata = s.GetUserLocalDataDir(), temp = s.GetTempDir())
- if sys.platform == 'win32':
- _winpaths = [
- ('GetUserStartupDir', CSIDL.STARTUP),
- ('GetStartupDir', CSIDL.COMMON_STARTUP),
- ('GetUserDesktopDir', CSIDL.DESKTOP),
- ('GetDesktopDir', CSIDL.COMMON_DESKTOPDIRECTORY)]
- for method_name, csidl in _winpaths:
- setattr(wx.StandardPaths, method_name, (lambda p, id = csidl: p.GetFolderLocation(id)))
-
- _set_paths(userstartup = s.GetUserStartupDir(), startup = s.GetStartupDir(), userdesktop = s.GetUserDesktopDir(), desktop = s.GetDesktopDir())
-
-
-
- def init_wx(appname = 'Digsby'):
- if config.platform != 'win':
- return init_wx_old()
- paths = [
- ('GetConfigDir', CSIDL.COMMON_APPDATA, True),
- ('GetDataDir', GetAppDir),
- ('GetDocumentsDir', CSIDL.PERSONAL, False),
- ('GetExecutablePath', (lambda : sys.executable)),
- ('GetLocalDataDir', GetAppDir),
- ('GetUserConfigDir', CSIDL.APPDATA, False),
- ('GetUserDataDir', CSIDL.APPDATA, True),
- ('GetUserLocalDataDir', CSIDL.LOCAL_APPDATA, True),
- ('GetUserLocalConfigDir', CSIDL.LOCAL_APPDATA, False),
- ('GetTempDir', GetTempDir)]
- Storage = Storage
- import util.primitives.mapping
- s = Storage()
- for p in paths:
- name = p[0]
- if hasattr(p[1], '__call__'):
- s[name] = p[1]
- continue
- config.platform != 'win'
- csidl = p[1]
- append_app_name = p[2]
- if append_app_name:
-
- method = lambda id = (csidl,): GetFolderLocation(id) + '\\' + appname
- else:
-
- method = lambda id = csidl: GetFolderLocation(id)
- setattr(s, name, method)
-
- _set_paths(config = s.GetConfigDir(), data = s.GetDataDir(), documents = s.GetDocumentsDir(), executablepath = s.GetExecutablePath(), localdata = s.GetLocalDataDir(), userconfig = s.GetUserConfigDir(), userdata = s.GetUserDataDir(), userlocaldata = s.GetUserLocalDataDir(), userlocalconfig = s.GetUserLocalConfigDir(), temp = s.GetTempDir())
- _winpaths = [
- ('GetUserStartupDir', CSIDL.STARTUP),
- ('GetStartupDir', CSIDL.COMMON_STARTUP),
- ('GetUserDesktopDir', CSIDL.DESKTOP),
- ('GetDesktopDir', CSIDL.COMMON_DESKTOPDIRECTORY)]
- for method_name, csidl in _winpaths:
- setattr(s, method_name, (lambda id = csidl: GetFolderLocation(id)))
-
- _set_paths(userstartup = s.GetUserStartupDir(), startup = s.GetStartupDir(), userdesktop = s.GetUserDesktopDir(), desktop = s.GetDesktopDir())
-
- if sys.platform == 'win32':
-
- class CSIDL(object):
- DESKTOP = 0
- INTERNET = 1
- PROGRAMS = 2
- CONTROLS = 3
- PRINTERS = 4
- PERSONAL = 5
- FAVORITES = 6
- STARTUP = 7
- RECENT = 8
- SENDTO = 9
- BITBUCKET = 10
- STARTMENU = 11
- MYDOCUMENTS = 12
- MYMUSIC = 13
- MYVIDEO = 14
- DESKTOPDIRECTORY = 16
- DRIVES = 17
- NETWORK = 18
- NETHOOD = 19
- FONTS = 20
- TEMPLATES = 21
- COMMON_STARTMENU = 22
- COMMON_PROGRAMS = 23
- COMMON_STARTUP = 24
- COMMON_DESKTOPDIRECTORY = 25
- APPDATA = 26
- PRINTHOOD = 27
- LOCAL_APPDATA = 28
- ALTSTARTUP = 29
- COMMON_ALTSTARTUP = 30
- COMMON_FAVORITES = 31
- INTERNET_CACHE = 32
- COOKIES = 33
- HISTORY = 34
- COMMON_APPDATA = 35
- WINDOWS = 36
- SYSTEM = 37
- PROGRAM_FILES = 38
- MYPICTURES = 39
- PROFILE = 40
- SYSTEMX86 = 41
- PROGRAM_FILESX86 = 42
- PROGRAM_FILES_COMMON = 43
- PROGRAM_FILES_COMMONX86 = 44
- COMMON_TEMPLATES = 45
- COMMON_DOCUMENTS = 46
- COMMON_ADMINTOOLS = 47
- ADMINTOOLS = 48
- CONNECTIONS = 49
- COMMON_MUSIC = 53
- COMMON_PICTURES = 54
- COMMON_VIDEO = 55
- RESOURCES = 56
- RESOURCES_LOCALIZED = 57
- COMMON_OEM_LINKS = 58
- CDBURN_AREA = 59
-
-
-
- def _set_paths(**d):
- for k in d.keys():
- v = path(d[k]).abspath()
- globals()[k] = v
- if v.isfile():
- continue
-
- if not v.isdir():
-
- try:
- v.makedirs()
- except Exception:
- import traceback
- traceback.print_exc()
- except:
- None<EXCEPTION MATCH>Exception
-
-
- None<EXCEPTION MATCH>Exception
-
-
-