Changeset 1341
- Timestamp:
- 01/09/08 14:34:37 (8 months ago)
- Location:
- trunk/src/buzelib
- Files:
-
- 6 modified
-
MachineParameterView.cpp (modified) (8 diffs)
-
MachineParameterView.h (modified) (6 diffs)
-
MainFrm.cpp (modified) (4 diffs)
-
ParameterController.cpp (modified) (1 diff)
-
ParameterSliderCtrl.cpp (modified) (3 diffs)
-
Utils/ToolbarWindow.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/buzelib/MachineParameterView.cpp
r1338 r1341 60 60 } 61 61 62 LRESULT CMachineParameterView::OnPostCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 63 bindMachine(); 64 //sliderView.ShowWindow(SW_SHOW); 65 return 0; 66 } 67 62 68 LRESULT CMachineParameterView::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 63 69 LRESULT lres = DefWindowProc(); … … 75 81 76 82 sliderView.Create(m_hWnd, rcDefault, 0, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL); 77 bindMachine();78 83 79 84 machine->addEventHandler(this); … … 433 438 } 434 439 return 0; 440 } 441 442 LRESULT CMachineParameterView::OnEraseBkgnd(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { 443 return 1; 435 444 } 436 445 … … 604 613 } 605 614 615 void CMachineParameterScrollView::updateScrollbars() { 616 RECT rcClient; 617 GetClientRect(&rcClient); 618 int height = rcClient.bottom; 619 620 int prevScroll = GetScrollPos(SB_VERT); 621 int slidersPerPage = height / CParameterSliderCtrl::sliderHeight; 622 int totalSliderHeight = (sliders.size()) * CParameterSliderCtrl::sliderHeight; 623 if (totalSliderHeight < 0 || height == 0) totalSliderHeight = 0; 624 625 SCROLLINFO si; 626 si.cbSize = sizeof(SCROLLINFO); 627 si.fMask = SIF_PAGE | SIF_RANGE | SIF_POS; 628 si.nPage = height; 629 si.nMin = 0; 630 si.nMax = totalSliderHeight; 631 si.nPos = prevScroll; 632 SetScrollInfo(SB_VERT, &si); 633 ScrollWindow(0, -prevScroll); 634 } 635 606 636 void CMachineParameterScrollView::setMachine(metaplugin* machine) { 607 637 this->machine=machine; … … 647 677 } 648 678 679 RECT rcClient; 680 GetClientRect(&rcClient); 681 649 682 sliders.resize(numSliders); 650 size_t sliderIndex =0;683 size_t sliderIndex = 0; 651 684 for (size_t i = 0; i < conv.getColumns(); i++) { 652 685 const parameter* param = conv.getColumnParameter(i); … … 666 699 667 700 if (sliderIndex >= oldslidercount) { 668 sliders[sliderIndex]=new CParameterSliderCtrl(mainFrame); 669 sliders[sliderIndex]->Create(m_hWnd, rcDefault, "", WS_CHILD|WS_VISIBLE); 701 sliders[sliderIndex] = new CParameterSliderCtrl(mainFrame); 702 RECT rcSlider = { 0, sliderIndex*CParameterSliderCtrl::sliderHeight, rcClient.right, sliderIndex*CParameterSliderCtrl::sliderHeight + CParameterSliderCtrl::sliderHeight }; 703 sliders[sliderIndex]->Create(m_hWnd, rcSlider, "", WS_CHILD|WS_VISIBLE); 670 704 } 671 705 sliders[sliderIndex]->setParameter(machine, pgroup, ptrack, pcolumn); … … 673 707 } 674 708 675 RECT rc; 676 GetClientRect(&rc); 677 BOOL b; 678 OnSize(0,0,MAKEWPARAM(rc.right, rc.bottom), b); 709 updateScrollbars(); 679 710 } 680 711 681 712 LRESULT CMachineParameterScrollView::OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { 682 int width=LOWORD(lParam), height=HIWORD(lParam); 683 684 int prevScroll = GetScrollPos(SB_VERT); 713 int width = LOWORD(lParam); 685 714 686 715 for (size_t i=0; i<sliders.size(); i++) { … … 688 717 } 689 718 690 int slidersPerPage=height/CParameterSliderCtrl::sliderHeight; 691 692 int totalSliderHeight=(sliders.size())*CParameterSliderCtrl::sliderHeight; 693 if (totalSliderHeight<0) 694 totalSliderHeight=0; 695 696 this->SetScrollRange(SB_VERT, 0, totalSliderHeight-1); 697 698 if (totalSliderHeight>0) { 699 SCROLLINFO si; 700 si.cbSize=sizeof(SCROLLINFO); 701 si.fMask=SIF_PAGE; 702 si.nPage=height; 703 this->SetScrollInfo(SB_VERT, &si); 704 } 705 706 SetScrollPos(SB_VERT, prevScroll); 707 ScrollWindow(0, -prevScroll); 719 updateScrollbars(); 708 720 709 721 return 0; -
trunk/src/buzelib/MachineParameterView.h
r1338 r1341 12 12 class CMachineParameterView; 13 13 class ClientViewListener; 14 15 const int WM_POSTCREATE = WM_USER + 1; 14 16 15 17 class CMachineParameterScrollView : public CWindowImpl<CMachineParameterScrollView> { … … 44 46 45 47 void scrollToView(int slider); 48 void updateScrollbars(); 46 49 }; 47 50 … … 72 75 CHAIN_MSG_MAP(CToolbarWindow<CMachineParameterView>) 73 76 MESSAGE_HANDLER(WM_CREATE, OnCreate) 77 MESSAGE_HANDLER(WM_POSTCREATE, OnPostCreate) 74 78 MESSAGE_HANDLER(WM_CHAR, OnChar) 75 79 MESSAGE_HANDLER(WM_SIZE, OnSize) … … 77 81 MESSAGE_HANDLER(WM_KEYUP, OnKeyUp) 78 82 MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel) 83 MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd) 79 84 80 85 MESSAGE_HANDLER(WM_CLOSE, OnClose) … … 112 117 LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 113 118 LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 119 LRESULT OnPostCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 114 120 LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 115 121 LRESULT OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); … … 117 123 LRESULT OnKeyUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 118 124 LRESULT OnMouseWheel(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 125 LRESULT OnEraseBkgnd(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/); 119 126 120 127 LRESULT OnHelp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); -
trunk/src/buzelib/MainFrm.cpp
r1340 r1341 236 236 , playPatternSequencer() 237 237 , undoManager(this)*/ 238 , machineParameters(this, DockSplitTab::place DOCKPANE, DockSplitTab::dockRIGHT, "Parameters", "Machine Parameters", true)238 , machineParameters(this, DockSplitTab::placeFLOATFRAME, DockSplitTab::dockUNKNOWN, "Parameters", "Machine Parameters", true) 239 239 , patternEditors(this, DockSplitTab::placeMAINPANE, DockSplitTab::dockUNKNOWN, "Pattern", "Pattern", false) 240 240 , inputMixers(this, DockSplitTab::placeDOCKPANE, DockSplitTab::dockBOTTOM, "Input Mixer", "Input Mixer", true) … … 1265 1265 1266 1266 ::ShowWindow(m_hWndStatusBar, getToolbarVisibility(ID_VIEW_STATUS_BAR) ? SW_SHOWNOACTIVATE : SW_HIDE); 1267 setToolbarVisibility(ID_VIEW_STATUS_BAR, getToolbarVisibility(ID_VIEW_STATUS_BAR)); 1267 1268 1268 1269 setMainFrameToolbarVisibility(1, ID_VIEW_TOOLBAR, getToolbarVisibility(ID_VIEW_TOOLBAR), FALSE, FALSE); … … 1932 1933 RECT* rcCreate = 0; 1933 1934 1934 FramePlace place = machineParameters.framePlace; 1935 DockSide side = machineParameters.dockSide; 1936 1937 if (configPopup) { 1938 int views = (machineParameters.getViews() % 16); 1939 1940 int params = 0; 1941 pattern conv(m, 0); 1942 for (size_t i = 0; i < conv.getColumns(); i++) { 1943 const parameter* param = conv.getColumnParameter(i); 1944 if ((param->flags & zzub::parameter_flag_state) == 0) continue; 1945 size_t g = 0, t = 0, c = 0; 1946 conv.linearToPattern(i, g, t, c); 1947 if (g == 0) { 1948 zzub::connection* conn = m->getConnection(t); 1949 if (conn->plugin_in->nonSongPlugin) continue; 1950 } 1951 params++; 1935 int views = (machineParameters.getViews() % 16); 1936 1937 int params = 0; 1938 pattern conv(m, 0); 1939 for (size_t i = 0; i < conv.getColumns(); i++) { 1940 const parameter* param = conv.getColumnParameter(i); 1941 if ((param->flags & zzub::parameter_flag_state) == 0) continue; 1942 size_t g = 0, t = 0, c = 0; 1943 conv.linearToPattern(i, g, t, c); 1944 if (g == 0) { 1945 zzub::connection* conn = m->getConnection(t); 1946 if (conn->plugin_in->nonSongPlugin) continue; 1952 1947 } 1953 int parameterHeight = params*CParameterSliderCtrl::sliderHeight + 20; // 22 = toolbarheight 1954 1955 POINT pt; 1956 GetCursorPos(&pt); 1957 rcTarget.left = pt.x; 1958 rcTarget.top = pt.y; 1959 rcTarget.right = rcTarget.left + 400; 1960 rcTarget.bottom = rcTarget.top + parameterHeight; 1961 1962 rcCreate = &rcTarget; 1963 1964 place = placeFLOATFRAME; 1965 side = dockUNKNOWN; 1966 } 1967 1948 params++; 1949 } 1950 int parameterHeight = params*CParameterSliderCtrl::sliderHeight + 24; // 24 = toolbarheight 1951 1952 POINT pt; 1953 GetCursorPos(&pt); 1954 rcTarget.left = pt.x; 1955 rcTarget.top = pt.y; 1956 rcTarget.right = rcTarget.left + 400; 1957 rcTarget.bottom = rcTarget.top + parameterHeight; 1958 1959 rcCreate = &rcTarget; 1960 1961 CMachineParameterView* mpv; 1968 1962 for (unsigned i = 0; i<machineParameters.getViews(); i++) { 1969 CMachineParameterView*mpv = machineParameters.getView(i);1963 mpv = machineParameters.getView(i); 1970 1964 if (mpv->getMachine() == m) { 1971 1965 frame.setFocusTo(*mpv); … … 1976 1970 createMachineParameterViewPlugin = m; 1977 1971 ClientView* cv = machineParameters.createClientWindow(m_hWnd, label); 1978 machineParameters.insertClient(cv, rcCreate, place, side); 1972 machineParameters.insertClient(cv, rcCreate);//, place, side); 1973 1974 mpv = machineParameters.lookupView(cv); 1975 mpv->PostMessage(WM_POSTCREATE); 1979 1976 1980 1977 } -
trunk/src/buzelib/ParameterController.cpp
r1258 r1341 90 90 91 91 LRESULT CParameterController::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 92 LRESULT lres=DefWindowProc(); 93 m_slider.Create(*this, rcDefault, 0, WS_TABSTOP|WS_VISIBLE|WS_CHILD|PSBS_NOTIFY); 92 LRESULT lres = DefWindowProc(); 93 RECT rcClient; 94 GetClientRect(&rcClient); 95 m_slider.Create(m_hWnd, rcClient, 0, WS_TABSTOP|WS_VISIBLE|WS_CHILD|PSBS_NOTIFY); 94 96 return 0; 95 97 } 96 98 97 99 LRESULT CParameterController::OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { 98 RECT rc ;99 GetClientRect(&rc );100 101 m_slider.MoveWindow(0, 0, rc.right, rc.bottom);100 RECT rcClient; 101 GetClientRect(&rcClient); 102 103 m_slider.MoveWindow(0, 0, rcClient.right, rcClient.bottom); 102 104 return 0; 103 105 } -
trunk/src/buzelib/ParameterSliderCtrl.cpp
r1280 r1341 14 14 using namespace zzub; 15 15 16 17 namespace { 18 const int labelWidth = 100; 19 const int valueWidth = 80; 20 } 21 22 16 23 /*** 17 24 … … 29 36 30 37 LRESULT CParameterSliderCtrl::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { 31 label.Create(m_hWnd, rcDefault, "Parameter Name", WS_CHILD|WS_VISIBLE); 32 // trackBar.sliderCtrl=this; 33 trackBar.Create(m_hWnd, rcDefault, 0, WS_CHILD|WS_VISIBLE|TBS_NOTICKS|TBS_BOTH ); 34 valueLabel.Create(m_hWnd, rcDefault, "Value", WS_CHILD|WS_VISIBLE|SS_ENDELLIPSIS|SS_WORDELLIPSIS); 38 39 RECT rcClient; 40 GetClientRect(&rcClient); 41 42 int sliderWidth = rcClient.right - labelWidth - valueWidth; 43 44 label.Create(m_hWnd, CRect(0, 0, labelWidth, sliderHeight), "Parameter Name", WS_CHILD|WS_VISIBLE); 45 trackBar.Create(m_hWnd, CRect(0+labelWidth, 0, sliderWidth, sliderHeight), 0, WS_CHILD|WS_VISIBLE|TBS_NOTICKS|TBS_BOTH ); 46 valueLabel.Create(m_hWnd, CRect(0+labelWidth+sliderWidth, 0, valueWidth, sliderHeight), "Value", WS_CHILD|WS_VISIBLE|SS_ENDELLIPSIS|SS_WORDELLIPSIS); 35 47 36 48 label.SetFont((HFONT)GetStockObject(DEFAULT_GUI_FONT)); … … 44 56 int width=LOWORD(lParam), height=HIWORD(lParam); 45 57 46 int labelWidth=100; 47 int valueWidth=80; 48 int sliderWidth=width-labelWidth-valueWidth; 58 int sliderWidth = width - labelWidth - valueWidth; 49 59 50 60 label.MoveWindow(0, 0, labelWidth, sliderHeight); -
trunk/src/buzelib/Utils/ToolbarWindow.h
r1340 r1341 11 11 LRESULT OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { 12 12 ::SendMessage(GetParent(), WM_CONTEXTMENU, (WPARAM)m_hWnd, GetMessagePos()); 13 return 0; 13 14 } 14 15 };
