1 /* 2 * ui_sin_cos_radius.h 3 * DIN Is Noise is copyright (c) 2006-2021 Jagannathan Sampath 4 * For more information, please visit http://dinisnoise.org/ 5 */ 6 7 #ifndef __UI_SIN_COS_RADIUS 8 #define __UI_SIN_COS_RADIUS 9 10 #include "options_list.h" 11 #include "button.h" 12 #include "sine.h" 13 #include "cosine.h" 14 #include "constant_radius.h" 15 #include "custom_periodic.h" 16 #include "curve_editor.h" 17 18 struct ui_sin_cos_radius_listener { sin_cos_radius_optionedui_sin_cos_radius_listener19 virtual void sin_cos_radius_optioned () {} sin_cos_radius_editedui_sin_cos_radius_listener20 virtual void sin_cos_radius_edited () {} 21 }; 22 23 struct ui_sin_cos_radius : widget, option_listener, click_listener, curve_listener { 24 25 // functions sin, cos and radius 26 funktion *pf_sin, *pf_cos, *pf_radius; 27 28 // standard functions for sin, cos and radius 29 sine st_sin; 30 cosine st_cos; 31 constant_radius st_radius; 32 33 // custom functions for sin cos and radius 34 custom_periodic cp_sin, cp_cos, cp_rad; 35 36 curve_editor sin_ed, cos_ed, rad_ed; // sin cos and radius editor 37 38 options_list ol_sin, ol_cos, ol_radius; 39 button b_sin, b_cos, b_radius; 40 41 std::string fname; 42 43 ui_sin_cos_radius ( 44 ui_sin_cos_radius_listener* _lis, 45 const std::string& scr_fname, 46 const std::string& cp_sin_fname, 47 const std::string& cp_cos_fname, 48 const std::string& cp_rad_fname, 49 const std::string& sin_ed_fname, 50 const std::string& cos_ed_fname, 51 const std::string& rad_ed_fname, 52 int _inc_radius = 1); 53 ~ui_sin_cos_radius (); 54 55 void load (); 56 void save (); 57 void setup (); 58 int handle_input (); 59 void draw (); 60 void set_pos (int x, int y); 61 62 ui_sin_cos_radius_listener* lis; 63 void picked (label& l, int dir); 64 void clicked (button& b); 65 66 int sin, cos, radius; 67 int inc_radius; 68 69 void edit_sin (); 70 void edit_cos (); 71 void edit_radius (); 72 void edited (curve_editor* e, int i); 73 74 void set_option (label& lbl, const std::string& text, funktion** pf, funktion* pfv, button& bt, int vis); 75 76 }; 77 78 #endif 79 80 81 82