from PSPApp import *
import PSPUtils

# Creates a grey chart.

def ScriptProperties():
    return {
        'Author': 'Jean-Luc Ernst',
        'Copyright': 'Jean-Luc Ernst',
        'Description': "Create a grey chart",
        'Host': 'Paint Shop Pro',
        'Host Version': '8.00'
        }


def Do(Environment):
    App.Do( Environment, 'NewFile', {
            'Width': 600, 
            'Height': 100, 
            'Color Depth': App.Constants.Colordepth.SixteenMillionColor, 
            'Dimension Units': App.Constants.DimensionType.Pixels, 
            'Resolution Units': App.Constants.ResolutionUnits.PixelsPerIn, 
            'Resolution': 200, 
            'FillMaterial': {
                'Color': (255,255,255), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Identity': 'Material'
                }, 
            'Transparent': App.Constants.Boolean.false, 
            'Create as vector': App.Constants.Boolean.false, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            })

    App.Do( Environment, 'SelectDocument', {
            'SelectedImage': 0, 
            'Strict': App.Constants.Boolean.false, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            })

    App.Do( Environment, 'Fill', {
            'BlendMode': App.Constants.BlendMode.Normal, 
            'MatchMode': App.Constants.MatchMode.RGBValue, 
            'Material': {
                'Color': None, 
                'Pattern': None, 
                'Gradient': {
                    'Name': PSPUtils.GradientName, 
                    'GradientType': App.Constants.GradientType.Linear, 
                    'Angle': 90, 
                    'RepeatCount': 0, 
                    'RepeatType': App.Constants.RepeatType.Pad, 
                    'ColorStops': [{
                        'Color': (0,0,0), 
                        'Location': 0, 
                        'Midpoint': 0.5
                        },{
                        'Color': (255,255,255), 
                        'Location': 1, 
                        'Midpoint': 0.5
                        }], 
                    'TransparencyStops': [{
                        'Level': 100, 
                        'Location': 0, 
                        'MidPoint': 0.5
                        },{
                        'Level': 100, 
                        'Location': 1, 
                        'MidPoint': 0.5
                        }], 
                    'CenterPoint': None, 
                    'FocalPoint': None, 
                    'Invert': App.Constants.Boolean.false
                    }, 
                'Texture': None, 
                'Identity': 'Material'
                }, 
            'UseForground': App.Constants.Boolean.true, 
            'Opacity': 100, 
            'Point': (230.5,46.5), 
            'SampleMerged': App.Constants.Boolean.false, 
            'Tolerance': 20, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            })

    App.Do( Environment, 'DecreaseColorsTo256', {
            'Boost': App.Constants.Boolean.false, 
            'BoostAmount': 1, 
            'IncludeWindowsColors': App.Constants.Boolean.false, 
            'ReductionMethod': App.Constants.ReductionMethod.NearestColorMatch, 
            'PaletteMethod': App.Constants.PaletteMethod.OptimizedMedianCut, 
            'ReduceBleeding': App.Constants.Boolean.true, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            })

