1 /** 2 Color picker control. 3 4 Copyright: 5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. 6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) 7 Copyright (c) 2017-2018 Godot-D contributors 8 9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License) 10 11 12 */ 13 module godot.colorpicker; 14 import std.meta : AliasSeq, staticIndexOf; 15 import std.traits : Unqual; 16 import godot.d.meta; 17 import godot.core; 18 import godot.c; 19 import godot.d.bind; 20 import godot.d.reference; 21 import godot.object; 22 import godot.classdb; 23 import godot.boxcontainer; 24 import godot.inputevent; 25 import godot.container; 26 import godot.control; 27 import godot.canvasitem; 28 import godot.node; 29 /** 30 Color picker control. 31 32 $(D Control) node displaying a color picker widget. It's useful for selecting a color from an RGB/RGBA colorspace. 33 */ 34 @GodotBaseClass struct ColorPicker 35 { 36 enum string _GODOT_internal_name = "ColorPicker"; 37 public: 38 @nogc nothrow: 39 union { godot_object _godot_object; BoxContainer _GODOT_base; } 40 alias _GODOT_base this; 41 alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses); 42 package(godot) __gshared bool _classBindingInitialized = false; 43 package(godot) static struct _classBinding 44 { 45 __gshared: 46 @GodotName("set_pick_color") GodotMethod!(void, Color) setPickColor; 47 @GodotName("get_pick_color") GodotMethod!(Color) getPickColor; 48 @GodotName("set_raw_mode") GodotMethod!(void, bool) setRawMode; 49 @GodotName("is_raw_mode") GodotMethod!(bool) isRawMode; 50 @GodotName("set_deferred_mode") GodotMethod!(void, bool) setDeferredMode; 51 @GodotName("is_deferred_mode") GodotMethod!(bool) isDeferredMode; 52 @GodotName("set_edit_alpha") GodotMethod!(void, bool) setEditAlpha; 53 @GodotName("is_editing_alpha") GodotMethod!(bool) isEditingAlpha; 54 @GodotName("add_preset") GodotMethod!(void, Color) addPreset; 55 @GodotName("_value_changed") GodotMethod!(void, double) _valueChanged; 56 @GodotName("_html_entered") GodotMethod!(void, String) _htmlEntered; 57 @GodotName("_text_type_toggled") GodotMethod!(void) _textTypeToggled; 58 @GodotName("_add_preset_pressed") GodotMethod!(void) _addPresetPressed; 59 @GodotName("_screen_pick_pressed") GodotMethod!(void) _screenPickPressed; 60 @GodotName("_sample_draw") GodotMethod!(void) _sampleDraw; 61 @GodotName("_update_presets") GodotMethod!(void) _updatePresets; 62 @GodotName("_hsv_draw") GodotMethod!(void, long, GodotObject) _hsvDraw; 63 @GodotName("_uv_input") GodotMethod!(void, InputEvent) _uvInput; 64 @GodotName("_w_input") GodotMethod!(void, InputEvent) _wInput; 65 @GodotName("_preset_input") GodotMethod!(void, InputEvent) _presetInput; 66 @GodotName("_screen_input") GodotMethod!(void, InputEvent) _screenInput; 67 @GodotName("_focus_enter") GodotMethod!(void) _focusEnter; 68 @GodotName("_focus_exit") GodotMethod!(void) _focusExit; 69 @GodotName("_html_focus_exit") GodotMethod!(void) _htmlFocusExit; 70 } 71 bool opEquals(in ColorPicker other) const { return _godot_object.ptr is other._godot_object.ptr; } 72 ColorPicker opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; } 73 bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; } 74 mixin baseCasts; 75 static ColorPicker _new() 76 { 77 static godot_class_constructor constructor; 78 if(constructor is null) constructor = _godot_api.godot_get_class_constructor("ColorPicker"); 79 if(constructor is null) return typeof(this).init; 80 return cast(ColorPicker)(constructor()); 81 } 82 @disable new(size_t s); 83 /** 84 85 */ 86 void setPickColor(in Color color) 87 { 88 checkClassBinding!(typeof(this))(); 89 ptrcall!(void)(_classBinding.setPickColor, _godot_object, color); 90 } 91 /** 92 93 */ 94 Color getPickColor() const 95 { 96 checkClassBinding!(typeof(this))(); 97 return ptrcall!(Color)(_classBinding.getPickColor, _godot_object); 98 } 99 /** 100 101 */ 102 void setRawMode(in bool mode) 103 { 104 checkClassBinding!(typeof(this))(); 105 ptrcall!(void)(_classBinding.setRawMode, _godot_object, mode); 106 } 107 /** 108 109 */ 110 bool isRawMode() const 111 { 112 checkClassBinding!(typeof(this))(); 113 return ptrcall!(bool)(_classBinding.isRawMode, _godot_object); 114 } 115 /** 116 117 */ 118 void setDeferredMode(in bool mode) 119 { 120 checkClassBinding!(typeof(this))(); 121 ptrcall!(void)(_classBinding.setDeferredMode, _godot_object, mode); 122 } 123 /** 124 125 */ 126 bool isDeferredMode() const 127 { 128 checkClassBinding!(typeof(this))(); 129 return ptrcall!(bool)(_classBinding.isDeferredMode, _godot_object); 130 } 131 /** 132 133 */ 134 void setEditAlpha(in bool show) 135 { 136 checkClassBinding!(typeof(this))(); 137 ptrcall!(void)(_classBinding.setEditAlpha, _godot_object, show); 138 } 139 /** 140 141 */ 142 bool isEditingAlpha() const 143 { 144 checkClassBinding!(typeof(this))(); 145 return ptrcall!(bool)(_classBinding.isEditingAlpha, _godot_object); 146 } 147 /** 148 Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. Note: the presets list is only for $(I this) color picker. 149 */ 150 void addPreset(in Color color) 151 { 152 checkClassBinding!(typeof(this))(); 153 ptrcall!(void)(_classBinding.addPreset, _godot_object, color); 154 } 155 /** 156 157 */ 158 void _valueChanged(in double arg0) 159 { 160 Array _GODOT_args = Array.empty_array; 161 _GODOT_args.append(arg0); 162 String _GODOT_method_name = String("_value_changed"); 163 this.callv(_GODOT_method_name, _GODOT_args); 164 } 165 /** 166 167 */ 168 void _htmlEntered(StringArg0)(in StringArg0 arg0) 169 { 170 Array _GODOT_args = Array.empty_array; 171 _GODOT_args.append(arg0); 172 String _GODOT_method_name = String("_html_entered"); 173 this.callv(_GODOT_method_name, _GODOT_args); 174 } 175 /** 176 177 */ 178 void _textTypeToggled() 179 { 180 Array _GODOT_args = Array.empty_array; 181 String _GODOT_method_name = String("_text_type_toggled"); 182 this.callv(_GODOT_method_name, _GODOT_args); 183 } 184 /** 185 186 */ 187 void _addPresetPressed() 188 { 189 Array _GODOT_args = Array.empty_array; 190 String _GODOT_method_name = String("_add_preset_pressed"); 191 this.callv(_GODOT_method_name, _GODOT_args); 192 } 193 /** 194 195 */ 196 void _screenPickPressed() 197 { 198 Array _GODOT_args = Array.empty_array; 199 String _GODOT_method_name = String("_screen_pick_pressed"); 200 this.callv(_GODOT_method_name, _GODOT_args); 201 } 202 /** 203 204 */ 205 void _sampleDraw() 206 { 207 Array _GODOT_args = Array.empty_array; 208 String _GODOT_method_name = String("_sample_draw"); 209 this.callv(_GODOT_method_name, _GODOT_args); 210 } 211 /** 212 213 */ 214 void _updatePresets() 215 { 216 Array _GODOT_args = Array.empty_array; 217 String _GODOT_method_name = String("_update_presets"); 218 this.callv(_GODOT_method_name, _GODOT_args); 219 } 220 /** 221 222 */ 223 void _hsvDraw(in long arg0, GodotObject arg1) 224 { 225 Array _GODOT_args = Array.empty_array; 226 _GODOT_args.append(arg0); 227 _GODOT_args.append(arg1); 228 String _GODOT_method_name = String("_hsv_draw"); 229 this.callv(_GODOT_method_name, _GODOT_args); 230 } 231 /** 232 233 */ 234 void _uvInput(InputEvent arg0) 235 { 236 Array _GODOT_args = Array.empty_array; 237 _GODOT_args.append(arg0); 238 String _GODOT_method_name = String("_uv_input"); 239 this.callv(_GODOT_method_name, _GODOT_args); 240 } 241 /** 242 243 */ 244 void _wInput(InputEvent arg0) 245 { 246 Array _GODOT_args = Array.empty_array; 247 _GODOT_args.append(arg0); 248 String _GODOT_method_name = String("_w_input"); 249 this.callv(_GODOT_method_name, _GODOT_args); 250 } 251 /** 252 253 */ 254 void _presetInput(InputEvent arg0) 255 { 256 Array _GODOT_args = Array.empty_array; 257 _GODOT_args.append(arg0); 258 String _GODOT_method_name = String("_preset_input"); 259 this.callv(_GODOT_method_name, _GODOT_args); 260 } 261 /** 262 263 */ 264 void _screenInput(InputEvent arg0) 265 { 266 Array _GODOT_args = Array.empty_array; 267 _GODOT_args.append(arg0); 268 String _GODOT_method_name = String("_screen_input"); 269 this.callv(_GODOT_method_name, _GODOT_args); 270 } 271 /** 272 273 */ 274 void _focusEnter() 275 { 276 Array _GODOT_args = Array.empty_array; 277 String _GODOT_method_name = String("_focus_enter"); 278 this.callv(_GODOT_method_name, _GODOT_args); 279 } 280 /** 281 282 */ 283 void _focusExit() 284 { 285 Array _GODOT_args = Array.empty_array; 286 String _GODOT_method_name = String("_focus_exit"); 287 this.callv(_GODOT_method_name, _GODOT_args); 288 } 289 /** 290 291 */ 292 void _htmlFocusExit() 293 { 294 Array _GODOT_args = Array.empty_array; 295 String _GODOT_method_name = String("_html_focus_exit"); 296 this.callv(_GODOT_method_name, _GODOT_args); 297 } 298 /** 299 The currently selected color. 300 */ 301 @property Color color() 302 { 303 return getPickColor(); 304 } 305 /// ditto 306 @property void color(Color v) 307 { 308 setPickColor(v); 309 } 310 /** 311 If `true` shows an alpha channel slider (transparency). 312 */ 313 @property bool editAlpha() 314 { 315 return isEditingAlpha(); 316 } 317 /// ditto 318 @property void editAlpha(bool v) 319 { 320 setEditAlpha(v); 321 } 322 /** 323 If `true` allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR). 324 */ 325 @property bool rawMode() 326 { 327 return isRawMode(); 328 } 329 /// ditto 330 @property void rawMode(bool v) 331 { 332 setRawMode(v); 333 } 334 /** 335 If `true` the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues). 336 */ 337 @property bool deferredMode() 338 { 339 return isDeferredMode(); 340 } 341 /// ditto 342 @property void deferredMode(bool v) 343 { 344 setDeferredMode(v); 345 } 346 }