1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-16 08:34:10 +02:00
2017-11-09 18:32:29 +00:00

81 lines
1.6 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
AUControl.h
Leland Lucius
********************************************************************//**
\class AUControl
\brief a wxControl with Cocoa/Carbon support
\class AUControlImpl
\brief a wxWidgetCocoaImpl
*//********************************************************************/
#ifndef AUDACITY_AUCONTROL_H
#define AUDACITY_AUCONTROL_H
#if !defined(_LP64)
#include <Carbon/Carbon.h>
#endif
#include <wx/osx/private.h>
#include <wx/control.h>
#include <AudioUnit/AudioComponent.h>
class AUControlImpl final : public wxWidgetCocoaImpl
{
public :
AUControlImpl(wxWindowMac *peer, NSView *view);
~AUControlImpl();
};
class AUControl final : public wxControl
{
public:
AUControl();
~AUControl();
void Close();
bool Create(wxWindow *parent, AudioComponent comp, AudioUnit unit, bool custom);
void CreateCocoa();
void CreateGeneric();
void CocoaViewResized();
void OnSize(wxSizeEvent & evt);
#if !defined(_LP64)
void CreateCarbon();
void CreateCarbonOverlay();
void CarbonViewResized();
static pascal OSStatus ControlEventHandlerCallback(EventHandlerCallRef handler,
EventRef event,
void *data);
#endif
private:
AudioComponent mComponent;
AudioUnit mUnit;
NSView *mAUView;
NSView *mView;
wxSize mLastMin;
bool mSettingSize;
#if !defined(_LP64)
AudioComponentInstance mInstance;
WindowRef mWindowRef;
HIViewRef mHIView;
#endif
DECLARE_EVENT_TABLE()
};
#endif