# -*- coding: iso-8859-1 -*-

"""
    MoinMoin - UserSmileys

    UserSmileys is a solution suggestion for user smileys and subtraction of smileys.

    See FeatureRequests/SubtractSmileys
    See http://moinmoin.wikiwikiweb.de/FeatureRequests/SubtractSmileys


    Installation:

        Place UserSmiley.py in your wikipath, i.e. in the same directory as
          * moin.py
          * wikiconfig.py
          * wikiserverconfig.py


    Usage:

        UserSmiley.py defines 4 functions:
          has_smiley( key ) -- to ask if a smiley exists
          add_smiley( key, width, height, border, filename ) -- to add a smiley - currently a probably existing smiley will be redefined
          redefine_smiley( key, width, height, border, filename ) -- to redefine a smiley - a probably existing smiley will be removed, the new smiley will be added
          remove_smiley( key ) -- to remove an existing smiley

        Call this functions from your wikiconfig.py.
        This ensures you can define the smileys on a wiki-by-wiki basis.

        Example (from wikiconfig.py):

            # user smiley management
            # remove some unwanted smileys:
            if True:
                UserSmileys.remove_smiley(':(')
                UserSmileys.remove_smiley(':-(')
                UserSmileys.remove_smiley(':-?')
                UserSmileys.remove_smiley(':o')
                UserSmileys.remove_smiley('{*}')
                UserSmileys.remove_smiley('{o}')
                UserSmileys.remove_smiley('|-)')

                UserSmileys.remove_smiley(':)')
                UserSmileys.remove_smiley(';)')
                UserSmileys.remove_smiley('<:(')
                UserSmileys.remove_smiley(':))')
                UserSmileys.remove_smiley(':\\')
                UserSmileys.remove_smiley('>:>')
                UserSmileys.remove_smiley('X-(')
                UserSmileys.remove_smiley('|)')

            # redefine some flags:
            if True:
                UserSmileys.redefine_smiley('{en}',18,12,0,'flag-en-normal.png')
                UserSmileys.redefine_smiley('{es}',18,12,0,'flag-es-normal.png')
                UserSmileys.redefine_smiley('{us}',18,12,0,'flag-us-normal.png')
                UserSmileys.redefine_smiley('{fi}',18,12,0,'flag-fi-border.png')
                UserSmileys.redefine_smiley('{ja}',18,12,0,'flag-ja-border.png')
                UserSmileys.redefine_smiley('{ko}',18,12,0,'flag-ko-border.png')

            # add some flags:
            if True:
                UserSmileys.add_smiley('{au}',18,12,0,'flag-au-normal.png')


    Tests:

        This feature has been successfully tested with MoinMoin version MoinDesktop_1.3.4-2 (zipped standalone version) and python 2.4
"""

from MoinMoin import config

def has_smiley(key):
    return config.smileys.has_key[key]


def add_smiley(key, width, height, border, filename ):
    print "Performing add_smiley() ..."

    config.smileys[key] = (width, height, border, filename)
    return


def redefine_smiley(key, width, height, border, filename ):
    print "Performing redefine_smiley() ..."

    remove_smiley(key)
    add_smiley(key, width, height, border, filename)
    return


def remove_smiley(key):
    print "Performing remove_smiley() ..."

    if config.smileys.has_key( key ):
        del config.smileys[key]

    return

