// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PADnoteUI_h
#define PADnoteUI_h
#include <FL/Fl.H>
#include "../Params/PADnoteParameters.h"
#include "../Misc/Util.h"
#include "../Misc/Master.h"
#include "ResonanceUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_File_Chooser.H>
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "OscilGenUI.h"
#include "PresetsUI.h"

class PADnoteHarmonicProfile : public Fl_Box {
public:
  PADnoteHarmonicProfile(int x,int y, int w, int h, const char *label=0);
  void init(PADnoteParameters *pars,Master *master_);
  void draw();
private:
  Master *master; 
public:
  PADnoteParameters *pars; 
};

class PADnoteOvertonePosition : public Fl_Box {
public:
  PADnoteOvertonePosition(int x,int y, int w, int h, const char *label=0);
  void init(PADnoteParameters *pars,Master *master_);
  void draw();
private:
  Master *master; 
public:
  PADnoteParameters *pars; 
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Value_Slider.H>

class PADnoteUI : public PresetsUI_ {
public:
  PADnoteUI(PADnoteParameters *parameters,Master *master_);
  Fl_Double_Window* make_window();
  Fl_Double_Window *padnotewindow;
private:
  void cb__i(Fl_Tabs*, void*);
  static void cb_(Fl_Tabs*, void*);
public:
  Fl_Group *harmonicstructuregroup;
  Fl_Group *bwprofilegroup;
  WidgetPDial *hpbasepar1;
private:
  void cb_hpbasepar1_i(WidgetPDial*, void*);
  static void cb_hpbasepar1(WidgetPDial*, void*);
public:
  Fl_Choice *hpbasetype;
private:
  void cb_hpbasetype_i(Fl_Choice*, void*);
  static void cb_hpbasetype(Fl_Choice*, void*);
  static Fl_Menu_Item menu_hpbasetype[];
public:
  WidgetPDial *hpfreqmult;
private:
  void cb_hpfreqmult_i(WidgetPDial*, void*);
  static void cb_hpfreqmult(WidgetPDial*, void*);
public:
  WidgetPDial *hpmpar1;
private:
  void cb_hpmpar1_i(WidgetPDial*, void*);
  static void cb_hpmpar1(WidgetPDial*, void*);
public:
  WidgetPDial *hpmfreq;
private:
  void cb_hpmfreq_i(WidgetPDial*, void*);
  static void cb_hpmfreq(WidgetPDial*, void*);
public:
  Fl_Choice *hpamptype;
private:
  void cb_hpamptype_i(Fl_Choice*, void*);
  static void cb_hpamptype(Fl_Choice*, void*);
  static Fl_Menu_Item menu_hpamptype[];
public:
  Fl_Choice *hpampmode;
private:
  void cb_hpampmode_i(Fl_Choice*, void*);
  static void cb_hpampmode(Fl_Choice*, void*);
  static Fl_Menu_Item menu_hpampmode[];
public:
  WidgetPDial *hpamppar1;
private:
  void cb_hpamppar1_i(WidgetPDial*, void*);
  static void cb_hpamppar1(WidgetPDial*, void*);
public:
  WidgetPDial *hpamppar2;
private:
  void cb_hpamppar2_i(WidgetPDial*, void*);
  static void cb_hpamppar2(WidgetPDial*, void*);
public:
  Fl_Check_Button *hpautoscale;
private:
  void cb_hpautoscale_i(Fl_Check_Button*, void*);
  static void cb_hpautoscale(Fl_Check_Button*, void*);
public:
  Fl_Choice *hponehalf;
private:
  void cb_hponehalf_i(Fl_Choice*, void*);
  static void cb_hponehalf(Fl_Choice*, void*);
  static Fl_Menu_Item menu_hponehalf[];
public:
  WidgetPDial *hpwidth;
private:
  void cb_hpwidth_i(WidgetPDial*, void*);
  static void cb_hpwidth(WidgetPDial*, void*);
  void cb_Change_i(Fl_Button*, void*);
  static void cb_Change(Fl_Button*, void*);
public:
  Fl_Box *cbwidget;
private:
  void cb_cbwidget_i(Fl_Box*, void*);
  static void cb_cbwidget(Fl_Box*, void*);
  void cb_Resonance_i(Fl_Button*, void*);
  static void cb_Resonance(Fl_Button*, void*);
public:
  WidgetPDial *bwdial;
private:
  void cb_bwdial_i(WidgetPDial*, void*);
  static void cb_bwdial(WidgetPDial*, void*);
public:
  Fl_Value_Output *bwcents;
  Fl_Choice *hrpostype;
private:
  void cb_hrpostype_i(Fl_Choice*, void*);
  static void cb_hrpostype(Fl_Choice*, void*);
  static Fl_Menu_Item menu_hrpostype[];
public:
  WidgetPDial *hrpospar1;
private:
  void cb_hrpospar1_i(WidgetPDial*, void*);
  static void cb_hrpospar1(WidgetPDial*, void*);
public:
  WidgetPDial *hrpospar2;
private:
  void cb_hrpospar2_i(WidgetPDial*, void*);
  static void cb_hrpospar2(WidgetPDial*, void*);
public:
  WidgetPDial *hrpospar3;
private:
  void cb_hrpospar3_i(WidgetPDial*, void*);
  static void cb_hrpospar3(WidgetPDial*, void*);
public:
  Fl_Choice *bwscale;
private:
  void cb_bwscale_i(Fl_Choice*, void*);
  static void cb_bwscale(Fl_Choice*, void*);
  static Fl_Menu_Item menu_bwscale[];
public:
  Fl_Group *overtonepos;
  Fl_Choice *qsamplesize;
private:
  void cb_qsamplesize_i(Fl_Choice*, void*);
  static void cb_qsamplesize(Fl_Choice*, void*);
  static Fl_Menu_Item menu_qsamplesize[];
public:
  Fl_Choice *qsmpoct;
private:
  void cb_qsmpoct_i(Fl_Choice*, void*);
  static void cb_qsmpoct(Fl_Choice*, void*);
  static Fl_Menu_Item menu_qsmpoct[];
public:
  Fl_Choice *qoct;
private:
  void cb_qoct_i(Fl_Choice*, void*);
  static void cb_qoct(Fl_Choice*, void*);
  static Fl_Menu_Item menu_qoct[];
public:
  Fl_Choice *qbasenote;
private:
  void cb_qbasenote_i(Fl_Choice*, void*);
  static void cb_qbasenote(Fl_Choice*, void*);
  static Fl_Menu_Item menu_qbasenote[];
public:
  Fl_Group *hprofile;
  Fl_Choice *spectrummode;
private:
  void cb_spectrummode_i(Fl_Choice*, void*);
  static void cb_spectrummode(Fl_Choice*, void*);
  static Fl_Menu_Item menu_spectrummode[];
public:
  EnvelopeUI *freqenv;
  Fl_Counter *octave;
private:
  void cb_octave_i(Fl_Counter*, void*);
  static void cb_octave(Fl_Counter*, void*);
public:
  Fl_Counter *coarsedet;
private:
  void cb_coarsedet_i(Fl_Counter*, void*);
  static void cb_coarsedet(Fl_Counter*, void*);
public:
  LFOUI *freqlfo;
  Fl_Slider *detune;
private:
  void cb_detune_i(Fl_Slider*, void*);
  static void cb_detune(Fl_Slider*, void*);
public:
  Fl_Value_Output *detunevalueoutput;
private:
  void cb_detunevalueoutput_i(Fl_Value_Output*, void*);
  static void cb_detunevalueoutput(Fl_Value_Output*, void*);
public:
  Fl_Choice *detunetype;
private:
  void cb_detunetype_i(Fl_Choice*, void*);
  static void cb_detunetype(Fl_Choice*, void*);
public:
  Fl_Check_Button *hz440;
private:
  void cb_hz440_i(Fl_Check_Button*, void*);
  static void cb_hz440(Fl_Check_Button*, void*);
public:
  WidgetPDial *fixedfreqetdial;
private:
  void cb_fixedfreqetdial_i(WidgetPDial*, void*);
  static void cb_fixedfreqetdial(WidgetPDial*, void*);
public:
  Fl_Value_Slider *volume;
private:
  void cb_volume_i(Fl_Value_Slider*, void*);
  static void cb_volume(Fl_Value_Slider*, void*);
public:
  Fl_Value_Slider *vsns;
private:
  void cb_vsns_i(Fl_Value_Slider*, void*);
  static void cb_vsns(Fl_Value_Slider*, void*);
public:
  WidgetPDial *pan;
private:
  void cb_pan_i(WidgetPDial*, void*);
  static void cb_pan(WidgetPDial*, void*);
public:
  WidgetPDial *pstr;
private:
  void cb_pstr_i(WidgetPDial*, void*);
  static void cb_pstr(WidgetPDial*, void*);
public:
  WidgetPDial *pt;
private:
  void cb_pt_i(WidgetPDial*, void*);
  static void cb_pt(WidgetPDial*, void*);
public:
  WidgetPDial *pstc;
private:
  void cb_pstc_i(WidgetPDial*, void*);
  static void cb_pstc(WidgetPDial*, void*);
public:
  WidgetPDial *pvel;
private:
  void cb_pvel_i(WidgetPDial*, void*);
  static void cb_pvel(WidgetPDial*, void*);
public:
  EnvelopeUI *ampenv;
  LFOUI *amplfo;
  Fl_Check_Button *stereo;
private:
  void cb_stereo_i(Fl_Check_Button*, void*);
  static void cb_stereo(Fl_Check_Button*, void*);
public:
  EnvelopeUI *filterenv;
  LFOUI *filterlfo;
  FilterUI *filterui;
  Fl_Button *applybutton;
private:
  void cb_applybutton_i(Fl_Button*, void*);
  static void cb_applybutton(Fl_Button*, void*);
  void cb_Close_i(Fl_Button*, void*);
  static void cb_Close(Fl_Button*, void*);
  void cb_C_i(Fl_Button*, void*);
  static void cb_C(Fl_Button*, void*);
  void cb_P_i(Fl_Button*, void*);
  static void cb_P(Fl_Button*, void*);
  void cb_export_i(Fl_Button*, void*);
  static void cb_export(Fl_Button*, void*);
public:
  void refresh();
  ~PADnoteUI();
  PADnoteParameters *pars; 
  Master *master; 
  OscilEditor *oscui; 
  Oscilloscope *osc; 
  ResonanceUI *resui; 
};
#endif
