Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.5KB

  1. /*
  2. ZynAddSubFX - a software synthesizer
  3. Fl_Osc_Pane.H - OSC Subwindow
  4. Copyright (C) 2016 Mark McCurry
  5. This program is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU General Public License
  7. as published by the Free Software Foundation; either version 2
  8. of the License, or (at your option) any later version.
  9. */
  10. #ifndef FL_OSC_PANE_H
  11. #define FL_OSC_PANE_H
  12. #include <FL/Fl_Group.H>
  13. #include <FL/Fl_Double_Window.H>
  14. #include <string>
  15. #include "Osc_DataModel.h"
  16. class Fl_Osc_Pane
  17. {
  18. public:
  19. Fl_Osc_Pane(void);
  20. class Fl_Osc_Interface *osc;
  21. std::string base;
  22. virtual std::string loc(void) const = 0;
  23. virtual void rebase(std::string new_base) = 0;
  24. };
  25. class Fl_Osc_Window:public Fl_Double_Window, public Fl_Osc_Pane
  26. {
  27. Osc_DataModel *title_ext;
  28. std::string rewrite_rule;
  29. std::string title_orig;
  30. std::string title_new;
  31. public:
  32. Fl_Osc_Window(int w, int h, const char *L=0);
  33. ~Fl_Osc_Window(void);
  34. void init(Fl_Osc_Interface *osc_, std::string loc_);
  35. virtual std::string loc(void) const;
  36. virtual void rebase(std::string new_base);
  37. void update();
  38. void update_title();
  39. };
  40. class Fl_Osc_Group:public Fl_Osc_Pane, public Fl_Group
  41. {
  42. public:
  43. Fl_Osc_Group(int x, int y, int w, int h, const char *L=0);
  44. std::string ext;
  45. virtual std::string loc(void) const;
  46. virtual void reext(std::string new_base);
  47. virtual void rebase(std::string new_ext);
  48. };
  49. #endif