-
Notifications
You must be signed in to change notification settings - Fork 4
/
EqualizerTrackbar.cs
95 lines (81 loc) · 2.19 KB
/
EqualizerTrackbar.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using Echoes;
namespace ModifiedControls
{
public class EqualizerTrackbar : Control
{
float Value;
public float TheValue
{
get { return Value; }
set
{
Value = value;
Refresh();
}
}
public float max;
public float min;
private bool dragging = false;
public EqualizerTrackbar()
{
max = 150;
min = -150;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
g.DrawRectangle(Pens.Blue, 0, 0, Height, Width);
//g.FillRectangle(Pens.Blue,)
}
float GetValueFromCoordinate(int y)
{
if (y > Height) return 0;
if (y < 0) return max;
float range = max - min;
float pixelValueRatio = (float)range / (float)Height;
float value = y * pixelValueRatio;
return max - value;
}
int GetCoordinateFromValue(float v)
{
if (v < min) return (int)min;
if (v > max) return (int)max;
float range = max - min;
float pixelValueRatio = (float)range / (float)Height;
float val = max - v;
val = range - val;
return 0;
//wtf
}
void UpdateToMouse(MouseEventArgs e)
{
TheValue = GetValueFromCoordinate(e.Y);
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
dragging = true;
UpdateToMouse(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
dragging = false;
UpdateToMouse(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
UpdateToMouse(e);
}
}
}