##---------------------------------------------------------------------------##
##
## PySol -- a Python Solitaire game
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; see the file COPYING.
## If not, write to the Free Software Foundation, Inc.,
## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
##---------------------------------------------------------------------------##

import sys, os, locale
import traceback
import gettext

import settings

# /***********************************************************************
# // init
# ************************************************************************/

def init():

    if os.name == 'nt' and not os.environ.has_key('LANG'):
        try:
            l = locale.getdefaultlocale()
            os.environ['LANG'] = l[0]
        except:
            pass
    ##locale.setlocale(locale.LC_ALL, '')

    ##locale_dir = 'locale'
    locale_dir = None
    if os.path.isdir(sys.path[0]):
        d = os.path.join(sys.path[0], 'locale')
    else:
        # i.e. library.zip
        d = os.path.join(os.path.dirname(sys.path[0]), 'locale')
    if os.path.exists(d) and os.path.isdir(d):
        locale_dir = d
    ##if locale_dir: locale_dir = os.path.normpath(locale_dir)
    gettext.install('pysol', locale_dir, unicode=True)

    if os.environ.has_key('PYSOL_CHECK_GAMES') or \
           os.environ.has_key('PYSOL_DEBUG'):
        settings.CHECK_GAMES = True
        print 'PySol debugging: set CHECK_GAMES to True'
    if os.environ.has_key('PYSOL_DEBUG'):
        try:
            settings.DEBUG = int(os.environ['PYSOL_DEBUG'])
        except:
            settings.DEBUG = 1
        print 'PySol debugging: set DEBUG to', settings.DEBUG

    ## init toolkit
    if '--gtk' in sys.argv:
        settings.TOOLKIT = 'gtk'
        sys.argv.remove('--gtk')
    elif '--tk' in sys.argv:
        settings.TOOLKIT = 'tk'
        settings.USE_TILE = False
        sys.argv.remove('--tk')
    elif '--tile' in sys.argv:
        settings.TOOLKIT = 'tk'
        settings.USE_TILE = True
        sys.argv.remove('--tile')
    elif settings.TOOLKIT == 'tk' and settings.USE_TILE == 'auto':
        # check tile
        import Tkinter
        from Tkinter import TclError
        root = Tkinter.Tk()
        #
        # TkAqua displays the console automatically in application
        # bundles, so we hide it here.
        from macosx.appSupport import hideTkConsole
        #
        hideTkConsole(root)
        root.withdraw()
        settings.USE_TILE = False
        try:
            root.tk.call('package', 'require', 'tile', '0.7.8')
        except TclError:
            pass
        else:
            settings.USE_TILE = True
        #root.destroy()
        Tkinter._default_root = None