#--------------------------------------------------------------------
#
#   PyGUI - Top level package initialisation
#
#--------------------------------------------------------------------

import sys, types

#  The first item of each of the following pairs is the name of a module
#  to try to import. If the import is successful, the platform-dependent
#  directory named by the second item is used.

_versions = [
	("objc", "Cocoa"),
	("nt", "Win32"),
	("gi.repository.Gtk", "GtkGI"),
	("gtk", "Gtk"),
]

#  
#  The following function exports a class or function from a submodule in
#  such a way that it appears to have been defined directly at the top
#  level of the package. By giving the submodule that defines the class the
#  same name as the class, this provides an autoloading facility that is
#  friendly to application bundling tools.
#

_preserve = []  # Keeps references to replaced modules so they aren't cleared

def export(obj):
	qname = "%s.%s" % (__name__, obj.__name__)
	obj.__module__ = __name__
	mod = sys.modules[qname]
	_preserve.append(mod)
	sys.modules[qname] = obj

#
#  The environment variable PYGUI_IMPLEMENTATION may be set to the
#  name of one of the platform-dependent directories to force that
#  implementation to be used. This can be useful if more than one
#  PyGUI implementation is usable on your setup.
#

from os import environ as _env
_platdir = _env.get("PYGUI_IMPLEMENTATION")
if not _platdir:
	for _testmod, _platdir in _versions:
		try:
			__import__(_testmod)
			break
		except ImportError:
			continue
	else:
		raise ImportError("Unable to find an implementation of PyGUI for this installation")

if _env.get("PYGUI_IMPLEMENTATION_DEBUG"):
	sys.stderr.write("PyGUI: Using implementation: %s\n" % _platdir)

#
#  Append the chosen platform-dependent directory to the search
#  path for submodules of this package.
#

from os.path import join as _join
_here = __path__[0]
__path__.append(_join(_here, _platdir))
__path__.append(_join(_here, "Generic"))

#
#  Import global functions
#

from GUI.Globals import application, run
from GUI.Colors import rgb

#
#  Set up initial resource search path
#

from GUI import Resources
Resources._add_file_path(__file__)
_main_dir = sys.path[0]
Resources._add_directory_path(_main_dir)
Resources._add_directory_path(_main_dir, 1)
#import __main__
#Resources._add_module_path(__main__)
#Resources._add_module_path(__main__, 1)
#print "GUI: resource_path =", Resources.resource_path ###

#
#   Perform global initialisation
#

import GUI.Application

#--------------------------------------------------------------------
#
#   PyGUI - Top level package initialisation
#
#--------------------------------------------------------------------

import sys, types

#  The first item of each of the following pairs is the name of a module
#  to try to import. If the import is successful, the platform-dependent
#  directory named by the second item is used.

_versions = [
	("objc", "Cocoa"),
	("nt", "Win32"),
	("gi.repository.Gtk", "GtkGI"),
	("gtk", "Gtk"),
]

#  
#  The following function exports a class or function from a submodule in
#  such a way that it appears to have been defined directly at the top
#  level of the package. By giving the submodule that defines the class the
#  same name as the class, this provides an autoloading facility that is
#  friendly to application bundling tools.
#

_preserve = []  # Keeps references to replaced modules so they aren't cleared

def export(obj):
	qname = "%s.%s" % (__name__, obj.__name__)
	obj.__module__ = __name__
	mod = sys.modules[qname]
	_preserve.append(mod)
	sys.modules[qname] = obj

#
#  The environment variable PYGUI_IMPLEMENTATION may be set to the
#  name of one of the platform-dependent directories to force that
#  implementation to be used. This can be useful if more than one
#  PyGUI implementation is usable on your setup.
#

from os import environ as _env
_platdir = _env.get("PYGUI_IMPLEMENTATION")
if not _platdir:
	for _testmod, _platdir in _versions:
		try:
			__import__(_testmod)
			break
		except ImportError:
			continue
	else:
		raise ImportError("Unable to find an implementation of PyGUI for this installation")

if _env.get("PYGUI_IMPLEMENTATION_DEBUG"):
	sys.stderr.write("PyGUI: Using implementation: %s\n" % _platdir)

#
#  Append the chosen platform-dependent directory to the search
#  path for submodules of this package.
#

from os.path import join as _join
_here = __path__[0]
__path__.append(_join(_here, _platdir))
__path__.append(_join(_here, "Generic"))

#
#  Import global functions
#

from GUI.Globals import application, run
from GUI.Colors import rgb

#
#  Set up initial resource search path
#

from GUI import Resources
Resources._add_file_path(__file__)
_main_dir = sys.path[0]
Resources._add_directory_path(_main_dir)
Resources._add_directory_path(_main_dir, 1)
#import __main__
#Resources._add_module_path(__main__)
#Resources._add_module_path(__main__, 1)
#print "GUI: resource_path =", Resources.resource_path ###

#
#   Perform global initialisation
#

import GUI.Application

#-------------------------------------------------------------------- # #   PyGUI - Top level package initialisation # #-------------------------------------------------------------------- #  The first item of each of the following pairs is the name of a module #  to try to import. If the import is successful, the platform-dependent #  directory named by the second item is used. # #  The following function exports a class or function from a submodule in #  such a way that it appears to have been defined directly at the top #  level of the package. By giving the submodule that defines the class the #  same name as the class, this provides an autoloading facility that is #  friendly to application bundling tools. # # Keeps references to replaced modules so they aren't cleared # #  The environment variable PYGUI_IMPLEMENTATION may be set to the #  name of one of the platform-dependent directories to force that #  implementation to be used. This can be useful if more than one #  PyGUI implementation is usable on your setup. # # #  Append the chosen platform-dependent directory to the search #  path for submodules of this package. # # #  Import global functions # # #  Set up initial resource search path # #import __main__ #Resources._add_module_path(__main__) #Resources._add_module_path(__main__, 1) #print "GUI: resource_path =", Resources.resource_path ### # #   Perform global initialisation #