amuse/VST/VSTEditor.hpp

72 lines
1.4 KiB
C++
Raw Normal View History

2016-06-09 21:33:26 +00:00
#ifndef __AMUSE_VSTEDITOR_HPP__
#define __AMUSE_VSTEDITOR_HPP__
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
{
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
HWND m_rootView;
2016-06-11 06:40:23 +00:00
HWND m_collectionHeader;
HWND m_collectionTree;
HWND m_collectionAdd;
HWND m_collectionRemove;
2016-06-11 00:47:02 +00:00
HWND m_groupListView;
HWND m_pageListView;
int m_selCollectionIdx = -1;
int m_selFileIdx = -1;
int m_selGroupIdx = -1;
int m_selPageIdx = -1;
HTREEITEM m_deferredCollectionSel = 0;
2016-06-11 00:47:02 +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-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);
void selectNormalPage(int idx);
void selectDrumPage(int idx);
2016-06-09 21:33:26 +00:00
};
}
#endif // __AMUSE_VSTEDITOR_HPP__