External plugins for 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.

197 lines
5.9KB

  1. // generated by Fast Light User Interface Designer (fluid) version 1.0300
  2. #include "external/zynaddsubfx/UI/BankUI.h"
  3. //Copyright (c) 2002-2005 Nasca Octavian Paul
  4. //License: GNU GPL version 2 or later
  5. void BankUI::cb_Close_i(Fl_Button*, void*) {
  6. bankuiwindow->hide();
  7. }
  8. void BankUI::cb_Close(Fl_Button* o, void* v) {
  9. ((BankUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
  10. }
  11. void BankUI::cb_New_i(Fl_Button*, void*) {
  12. const char *dirname;
  13. dirname=fl_input("New empty Bank:");
  14. if (dirname==NULL) return;
  15. osc->write("/bank/newbank", "s", dirname);
  16. refreshmainwindow();
  17. }
  18. void BankUI::cb_New(Fl_Button* o, void* v) {
  19. ((BankUI*)(o->parent()->user_data()))->cb_New_i(o,v);
  20. }
  21. void BankUI::cb_banklist_i(BankList*, void*) {
  22. refreshmainwindow();
  23. }
  24. void BankUI::cb_banklist(BankList* o, void* v) {
  25. ((BankUI*)(o->parent()->user_data()))->cb_banklist_i(o,v);
  26. }
  27. void BankUI::cb_Refresh_i(Fl_Button*, void*) {
  28. rescan_for_banks();
  29. banklist->value(0);
  30. }
  31. void BankUI::cb_Refresh(Fl_Button* o, void* v) {
  32. ((BankUI*)(o->parent()->user_data()))->cb_Refresh_i(o,v);
  33. }
  34. void BankUI::cb_Search_i(Fl_Input* o, void*) {
  35. std::string str = o->value();
  36. update_search(str);
  37. }
  38. void BankUI::cb_Search(Fl_Input* o, void* v) {
  39. ((BankUI*)(o->parent()->user_data()))->cb_Search_i(o,v);
  40. }
  41. Fl_Osc_Window* BankUI::make_window() {
  42. { bankuiwindow = new Fl_Osc_Window(785, 575, "Bank");
  43. bankuiwindow->box(FL_FLAT_BOX);
  44. bankuiwindow->color(FL_BACKGROUND_COLOR);
  45. bankuiwindow->selection_color(FL_BACKGROUND_COLOR);
  46. bankuiwindow->labeltype(FL_NO_LABEL);
  47. bankuiwindow->labelfont(0);
  48. bankuiwindow->labelsize(14);
  49. bankuiwindow->labelcolor(FL_FOREGROUND_COLOR);
  50. bankuiwindow->user_data((void*)(this));
  51. bankuiwindow->align(Fl_Align(FL_ALIGN_TOP));
  52. bankuiwindow->when(FL_WHEN_RELEASE);
  53. { new Fl_Box(0, 0, 0, 0);
  54. bankuiwindow->init(osc, "/");
  55. } // Fl_Box* o
  56. { Fl_Button* o = new Fl_Button(705, 546, 70, 24, "Close");
  57. o->box(FL_THIN_UP_BOX);
  58. o->callback((Fl_Callback*)cb_Close);
  59. } // Fl_Button* o
  60. { bankview = new BankView(5, 34, 772, 491);
  61. bankview->box(FL_ENGRAVED_FRAME);
  62. bankview->color(FL_BACKGROUND_COLOR);
  63. bankview->selection_color(FL_BACKGROUND_COLOR);
  64. bankview->labeltype(FL_NORMAL_LABEL);
  65. bankview->labelfont(0);
  66. bankview->labelsize(14);
  67. bankview->labelcolor(FL_FOREGROUND_COLOR);
  68. bankview->align(Fl_Align(FL_ALIGN_TOP));
  69. bankview->when(FL_WHEN_RELEASE);
  70. bankview->end();
  71. } // BankView* bankview
  72. { BankViewControls* o = modeselect = new BankViewControls(5, 528, 425, 42);
  73. modeselect->box(FL_ENGRAVED_BOX);
  74. modeselect->color(FL_BACKGROUND_COLOR);
  75. modeselect->selection_color(FL_BACKGROUND_COLOR);
  76. modeselect->labeltype(FL_NORMAL_LABEL);
  77. modeselect->labelfont(0);
  78. modeselect->labelsize(14);
  79. modeselect->labelcolor(FL_FOREGROUND_COLOR);
  80. modeselect->align(Fl_Align(FL_ALIGN_TOP));
  81. modeselect->when(FL_WHEN_RELEASE);
  82. o->box(FL_UP_BOX);
  83. modeselect->end();
  84. } // BankViewControls* modeselect
  85. { Fl_Button* o = new Fl_Button(685, 5, 93, 25, "New Bank...");
  86. o->labelfont(1);
  87. o->labelsize(11);
  88. o->callback((Fl_Callback*)cb_New);
  89. o->align(Fl_Align(FL_ALIGN_WRAP));
  90. } // Fl_Button* o
  91. { Fl_Osc_Check* o = new Fl_Osc_Check(705, 529, 60, 15, "auto close");
  92. o->tooltip("automatically close the bank window if the instrument is loaded");
  93. o->box(FL_NO_BOX);
  94. o->down_box(FL_DOWN_BOX);
  95. o->color(FL_BACKGROUND_COLOR);
  96. o->selection_color(FL_FOREGROUND_COLOR);
  97. o->labeltype(FL_NORMAL_LABEL);
  98. o->labelfont(0);
  99. o->labelsize(10);
  100. o->labelcolor(FL_FOREGROUND_COLOR);
  101. o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
  102. o->when(FL_WHEN_RELEASE);
  103. o->init("config/cfg.BankUIAutoClose");
  104. } // Fl_Osc_Check* o
  105. { BankList* o = banklist = new BankList(5, 8, 220, 20);
  106. banklist->box(FL_UP_BOX);
  107. banklist->down_box(FL_BORDER_BOX);
  108. banklist->color(FL_BACKGROUND_COLOR);
  109. banklist->selection_color(FL_SELECTION_COLOR);
  110. banklist->labeltype(FL_NORMAL_LABEL);
  111. banklist->labelfont(1);
  112. banklist->labelsize(14);
  113. banklist->labelcolor(FL_FOREGROUND_COLOR);
  114. banklist->textfont(1);
  115. banklist->textsize(11);
  116. banklist->callback((Fl_Callback*)cb_banklist);
  117. banklist->align(Fl_Align(FL_ALIGN_CENTER));
  118. banklist->when(FL_WHEN_RELEASE);
  119. bankview->init(osc, modeselect, npart);
  120. o->init("bank/bank_select");
  121. } // BankList* banklist
  122. { Fl_Button* o = new Fl_Button(230, 8, 105, 20, "Refresh bank list");
  123. o->tooltip("Refresh the bank list (rescan)");
  124. o->box(FL_THIN_UP_BOX);
  125. o->color(FL_LIGHT1);
  126. o->labelsize(11);
  127. o->callback((Fl_Callback*)cb_Refresh);
  128. } // Fl_Button* o
  129. { Fl_Input* o = new Fl_Input(460, 8, 105, 20, "Search by name: ");
  130. o->tooltip("Enter text to search for");
  131. o->box(FL_THIN_UP_BOX);
  132. o->color(FL_LIGHT1);
  133. o->labelsize(11);
  134. o->callback((Fl_Callback*)cb_Search);
  135. o->when(FL_WHEN_CHANGED);
  136. } // Fl_Input* o
  137. bankuiwindow->end();
  138. } // Fl_Osc_Window* bankuiwindow
  139. return bankuiwindow;
  140. }
  141. BankUI::BankUI(int *npart_, Fl_Osc_Interface *osc_) {
  142. npart=npart_;
  143. osc =osc_;
  144. make_window();
  145. }
  146. BankUI::~BankUI() {
  147. bankuiwindow->hide();
  148. delete bankuiwindow;
  149. }
  150. void BankUI::show() {
  151. bankuiwindow->show();
  152. }
  153. void BankUI::hide() {
  154. bankuiwindow->hide();
  155. }
  156. void BankUI::init(Fl_Valuator *cbwig_) {
  157. cbwig=cbwig_;
  158. bankview->cbwig(cbwig);
  159. rescan_for_banks();
  160. }
  161. void BankUI::process() {
  162. }
  163. void BankUI::refreshmainwindow() {
  164. bankview->refresh();
  165. }
  166. void BankUI::rescan_for_banks() {
  167. banklist->clear();
  168. osc->write("/bank/rescan");
  169. if (banklist->size() == 0)
  170. banklist->add(" ");
  171. }
  172. void BankUI::update_search(std::string search_string) {
  173. if (search_string.empty()) {
  174. refreshmainwindow();
  175. } else {
  176. osc->write("/bank/search", "s", search_string.c_str());
  177. }
  178. }