23struct reaper_plugin_info_t;
46 void BeginInformHostOfParamChangeFromUI(
int paramIdx)
override {};
48 void EndInformHostOfParamChangeFromUI(
int paramIdx)
override {};
50 bool EditorResizeFromUI(
int viewWidth,
int viewHeight,
bool needsPlatformResize)
override;
60 void RegisterAction(
const char* actionName, std::function<
void()> func,
bool addMenuItem =
false,
int* pToggle =
nullptr);
69 bool IsDocked()
const {
return (mDockState.state & 2) == 2; }
77 static bool HookCommandProc(
int command,
int flag);
80 static int ToggleActionCallback(
int command);
83 static WDL_DLGRET MainDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
85 void OnTimer(
Timer& t);
86 void CreateMainWindow();
87 void DestroyMainWindow();
91 reaper_plugin_info_t* mRec =
nullptr;
92 std::unique_ptr<Timer> mTimer;
94 WDL_FastString mDockId;
95 bool mSaveStateOnDestroy =
true;
96 bool mStateLoaded =
false;
Used for choosing an editor delegate.
This file includes classes for implementing timers - in order to get a regular callback on the main t...
State structure for dock window persistence - matches SWS pattern.
Reaper extension base class interface.
void ShowHideMainWindow()
Toggles the visibility of the main extension window.
bool IsDocked() const
Returns true if the window is currently docked.
void ToggleDocking()
Toggles between docked and floating state.
void SetDockId(const char *id)
Sets the unique identifier used for dock state persistence.
void RegisterAction(const char *actionName, std::function< void()> func, bool addMenuItem=false, int *pToggle=nullptr)
Registers an action with the REAPER extension system.
virtual void OnIdle()
Called during idle processing - override to perform periodic tasks.