/
dcolorcombo.lua
77 lines (56 loc) · 1.42 KB
/
dcolorcombo.lua
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
local PANEL = {}
AccessorFunc( PANEL, "m_Color", "Color" )
function PANEL:Init()
self:SetSize( 256, 256 )
self:BuildControls()
self:SetColor( color_white )
end
function PANEL:BuildControls()
--
-- Mixer
--
local mixer = self:Add( "DColorMixer" )
mixer:Dock( FILL )
mixer:DockMargin( 8, 0, 8, 8 )
mixer:SetPalette( false )
mixer:SetAlphaBar( false )
mixer:SetWangs( false )
mixer.ValueChanged = function( slf, color )
self.m_bEditing = true
self:OnValueChanged( color )
self.m_Color = color
self.m_bEditing = false
end
self.Mixer = mixer
self:AddSheet( "", mixer, "icon16/color_wheel.png" )
--
-- Palettes
--
local ctrl = self:Add( "DColorPalette" )
ctrl:Dock( FILL )
ctrl:DockMargin( 8, 0, 8, 8 )
ctrl:SetButtonSize( 16 )
ctrl:SetNumRows( 35 )
ctrl:Reset()
ctrl.OnValueChanged = function( slf, color )
self.m_bEditing = true
self.Mixer:SetColor( color )
self:OnValueChanged( color )
self.m_Color = color
self.m_bEditing = false
end
self.Palette = ctrl
self:AddSheet( "", ctrl, "icon16/palette.png" )
end
function PANEL:IsEditing()
return self.m_bEditing
end
function PANEL:OnValueChanged( newcol )
-- For override
end
function PANEL:SetColor( newcol )
self.m_Color = newcol
self.Mixer:SetColor( newcol )
self.Palette:SetColor( newcol )
end
derma.DefineControl( "DColorCombo", "", PANEL, "DPropertySheet" )