mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-04 20:05:05 +00:00
prepare for find and replace window
This commit is contained in:
parent
64fa5f804b
commit
9edc4818b5
6 changed files with 51 additions and 39 deletions
|
@ -494,6 +494,7 @@ src/gui/doAction.cpp
|
||||||
src/gui/editing.cpp
|
src/gui/editing.cpp
|
||||||
src/gui/editControls.cpp
|
src/gui/editControls.cpp
|
||||||
src/gui/effectList.cpp
|
src/gui/effectList.cpp
|
||||||
|
src/gui/findReplace.cpp
|
||||||
src/gui/insEdit.cpp
|
src/gui/insEdit.cpp
|
||||||
src/gui/log.cpp
|
src/gui/log.cpp
|
||||||
src/gui/mixer.cpp
|
src/gui/mixer.cpp
|
||||||
|
|
|
@ -250,6 +250,9 @@ void FurnaceGUI::doAction(int what) {
|
||||||
case GUI_ACTION_WINDOW_CHAN_OSC:
|
case GUI_ACTION_WINDOW_CHAN_OSC:
|
||||||
nextWindow=GUI_WINDOW_CHAN_OSC;
|
nextWindow=GUI_WINDOW_CHAN_OSC;
|
||||||
break;
|
break;
|
||||||
|
case GUI_ACTION_WINDOW_FIND:
|
||||||
|
nextWindow=GUI_WINDOW_FIND;
|
||||||
|
break;
|
||||||
|
|
||||||
case GUI_ACTION_COLLAPSE_WINDOW:
|
case GUI_ACTION_COLLAPSE_WINDOW:
|
||||||
collapseWindow=true;
|
collapseWindow=true;
|
||||||
|
@ -331,6 +334,9 @@ void FurnaceGUI::doAction(int what) {
|
||||||
case GUI_WINDOW_CHAN_OSC:
|
case GUI_WINDOW_CHAN_OSC:
|
||||||
chanOscOpen=false;
|
chanOscOpen=false;
|
||||||
break;
|
break;
|
||||||
|
case GUI_WINDOW_FIND:
|
||||||
|
findOpen=false;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
19
src/gui/findReplace.cpp
Normal file
19
src/gui/findReplace.cpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#include "gui.h"
|
||||||
|
#include "imgui.h"
|
||||||
|
#include "IconsFontAwesome4.h"
|
||||||
|
#include "misc/cpp/imgui_stdlib.h"
|
||||||
|
|
||||||
|
void FurnaceGUI::drawFindReplace() {
|
||||||
|
if (nextWindow==GUI_WINDOW_FIND) {
|
||||||
|
findOpen=true;
|
||||||
|
ImGui::SetNextWindowFocus();
|
||||||
|
nextWindow=GUI_WINDOW_NOTHING;
|
||||||
|
}
|
||||||
|
if (!findOpen) return;
|
||||||
|
ImGui::SetNextWindowSizeConstraints(ImVec2(64.0f*dpiScale,32.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
|
||||||
|
if (ImGui::Begin("Find/Replace",&findOpen,globalWinFlags)) {
|
||||||
|
ImGui::Text("What am I gonna do with you?");
|
||||||
|
}
|
||||||
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_FIND;
|
||||||
|
ImGui::End();
|
||||||
|
}
|
|
@ -1899,6 +1899,12 @@ void FurnaceGUI::processDrags(int dragX, int dragY) {
|
||||||
void FurnaceGUI::editOptions(bool topMenu) {
|
void FurnaceGUI::editOptions(bool topMenu) {
|
||||||
char id[4096];
|
char id[4096];
|
||||||
editOptsVisible=true;
|
editOptsVisible=true;
|
||||||
|
|
||||||
|
if (topMenu) {
|
||||||
|
ImGui::Text("...");
|
||||||
|
ImGui::Separator();
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true);
|
if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true);
|
||||||
if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false);
|
if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false);
|
||||||
if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste();
|
if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste();
|
||||||
|
@ -2200,6 +2206,17 @@ void FurnaceGUI::editOptions(bool topMenu) {
|
||||||
if (ImGui::MenuItem("collapse",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_ROWS))) doCollapse(2);
|
if (ImGui::MenuItem("collapse",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_ROWS))) doCollapse(2);
|
||||||
if (ImGui::MenuItem("expand",BIND_FOR(GUI_ACTION_PAT_EXPAND_ROWS))) doExpand(2);
|
if (ImGui::MenuItem("expand",BIND_FOR(GUI_ACTION_PAT_EXPAND_ROWS))) doExpand(2);
|
||||||
|
|
||||||
|
if (topMenu) {
|
||||||
|
ImGui::Separator();
|
||||||
|
if (ImGui::MenuItem("find/replace",BIND_FOR(GUI_ACTION_WINDOW_FIND),findOpen)) {
|
||||||
|
if (findOpen) {
|
||||||
|
findOpen=false;
|
||||||
|
} else {
|
||||||
|
nextWindow=GUI_WINDOW_FIND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*if (topMenu) {
|
/*if (topMenu) {
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
ImGui::MenuItem("collapse pattern",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT));
|
ImGui::MenuItem("collapse pattern",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT));
|
||||||
|
@ -3084,6 +3101,7 @@ bool FurnaceGUI::loop() {
|
||||||
ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoWindowMenuButton|ImGuiDockNodeFlags_NoMove|ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0);
|
ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoWindowMenuButton|ImGuiDockNodeFlags_NoMove|ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0);
|
||||||
|
|
||||||
drawSubSongs();
|
drawSubSongs();
|
||||||
|
drawFindReplace();
|
||||||
drawPattern();
|
drawPattern();
|
||||||
drawEditControls();
|
drawEditControls();
|
||||||
drawSongInfo();
|
drawSongInfo();
|
||||||
|
@ -4382,35 +4400,7 @@ FurnaceGUI::FurnaceGUI():
|
||||||
effectListOpen(false),
|
effectListOpen(false),
|
||||||
chanOscOpen(false),
|
chanOscOpen(false),
|
||||||
subSongsOpen(true),
|
subSongsOpen(true),
|
||||||
/*
|
findOpen(false),
|
||||||
editControlsDocked(false),
|
|
||||||
ordersDocked(false),
|
|
||||||
insListDocked(false),
|
|
||||||
songInfoDocked(false),
|
|
||||||
patternDocked(false),
|
|
||||||
insEditDocked(false),
|
|
||||||
waveListDocked(false),
|
|
||||||
waveEditDocked(false),
|
|
||||||
sampleListDocked(false),
|
|
||||||
sampleEditDocked(false),
|
|
||||||
aboutDocked(false),
|
|
||||||
settingsDocked(false),
|
|
||||||
mixerDocked(false),
|
|
||||||
debugDocked(false),
|
|
||||||
inspectorDocked(false),
|
|
||||||
oscDocked(false),
|
|
||||||
volMeterDocked(false),
|
|
||||||
statsDocked(false),
|
|
||||||
compatFlagsDocked(false),
|
|
||||||
pianoDocked(false),
|
|
||||||
notesDocked(false),
|
|
||||||
channelsDocked(false),
|
|
||||||
regViewDocked(false),
|
|
||||||
logDocked(false),
|
|
||||||
effectListDocked(false),
|
|
||||||
chanOscDocked(false),
|
|
||||||
subSongsDocked(false),
|
|
||||||
*/
|
|
||||||
selecting(false),
|
selecting(false),
|
||||||
selectingFull(false),
|
selectingFull(false),
|
||||||
curNibble(false),
|
curNibble(false),
|
||||||
|
|
|
@ -245,7 +245,8 @@ enum FurnaceGUIWindows {
|
||||||
GUI_WINDOW_LOG,
|
GUI_WINDOW_LOG,
|
||||||
GUI_WINDOW_EFFECT_LIST,
|
GUI_WINDOW_EFFECT_LIST,
|
||||||
GUI_WINDOW_CHAN_OSC,
|
GUI_WINDOW_CHAN_OSC,
|
||||||
GUI_WINDOW_SUBSONGS
|
GUI_WINDOW_SUBSONGS,
|
||||||
|
GUI_WINDOW_FIND
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FurnaceGUIFileDialogs {
|
enum FurnaceGUIFileDialogs {
|
||||||
|
@ -354,6 +355,7 @@ enum FurnaceGUIActions {
|
||||||
GUI_ACTION_WINDOW_EFFECT_LIST,
|
GUI_ACTION_WINDOW_EFFECT_LIST,
|
||||||
GUI_ACTION_WINDOW_CHAN_OSC,
|
GUI_ACTION_WINDOW_CHAN_OSC,
|
||||||
GUI_ACTION_WINDOW_SUBSONGS,
|
GUI_ACTION_WINDOW_SUBSONGS,
|
||||||
|
GUI_ACTION_WINDOW_FIND,
|
||||||
|
|
||||||
GUI_ACTION_COLLAPSE_WINDOW,
|
GUI_ACTION_COLLAPSE_WINDOW,
|
||||||
GUI_ACTION_CLOSE_WINDOW,
|
GUI_ACTION_CLOSE_WINDOW,
|
||||||
|
@ -1078,15 +1080,7 @@ class FurnaceGUI {
|
||||||
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
||||||
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
||||||
bool pianoOpen, notesOpen, channelsOpen, regViewOpen, logOpen, effectListOpen, chanOscOpen;
|
bool pianoOpen, notesOpen, channelsOpen, regViewOpen, logOpen, effectListOpen, chanOscOpen;
|
||||||
bool subSongsOpen;
|
bool subSongsOpen, findOpen;
|
||||||
|
|
||||||
/* there ought to be a better way...
|
|
||||||
bool editControlsDocked, ordersDocked, insListDocked, songInfoDocked, patternDocked, insEditDocked;
|
|
||||||
bool waveListDocked, waveEditDocked, sampleListDocked, sampleEditDocked, aboutDocked, settingsDocked;
|
|
||||||
bool mixerDocked, debugDocked, inspectorDocked, oscDocked, volMeterDocked, statsDocked, compatFlagsDocked;
|
|
||||||
bool pianoDocked, notesDocked, channelsDocked, regViewDocked, logDocked, effectListDocked, chanOscDocked;
|
|
||||||
bool subSongsDocked;
|
|
||||||
*/
|
|
||||||
|
|
||||||
SelectionPoint selStart, selEnd, cursor;
|
SelectionPoint selStart, selEnd, cursor;
|
||||||
bool selecting, selectingFull, curNibble, orderNibble, followOrders, followPattern, changeAllOrders, mobileUI;
|
bool selecting, selectingFull, curNibble, orderNibble, followOrders, followPattern, changeAllOrders, mobileUI;
|
||||||
|
@ -1355,6 +1349,7 @@ class FurnaceGUI {
|
||||||
void drawLog();
|
void drawLog();
|
||||||
void drawEffectList();
|
void drawEffectList();
|
||||||
void drawSubSongs();
|
void drawSubSongs();
|
||||||
|
void drawFindReplace();
|
||||||
|
|
||||||
void parseKeybinds();
|
void parseKeybinds();
|
||||||
void promptKey(int which);
|
void promptKey(int which);
|
||||||
|
|
|
@ -492,6 +492,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={
|
||||||
D("WINDOW_SUBSONGS", "Subsongs", 0),
|
D("WINDOW_SUBSONGS", "Subsongs", 0),
|
||||||
D("EFFECT_LIST", "Effect List", 0),
|
D("EFFECT_LIST", "Effect List", 0),
|
||||||
D("WINDOW_CHAN_OSC", "Oscilloscope (per-channel)", 0),
|
D("WINDOW_CHAN_OSC", "Oscilloscope (per-channel)", 0),
|
||||||
|
D("WINDOW_FIND", "Find/Replace", FURKMOD_CMD|SDLK_f),
|
||||||
|
|
||||||
D("COLLAPSE_WINDOW", "Collapse/expand current window", 0),
|
D("COLLAPSE_WINDOW", "Collapse/expand current window", 0),
|
||||||
D("CLOSE_WINDOW", "Close current window", FURKMOD_SHIFT|SDLK_ESCAPE),
|
D("CLOSE_WINDOW", "Close current window", FURKMOD_SHIFT|SDLK_ESCAPE),
|
||||||
|
|
Loading…
Reference in a new issue