from PSPApp import *

def ScriptProperties():
    return {
        'Author': 'Jackie Laderoute',
        'Copyright': '2003 - free for personal use. Not for resale.',
        'Description': "Non-destructive to original image.",
        'Host': 'Paint Shop Pro',
        'Host Version': '8.00'
        }

def Do(Environment):
    # Get the starting target document
    OriginalDoc = App.TargetDocument 

    # if running on a background layer promote to a true layer
    LayerInfo = App.Do( Environment, 'ReturnLayerProperties' )
    if LayerInfo[ 'IsBackground' ] == App.Constants.Boolean.true:
        App.Do( Environment, 'LayerPromoteBackground', {
                'GeneralSettings': {
                    'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                    'AutoActionMode': App.Constants.AutoActionMode.Match
                    }
                })

    App.Do( Environment, 'DuplicateWindow', {
            '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
                }
            })

    # Get the Duplicate target document
    DuplicateDoc = App.TargetDocument 

    App.Do( Environment, 'AddBorders', {
            'Bottom': 15, 
            'Left': 15, 
            'Right': 15, 
            'Symmetric': App.Constants.Boolean.true, 
            'Top': 15, 
            'Color': (255,255,255), 
            'DimUnits': App.Constants.UnitsOfMeasure.Pixels, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)

    App.Do( Environment, 'Fill', {
            'BlendMode': App.Constants.BlendMode.Normal, 
            'MatchMode': App.Constants.MatchMode.None, 
            'Material': {
                'Color': (255,255,255), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Identity': 'Material'
                }, 
            'UseForground': App.Constants.Boolean.true, 
            'Opacity': 100, 
            'Point': (1,1), 
            'SampleMerged': App.Constants.Boolean.false, 
            'Tolerance': 200, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)


    App.Do( Environment, 'Copy', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, OriginalDoc)

    App.Do( Environment, 'PasteAsNewLayer', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)

    App.Do( Environment, 'DropShadow', {
            'Blur': 2, 
            'Color': (0,0,0), 
            'Horizontal': 0, 
            'NewLayer': App.Constants.Boolean.false, 
            'Opacity': 50, 
            'Vertical': 0, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)

    App.Do( Environment, 'DropShadow', {
            'Blur': 3, 
            'Color': (0,0,0), 
            'Horizontal': 5, 
            'NewLayer': App.Constants.Boolean.false, 
            'Opacity': 50, 
            'Vertical': 5, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Interactive, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)

    App.Do( Environment, 'LayerMergeAll', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, DuplicateDoc)


    App.Do( Environment, 'FileClose', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default,
                'AutoActionMode': App.Constants.AutoActionMode.Match
                }
            }, OriginalDoc)

