-
Notifications
You must be signed in to change notification settings - Fork 7
/
CodeLabConfigToken.cs
66 lines (62 loc) · 2.41 KB
/
CodeLabConfigToken.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/////////////////////////////////////////////////////////////////////////////////
// CodeLab for Paint.NET
// Copyright ©2006 Rick Brewster, Tom Jackson. All Rights Reserved.
// Portions Copyright ©2007-2017 BoltBait. All Rights Reserved.
// Portions Copyright ©Microsoft Corporation. All Rights Reserved.
//
// THE CODELAB DEVELOPERS MAKE NO WARRANTY OF ANY KIND REGARDING THE CODE. THEY
// SPECIFICALLY DISCLAIM ANY WARRANTY OF FITNESS FOR ANY PARTICULAR PURPOSE OR
// ANY OTHER WARRANTY. THE CODELAB DEVELOPERS DISCLAIM ALL LIABILITY RELATING
// TO THE USE OF THIS CODE. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
// OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED HEREIN.
//
// Latest distribution: https://www.BoltBait.com/pdn/codelab
/////////////////////////////////////////////////////////////////////////////////
using PaintDotNet.Effects;
using System;
using System.Collections.Generic;
namespace PdnCodeLab
{
public class CodeLabConfigToken : EffectConfigToken
{
internal IEffect UserScriptObject;
internal string UserCode;
internal List<Exception> LastExceptions;
internal List<string> Output;
internal string ScriptName;
internal string ScriptPath;
internal bool Dirty;
internal EffectConfigToken PreviewToken;
internal IReadOnlyCollection<int> Bookmarks;
internal ProjectType ProjectType;
internal CodeLabConfigToken()
{
UserScriptObject = null;
UserCode = "";
LastExceptions = new List<Exception>();
Output = new List<string>();
ScriptName = "Untitled";
ScriptPath = "";
Dirty = false;
PreviewToken = null;
Bookmarks = Array.Empty<int>();
ProjectType = ProjectType.Default;
}
public override object Clone()
{
return new CodeLabConfigToken
{
UserCode = this.UserCode,
UserScriptObject = this.UserScriptObject,
LastExceptions = this.LastExceptions, //Reference copy INTENDED.
Output = this.Output,
ScriptName = this.ScriptName,
ScriptPath = this.ScriptPath,
Dirty = this.Dirty,
PreviewToken = this.PreviewToken,
Bookmarks = this.Bookmarks,
ProjectType = this.ProjectType
};
}
}
}