from PSPApp import *
import PSPUtils

def ScriptProperties():
    return {
        'Author': 'Angela M. Cable',
        'Copyright': '2002, for freeware distribution only',
        'Description': "Color reticulation effect",
        'Host': 'Paint Shop Pro',
        'Host Version': '8.00'
        }

def Do(Environment):
    if not PSPUtils.IsTrueColor(Environment, App.TargetDocument):
        # IncreaseColorsTo16Million
        App.Do( Environment, 'IncreaseColorsTo16Million', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            })

    App.Do( Environment, 'LayerDuplicate', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default
                }
            })

    App.Do( Environment, 'SelectLayer', {
            'Path': (0,-1,[],App.Constants.Boolean.false), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent
                }
            })

    App.Do( Environment, 'LayerDuplicate', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default
                }
            })

    App.Do( Environment, 'EdgePreservingSmooth', {
            'SmoothingFactor': 30, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

    App.Do( Environment, 'SelectLayer', {
            'Path': (0,1,[],App.Constants.Boolean.false), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent
                }
            })

    App.Do( Environment, 'ColoredEdges', {
            'Intensity': 7, 
            'Blur': 3, 
            'Color': (0,0,0), 
            'Luminance': 31, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

    App.Do( Environment, 'EnhanceEdgesMore', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default
                }
            })

    App.Do( Environment, 'EnhanceEdgesMore', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default
                }
            })

    App.Do( Environment, 'SaltAndPepper', {
            'SpeckSize': 15, 
            'Sensitivity': 5, 
            'IncludeAllLowerSizes': App.Constants.Boolean.true, 
            'Agressive': App.Constants.Boolean.false, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

    App.Do( Environment, 'ColorAdjustHSL', {
            'HSL': {
                'Colorize': App.Constants.Boolean.false, 
                'Master': (0,-100,0), 
                'MasterColorize': (8,25,0), 
                'Red': (0,0,0,315,345,15,45), 
                'Green': (0,0,0,75,105,135,165), 
                'Blue': (0,0,0,195,225,255,285), 
                'Cyan': (0,0,0,135,165,195,225), 
                'Magenta': (0,0,0,255,285,315,345), 
                'Yellow': (0,0,0,15,45,75,105)
                }, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

    App.Do( Environment, 'HistogramAdjustment', {
            'LuminanceChannel': {
                'Appearance': 0, 
                'Gamma': 1.000, 
                'HighClipLimit': 158, 
                'HighClipLimitPercentage': None, 
                'LowClipLimit': 0, 
                'LowClipLimitPercentage': None, 
                'MaxOutput': 255, 
                'MinOutput': 0
                }, 
            'RedChannel': {
                'Appearance': 0, 
                'Gamma': 1.000, 
                'HighClipLimit': 255, 
                'HighClipLimitPercentage': None, 
                'LowClipLimit': 0, 
                'LowClipLimitPercentage': None, 
                'MaxOutput': 255, 
                'MinOutput': 0
                }, 
            'GreenChannel': {
                'Appearance': 0, 
                'Gamma': 1.000, 
                'HighClipLimit': 255, 
                'HighClipLimitPercentage': None, 
                'LowClipLimit': 0, 
                'LowClipLimitPercentage': None, 
                'MaxOutput': 255, 
                'MinOutput': 0
                }, 
            'BlueChannel': {
                'Appearance': 0, 
                'Gamma': 1.000, 
                'HighClipLimit': 255, 
                'HighClipLimitPercentage': None, 
                'LowClipLimit': 0, 
                'LowClipLimitPercentage': None, 
                'MaxOutput': 255, 
                'MinOutput': 0
                }, 
            'TargetChannel': 0, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

    App.Do( Environment, 'LayerProperties', {
            'General': {
                'Opacity': None, 
                'Name': None, 
                'IsVisible': None, 
                'IsTransparencyLocked': None, 
                'LinkSet': None, 
                'UseHighlight': None, 
                'PaletteHighlightColor': None, 
                'GroupLink': None, 
                'BlendMode': App.Constants.BlendMode.SoftLight
                }, 
            'BlendRanges': None, 
            'Path': (0,0,[],App.Constants.Boolean.false), 
            'BrightnessContrast': None, 
            'ChannelMixer': None, 
            'ColorBalance': None, 
            'CurveParams': None, 
            'HSL': None, 
            'Threshold': None, 
            'Levels': None, 
            'Posterize': None, 
            'Mask': None, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'PreviewVisible': App.Constants.Boolean.true, 
                'AutoProof': App.Constants.Boolean.false
                }
            })

