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:
|
||||
e->setMetronome(!e->getMetronome());
|
||||
break;
|
||||
case GUI_ACTION_ORDER_LOCK:
|
||||
orderLock=!orderLock;
|
||||
break;
|
||||
case GUI_ACTION_REPEAT_PATTERN:
|
||||
e->setRepeatPattern(!e->getRepeatPattern());
|
||||
break;
|
||||
|
|
|
@ -723,6 +723,8 @@ void FurnaceGUI::drawEditControls() {
|
|||
ImGui::SameLine();
|
||||
ImGui::Checkbox(_("Edit"),&edit);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox(_("Lock"),&orderLock);
|
||||
ImGui::SameLine();
|
||||
bool metro=e->getMetronome();
|
||||
if (ImGui::Checkbox(_("Metronome"),&metro)) {
|
||||
e->setMetronome(metro);
|
||||
|
@ -809,6 +811,15 @@ void FurnaceGUI::drawEditControls() {
|
|||
}
|
||||
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();
|
||||
bool metro=e->getMetronome();
|
||||
pushToggleColors(metro);
|
||||
|
@ -926,6 +937,15 @@ void FurnaceGUI::drawEditControls() {
|
|||
}
|
||||
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();
|
||||
pushToggleColors(metro);
|
||||
if (ImGui::Button(ICON_FUR_METRONOME "##Metronome",buttonSize)) {
|
||||
|
@ -1065,6 +1085,16 @@ void FurnaceGUI::drawEditControls() {
|
|||
}
|
||||
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();
|
||||
ImGui::SameLine();
|
||||
pushToggleColors(metro);
|
||||
|
|
|
@ -7404,6 +7404,13 @@ bool FurnaceGUI::loop() {
|
|||
// to already have been made.
|
||||
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<1) {
|
||||
if (settings.dpiScale<0.5f) {
|
||||
|
|
|
@ -702,6 +702,7 @@ enum FurnaceGUIActions {
|
|||
GUI_ACTION_STEP_DOWN,
|
||||
GUI_ACTION_TOGGLE_EDIT,
|
||||
GUI_ACTION_METRONOME,
|
||||
GUI_ACTION_ORDER_LOCK,
|
||||
GUI_ACTION_REPEAT_PATTERN,
|
||||
GUI_ACTION_FOLLOW_ORDERS,
|
||||
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("TOGGLE_EDIT", _N("Toggle edit mode"), SDLK_SPACE),
|
||||
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("FOLLOW_ORDERS", _N("Follow orders"), 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++) {
|
||||
patCache[i]=e->curPat[i].getPattern(e->curOrders->ord[i][viewOrder],false);
|
||||
}
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||
if (orderLock) {
|
||||
ImGui::BeginDisabled();
|
||||
} else {
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||
}
|
||||
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) {
|
||||
viewRow=0;
|
||||
viewOrder++;
|
||||
|
@ -1238,7 +1242,11 @@ void FurnaceGUI::drawPattern() {
|
|||
}
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
if (orderLock) {
|
||||
ImGui::EndDisabled();
|
||||
} else {
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
} else {
|
||||
for (int i=0; i<dummyRows-1; i++) {
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
|
@ -1259,9 +1267,13 @@ void FurnaceGUI::drawPattern() {
|
|||
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);
|
||||
}
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||
if (orderLock) {
|
||||
ImGui::BeginDisabled();
|
||||
} else {
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_Alpha,ImGui::GetStyle().Alpha*ImGui::GetStyle().DisabledAlpha);
|
||||
}
|
||||
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) {
|
||||
viewRow=0;
|
||||
viewOrder++;
|
||||
|
@ -1270,7 +1282,11 @@ void FurnaceGUI::drawPattern() {
|
|||
}
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
if (orderLock) {
|
||||
ImGui::EndDisabled();
|
||||
} else {
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
} else {
|
||||
for (int i=0; i<=dummyRows; i++) {
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
|
|
Loading…
Reference in a new issue