command palette: improved consistency
This commit is contained in:
parent
51148a729c
commit
b203c3956a
|
@ -40,13 +40,6 @@ static inline bool matchFuzzy(const char* haystack,const char* needle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FurnaceGUI::drawPalette() {
|
void FurnaceGUI::drawPalette() {
|
||||||
auto resetPalette = [](FurnaceGUI* g){
|
|
||||||
g->paletteFirstFrame=true;
|
|
||||||
g->paletteQuery="";
|
|
||||||
g->curPaletteChoice=0;
|
|
||||||
g->paletteSearchResults.clear();
|
|
||||||
};
|
|
||||||
|
|
||||||
bool accepted=false;
|
bool accepted=false;
|
||||||
|
|
||||||
if (paletteFirstFrame)
|
if (paletteFirstFrame)
|
||||||
|
@ -55,7 +48,20 @@ void FurnaceGUI::drawPalette() {
|
||||||
int width=ImGui::GetContentRegionAvail().x;
|
int width=ImGui::GetContentRegionAvail().x;
|
||||||
ImGui::SetNextItemWidth(width);
|
ImGui::SetNextItemWidth(width);
|
||||||
|
|
||||||
if (ImGui::InputTextWithHint("##CommandPaletteSearch","Search...",&paletteQuery) || paletteFirstFrame) {
|
const char* hint="Search...";
|
||||||
|
switch (curPaletteType) {
|
||||||
|
case CMDPAL_TYPE_RECENT:
|
||||||
|
hint="Search recent files...";
|
||||||
|
break;
|
||||||
|
case CMDPAL_TYPE_INSTRUMENTS:
|
||||||
|
hint="Search instruments...";
|
||||||
|
break;
|
||||||
|
case CMDPAL_TYPE_SAMPLES:
|
||||||
|
hint="Search samples...";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::InputTextWithHint("##CommandPaletteSearch",hint,&paletteQuery) || paletteFirstFrame) {
|
||||||
paletteSearchResults.clear();
|
paletteSearchResults.clear();
|
||||||
|
|
||||||
switch (curPaletteType) {
|
switch (curPaletteType) {
|
||||||
|
@ -121,7 +127,7 @@ void FurnaceGUI::drawPalette() {
|
||||||
bool current=(i==curPaletteChoice);
|
bool current=(i==curPaletteChoice);
|
||||||
int id=paletteSearchResults[i];
|
int id=paletteSearchResults[i];
|
||||||
|
|
||||||
const char *s="???";
|
const char* s="???";
|
||||||
switch (curPaletteType) {
|
switch (curPaletteType) {
|
||||||
case CMDPAL_TYPE_MAIN:
|
case CMDPAL_TYPE_MAIN:
|
||||||
s=guiActions[id].friendlyName;
|
s=guiActions[id].friendlyName;
|
||||||
|
@ -169,40 +175,30 @@ void FurnaceGUI::drawPalette() {
|
||||||
paletteFirstFrame=false;
|
paletteFirstFrame=false;
|
||||||
|
|
||||||
if (accepted) {
|
if (accepted) {
|
||||||
if (paletteSearchResults.size()==0) {
|
if (paletteSearchResults.size()>0) {
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
} else {
|
|
||||||
int i=paletteSearchResults[curPaletteChoice];
|
int i=paletteSearchResults[curPaletteChoice];
|
||||||
switch (curPaletteType) {
|
switch (curPaletteType) {
|
||||||
case CMDPAL_TYPE_MAIN:
|
case CMDPAL_TYPE_MAIN:
|
||||||
doAction(i);
|
doAction(i);
|
||||||
if (i<GUI_ACTION_CMDPAL_MIN || GUI_ACTION_CMDPAL_MAX<i) {
|
|
||||||
// TODO: maybe instead of this, just re-open the dialog from the doAction code. it'll be much simpler than this corny mess I made
|
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMDPAL_TYPE_RECENT:
|
case CMDPAL_TYPE_RECENT:
|
||||||
openRecentFile(recentFile.at(i));
|
openRecentFile(recentFile.at(i));
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMDPAL_TYPE_INSTRUMENTS:
|
case CMDPAL_TYPE_INSTRUMENTS:
|
||||||
curIns=i-1;
|
curIns=i-1;
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMDPAL_TYPE_SAMPLES:
|
case CMDPAL_TYPE_SAMPLES:
|
||||||
curSample=i;
|
curSample=i;
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logE("invalid command palette type");
|
logE("invalid command palette type");
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
resetPalette(this);
|
|
||||||
}
|
}
|
||||||
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,14 +188,18 @@ void FurnaceGUI::doAction(int what) {
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_COMMAND_PALETTE:
|
case GUI_ACTION_COMMAND_PALETTE:
|
||||||
displayPalette=true;
|
displayPalette=true;
|
||||||
|
curPaletteType=CMDPAL_TYPE_MAIN;
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_CMDPAL_RECENT:
|
case GUI_ACTION_CMDPAL_RECENT:
|
||||||
|
displayPalette=true;
|
||||||
curPaletteType=CMDPAL_TYPE_RECENT;
|
curPaletteType=CMDPAL_TYPE_RECENT;
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_CMDPAL_INSTRUMENTS:
|
case GUI_ACTION_CMDPAL_INSTRUMENTS:
|
||||||
|
displayPalette=true;
|
||||||
curPaletteType=CMDPAL_TYPE_INSTRUMENTS;
|
curPaletteType=CMDPAL_TYPE_INSTRUMENTS;
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_CMDPAL_SAMPLES:
|
case GUI_ACTION_CMDPAL_SAMPLES:
|
||||||
|
displayPalette=true;
|
||||||
curPaletteType=CMDPAL_TYPE_SAMPLES;
|
curPaletteType=CMDPAL_TYPE_SAMPLES;
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_WINDOW_EDIT_CONTROLS:
|
case GUI_ACTION_WINDOW_EDIT_CONTROLS:
|
||||||
|
|
|
@ -5203,10 +5203,10 @@ bool FurnaceGUI::loop() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayPalette) {
|
if (displayPalette) {
|
||||||
|
paletteSearchResults.clear();
|
||||||
paletteQuery="";
|
paletteQuery="";
|
||||||
paletteFirstFrame=true;
|
paletteFirstFrame=true;
|
||||||
curPaletteChoice=0;
|
curPaletteChoice=0;
|
||||||
curPaletteType=0;
|
|
||||||
displayPalette=false;
|
displayPalette=false;
|
||||||
ImGui::OpenPopup("Command Palette");
|
ImGui::OpenPopup("Command Palette");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1262,7 +1262,6 @@ void FurnaceGUI::drawSettings() {
|
||||||
if (ImGui::TreeNode("Window activation")) {
|
if (ImGui::TreeNode("Window activation")) {
|
||||||
KEYBIND_CONFIG_BEGIN("keysWindow");
|
KEYBIND_CONFIG_BEGIN("keysWindow");
|
||||||
|
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_COMMAND_PALETTE);
|
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EDIT_CONTROLS);
|
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EDIT_CONTROLS);
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ORDERS);
|
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ORDERS);
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_LIST);
|
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_LIST);
|
||||||
|
@ -1290,6 +1289,11 @@ void FurnaceGUI::drawSettings() {
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_REGISTER_VIEW);
|
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_REGISTER_VIEW);
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_LOG);
|
UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_LOG);
|
||||||
|
|
||||||
|
UI_KEYBIND_CONFIG(GUI_ACTION_COMMAND_PALETTE);
|
||||||
|
UI_KEYBIND_CONFIG(GUI_ACTION_CMDPAL_RECENT);
|
||||||
|
UI_KEYBIND_CONFIG(GUI_ACTION_CMDPAL_INSTRUMENTS);
|
||||||
|
UI_KEYBIND_CONFIG(GUI_ACTION_CMDPAL_SAMPLES);
|
||||||
|
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_COLLAPSE_WINDOW);
|
UI_KEYBIND_CONFIG(GUI_ACTION_COLLAPSE_WINDOW);
|
||||||
UI_KEYBIND_CONFIG(GUI_ACTION_CLOSE_WINDOW);
|
UI_KEYBIND_CONFIG(GUI_ACTION_CLOSE_WINDOW);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue