Changeset 1294
- Timestamp:
- 10/29/07 23:59:32 (12 months ago)
- Location:
- trunk/src
- Files:
-
- 2 added
- 6 removed
- 4 modified
-
buzelib/EnvelopeCtrl.cpp (modified) (1 diff)
-
buzelib/Preferences/PreferencesDialog.h (modified) (1 diff)
-
buzelib/Utils/WTLTabViewCtrl.h (added)
-
buzelib/Utils/WtlExt.h (added)
-
buzelib/WaveTableEditTabView.cpp (deleted)
-
buzelib/WaveTableEditTabView.h (deleted)
-
buzelib/WaveTableRecordTabView.cpp (deleted)
-
buzelib/WaveTableRecordTabView.h (deleted)
-
buzelib/WaveTableView.cpp (modified) (8 diffs)
-
buzelib/WaveTableView.h (modified) (6 diffs)
-
wtl/WTLTabViewCtrl.h (deleted)
-
wtl/WtlExt.h (deleted)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/buzelib/EnvelopeCtrl.cpp
r1218 r1294 1 1 #include "StdAfx.h" 2 #include " WTLExt.h"2 #include "Utils/WTLExt.h" 3 3 #include "EnvelopeCtrl.h" 4 4 -
trunk/src/buzelib/Preferences/PreferencesDialog.h
r1273 r1294 1 1 #pragma once 2 2 3 #include <WTLTabViewCtrl.h>3 #include "../Utils/WTLTabViewCtrl.h" 4 4 5 5 #include "AudioDriverPreferencesView.h" -
trunk/src/buzelib/WaveTableView.cpp
r1293 r1294 11 11 #include "Utils/utils.h" 12 12 #include "Utils/Keymaps.h" 13 #include "Properties.h" 13 14 14 15 #ifdef min … … 23 24 using namespace std; 24 25 using namespace zzub; 26 27 28 /*** 29 30 CWaveTabEdit 31 32 ***/ 33 34 CWaveTabEdit::CWaveTabEdit(CWaveTableView* view) { 35 this->view = view; 36 } 37 38 LRESULT CWaveTabEdit::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 39 DefWindowProc(); 40 41 volumeSliderLabel.Create(m_hWnd, rcDefault, "Volume", WS_VISIBLE|WS_CHILD); 42 volumeSliderLabel.SetFont((HFONT) GetStockObject( DEFAULT_GUI_FONT )); 43 44 DWORD trackBarStyle = WS_CHILD|WS_VISIBLE|TBS_AUTOTICKS|TBS_FIXEDLENGTH|TBS_BOTH; 45 46 volumeSlider.Create(m_hWnd, rcDefault, 0, trackBarStyle ); 47 volumeSlider.SetPageSize(16); 48 volumeSlider.SetTicFreq(1024); 49 volumeSlider.SetRange(0, 0x7fff); // converted to a float between from 0-2 (0-200%) 50 volumeSlider.SetThumbLength(12); 51 52 updateFromWavetable(); 53 54 return 0; 55 } 56 57 LRESULT CWaveTabEdit::OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/) { 58 WORD cx = LOWORD( lParam); 59 WORD cy = HIWORD( lParam); 60 61 volumeSliderLabel.MoveWindow(0, 0, cx, 22); 62 63 volumeSlider.MoveWindow(0, 22, cx, 22); 64 65 return 0; 66 } 67 68 LRESULT CWaveTabEdit::OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 69 return 0; 70 } 71 72 LRESULT CWaveTabEdit::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 73 return 0; 74 } 75 76 LRESULT CWaveTabEdit::OnHScroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 77 wave_info_ex* wave = view->getSelectedWave(); 78 wave->volume = (float)volumeSlider.GetPos() / 0x7fff * 2; 79 updateFromWavetable(); 80 return 0; 81 } 82 83 LRESULT CWaveTabEdit::OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { 84 CDCHandle bgDC((HDC)wParam); 85 RECT rcClient; 86 GetClientRect(&rcClient); 87 bgDC.FillRect(&rcClient, COLOR_3DFACE); 88 return 1; 89 } 90 91 void CWaveTabEdit::updateFromWavetable() { 92 wave_info_ex* wave = view->getSelectedWave(); 93 if (!wave) return ; 94 95 volumeSlider.SetPos(wave->volume / 2 * 0x7fff); 96 97 std::stringstream strm; 98 strm << "Volume (" << int(wave->volume * 100) << "%)"; 99 volumeSliderLabel.SetWindowText(strm.str().c_str()); 100 } 25 101 26 102 /*** … … 188 264 updateEnvelope(); 189 265 return 0; 266 } 267 268 /*** 269 270 CBgTabViewCtrl 271 272 ***/ 273 274 275 LRESULT CBgTabViewCtrl::OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { 276 CDCHandle bgDC((HDC)wParam); 277 RECT rcClient; 278 GetClientRect(&rcClient); 279 bgDC.FillRect(&rcClient, COLOR_3DFACE); 280 return DefWindowProc(); 190 281 } 191 282 … … 204 295 ,envelopeTab(this) 205 296 ,editTab(this) 206 ,recordTab(this)207 297 { 208 298 player = mainFrm->player; … … 250 340 waveEditorCtrl.Create(waveTabSplitter, rcDefault, 0, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS |WS_CLIPCHILDREN | WS_HSCROLL, WS_EX_CLIENTEDGE, IDC_FILELIST); 251 341 252 waveTabs.Create(waveTabSplitter, rcDefault, 0, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN , 0, IDC_WAVETABS);253 254 //editTab.Create(waveTabs);//, rcDefault, 0, WS_CHILD);255 //waveTabs.AddTab("Edit", editTab);342 waveTabs.Create(waveTabSplitter, rcDefault, 0, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN |TCS_TABS, 0, IDC_WAVETABS); 343 344 editTab.Create(waveTabs, rcDefault, 0, WS_CHILD); 345 waveTabs.AddTab("Edit", editTab); 256 346 257 347 envelopeTab.Create(waveTabs, rcDefault, 0, WS_CHILD); … … 493 583 mainFrame->document->selectWave(entry); 494 584 585 editTab.updateFromWavetable(); 495 586 } 496 587 … … 661 752 } 662 753 663 LRESULT CWaveTableView::OnTcnSelchangeWavetab(int /*idCtrl*/, LPNMHDR pNMHDR, BOOL& /*bHandled*/) {664 waveTabs.SetActiveTab(waveTabs.GetCurSel());665 return 0;666 }667 668 754 LRESULT CWaveTableView::OnZoomSamples(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& bHandled) { 669 755 waveEditorCtrl.gridType=WaveEditorSamples; … … 748 834 LRESULT CWaveTableView::OnViewProperties(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 749 835 // properties på wavelevel eller properties på wave? 836 837 if (document->selectedPropertyProvider) delete document->selectedPropertyProvider; 838 document->selectedPropertyProvider = new CWavePropertyProvider(*this, document, getSelectedWave()); 839 document->updateAllViews(0, UpdateProperties); 750 840 return 0; 751 841 } -
trunk/src/buzelib/WaveTableView.h
r1293 r1294 2 2 3 3 #include <stack> 4 #include <WTLTabViewCtrl.h>5 4 #include "FileBrowserList.h" 6 5 #include "WaveTableList.h" 7 #include " WtlExt.h"6 #include "Utils/WtlExt.h" 8 7 #include "EnvelopeCtrl.h" 9 8 #include "WaveEntryList.h" 10 9 #include "WaveEditorCtrl.h" 11 10 #include "Utils/ToolbarWindow.h" 12 #include "WaveTableRecordTabView.h"13 #include "WaveTableEditTabView.h"14 11 #include "Utils/SplitterWindowKey.h" 12 #include "Utils/WTLTabViewCtrl.h" 15 13 16 14 class CWaveTableView; … … 18 16 19 17 const int IDC_WAVETABS = 666; 18 const int IDC_WAVEVOLUMESLIDER = 667; 19 20 class CWaveTabEdit : public CWindowImpl<CWaveTabEdit> { 21 CWaveTableView* view; 22 public: 23 CWaveTabEdit(CWaveTableView* view); 24 25 CStatic volumeSliderLabel; 26 CTrackBarCtrl volumeSlider; 27 28 DECLARE_WND_CLASS("WaveTabEdit") 29 30 BEGIN_MSG_MAP(CWaveTabEdit) 31 MESSAGE_HANDLER(WM_CREATE, OnCreate) 32 MESSAGE_HANDLER(WM_SIZE, OnSize) 33 MESSAGE_HANDLER(WM_CLOSE, OnClose) 34 MESSAGE_HANDLER(WM_DESTROY, OnDestroy) 35 36 MESSAGE_HANDLER(WM_HSCROLL, OnHScroll) 37 MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground); 38 END_MSG_MAP() 39 40 LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 41 LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 42 LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 43 LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 44 LRESULT OnHScroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 45 LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 46 47 void updateFromWavetable(); 48 }; 20 49 21 50 class CWaveTabEnvelope : public CWindowImpl<CWaveTabEnvelope> { … … 61 90 }; 62 91 92 // Apparently, having a CTabCtrl inside a splitter causes drawing problems with 93 // XP themes where the tab header background isnt cleared properly. 94 // We create a CBgTabViewVtrl class that derives from our previous tab control 95 // and implement WM_ERASEBKGND to get around the problem: 96 97 class CBgTabViewCtrl : public CWTLTabViewCtrlT< CBgTabViewCtrl> { 98 public: 99 BEGIN_MSG_MAP(CBgTabViewCtrl) 100 MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground); 101 CHAIN_MSG_MAP(CWTLTabViewCtrlT< CBgTabViewCtrl>) 102 END_MSG_MAP() 103 LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); 104 }; 63 105 64 106 class CWaveTableView … … 68 110 { 69 111 ClientViewListener* clientViewListener; 70 CTrackBarCtrl waveVolumeSlider;71 112 CWaveEntryList waveEntryList; 72 113 CWaveEditorCtrl waveEditorCtrl; … … 84 125 public: 85 126 CWaveTableList waveTableList; 86 C WTLTabViewCtrl waveTabs;87 CWaveTab leEditTabVieweditTab;127 CBgTabViewCtrl waveTabs; 128 CWaveTabEdit editTab; 88 129 CWaveTabEnvelope envelopeTab; 89 CWaveTableRecordTabView recordTab;90 130 91 131 CMainFrame* mainFrame; … … 141 181 COMMAND_ID_HANDLER(ID_WAVE_ZOOM_ALL, OnZoomAll) 142 182 143 NOTIFY_HANDLER(IDC_WAVETABS, TCN_SELCHANGE, OnTcnSelchangeWavetab)144 145 183 // From CWTLTabViewCtrl: 146 184 // Parent windows must have REFLECT_NOTIFICATIONS() in the message map 147 185 // to pass along the TCN_SELCHANGE message to 186 REFLECT_NOTIFICATIONS() 148 187 END_MSG_MAP() 149 188
