Compare commits

...

1 commit

Author SHA1 Message Date
Ronja
68ab5fb56f better startup 2021-11-25 19:47:57 +01:00

View file

@ -34,7 +34,6 @@ class ColorPickerData {
set_rgba(col){set_rgba(col, true)}
set_rgba(col, update_spaces){
System.print("Set RGB!")
if(!ColorPicker.approx(_r, col.r)) _r = col.r
if(!ColorPicker.approx(_g, col.g)) _g = col.g
if(!ColorPicker.approx(_b, col.b)) _b = col.b
@ -51,7 +50,6 @@ class ColorPickerData {
set_hsva(col){set_hsva(col, true)}
set_hsva(col, update_spaces){
System.print("Set HSV!")
if(!ColorPicker.approx(_h, col.x)) _h = col.x
if(!ColorPicker.approx(_s, col.y)) _s = col.y
if(!ColorPicker.approx(_v, col.z)) _v = col.z
@ -165,6 +163,7 @@ class ColorPicker{
Control.child_add(hsv_view, rgba_components)
var hsva_components = hsva_values(ui, color_view)
Control.set_visible(hsva_components, false)
Control.child_add(hsv_view, hsva_components)
Control.set_events(rgba_button) {|event|
@ -223,6 +222,8 @@ class ColorPicker{
}
static color_component (ui: Entity, name: String, index: Num, color_view: Control, space: String){
var data: ColorPickerData = Control.get_state_data(color_view)
var base = Control.create(ui)
Control.set_size(base, 0, 32)
Control.set_behave(base, UIBehave.top | UIBehave.left | UILayoutBehave.hfill)
@ -239,7 +240,6 @@ class ColorPicker{
Control.child_add(base, label)
var number = UINumber.create(ui)
UINumber.set_value(number, 0)
UINumber.set_validation(number) {|input|
return Math.fixed(input)
}
@ -256,10 +256,17 @@ class ColorPicker{
Control.set_margin(slider, 8, 8, 8, 8)
Control.child_add(base, slider)
if(space == "rgb"){
UINumber.set_value(number, data.get_rgba_component(index))
UISlider.set_value(slider, data.get_rgba_component(index))
} else if(space == "hsv"){
UINumber.set_value(number, data.get_hsva_component(index))
UISlider.set_value(slider, data.get_hsva_component(index))
}
Control.set_events(number) { |event: UIEvent|
if(event.type == UIEvent.change){
if(approx(UISlider.get_value(slider), event.change, 0.001)) return
System.print(" Base event (slider)")
UI.events_emit(base, UIEvent.change, event.change)
}
}
@ -267,14 +274,12 @@ class ColorPicker{
Control.set_events(slider) { |event: UIEvent|
if(event.type == UIEvent.change){
if(approx(UINumber.get_value(number), event.change, 0.001)) return
System.print(" Base event (number)")
UI.events_emit(base, UIEvent.change, event.change)
}
}
Control.set_events(color_view){|event|
if(event.type == UIEvent.change){
//System.print(event.change)
if(space == "rgb"){
UISlider.set_value(slider, Math.fixed(event.change.get_rgba_component(index)))
UINumber.set_value(number, Math.fixed(event.change.get_rgba_component(index)))
@ -296,7 +301,6 @@ class ColorPicker{
color.set_hsva_component(index, event.change)
}
Control.set_state_data(color_view, color)
System.print("event from color component (%(name))")
UI.events_emit(color_view, UIEvent.change, color)
}
}
@ -331,7 +335,6 @@ class ColorPicker{
var picker_state: ColorPickerData = Control.get_state_data(data_root)
var hsv = [hue, picker_state.s, picker_state.v, picker_state.a]
picker_state.set_hsva(hsv)
System.print("Event from hue ring")
UI.events_emit(data_root, UIEvent.change, picker_state)
} else if(state["triangle"] == "captured"){ //if we're editing the triangle (saturation & value)
var picker_state: ColorPickerData = Control.get_state_data(data_root)
@ -357,7 +360,6 @@ class ColorPicker{
//calculate and apply relevant values
var hsv = [picker_state.h, saturation, value, picker_state.a]
picker_state.set_hsva(hsv)
System.print("event from saturation/value triangle")
UI.events_emit(data_root, UIEvent.change, picker_state)
} else { //if we're not editing anything, lets check what we're hovering over!
var picker_state: ColorPickerData = Control.get_state_data(data_root)
@ -420,6 +422,7 @@ class ColorPicker{
Material.set_input(color_tri_mat, "triangle.saturation_gamma", base_sat_gamma)
Material.set_input(color_tri_mat, "triangle.hue", data.h)
UIImage.set_material(color_triangle, color_tri_mat)
UIImage.set_angle(color_triangle, data.h * -360)
Control.child_add(color_wheel, color_triangle)
//rotates image when color wheel hue updates
Control.set_events(data_root) {|event|