amuse/VST/VSTEditor.hpp

63 lines
1.4 KiB
C++
Raw Normal View History

2018-10-07 03:40:25 +00:00
#pragma once
2016-06-09 21:33:26 +00:00
2016-06-11 00:47:02 +00:00
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <commctrl.h>
#include "aeffeditor.h"
2016-06-09 21:33:26 +00:00
namespace amuse
{
class VSTBackend;
/** Editor UI class */
class VSTEditor : public AEffEditor
{
2016-06-14 08:04:37 +00:00
friend class VSTBackend;
friend class AudioGroupFilePresenter;
friend struct AudioGroupCollection;
2016-06-09 21:33:26 +00:00
VSTBackend& m_backend;
2016-06-11 06:40:23 +00:00
ERect m_windowRect = {0, 0, 420, 600};
2016-06-11 00:47:02 +00:00
2016-06-14 08:04:37 +00:00
HWND m_rootView = 0;
HWND m_collectionTree = 0;
HWND m_collectionAdd = 0;
HWND m_collectionRemove = 0;
HWND m_groupListView = 0;
HWND m_pageListView = 0;
2016-06-11 00:47:02 +00:00
int m_selCollectionIdx = -1;
int m_selFileIdx = -1;
int m_selGroupIdx = -1;
int m_selPageIdx = -1;
int m_lastLParam = -1;
HTREEITEM m_deferredCollectionSel = 0;
2016-07-14 04:54:46 +00:00
static LRESULT CALLBACK WindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam);
static LRESULT CALLBACK ColHeaderWindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam);
void _reselectColumns();
2016-07-14 04:54:46 +00:00
2016-06-09 21:33:26 +00:00
public:
VSTEditor(VSTBackend& backend);
bool getRect(ERect** rect);
bool open(void* ptr);
2016-06-11 00:47:02 +00:00
void close();
void update();
void addAction();
void removeAction();
void selectCollection(LPARAM idx);
2016-06-11 00:47:02 +00:00
void selectGroup(int idx);
2016-06-14 08:04:37 +00:00
void selectPage(int idx);
void reselectPage();
void selectNormalPage(int idx);
void selectDrumPage(int idx);
2016-06-09 21:33:26 +00:00
};
}