Changeset 1263
- Timestamp:
- 09/22/07 16:02:35 (11 months ago)
- Location:
- trunk/src/buzelib
- Files:
-
- 6 modified
-
Document.cpp (modified) (1 diff)
-
PatternEditor/PatternEditorControl.cpp (modified) (1 diff)
-
PatternEditor/PatternEditorControl.h (modified) (1 diff)
-
PatternEditor/PatternEditorInner.cpp (modified) (2 diffs)
-
PatternEditor/PatternEditorInner.h (modified) (1 diff)
-
PatternView.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/buzelib/Document.cpp
r1261 r1263 223 223 224 224 MachineConnect* undo=new MachineConnect(); 225 undo->init(output, input, getConnectionAmp(conn), getConnection Amp(conn));225 undo->init(output, input, getConnectionAmp(conn), getConnectionPan(conn)); 226 226 227 227 return undoManager.insertAndCommit(redo, undo); -
trunk/src/buzelib/PatternEditor/PatternEditorControl.cpp
r1260 r1263 250 250 } 251 251 252 void CPatternEditorControl::MoveCursor(int group, int track, int column, int y, bool affectsel) {253 for (int i = 0; i < editor.columns.size(); i++) { 254 PATTERNCOLUMN& col = editor.columns[i]; 255 if (col.group == group && col.track == track && col.column == column) { 256 int cursor_x = editor.ScreenUnitsToCursorColumn(col.unit) ;252 void CPatternEditorControl::MoveCursor(int group, int track, int column, int index, int y, bool affectsel) { 253 for (int i = 0; i < editor.columns.size(); i++) { 254 PATTERNCOLUMN& col = editor.columns[i]; 255 if (col.group == group && col.track == track && col.column == column) { 256 int cursor_x = editor.ScreenUnitsToCursorColumn(col.unit) + index; 257 257 editor.MoveCursor(cursor_x - editor.cursor.x, y - editor.cursor.y, affectsel); 258 258 break; -
trunk/src/buzelib/PatternEditor/PatternEditorControl.h
r1260 r1263 69 69 void AddPianoRoll() { editor.AddPianoRoll(); } 70 70 void AllocatePattern() { editor.AllocatePatternBitmap(); } 71 void ScrollTo(const POINT& pt) { editor.ScrollTo(pt); } 71 72 void ScrollToView() { editor.ScrollToView(editor.cursor); } 72 73 void ScrollToView(const POINT& pt) { editor.ScrollToView(pt); } 73 74 void SelectRange(int from_col, int from_row, int to_col, int to_row) { editor.SelectRange(from_col, from_row / editor.skip, to_col, to_row / editor.skip); } 74 75 void MoveCursor(int x, int y, bool affectsel) { editor.MoveCursor(x, y, affectsel); } 75 void MoveCursor(int group, int track, int column, int y, bool affectsel);76 void MoveCursor(int group, int track, int column, int index, int y, bool affectsel); 76 77 POINT GetCursor() { return editor.cursor; } 77 78 int GetColumns() { return editor.columns.size(); } -
trunk/src/buzelib/PatternEditor/PatternEditorInner.cpp
r1260 r1263 951 951 } 952 952 953 void CPatternEditorInner::ScrollTo(POINT new_scroll) { 954 SetScrollPos(SB_VERT, new_scroll.y); 955 SetScrollPos(SB_HORZ, new_scroll.x); 956 ScrollWindow((scroll.x - new_scroll.x) * font_size.cx, (scroll.y - new_scroll.y) * font_size.cy, 0); 957 scroll = new_scroll; 958 UpdateWindow(); 959 UpdateCaretPosition(); 960 GetParent().SendMessage(WM_COMMAND, MAKEWPARAM(ID_PATTERNEDITOR_SCROLLED, 0), 0); 961 } 962 953 963 void CPatternEditorInner::ScrollToView(POINT pt) { 954 964 if (rcClient.right == 0) return ; … … 959 969 960 970 POINT screen = { rcClient.right / font_size.cx - 2, rcClient.bottom / font_size.cy - 1 }; 961 POINT last_scroll = scroll;962 963 if (pt.y - scroll.y < 0)964 scroll.y = pt.y;965 966 if (pt.y - scroll.y >= screen.y)967 scroll.y = pt.y - screen.y;971 POINT new_scroll = scroll; 972 973 if (pt.y - new_scroll.y < 0) 974 new_scroll.y = pt.y; 975 976 if (pt.y - new_scroll.y >= screen.y) 977 new_scroll.y = pt.y - screen.y; 968 978 969 979 int cursorunits = CursorColumnToScreenUnits(pt.x); 970 980 971 if (cursorunits - scroll.x < 0) 972 scroll.x = cursorunits; 973 974 if (cursorunits - scroll.x > screen.x) 975 scroll.x = cursorunits - screen.x; 976 977 if (scroll.y != last_scroll.y || scroll.x != last_scroll.x) { 978 SetScrollPos(SB_VERT, scroll.y); 979 SetScrollPos(SB_HORZ, scroll.x); 980 ScrollWindow((last_scroll.x - scroll.x) * font_size.cx, (last_scroll.y - scroll.y) * font_size.cy, 0); 981 UpdateWindow(); 982 UpdateCaretPosition(); 983 GetParent().SendMessage(WM_COMMAND, MAKEWPARAM(ID_PATTERNEDITOR_SCROLLED, 0), 0); 981 if (cursorunits - new_scroll.x < 0) 982 new_scroll.x = cursorunits; 983 984 if (cursorunits - new_scroll.x > screen.x) 985 new_scroll.x = cursorunits - screen.x; 986 987 if (scroll.y != new_scroll.y || scroll.x != new_scroll.x) { 988 ScrollTo(new_scroll); 984 989 } 985 990 } -
trunk/src/buzelib/PatternEditor/PatternEditorInner.h
r1260 r1263 153 153 void SetThemeColor(theme_index index, COLORREF color); 154 154 void MoveCursor(int x, int y, bool affectsel); 155 void ScrollToView(POINT pt); 155 void ScrollTo(POINT pt); // scroll to position pt 156 void ScrollToView(POINT pt); // scroll so position pt is visible 156 157 bool HasSelection(); 157 158 bool GetSelectionRectScreen(RECT* rc); -
trunk/src/buzelib/PatternView.cpp
r1261 r1263 1048 1048 patternEditor.AddColumn(0, i, 1, paraPanning->type, paraPanning->value_none, paraPanning->value_min, paraPanning->value_max); 1049 1049 for (size_t k = 0; k < pattern->getRows(); k++) { 1050 zzub::patterntrack* track = pattern->getPatternTrack(0, 0);1050 zzub::patterntrack* track = pattern->getPatternTrack(0, i); 1051 1051 int v = track->getValue(k, 0); 1052 1052 if (v != getNoValue(paraVolume)) … … 1097 1097 1098 1098 pattern_position pos = document->getPatternPosition(machine, pattern); 1099 patternEditor.MoveCursor(pos.group, pos.track, pos.column, pos. row, false);1099 patternEditor.MoveCursor(pos.group, pos.track, pos.column, pos.editPos, pos.row, false); 1100 1100 1101 1101 // TODO: scroll editor to pos.scroll* 1102 patternEditor.ScrollToView(); 1102 POINT scroll = { pos.scrollColumns, pos.scrollRows }; 1103 patternEditor.ScrollTo(scroll); 1103 1104 1104 1105 patternEditor.UpdateWindow(); … … 1433 1434 LRESULT CPatternView::OnPasteValue(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { 1434 1435 pattern_position pos = document->getPatternPosition(machine, pattern); 1435 patterntrack* track = machine->getStateTrackCopy(pos.group, pos.track); 1436 int value = track->getValue(0, pos.column); 1437 const parameter* param = track->getParam(pos.column); 1436 patterntrack* state_track = machine->getStateTrackCopy(pos.group, pos.track); 1437 int value = state_track->getValue(0, pos.column); 1438 const parameter* param = state_track->getParam(pos.column); 1439 1440 patterntrack* pattern_track = pattern->getPatternTrack(pos.group, pos.track); 1441 1438 1442 if (getNoValue(param) != value) {// && document->editPattern(machine, pattern, pos.row, pos.group, pos.track, pos.column, 0, value, 0)) { 1439 1443 … … 1442 1446 1443 1447 PatternEdit* undo = new PatternEdit(this, machine, pattern); 1444 int oldv = track->getValue(pos.row, pos.column);1448 int oldv = pattern_track->getValue(pos.row, pos.column); 1445 1449 undo->addEdit(pos.row, pos.group, pos.track, pos.column, oldv); 1446 1450 … … 1461 1465 bool yeah = false; 1462 1466 for (int i = 0; i<track->getParams(); i++) { 1463 int value = track->getValue(0, i); 1464 const parameter* param = track->getParam(i); 1465 if (getNoValue(param) != value) { // && document->editPattern(machine, pattern, pos.row, pos.group, pos.track, i, 0, value, 0)) { 1466 redo->addEdit(pos.row, pos.group, pos.track, pos.column, value); 1467 int value = machine->getParameter(pos.group, pos.track, i); 1468 const parameter* param = machine->getMachineParameter(pos.group, pos.track, i); 1469 if (getNoValue(param) != value) { 1467 1470 zzub::patterntrack* vt = pattern->getPatternTrack(pos.group, pos.track); 1468 int oldv = vt->getValue(pos.row, pos.column);1469 1470 redo->addEdit(pos.row, pos.group, pos.track, pos.column, value);1471 undo->addEdit(pos.row, pos.group, pos.track, pos.column, oldv);1471 int oldv = vt->getValue(pos.row, i); 1472 1473 redo->addEdit(pos.row, pos.group, pos.track, i, value); 1474 undo->addEdit(pos.row, pos.group, pos.track, i, oldv); 1472 1475 yeah = true; 1473 1476 }
