GUI: remove use of Columns() in orders
This commit is contained in:
parent
6f8cfa42ea
commit
d8471ce937
|
@ -107,242 +107,249 @@ void FurnaceGUI::drawOrders() {
|
|||
} else {
|
||||
//ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(canvasW,canvasH));
|
||||
}
|
||||
if (ImGui::Begin("Orders",&ordersOpen,globalWinFlags)) {
|
||||
float regionX=ImGui::GetContentRegionAvail().x;
|
||||
ImVec2 prevSpacing=ImGui::GetStyle().ItemSpacing;
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(1.0f*dpiScale,1.0f*dpiScale));
|
||||
ImGui::Columns(2,NULL,false);
|
||||
ImGui::SetColumnWidth(-1,regionX-24.0f*dpiScale);
|
||||
int displayChans=0;
|
||||
for (int i=0; i<e->getTotalChannelCount(); i++) {
|
||||
if (e->curSubSong->chanShow[i]) displayChans++;
|
||||
}
|
||||
ImGui::PushFont(patFont);
|
||||
bool tooSmall=((displayChans+1)>((ImGui::GetContentRegionAvail().x)/(ImGui::CalcTextSize("AA").x+2.0*ImGui::GetStyle().ItemInnerSpacing.x)));
|
||||
ImGui::PopFont();
|
||||
if (ImGui::BeginTable("OrdersTable",1+displayChans,(tooSmall?ImGuiTableFlags_SizingFixedFit:ImGuiTableFlags_SizingStretchSame)|ImGuiTableFlags_ScrollX|ImGuiTableFlags_ScrollY)) {
|
||||
ImGui::PushFont(patFont);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,prevSpacing);
|
||||
ImGui::TableSetupScrollFreeze(1,1);
|
||||
float lineHeight=(ImGui::GetTextLineHeight()+4*dpiScale);
|
||||
if (e->isPlaying()) {
|
||||
if (followOrders) {
|
||||
ImGui::SetScrollY((e->getOrder()+1)*lineHeight-(ImGui::GetContentRegionAvail().y/2));
|
||||
}
|
||||
}
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
ImVec2 ra=ImGui::GetContentRegionAvail();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_ORDER_ROW_INDEX]);
|
||||
for (int i=0; i<e->getTotalChannelCount(); i++) {
|
||||
if (!e->curSubSong->chanShow[i]) continue;
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("%s",e->getChannelShortName(i));
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
for (int i=0; i<e->curSubSong->ordersLen; i++) {
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
if (oldOrder1==i) ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0,ImGui::GetColorU32(uiColors[GUI_COLOR_ORDER_ACTIVE]));
|
||||
ImGui::TableNextColumn();
|
||||
if ((!followPattern && curOrder==i) || (followPattern && oldOrder1==i)) {
|
||||
// draw a border
|
||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
||||
ImVec2 rBegin=ImGui::GetCursorScreenPos();
|
||||
rBegin.y-=ImGui::GetStyle().CellPadding.y;
|
||||
ImVec2 rEnd=ImVec2(rBegin.x+ra.x,rBegin.y+lineHeight);
|
||||
dl->AddRect(rBegin,rEnd,ImGui::GetColorU32(uiColors[GUI_COLOR_ORDER_SELECTED]),2.0f*dpiScale);
|
||||
}
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_ORDER_ROW_INDEX]);
|
||||
bool highlightLoop=(i>=loopOrder && i<=loopEnd);
|
||||
if (highlightLoop) ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg,ImGui::GetColorU32(uiColors[GUI_COLOR_SONG_LOOP]));
|
||||
if (settings.orderRowsBase==1) {
|
||||
snprintf(selID,4096,"%.2X##O_S%.2x",i,i);
|
||||
} else {
|
||||
snprintf(selID,4096,"%d##O_S%.2x",i,i);
|
||||
}
|
||||
if (ImGui::Selectable(selID)) {
|
||||
setOrder(i);
|
||||
curNibble=false;
|
||||
orderCursor=-1;
|
||||
if (ImGui::Begin("Orders",&ordersOpen,globalWinFlags|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
|
||||
if (ImGui::BeginTable("OrdColumn",2,ImGuiTableFlags_BordersInnerV)) {
|
||||
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch);
|
||||
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed);
|
||||
|
||||
if (orderEditMode==0) {
|
||||
handleUnimportant;
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
ImVec2 prevSpacing=ImGui::GetStyle().ItemSpacing;
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(1.0f*dpiScale,1.0f*dpiScale));
|
||||
int displayChans=0;
|
||||
for (int i=0; i<e->getTotalChannelCount(); i++) {
|
||||
if (e->curSubSong->chanShow[i]) displayChans++;
|
||||
}
|
||||
ImGui::PushFont(patFont);
|
||||
bool tooSmall=((displayChans+1)>((ImGui::GetContentRegionAvail().x)/(ImGui::CalcTextSize("AA").x+2.0*ImGui::GetStyle().ItemInnerSpacing.x)));
|
||||
ImGui::PopFont();
|
||||
if (ImGui::BeginTable("OrdersTable",1+displayChans,(tooSmall?ImGuiTableFlags_SizingFixedFit:ImGuiTableFlags_SizingStretchSame)|ImGuiTableFlags_ScrollX|ImGuiTableFlags_ScrollY)) {
|
||||
ImGui::PushFont(patFont);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,prevSpacing);
|
||||
ImGui::TableSetupScrollFreeze(1,1);
|
||||
float lineHeight=(ImGui::GetTextLineHeight()+4*dpiScale);
|
||||
if (e->isPlaying()) {
|
||||
if (followOrders) {
|
||||
ImGui::SetScrollY((e->getOrder()+1)*lineHeight-(ImGui::GetContentRegionAvail().y/2));
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
for (int j=0; j<e->getTotalChannelCount(); j++) {
|
||||
if (!e->curSubSong->chanShow[j]) continue;
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
ImVec2 ra=ImGui::GetContentRegionAvail();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_ORDER_ROW_INDEX]);
|
||||
for (int i=0; i<e->getTotalChannelCount(); i++) {
|
||||
if (!e->curSubSong->chanShow[i]) continue;
|
||||
ImGui::TableNextColumn();
|
||||
DivPattern* pat=e->curPat[j].getPattern(e->curOrders->ord[j][i],false);
|
||||
/*if (!pat->name.empty()) {
|
||||
snprintf(selID,4096,"%s##O_%.2x_%.2x",pat->name.c_str(),j,i);
|
||||
} else {*/
|
||||
snprintf(selID,4096,"%.2X##O_%.2x_%.2x",e->curOrders->ord[j][i],j,i);
|
||||
//}
|
||||
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,(curOrder==i || e->curOrders->ord[j][i]==e->curOrders->ord[j][curOrder])?uiColors[GUI_COLOR_ORDER_SIMILAR]:uiColors[GUI_COLOR_ORDER_INACTIVE]);
|
||||
if (ImGui::Selectable(selID,settings.ordersCursor?(cursor.xCoarse==j && oldOrder1!=i):false)) {
|
||||
if (curOrder==i) {
|
||||
if (orderEditMode==0) {
|
||||
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
e->lockSave([this,i,j]() {
|
||||
if (changeAllOrders) {
|
||||
for (int k=0; k<e->getTotalChannelCount(); k++) {
|
||||
if (e->curOrders->ord[k][i]<(unsigned char)(DIV_MAX_PATTERNS-1)) e->curOrders->ord[k][i]++;
|
||||
}
|
||||
} else {
|
||||
if (e->curOrders->ord[j][i]<(unsigned char)(DIV_MAX_PATTERNS-1)) e->curOrders->ord[j][i]++;
|
||||
}
|
||||
});
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
} else {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
} else {
|
||||
setOrder(i);
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
if (orderEditMode!=0) {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
}
|
||||
ImGui::Text("%s",e->getChannelShortName(i));
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
for (int i=0; i<e->curSubSong->ordersLen; i++) {
|
||||
ImGui::TableNextRow(0,lineHeight);
|
||||
if (oldOrder1==i) ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0,ImGui::GetColorU32(uiColors[GUI_COLOR_ORDER_ACTIVE]));
|
||||
ImGui::TableNextColumn();
|
||||
if ((!followPattern && curOrder==i) || (followPattern && oldOrder1==i)) {
|
||||
// draw a border
|
||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
||||
ImVec2 rBegin=ImGui::GetCursorScreenPos();
|
||||
rBegin.y-=ImGui::GetStyle().CellPadding.y;
|
||||
ImVec2 rEnd=ImVec2(rBegin.x+ra.x,rBegin.y+lineHeight);
|
||||
dl->AddRect(rBegin,rEnd,ImGui::GetColorU32(uiColors[GUI_COLOR_ORDER_SELECTED]),2.0f*dpiScale);
|
||||
}
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_ORDER_ROW_INDEX]);
|
||||
bool highlightLoop=(i>=loopOrder && i<=loopEnd);
|
||||
if (highlightLoop) ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg,ImGui::GetColorU32(uiColors[GUI_COLOR_SONG_LOOP]));
|
||||
if (settings.orderRowsBase==1) {
|
||||
snprintf(selID,4096,"%.2X##O_S%.2x",i,i);
|
||||
} else {
|
||||
snprintf(selID,4096,"%d##O_S%.2x",i,i);
|
||||
}
|
||||
if (ImGui::Selectable(selID)) {
|
||||
setOrder(i);
|
||||
curNibble=false;
|
||||
orderCursor=-1;
|
||||
|
||||
if (orderEditMode==0) {
|
||||
handleUnimportant;
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
if (orderEditMode!=0 && curOrder==i && orderCursor==j) {
|
||||
// draw a border
|
||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
||||
dl->AddRect(ImGui::GetItemRectMin(),ImGui::GetItemRectMax(),ImGui::GetColorU32(uiColors[GUI_COLOR_TEXT]),2.0f*dpiScale);
|
||||
}
|
||||
if (!pat->name.empty() && ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("%s",pat->name.c_str());
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
if (curOrder==i) {
|
||||
if (orderEditMode==0) {
|
||||
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
e->lockSave([this,i,j]() {
|
||||
if (changeAllOrders) {
|
||||
for (int k=0; k<e->getTotalChannelCount(); k++) {
|
||||
if (e->curOrders->ord[k][i]>0) e->curOrders->ord[k][i]--;
|
||||
for (int j=0; j<e->getTotalChannelCount(); j++) {
|
||||
if (!e->curSubSong->chanShow[j]) continue;
|
||||
ImGui::TableNextColumn();
|
||||
DivPattern* pat=e->curPat[j].getPattern(e->curOrders->ord[j][i],false);
|
||||
/*if (!pat->name.empty()) {
|
||||
snprintf(selID,4096,"%s##O_%.2x_%.2x",pat->name.c_str(),j,i);
|
||||
} else {*/
|
||||
snprintf(selID,4096,"%.2X##O_%.2x_%.2x",e->curOrders->ord[j][i],j,i);
|
||||
//}
|
||||
|
||||
ImGui::PushStyleColor(ImGuiCol_Text,(curOrder==i || e->curOrders->ord[j][i]==e->curOrders->ord[j][curOrder])?uiColors[GUI_COLOR_ORDER_SIMILAR]:uiColors[GUI_COLOR_ORDER_INACTIVE]);
|
||||
if (ImGui::Selectable(selID,settings.ordersCursor?(cursor.xCoarse==j && oldOrder1!=i):false)) {
|
||||
if (curOrder==i) {
|
||||
if (orderEditMode==0) {
|
||||
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
e->lockSave([this,i,j]() {
|
||||
if (changeAllOrders) {
|
||||
for (int k=0; k<e->getTotalChannelCount(); k++) {
|
||||
if (e->curOrders->ord[k][i]<(unsigned char)(DIV_MAX_PATTERNS-1)) e->curOrders->ord[k][i]++;
|
||||
}
|
||||
} else {
|
||||
if (e->curOrders->ord[j][i]<(unsigned char)(DIV_MAX_PATTERNS-1)) e->curOrders->ord[j][i]++;
|
||||
}
|
||||
} else {
|
||||
if (e->curOrders->ord[j][i]>0) e->curOrders->ord[j][i]--;
|
||||
}
|
||||
});
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
});
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
} else {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
} else {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
setOrder(i);
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
if (orderEditMode!=0) {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
setOrder(i);
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
if (orderEditMode!=0) {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
|
||||
if (orderEditMode==0) {
|
||||
handleUnimportant;
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
if (orderEditMode!=0 && curOrder==i && orderCursor==j) {
|
||||
// draw a border
|
||||
ImDrawList* dl=ImGui::GetWindowDrawList();
|
||||
dl->AddRect(ImGui::GetItemRectMin(),ImGui::GetItemRectMax(),ImGui::GetColorU32(uiColors[GUI_COLOR_TEXT]),2.0f*dpiScale);
|
||||
}
|
||||
if (!pat->name.empty() && ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("%s",pat->name.c_str());
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
if (curOrder==i) {
|
||||
if (orderEditMode==0) {
|
||||
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
e->lockSave([this,i,j]() {
|
||||
if (changeAllOrders) {
|
||||
for (int k=0; k<e->getTotalChannelCount(); k++) {
|
||||
if (e->curOrders->ord[k][i]>0) e->curOrders->ord[k][i]--;
|
||||
}
|
||||
} else {
|
||||
if (e->curOrders->ord[j][i]>0) e->curOrders->ord[j][i]--;
|
||||
}
|
||||
});
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||
} else {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
} else {
|
||||
setOrder(i);
|
||||
e->walkSong(loopOrder,loopRow,loopEnd);
|
||||
if (orderEditMode!=0) {
|
||||
orderCursor=j;
|
||||
curNibble=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
ImGui::PopFont();
|
||||
ImGui::EndTable();
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
if (ImGui::Button(ICON_FA_PLUS)) { handleUnimportant
|
||||
// add order row (new)
|
||||
doAction(GUI_ACTION_ORDERS_ADD);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Add new order");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_MINUS)) { handleUnimportant
|
||||
// remove this order row
|
||||
doAction(GUI_ACTION_ORDERS_REMOVE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Remove order");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_FILES_O)) { handleUnimportant
|
||||
// duplicate order row
|
||||
doAction(GUI_ACTION_ORDERS_DUPLICATE);
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
doAction(GUI_ACTION_ORDERS_DEEP_CLONE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Duplicate order (right-click to deep clone)");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_UP)) { handleUnimportant
|
||||
// move order row up
|
||||
doAction(GUI_ACTION_ORDERS_MOVE_UP);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Move order up");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_DOWN)) { handleUnimportant
|
||||
// move order row down
|
||||
doAction(GUI_ACTION_ORDERS_MOVE_DOWN);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Move order down");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_DOUBLE_DOWN)) { handleUnimportant
|
||||
// duplicate order row at end
|
||||
doAction(GUI_ACTION_ORDERS_DUPLICATE_END);
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
doAction(GUI_ACTION_ORDERS_DEEP_CLONE_END);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Duplicate order at end of song (right-click to deep clone)");
|
||||
}
|
||||
if (ImGui::Button(changeAllOrders?ICON_FA_LINK"##ChangeAll":ICON_FA_CHAIN_BROKEN"##ChangeAll")) { handleUnimportant
|
||||
// whether to change one or all orders in a row
|
||||
changeAllOrders=!changeAllOrders;
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
if (changeAllOrders) {
|
||||
ImGui::SetTooltip("Order change mode: entire row");
|
||||
} else {
|
||||
ImGui::SetTooltip("Order change mode: one");
|
||||
}
|
||||
}
|
||||
const char* orderEditModeLabel="?##OrderEditMode";
|
||||
if (orderEditMode==3) {
|
||||
orderEditModeLabel=ICON_FA_ARROWS_V "##OrderEditMode";
|
||||
} else if (orderEditMode==2) {
|
||||
orderEditModeLabel=ICON_FA_ARROWS_H "##OrderEditMode";
|
||||
} else if (orderEditMode==1) {
|
||||
orderEditModeLabel=ICON_FA_I_CURSOR "##OrderEditMode";
|
||||
} else {
|
||||
orderEditModeLabel=ICON_FA_MOUSE_POINTER "##OrderEditMode";
|
||||
}
|
||||
if (ImGui::Button(orderEditModeLabel)) { handleUnimportant
|
||||
orderEditMode++;
|
||||
if (orderEditMode>3) orderEditMode=0;
|
||||
curNibble=false;
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
if (orderEditMode==3) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (scroll vertically)");
|
||||
} else if (orderEditMode==2) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (scroll horizontally)");
|
||||
} else if (orderEditMode==1) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (don't scroll)");
|
||||
} else {
|
||||
ImGui::SetTooltip("Order edit mode: Click to change");
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
ImGui::PopFont();
|
||||
|
||||
ImGui::EndTable();
|
||||
}
|
||||
ImGui::NextColumn();
|
||||
if (ImGui::Button(ICON_FA_PLUS)) { handleUnimportant
|
||||
// add order row (new)
|
||||
doAction(GUI_ACTION_ORDERS_ADD);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Add new order");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_MINUS)) { handleUnimportant
|
||||
// remove this order row
|
||||
doAction(GUI_ACTION_ORDERS_REMOVE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Remove order");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_FILES_O)) { handleUnimportant
|
||||
// duplicate order row
|
||||
doAction(GUI_ACTION_ORDERS_DUPLICATE);
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
doAction(GUI_ACTION_ORDERS_DEEP_CLONE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Duplicate order (right-click to deep clone)");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_UP)) { handleUnimportant
|
||||
// move order row up
|
||||
doAction(GUI_ACTION_ORDERS_MOVE_UP);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Move order up");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_DOWN)) { handleUnimportant
|
||||
// move order row down
|
||||
doAction(GUI_ACTION_ORDERS_MOVE_DOWN);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Move order down");
|
||||
}
|
||||
if (ImGui::Button(ICON_FA_ANGLE_DOUBLE_DOWN)) { handleUnimportant
|
||||
// duplicate order row at end
|
||||
doAction(GUI_ACTION_ORDERS_DUPLICATE_END);
|
||||
}
|
||||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
doAction(GUI_ACTION_ORDERS_DEEP_CLONE_END);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Duplicate order at end of song (right-click to deep clone)");
|
||||
}
|
||||
if (ImGui::Button(changeAllOrders?ICON_FA_LINK"##ChangeAll":ICON_FA_CHAIN_BROKEN"##ChangeAll")) { handleUnimportant
|
||||
// whether to change one or all orders in a row
|
||||
changeAllOrders=!changeAllOrders;
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
if (changeAllOrders) {
|
||||
ImGui::SetTooltip("Order change mode: entire row");
|
||||
} else {
|
||||
ImGui::SetTooltip("Order change mode: one");
|
||||
}
|
||||
}
|
||||
const char* orderEditModeLabel="?##OrderEditMode";
|
||||
if (orderEditMode==3) {
|
||||
orderEditModeLabel=ICON_FA_ARROWS_V "##OrderEditMode";
|
||||
} else if (orderEditMode==2) {
|
||||
orderEditModeLabel=ICON_FA_ARROWS_H "##OrderEditMode";
|
||||
} else if (orderEditMode==1) {
|
||||
orderEditModeLabel=ICON_FA_I_CURSOR "##OrderEditMode";
|
||||
} else {
|
||||
orderEditModeLabel=ICON_FA_MOUSE_POINTER "##OrderEditMode";
|
||||
}
|
||||
if (ImGui::Button(orderEditModeLabel)) { handleUnimportant
|
||||
orderEditMode++;
|
||||
if (orderEditMode>3) orderEditMode=0;
|
||||
curNibble=false;
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
if (orderEditMode==3) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (scroll vertically)");
|
||||
} else if (orderEditMode==2) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (scroll horizontally)");
|
||||
} else if (orderEditMode==1) {
|
||||
ImGui::SetTooltip("Order edit mode: Select and type (don't scroll)");
|
||||
} else {
|
||||
ImGui::SetTooltip("Order edit mode: Click to change");
|
||||
}
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_ORDERS;
|
||||
oldOrder1=e->getOrder();
|
||||
|
|
Loading…
Reference in New Issue