void FolderWindow::AddStructure(const char* filename, const int index) { Fl_Pack* pack = folderPack; pack->begin(); int vertPosn = pack->children() * 30 + pack->y(); Fl_Group* group = new Fl_Group(pack->x(), vertPosn, pack->w(), 30); group->begin(); Fl_Button* label = new Fl_Button(pack->x() + 10, vertPosn, pack->w() - 40, 30, filename); label->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_LEFT); label->callback(FolderWindow::ShowFileCallback); label->user_data((void*)index); Fl_Button* removeButton = new Fl_Button(pack->x() + pack->w() - 20, vertPosn + 5, 20, 20); removeButton->callback(FolderWindow::RemoveCallback); removeButton->user_data((void*)index); removeButton->label("@1+"); //printf("Added file: %s\n",label->label()); group->resizable(label); group->end(); pack->end(); folderScroll->redraw(); }
void FolderWindow::AddStructure(const char* filename, const int index) { Fl_Pack* pack = folderPack; pack->begin(); int vertPosn = pack->children() * NAVBUTTONS_BHEIGHT; //+ pack->y() + 15; Fl_Group* group = new Fl_Group(pack->x(), vertPosn, pack->w(), NAVBUTTONS_BHEIGHT); group->begin(); Fl_Button* label = new Fl_Button(pack->x() + 10, vertPosn, pack->w() - 40, 30, filename); label->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_LEFT); label->callback(FolderWindow::ShowFileCallback); label->user_data((void*)index); label->labelcolor(GUI_BTEXT_COLOR); char labelWithIcon[MAX_BUFFER_SIZE]; std::string spaceBuffer = string(" "); int curLabelLen = 0; char filePrefix[MAX_BUFFER_SIZE]; size_t fileNameBytes = strlen(filename); snprintf(filePrefix, MAX_BUFFER_SIZE, "%-.20s%s", filename, fileNameBytes > MAX_FOLDER_LABEL_CHARS ? "..." : ""); snprintf(labelWithIcon, MAX_BUFFER_SIZE - 1, "@filenew %s%s", filePrefix, spaceBuffer.substr(0, MAX(0, MAX_FOLDER_LABEL_CHARS - ((int ) strlen(filePrefix)))).c_str()); //strcat(labelWithIcon, " @|>"); label->copy_label(labelWithIcon); label->tooltip(filename); Fl_Button* removeButton = new Fl_Button(pack->x() + pack->w() - 20, vertPosn + 5, 20, 20); removeButton->callback(FolderWindow::RemoveCallback); removeButton->user_data((void*)index); removeButton->label("@1+"); removeButton->labelcolor(GUI_TEXT_COLOR); group->resizable(label); group->end(); pack->end(); folderScroll->redraw(); }
gdMidiInputMaster::gdMidiInputMaster() : gdMidiInputBase(0, 0, 300, 284, "MIDI Input Setup (global)") { set_modal(); Fl_Group* groupHeader = new Fl_Group(G_GUI_OUTER_MARGIN, G_GUI_OUTER_MARGIN, w(), 20); groupHeader->begin(); enable = new geCheck(G_GUI_OUTER_MARGIN, G_GUI_OUTER_MARGIN, 120, G_GUI_UNIT, "enable MIDI input"); channel = new geChoice(enable->x()+enable->w()+44, G_GUI_OUTER_MARGIN, 120, G_GUI_UNIT); groupHeader->resizable(nullptr); groupHeader->end(); Fl_Pack* pack = new Fl_Pack(G_GUI_OUTER_MARGIN, groupHeader->y()+groupHeader->h()+G_GUI_OUTER_MARGIN, LEARNER_WIDTH, 212); pack->spacing(G_GUI_INNER_MARGIN); pack->begin(); new geMidiLearner(0, 0, LEARNER_WIDTH, "rewind", &cb_learn, &conf::midiInRewind, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "play/stop", &cb_learn, &conf::midiInStartStop, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "action recording", &cb_learn, &conf::midiInActionRec, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "input recording", &cb_learn, &conf::midiInInputRec, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "metronome", &cb_learn, &conf::midiInMetronome, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "input volume", &cb_learn, &conf::midiInVolumeIn, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "output volume", &cb_learn, &conf::midiInVolumeOut, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "sequencer ×2", &cb_learn, &conf::midiInBeatDouble, nullptr); new geMidiLearner(0, 0, LEARNER_WIDTH, "sequencer ÷2", &cb_learn, &conf::midiInBeatHalf, nullptr); pack->end(); ok = new geButton(w()-88, pack->y()+pack->h()+G_GUI_OUTER_MARGIN, 80, G_GUI_UNIT, "Close"); end(); ok->callback(cb_close, (void*)this); enable->value(conf::midiIn); enable->callback(cb_enable, (void*)this); channel->add("Channel (any)"); channel->add("Channel 1"); channel->add("Channel 2"); channel->add("Channel 3"); channel->add("Channel 4"); channel->add("Channel 5"); channel->add("Channel 6"); channel->add("Channel 7"); channel->add("Channel 8"); channel->add("Channel 9"); channel->add("Channel 10"); channel->add("Channel 11"); channel->add("Channel 12"); channel->add("Channel 13"); channel->add("Channel 14"); channel->add("Channel 15"); channel->add("Channel 16"); channel->value(conf::midiInFilter -1 ? 0 : conf::midiInFilter + 1); channel->callback(cb_setChannel, (void*)this); u::gui::setFavicon(this); show(); }