myspace / CommonLua /X /XHistogram.lua
sirnii's picture
Upload 1816 files
b6a38d7 verified
raw
history blame
1.65 kB
DefineClass.XHistogram = {
__parents = {"XWindow"},
type = "L",
color = RGB(128, 128, 128),
Background = RGB(255, 255, 255),
value = false,
}
function XHistogram:SetValue(v)
if self.value ~= v then
UIL.Invalidate()
end
self.value = v
end
function XHistogram:DrawContent()
if self.value then
DrawHistogram(self.value, self.content_box, self.color)
end
end
DefineClass.HistogramPropertyObj = {
__parents = {"PropertyObject"},
properties = {
{id = "lum", editor = "histogram", default = false,},
{id = "lum_mean", editor = "number", default = 0, read_only = true, scale = 255, },
{id = "pixels", editor = "number", default = 0, read_only = true, },
{id = "r", editor = "histogram", default = false,},
{id = "g", editor = "histogram", default = false,},
{id = "b", editor = "histogram", default = false,},
},
update_thread = false,
update_interval = 1000,
}
function HistogramPropertyObj:Getlum_mean()
return self.lum and self.lum.mean or 0
end
function HistogramPropertyObj:Getpixels()
return self.lum and self.lum.pixels or 0
end
if FirstLoad then
g_HistogramEnabled = false
end
function GedToggleHistogram()
ToggleHistogram()
end
function ToggleHistogram()
if not g_HistogramEnabled then
g_HistogramEnabled = HistogramPropertyObj:new({})
g_HistogramEnabled.update_thread = CreateRealTimeThread(function()
local self = g_HistogramEnabled
while true do
if GedObjects[self] then
self.r, self.g, self.b, self.lum = AsyncBuildHistogram()
ObjModified(self)
Sleep(self.update_interval)
else
Sleep(2000)
end
end
end)
end
GedProperties(g_HistogramEnabled)
end