GUI: order lock button...
This commit is contained in:
parent
1a68d0efe7
commit
203cb04758
|
@ -170,6 +170,9 @@ void FurnaceGUI::doAction(int what) {
|
||||||
case GUI_ACTION_METRONOME:
|
case GUI_ACTION_METRONOME:
|
||||||
e->setMetronome(!e->getMetronome());
|
e->setMetronome(!e->getMetronome());
|
||||||
break;
|
break;
|
||||||
|
case GUI_ACTION_ORDER_LOCK:
|
||||||
|
orderLock=!orderLock;
|
||||||
|
break;
|
||||||
case GUI_ACTION_REPEAT_PATTERN:
|
case GUI_ACTION_REPEAT_PATTERN:
|
||||||
e->setRepeatPattern(!e->getRepeatPattern());
|
e->setRepeatPattern(!e->getRepeatPattern());
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -723,6 +723,8 @@ void FurnaceGUI::drawEditControls() {
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Checkbox(_("Edit"),&edit);
|
ImGui::Checkbox(_("Edit"),&edit);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
ImGui::Checkbox(_("Lock"),&orderLock);
|
||||||
|
ImGui::SameLine();
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
if (ImGui::Checkbox(_("Metronome"),&metro)) {
|
if (ImGui::Checkbox(_("Metronome"),&metro)) {
|
||||||
e->setMetronome(metro);
|
e->setMetronome(metro);
|
||||||
|
@ -809,6 +811,15 @@ void FurnaceGUI::drawEditControls() {
|
||||||
}
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
|
pushToggleColors(orderLock);
|
||||||
|
if (ImGui::Button(ICON_FA_LOCK "##OrderLock")) {
|
||||||
|
orderLock=!orderLock;
|
||||||
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip(_("Lock cursor/selection to this order"));
|
||||||
|
}
|
||||||
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
pushToggleColors(metro);
|
pushToggleColors(metro);
|
||||||
|
@ -926,6 +937,15 @@ void FurnaceGUI::drawEditControls() {
|
||||||
}
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
|
pushToggleColors(orderLock);
|
||||||
|
if (ImGui::Button(ICON_FA_LOCK "##OrderLock",buttonSize)) {
|
||||||
|
orderLock=!orderLock;
|
||||||
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip(_("Lock cursor/selection to this order"));
|
||||||
|
}
|
||||||
|
popToggleColors();
|
||||||
|
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
pushToggleColors(metro);
|
pushToggleColors(metro);
|
||||||
if (ImGui::Button(ICON_FUR_METRONOME "##Metronome",buttonSize)) {
|
if (ImGui::Button(ICON_FUR_METRONOME "##Metronome",buttonSize)) {
|
||||||
|
@ -1065,6 +1085,16 @@ void FurnaceGUI::drawEditControls() {
|
||||||
}
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
pushToggleColors(orderLock);
|
||||||
|
if (ImGui::Button(ICON_FA_LOCK "##OrderLock")) {
|
||||||
|
orderLock=!orderLock;
|
||||||
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip(_("Lock cursor/selection to this order"));
|
||||||
|
}
|
||||||
|
popToggleColors();
|
||||||
|
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
pushToggleColors(metro);
|
pushToggleColors(metro);
|
||||||
|
|
|
@ -7404,6 +7404,13 @@ bool FurnaceGUI::loop() {
|
||||||
// to already have been made.
|
// to already have been made.
|
||||||
checkRecordInstrumentUndoStep();
|
checkRecordInstrumentUndoStep();
|
||||||
|
|
||||||
|
// the following code handles order lock (if it is enabled).
|
||||||
|
if (orderLock) {
|
||||||
|
cursor.order=curOrder;
|
||||||
|
selStart.order=curOrder;
|
||||||
|
selEnd.order=curOrder;
|
||||||
|
}
|
||||||
|
|
||||||
if (shallDetectScale) {
|
if (shallDetectScale) {
|
||||||
if (--shallDetectScale<1) {
|
if (--shallDetectScale<1) {
|
||||||
if (settings.dpiScale<0.5f) {
|
if (settings.dpiScale<0.5f) {
|
||||||
|
|
|
@ -702,6 +702,7 @@ enum FurnaceGUIActions {
|
||||||
GUI_ACTION_STEP_DOWN,
|
GUI_ACTION_STEP_DOWN,
|
||||||
GUI_ACTION_TOGGLE_EDIT,
|
GUI_ACTION_TOGGLE_EDIT,
|
||||||
GUI_ACTION_METRONOME,
|
GUI_ACTION_METRONOME,
|
||||||
|
GUI_ACTION_ORDER_LOCK,
|
||||||
GUI_ACTION_REPEAT_PATTERN,
|
GUI_ACTION_REPEAT_PATTERN,
|
||||||
GUI_ACTION_FOLLOW_ORDERS,
|
GUI_ACTION_FOLLOW_ORDERS,
|
||||||
GUI_ACTION_FOLLOW_PATTERN,
|
GUI_ACTION_FOLLOW_PATTERN,
|
||||||
|
|
|
@ -597,6 +597,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={
|
||||||
D("STEP_DOWN", _N("Decrease edit step"), FURKMOD_CMD|SDLK_KP_DIVIDE),
|
D("STEP_DOWN", _N("Decrease edit step"), FURKMOD_CMD|SDLK_KP_DIVIDE),
|
||||||
D("TOGGLE_EDIT", _N("Toggle edit mode"), SDLK_SPACE),
|
D("TOGGLE_EDIT", _N("Toggle edit mode"), SDLK_SPACE),
|
||||||
D("METRONOME", _N("Metronome"), FURKMOD_CMD|SDLK_m),
|
D("METRONOME", _N("Metronome"), FURKMOD_CMD|SDLK_m),
|
||||||
|
D("ORDER_LOCK", _N("Toggle order lock"), 0),
|
||||||
D("REPEAT_PATTERN", _N("Toggle repeat pattern"), 0),
|
D("REPEAT_PATTERN", _N("Toggle repeat pattern"), 0),
|
||||||
D("FOLLOW_ORDERS", _N("Follow orders"), 0),
|
D("FOLLOW_ORDERS", _N("Follow orders"), 0),
|
||||||
D("FOLLOW_PATTERN", _N("Follow pattern"), 0),
|
D("FOLLOW_PATTERN", _N("Follow pattern"), 0),
|
||||||
|
|
|
@ -1227,9 +1227,13 @@ void FurnaceGUI::drawPattern() {
|
||||||
if (viewOrder>=0 && viewOrder<e->curSubSong->ordersLen) for (int i=0; i<chans; i++) {
|
if (viewOrder>=0 && viewOrder<e->curSubSong->ordersLen) for (int i=0; i<chans; i++) {
|
||||||
patCache[i]=e->curPat[i].getPattern(e->curOrders->ord[i][viewOrder],false);
|
patCache[i]=e->curPat[i].getPattern(e->curOrders->ord[i][viewOrder],false);
|
||||||
}
|
}
|
||||||
|
if (orderLock) {
|
||||||
|
ImGui::BeginDisabled();
|
||||||
|
} else {
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||||
|
}
|
||||||
for (int i=0; i<dummyRows-1; i++) {
|
for (int i=0; i<dummyRows-1; i++) {
|
||||||
patternRow(viewRow,e->isPlaying(),lineHeight,chans,viewOrder,patCache,false);
|
patternRow(viewRow,e->isPlaying(),lineHeight,chans,viewOrder,patCache,orderLock);
|
||||||
if (++viewRow>=e->curSubSong->patLen) {
|
if (++viewRow>=e->curSubSong->patLen) {
|
||||||
viewRow=0;
|
viewRow=0;
|
||||||
viewOrder++;
|
viewOrder++;
|
||||||
|
@ -1238,7 +1242,11 @@ void FurnaceGUI::drawPattern() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (orderLock) {
|
||||||
|
ImGui::EndDisabled();
|
||||||
|
} else {
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int i=0; i<dummyRows-1; i++) {
|
for (int i=0; i<dummyRows-1; i++) {
|
||||||
ImGui::TableNextRow(0,lineHeight);
|
ImGui::TableNextRow(0,lineHeight);
|
||||||
|
@ -1259,9 +1267,13 @@ void FurnaceGUI::drawPattern() {
|
||||||
if (viewOrder<e->curSubSong->ordersLen) for (int i=0; i<chans; i++) {
|
if (viewOrder<e->curSubSong->ordersLen) for (int i=0; i<chans; i++) {
|
||||||
patCache[i]=e->curPat[i].getPattern(e->curOrders->ord[i][ord+1],true);
|
patCache[i]=e->curPat[i].getPattern(e->curOrders->ord[i][ord+1],true);
|
||||||
}
|
}
|
||||||
|
if (orderLock) {
|
||||||
|
ImGui::BeginDisabled();
|
||||||
|
} else {
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||||
|
}
|
||||||
for (int i=0; i<=dummyRows; i++) {
|
for (int i=0; i<=dummyRows; i++) {
|
||||||
patternRow(viewRow,e->isPlaying(),lineHeight,chans,viewOrder,patCache,false);
|
patternRow(viewRow,e->isPlaying(),lineHeight,chans,viewOrder,patCache,orderLock);
|
||||||
if (++viewRow>=e->curSubSong->patLen) {
|
if (++viewRow>=e->curSubSong->patLen) {
|
||||||
viewRow=0;
|
viewRow=0;
|
||||||
viewOrder++;
|
viewOrder++;
|
||||||
|
@ -1270,7 +1282,11 @@ void FurnaceGUI::drawPattern() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (orderLock) {
|
||||||
|
ImGui::EndDisabled();
|
||||||
|
} else {
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int i=0; i<=dummyRows; i++) {
|
for (int i=0; i<=dummyRows; i++) {
|
||||||
ImGui::TableNextRow(0,lineHeight);
|
ImGui::TableNextRow(0,lineHeight);
|
||||||
|
|
Loading…
Reference in a new issue