-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathGHParameter.cs
More file actions
76 lines (61 loc) · 2.38 KB
/
GHParameter.cs
File metadata and controls
76 lines (61 loc) · 2.38 KB
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
67
68
69
70
71
72
73
74
75
76
using GH_IO.Serialization;
using GH_IO.Types;
using Grasshopper.Kernel;
using Grasshopper.Kernel.Data;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
Original work Copyright (c) 2021 Ali Torabi (ali@parametriczoo.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
*/
namespace GHCustomControls
{
public abstract class GHParameter : GHControl
{
protected GHParameter(string name,string description, object defaultValue,Bitmap toolTipDiagram) :base(name,description, toolTipDiagram)
{
CurrentValue = defaultValue;
}
/// <summary>
/// type of the data stored in parameter
/// </summary>
public abstract GH_Types DataType { get; }
public abstract GH_ParamAccess Access { get; }
internal object _currentValue;
/// <summary>
/// the value stored in the parameter
/// </summary>
public object CurrentValue {
get => _currentValue;
set {
_currentValue = value;
//if (Attributes!= null)
OnValueChanged?.Invoke(this,new ValueChangeEventArgumnet(_currentValue,DataType,Access));
}
}
public event EventHandler<ValueChangeEventArgumnet> OnValueChanged;
}
public class ValueChangeEventArgumnet : EventArgs
{
public GH_Types DataType { get; set; }
public GH_ParamAccess Access { get; set; }
public object Value { get; set; }
public ValueChangeEventArgumnet(object value, GH_Types dataType, GH_ParamAccess access)
{
Value = value;
DataType = dataType;
Access = access;
}
}
}