command palette: support for changing (selection's) instrument

This commit is contained in:
YohananDiamond 2023-08-15 18:37:30 -03:00
parent 74bb1b1016
commit 0060ea507a
5 changed files with 17 additions and 1 deletions

View file

@ -59,6 +59,9 @@ void FurnaceGUI::drawPalette() {
case CMDPAL_TYPE_SAMPLES: case CMDPAL_TYPE_SAMPLES:
hint="Search samples..."; hint="Search samples...";
break; break;
case CMDPAL_TYPE_INSTRUMENT_CHANGE:
hint="Search instruments (to change to)...";
break;
} }
if (ImGui::InputTextWithHint("##CommandPaletteSearch",hint,&paletteQuery) || paletteFirstFrame) { if (ImGui::InputTextWithHint("##CommandPaletteSearch",hint,&paletteQuery) || paletteFirstFrame) {
@ -83,6 +86,7 @@ void FurnaceGUI::drawPalette() {
break; break;
case CMDPAL_TYPE_INSTRUMENTS: case CMDPAL_TYPE_INSTRUMENTS:
case CMDPAL_TYPE_INSTRUMENT_CHANGE:
if (matchFuzzy("- None -",paletteQuery.c_str())) { if (matchFuzzy("- None -",paletteQuery.c_str())) {
paletteSearchResults.push_back(0); paletteSearchResults.push_back(0);
} }
@ -136,6 +140,7 @@ void FurnaceGUI::drawPalette() {
s=recentFile.at(id).c_str(); s=recentFile.at(id).c_str();
break; break;
case CMDPAL_TYPE_INSTRUMENTS: case CMDPAL_TYPE_INSTRUMENTS:
case CMDPAL_TYPE_INSTRUMENT_CHANGE:
if (id==0) { if (id==0) {
s="- None -"; s="- None -";
} else { } else {
@ -194,6 +199,10 @@ void FurnaceGUI::drawPalette() {
curSample=i; curSample=i;
break; break;
case CMDPAL_TYPE_INSTRUMENT_CHANGE:
doChangeIns(i-1);
break;
default: default:
logE("invalid command palette type"); logE("invalid command palette type");
break; break;

View file

@ -22,6 +22,7 @@ enum CommandPaletteType {
CMDPAL_TYPE_RECENT, CMDPAL_TYPE_RECENT,
CMDPAL_TYPE_INSTRUMENTS, CMDPAL_TYPE_INSTRUMENTS,
CMDPAL_TYPE_SAMPLES, CMDPAL_TYPE_SAMPLES,
CMDPAL_TYPE_INSTRUMENT_CHANGE,
// a menu to select wavetables is beyond scope (they can't be put as strings) // a menu to select wavetables is beyond scope (they can't be put as strings)
// TODO: are there more? // TODO: are there more?

View file

@ -202,6 +202,10 @@ void FurnaceGUI::doAction(int what) {
displayPalette=true; displayPalette=true;
curPaletteType=CMDPAL_TYPE_SAMPLES; curPaletteType=CMDPAL_TYPE_SAMPLES;
break; break;
case GUI_ACTION_CMDPAL_INSTRUMENT_CHANGE:
displayPalette=true;
curPaletteType=CMDPAL_TYPE_INSTRUMENT_CHANGE;
break;
case GUI_ACTION_WINDOW_EDIT_CONTROLS: case GUI_ACTION_WINDOW_EDIT_CONTROLS:
nextWindow=GUI_WINDOW_EDIT_CONTROLS; nextWindow=GUI_WINDOW_EDIT_CONTROLS;
break; break;

View file

@ -519,6 +519,7 @@ enum FurnaceGUIActions {
GUI_ACTION_CMDPAL_RECENT, GUI_ACTION_CMDPAL_RECENT,
GUI_ACTION_CMDPAL_INSTRUMENTS, GUI_ACTION_CMDPAL_INSTRUMENTS,
GUI_ACTION_CMDPAL_SAMPLES, GUI_ACTION_CMDPAL_SAMPLES,
GUI_ACTION_CMDPAL_INSTRUMENT_CHANGE,
GUI_ACTION_CMDPAL_MAX, GUI_ACTION_CMDPAL_MAX,
GUI_ACTION_WINDOW_EDIT_CONTROLS, GUI_ACTION_WINDOW_EDIT_CONTROLS,

View file

@ -566,6 +566,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={
D("CMDPAL_RECENT", "Recent files (Palette)", 0), D("CMDPAL_RECENT", "Recent files (Palette)", 0),
D("CMDPAL_INSTRUMENTS", "Instruments (Palette)", 0), D("CMDPAL_INSTRUMENTS", "Instruments (Palette)", 0),
D("CMDPAL_SAMPLES", "Samples (Palette)", 0), D("CMDPAL_SAMPLES", "Samples (Palette)", 0),
D("CMDPAL_INSTRUMENT_CHANGE", "Change instrument (Palette)", 0),
D("CMDPAL_MAX", "", NOT_AN_ACTION), D("CMDPAL_MAX", "", NOT_AN_ACTION),
D("WINDOW_EDIT_CONTROLS", "Edit Controls", 0), D("WINDOW_EDIT_CONTROLS", "Edit Controls", 0),
@ -1270,4 +1271,4 @@ const char* chipCategoryNames[]={
const char* insIcons[]={ const char* insIcons[]={
ICON_FA_AREA_CHART, ICON_FA_AREA_CHART,
}; };